[ 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 needs to be wrapped in an IIFE because it needs 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/query-total/index.js
1468  var query_total_namespaceObject = {};
1469  __webpack_require__.r(query_total_namespaceObject);
1470  __webpack_require__.d(query_total_namespaceObject, {
1471    init: () => (query_total_init),
1472    metadata: () => (query_total_metadata),
1473    name: () => (query_total_name),
1474    settings: () => (query_total_settings)
1475  });
1476  
1477  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/quote/index.js
1478  var build_module_quote_namespaceObject = {};
1479  __webpack_require__.r(build_module_quote_namespaceObject);
1480  __webpack_require__.d(build_module_quote_namespaceObject, {
1481    init: () => (quote_init),
1482    metadata: () => (quote_metadata),
1483    name: () => (quote_name),
1484    settings: () => (quote_settings)
1485  });
1486  
1487  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/block/index.js
1488  var block_namespaceObject = {};
1489  __webpack_require__.r(block_namespaceObject);
1490  __webpack_require__.d(block_namespaceObject, {
1491    init: () => (block_init),
1492    metadata: () => (block_metadata),
1493    name: () => (block_name),
1494    settings: () => (block_settings)
1495  });
1496  
1497  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/read-more/index.js
1498  var read_more_namespaceObject = {};
1499  __webpack_require__.r(read_more_namespaceObject);
1500  __webpack_require__.d(read_more_namespaceObject, {
1501    init: () => (read_more_init),
1502    metadata: () => (read_more_metadata),
1503    name: () => (read_more_name),
1504    settings: () => (read_more_settings)
1505  });
1506  
1507  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/rss/index.js
1508  var build_module_rss_namespaceObject = {};
1509  __webpack_require__.r(build_module_rss_namespaceObject);
1510  __webpack_require__.d(build_module_rss_namespaceObject, {
1511    init: () => (rss_init),
1512    metadata: () => (rss_metadata),
1513    name: () => (rss_name),
1514    settings: () => (rss_settings)
1515  });
1516  
1517  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/search/index.js
1518  var build_module_search_namespaceObject = {};
1519  __webpack_require__.r(build_module_search_namespaceObject);
1520  __webpack_require__.d(build_module_search_namespaceObject, {
1521    init: () => (search_init),
1522    metadata: () => (search_metadata),
1523    name: () => (search_name),
1524    settings: () => (search_settings)
1525  });
1526  
1527  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/separator/index.js
1528  var build_module_separator_namespaceObject = {};
1529  __webpack_require__.r(build_module_separator_namespaceObject);
1530  __webpack_require__.d(build_module_separator_namespaceObject, {
1531    init: () => (separator_init),
1532    metadata: () => (separator_metadata),
1533    name: () => (separator_name),
1534    settings: () => (separator_settings)
1535  });
1536  
1537  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
1538  var build_module_shortcode_namespaceObject = {};
1539  __webpack_require__.r(build_module_shortcode_namespaceObject);
1540  __webpack_require__.d(build_module_shortcode_namespaceObject, {
1541    init: () => (shortcode_init),
1542    metadata: () => (shortcode_metadata),
1543    name: () => (shortcode_name),
1544    settings: () => (shortcode_settings)
1545  });
1546  
1547  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
1548  var build_module_site_logo_namespaceObject = {};
1549  __webpack_require__.r(build_module_site_logo_namespaceObject);
1550  __webpack_require__.d(build_module_site_logo_namespaceObject, {
1551    init: () => (site_logo_init),
1552    metadata: () => (site_logo_metadata),
1553    name: () => (site_logo_name),
1554    settings: () => (site_logo_settings)
1555  });
1556  
1557  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
1558  var site_tagline_namespaceObject = {};
1559  __webpack_require__.r(site_tagline_namespaceObject);
1560  __webpack_require__.d(site_tagline_namespaceObject, {
1561    init: () => (site_tagline_init),
1562    metadata: () => (site_tagline_metadata),
1563    name: () => (site_tagline_name),
1564    settings: () => (site_tagline_settings)
1565  });
1566  
1567  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/site-title/index.js
1568  var site_title_namespaceObject = {};
1569  __webpack_require__.r(site_title_namespaceObject);
1570  __webpack_require__.d(site_title_namespaceObject, {
1571    init: () => (site_title_init),
1572    metadata: () => (site_title_metadata),
1573    name: () => (site_title_name),
1574    settings: () => (site_title_settings)
1575  });
1576  
1577  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-link/index.js
1578  var social_link_namespaceObject = {};
1579  __webpack_require__.r(social_link_namespaceObject);
1580  __webpack_require__.d(social_link_namespaceObject, {
1581    init: () => (social_link_init),
1582    metadata: () => (social_link_metadata),
1583    name: () => (social_link_name),
1584    settings: () => (social_link_settings)
1585  });
1586  
1587  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-links/index.js
1588  var social_links_namespaceObject = {};
1589  __webpack_require__.r(social_links_namespaceObject);
1590  __webpack_require__.d(social_links_namespaceObject, {
1591    init: () => (social_links_init),
1592    metadata: () => (social_links_metadata),
1593    name: () => (social_links_name),
1594    settings: () => (social_links_settings)
1595  });
1596  
1597  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/spacer/index.js
1598  var spacer_namespaceObject = {};
1599  __webpack_require__.r(spacer_namespaceObject);
1600  __webpack_require__.d(spacer_namespaceObject, {
1601    init: () => (spacer_init),
1602    metadata: () => (spacer_metadata),
1603    name: () => (spacer_name),
1604    settings: () => (spacer_settings)
1605  });
1606  
1607  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table/index.js
1608  var build_module_table_namespaceObject = {};
1609  __webpack_require__.r(build_module_table_namespaceObject);
1610  __webpack_require__.d(build_module_table_namespaceObject, {
1611    init: () => (table_init),
1612    metadata: () => (table_metadata),
1613    name: () => (table_name),
1614    settings: () => (table_settings)
1615  });
1616  
1617  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table-of-contents/index.js
1618  var build_module_table_of_contents_namespaceObject = {};
1619  __webpack_require__.r(build_module_table_of_contents_namespaceObject);
1620  __webpack_require__.d(build_module_table_of_contents_namespaceObject, {
1621    init: () => (table_of_contents_init),
1622    metadata: () => (table_of_contents_metadata),
1623    name: () => (table_of_contents_name),
1624    settings: () => (table_of_contents_settings)
1625  });
1626  
1627  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
1628  var tag_cloud_namespaceObject = {};
1629  __webpack_require__.r(tag_cloud_namespaceObject);
1630  __webpack_require__.d(tag_cloud_namespaceObject, {
1631    init: () => (tag_cloud_init),
1632    metadata: () => (tag_cloud_metadata),
1633    name: () => (tag_cloud_name),
1634    settings: () => (tag_cloud_settings)
1635  });
1636  
1637  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/template-part/index.js
1638  var template_part_namespaceObject = {};
1639  __webpack_require__.r(template_part_namespaceObject);
1640  __webpack_require__.d(template_part_namespaceObject, {
1641    init: () => (template_part_init),
1642    metadata: () => (template_part_metadata),
1643    name: () => (template_part_name),
1644    settings: () => (template_part_settings)
1645  });
1646  
1647  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/term-description/index.js
1648  var build_module_term_description_namespaceObject = {};
1649  __webpack_require__.r(build_module_term_description_namespaceObject);
1650  __webpack_require__.d(build_module_term_description_namespaceObject, {
1651    init: () => (term_description_init),
1652    metadata: () => (term_description_metadata),
1653    name: () => (term_description_name),
1654    settings: () => (term_description_settings)
1655  });
1656  
1657  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
1658  var text_columns_namespaceObject = {};
1659  __webpack_require__.r(text_columns_namespaceObject);
1660  __webpack_require__.d(text_columns_namespaceObject, {
1661    init: () => (text_columns_init),
1662    metadata: () => (text_columns_metadata),
1663    name: () => (text_columns_name),
1664    settings: () => (text_columns_settings)
1665  });
1666  
1667  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/verse/index.js
1668  var build_module_verse_namespaceObject = {};
1669  __webpack_require__.r(build_module_verse_namespaceObject);
1670  __webpack_require__.d(build_module_verse_namespaceObject, {
1671    init: () => (verse_init),
1672    metadata: () => (verse_metadata),
1673    name: () => (verse_name),
1674    settings: () => (verse_settings)
1675  });
1676  
1677  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/video/index.js
1678  var build_module_video_namespaceObject = {};
1679  __webpack_require__.r(build_module_video_namespaceObject);
1680  __webpack_require__.d(build_module_video_namespaceObject, {
1681    init: () => (video_init),
1682    metadata: () => (video_metadata),
1683    name: () => (video_name),
1684    settings: () => (video_settings)
1685  });
1686  
1687  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/footnotes/index.js
1688  var footnotes_namespaceObject = {};
1689  __webpack_require__.r(footnotes_namespaceObject);
1690  __webpack_require__.d(footnotes_namespaceObject, {
1691    init: () => (footnotes_init),
1692    metadata: () => (footnotes_metadata),
1693    name: () => (footnotes_name),
1694    settings: () => (footnotes_settings)
1695  });
1696  
1697  ;// external ["wp","blocks"]
1698  const external_wp_blocks_namespaceObject = window["wp"]["blocks"];
1699  ;// external ["wp","primitives"]
1700  const external_wp_primitives_namespaceObject = window["wp"]["primitives"];
1701  ;// external "ReactJSXRuntime"
1702  const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"];
1703  ;// ./node_modules/@wordpress/icons/build-module/library/archive.js
1704  /**
1705   * WordPress dependencies
1706   */
1707  
1708  
1709  const archive = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
1710    viewBox: "0 0 24 24",
1711    xmlns: "http://www.w3.org/2000/svg",
1712    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
1713      fillRule: "evenodd",
1714      clipRule: "evenodd",
1715      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"
1716    })
1717  });
1718  /* harmony default export */ const library_archive = (archive);
1719  
1720  ;// ./node_modules/@wordpress/block-library/build-module/utils/init-block.js
1721  /**
1722   * WordPress dependencies
1723   */
1724  
1725  
1726  /**
1727   * Function to register an individual block.
1728   *
1729   * @param {Object} block The block to be registered.
1730   *
1731   * @return {WPBlockType | undefined} The block, if it has been successfully registered;
1732   *                        otherwise `undefined`.
1733   */
1734  function initBlock(block) {
1735    if (!block) {
1736      return;
1737    }
1738    const {
1739      metadata,
1740      settings,
1741      name
1742    } = block;
1743    return (0,external_wp_blocks_namespaceObject.registerBlockType)({
1744      name,
1745      ...metadata
1746    }, settings);
1747  }
1748  
1749  ;// external ["wp","components"]
1750  const external_wp_components_namespaceObject = window["wp"]["components"];
1751  ;// external ["wp","i18n"]
1752  const external_wp_i18n_namespaceObject = window["wp"]["i18n"];
1753  ;// external ["wp","blockEditor"]
1754  const external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
1755  ;// external ["wp","serverSideRender"]
1756  const external_wp_serverSideRender_namespaceObject = window["wp"]["serverSideRender"];
1757  var external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_namespaceObject);
1758  ;// external ["wp","data"]
1759  const external_wp_data_namespaceObject = window["wp"]["data"];
1760  ;// external ["wp","element"]
1761  const external_wp_element_namespaceObject = window["wp"]["element"];
1762  ;// external ["wp","blob"]
1763  const external_wp_blob_namespaceObject = window["wp"]["blob"];
1764  ;// external ["wp","coreData"]
1765  const external_wp_coreData_namespaceObject = window["wp"]["coreData"];
1766  ;// external ["wp","compose"]
1767  const external_wp_compose_namespaceObject = window["wp"]["compose"];
1768  ;// ./node_modules/@wordpress/block-library/build-module/utils/hooks.js
1769  /**
1770   * WordPress dependencies
1771   */
1772  
1773  
1774  
1775  
1776  
1777  
1778  
1779  /**
1780   * Returns whether the current user can edit the given entity.
1781   *
1782   * @param {string} kind     Entity kind.
1783   * @param {string} name     Entity name.
1784   * @param {string} recordId Record's id.
1785   */
1786  function useCanEditEntity(kind, name, recordId) {
1787    return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).canUser('update', {
1788      kind,
1789      name,
1790      id: recordId
1791    }), [kind, name, recordId]);
1792  }
1793  
1794  /**
1795   * Handles uploading a media file from a blob URL on mount.
1796   *
1797   * @param {Object}   args              Upload media arguments.
1798   * @param {string}   args.url          Blob URL.
1799   * @param {?Array}   args.allowedTypes Array of allowed media types.
1800   * @param {Function} args.onChange     Function called when the media is uploaded.
1801   * @param {Function} args.onError      Function called when an error happens.
1802   */
1803  function useUploadMediaFromBlobURL(args = {}) {
1804    const latestArgsRef = (0,external_wp_element_namespaceObject.useRef)(args);
1805    const hasUploadStartedRef = (0,external_wp_element_namespaceObject.useRef)(false);
1806    const {
1807      getSettings
1808    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
1809    (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
1810      latestArgsRef.current = args;
1811    });
1812    (0,external_wp_element_namespaceObject.useEffect)(() => {
1813      // Uploading is a special effect that can't be canceled via the cleanup method.
1814      // The extra check avoids duplicate uploads in development mode (React.StrictMode).
1815      if (hasUploadStartedRef.current) {
1816        return;
1817      }
1818      if (!latestArgsRef.current.url || !(0,external_wp_blob_namespaceObject.isBlobURL)(latestArgsRef.current.url)) {
1819        return;
1820      }
1821      const file = (0,external_wp_blob_namespaceObject.getBlobByURL)(latestArgsRef.current.url);
1822      if (!file) {
1823        return;
1824      }
1825      const {
1826        url,
1827        allowedTypes,
1828        onChange,
1829        onError
1830      } = latestArgsRef.current;
1831      const {
1832        mediaUpload
1833      } = getSettings();
1834      hasUploadStartedRef.current = true;
1835      mediaUpload({
1836        filesList: [file],
1837        allowedTypes,
1838        onFileChange: ([media]) => {
1839          if ((0,external_wp_blob_namespaceObject.isBlobURL)(media?.url)) {
1840            return;
1841          }
1842          (0,external_wp_blob_namespaceObject.revokeBlobURL)(url);
1843          onChange(media);
1844          hasUploadStartedRef.current = false;
1845        },
1846        onError: message => {
1847          (0,external_wp_blob_namespaceObject.revokeBlobURL)(url);
1848          onError(message);
1849          hasUploadStartedRef.current = false;
1850        }
1851      });
1852    }, [getSettings]);
1853  }
1854  function useToolsPanelDropdownMenuProps() {
1855    const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
1856    return !isMobile ? {
1857      popoverProps: {
1858        placement: 'left-start',
1859        // For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)
1860        offset: 259
1861      }
1862    } : {};
1863  }
1864  
1865  ;// ./node_modules/@wordpress/block-library/build-module/archives/edit.js
1866  /**
1867   * WordPress dependencies
1868   */
1869  
1870  
1871  
1872  
1873  
1874  /**
1875   * Internal dependencies
1876   */
1877  
1878  
1879  function ArchivesEdit({
1880    attributes,
1881    setAttributes
1882  }) {
1883    const {
1884      showLabel,
1885      showPostCounts,
1886      displayAsDropdown,
1887      type
1888    } = attributes;
1889    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
1890    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
1891      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
1892        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
1893          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
1894          resetAll: () => {
1895            setAttributes({
1896              displayAsDropdown: false,
1897              showLabel: false,
1898              showPostCounts: false,
1899              type: 'monthly'
1900            });
1901          },
1902          dropdownMenuProps: dropdownMenuProps,
1903          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
1904            label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
1905            isShownByDefault: true,
1906            hasValue: () => displayAsDropdown,
1907            onDeselect: () => setAttributes({
1908              displayAsDropdown: false
1909            }),
1910            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
1911              __nextHasNoMarginBottom: true,
1912              label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
1913              checked: displayAsDropdown,
1914              onChange: () => setAttributes({
1915                displayAsDropdown: !displayAsDropdown
1916              })
1917            })
1918          }), displayAsDropdown && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
1919            label: (0,external_wp_i18n_namespaceObject.__)('Show label'),
1920            isShownByDefault: true,
1921            hasValue: () => !showLabel,
1922            onDeselect: () => setAttributes({
1923              showLabel: false
1924            }),
1925            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
1926              __nextHasNoMarginBottom: true,
1927              label: (0,external_wp_i18n_namespaceObject.__)('Show label'),
1928              checked: showLabel,
1929              onChange: () => setAttributes({
1930                showLabel: !showLabel
1931              })
1932            })
1933          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
1934            label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
1935            isShownByDefault: true,
1936            hasValue: () => showPostCounts,
1937            onDeselect: () => setAttributes({
1938              showPostCounts: false
1939            }),
1940            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
1941              __nextHasNoMarginBottom: true,
1942              label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
1943              checked: showPostCounts,
1944              onChange: () => setAttributes({
1945                showPostCounts: !showPostCounts
1946              })
1947            })
1948          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
1949            label: (0,external_wp_i18n_namespaceObject.__)('Group by'),
1950            isShownByDefault: true,
1951            hasValue: () => type !== 'monthly',
1952            onDeselect: () => setAttributes({
1953              type: 'monthly'
1954            }),
1955            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
1956              __next40pxDefaultSize: true,
1957              __nextHasNoMarginBottom: true,
1958              label: (0,external_wp_i18n_namespaceObject.__)('Group by'),
1959              options: [{
1960                label: (0,external_wp_i18n_namespaceObject.__)('Year'),
1961                value: 'yearly'
1962              }, {
1963                label: (0,external_wp_i18n_namespaceObject.__)('Month'),
1964                value: 'monthly'
1965              }, {
1966                label: (0,external_wp_i18n_namespaceObject.__)('Week'),
1967                value: 'weekly'
1968              }, {
1969                label: (0,external_wp_i18n_namespaceObject.__)('Day'),
1970                value: 'daily'
1971              }],
1972              value: type,
1973              onChange: value => setAttributes({
1974                type: value
1975              })
1976            })
1977          })]
1978        })
1979      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
1980        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
1981        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
1982          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
1983            block: "core/archives",
1984            skipBlockSupportAttributes: true,
1985            attributes: attributes
1986          })
1987        })
1988      })]
1989    });
1990  }
1991  
1992  ;// ./node_modules/@wordpress/block-library/build-module/archives/index.js
1993  /**
1994   * WordPress dependencies
1995   */
1996  
1997  
1998  /**
1999   * Internal dependencies
2000   */
2001  
2002  const metadata = {
2003    $schema: "https://schemas.wp.org/trunk/block.json",
2004    apiVersion: 3,
2005    name: "core/archives",
2006    title: "Archives",
2007    category: "widgets",
2008    description: "Display a date archive of your posts.",
2009    textdomain: "default",
2010    attributes: {
2011      displayAsDropdown: {
2012        type: "boolean",
2013        "default": false
2014      },
2015      showLabel: {
2016        type: "boolean",
2017        "default": true
2018      },
2019      showPostCounts: {
2020        type: "boolean",
2021        "default": false
2022      },
2023      type: {
2024        type: "string",
2025        "default": "monthly"
2026      }
2027    },
2028    supports: {
2029      align: true,
2030      __experimentalBorder: {
2031        radius: true,
2032        color: true,
2033        width: true,
2034        style: true
2035      },
2036      html: false,
2037      spacing: {
2038        margin: true,
2039        padding: true,
2040        __experimentalDefaultControls: {
2041          margin: false,
2042          padding: false
2043        }
2044      },
2045      typography: {
2046        fontSize: true,
2047        lineHeight: true,
2048        __experimentalFontFamily: true,
2049        __experimentalFontWeight: true,
2050        __experimentalFontStyle: true,
2051        __experimentalTextTransform: true,
2052        __experimentalTextDecoration: true,
2053        __experimentalLetterSpacing: true,
2054        __experimentalDefaultControls: {
2055          fontSize: true
2056        }
2057      },
2058      color: {
2059        gradients: true,
2060        link: true,
2061        __experimentalDefaultControls: {
2062          background: true,
2063          text: true,
2064          link: true
2065        }
2066      },
2067      interactivity: {
2068        clientNavigation: true
2069      }
2070    },
2071    editorStyle: "wp-block-archives-editor"
2072  };
2073  
2074  const {
2075    name: archives_name
2076  } = metadata;
2077  
2078  const settings = {
2079    icon: library_archive,
2080    example: {},
2081    edit: ArchivesEdit
2082  };
2083  const init = () => initBlock({
2084    name: archives_name,
2085    metadata,
2086    settings
2087  });
2088  
2089  ;// ./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js
2090  /**
2091   * WordPress dependencies
2092   */
2093  
2094  
2095  const commentAuthorAvatar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
2096    xmlns: "http://www.w3.org/2000/svg",
2097    viewBox: "0 0 24 24",
2098    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
2099      fillRule: "evenodd",
2100      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",
2101      clipRule: "evenodd"
2102    })
2103  });
2104  /* harmony default export */ const comment_author_avatar = (commentAuthorAvatar);
2105  
2106  ;// ./node_modules/clsx/dist/clsx.mjs
2107  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);
2108  ;// external ["wp","url"]
2109  const external_wp_url_namespaceObject = window["wp"]["url"];
2110  ;// ./node_modules/@wordpress/block-library/build-module/avatar/hooks.js
2111  /**
2112   * WordPress dependencies
2113   */
2114  
2115  
2116  
2117  
2118  function getAvatarSizes(sizes) {
2119    const minSize = sizes ? sizes[0] : 24;
2120    const maxSize = sizes ? sizes[sizes.length - 1] : 96;
2121    const maxSizeBuffer = Math.floor(maxSize * 2.5);
2122    return {
2123      minSize,
2124      maxSize: maxSizeBuffer
2125    };
2126  }
2127  function useDefaultAvatar() {
2128    const {
2129      avatarURL: defaultAvatarUrl
2130    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
2131      const {
2132        getSettings
2133      } = select(external_wp_blockEditor_namespaceObject.store);
2134      const {
2135        __experimentalDiscussionSettings
2136      } = getSettings();
2137      return __experimentalDiscussionSettings;
2138    });
2139    return defaultAvatarUrl;
2140  }
2141  function useCommentAvatar({
2142    commentId
2143  }) {
2144    const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId);
2145    const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId);
2146    const avatarUrls = avatars ? Object.values(avatars) : null;
2147    const sizes = avatars ? Object.keys(avatars) : null;
2148    const {
2149      minSize,
2150      maxSize
2151    } = getAvatarSizes(sizes);
2152    const defaultAvatar = useDefaultAvatar();
2153    return {
2154      src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
2155      minSize,
2156      maxSize,
2157      alt: authorName ?
2158      // translators: %s: Author name.
2159      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorName) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
2160    };
2161  }
2162  function useUserAvatar({
2163    userId,
2164    postId,
2165    postType
2166  }) {
2167    const {
2168      authorDetails
2169    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
2170      const {
2171        getEditedEntityRecord,
2172        getUser
2173      } = select(external_wp_coreData_namespaceObject.store);
2174      if (userId) {
2175        return {
2176          authorDetails: getUser(userId)
2177        };
2178      }
2179      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
2180      return {
2181        authorDetails: _authorId ? getUser(_authorId) : null
2182      };
2183    }, [postType, postId, userId]);
2184    const avatarUrls = authorDetails?.avatar_urls ? Object.values(authorDetails.avatar_urls) : null;
2185    const sizes = authorDetails?.avatar_urls ? Object.keys(authorDetails.avatar_urls) : null;
2186    const {
2187      minSize,
2188      maxSize
2189    } = getAvatarSizes(sizes);
2190    const defaultAvatar = useDefaultAvatar();
2191    return {
2192      src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : defaultAvatar,
2193      minSize,
2194      maxSize,
2195      alt: authorDetails ?
2196      // translators: %s: Author name.
2197      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s Avatar'), authorDetails?.name) : (0,external_wp_i18n_namespaceObject.__)('Default Avatar')
2198    };
2199  }
2200  
2201  ;// ./node_modules/@wordpress/block-library/build-module/avatar/user-control.js
2202  /**
2203   * WordPress dependencies
2204   */
2205  
2206  
2207  
2208  
2209  
2210  
2211  const AUTHORS_QUERY = {
2212    who: 'authors',
2213    per_page: -1,
2214    _fields: 'id,name',
2215    context: 'view'
2216  };
2217  function UserControl({
2218    value,
2219    onChange
2220  }) {
2221    const [filteredAuthorsList, setFilteredAuthorsList] = (0,external_wp_element_namespaceObject.useState)();
2222    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
2223      const {
2224        getUsers
2225      } = select(external_wp_coreData_namespaceObject.store);
2226      return getUsers(AUTHORS_QUERY);
2227    }, []);
2228    if (!authorsList) {
2229      return null;
2230    }
2231    const options = authorsList.map(author => {
2232      return {
2233        label: author.name,
2234        value: author.id
2235      };
2236    });
2237    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
2238      __next40pxDefaultSize: true,
2239      __nextHasNoMarginBottom: true,
2240      label: (0,external_wp_i18n_namespaceObject.__)('User'),
2241      help: (0,external_wp_i18n_namespaceObject.__)('Select the avatar user to display, if it is blank it will use the post/page author.'),
2242      value: value,
2243      onChange: onChange,
2244      options: filteredAuthorsList || options,
2245      onFilterValueChange: inputValue => setFilteredAuthorsList(options.filter(option => option.label.toLowerCase().startsWith(inputValue.toLowerCase())))
2246    });
2247  }
2248  /* harmony default export */ const user_control = (UserControl);
2249  
2250  ;// ./node_modules/@wordpress/block-library/build-module/avatar/edit.js
2251  /**
2252   * External dependencies
2253   */
2254  
2255  
2256  /**
2257   * WordPress dependencies
2258   */
2259  
2260  
2261  
2262  
2263  
2264  /**
2265   * Internal dependencies
2266   */
2267  
2268  
2269  
2270  const AvatarInspectorControls = ({
2271    setAttributes,
2272    avatar,
2273    attributes,
2274    selectUser
2275  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
2276    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
2277      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
2278      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
2279        __nextHasNoMarginBottom: true,
2280        __next40pxDefaultSize: true,
2281        label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
2282        onChange: newSize => setAttributes({
2283          size: newSize
2284        }),
2285        min: avatar.minSize,
2286        max: avatar.maxSize,
2287        initialPosition: attributes?.size,
2288        value: attributes?.size
2289      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
2290        __nextHasNoMarginBottom: true,
2291        label: (0,external_wp_i18n_namespaceObject.__)('Link to user profile'),
2292        onChange: () => setAttributes({
2293          isLink: !attributes.isLink
2294        }),
2295        checked: attributes.isLink
2296      }), attributes.isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
2297        __nextHasNoMarginBottom: true,
2298        label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
2299        onChange: value => setAttributes({
2300          linkTarget: value ? '_blank' : '_self'
2301        }),
2302        checked: attributes.linkTarget === '_blank'
2303      }), selectUser && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(user_control, {
2304        value: attributes?.userId,
2305        onChange: value => {
2306          setAttributes({
2307            userId: value
2308          });
2309        }
2310      })]
2311    })
2312  });
2313  const ResizableAvatar = ({
2314    setAttributes,
2315    attributes,
2316    avatar,
2317    blockProps,
2318    isSelected
2319  }) => {
2320    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
2321    const doubledSizedSrc = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(avatar?.src, ['s']), {
2322      s: attributes?.size * 2
2323    });
2324    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
2325      ...blockProps,
2326      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
2327        size: {
2328          width: attributes.size,
2329          height: attributes.size
2330        },
2331        showHandle: isSelected,
2332        onResizeStop: (event, direction, elt, delta) => {
2333          setAttributes({
2334            size: parseInt(attributes.size + (delta.height || delta.width), 10)
2335          });
2336        },
2337        lockAspectRatio: true,
2338        enable: {
2339          top: false,
2340          right: !(0,external_wp_i18n_namespaceObject.isRTL)(),
2341          bottom: true,
2342          left: (0,external_wp_i18n_namespaceObject.isRTL)()
2343        },
2344        minWidth: avatar.minSize,
2345        maxWidth: avatar.maxSize,
2346        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
2347          src: doubledSizedSrc,
2348          alt: avatar.alt,
2349          className: dist_clsx('avatar', 'avatar-' + attributes.size, 'photo', 'wp-block-avatar__image', borderProps.className),
2350          style: borderProps.style
2351        })
2352      })
2353    });
2354  };
2355  const CommentEdit = ({
2356    attributes,
2357    context,
2358    setAttributes,
2359    isSelected
2360  }) => {
2361    const {
2362      commentId
2363    } = context;
2364    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
2365    const avatar = useCommentAvatar({
2366      commentId
2367    });
2368    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
2369      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AvatarInspectorControls, {
2370        avatar: avatar,
2371        setAttributes: setAttributes,
2372        attributes: attributes,
2373        selectUser: false
2374      }), attributes.isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
2375        href: "#avatar-pseudo-link",
2376        className: "wp-block-avatar__link",
2377        onClick: event => event.preventDefault(),
2378        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2379          attributes: attributes,
2380          avatar: avatar,
2381          blockProps: blockProps,
2382          isSelected: isSelected,
2383          setAttributes: setAttributes
2384        })
2385      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2386        attributes: attributes,
2387        avatar: avatar,
2388        blockProps: blockProps,
2389        isSelected: isSelected,
2390        setAttributes: setAttributes
2391      })]
2392    });
2393  };
2394  const UserEdit = ({
2395    attributes,
2396    context,
2397    setAttributes,
2398    isSelected
2399  }) => {
2400    const {
2401      postId,
2402      postType
2403    } = context;
2404    const avatar = useUserAvatar({
2405      userId: attributes?.userId,
2406      postId,
2407      postType
2408    });
2409    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
2410    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
2411      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AvatarInspectorControls, {
2412        selectUser: true,
2413        attributes: attributes,
2414        avatar: avatar,
2415        setAttributes: setAttributes
2416      }), attributes.isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
2417        href: "#avatar-pseudo-link",
2418        className: "wp-block-avatar__link",
2419        onClick: event => event.preventDefault(),
2420        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2421          attributes: attributes,
2422          avatar: avatar,
2423          blockProps: blockProps,
2424          isSelected: isSelected,
2425          setAttributes: setAttributes
2426        })
2427      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableAvatar, {
2428        attributes: attributes,
2429        avatar: avatar,
2430        blockProps: blockProps,
2431        isSelected: isSelected,
2432        setAttributes: setAttributes
2433      })]
2434    });
2435  };
2436  function Edit(props) {
2437    // 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`).
2438    if (props?.context?.commentId || props?.context?.commentId === null) {
2439      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentEdit, {
2440        ...props
2441      });
2442    }
2443    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(UserEdit, {
2444      ...props
2445    });
2446  }
2447  
2448  ;// ./node_modules/@wordpress/block-library/build-module/avatar/index.js
2449  /**
2450   * WordPress dependencies
2451   */
2452  
2453  
2454  /**
2455   * Internal dependencies
2456   */
2457  
2458  const avatar_metadata = {
2459    $schema: "https://schemas.wp.org/trunk/block.json",
2460    apiVersion: 3,
2461    name: "core/avatar",
2462    title: "Avatar",
2463    category: "theme",
2464    description: "Add a user\u2019s avatar.",
2465    textdomain: "default",
2466    attributes: {
2467      userId: {
2468        type: "number"
2469      },
2470      size: {
2471        type: "number",
2472        "default": 96
2473      },
2474      isLink: {
2475        type: "boolean",
2476        "default": false
2477      },
2478      linkTarget: {
2479        type: "string",
2480        "default": "_self"
2481      }
2482    },
2483    usesContext: ["postType", "postId", "commentId"],
2484    supports: {
2485      html: false,
2486      align: true,
2487      alignWide: false,
2488      spacing: {
2489        margin: true,
2490        padding: true,
2491        __experimentalDefaultControls: {
2492          margin: false,
2493          padding: false
2494        }
2495      },
2496      __experimentalBorder: {
2497        __experimentalSkipSerialization: true,
2498        radius: true,
2499        width: true,
2500        color: true,
2501        style: true,
2502        __experimentalDefaultControls: {
2503          radius: true
2504        }
2505      },
2506      color: {
2507        text: false,
2508        background: false,
2509        __experimentalDuotone: "img"
2510      },
2511      interactivity: {
2512        clientNavigation: true
2513      }
2514    },
2515    selectors: {
2516      border: ".wp-block-avatar img"
2517    },
2518    editorStyle: "wp-block-avatar-editor",
2519    style: "wp-block-avatar"
2520  };
2521  
2522  const {
2523    name: avatar_name
2524  } = avatar_metadata;
2525  
2526  const avatar_settings = {
2527    icon: comment_author_avatar,
2528    edit: Edit,
2529    example: {}
2530  };
2531  const avatar_init = () => initBlock({
2532    name: avatar_name,
2533    metadata: avatar_metadata,
2534    settings: avatar_settings
2535  });
2536  
2537  ;// ./node_modules/@wordpress/icons/build-module/library/audio.js
2538  /**
2539   * WordPress dependencies
2540   */
2541  
2542  
2543  const audio = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
2544    viewBox: "0 0 24 24",
2545    xmlns: "http://www.w3.org/2000/svg",
2546    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
2547      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"
2548    })
2549  });
2550  /* harmony default export */ const library_audio = (audio);
2551  
2552  ;// ./node_modules/@wordpress/block-library/build-module/audio/deprecated.js
2553  /**
2554   * WordPress dependencies
2555   */
2556  
2557  
2558  /* harmony default export */ const deprecated = ([{
2559    attributes: {
2560      src: {
2561        type: 'string',
2562        source: 'attribute',
2563        selector: 'audio',
2564        attribute: 'src'
2565      },
2566      caption: {
2567        type: 'string',
2568        source: 'html',
2569        selector: 'figcaption'
2570      },
2571      id: {
2572        type: 'number'
2573      },
2574      autoplay: {
2575        type: 'boolean',
2576        source: 'attribute',
2577        selector: 'audio',
2578        attribute: 'autoplay'
2579      },
2580      loop: {
2581        type: 'boolean',
2582        source: 'attribute',
2583        selector: 'audio',
2584        attribute: 'loop'
2585      },
2586      preload: {
2587        type: 'string',
2588        source: 'attribute',
2589        selector: 'audio',
2590        attribute: 'preload'
2591      }
2592    },
2593    supports: {
2594      align: true
2595    },
2596    save({
2597      attributes
2598    }) {
2599      const {
2600        autoplay,
2601        caption,
2602        loop,
2603        preload,
2604        src
2605      } = attributes;
2606      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
2607        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("audio", {
2608          controls: "controls",
2609          src: src,
2610          autoPlay: autoplay,
2611          loop: loop,
2612          preload: preload
2613        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
2614          tagName: "figcaption",
2615          value: caption
2616        })]
2617      });
2618    }
2619  }]);
2620  
2621  ;// external ["wp","notices"]
2622  const external_wp_notices_namespaceObject = window["wp"]["notices"];
2623  ;// ./node_modules/memize/dist/index.js
2624  /**
2625   * Memize options object.
2626   *
2627   * @typedef MemizeOptions
2628   *
2629   * @property {number} [maxSize] Maximum size of the cache.
2630   */
2631  
2632  /**
2633   * Internal cache entry.
2634   *
2635   * @typedef MemizeCacheNode
2636   *
2637   * @property {?MemizeCacheNode|undefined} [prev] Previous node.
2638   * @property {?MemizeCacheNode|undefined} [next] Next node.
2639   * @property {Array<*>}                   args   Function arguments for cache
2640   *                                               entry.
2641   * @property {*}                          val    Function result.
2642   */
2643  
2644  /**
2645   * Properties of the enhanced function for controlling cache.
2646   *
2647   * @typedef MemizeMemoizedFunction
2648   *
2649   * @property {()=>void} clear Clear the cache.
2650   */
2651  
2652  /**
2653   * Accepts a function to be memoized, and returns a new memoized function, with
2654   * optional options.
2655   *
2656   * @template {(...args: any[]) => any} F
2657   *
2658   * @param {F}             fn        Function to memoize.
2659   * @param {MemizeOptions} [options] Options object.
2660   *
2661   * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function.
2662   */
2663  function memize(fn, options) {
2664      var size = 0;
2665  
2666      /** @type {?MemizeCacheNode|undefined} */
2667      var head;
2668  
2669      /** @type {?MemizeCacheNode|undefined} */
2670      var tail;
2671  
2672      options = options || {};
2673  
2674  	function memoized(/* ...args */) {
2675          var node = head,
2676              len = arguments.length,
2677              args,
2678              i;
2679  
2680          searchCache: while (node) {
2681              // Perform a shallow equality test to confirm that whether the node
2682              // under test is a candidate for the arguments passed. Two arrays
2683              // are shallowly equal if their length matches and each entry is
2684              // strictly equal between the two sets. Avoid abstracting to a
2685              // function which could incur an arguments leaking deoptimization.
2686  
2687              // Check whether node arguments match arguments length
2688              if (node.args.length !== arguments.length) {
2689                  node = node.next;
2690                  continue;
2691              }
2692  
2693              // Check whether node arguments match arguments values
2694              for (i = 0; i < len; i++) {
2695                  if (node.args[i] !== arguments[i]) {
2696                      node = node.next;
2697                      continue searchCache;
2698                  }
2699              }
2700  
2701              // At this point we can assume we've found a match
2702  
2703              // Surface matched node to head if not already
2704              if (node !== head) {
2705                  // As tail, shift to previous. Must only shift if not also
2706                  // head, since if both head and tail, there is no previous.
2707                  if (node === tail) {
2708                      tail = node.prev;
2709                  }
2710  
2711                  // Adjust siblings to point to each other. If node was tail,
2712                  // this also handles new tail's empty `next` assignment.
2713                  /** @type {MemizeCacheNode} */ (node.prev).next = node.next;
2714                  if (node.next) {
2715                      node.next.prev = node.prev;
2716                  }
2717  
2718                  node.next = head;
2719                  node.prev = null;
2720                  /** @type {MemizeCacheNode} */ (head).prev = node;
2721                  head = node;
2722              }
2723  
2724              // Return immediately
2725              return node.val;
2726          }
2727  
2728          // No cached value found. Continue to insertion phase:
2729  
2730          // Create a copy of arguments (avoid leaking deoptimization)
2731          args = new Array(len);
2732          for (i = 0; i < len; i++) {
2733              args[i] = arguments[i];
2734          }
2735  
2736          node = {
2737              args: args,
2738  
2739              // Generate the result from original function
2740              val: fn.apply(null, args),
2741          };
2742  
2743          // Don't need to check whether node is already head, since it would
2744          // have been returned above already if it was
2745  
2746          // Shift existing head down list
2747          if (head) {
2748              head.prev = node;
2749              node.next = head;
2750          } else {
2751              // If no head, follows that there's no tail (at initial or reset)
2752              tail = node;
2753          }
2754  
2755          // Trim tail if we're reached max size and are pending cache insertion
2756          if (size === /** @type {MemizeOptions} */ (options).maxSize) {
2757              tail = /** @type {MemizeCacheNode} */ (tail).prev;
2758              /** @type {MemizeCacheNode} */ (tail).next = null;
2759          } else {
2760              size++;
2761          }
2762  
2763          head = node;
2764  
2765          return node.val;
2766      }
2767  
2768      memoized.clear = function () {
2769          head = null;
2770          tail = null;
2771          size = 0;
2772      };
2773  
2774      // Ignore reason: There's not a clear solution to create an intersection of
2775      // the function with additional properties, where the goal is to retain the
2776      // function signature of the incoming argument and add control properties
2777      // on the return value.
2778  
2779      // @ts-ignore
2780      return memoized;
2781  }
2782  
2783  
2784  
2785  ;// ./node_modules/@wordpress/block-library/build-module/embed/constants.js
2786  const ASPECT_RATIOS = [
2787  // Common video resolutions.
2788  {
2789    ratio: '2.33',
2790    className: 'wp-embed-aspect-21-9'
2791  }, {
2792    ratio: '2.00',
2793    className: 'wp-embed-aspect-18-9'
2794  }, {
2795    ratio: '1.78',
2796    className: 'wp-embed-aspect-16-9'
2797  }, {
2798    ratio: '1.33',
2799    className: 'wp-embed-aspect-4-3'
2800  },
2801  // Vertical video and instagram square video support.
2802  {
2803    ratio: '1.00',
2804    className: 'wp-embed-aspect-1-1'
2805  }, {
2806    ratio: '0.56',
2807    className: 'wp-embed-aspect-9-16'
2808  }, {
2809    ratio: '0.50',
2810    className: 'wp-embed-aspect-1-2'
2811  }];
2812  const WP_EMBED_TYPE = 'wp-embed';
2813  
2814  ;// external ["wp","privateApis"]
2815  const external_wp_privateApis_namespaceObject = window["wp"]["privateApis"];
2816  ;// ./node_modules/@wordpress/block-library/build-module/lock-unlock.js
2817  /**
2818   * WordPress dependencies
2819   */
2820  
2821  const {
2822    lock,
2823    unlock
2824  } = (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');
2825  
2826  ;// ./node_modules/@wordpress/block-library/build-module/embed/util.js
2827  /**
2828   * External dependencies
2829   */
2830  
2831  
2832  
2833  /**
2834   * WordPress dependencies
2835   */
2836  
2837  
2838  
2839  
2840  /**
2841   * Internal dependencies
2842   */
2843  const util_metadata = {
2844    $schema: "https://schemas.wp.org/trunk/block.json",
2845    apiVersion: 3,
2846    name: "core/embed",
2847    title: "Embed",
2848    category: "embed",
2849    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
2850    textdomain: "default",
2851    attributes: {
2852      url: {
2853        type: "string",
2854        role: "content"
2855      },
2856      caption: {
2857        type: "rich-text",
2858        source: "rich-text",
2859        selector: "figcaption",
2860        role: "content"
2861      },
2862      type: {
2863        type: "string",
2864        role: "content"
2865      },
2866      providerNameSlug: {
2867        type: "string",
2868        role: "content"
2869      },
2870      allowResponsive: {
2871        type: "boolean",
2872        "default": true
2873      },
2874      responsive: {
2875        type: "boolean",
2876        "default": false,
2877        role: "content"
2878      },
2879      previewable: {
2880        type: "boolean",
2881        "default": true,
2882        role: "content"
2883      }
2884    },
2885    supports: {
2886      align: true,
2887      spacing: {
2888        margin: true
2889      },
2890      interactivity: {
2891        clientNavigation: true
2892      }
2893    },
2894    editorStyle: "wp-block-embed-editor",
2895    style: "wp-block-embed"
2896  };
2897  
2898  
2899  
2900  const {
2901    name: DEFAULT_EMBED_BLOCK
2902  } = util_metadata;
2903  const {
2904    kebabCase
2905  } = unlock(external_wp_components_namespaceObject.privateApis);
2906  
2907  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
2908  
2909  /**
2910   * Returns the embed block's information by matching the provided service provider
2911   *
2912   * @param {string} provider The embed block's provider
2913   * @return {WPBlockVariation} The embed block's information
2914   */
2915  const getEmbedInfoByProvider = provider => (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)?.find(({
2916    name
2917  }) => name === provider);
2918  
2919  /**
2920   * Returns true if any of the regular expressions match the URL.
2921   *
2922   * @param {string} url      The URL to test.
2923   * @param {Array}  patterns The list of regular expressions to test against.
2924   * @return {boolean} True if any of the regular expressions match the URL.
2925   */
2926  const matchesPatterns = (url, patterns = []) => patterns.some(pattern => url.match(pattern));
2927  
2928  /**
2929   * Finds the block variation that should be used for the URL,
2930   * based on the provided URL and the variation's patterns.
2931   *
2932   * @param {string} url The URL to test.
2933   * @return {WPBlockVariation} The block variation that should be used for this URL
2934   */
2935  const findMoreSuitableBlock = url => (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)?.find(({
2936    patterns
2937  }) => matchesPatterns(url, patterns));
2938  const isFromWordPress = html => html && html.includes('class="wp-embedded-content"');
2939  const getPhotoHtml = photo => {
2940    // If full image url not found use thumbnail.
2941    const imageUrl = photo.url || photo.thumbnail_url;
2942  
2943    // 100% width for the preview so it fits nicely into the document, some "thumbnails" are
2944    // actually the full size photo.
2945    const photoPreview = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
2946      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
2947        src: imageUrl,
2948        alt: photo.title,
2949        width: "100%"
2950      })
2951    });
2952    return (0,external_wp_element_namespaceObject.renderToString)(photoPreview);
2953  };
2954  
2955  /**
2956   * Creates a more suitable embed block based on the passed in props
2957   * and attributes generated from an embed block's preview.
2958   *
2959   * We require `attributesFromPreview` to be generated from the latest attributes
2960   * and preview, and because of the way the react lifecycle operates, we can't
2961   * guarantee that the attributes contained in the block's props are the latest
2962   * versions, so we require that these are generated separately.
2963   * See `getAttributesFromPreview` in the generated embed edit component.
2964   *
2965   * @param {Object} props                   The block's props.
2966   * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.
2967   * @return {Object|undefined} A more suitable embed block if one exists.
2968   */
2969  const createUpgradedEmbedBlock = (props, attributesFromPreview = {}) => {
2970    const {
2971      preview,
2972      attributes = {}
2973    } = props;
2974    const {
2975      url,
2976      providerNameSlug,
2977      type,
2978      ...restAttributes
2979    } = attributes;
2980    if (!url || !(0,external_wp_blocks_namespaceObject.getBlockType)(DEFAULT_EMBED_BLOCK)) {
2981      return;
2982    }
2983    const matchedBlock = findMoreSuitableBlock(url);
2984  
2985    // WordPress blocks can work on multiple sites, and so don't have patterns,
2986    // so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.
2987    const isCurrentBlockWP = providerNameSlug === 'wordpress' || type === WP_EMBED_TYPE;
2988    // If current block is not WordPress and a more suitable block found
2989    // that is different from the current one, create the new matched block.
2990    const shouldCreateNewBlock = !isCurrentBlockWP && matchedBlock && (matchedBlock.attributes.providerNameSlug !== providerNameSlug || !providerNameSlug);
2991    if (shouldCreateNewBlock) {
2992      return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
2993        url,
2994        ...restAttributes,
2995        ...matchedBlock.attributes
2996      });
2997    }
2998    const wpVariation = (0,external_wp_blocks_namespaceObject.getBlockVariations)(DEFAULT_EMBED_BLOCK)?.find(({
2999      name
3000    }) => name === 'wordpress');
3001  
3002    // We can't match the URL for WordPress embeds, we have to check the HTML instead.
3003    if (!wpVariation || !preview || !isFromWordPress(preview.html) || isCurrentBlockWP) {
3004      return;
3005    }
3006  
3007    // This is not the WordPress embed block so transform it into one.
3008    return (0,external_wp_blocks_namespaceObject.createBlock)(DEFAULT_EMBED_BLOCK, {
3009      url,
3010      ...wpVariation.attributes,
3011      // By now we have the preview, but when the new block first renders, it
3012      // won't have had all the attributes set, and so won't get the correct
3013      // type and it won't render correctly. So, we pass through the current attributes
3014      // here so that the initial render works when we switch to the WordPress
3015      // block. This only affects the WordPress block because it can't be
3016      // rendered in the usual Sandbox (it has a sandbox of its own) and it
3017      // relies on the preview to set the correct render type.
3018      ...attributesFromPreview
3019    });
3020  };
3021  
3022  /**
3023   * Determine if the block already has an aspect ratio class applied.
3024   *
3025   * @param {string} existingClassNames Existing block classes.
3026   * @return {boolean} True or false if the classnames contain an aspect ratio class.
3027   */
3028  const hasAspectRatioClass = existingClassNames => {
3029    if (!existingClassNames) {
3030      return false;
3031    }
3032    return ASPECT_RATIOS.some(({
3033      className
3034    }) => existingClassNames.includes(className));
3035  };
3036  
3037  /**
3038   * Removes all previously set aspect ratio related classes and return the rest
3039   * existing class names.
3040   *
3041   * @param {string} existingClassNames Any existing class names.
3042   * @return {string} The class names without any aspect ratio related class.
3043   */
3044  const removeAspectRatioClasses = existingClassNames => {
3045    if (!existingClassNames) {
3046      // Avoids extraneous work and also, by returning the same value as
3047      // received, ensures the post is not dirtied by a change of the block
3048      // attribute from `undefined` to an empty string.
3049      return existingClassNames;
3050    }
3051    const aspectRatioClassNames = ASPECT_RATIOS.reduce((accumulator, {
3052      className
3053    }) => {
3054      accumulator.push(className);
3055      return accumulator;
3056    }, ['wp-has-aspect-ratio']);
3057    let outputClassNames = existingClassNames;
3058    for (const className of aspectRatioClassNames) {
3059      outputClassNames = outputClassNames.replace(className, '');
3060    }
3061    return outputClassNames.trim();
3062  };
3063  
3064  /**
3065   * Returns class names with any relevant responsive aspect ratio names.
3066   *
3067   * @param {string}  html               The preview HTML that possibly contains an iframe with width and height set.
3068   * @param {string}  existingClassNames Any existing class names.
3069   * @param {boolean} allowResponsive    If the responsive class names should be added, or removed.
3070   * @return {string} Deduped class names.
3071   */
3072  function getClassNames(html, existingClassNames, allowResponsive = true) {
3073    if (!allowResponsive) {
3074      return removeAspectRatioClasses(existingClassNames);
3075    }
3076    const previewDocument = document.implementation.createHTMLDocument('');
3077    previewDocument.body.innerHTML = html;
3078    const iframe = previewDocument.body.querySelector('iframe');
3079  
3080    // If we have a fixed aspect iframe, and it's a responsive embed block.
3081    if (iframe && iframe.height && iframe.width) {
3082      const aspectRatio = (iframe.width / iframe.height).toFixed(2);
3083      // Given the actual aspect ratio, find the widest ratio to support it.
3084      for (let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++) {
3085        const potentialRatio = ASPECT_RATIOS[ratioIndex];
3086        if (aspectRatio >= potentialRatio.ratio) {
3087          // Evaluate the difference between actual aspect ratio and closest match.
3088          // If the difference is too big, do not scale the embed according to aspect ratio.
3089          const ratioDiff = aspectRatio - potentialRatio.ratio;
3090          if (ratioDiff > 0.1) {
3091            // No close aspect ratio match found.
3092            return removeAspectRatioClasses(existingClassNames);
3093          }
3094          // Close aspect ratio match found.
3095          return dist_clsx(removeAspectRatioClasses(existingClassNames), potentialRatio.className, 'wp-has-aspect-ratio');
3096        }
3097      }
3098    }
3099    return existingClassNames;
3100  }
3101  
3102  /**
3103   * Fallback behaviour for unembeddable URLs.
3104   * Creates a paragraph block containing a link to the URL, and calls `onReplace`.
3105   *
3106   * @param {string}   url       The URL that could not be embedded.
3107   * @param {Function} onReplace Function to call with the created fallback block.
3108   */
3109  function fallback(url, onReplace) {
3110    const link = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
3111      href: url,
3112      children: url
3113    });
3114    onReplace((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
3115      content: (0,external_wp_element_namespaceObject.renderToString)(link)
3116    }));
3117  }
3118  
3119  /***
3120   * Gets block attributes based on the preview and responsive state.
3121   *
3122   * @param {Object} preview The preview data.
3123   * @param {string} title The block's title, e.g. Twitter.
3124   * @param {Object} currentClassNames The block's current class names.
3125   * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.
3126   * @param {boolean} allowResponsive Apply responsive classes to fixed size content.
3127   * @return {Object} Attributes and values.
3128   */
3129  const getAttributesFromPreview = memize((preview, title, currentClassNames, isResponsive, allowResponsive = true) => {
3130    if (!preview) {
3131      return {};
3132    }
3133    const attributes = {};
3134    // Some plugins only return HTML with no type info, so default this to 'rich'.
3135    let {
3136      type = 'rich'
3137    } = preview;
3138    // If we got a provider name from the API, use it for the slug, otherwise we use the title,
3139    // because not all embed code gives us a provider name.
3140    const {
3141      html,
3142      provider_name: providerName
3143    } = preview;
3144    const providerNameSlug = kebabCase((providerName || title).toLowerCase());
3145    if (isFromWordPress(html)) {
3146      type = WP_EMBED_TYPE;
3147    }
3148    if (html || 'photo' === type) {
3149      attributes.type = type;
3150      attributes.providerNameSlug = providerNameSlug;
3151    }
3152  
3153    // Aspect ratio classes are removed when the embed URL is updated.
3154    // If the embed already has an aspect ratio class, that means the URL has not changed.
3155    // Which also means no need to regenerate it with getClassNames.
3156    if (hasAspectRatioClass(currentClassNames)) {
3157      return attributes;
3158    }
3159    attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive);
3160    return attributes;
3161  });
3162  
3163  /**
3164   * Returns the attributes derived from the preview, merged with the current attributes.
3165   *
3166   * @param {Object}  currentAttributes The current attributes of the block.
3167   * @param {Object}  preview           The preview data.
3168   * @param {string}  title             The block's title, e.g. Twitter.
3169   * @param {boolean} isResponsive      Boolean indicating if the block supports responsive content.
3170   * @return {Object} Merged attributes.
3171   */
3172  const getMergedAttributesWithPreview = (currentAttributes, preview, title, isResponsive) => {
3173    const {
3174      allowResponsive,
3175      className
3176    } = currentAttributes;
3177    return {
3178      ...currentAttributes,
3179      ...getAttributesFromPreview(preview, title, className, isResponsive, allowResponsive)
3180    };
3181  };
3182  
3183  ;// ./node_modules/@wordpress/icons/build-module/library/caption.js
3184  /**
3185   * WordPress dependencies
3186   */
3187  
3188  
3189  const caption = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
3190    viewBox: "0 0 24 24",
3191    xmlns: "http://www.w3.org/2000/svg",
3192    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
3193      fillRule: "evenodd",
3194      clipRule: "evenodd",
3195      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"
3196    })
3197  });
3198  /* harmony default export */ const library_caption = (caption);
3199  
3200  ;// ./node_modules/@wordpress/block-library/build-module/utils/caption.js
3201  /**
3202   * External dependencies
3203   */
3204  
3205  
3206  /**
3207   * WordPress dependencies
3208   */
3209  
3210  
3211  
3212  
3213  
3214  
3215  
3216  
3217  /**
3218   * Internal dependencies
3219   */
3220  
3221  
3222  function Caption({
3223    attributeKey = 'caption',
3224    attributes,
3225    setAttributes,
3226    isSelected,
3227    insertBlocksAfter,
3228    placeholder = (0,external_wp_i18n_namespaceObject.__)('Add caption'),
3229    label = (0,external_wp_i18n_namespaceObject.__)('Caption text'),
3230    showToolbarButton = true,
3231    excludeElementClassName,
3232    className,
3233    readOnly,
3234    tagName = 'figcaption',
3235    addLabel = (0,external_wp_i18n_namespaceObject.__)('Add caption'),
3236    removeLabel = (0,external_wp_i18n_namespaceObject.__)('Remove caption'),
3237    icon = library_caption,
3238    ...props
3239  }) {
3240    const caption = attributes[attributeKey];
3241    const prevCaption = (0,external_wp_compose_namespaceObject.usePrevious)(caption);
3242    const {
3243      PrivateRichText: RichText
3244    } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
3245    const isCaptionEmpty = RichText.isEmpty(caption);
3246    const isPrevCaptionEmpty = RichText.isEmpty(prevCaption);
3247    const [showCaption, setShowCaption] = (0,external_wp_element_namespaceObject.useState)(!isCaptionEmpty);
3248  
3249    // We need to show the caption when changes come from
3250    // history navigation(undo/redo).
3251    (0,external_wp_element_namespaceObject.useEffect)(() => {
3252      if (!isCaptionEmpty && isPrevCaptionEmpty) {
3253        setShowCaption(true);
3254      }
3255    }, [isCaptionEmpty, isPrevCaptionEmpty]);
3256    (0,external_wp_element_namespaceObject.useEffect)(() => {
3257      if (!isSelected && isCaptionEmpty) {
3258        setShowCaption(false);
3259      }
3260    }, [isSelected, isCaptionEmpty]);
3261  
3262    // Focus the caption when we click to add one.
3263    const ref = (0,external_wp_element_namespaceObject.useCallback)(node => {
3264      if (node && isCaptionEmpty) {
3265        node.focus();
3266      }
3267    }, [isCaptionEmpty]);
3268    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
3269      children: [showToolbarButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
3270        group: "block",
3271        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
3272          onClick: () => {
3273            setShowCaption(!showCaption);
3274            if (showCaption && caption) {
3275              setAttributes({
3276                [attributeKey]: undefined
3277              });
3278            }
3279          },
3280          icon: icon,
3281          isPressed: showCaption,
3282          label: showCaption ? removeLabel : addLabel
3283        })
3284      }), showCaption && (!RichText.isEmpty(caption) || isSelected) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RichText, {
3285        identifier: attributeKey,
3286        tagName: tagName,
3287        className: dist_clsx(className, excludeElementClassName ? '' : (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')),
3288        ref: ref,
3289        "aria-label": label,
3290        placeholder: placeholder,
3291        value: caption,
3292        onChange: value => setAttributes({
3293          [attributeKey]: value
3294        }),
3295        inlineToolbar: true,
3296        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
3297        readOnly: readOnly,
3298        ...props
3299      })]
3300    });
3301  }
3302  
3303  ;// ./node_modules/@wordpress/block-library/build-module/audio/edit.js
3304  /**
3305   * External dependencies
3306   */
3307  
3308  
3309  /**
3310   * WordPress dependencies
3311   */
3312  
3313  
3314  
3315  
3316  
3317  
3318  
3319  
3320  
3321  /**
3322   * Internal dependencies
3323   */
3324  
3325  
3326  
3327  
3328  const ALLOWED_MEDIA_TYPES = ['audio'];
3329  function AudioEdit({
3330    attributes,
3331    className,
3332    setAttributes,
3333    onReplace,
3334    isSelected: isSingleSelected,
3335    insertBlocksAfter
3336  }) {
3337    const {
3338      id,
3339      autoplay,
3340      loop,
3341      preload,
3342      src
3343    } = attributes;
3344    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
3345    useUploadMediaFromBlobURL({
3346      url: temporaryURL,
3347      allowedTypes: ALLOWED_MEDIA_TYPES,
3348      onChange: onSelectAudio,
3349      onError: onUploadError
3350    });
3351    function toggleAttribute(attribute) {
3352      return newValue => {
3353        setAttributes({
3354          [attribute]: newValue
3355        });
3356      };
3357    }
3358    function onSelectURL(newSrc) {
3359      // Set the block's src from the edit component's state, and switch off
3360      // the editing UI.
3361      if (newSrc !== src) {
3362        // Check if there's an embed block that handles this URL.
3363        const embedBlock = createUpgradedEmbedBlock({
3364          attributes: {
3365            url: newSrc
3366          }
3367        });
3368        if (undefined !== embedBlock && onReplace) {
3369          onReplace(embedBlock);
3370          return;
3371        }
3372        setAttributes({
3373          src: newSrc,
3374          id: undefined,
3375          blob: undefined
3376        });
3377        setTemporaryURL();
3378      }
3379    }
3380    const {
3381      createErrorNotice
3382    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
3383    function onUploadError(message) {
3384      createErrorNotice(message, {
3385        type: 'snackbar'
3386      });
3387    }
3388    function getAutoplayHelp(checked) {
3389      return checked ? (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.') : null;
3390    }
3391    function onSelectAudio(media) {
3392      if (!media || !media.url) {
3393        // In this case there was an error and we should continue in the editing state
3394        // previous attributes should be removed because they may be temporary blob urls.
3395        setAttributes({
3396          src: undefined,
3397          id: undefined,
3398          caption: undefined,
3399          blob: undefined
3400        });
3401        setTemporaryURL();
3402        return;
3403      }
3404      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
3405        setTemporaryURL(media.url);
3406        return;
3407      }
3408  
3409      // Sets the block's attribute and updates the edit component from the
3410      // selected media, then switches off the editing UI.
3411      setAttributes({
3412        blob: undefined,
3413        src: media.url,
3414        id: media.id,
3415        caption: media.caption
3416      });
3417      setTemporaryURL();
3418    }
3419    const classes = dist_clsx(className, {
3420      'is-transient': !!temporaryURL
3421    });
3422    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
3423      className: classes
3424    });
3425    if (!src && !temporaryURL) {
3426      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
3427        ...blockProps,
3428        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
3429          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
3430            icon: library_audio
3431          }),
3432          onSelect: onSelectAudio,
3433          onSelectURL: onSelectURL,
3434          accept: "audio/*",
3435          allowedTypes: ALLOWED_MEDIA_TYPES,
3436          value: attributes,
3437          onError: onUploadError
3438        })
3439      });
3440    }
3441    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
3442      children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
3443        group: "other",
3444        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
3445          mediaId: id,
3446          mediaURL: src,
3447          allowedTypes: ALLOWED_MEDIA_TYPES,
3448          accept: "audio/*",
3449          onSelect: onSelectAudio,
3450          onSelectURL: onSelectURL,
3451          onError: onUploadError,
3452          onReset: () => onSelectAudio(undefined)
3453        })
3454      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
3455        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
3456          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
3457          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
3458            __nextHasNoMarginBottom: true,
3459            label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
3460            onChange: toggleAttribute('autoplay'),
3461            checked: autoplay,
3462            help: getAutoplayHelp
3463          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
3464            __nextHasNoMarginBottom: true,
3465            label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
3466            onChange: toggleAttribute('loop'),
3467            checked: loop
3468          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
3469            __next40pxDefaultSize: true,
3470            __nextHasNoMarginBottom: true,
3471            label: (0,external_wp_i18n_namespaceObject._x)('Preload', 'noun; Audio block parameter'),
3472            value: preload || ''
3473            // `undefined` is required for the preload attribute to be unset.
3474            ,
3475            onChange: value => setAttributes({
3476              preload: value || undefined
3477            }),
3478            options: [{
3479              value: '',
3480              label: (0,external_wp_i18n_namespaceObject.__)('Browser default')
3481            }, {
3482              value: 'auto',
3483              label: (0,external_wp_i18n_namespaceObject.__)('Auto')
3484            }, {
3485              value: 'metadata',
3486              label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
3487            }, {
3488              value: 'none',
3489              label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
3490            }]
3491          })]
3492        })
3493      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
3494        ...blockProps,
3495        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
3496          isDisabled: !isSingleSelected,
3497          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("audio", {
3498            controls: "controls",
3499            src: src !== null && src !== void 0 ? src : temporaryURL
3500          })
3501        }), !!temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
3502          attributes: attributes,
3503          setAttributes: setAttributes,
3504          isSelected: isSingleSelected,
3505          insertBlocksAfter: insertBlocksAfter,
3506          label: (0,external_wp_i18n_namespaceObject.__)('Audio caption text'),
3507          showToolbarButton: isSingleSelected
3508        })]
3509      })]
3510    });
3511  }
3512  /* harmony default export */ const edit = (AudioEdit);
3513  
3514  ;// ./node_modules/@wordpress/block-library/build-module/audio/save.js
3515  /**
3516   * WordPress dependencies
3517   */
3518  
3519  
3520  function save({
3521    attributes
3522  }) {
3523    const {
3524      autoplay,
3525      caption,
3526      loop,
3527      preload,
3528      src
3529    } = attributes;
3530    return src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
3531      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
3532      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("audio", {
3533        controls: "controls",
3534        src: src,
3535        autoPlay: autoplay,
3536        loop: loop,
3537        preload: preload
3538      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
3539        tagName: "figcaption",
3540        value: caption,
3541        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
3542      })]
3543    });
3544  }
3545  
3546  ;// ./node_modules/@wordpress/block-library/build-module/audio/transforms.js
3547  /**
3548   * WordPress dependencies
3549   */
3550  
3551  
3552  const transforms = {
3553    from: [{
3554      type: 'files',
3555      isMatch(files) {
3556        return files.length === 1 && files[0].type.indexOf('audio/') === 0;
3557      },
3558      transform(files) {
3559        const file = files[0];
3560        // We don't need to upload the media directly here
3561        // It's already done as part of the `componentDidMount`
3562        // in the audio block.
3563        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
3564          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
3565        });
3566        return block;
3567      }
3568    }, {
3569      type: 'shortcode',
3570      tag: 'audio',
3571      attributes: {
3572        src: {
3573          type: 'string',
3574          shortcode: ({
3575            named: {
3576              src,
3577              mp3,
3578              m4a,
3579              ogg,
3580              wav,
3581              wma
3582            }
3583          }) => {
3584            return src || mp3 || m4a || ogg || wav || wma;
3585          }
3586        },
3587        loop: {
3588          type: 'string',
3589          shortcode: ({
3590            named: {
3591              loop
3592            }
3593          }) => {
3594            return loop;
3595          }
3596        },
3597        autoplay: {
3598          type: 'string',
3599          shortcode: ({
3600            named: {
3601              autoplay
3602            }
3603          }) => {
3604            return autoplay;
3605          }
3606        },
3607        preload: {
3608          type: 'string',
3609          shortcode: ({
3610            named: {
3611              preload
3612            }
3613          }) => {
3614            return preload;
3615          }
3616        }
3617      }
3618    }]
3619  };
3620  /* harmony default export */ const audio_transforms = (transforms);
3621  
3622  ;// ./node_modules/@wordpress/block-library/build-module/audio/index.js
3623  /**
3624   * WordPress dependencies
3625   */
3626  
3627  
3628  /**
3629   * Internal dependencies
3630   */
3631  
3632  
3633  
3634  const audio_metadata = {
3635    $schema: "https://schemas.wp.org/trunk/block.json",
3636    apiVersion: 3,
3637    name: "core/audio",
3638    title: "Audio",
3639    category: "media",
3640    description: "Embed a simple audio player.",
3641    keywords: ["music", "sound", "podcast", "recording"],
3642    textdomain: "default",
3643    attributes: {
3644      blob: {
3645        type: "string",
3646        role: "local"
3647      },
3648      src: {
3649        type: "string",
3650        source: "attribute",
3651        selector: "audio",
3652        attribute: "src",
3653        role: "content"
3654      },
3655      caption: {
3656        type: "rich-text",
3657        source: "rich-text",
3658        selector: "figcaption",
3659        role: "content"
3660      },
3661      id: {
3662        type: "number",
3663        role: "content"
3664      },
3665      autoplay: {
3666        type: "boolean",
3667        source: "attribute",
3668        selector: "audio",
3669        attribute: "autoplay"
3670      },
3671      loop: {
3672        type: "boolean",
3673        source: "attribute",
3674        selector: "audio",
3675        attribute: "loop"
3676      },
3677      preload: {
3678        type: "string",
3679        source: "attribute",
3680        selector: "audio",
3681        attribute: "preload"
3682      }
3683    },
3684    supports: {
3685      anchor: true,
3686      align: true,
3687      spacing: {
3688        margin: true,
3689        padding: true,
3690        __experimentalDefaultControls: {
3691          margin: false,
3692          padding: false
3693        }
3694      },
3695      interactivity: {
3696        clientNavigation: true
3697      }
3698    },
3699    editorStyle: "wp-block-audio-editor",
3700    style: "wp-block-audio"
3701  };
3702  
3703  
3704  const {
3705    name: audio_name
3706  } = audio_metadata;
3707  
3708  const audio_settings = {
3709    icon: library_audio,
3710    example: {
3711      attributes: {
3712        src: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg'
3713      },
3714      viewportWidth: 350
3715    },
3716    transforms: audio_transforms,
3717    deprecated: deprecated,
3718    edit: edit,
3719    save: save
3720  };
3721  const audio_init = () => initBlock({
3722    name: audio_name,
3723    metadata: audio_metadata,
3724    settings: audio_settings
3725  });
3726  
3727  ;// ./node_modules/@wordpress/icons/build-module/library/button.js
3728  /**
3729   * WordPress dependencies
3730   */
3731  
3732  
3733  const button_button = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
3734    viewBox: "0 0 24 24",
3735    xmlns: "http://www.w3.org/2000/svg",
3736    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
3737      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"
3738    })
3739  });
3740  /* harmony default export */ const library_button = (button_button);
3741  
3742  ;// ./node_modules/@wordpress/block-library/build-module/utils/migrate-font-family.js
3743  /**
3744   * WordPress dependencies
3745   */
3746  
3747  
3748  /**
3749   * Internal dependencies
3750   */
3751  
3752  const {
3753    cleanEmptyObject
3754  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
3755  
3756  /**
3757   * Migrates the current style.typography.fontFamily attribute,
3758   * whose value was "var:preset|font-family|helvetica-arial",
3759   * to the style.fontFamily attribute, whose value will be "helvetica-arial".
3760   *
3761   * @param {Object} attributes The current attributes
3762   * @return {Object} The updated attributes.
3763   */
3764  /* harmony default export */ function migrate_font_family(attributes) {
3765    if (!attributes?.style?.typography?.fontFamily) {
3766      return attributes;
3767    }
3768    const {
3769      fontFamily,
3770      ...typography
3771    } = attributes.style.typography;
3772    return {
3773      ...attributes,
3774      style: cleanEmptyObject({
3775        ...attributes.style,
3776        typography
3777      }),
3778      fontFamily: fontFamily.split('|').pop()
3779    };
3780  }
3781  
3782  ;// ./node_modules/@wordpress/block-library/build-module/button/deprecated.js
3783  /**
3784   * External dependencies
3785   */
3786  
3787  
3788  /**
3789   * WordPress dependencies
3790   */
3791  
3792  
3793  
3794  /**
3795   * Internal dependencies
3796   */
3797  
3798  
3799  const migrateBorderRadius = attributes => {
3800    const {
3801      borderRadius,
3802      ...newAttributes
3803    } = attributes;
3804    // We have to check old property `borderRadius` and if
3805    // `styles.border.radius` is a `number`
3806    const oldBorderRadius = [borderRadius, newAttributes.style?.border?.radius].find(possibleBorderRadius => {
3807      return typeof possibleBorderRadius === 'number' && possibleBorderRadius !== 0;
3808    });
3809    if (!oldBorderRadius) {
3810      return newAttributes;
3811    }
3812    return {
3813      ...newAttributes,
3814      style: {
3815        ...newAttributes.style,
3816        border: {
3817          ...newAttributes.style?.border,
3818          radius: `$oldBorderRadius}px`
3819        }
3820      }
3821    };
3822  };
3823  function migrateAlign(attributes) {
3824    if (!attributes.align) {
3825      return attributes;
3826    }
3827    const {
3828      align,
3829      ...otherAttributes
3830    } = attributes;
3831    return {
3832      ...otherAttributes,
3833      className: dist_clsx(otherAttributes.className, `align$attributes.align}`)
3834    };
3835  }
3836  const migrateCustomColorsAndGradients = attributes => {
3837    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customGradient) {
3838      return attributes;
3839    }
3840    const style = {
3841      color: {}
3842    };
3843    if (attributes.customTextColor) {
3844      style.color.text = attributes.customTextColor;
3845    }
3846    if (attributes.customBackgroundColor) {
3847      style.color.background = attributes.customBackgroundColor;
3848    }
3849    if (attributes.customGradient) {
3850      style.color.gradient = attributes.customGradient;
3851    }
3852    const {
3853      customTextColor,
3854      customBackgroundColor,
3855      customGradient,
3856      ...restAttributes
3857    } = attributes;
3858    return {
3859      ...restAttributes,
3860      style
3861    };
3862  };
3863  const oldColorsMigration = attributes => {
3864    const {
3865      color,
3866      textColor,
3867      ...restAttributes
3868    } = {
3869      ...attributes,
3870      customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
3871      customBackgroundColor: attributes.color && '#' === attributes.color[0] ? attributes.color : undefined
3872    };
3873    return migrateCustomColorsAndGradients(restAttributes);
3874  };
3875  const blockAttributes = {
3876    url: {
3877      type: 'string',
3878      source: 'attribute',
3879      selector: 'a',
3880      attribute: 'href'
3881    },
3882    title: {
3883      type: 'string',
3884      source: 'attribute',
3885      selector: 'a',
3886      attribute: 'title'
3887    },
3888    text: {
3889      type: 'string',
3890      source: 'html',
3891      selector: 'a'
3892    }
3893  };
3894  const v12 = {
3895    attributes: {
3896      tagName: {
3897        type: 'string',
3898        enum: ['a', 'button'],
3899        default: 'a'
3900      },
3901      type: {
3902        type: 'string',
3903        default: 'button'
3904      },
3905      textAlign: {
3906        type: 'string'
3907      },
3908      url: {
3909        type: 'string',
3910        source: 'attribute',
3911        selector: 'a',
3912        attribute: 'href'
3913      },
3914      title: {
3915        type: 'string',
3916        source: 'attribute',
3917        selector: 'a,button',
3918        attribute: 'title',
3919        role: 'content'
3920      },
3921      text: {
3922        type: 'rich-text',
3923        source: 'rich-text',
3924        selector: 'a,button',
3925        role: 'content'
3926      },
3927      linkTarget: {
3928        type: 'string',
3929        source: 'attribute',
3930        selector: 'a',
3931        attribute: 'target',
3932        role: 'content'
3933      },
3934      rel: {
3935        type: 'string',
3936        source: 'attribute',
3937        selector: 'a',
3938        attribute: 'rel',
3939        role: 'content'
3940      },
3941      placeholder: {
3942        type: 'string'
3943      },
3944      backgroundColor: {
3945        type: 'string'
3946      },
3947      textColor: {
3948        type: 'string'
3949      },
3950      gradient: {
3951        type: 'string'
3952      },
3953      width: {
3954        type: 'number'
3955      }
3956    },
3957    supports: {
3958      anchor: true,
3959      align: true,
3960      alignWide: false,
3961      color: {
3962        __experimentalSkipSerialization: true,
3963        gradients: true,
3964        __experimentalDefaultControls: {
3965          background: true,
3966          text: true
3967        }
3968      },
3969      typography: {
3970        fontSize: true,
3971        lineHeight: true,
3972        __experimentalFontFamily: true,
3973        __experimentalFontWeight: true,
3974        __experimentalFontStyle: true,
3975        __experimentalTextTransform: true,
3976        __experimentalTextDecoration: true,
3977        __experimentalLetterSpacing: true,
3978        __experimentalWritingMode: true,
3979        __experimentalDefaultControls: {
3980          fontSize: true
3981        }
3982      },
3983      reusable: false,
3984      shadow: {
3985        __experimentalSkipSerialization: true
3986      },
3987      spacing: {
3988        __experimentalSkipSerialization: true,
3989        padding: ['horizontal', 'vertical'],
3990        __experimentalDefaultControls: {
3991          padding: true
3992        }
3993      },
3994      __experimentalBorder: {
3995        color: true,
3996        radius: true,
3997        style: true,
3998        width: true,
3999        __experimentalSkipSerialization: true,
4000        __experimentalDefaultControls: {
4001          color: true,
4002          radius: true,
4003          style: true,
4004          width: true
4005        }
4006      },
4007      __experimentalSelector: '.wp-block-button__link',
4008      interactivity: {
4009        clientNavigation: true
4010      }
4011    },
4012    save({
4013      attributes,
4014      className
4015    }) {
4016      const {
4017        tagName,
4018        type,
4019        textAlign,
4020        fontSize,
4021        linkTarget,
4022        rel,
4023        style,
4024        text,
4025        title,
4026        url,
4027        width
4028      } = attributes;
4029      const TagName = tagName || 'a';
4030      const isButtonTag = 'button' === TagName;
4031      const buttonType = type || 'button';
4032      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
4033      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4034      const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
4035      const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
4036      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, {
4037        [`has-text-align-$textAlign}`]: textAlign,
4038        // For backwards compatibility add style that isn't provided via
4039        // block support.
4040        'no-border-radius': style?.border?.radius === 0
4041      }, (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button'));
4042      const buttonStyle = {
4043        ...borderProps.style,
4044        ...colorProps.style,
4045        ...spacingProps.style,
4046        ...shadowProps.style
4047      };
4048  
4049      // The use of a `title` attribute here is soft-deprecated, but still applied
4050      // if it had already been assigned, for the sake of backward-compatibility.
4051      // A title will no longer be assigned for new or updated button block links.
4052  
4053      const wrapperClasses = dist_clsx(className, {
4054        [`has-custom-width wp-block-button__width-$width}`]: width,
4055        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
4056      });
4057      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4058        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4059          className: wrapperClasses
4060        }),
4061        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4062          tagName: TagName,
4063          type: isButtonTag ? buttonType : null,
4064          className: buttonClasses,
4065          href: isButtonTag ? null : url,
4066          title: title,
4067          style: buttonStyle,
4068          value: text,
4069          target: isButtonTag ? null : linkTarget,
4070          rel: isButtonTag ? null : rel
4071        })
4072      });
4073    }
4074  };
4075  const v11 = {
4076    attributes: {
4077      url: {
4078        type: 'string',
4079        source: 'attribute',
4080        selector: 'a',
4081        attribute: 'href'
4082      },
4083      title: {
4084        type: 'string',
4085        source: 'attribute',
4086        selector: 'a',
4087        attribute: 'title'
4088      },
4089      text: {
4090        type: 'string',
4091        source: 'html',
4092        selector: 'a'
4093      },
4094      linkTarget: {
4095        type: 'string',
4096        source: 'attribute',
4097        selector: 'a',
4098        attribute: 'target'
4099      },
4100      rel: {
4101        type: 'string',
4102        source: 'attribute',
4103        selector: 'a',
4104        attribute: 'rel'
4105      },
4106      placeholder: {
4107        type: 'string'
4108      },
4109      backgroundColor: {
4110        type: 'string'
4111      },
4112      textColor: {
4113        type: 'string'
4114      },
4115      gradient: {
4116        type: 'string'
4117      },
4118      width: {
4119        type: 'number'
4120      }
4121    },
4122    supports: {
4123      anchor: true,
4124      align: true,
4125      alignWide: false,
4126      color: {
4127        __experimentalSkipSerialization: true,
4128        gradients: true,
4129        __experimentalDefaultControls: {
4130          background: true,
4131          text: true
4132        }
4133      },
4134      typography: {
4135        fontSize: true,
4136        __experimentalFontFamily: true,
4137        __experimentalDefaultControls: {
4138          fontSize: true
4139        }
4140      },
4141      reusable: false,
4142      spacing: {
4143        __experimentalSkipSerialization: true,
4144        padding: ['horizontal', 'vertical'],
4145        __experimentalDefaultControls: {
4146          padding: true
4147        }
4148      },
4149      __experimentalBorder: {
4150        radius: true,
4151        __experimentalSkipSerialization: true,
4152        __experimentalDefaultControls: {
4153          radius: true
4154        }
4155      },
4156      __experimentalSelector: '.wp-block-button__link'
4157    },
4158    save({
4159      attributes,
4160      className
4161    }) {
4162      const {
4163        fontSize,
4164        linkTarget,
4165        rel,
4166        style,
4167        text,
4168        title,
4169        url,
4170        width
4171      } = attributes;
4172      if (!text) {
4173        return null;
4174      }
4175      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
4176      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4177      const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
4178      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, {
4179        // For backwards compatibility add style that isn't provided via
4180        // block support.
4181        'no-border-radius': style?.border?.radius === 0
4182      });
4183      const buttonStyle = {
4184        ...borderProps.style,
4185        ...colorProps.style,
4186        ...spacingProps.style
4187      };
4188  
4189      // The use of a `title` attribute here is soft-deprecated, but still applied
4190      // if it had already been assigned, for the sake of backward-compatibility.
4191      // A title will no longer be assigned for new or updated button block links.
4192  
4193      const wrapperClasses = dist_clsx(className, {
4194        [`has-custom-width wp-block-button__width-$width}`]: width,
4195        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
4196      });
4197      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4198        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4199          className: wrapperClasses
4200        }),
4201        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4202          tagName: "a",
4203          className: buttonClasses,
4204          href: url,
4205          title: title,
4206          style: buttonStyle,
4207          value: text,
4208          target: linkTarget,
4209          rel: rel
4210        })
4211      });
4212    }
4213  };
4214  const v10 = {
4215    attributes: {
4216      url: {
4217        type: 'string',
4218        source: 'attribute',
4219        selector: 'a',
4220        attribute: 'href'
4221      },
4222      title: {
4223        type: 'string',
4224        source: 'attribute',
4225        selector: 'a',
4226        attribute: 'title'
4227      },
4228      text: {
4229        type: 'string',
4230        source: 'html',
4231        selector: 'a'
4232      },
4233      linkTarget: {
4234        type: 'string',
4235        source: 'attribute',
4236        selector: 'a',
4237        attribute: 'target'
4238      },
4239      rel: {
4240        type: 'string',
4241        source: 'attribute',
4242        selector: 'a',
4243        attribute: 'rel'
4244      },
4245      placeholder: {
4246        type: 'string'
4247      },
4248      backgroundColor: {
4249        type: 'string'
4250      },
4251      textColor: {
4252        type: 'string'
4253      },
4254      gradient: {
4255        type: 'string'
4256      },
4257      width: {
4258        type: 'number'
4259      }
4260    },
4261    supports: {
4262      anchor: true,
4263      align: true,
4264      alignWide: false,
4265      color: {
4266        __experimentalSkipSerialization: true,
4267        gradients: true
4268      },
4269      typography: {
4270        fontSize: true,
4271        __experimentalFontFamily: true
4272      },
4273      reusable: false,
4274      spacing: {
4275        __experimentalSkipSerialization: true,
4276        padding: ['horizontal', 'vertical'],
4277        __experimentalDefaultControls: {
4278          padding: true
4279        }
4280      },
4281      __experimentalBorder: {
4282        radius: true,
4283        __experimentalSkipSerialization: true
4284      },
4285      __experimentalSelector: '.wp-block-button__link'
4286    },
4287    save({
4288      attributes,
4289      className
4290    }) {
4291      const {
4292        fontSize,
4293        linkTarget,
4294        rel,
4295        style,
4296        text,
4297        title,
4298        url,
4299        width
4300      } = attributes;
4301      if (!text) {
4302        return null;
4303      }
4304      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
4305      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4306      const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
4307      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, {
4308        // For backwards compatibility add style that isn't provided via
4309        // block support.
4310        'no-border-radius': style?.border?.radius === 0
4311      });
4312      const buttonStyle = {
4313        ...borderProps.style,
4314        ...colorProps.style,
4315        ...spacingProps.style
4316      };
4317  
4318      // The use of a `title` attribute here is soft-deprecated, but still applied
4319      // if it had already been assigned, for the sake of backward-compatibility.
4320      // A title will no longer be assigned for new or updated button block links.
4321  
4322      const wrapperClasses = dist_clsx(className, {
4323        [`has-custom-width wp-block-button__width-$width}`]: width,
4324        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
4325      });
4326      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4327        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4328          className: wrapperClasses
4329        }),
4330        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4331          tagName: "a",
4332          className: buttonClasses,
4333          href: url,
4334          title: title,
4335          style: buttonStyle,
4336          value: text,
4337          target: linkTarget,
4338          rel: rel
4339        })
4340      });
4341    },
4342    migrate: migrate_font_family,
4343    isEligible({
4344      style
4345    }) {
4346      return style?.typography?.fontFamily;
4347    }
4348  };
4349  const deprecated_deprecated = [v12, v11, v10, {
4350    supports: {
4351      anchor: true,
4352      align: true,
4353      alignWide: false,
4354      color: {
4355        __experimentalSkipSerialization: true,
4356        gradients: true
4357      },
4358      typography: {
4359        fontSize: true,
4360        __experimentalFontFamily: true
4361      },
4362      reusable: false,
4363      __experimentalSelector: '.wp-block-button__link'
4364    },
4365    attributes: {
4366      ...blockAttributes,
4367      linkTarget: {
4368        type: 'string',
4369        source: 'attribute',
4370        selector: 'a',
4371        attribute: 'target'
4372      },
4373      rel: {
4374        type: 'string',
4375        source: 'attribute',
4376        selector: 'a',
4377        attribute: 'rel'
4378      },
4379      placeholder: {
4380        type: 'string'
4381      },
4382      backgroundColor: {
4383        type: 'string'
4384      },
4385      textColor: {
4386        type: 'string'
4387      },
4388      gradient: {
4389        type: 'string'
4390      },
4391      width: {
4392        type: 'number'
4393      }
4394    },
4395    isEligible({
4396      style
4397    }) {
4398      return typeof style?.border?.radius === 'number';
4399    },
4400    save({
4401      attributes,
4402      className
4403    }) {
4404      const {
4405        fontSize,
4406        linkTarget,
4407        rel,
4408        style,
4409        text,
4410        title,
4411        url,
4412        width
4413      } = attributes;
4414      if (!text) {
4415        return null;
4416      }
4417      const borderRadius = style?.border?.radius;
4418      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4419      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, {
4420        'no-border-radius': style?.border?.radius === 0
4421      });
4422      const buttonStyle = {
4423        borderRadius: borderRadius ? borderRadius : undefined,
4424        ...colorProps.style
4425      };
4426  
4427      // The use of a `title` attribute here is soft-deprecated, but still applied
4428      // if it had already been assigned, for the sake of backward-compatibility.
4429      // A title will no longer be assigned for new or updated button block links.
4430  
4431      const wrapperClasses = dist_clsx(className, {
4432        [`has-custom-width wp-block-button__width-$width}`]: width,
4433        [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
4434      });
4435      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4436        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4437          className: wrapperClasses
4438        }),
4439        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4440          tagName: "a",
4441          className: buttonClasses,
4442          href: url,
4443          title: title,
4444          style: buttonStyle,
4445          value: text,
4446          target: linkTarget,
4447          rel: rel
4448        })
4449      });
4450    },
4451    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
4452  }, {
4453    supports: {
4454      anchor: true,
4455      align: true,
4456      alignWide: false,
4457      color: {
4458        __experimentalSkipSerialization: true
4459      },
4460      reusable: false,
4461      __experimentalSelector: '.wp-block-button__link'
4462    },
4463    attributes: {
4464      ...blockAttributes,
4465      linkTarget: {
4466        type: 'string',
4467        source: 'attribute',
4468        selector: 'a',
4469        attribute: 'target'
4470      },
4471      rel: {
4472        type: 'string',
4473        source: 'attribute',
4474        selector: 'a',
4475        attribute: 'rel'
4476      },
4477      placeholder: {
4478        type: 'string'
4479      },
4480      borderRadius: {
4481        type: 'number'
4482      },
4483      backgroundColor: {
4484        type: 'string'
4485      },
4486      textColor: {
4487        type: 'string'
4488      },
4489      gradient: {
4490        type: 'string'
4491      },
4492      style: {
4493        type: 'object'
4494      },
4495      width: {
4496        type: 'number'
4497      }
4498    },
4499    save({
4500      attributes,
4501      className
4502    }) {
4503      const {
4504        borderRadius,
4505        linkTarget,
4506        rel,
4507        text,
4508        title,
4509        url,
4510        width
4511      } = attributes;
4512      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4513      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, {
4514        'no-border-radius': borderRadius === 0
4515      });
4516      const buttonStyle = {
4517        borderRadius: borderRadius ? borderRadius + 'px' : undefined,
4518        ...colorProps.style
4519      };
4520  
4521      // The use of a `title` attribute here is soft-deprecated, but still applied
4522      // if it had already been assigned, for the sake of backward-compatibility.
4523      // A title will no longer be assigned for new or updated button block links.
4524  
4525      const wrapperClasses = dist_clsx(className, {
4526        [`has-custom-width wp-block-button__width-$width}`]: width
4527      });
4528      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4529        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4530          className: wrapperClasses
4531        }),
4532        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4533          tagName: "a",
4534          className: buttonClasses,
4535          href: url,
4536          title: title,
4537          style: buttonStyle,
4538          value: text,
4539          target: linkTarget,
4540          rel: rel
4541        })
4542      });
4543    },
4544    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
4545  }, {
4546    supports: {
4547      anchor: true,
4548      align: true,
4549      alignWide: false,
4550      color: {
4551        __experimentalSkipSerialization: true
4552      },
4553      reusable: false,
4554      __experimentalSelector: '.wp-block-button__link'
4555    },
4556    attributes: {
4557      ...blockAttributes,
4558      linkTarget: {
4559        type: 'string',
4560        source: 'attribute',
4561        selector: 'a',
4562        attribute: 'target'
4563      },
4564      rel: {
4565        type: 'string',
4566        source: 'attribute',
4567        selector: 'a',
4568        attribute: 'rel'
4569      },
4570      placeholder: {
4571        type: 'string'
4572      },
4573      borderRadius: {
4574        type: 'number'
4575      },
4576      backgroundColor: {
4577        type: 'string'
4578      },
4579      textColor: {
4580        type: 'string'
4581      },
4582      gradient: {
4583        type: 'string'
4584      },
4585      style: {
4586        type: 'object'
4587      },
4588      width: {
4589        type: 'number'
4590      }
4591    },
4592    save({
4593      attributes,
4594      className
4595    }) {
4596      const {
4597        borderRadius,
4598        linkTarget,
4599        rel,
4600        text,
4601        title,
4602        url,
4603        width
4604      } = attributes;
4605      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
4606      const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, {
4607        'no-border-radius': borderRadius === 0
4608      });
4609      const buttonStyle = {
4610        borderRadius: borderRadius ? borderRadius + 'px' : undefined,
4611        ...colorProps.style
4612      };
4613  
4614      // The use of a `title` attribute here is soft-deprecated, but still applied
4615      // if it had already been assigned, for the sake of backward-compatibility.
4616      // A title will no longer be assigned for new or updated button block links.
4617  
4618      const wrapperClasses = dist_clsx(className, {
4619        [`has-custom-width wp-block-button__width-$width}`]: width
4620      });
4621      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4622        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
4623          className: wrapperClasses
4624        }),
4625        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4626          tagName: "a",
4627          className: buttonClasses,
4628          href: url,
4629          title: title,
4630          style: buttonStyle,
4631          value: text,
4632          target: linkTarget,
4633          rel: rel
4634        })
4635      });
4636    },
4637    migrate: (0,external_wp_compose_namespaceObject.compose)(migrate_font_family, migrateBorderRadius)
4638  }, {
4639    supports: {
4640      align: true,
4641      alignWide: false,
4642      color: {
4643        gradients: true
4644      }
4645    },
4646    attributes: {
4647      ...blockAttributes,
4648      linkTarget: {
4649        type: 'string',
4650        source: 'attribute',
4651        selector: 'a',
4652        attribute: 'target'
4653      },
4654      rel: {
4655        type: 'string',
4656        source: 'attribute',
4657        selector: 'a',
4658        attribute: 'rel'
4659      },
4660      placeholder: {
4661        type: 'string'
4662      },
4663      borderRadius: {
4664        type: 'number'
4665      },
4666      backgroundColor: {
4667        type: 'string'
4668      },
4669      textColor: {
4670        type: 'string'
4671      },
4672      gradient: {
4673        type: 'string'
4674      },
4675      style: {
4676        type: 'object'
4677      }
4678    },
4679    save({
4680      attributes
4681    }) {
4682      const {
4683        borderRadius,
4684        linkTarget,
4685        rel,
4686        text,
4687        title,
4688        url
4689      } = attributes;
4690      const buttonClasses = dist_clsx('wp-block-button__link', {
4691        'no-border-radius': borderRadius === 0
4692      });
4693      const buttonStyle = {
4694        borderRadius: borderRadius ? borderRadius + 'px' : undefined
4695      };
4696      return /*#__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        target: linkTarget,
4704        rel: rel
4705      });
4706    },
4707    migrate: migrateBorderRadius
4708  }, {
4709    supports: {
4710      align: true,
4711      alignWide: false
4712    },
4713    attributes: {
4714      ...blockAttributes,
4715      linkTarget: {
4716        type: 'string',
4717        source: 'attribute',
4718        selector: 'a',
4719        attribute: 'target'
4720      },
4721      rel: {
4722        type: 'string',
4723        source: 'attribute',
4724        selector: 'a',
4725        attribute: 'rel'
4726      },
4727      placeholder: {
4728        type: 'string'
4729      },
4730      borderRadius: {
4731        type: 'number'
4732      },
4733      backgroundColor: {
4734        type: 'string'
4735      },
4736      textColor: {
4737        type: 'string'
4738      },
4739      customBackgroundColor: {
4740        type: 'string'
4741      },
4742      customTextColor: {
4743        type: 'string'
4744      },
4745      customGradient: {
4746        type: 'string'
4747      },
4748      gradient: {
4749        type: 'string'
4750      }
4751    },
4752    isEligible: attributes => !!attributes.customTextColor || !!attributes.customBackgroundColor || !!attributes.customGradient || !!attributes.align,
4753    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateBorderRadius, migrateCustomColorsAndGradients, migrateAlign),
4754    save({
4755      attributes
4756    }) {
4757      const {
4758        backgroundColor,
4759        borderRadius,
4760        customBackgroundColor,
4761        customTextColor,
4762        customGradient,
4763        linkTarget,
4764        gradient,
4765        rel,
4766        text,
4767        textColor,
4768        title,
4769        url
4770      } = attributes;
4771      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4772      const backgroundClass = !customGradient && (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4773      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
4774      const buttonClasses = dist_clsx('wp-block-button__link', {
4775        'has-text-color': textColor || customTextColor,
4776        [textClass]: textClass,
4777        'has-background': backgroundColor || customBackgroundColor || customGradient || gradient,
4778        [backgroundClass]: backgroundClass,
4779        'no-border-radius': borderRadius === 0,
4780        [gradientClass]: gradientClass
4781      });
4782      const buttonStyle = {
4783        background: customGradient ? customGradient : undefined,
4784        backgroundColor: backgroundClass || customGradient || gradient ? undefined : customBackgroundColor,
4785        color: textClass ? undefined : customTextColor,
4786        borderRadius: borderRadius ? borderRadius + 'px' : undefined
4787      };
4788  
4789      // The use of a `title` attribute here is soft-deprecated, but still applied
4790      // if it had already been assigned, for the sake of backward-compatibility.
4791      // A title will no longer be assigned for new or updated button block links.
4792  
4793      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4794        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4795          tagName: "a",
4796          className: buttonClasses,
4797          href: url,
4798          title: title,
4799          style: buttonStyle,
4800          value: text,
4801          target: linkTarget,
4802          rel: rel
4803        })
4804      });
4805    }
4806  }, {
4807    attributes: {
4808      ...blockAttributes,
4809      align: {
4810        type: 'string',
4811        default: 'none'
4812      },
4813      backgroundColor: {
4814        type: 'string'
4815      },
4816      textColor: {
4817        type: 'string'
4818      },
4819      customBackgroundColor: {
4820        type: 'string'
4821      },
4822      customTextColor: {
4823        type: 'string'
4824      },
4825      linkTarget: {
4826        type: 'string',
4827        source: 'attribute',
4828        selector: 'a',
4829        attribute: 'target'
4830      },
4831      rel: {
4832        type: 'string',
4833        source: 'attribute',
4834        selector: 'a',
4835        attribute: 'rel'
4836      },
4837      placeholder: {
4838        type: 'string'
4839      }
4840    },
4841    isEligible(attribute) {
4842      return attribute.className && attribute.className.includes('is-style-squared');
4843    },
4844    migrate(attributes) {
4845      let newClassName = attributes.className;
4846      if (newClassName) {
4847        newClassName = newClassName.replace(/is-style-squared[\s]?/, '').trim();
4848      }
4849      return migrateBorderRadius(migrateCustomColorsAndGradients({
4850        ...attributes,
4851        className: newClassName ? newClassName : undefined,
4852        borderRadius: 0
4853      }));
4854    },
4855    save({
4856      attributes
4857    }) {
4858      const {
4859        backgroundColor,
4860        customBackgroundColor,
4861        customTextColor,
4862        linkTarget,
4863        rel,
4864        text,
4865        textColor,
4866        title,
4867        url
4868      } = attributes;
4869      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4870      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4871      const buttonClasses = dist_clsx('wp-block-button__link', {
4872        'has-text-color': textColor || customTextColor,
4873        [textClass]: textClass,
4874        'has-background': backgroundColor || customBackgroundColor,
4875        [backgroundClass]: backgroundClass
4876      });
4877      const buttonStyle = {
4878        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
4879        color: textClass ? undefined : customTextColor
4880      };
4881      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4882        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4883          tagName: "a",
4884          className: buttonClasses,
4885          href: url,
4886          title: title,
4887          style: buttonStyle,
4888          value: text,
4889          target: linkTarget,
4890          rel: rel
4891        })
4892      });
4893    }
4894  }, {
4895    attributes: {
4896      ...blockAttributes,
4897      align: {
4898        type: 'string',
4899        default: 'none'
4900      },
4901      backgroundColor: {
4902        type: 'string'
4903      },
4904      textColor: {
4905        type: 'string'
4906      },
4907      customBackgroundColor: {
4908        type: 'string'
4909      },
4910      customTextColor: {
4911        type: 'string'
4912      }
4913    },
4914    migrate: oldColorsMigration,
4915    save({
4916      attributes
4917    }) {
4918      const {
4919        url,
4920        text,
4921        title,
4922        backgroundColor,
4923        textColor,
4924        customBackgroundColor,
4925        customTextColor
4926      } = attributes;
4927      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
4928      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
4929      const buttonClasses = dist_clsx('wp-block-button__link', {
4930        'has-text-color': textColor || customTextColor,
4931        [textClass]: textClass,
4932        'has-background': backgroundColor || customBackgroundColor,
4933        [backgroundClass]: backgroundClass
4934      });
4935      const buttonStyle = {
4936        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
4937        color: textClass ? undefined : customTextColor
4938      };
4939      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4940        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4941          tagName: "a",
4942          className: buttonClasses,
4943          href: url,
4944          title: title,
4945          style: buttonStyle,
4946          value: text
4947        })
4948      });
4949    }
4950  }, {
4951    attributes: {
4952      ...blockAttributes,
4953      color: {
4954        type: 'string'
4955      },
4956      textColor: {
4957        type: 'string'
4958      },
4959      align: {
4960        type: 'string',
4961        default: 'none'
4962      }
4963    },
4964    save({
4965      attributes
4966    }) {
4967      const {
4968        url,
4969        text,
4970        title,
4971        align,
4972        color,
4973        textColor
4974      } = attributes;
4975      const buttonStyle = {
4976        backgroundColor: color,
4977        color: textColor
4978      };
4979      const linkClass = 'wp-block-button__link';
4980      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
4981        className: `align$align}`,
4982        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
4983          tagName: "a",
4984          className: linkClass,
4985          href: url,
4986          title: title,
4987          style: buttonStyle,
4988          value: text
4989        })
4990      });
4991    },
4992    migrate: oldColorsMigration
4993  }, {
4994    attributes: {
4995      ...blockAttributes,
4996      color: {
4997        type: 'string'
4998      },
4999      textColor: {
5000        type: 'string'
5001      },
5002      align: {
5003        type: 'string',
5004        default: 'none'
5005      }
5006    },
5007    save({
5008      attributes
5009    }) {
5010      const {
5011        url,
5012        text,
5013        title,
5014        align,
5015        color,
5016        textColor
5017      } = attributes;
5018      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5019        className: `align$align}`,
5020        style: {
5021          backgroundColor: color
5022        },
5023        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
5024          tagName: "a",
5025          href: url,
5026          title: title,
5027          style: {
5028            color: textColor
5029          },
5030          value: text
5031        })
5032      });
5033    },
5034    migrate: oldColorsMigration
5035  }];
5036  /* harmony default export */ const button_deprecated = (deprecated_deprecated);
5037  
5038  ;// ./node_modules/@wordpress/block-library/build-module/button/constants.js
5039  const NEW_TAB_REL = 'noreferrer noopener';
5040  const NEW_TAB_TARGET = '_blank';
5041  const NOFOLLOW_REL = 'nofollow';
5042  
5043  ;// ./node_modules/@wordpress/block-library/build-module/button/get-updated-link-attributes.js
5044  /**
5045   * Internal dependencies
5046   */
5047  
5048  
5049  /**
5050   * WordPress dependencies
5051   */
5052  
5053  
5054  /**
5055   * Updates the link attributes.
5056   *
5057   * @param {Object}  attributes               The current block attributes.
5058   * @param {string}  attributes.rel           The current link rel attribute.
5059   * @param {string}  attributes.url           The current link url.
5060   * @param {boolean} attributes.opensInNewTab Whether the link should open in a new window.
5061   * @param {boolean} attributes.nofollow      Whether the link should be marked as nofollow.
5062   */
5063  function getUpdatedLinkAttributes({
5064    rel = '',
5065    url = '',
5066    opensInNewTab,
5067    nofollow
5068  }) {
5069    let newLinkTarget;
5070    // Since `rel` is editable attribute, we need to check for existing values and proceed accordingly.
5071    let updatedRel = rel;
5072    if (opensInNewTab) {
5073      newLinkTarget = NEW_TAB_TARGET;
5074      updatedRel = updatedRel?.includes(NEW_TAB_REL) ? updatedRel : updatedRel + ` $NEW_TAB_REL}`;
5075    } else {
5076      const relRegex = new RegExp(`\\b$NEW_TAB_REL}\\s*`, 'g');
5077      updatedRel = updatedRel?.replace(relRegex, '').trim();
5078    }
5079    if (nofollow) {
5080      updatedRel = updatedRel?.includes(NOFOLLOW_REL) ? updatedRel : (updatedRel + ` $NOFOLLOW_REL}`).trim();
5081    } else {
5082      const relRegex = new RegExp(`\\b$NOFOLLOW_REL}\\s*`, 'g');
5083      updatedRel = updatedRel?.replace(relRegex, '').trim();
5084    }
5085    return {
5086      url: (0,external_wp_url_namespaceObject.prependHTTP)(url),
5087      linkTarget: newLinkTarget,
5088      rel: updatedRel || undefined
5089    };
5090  }
5091  
5092  ;// ./node_modules/@wordpress/block-library/build-module/utils/remove-anchor-tag.js
5093  /**
5094   * Removes anchor tags from a string.
5095   *
5096   * @param {string} value The value to remove anchor tags from.
5097   *
5098   * @return {string} The value with anchor tags removed.
5099   */
5100  function removeAnchorTag(value) {
5101    // To do: Refactor this to use rich text's removeFormat instead.
5102    return value.toString().replace(/<\/?a[^>]*>/g, '');
5103  }
5104  
5105  ;// external ["wp","keycodes"]
5106  const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
5107  ;// ./node_modules/@wordpress/icons/build-module/library/link.js
5108  /**
5109   * WordPress dependencies
5110   */
5111  
5112  
5113  const link_link = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
5114    xmlns: "http://www.w3.org/2000/svg",
5115    viewBox: "0 0 24 24",
5116    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
5117      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"
5118    })
5119  });
5120  /* harmony default export */ const library_link = (link_link);
5121  
5122  ;// ./node_modules/@wordpress/icons/build-module/library/link-off.js
5123  /**
5124   * WordPress dependencies
5125   */
5126  
5127  
5128  const linkOff = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
5129    xmlns: "http://www.w3.org/2000/svg",
5130    viewBox: "0 0 24 24",
5131    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
5132      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"
5133    })
5134  });
5135  /* harmony default export */ const link_off = (linkOff);
5136  
5137  ;// ./node_modules/@wordpress/block-library/build-module/button/edit.js
5138  /**
5139   * External dependencies
5140   */
5141  
5142  
5143  /**
5144   * Internal dependencies
5145   */
5146  
5147  
5148  
5149  
5150  
5151  /**
5152   * WordPress dependencies
5153   */
5154  
5155  
5156  
5157  
5158  
5159  
5160  
5161  
5162  
5163  
5164  const LINK_SETTINGS = [...external_wp_blockEditor_namespaceObject.LinkControl.DEFAULT_LINK_SETTINGS, {
5165    id: 'nofollow',
5166    title: (0,external_wp_i18n_namespaceObject.__)('Mark as nofollow')
5167  }];
5168  function useEnter(props) {
5169    const {
5170      replaceBlocks,
5171      selectionChange
5172    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
5173    const {
5174      getBlock,
5175      getBlockRootClientId,
5176      getBlockIndex
5177    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
5178    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
5179    propsRef.current = props;
5180    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
5181      function onKeyDown(event) {
5182        if (event.defaultPrevented || event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
5183          return;
5184        }
5185        const {
5186          content,
5187          clientId
5188        } = propsRef.current;
5189        if (content.length) {
5190          return;
5191        }
5192        event.preventDefault();
5193        const topParentListBlock = getBlock(getBlockRootClientId(clientId));
5194        const blockIndex = getBlockIndex(clientId);
5195        const head = (0,external_wp_blocks_namespaceObject.cloneBlock)({
5196          ...topParentListBlock,
5197          innerBlocks: topParentListBlock.innerBlocks.slice(0, blockIndex)
5198        });
5199        const middle = (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)());
5200        const after = topParentListBlock.innerBlocks.slice(blockIndex + 1);
5201        const tail = after.length ? [(0,external_wp_blocks_namespaceObject.cloneBlock)({
5202          ...topParentListBlock,
5203          innerBlocks: after
5204        })] : [];
5205        replaceBlocks(topParentListBlock.clientId, [head, middle, ...tail], 1);
5206        // We manually change the selection here because we are replacing
5207        // a different block than the selected one.
5208        selectionChange(middle.clientId);
5209      }
5210      element.addEventListener('keydown', onKeyDown);
5211      return () => {
5212        element.removeEventListener('keydown', onKeyDown);
5213      };
5214    }, []);
5215  }
5216  function WidthPanel({
5217    selectedWidth,
5218    setAttributes
5219  }) {
5220    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
5221    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
5222      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
5223      resetAll: () => setAttributes({
5224        width: undefined
5225      }),
5226      dropdownMenuProps: dropdownMenuProps,
5227      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
5228        label: (0,external_wp_i18n_namespaceObject.__)('Width'),
5229        isShownByDefault: true,
5230        hasValue: () => !!selectedWidth,
5231        onDeselect: () => setAttributes({
5232          width: undefined
5233        }),
5234        __nextHasNoMarginBottom: true,
5235        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
5236          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
5237          value: selectedWidth,
5238          onChange: newWidth => setAttributes({
5239            width: newWidth
5240          }),
5241          isBlock: true,
5242          __next40pxDefaultSize: true,
5243          __nextHasNoMarginBottom: true,
5244          children: [25, 50, 75, 100].map(widthValue => {
5245            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
5246              value: widthValue,
5247              label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: Percentage value. */
5248              (0,external_wp_i18n_namespaceObject.__)('%d%%'), widthValue)
5249            }, widthValue);
5250          })
5251        })
5252      })
5253    });
5254  }
5255  function ButtonEdit(props) {
5256    const {
5257      attributes,
5258      setAttributes,
5259      className,
5260      isSelected,
5261      onReplace,
5262      mergeBlocks,
5263      clientId,
5264      context
5265    } = props;
5266    const {
5267      tagName,
5268      textAlign,
5269      linkTarget,
5270      placeholder,
5271      rel,
5272      style,
5273      text,
5274      url,
5275      width,
5276      metadata
5277    } = attributes;
5278    const TagName = tagName || 'a';
5279    function onKeyDown(event) {
5280      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
5281        startEditing(event);
5282      } else if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primaryShift(event, 'k')) {
5283        unlink();
5284        richTextRef.current?.focus();
5285      }
5286    }
5287  
5288    // Use internal state instead of a ref to make sure that the component
5289    // re-renders when the popover's anchor updates.
5290    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
5291    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
5292    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
5293    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
5294    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
5295    const ref = (0,external_wp_element_namespaceObject.useRef)();
5296    const richTextRef = (0,external_wp_element_namespaceObject.useRef)();
5297    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
5298      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, ref]),
5299      onKeyDown
5300    });
5301    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
5302    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
5303    const isURLSet = !!url;
5304    const opensInNewTab = linkTarget === NEW_TAB_TARGET;
5305    const nofollow = !!rel?.includes(NOFOLLOW_REL);
5306    const isLinkTag = 'a' === TagName;
5307    function startEditing(event) {
5308      event.preventDefault();
5309      setIsEditingURL(true);
5310    }
5311    function unlink() {
5312      setAttributes({
5313        url: undefined,
5314        linkTarget: undefined,
5315        rel: undefined
5316      });
5317      setIsEditingURL(false);
5318    }
5319    (0,external_wp_element_namespaceObject.useEffect)(() => {
5320      if (!isSelected) {
5321        setIsEditingURL(false);
5322      }
5323    }, [isSelected]);
5324  
5325    // Memoize link value to avoid overriding the LinkControl's internal state.
5326    // This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.
5327    const linkValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({
5328      url,
5329      opensInNewTab,
5330      nofollow
5331    }), [url, opensInNewTab, nofollow]);
5332    const useEnterRef = useEnter({
5333      content: text,
5334      clientId
5335    });
5336    const mergedRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([useEnterRef, richTextRef]);
5337    const {
5338      lockUrlControls = false
5339    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
5340      if (!isSelected) {
5341        return {};
5342      }
5343      const blockBindingsSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(metadata?.bindings?.url?.source);
5344      return {
5345        lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue?.({
5346          select,
5347          context,
5348          args: metadata?.bindings?.url?.args
5349        })
5350      };
5351    }, [context, isSelected, metadata?.bindings?.url]);
5352    const [fluidTypographySettings, layout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.fluid', 'layout');
5353    const typographyProps = (0,external_wp_blockEditor_namespaceObject.getTypographyClassesAndStyles)(attributes, {
5354      typography: {
5355        fluid: fluidTypographySettings
5356      },
5357      layout: {
5358        wideSize: layout?.wideSize
5359      }
5360    });
5361    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
5362      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5363        ...blockProps,
5364        className: dist_clsx(blockProps.className, {
5365          [`has-custom-width wp-block-button__width-$width}`]: width
5366        }),
5367        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
5368          ref: mergedRef,
5369          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
5370          placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Add text…'),
5371          value: text,
5372          onChange: value => setAttributes({
5373            text: removeAnchorTag(value)
5374          }),
5375          withoutInteractiveFormatting: true,
5376          className: dist_clsx(className, 'wp-block-button__link', colorProps.className, borderProps.className, typographyProps.className, {
5377            [`has-text-align-$textAlign}`]: textAlign,
5378            // For backwards compatibility add style that isn't
5379            // provided via block support.
5380            'no-border-radius': style?.border?.radius === 0,
5381            [`has-custom-font-size`]: blockProps.style.fontSize
5382          }, (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
5383          style: {
5384            ...borderProps.style,
5385            ...colorProps.style,
5386            ...spacingProps.style,
5387            ...shadowProps.style,
5388            ...typographyProps.style,
5389            writingMode: undefined
5390          },
5391          onReplace: onReplace,
5392          onMerge: mergeBlocks,
5393          identifier: "text"
5394        })
5395      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
5396        group: "block",
5397        children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
5398          value: textAlign,
5399          onChange: nextAlign => {
5400            setAttributes({
5401              textAlign: nextAlign
5402            });
5403          }
5404        }), !isURLSet && isLinkTag && !lockUrlControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
5405          name: "link",
5406          icon: library_link,
5407          title: (0,external_wp_i18n_namespaceObject.__)('Link'),
5408          shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
5409          onClick: startEditing
5410        }), isURLSet && isLinkTag && !lockUrlControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
5411          name: "link",
5412          icon: link_off,
5413          title: (0,external_wp_i18n_namespaceObject.__)('Unlink'),
5414          shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('k'),
5415          onClick: unlink,
5416          isActive: true
5417        })]
5418      }), isLinkTag && isSelected && (isEditingURL || isURLSet) && !lockUrlControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover, {
5419        placement: "bottom",
5420        onClose: () => {
5421          setIsEditingURL(false);
5422          richTextRef.current?.focus();
5423        },
5424        anchor: popoverAnchor,
5425        focusOnMount: isEditingURL ? 'firstElement' : false,
5426        __unstableSlotName: "__unstable-block-tools-after",
5427        shift: true,
5428        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.LinkControl, {
5429          value: linkValue,
5430          onChange: ({
5431            url: newURL,
5432            opensInNewTab: newOpensInNewTab,
5433            nofollow: newNofollow
5434          }) => setAttributes(getUpdatedLinkAttributes({
5435            rel,
5436            url: newURL,
5437            opensInNewTab: newOpensInNewTab,
5438            nofollow: newNofollow
5439          })),
5440          onRemove: () => {
5441            unlink();
5442            richTextRef.current?.focus();
5443          },
5444          forceIsEditingLink: isEditingURL,
5445          settings: LINK_SETTINGS
5446        })
5447      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
5448        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WidthPanel, {
5449          selectedWidth: width,
5450          setAttributes: setAttributes
5451        })
5452      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
5453        group: "advanced",
5454        children: isLinkTag && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
5455          __next40pxDefaultSize: true,
5456          __nextHasNoMarginBottom: true,
5457          label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
5458          value: rel || '',
5459          onChange: newRel => setAttributes({
5460            rel: newRel
5461          })
5462        })
5463      })]
5464    });
5465  }
5466  /* harmony default export */ const button_edit = (ButtonEdit);
5467  
5468  ;// ./node_modules/@wordpress/block-library/build-module/button/save.js
5469  /**
5470   * External dependencies
5471   */
5472  
5473  
5474  /**
5475   * WordPress dependencies
5476   */
5477  
5478  
5479  function save_save({
5480    attributes,
5481    className
5482  }) {
5483    const {
5484      tagName,
5485      type,
5486      textAlign,
5487      fontSize,
5488      linkTarget,
5489      rel,
5490      style,
5491      text,
5492      title,
5493      url,
5494      width
5495    } = attributes;
5496    const TagName = tagName || 'a';
5497    const isButtonTag = 'button' === TagName;
5498    const buttonType = type || 'button';
5499    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
5500    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
5501    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
5502    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
5503    const typographyProps = (0,external_wp_blockEditor_namespaceObject.getTypographyClassesAndStyles)(attributes);
5504    const buttonClasses = dist_clsx('wp-block-button__link', colorProps.className, borderProps.className, typographyProps.className, {
5505      [`has-text-align-$textAlign}`]: textAlign,
5506      // For backwards compatibility add style that isn't provided via
5507      // block support.
5508      'no-border-radius': style?.border?.radius === 0,
5509      [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
5510    }, (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button'));
5511    const buttonStyle = {
5512      ...borderProps.style,
5513      ...colorProps.style,
5514      ...spacingProps.style,
5515      ...shadowProps.style,
5516      ...typographyProps.style,
5517      writingMode: undefined
5518    };
5519  
5520    // The use of a `title` attribute here is soft-deprecated, but still applied
5521    // if it had already been assigned, for the sake of backward-compatibility.
5522    // A title will no longer be assigned for new or updated button block links.
5523  
5524    const wrapperClasses = dist_clsx(className, {
5525      [`has-custom-width wp-block-button__width-$width}`]: width
5526    });
5527    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5528      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
5529        className: wrapperClasses
5530      }),
5531      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
5532        tagName: TagName,
5533        type: isButtonTag ? buttonType : null,
5534        className: buttonClasses,
5535        href: isButtonTag ? null : url,
5536        title: title,
5537        style: buttonStyle,
5538        value: text,
5539        target: isButtonTag ? null : linkTarget,
5540        rel: isButtonTag ? null : rel
5541      })
5542    });
5543  }
5544  
5545  ;// ./node_modules/@wordpress/block-library/build-module/button/index.js
5546  /**
5547   * WordPress dependencies
5548   */
5549  
5550  
5551  
5552  /**
5553   * Internal dependencies
5554   */
5555  
5556  
5557  
5558  const button_metadata = {
5559    $schema: "https://schemas.wp.org/trunk/block.json",
5560    apiVersion: 3,
5561    name: "core/button",
5562    title: "Button",
5563    category: "design",
5564    parent: ["core/buttons"],
5565    description: "Prompt visitors to take action with a button-style link.",
5566    keywords: ["link"],
5567    textdomain: "default",
5568    attributes: {
5569      tagName: {
5570        type: "string",
5571        "enum": ["a", "button"],
5572        "default": "a"
5573      },
5574      type: {
5575        type: "string",
5576        "default": "button"
5577      },
5578      textAlign: {
5579        type: "string"
5580      },
5581      url: {
5582        type: "string",
5583        source: "attribute",
5584        selector: "a",
5585        attribute: "href",
5586        role: "content"
5587      },
5588      title: {
5589        type: "string",
5590        source: "attribute",
5591        selector: "a,button",
5592        attribute: "title",
5593        role: "content"
5594      },
5595      text: {
5596        type: "rich-text",
5597        source: "rich-text",
5598        selector: "a,button",
5599        role: "content"
5600      },
5601      linkTarget: {
5602        type: "string",
5603        source: "attribute",
5604        selector: "a",
5605        attribute: "target",
5606        role: "content"
5607      },
5608      rel: {
5609        type: "string",
5610        source: "attribute",
5611        selector: "a",
5612        attribute: "rel",
5613        role: "content"
5614      },
5615      placeholder: {
5616        type: "string"
5617      },
5618      backgroundColor: {
5619        type: "string"
5620      },
5621      textColor: {
5622        type: "string"
5623      },
5624      gradient: {
5625        type: "string"
5626      },
5627      width: {
5628        type: "number"
5629      }
5630    },
5631    supports: {
5632      anchor: true,
5633      splitting: true,
5634      align: false,
5635      alignWide: false,
5636      color: {
5637        __experimentalSkipSerialization: true,
5638        gradients: true,
5639        __experimentalDefaultControls: {
5640          background: true,
5641          text: true
5642        }
5643      },
5644      typography: {
5645        __experimentalSkipSerialization: ["fontSize", "lineHeight", "fontFamily", "fontWeight", "fontStyle", "textTransform", "textDecoration", "letterSpacing"],
5646        fontSize: true,
5647        lineHeight: true,
5648        __experimentalFontFamily: true,
5649        __experimentalFontWeight: true,
5650        __experimentalFontStyle: true,
5651        __experimentalTextTransform: true,
5652        __experimentalTextDecoration: true,
5653        __experimentalLetterSpacing: true,
5654        __experimentalWritingMode: true,
5655        __experimentalDefaultControls: {
5656          fontSize: true
5657        }
5658      },
5659      reusable: false,
5660      shadow: {
5661        __experimentalSkipSerialization: true
5662      },
5663      spacing: {
5664        __experimentalSkipSerialization: true,
5665        padding: ["horizontal", "vertical"],
5666        __experimentalDefaultControls: {
5667          padding: true
5668        }
5669      },
5670      __experimentalBorder: {
5671        color: true,
5672        radius: true,
5673        style: true,
5674        width: true,
5675        __experimentalSkipSerialization: true,
5676        __experimentalDefaultControls: {
5677          color: true,
5678          radius: true,
5679          style: true,
5680          width: true
5681        }
5682      },
5683      interactivity: {
5684        clientNavigation: true
5685      }
5686    },
5687    styles: [{
5688      name: "fill",
5689      label: "Fill",
5690      isDefault: true
5691    }, {
5692      name: "outline",
5693      label: "Outline"
5694    }],
5695    editorStyle: "wp-block-button-editor",
5696    style: "wp-block-button",
5697    selectors: {
5698      root: ".wp-block-button .wp-block-button__link",
5699      typography: {
5700        writingMode: ".wp-block-button"
5701      }
5702    }
5703  };
5704  
5705  const {
5706    name: button_name
5707  } = button_metadata;
5708  
5709  const button_settings = {
5710    icon: library_button,
5711    example: {
5712      attributes: {
5713        className: 'is-style-fill',
5714        text: (0,external_wp_i18n_namespaceObject.__)('Call to action')
5715      }
5716    },
5717    edit: button_edit,
5718    save: save_save,
5719    deprecated: button_deprecated,
5720    merge: (a, {
5721      text = ''
5722    }) => ({
5723      ...a,
5724      text: (a.text || '') + text
5725    })
5726  };
5727  const button_init = () => initBlock({
5728    name: button_name,
5729    metadata: button_metadata,
5730    settings: button_settings
5731  });
5732  
5733  ;// ./node_modules/@wordpress/icons/build-module/library/buttons.js
5734  /**
5735   * WordPress dependencies
5736   */
5737  
5738  
5739  const buttons = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
5740    viewBox: "0 0 24 24",
5741    xmlns: "http://www.w3.org/2000/svg",
5742    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
5743      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"
5744    })
5745  });
5746  /* harmony default export */ const library_buttons = (buttons);
5747  
5748  ;// ./node_modules/@wordpress/block-library/build-module/buttons/deprecated.js
5749  /**
5750   * External dependencies
5751   */
5752  
5753  /**
5754   * WordPress dependencies
5755   */
5756  
5757  
5758  /**
5759   * @param {Object} attributes Block's attributes.
5760   */
5761  
5762  const migrateWithLayout = attributes => {
5763    if (!!attributes.layout) {
5764      return attributes;
5765    }
5766    const {
5767      contentJustification,
5768      orientation,
5769      ...updatedAttributes
5770    } = attributes;
5771    if (contentJustification || orientation) {
5772      Object.assign(updatedAttributes, {
5773        layout: {
5774          type: 'flex',
5775          ...(contentJustification && {
5776            justifyContent: contentJustification
5777          }),
5778          ...(orientation && {
5779            orientation
5780          })
5781        }
5782      });
5783    }
5784    return updatedAttributes;
5785  };
5786  const buttons_deprecated_deprecated = [{
5787    attributes: {
5788      contentJustification: {
5789        type: 'string'
5790      },
5791      orientation: {
5792        type: 'string',
5793        default: 'horizontal'
5794      }
5795    },
5796    supports: {
5797      anchor: true,
5798      align: ['wide', 'full'],
5799      __experimentalExposeControlsToChildren: true,
5800      spacing: {
5801        blockGap: true,
5802        margin: ['top', 'bottom'],
5803        __experimentalDefaultControls: {
5804          blockGap: true
5805        }
5806      }
5807    },
5808    isEligible: ({
5809      contentJustification,
5810      orientation
5811    }) => !!contentJustification || !!orientation,
5812    migrate: migrateWithLayout,
5813    save({
5814      attributes: {
5815        contentJustification,
5816        orientation
5817      }
5818    }) {
5819      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5820        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
5821          className: dist_clsx({
5822            [`is-content-justification-$contentJustification}`]: contentJustification,
5823            'is-vertical': orientation === 'vertical'
5824          })
5825        }),
5826        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
5827      });
5828    }
5829  }, {
5830    supports: {
5831      align: ['center', 'left', 'right'],
5832      anchor: true
5833    },
5834    save() {
5835      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
5836        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
5837      });
5838    },
5839    isEligible({
5840      align
5841    }) {
5842      return align && ['center', 'left', 'right'].includes(align);
5843    },
5844    migrate(attributes) {
5845      return migrateWithLayout({
5846        ...attributes,
5847        align: undefined,
5848        // Floating Buttons blocks shouldn't have been supported in the
5849        // first place. Most users using them probably expected them to
5850        // act like content justification controls, so these blocks are
5851        // migrated to use content justification.
5852        // As for center-aligned Buttons blocks, the content justification
5853        // equivalent will create an identical end result in most cases.
5854        contentJustification: attributes.align
5855      });
5856    }
5857  }];
5858  /* harmony default export */ const buttons_deprecated = (buttons_deprecated_deprecated);
5859  
5860  ;// external ["wp","richText"]
5861  const external_wp_richText_namespaceObject = window["wp"]["richText"];
5862  ;// ./node_modules/@wordpress/block-library/build-module/utils/get-transformed-metadata.js
5863  /**
5864   * WordPress dependencies
5865   */
5866  
5867  
5868  /**
5869   * Transform the metadata attribute with only the values and bindings specified by each transform.
5870   * Returns `undefined` if the input metadata is falsy.
5871   *
5872   * @param {Object}   metadata         Original metadata attribute from the block that is being transformed.
5873   * @param {Object}   newBlockName     Name of the final block after the transformation.
5874   * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.
5875   * @return {Object|undefined} New metadata object only with the relevant properties.
5876   */
5877  function getTransformedMetadata(metadata, newBlockName, bindingsCallback) {
5878    if (!metadata) {
5879      return;
5880    }
5881    const {
5882      supports
5883    } = (0,external_wp_blocks_namespaceObject.getBlockType)(newBlockName);
5884    // Fixed until an opt-in mechanism is implemented.
5885    const BLOCK_BINDINGS_SUPPORTED_BLOCKS = ['core/paragraph', 'core/heading', 'core/image', 'core/button'];
5886    // The metadata properties that should be preserved after the transform.
5887    const transformSupportedProps = [];
5888    // If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.
5889    if (BLOCK_BINDINGS_SUPPORTED_BLOCKS.includes(newBlockName) && bindingsCallback) {
5890      transformSupportedProps.push('id', 'bindings');
5891    }
5892    // If it support block naming (true by default), add the `name` property.
5893    if (supports.renaming !== false) {
5894      transformSupportedProps.push('name');
5895    }
5896  
5897    // Return early if no supported properties.
5898    if (!transformSupportedProps.length) {
5899      return;
5900    }
5901    const newMetadata = Object.entries(metadata).reduce((obj, [prop, value]) => {
5902      // If prop is not supported, don't add it to the new metadata object.
5903      if (!transformSupportedProps.includes(prop)) {
5904        return obj;
5905      }
5906      obj[prop] = prop === 'bindings' ? bindingsCallback(value) : value;
5907      return obj;
5908    }, {});
5909  
5910    // Return undefined if object is empty.
5911    return Object.keys(newMetadata).length ? newMetadata : undefined;
5912  }
5913  
5914  ;// ./node_modules/@wordpress/block-library/build-module/buttons/transforms.js
5915  /**
5916   * WordPress dependencies
5917   */
5918  
5919  
5920  
5921  /**
5922   * Internal dependencies
5923   */
5924  
5925  const transforms_transforms = {
5926    from: [{
5927      type: 'block',
5928      isMultiBlock: true,
5929      blocks: ['core/button'],
5930      transform: buttons =>
5931      // Creates the buttons block.
5932      (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {},
5933      // Loop the selected buttons.
5934      buttons.map(attributes =>
5935      // Create singular button in the buttons block.
5936      (0,external_wp_blocks_namespaceObject.createBlock)('core/button', attributes)))
5937    }, {
5938      type: 'block',
5939      isMultiBlock: true,
5940      blocks: ['core/paragraph'],
5941      transform: buttons =>
5942      // Creates the buttons block.
5943      (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {},
5944      // Loop the selected buttons.
5945      buttons.map(attributes => {
5946        const {
5947          content,
5948          metadata
5949        } = attributes;
5950        const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, content);
5951        // Remove any HTML tags.
5952        const text = element.innerText || '';
5953        // Get first url.
5954        const link = element.querySelector('a');
5955        const url = link?.getAttribute('href');
5956        // Create singular button in the buttons block.
5957        return (0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
5958          text,
5959          url,
5960          metadata: getTransformedMetadata(metadata, 'core/button', ({
5961            content: contentBinding
5962          }) => ({
5963            text: contentBinding
5964          }))
5965        });
5966      })),
5967      isMatch: paragraphs => {
5968        return paragraphs.every(attributes => {
5969          const element = (0,external_wp_richText_namespaceObject.__unstableCreateElement)(document, attributes.content);
5970          const text = element.innerText || '';
5971          const links = element.querySelectorAll('a');
5972          return text.length <= 30 && links.length <= 1;
5973        });
5974      }
5975    }]
5976  };
5977  /* harmony default export */ const buttons_transforms = (transforms_transforms);
5978  
5979  ;// ./node_modules/@wordpress/block-library/build-module/buttons/edit.js
5980  /**
5981   * External dependencies
5982   */
5983  
5984  
5985  /**
5986   * WordPress dependencies
5987   */
5988  
5989  
5990  
5991  
5992  const DEFAULT_BLOCK = {
5993    name: 'core/button',
5994    attributesToCopy: ['backgroundColor', 'border', 'className', 'fontFamily', 'fontSize', 'gradient', 'style', 'textColor', 'width']
5995  };
5996  function ButtonsEdit({
5997    attributes,
5998    className
5999  }) {
6000    var _layout$orientation;
6001    const {
6002      fontSize,
6003      layout,
6004      style
6005    } = attributes;
6006    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
6007      className: dist_clsx(className, {
6008        'has-custom-font-size': fontSize || style?.typography?.fontSize
6009      })
6010    });
6011    const {
6012      hasButtonVariations
6013    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
6014      const buttonVariations = select(external_wp_blocks_namespaceObject.store).getBlockVariations('core/button', 'inserter');
6015      return {
6016        hasButtonVariations: buttonVariations.length > 0
6017      };
6018    }, []);
6019    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
6020      defaultBlock: DEFAULT_BLOCK,
6021      // This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.
6022      directInsert: !hasButtonVariations,
6023      template: [['core/button']],
6024      templateInsertUpdatesSelection: true,
6025      orientation: (_layout$orientation = layout?.orientation) !== null && _layout$orientation !== void 0 ? _layout$orientation : 'horizontal'
6026    });
6027    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6028      ...innerBlocksProps
6029    });
6030  }
6031  /* harmony default export */ const buttons_edit = (ButtonsEdit);
6032  
6033  ;// ./node_modules/@wordpress/block-library/build-module/buttons/save.js
6034  /**
6035   * External dependencies
6036   */
6037  
6038  
6039  /**
6040   * WordPress dependencies
6041   */
6042  
6043  
6044  function buttons_save_save({
6045    attributes,
6046    className
6047  }) {
6048    const {
6049      fontSize,
6050      style
6051    } = attributes;
6052    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
6053      className: dist_clsx(className, {
6054        'has-custom-font-size': fontSize || style?.typography?.fontSize
6055      })
6056    });
6057    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
6058    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6059      ...innerBlocksProps
6060    });
6061  }
6062  
6063  ;// ./node_modules/@wordpress/block-library/build-module/buttons/index.js
6064  /**
6065   * WordPress dependencies
6066   */
6067  
6068  
6069  
6070  /**
6071   * Internal dependencies
6072   */
6073  
6074  
6075  
6076  
6077  const buttons_metadata = {
6078    $schema: "https://schemas.wp.org/trunk/block.json",
6079    apiVersion: 3,
6080    name: "core/buttons",
6081    title: "Buttons",
6082    category: "design",
6083    allowedBlocks: ["core/button"],
6084    description: "Prompt visitors to take action with a group of button-style links.",
6085    keywords: ["link"],
6086    textdomain: "default",
6087    supports: {
6088      anchor: true,
6089      align: ["wide", "full"],
6090      html: false,
6091      __experimentalExposeControlsToChildren: true,
6092      color: {
6093        gradients: true,
6094        text: false,
6095        __experimentalDefaultControls: {
6096          background: true
6097        }
6098      },
6099      spacing: {
6100        blockGap: ["horizontal", "vertical"],
6101        padding: true,
6102        margin: ["top", "bottom"],
6103        __experimentalDefaultControls: {
6104          blockGap: true
6105        }
6106      },
6107      typography: {
6108        fontSize: true,
6109        lineHeight: true,
6110        __experimentalFontFamily: true,
6111        __experimentalFontWeight: true,
6112        __experimentalFontStyle: true,
6113        __experimentalTextTransform: true,
6114        __experimentalTextDecoration: true,
6115        __experimentalLetterSpacing: true,
6116        __experimentalDefaultControls: {
6117          fontSize: true
6118        }
6119      },
6120      __experimentalBorder: {
6121        color: true,
6122        radius: true,
6123        style: true,
6124        width: true,
6125        __experimentalDefaultControls: {
6126          color: true,
6127          radius: true,
6128          style: true,
6129          width: true
6130        }
6131      },
6132      layout: {
6133        allowSwitching: false,
6134        allowInheriting: false,
6135        "default": {
6136          type: "flex"
6137        }
6138      },
6139      interactivity: {
6140        clientNavigation: true
6141      }
6142    },
6143    editorStyle: "wp-block-buttons-editor",
6144    style: "wp-block-buttons"
6145  };
6146  
6147  const {
6148    name: buttons_name
6149  } = buttons_metadata;
6150  
6151  const buttons_settings = {
6152    icon: library_buttons,
6153    example: {
6154      attributes: {
6155        layout: {
6156          type: 'flex',
6157          justifyContent: 'center'
6158        }
6159      },
6160      innerBlocks: [{
6161        name: 'core/button',
6162        attributes: {
6163          text: (0,external_wp_i18n_namespaceObject.__)('Find out more')
6164        }
6165      }, {
6166        name: 'core/button',
6167        attributes: {
6168          text: (0,external_wp_i18n_namespaceObject.__)('Contact us')
6169        }
6170      }]
6171    },
6172    deprecated: buttons_deprecated,
6173    transforms: buttons_transforms,
6174    edit: buttons_edit,
6175    save: buttons_save_save
6176  };
6177  const buttons_init = () => initBlock({
6178    name: buttons_name,
6179    metadata: buttons_metadata,
6180    settings: buttons_settings
6181  });
6182  
6183  ;// ./node_modules/@wordpress/icons/build-module/library/calendar.js
6184  /**
6185   * WordPress dependencies
6186   */
6187  
6188  
6189  const calendar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6190    viewBox: "0 0 24 24",
6191    xmlns: "http://www.w3.org/2000/svg",
6192    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6193      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"
6194    })
6195  });
6196  /* harmony default export */ const library_calendar = (calendar);
6197  
6198  ;// ./node_modules/@wordpress/block-library/build-module/calendar/edit.js
6199  /**
6200   * External dependencies
6201   */
6202  
6203  
6204  /**
6205   * WordPress dependencies
6206   */
6207  
6208  
6209  
6210  
6211  
6212  
6213  
6214  
6215  /**
6216   * Returns the year and month of a specified date.
6217   *
6218   * @see `WP_REST_Posts_Controller::prepare_date_response()`.
6219   *
6220   * @param {string} date Date in `ISO8601/RFC3339` format.
6221   * @return {Object} Year and date of the specified date.
6222   */
6223  
6224  const getYearMonth = memize(date => {
6225    if (!date) {
6226      return {};
6227    }
6228    const dateObj = new Date(date);
6229    return {
6230      year: dateObj.getFullYear(),
6231      month: dateObj.getMonth() + 1
6232    };
6233  });
6234  function CalendarEdit({
6235    attributes
6236  }) {
6237    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
6238    const {
6239      date,
6240      hasPosts,
6241      hasPostsResolved
6242    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
6243      const {
6244        getEntityRecords,
6245        hasFinishedResolution
6246      } = select(external_wp_coreData_namespaceObject.store);
6247      const singlePublishedPostQuery = {
6248        status: 'publish',
6249        per_page: 1
6250      };
6251      const posts = getEntityRecords('postType', 'post', singlePublishedPostQuery);
6252      const postsResolved = hasFinishedResolution('getEntityRecords', ['postType', 'post', singlePublishedPostQuery]);
6253      let _date;
6254  
6255      // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
6256      // Blocks can be loaded into a *non-post* block editor.
6257      // eslint-disable-next-line @wordpress/data-no-store-string-literals
6258      const editorSelectors = select('core/editor');
6259      if (editorSelectors) {
6260        const postType = editorSelectors.getEditedPostAttribute('type');
6261        // Dates are used to overwrite year and month used on the calendar.
6262        // This overwrite should only happen for 'post' post types.
6263        // For other post types the calendar always displays the current month.
6264        if (postType === 'post') {
6265          _date = editorSelectors.getEditedPostAttribute('date');
6266        }
6267      }
6268      return {
6269        date: _date,
6270        hasPostsResolved: postsResolved,
6271        hasPosts: postsResolved && posts?.length === 1
6272      };
6273    }, []);
6274    if (!hasPosts) {
6275      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6276        ...blockProps,
6277        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
6278          icon: library_calendar,
6279          label: (0,external_wp_i18n_namespaceObject.__)('Calendar'),
6280          children: !hasPostsResolved ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : (0,external_wp_i18n_namespaceObject.__)('No published posts found.')
6281        })
6282      });
6283    }
6284    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
6285      ...blockProps,
6286      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
6287        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
6288          block: "core/calendar",
6289          attributes: {
6290            ...attributes,
6291            ...getYearMonth(date)
6292          }
6293        })
6294      })
6295    });
6296  }
6297  
6298  ;// ./node_modules/@wordpress/block-library/build-module/calendar/transforms.js
6299  /**
6300   * WordPress dependencies
6301   */
6302  
6303  const calendar_transforms_transforms = {
6304    from: [{
6305      type: 'block',
6306      blocks: ['core/archives'],
6307      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/calendar')
6308    }],
6309    to: [{
6310      type: 'block',
6311      blocks: ['core/archives'],
6312      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/archives')
6313    }]
6314  };
6315  /* harmony default export */ const calendar_transforms = (calendar_transforms_transforms);
6316  
6317  ;// ./node_modules/@wordpress/block-library/build-module/calendar/index.js
6318  /**
6319   * WordPress dependencies
6320   */
6321  
6322  
6323  /**
6324   * Internal dependencies
6325   */
6326  
6327  const calendar_metadata = {
6328    $schema: "https://schemas.wp.org/trunk/block.json",
6329    apiVersion: 3,
6330    name: "core/calendar",
6331    title: "Calendar",
6332    category: "widgets",
6333    description: "A calendar of your site\u2019s posts.",
6334    keywords: ["posts", "archive"],
6335    textdomain: "default",
6336    attributes: {
6337      month: {
6338        type: "integer"
6339      },
6340      year: {
6341        type: "integer"
6342      }
6343    },
6344    supports: {
6345      align: true,
6346      color: {
6347        link: true,
6348        __experimentalSkipSerialization: ["text", "background"],
6349        __experimentalDefaultControls: {
6350          background: true,
6351          text: true
6352        },
6353        __experimentalSelector: "table, th"
6354      },
6355      typography: {
6356        fontSize: true,
6357        lineHeight: true,
6358        __experimentalFontFamily: true,
6359        __experimentalFontWeight: true,
6360        __experimentalFontStyle: true,
6361        __experimentalTextTransform: true,
6362        __experimentalLetterSpacing: true,
6363        __experimentalDefaultControls: {
6364          fontSize: true
6365        }
6366      },
6367      interactivity: {
6368        clientNavigation: true
6369      }
6370    },
6371    style: "wp-block-calendar"
6372  };
6373  
6374  
6375  const {
6376    name: calendar_name
6377  } = calendar_metadata;
6378  
6379  const calendar_settings = {
6380    icon: library_calendar,
6381    example: {},
6382    edit: CalendarEdit,
6383    transforms: calendar_transforms
6384  };
6385  const calendar_init = () => initBlock({
6386    name: calendar_name,
6387    metadata: calendar_metadata,
6388    settings: calendar_settings
6389  });
6390  
6391  ;// ./node_modules/@wordpress/icons/build-module/library/category.js
6392  /**
6393   * WordPress dependencies
6394   */
6395  
6396  
6397  const category = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6398    viewBox: "0 0 24 24",
6399    xmlns: "http://www.w3.org/2000/svg",
6400    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6401      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",
6402      fillRule: "evenodd",
6403      clipRule: "evenodd"
6404    })
6405  });
6406  /* harmony default export */ const library_category = (category);
6407  
6408  ;// external ["wp","htmlEntities"]
6409  const external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
6410  ;// ./node_modules/@wordpress/icons/build-module/library/pin.js
6411  /**
6412   * WordPress dependencies
6413   */
6414  
6415  
6416  const pin = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6417    xmlns: "http://www.w3.org/2000/svg",
6418    viewBox: "0 0 24 24",
6419    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6420      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"
6421    })
6422  });
6423  /* harmony default export */ const library_pin = (pin);
6424  
6425  ;// ./node_modules/@wordpress/block-library/build-module/categories/edit.js
6426  /**
6427   * External dependencies
6428   */
6429  
6430  
6431  /**
6432   * WordPress dependencies
6433   */
6434  
6435  
6436  
6437  
6438  
6439  
6440  
6441  
6442  /**
6443   * Internal dependencies
6444   */
6445  
6446  
6447  function CategoriesEdit({
6448    attributes: {
6449      displayAsDropdown,
6450      showHierarchy,
6451      showPostCounts,
6452      showOnlyTopLevel,
6453      showEmpty,
6454      label,
6455      showLabel,
6456      taxonomy: taxonomySlug
6457    },
6458    setAttributes,
6459    className
6460  }) {
6461    const selectId = (0,external_wp_compose_namespaceObject.useInstanceId)(CategoriesEdit, 'blocks-category-select');
6462    const {
6463      records: allTaxonomies,
6464      isResolvingTaxonomies
6465    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'taxonomy');
6466    const taxonomies = allTaxonomies?.filter(t => t.visibility.public);
6467    const taxonomy = taxonomies?.find(t => t.slug === taxonomySlug);
6468    const isHierarchicalTaxonomy = !isResolvingTaxonomies && taxonomy?.hierarchical;
6469    const query = {
6470      per_page: -1,
6471      hide_empty: !showEmpty,
6472      context: 'view'
6473    };
6474    if (isHierarchicalTaxonomy && showOnlyTopLevel) {
6475      query.parent = 0;
6476    }
6477    const {
6478      records: categories,
6479      isResolving
6480    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('taxonomy', taxonomySlug, query);
6481    const getCategoriesList = parentId => {
6482      if (!categories?.length) {
6483        return [];
6484      }
6485      if (parentId === null) {
6486        return categories;
6487      }
6488      return categories.filter(({
6489        parent
6490      }) => parent === parentId);
6491    };
6492    const toggleAttribute = attributeName => newValue => setAttributes({
6493      [attributeName]: newValue
6494    });
6495    const renderCategoryName = name => !name ? (0,external_wp_i18n_namespaceObject.__)('(Untitled)') : (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(name).trim();
6496    const renderCategoryList = () => {
6497      const parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;
6498      const categoriesList = getCategoriesList(parentId);
6499      return categoriesList.map(category => renderCategoryListItem(category));
6500    };
6501    const renderCategoryListItem = category => {
6502      const childCategories = getCategoriesList(category.id);
6503      const {
6504        id,
6505        link,
6506        count,
6507        name
6508      } = category;
6509      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
6510        className: `cat-item cat-item-$id}`,
6511        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
6512          href: link,
6513          target: "_blank",
6514          rel: "noreferrer noopener",
6515          children: renderCategoryName(name)
6516        }), showPostCounts && ` ($count})`, isHierarchicalTaxonomy && showHierarchy && !!childCategories.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
6517          className: "children",
6518          children: childCategories.map(childCategory => renderCategoryListItem(childCategory))
6519        })]
6520      }, id);
6521    };
6522    const renderCategoryDropdown = () => {
6523      const parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;
6524      const categoriesList = getCategoriesList(parentId);
6525      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
6526        children: [showLabel ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
6527          className: "wp-block-categories__label",
6528          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
6529          placeholder: taxonomy.name,
6530          withoutInteractiveFormatting: true,
6531          value: label,
6532          onChange: html => setAttributes({
6533            label: html
6534          })
6535        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
6536          as: "label",
6537          htmlFor: selectId,
6538          children: label ? label : taxonomy.name
6539        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("select", {
6540          id: selectId,
6541          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("option", {
6542            children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: taxonomy's singular name */
6543            (0,external_wp_i18n_namespaceObject.__)('Select %s'), taxonomy.labels.singular_name)
6544          }), categoriesList.map(category => renderCategoryDropdownItem(category, 0))]
6545        })]
6546      });
6547    };
6548    const renderCategoryDropdownItem = (category, level) => {
6549      const {
6550        id,
6551        count,
6552        name
6553      } = category;
6554      const childCategories = getCategoriesList(id);
6555      return [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("option", {
6556        className: `level-$level}`,
6557        children: [Array.from({
6558          length: level * 3
6559        }).map(() => '\xa0'), renderCategoryName(name), showPostCounts && ` ($count})`]
6560      }, id), isHierarchicalTaxonomy && showHierarchy && !!childCategories.length && childCategories.map(childCategory => renderCategoryDropdownItem(childCategory, level + 1))];
6561    };
6562    const TagName = !!categories?.length && !displayAsDropdown && !isResolving ? 'ul' : 'div';
6563    const classes = dist_clsx(className, {
6564      'wp-block-categories-list': !!categories?.length && !displayAsDropdown && !isResolving,
6565      'wp-block-categories-dropdown': !!categories?.length && displayAsDropdown && !isResolving
6566    });
6567    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
6568      className: classes
6569    });
6570    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
6571    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
6572      ...blockProps,
6573      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
6574        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
6575          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
6576          resetAll: () => {
6577            setAttributes({
6578              taxonomy: 'category',
6579              displayAsDropdown: false,
6580              showHierarchy: false,
6581              showPostCounts: false,
6582              showOnlyTopLevel: false,
6583              showEmpty: false,
6584              showLabel: true
6585            });
6586          },
6587          dropdownMenuProps: dropdownMenuProps,
6588          children: [Array.isArray(taxonomies) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6589            hasValue: () => {
6590              return taxonomySlug !== 'category';
6591            },
6592            label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
6593            onDeselect: () => {
6594              setAttributes({
6595                taxonomy: 'category'
6596              });
6597            },
6598            isShownByDefault: true,
6599            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
6600              __nextHasNoMarginBottom: true,
6601              __next40pxDefaultSize: true,
6602              label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
6603              options: taxonomies.map(t => ({
6604                label: t.name,
6605                value: t.slug
6606              })),
6607              value: taxonomySlug,
6608              onChange: selectedTaxonomy => setAttributes({
6609                taxonomy: selectedTaxonomy
6610              })
6611            })
6612          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6613            hasValue: () => !!displayAsDropdown,
6614            label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
6615            onDeselect: () => setAttributes({
6616              displayAsDropdown: false
6617            }),
6618            isShownByDefault: true,
6619            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6620              __nextHasNoMarginBottom: true,
6621              label: (0,external_wp_i18n_namespaceObject.__)('Display as dropdown'),
6622              checked: displayAsDropdown,
6623              onChange: toggleAttribute('displayAsDropdown')
6624            })
6625          }), displayAsDropdown && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6626            hasValue: () => !showLabel,
6627            label: (0,external_wp_i18n_namespaceObject.__)('Show label'),
6628            onDeselect: () => setAttributes({
6629              showLabel: true
6630            }),
6631            isShownByDefault: true,
6632            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6633              __nextHasNoMarginBottom: true,
6634              className: "wp-block-categories__indentation",
6635              label: (0,external_wp_i18n_namespaceObject.__)('Show label'),
6636              checked: showLabel,
6637              onChange: toggleAttribute('showLabel')
6638            })
6639          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6640            hasValue: () => !!showPostCounts,
6641            label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
6642            onDeselect: () => setAttributes({
6643              showPostCounts: false
6644            }),
6645            isShownByDefault: true,
6646            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6647              __nextHasNoMarginBottom: true,
6648              label: (0,external_wp_i18n_namespaceObject.__)('Show post counts'),
6649              checked: showPostCounts,
6650              onChange: toggleAttribute('showPostCounts')
6651            })
6652          }), isHierarchicalTaxonomy && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6653            hasValue: () => !!showOnlyTopLevel,
6654            label: (0,external_wp_i18n_namespaceObject.__)('Show only top level terms'),
6655            onDeselect: () => setAttributes({
6656              showOnlyTopLevel: false
6657            }),
6658            isShownByDefault: true,
6659            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6660              __nextHasNoMarginBottom: true,
6661              label: (0,external_wp_i18n_namespaceObject.__)('Show only top level terms'),
6662              checked: showOnlyTopLevel,
6663              onChange: toggleAttribute('showOnlyTopLevel')
6664            })
6665          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6666            hasValue: () => !!showEmpty,
6667            label: (0,external_wp_i18n_namespaceObject.__)('Show empty terms'),
6668            onDeselect: () => setAttributes({
6669              showEmpty: false
6670            }),
6671            isShownByDefault: true,
6672            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6673              __nextHasNoMarginBottom: true,
6674              label: (0,external_wp_i18n_namespaceObject.__)('Show empty terms'),
6675              checked: showEmpty,
6676              onChange: toggleAttribute('showEmpty')
6677            })
6678          }), isHierarchicalTaxonomy && !showOnlyTopLevel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
6679            hasValue: () => !!showHierarchy,
6680            label: (0,external_wp_i18n_namespaceObject.__)('Show hierarchy'),
6681            onDeselect: () => setAttributes({
6682              showHierarchy: false
6683            }),
6684            isShownByDefault: true,
6685            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
6686              __nextHasNoMarginBottom: true,
6687              label: (0,external_wp_i18n_namespaceObject.__)('Show hierarchy'),
6688              checked: showHierarchy,
6689              onChange: toggleAttribute('showHierarchy')
6690            })
6691          })]
6692        })
6693      }), isResolving && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
6694        icon: library_pin,
6695        label: (0,external_wp_i18n_namespaceObject.__)('Terms'),
6696        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
6697      }), !isResolving && categories?.length === 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
6698        children: taxonomy.labels.no_terms
6699      }), !isResolving && categories?.length > 0 && (displayAsDropdown ? renderCategoryDropdown() : renderCategoryList())]
6700    });
6701  }
6702  
6703  ;// ./node_modules/@wordpress/block-library/build-module/categories/variations.js
6704  /**
6705   * WordPress dependencies
6706   */
6707  
6708  
6709  const variations = [{
6710    name: 'terms',
6711    title: (0,external_wp_i18n_namespaceObject.__)('Terms List'),
6712    icon: library_category,
6713    attributes: {
6714      // We need to set an attribute here that will be set when inserting the block.
6715      // We cannot leave this empty, as that would be interpreted as the default value,
6716      // which is `category` -- for which we're defining a distinct variation below,
6717      // for backwards compatibility reasons.
6718      // The logical fallback is thus the only other built-in and public taxonomy: Tags.
6719      taxonomy: 'post_tag'
6720    },
6721    isActive: blockAttributes =>
6722    // This variation is used for any taxonomy other than `category`.
6723    blockAttributes.taxonomy !== 'category'
6724  }, {
6725    name: 'categories',
6726    title: (0,external_wp_i18n_namespaceObject.__)('Categories List'),
6727    description: (0,external_wp_i18n_namespaceObject.__)('Display a list of all categories.'),
6728    icon: library_category,
6729    attributes: {
6730      taxonomy: 'category'
6731    },
6732    isActive: ['taxonomy'],
6733    // The following is needed to prevent "Terms List" from showing up twice in the inserter
6734    // (once for the block, once for the variation). Fortunately, it does not collide with
6735    // `categories` being the default value of the `taxonomy` attribute.
6736    isDefault: true
6737  }];
6738  /* harmony default export */ const categories_variations = (variations);
6739  
6740  ;// ./node_modules/@wordpress/block-library/build-module/categories/index.js
6741  /**
6742   * WordPress dependencies
6743   */
6744  
6745  
6746  /**
6747   * Internal dependencies
6748   */
6749  
6750  const categories_metadata = {
6751    $schema: "https://schemas.wp.org/trunk/block.json",
6752    apiVersion: 3,
6753    name: "core/categories",
6754    title: "Terms List",
6755    category: "widgets",
6756    description: "Display a list of all terms of a given taxonomy.",
6757    keywords: ["categories"],
6758    textdomain: "default",
6759    attributes: {
6760      taxonomy: {
6761        type: "string",
6762        "default": "category"
6763      },
6764      displayAsDropdown: {
6765        type: "boolean",
6766        "default": false
6767      },
6768      showHierarchy: {
6769        type: "boolean",
6770        "default": false
6771      },
6772      showPostCounts: {
6773        type: "boolean",
6774        "default": false
6775      },
6776      showOnlyTopLevel: {
6777        type: "boolean",
6778        "default": false
6779      },
6780      showEmpty: {
6781        type: "boolean",
6782        "default": false
6783      },
6784      label: {
6785        type: "string",
6786        role: "content"
6787      },
6788      showLabel: {
6789        type: "boolean",
6790        "default": true
6791      }
6792    },
6793    usesContext: ["enhancedPagination"],
6794    supports: {
6795      align: true,
6796      html: false,
6797      spacing: {
6798        margin: true,
6799        padding: true,
6800        __experimentalDefaultControls: {
6801          margin: false,
6802          padding: false
6803        }
6804      },
6805      typography: {
6806        fontSize: true,
6807        lineHeight: true,
6808        __experimentalFontFamily: true,
6809        __experimentalFontWeight: true,
6810        __experimentalFontStyle: true,
6811        __experimentalTextTransform: true,
6812        __experimentalTextDecoration: true,
6813        __experimentalLetterSpacing: true,
6814        __experimentalDefaultControls: {
6815          fontSize: true
6816        }
6817      },
6818      color: {
6819        gradients: true,
6820        link: true,
6821        __experimentalDefaultControls: {
6822          background: true,
6823          text: true,
6824          link: true
6825        }
6826      },
6827      interactivity: {
6828        clientNavigation: true
6829      },
6830      __experimentalBorder: {
6831        radius: true,
6832        color: true,
6833        width: true,
6834        style: true,
6835        __experimentalDefaultControls: {
6836          radius: true,
6837          color: true,
6838          width: true,
6839          style: true
6840        }
6841      }
6842    },
6843    editorStyle: "wp-block-categories-editor",
6844    style: "wp-block-categories"
6845  };
6846  
6847  
6848  const {
6849    name: categories_name
6850  } = categories_metadata;
6851  
6852  const categories_settings = {
6853    icon: library_category,
6854    example: {},
6855    edit: CategoriesEdit,
6856    variations: categories_variations
6857  };
6858  const categories_init = () => initBlock({
6859    name: categories_name,
6860    metadata: categories_metadata,
6861    settings: categories_settings
6862  });
6863  
6864  ;// ./node_modules/@wordpress/icons/build-module/library/classic.js
6865  /**
6866   * WordPress dependencies
6867   */
6868  
6869  
6870  const classic = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6871    viewBox: "0 0 24 24",
6872    xmlns: "http://www.w3.org/2000/svg",
6873    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6874      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"
6875    })
6876  });
6877  /* harmony default export */ const library_classic = (classic);
6878  
6879  ;// ./node_modules/@wordpress/block-library/build-module/freeform/convert-to-blocks-button.js
6880  /**
6881   * WordPress dependencies
6882   */
6883  
6884  
6885  
6886  
6887  
6888  
6889  const ConvertToBlocksButton = ({
6890    clientId
6891  }) => {
6892    const {
6893      replaceBlocks
6894    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
6895    const block = (0,external_wp_data_namespaceObject.useSelect)(select => {
6896      return select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId);
6897    }, [clientId]);
6898    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
6899      onClick: () => replaceBlocks(block.clientId, (0,external_wp_blocks_namespaceObject.rawHandler)({
6900        HTML: (0,external_wp_blocks_namespaceObject.serialize)(block)
6901      })),
6902      children: (0,external_wp_i18n_namespaceObject.__)('Convert to blocks')
6903    });
6904  };
6905  /* harmony default export */ const convert_to_blocks_button = (ConvertToBlocksButton);
6906  
6907  ;// ./node_modules/@wordpress/icons/build-module/library/fullscreen.js
6908  /**
6909   * WordPress dependencies
6910   */
6911  
6912  
6913  const fullscreen = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
6914    xmlns: "http://www.w3.org/2000/svg",
6915    viewBox: "0 0 24 24",
6916    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
6917      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"
6918    })
6919  });
6920  /* harmony default export */ const library_fullscreen = (fullscreen);
6921  
6922  ;// ./node_modules/@wordpress/block-library/build-module/freeform/modal.js
6923  /**
6924   * WordPress dependencies
6925   */
6926  
6927  
6928  
6929  
6930  
6931  
6932  
6933  
6934  function ModalAuxiliaryActions({
6935    onClick,
6936    isModalFullScreen
6937  }) {
6938    // 'small' to match the rules in editor.scss.
6939    const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
6940    if (isMobileViewport) {
6941      return null;
6942    }
6943    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
6944      size: "compact",
6945      onClick: onClick,
6946      icon: library_fullscreen,
6947      isPressed: isModalFullScreen,
6948      label: isModalFullScreen ? (0,external_wp_i18n_namespaceObject.__)('Exit fullscreen') : (0,external_wp_i18n_namespaceObject.__)('Enter fullscreen')
6949    });
6950  }
6951  function ClassicEdit(props) {
6952    const styles = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().styles);
6953    (0,external_wp_element_namespaceObject.useEffect)(() => {
6954      const {
6955        baseURL,
6956        suffix,
6957        settings
6958      } = window.wpEditorL10n.tinymce;
6959      window.tinymce.EditorManager.overrideDefaults({
6960        base_url: baseURL,
6961        suffix
6962      });
6963      window.wp.oldEditor.initialize(props.id, {
6964        tinymce: {
6965          ...settings,
6966          setup(editor) {
6967            editor.on('init', () => {
6968              const doc = editor.getDoc();
6969              styles.forEach(({
6970                css
6971              }) => {
6972                const styleEl = doc.createElement('style');
6973                styleEl.innerHTML = css;
6974                doc.head.appendChild(styleEl);
6975              });
6976            });
6977          }
6978        }
6979      });
6980      return () => {
6981        window.wp.oldEditor.remove(props.id);
6982      };
6983    }, []);
6984    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("textarea", {
6985      ...props
6986    });
6987  }
6988  function ModalEdit(props) {
6989    const {
6990      clientId,
6991      attributes: {
6992        content
6993      },
6994      setAttributes,
6995      onReplace
6996    } = props;
6997    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
6998    const [isModalFullScreen, setIsModalFullScreen] = (0,external_wp_element_namespaceObject.useState)(false);
6999    const id = `editor-$clientId}`;
7000    const onClose = () => content ? setOpen(false) : onReplace([]);
7001    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
7002      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
7003        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
7004          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
7005            onClick: () => setOpen(true),
7006            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
7007          })
7008        })
7009      }), content && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
7010        children: content
7011      }), (isOpen || !content) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
7012        title: (0,external_wp_i18n_namespaceObject.__)('Classic Editor'),
7013        onRequestClose: onClose,
7014        shouldCloseOnClickOutside: false,
7015        overlayClassName: "block-editor-freeform-modal",
7016        isFullScreen: isModalFullScreen,
7017        className: "block-editor-freeform-modal__content",
7018        headerActions: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ModalAuxiliaryActions, {
7019          onClick: () => setIsModalFullScreen(!isModalFullScreen),
7020          isModalFullScreen: isModalFullScreen
7021        }),
7022        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ClassicEdit, {
7023          id: id,
7024          defaultValue: content
7025        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
7026          className: "block-editor-freeform-modal__actions",
7027          justify: "flex-end",
7028          expanded: false,
7029          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
7030            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
7031              __next40pxDefaultSize: true,
7032              variant: "tertiary",
7033              onClick: onClose,
7034              children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
7035            })
7036          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
7037            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
7038              __next40pxDefaultSize: true,
7039              variant: "primary",
7040              onClick: () => {
7041                setAttributes({
7042                  content: window.wp.oldEditor.getContent(id)
7043                });
7044                setOpen(false);
7045              },
7046              children: (0,external_wp_i18n_namespaceObject.__)('Save')
7047            })
7048          })]
7049        })]
7050      })]
7051    });
7052  }
7053  
7054  ;// ./node_modules/@wordpress/block-library/build-module/freeform/edit.js
7055  /**
7056   * WordPress dependencies
7057   */
7058  
7059  
7060  
7061  
7062  
7063  
7064  
7065  
7066  /**
7067   * Internal dependencies
7068   */
7069  
7070  
7071  
7072  const {
7073    wp
7074  } = window;
7075  function isTmceEmpty(editor) {
7076    // When tinyMce is empty the content seems to be:
7077    // <p><br data-mce-bogus="1"></p>
7078    // avoid expensive checks for large documents
7079    const body = editor.getBody();
7080    if (body.childNodes.length > 1) {
7081      return false;
7082    } else if (body.childNodes.length === 0) {
7083      return true;
7084    }
7085    if (body.childNodes[0].childNodes.length > 1) {
7086      return false;
7087    }
7088    return /^\n?$/.test(body.innerText || body.textContent);
7089  }
7090  function FreeformEdit(props) {
7091    const {
7092      clientId
7093    } = props;
7094    const canRemove = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).canRemoveBlock(clientId), [clientId]);
7095    const [isIframed, setIsIframed] = (0,external_wp_element_namespaceObject.useState)(false);
7096    const ref = (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
7097      setIsIframed(element.ownerDocument !== document);
7098    }, []);
7099    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
7100      children: [canRemove && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
7101        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
7102          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(convert_to_blocks_button, {
7103            clientId: clientId
7104          })
7105        })
7106      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7107        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
7108          ref
7109        }),
7110        children: isIframed ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ModalEdit, {
7111          ...props
7112        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ClassicEdit, {
7113          ...props
7114        })
7115      })]
7116    });
7117  }
7118  function edit_ClassicEdit({
7119    clientId,
7120    attributes: {
7121      content
7122    },
7123    setAttributes,
7124    onReplace
7125  }) {
7126    const {
7127      getMultiSelectedBlockClientIds
7128    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
7129    const didMountRef = (0,external_wp_element_namespaceObject.useRef)(false);
7130    (0,external_wp_element_namespaceObject.useEffect)(() => {
7131      if (!didMountRef.current) {
7132        return;
7133      }
7134      const editor = window.tinymce.get(`editor-$clientId}`);
7135      if (!editor) {
7136        return;
7137      }
7138      const currentContent = editor.getContent();
7139      if (currentContent !== content) {
7140        editor.setContent(content || '');
7141      }
7142    }, [clientId, content]);
7143    (0,external_wp_element_namespaceObject.useEffect)(() => {
7144      const {
7145        baseURL,
7146        suffix
7147      } = window.wpEditorL10n.tinymce;
7148      didMountRef.current = true;
7149      window.tinymce.EditorManager.overrideDefaults({
7150        base_url: baseURL,
7151        suffix
7152      });
7153      function onSetup(editor) {
7154        let bookmark;
7155        if (content) {
7156          editor.on('loadContent', () => editor.setContent(content));
7157        }
7158        editor.on('blur', () => {
7159          bookmark = editor.selection.getBookmark(2, true);
7160          // 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.
7161          // This causes a scroll to the top of editor content on return from some content updating dialogs so tracking
7162          // scroll position until this is fixed in core.
7163          const scrollContainer = document.querySelector('.interface-interface-skeleton__content');
7164          const scrollPosition = scrollContainer.scrollTop;
7165  
7166          // Only update attributes if we aren't multi-selecting blocks.
7167          // Updating during multi-selection can overwrite attributes of other blocks.
7168          if (!getMultiSelectedBlockClientIds()?.length) {
7169            setAttributes({
7170              content: editor.getContent()
7171            });
7172          }
7173          editor.once('focus', () => {
7174            if (bookmark) {
7175              editor.selection.moveToBookmark(bookmark);
7176              if (scrollContainer.scrollTop !== scrollPosition) {
7177                scrollContainer.scrollTop = scrollPosition;
7178              }
7179            }
7180          });
7181          return false;
7182        });
7183        editor.on('mousedown touchstart', () => {
7184          bookmark = null;
7185        });
7186        const debouncedOnChange = (0,external_wp_compose_namespaceObject.debounce)(() => {
7187          const value = editor.getContent();
7188          if (value !== editor._lastChange) {
7189            editor._lastChange = value;
7190            setAttributes({
7191              content: value
7192            });
7193          }
7194        }, 250);
7195        editor.on('Paste Change input Undo Redo', debouncedOnChange);
7196  
7197        // We need to cancel the debounce call because when we remove
7198        // the editor (onUnmount) this callback is executed in
7199        // another tick. This results in setting the content to empty.
7200        editor.on('remove', debouncedOnChange.cancel);
7201        editor.on('keydown', event => {
7202          if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'z')) {
7203            // Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.
7204            event.stopPropagation();
7205          }
7206          if ((event.keyCode === external_wp_keycodes_namespaceObject.BACKSPACE || event.keyCode === external_wp_keycodes_namespaceObject.DELETE) && isTmceEmpty(editor)) {
7207            // Delete the block.
7208            onReplace([]);
7209            event.preventDefault();
7210            event.stopImmediatePropagation();
7211          }
7212          const {
7213            altKey
7214          } = event;
7215          /*
7216           * Prevent Mousetrap from kicking in: TinyMCE already uses its own
7217           * `alt+f10` shortcut to focus its toolbar.
7218           */
7219          if (altKey && event.keyCode === external_wp_keycodes_namespaceObject.F10) {
7220            event.stopPropagation();
7221          }
7222        });
7223        editor.on('init', () => {
7224          const rootNode = editor.getBody();
7225  
7226          // Create the toolbar by refocussing the editor.
7227          if (rootNode.ownerDocument.activeElement === rootNode) {
7228            rootNode.blur();
7229            editor.focus();
7230          }
7231        });
7232      }
7233      function initialize() {
7234        const {
7235          settings
7236        } = window.wpEditorL10n.tinymce;
7237        wp.oldEditor.initialize(`editor-$clientId}`, {
7238          tinymce: {
7239            ...settings,
7240            inline: true,
7241            content_css: false,
7242            fixed_toolbar_container: `#toolbar-$clientId}`,
7243            setup: onSetup
7244          }
7245        });
7246      }
7247      function onReadyStateChange() {
7248        if (document.readyState === 'complete') {
7249          initialize();
7250        }
7251      }
7252      if (document.readyState === 'complete') {
7253        initialize();
7254      } else {
7255        document.addEventListener('readystatechange', onReadyStateChange);
7256      }
7257      return () => {
7258        document.removeEventListener('readystatechange', onReadyStateChange);
7259        wp.oldEditor.remove(`editor-$clientId}`);
7260        didMountRef.current = false;
7261      };
7262    }, []);
7263    function focus() {
7264      const editor = window.tinymce.get(`editor-$clientId}`);
7265      if (editor) {
7266        editor.focus();
7267      }
7268    }
7269    function onToolbarKeyDown(event) {
7270      // Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.
7271      event.stopPropagation();
7272      // Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.
7273      event.nativeEvent.stopImmediatePropagation();
7274    }
7275  
7276    // Disable reasons:
7277    //
7278    // jsx-a11y/no-static-element-interactions
7279    //  - the toolbar itself is non-interactive, but must capture events
7280    //    from the KeyboardShortcuts component to stop their propagation.
7281  
7282    /* eslint-disable jsx-a11y/no-static-element-interactions */
7283    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
7284      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7285        id: `toolbar-$clientId}`,
7286        className: "block-library-classic__toolbar",
7287        onClick: focus,
7288        "data-placeholder": (0,external_wp_i18n_namespaceObject.__)('Classic'),
7289        onKeyDown: onToolbarKeyDown
7290      }, "toolbar"), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7291        id: `editor-$clientId}`,
7292        className: "wp-block-freeform block-library-rich-text__tinymce"
7293      }, "editor")]
7294    });
7295    /* eslint-enable jsx-a11y/no-static-element-interactions */
7296  }
7297  
7298  ;// ./node_modules/@wordpress/block-library/build-module/freeform/save.js
7299  /**
7300   * WordPress dependencies
7301   */
7302  
7303  
7304  function freeform_save_save({
7305    attributes
7306  }) {
7307    const {
7308      content
7309    } = attributes;
7310    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
7311      children: content
7312    });
7313  }
7314  
7315  ;// ./node_modules/@wordpress/block-library/build-module/freeform/index.js
7316  /**
7317   * WordPress dependencies
7318   */
7319  
7320  
7321  /**
7322   * Internal dependencies
7323   */
7324  
7325  
7326  const freeform_metadata = {
7327    $schema: "https://schemas.wp.org/trunk/block.json",
7328    apiVersion: 3,
7329    name: "core/freeform",
7330    title: "Classic",
7331    category: "text",
7332    description: "Use the classic WordPress editor.",
7333    textdomain: "default",
7334    attributes: {
7335      content: {
7336        type: "string",
7337        source: "raw"
7338      }
7339    },
7340    supports: {
7341      className: false,
7342      customClassName: false,
7343      reusable: false
7344    },
7345    editorStyle: "wp-block-freeform-editor"
7346  };
7347  
7348  const {
7349    name: freeform_name
7350  } = freeform_metadata;
7351  
7352  const freeform_settings = {
7353    icon: library_classic,
7354    edit: FreeformEdit,
7355    save: freeform_save_save
7356  };
7357  const freeform_init = () => initBlock({
7358    name: freeform_name,
7359    metadata: freeform_metadata,
7360    settings: freeform_settings
7361  });
7362  
7363  ;// ./node_modules/@wordpress/icons/build-module/library/code.js
7364  /**
7365   * WordPress dependencies
7366   */
7367  
7368  
7369  const code = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
7370    viewBox: "0 0 24 24",
7371    xmlns: "http://www.w3.org/2000/svg",
7372    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
7373      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"
7374    })
7375  });
7376  /* harmony default export */ const library_code = (code);
7377  
7378  ;// ./node_modules/@wordpress/block-library/build-module/code/edit.js
7379  /**
7380   * WordPress dependencies
7381   */
7382  
7383  
7384  
7385  
7386  function CodeEdit({
7387    attributes,
7388    setAttributes,
7389    onRemove,
7390    insertBlocksAfter,
7391    mergeBlocks
7392  }) {
7393    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
7394    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
7395      ...blockProps,
7396      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
7397        tagName: "code",
7398        identifier: "content",
7399        value: attributes.content,
7400        onChange: content => setAttributes({
7401          content
7402        }),
7403        onRemove: onRemove,
7404        onMerge: mergeBlocks,
7405        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write code…'),
7406        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Code'),
7407        preserveWhiteSpace: true,
7408        __unstablePastePlainText: true,
7409        __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
7410      })
7411    });
7412  }
7413  
7414  ;// ./node_modules/@wordpress/block-library/build-module/code/utils.js
7415  /**
7416   * WordPress dependencies
7417   */
7418  
7419  
7420  /**
7421   * Escapes ampersands, shortcodes, and links.
7422   *
7423   * @param {string} content The content of a code block.
7424   * @return {string} The given content with some characters escaped.
7425   */
7426  function utils_escape(content) {
7427    return (0,external_wp_compose_namespaceObject.pipe)(escapeOpeningSquareBrackets, escapeProtocolInIsolatedUrls)(content || '');
7428  }
7429  
7430  /**
7431   * Returns the given content with all opening shortcode characters converted
7432   * into their HTML entity counterpart (i.e. [ => &#91;). For instance, a
7433   * shortcode like [embed] becomes &#91;embed]
7434   *
7435   * This function replicates the escaping of HTML tags, where a tag like
7436   * <strong> becomes &lt;strong>.
7437   *
7438   * @param {string} content The content of a code block.
7439   * @return {string} The given content with its opening shortcode characters
7440   *                  converted into their HTML entity counterpart
7441   *                  (i.e. [ => &#91;)
7442   */
7443  function escapeOpeningSquareBrackets(content) {
7444    return content.replace(/\[/g, '&#91;');
7445  }
7446  
7447  /**
7448   * Converts the first two forward slashes of any isolated URL into their HTML
7449   * counterparts (i.e. // => &#47;&#47;). For instance, https://youtube.com/watch?x
7450   * becomes https:&#47;&#47;youtube.com/watch?x.
7451   *
7452   * An isolated URL is a URL that sits in its own line, surrounded only by spacing
7453   * characters.
7454   *
7455   * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403
7456   *
7457   * @param {string} content The content of a code block.
7458   * @return {string} The given content with its ampersands converted into
7459   *                  their HTML entity counterpart (i.e. & => &amp;)
7460   */
7461  function escapeProtocolInIsolatedUrls(content) {
7462    return content.replace(/^(\s*https?:)\/\/([^\s<>"]+\s*)$/m, '$1&#47;&#47;$2');
7463  }
7464  
7465  ;// ./node_modules/@wordpress/block-library/build-module/code/save.js
7466  /**
7467   * WordPress dependencies
7468   */
7469  
7470  
7471  /**
7472   * Internal dependencies
7473   */
7474  
7475  
7476  function code_save_save({
7477    attributes
7478  }) {
7479    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
7480      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
7481      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
7482        tagName: "code"
7483        // To do: `escape` encodes characters in shortcodes and URLs to
7484        // prevent embedding in PHP. Ideally checks for the code block,
7485        // or pre/code tags, should be made on the PHP side?
7486        ,
7487        value: utils_escape(typeof attributes.content === 'string' ? attributes.content : attributes.content.toHTMLString({
7488          preserveWhiteSpace: true
7489        }))
7490      })
7491    });
7492  }
7493  
7494  ;// ./node_modules/@wordpress/block-library/build-module/code/transforms.js
7495  /**
7496   * WordPress dependencies
7497   */
7498  
7499  
7500  
7501  /**
7502   * Internal dependencies
7503   */
7504  
7505  const code_transforms_transforms = {
7506    from: [{
7507      type: 'enter',
7508      regExp: /^```$/,
7509      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/code')
7510    }, {
7511      type: 'block',
7512      blocks: ['core/paragraph'],
7513      transform: ({
7514        content,
7515        metadata
7516      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', {
7517        content,
7518        metadata: getTransformedMetadata(metadata, 'core/code')
7519      })
7520    }, {
7521      type: 'block',
7522      blocks: ['core/html'],
7523      transform: ({
7524        content: text,
7525        metadata
7526      }) => {
7527        return (0,external_wp_blocks_namespaceObject.createBlock)('core/code', {
7528          // The HTML is plain text (with plain line breaks), so
7529          // convert it to rich text.
7530          content: (0,external_wp_richText_namespaceObject.toHTMLString)({
7531            value: (0,external_wp_richText_namespaceObject.create)({
7532              text
7533            })
7534          }),
7535          metadata: getTransformedMetadata(metadata, 'core/code')
7536        });
7537      }
7538    }, {
7539      type: 'raw',
7540      isMatch: node => node.nodeName === 'PRE' && node.children.length === 1 && node.firstChild.nodeName === 'CODE',
7541      schema: {
7542        pre: {
7543          children: {
7544            code: {
7545              children: {
7546                '#text': {}
7547              }
7548            }
7549          }
7550        }
7551      }
7552    }],
7553    to: [{
7554      type: 'block',
7555      blocks: ['core/paragraph'],
7556      transform: ({
7557        content,
7558        metadata
7559      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
7560        content,
7561        metadata: getTransformedMetadata(metadata, 'core/paragraph')
7562      })
7563    }]
7564  };
7565  /* harmony default export */ const code_transforms = (code_transforms_transforms);
7566  
7567  ;// ./node_modules/@wordpress/block-library/build-module/code/index.js
7568  /**
7569   * WordPress dependencies
7570   */
7571  
7572  
7573  
7574  /**
7575   * Internal dependencies
7576   */
7577  
7578  
7579  const code_metadata = {
7580    $schema: "https://schemas.wp.org/trunk/block.json",
7581    apiVersion: 3,
7582    name: "core/code",
7583    title: "Code",
7584    category: "text",
7585    description: "Display code snippets that respect your spacing and tabs.",
7586    textdomain: "default",
7587    attributes: {
7588      content: {
7589        type: "rich-text",
7590        source: "rich-text",
7591        selector: "code",
7592        __unstablePreserveWhiteSpace: true
7593      }
7594    },
7595    supports: {
7596      align: ["wide"],
7597      anchor: true,
7598      typography: {
7599        fontSize: true,
7600        lineHeight: true,
7601        __experimentalFontFamily: true,
7602        __experimentalFontWeight: true,
7603        __experimentalFontStyle: true,
7604        __experimentalTextTransform: true,
7605        __experimentalTextDecoration: true,
7606        __experimentalLetterSpacing: true,
7607        __experimentalDefaultControls: {
7608          fontSize: true
7609        }
7610      },
7611      spacing: {
7612        margin: ["top", "bottom"],
7613        padding: true,
7614        __experimentalDefaultControls: {
7615          margin: false,
7616          padding: false
7617        }
7618      },
7619      __experimentalBorder: {
7620        radius: true,
7621        color: true,
7622        width: true,
7623        style: true,
7624        __experimentalDefaultControls: {
7625          width: true,
7626          color: true
7627        }
7628      },
7629      color: {
7630        text: true,
7631        background: true,
7632        gradients: true,
7633        __experimentalDefaultControls: {
7634          background: true,
7635          text: true
7636        }
7637      },
7638      interactivity: {
7639        clientNavigation: true
7640      }
7641    },
7642    style: "wp-block-code"
7643  };
7644  
7645  
7646  const {
7647    name: code_name
7648  } = code_metadata;
7649  
7650  const code_settings = {
7651    icon: library_code,
7652    example: {
7653      attributes: {
7654        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
7655        // translators: Preserve \n markers for line breaks
7656        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 );')
7657        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
7658      }
7659    },
7660    merge(attributes, attributesToMerge) {
7661      return {
7662        content: attributes.content + '\n\n' + attributesToMerge.content
7663      };
7664    },
7665    transforms: code_transforms,
7666    edit: CodeEdit,
7667    save: code_save_save
7668  };
7669  const code_init = () => initBlock({
7670    name: code_name,
7671    metadata: code_metadata,
7672    settings: code_settings
7673  });
7674  
7675  ;// ./node_modules/@wordpress/icons/build-module/library/column.js
7676  /**
7677   * WordPress dependencies
7678   */
7679  
7680  
7681  const column = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
7682    xmlns: "http://www.w3.org/2000/svg",
7683    viewBox: "0 0 24 24",
7684    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
7685      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"
7686    })
7687  });
7688  /* harmony default export */ const library_column = (column);
7689  
7690  ;// ./node_modules/@wordpress/block-library/build-module/column/deprecated.js
7691  /**
7692   * External dependencies
7693   */
7694  
7695  
7696  /**
7697   * WordPress dependencies
7698   */
7699  
7700  
7701  const column_deprecated_deprecated = [{
7702    attributes: {
7703      verticalAlignment: {
7704        type: 'string'
7705      },
7706      width: {
7707        type: 'number',
7708        min: 0,
7709        max: 100
7710      }
7711    },
7712    isEligible({
7713      width
7714    }) {
7715      return isFinite(width);
7716    },
7717    migrate(attributes) {
7718      return {
7719        ...attributes,
7720        width: `$attributes.width}%`
7721      };
7722    },
7723    save({
7724      attributes
7725    }) {
7726      const {
7727        verticalAlignment,
7728        width
7729      } = attributes;
7730      const wrapperClasses = dist_clsx({
7731        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7732      });
7733      const style = {
7734        flexBasis: width + '%'
7735      };
7736      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7737        className: wrapperClasses,
7738        style: style,
7739        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
7740      });
7741    }
7742  }];
7743  /* harmony default export */ const column_deprecated = (column_deprecated_deprecated);
7744  
7745  ;// ./node_modules/@wordpress/block-library/build-module/column/edit.js
7746  /**
7747   * External dependencies
7748   */
7749  
7750  
7751  /**
7752   * WordPress dependencies
7753   */
7754  
7755  
7756  
7757  
7758  
7759  /**
7760   * Internal dependencies
7761   */
7762  
7763  
7764  function ColumnInspectorControls({
7765    width,
7766    setAttributes
7767  }) {
7768    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
7769    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
7770      availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw']
7771    });
7772    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
7773    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
7774      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
7775      resetAll: () => {
7776        setAttributes({
7777          width: undefined
7778        });
7779      },
7780      dropdownMenuProps: dropdownMenuProps,
7781      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
7782        hasValue: () => width !== undefined,
7783        label: (0,external_wp_i18n_namespaceObject.__)('Width'),
7784        onDeselect: () => setAttributes({
7785          width: undefined
7786        }),
7787        isShownByDefault: true,
7788        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
7789          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
7790          __unstableInputWidth: "calc(50% - 8px)",
7791          __next40pxDefaultSize: true,
7792          value: width || '',
7793          onChange: nextWidth => {
7794            nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
7795            setAttributes({
7796              width: nextWidth
7797            });
7798          },
7799          units: units
7800        })
7801      })
7802    });
7803  }
7804  function ColumnEdit({
7805    attributes: {
7806      verticalAlignment,
7807      width,
7808      templateLock,
7809      allowedBlocks
7810    },
7811    setAttributes,
7812    clientId
7813  }) {
7814    const classes = dist_clsx('block-core-columns', {
7815      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7816    });
7817    const {
7818      columnsIds,
7819      hasChildBlocks,
7820      rootClientId
7821    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
7822      const {
7823        getBlockOrder,
7824        getBlockRootClientId
7825      } = select(external_wp_blockEditor_namespaceObject.store);
7826      const rootId = getBlockRootClientId(clientId);
7827      return {
7828        hasChildBlocks: getBlockOrder(clientId).length > 0,
7829        rootClientId: rootId,
7830        columnsIds: getBlockOrder(rootId)
7831      };
7832    }, [clientId]);
7833    const {
7834      updateBlockAttributes
7835    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
7836    const updateAlignment = value => {
7837      // Update own alignment.
7838      setAttributes({
7839        verticalAlignment: value
7840      });
7841      // Reset parent Columns block.
7842      updateBlockAttributes(rootClientId, {
7843        verticalAlignment: null
7844      });
7845    };
7846    const widthWithUnit = Number.isFinite(width) ? width + '%' : width;
7847    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
7848      className: classes,
7849      style: widthWithUnit ? {
7850        flexBasis: widthWithUnit
7851      } : undefined
7852    });
7853    const columnsCount = columnsIds.length;
7854    const currentColumnPosition = columnsIds.indexOf(clientId) + 1;
7855    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 */
7856    (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$d of %3$d)'), blockProps['aria-label'], currentColumnPosition, columnsCount);
7857    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
7858      ...blockProps,
7859      'aria-label': label
7860    }, {
7861      templateLock,
7862      allowedBlocks,
7863      renderAppender: hasChildBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
7864    });
7865    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
7866      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
7867        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, {
7868          onChange: updateAlignment,
7869          value: verticalAlignment,
7870          controls: ['top', 'center', 'bottom', 'stretch']
7871        })
7872      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
7873        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ColumnInspectorControls, {
7874          width: width,
7875          setAttributes: setAttributes
7876        })
7877      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7878        ...innerBlocksProps
7879      })]
7880    });
7881  }
7882  /* harmony default export */ const column_edit = (ColumnEdit);
7883  
7884  ;// ./node_modules/@wordpress/block-library/build-module/column/save.js
7885  /**
7886   * External dependencies
7887   */
7888  
7889  
7890  /**
7891   * WordPress dependencies
7892   */
7893  
7894  
7895  function column_save_save({
7896    attributes
7897  }) {
7898    const {
7899      verticalAlignment,
7900      width
7901    } = attributes;
7902    const wrapperClasses = dist_clsx({
7903      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment
7904    });
7905    let style;
7906    if (width && /\d/.test(width)) {
7907      // Numbers are handled for backward compatibility as they can be still provided with templates.
7908      let flexBasis = Number.isFinite(width) ? width + '%' : width;
7909      // In some cases we need to round the width to a shorter float.
7910      if (!Number.isFinite(width) && width?.endsWith('%')) {
7911        const multiplier = 1000000000000;
7912        // Shrink the number back to a reasonable float.
7913        flexBasis = Math.round(Number.parseFloat(width) * multiplier) / multiplier + '%';
7914      }
7915      style = {
7916        flexBasis
7917      };
7918    }
7919    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
7920      className: wrapperClasses,
7921      style
7922    });
7923    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
7924    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
7925      ...innerBlocksProps
7926    });
7927  }
7928  
7929  ;// ./node_modules/@wordpress/block-library/build-module/column/index.js
7930  /**
7931   * WordPress dependencies
7932   */
7933  
7934  
7935  /**
7936   * Internal dependencies
7937   */
7938  
7939  
7940  
7941  const column_metadata = {
7942    $schema: "https://schemas.wp.org/trunk/block.json",
7943    apiVersion: 3,
7944    name: "core/column",
7945    title: "Column",
7946    category: "design",
7947    parent: ["core/columns"],
7948    description: "A single column within a columns block.",
7949    textdomain: "default",
7950    attributes: {
7951      verticalAlignment: {
7952        type: "string"
7953      },
7954      width: {
7955        type: "string"
7956      },
7957      allowedBlocks: {
7958        type: "array"
7959      },
7960      templateLock: {
7961        type: ["string", "boolean"],
7962        "enum": ["all", "insert", "contentOnly", false]
7963      }
7964    },
7965    supports: {
7966      __experimentalOnEnter: true,
7967      anchor: true,
7968      reusable: false,
7969      html: false,
7970      color: {
7971        gradients: true,
7972        heading: true,
7973        button: true,
7974        link: true,
7975        __experimentalDefaultControls: {
7976          background: true,
7977          text: true
7978        }
7979      },
7980      shadow: true,
7981      spacing: {
7982        blockGap: true,
7983        padding: true,
7984        __experimentalDefaultControls: {
7985          padding: true,
7986          blockGap: true
7987        }
7988      },
7989      __experimentalBorder: {
7990        color: true,
7991        radius: true,
7992        style: true,
7993        width: true,
7994        __experimentalDefaultControls: {
7995          color: true,
7996          radius: true,
7997          style: true,
7998          width: true
7999        }
8000      },
8001      typography: {
8002        fontSize: true,
8003        lineHeight: true,
8004        __experimentalFontFamily: true,
8005        __experimentalFontWeight: true,
8006        __experimentalFontStyle: true,
8007        __experimentalTextTransform: true,
8008        __experimentalTextDecoration: true,
8009        __experimentalLetterSpacing: true,
8010        __experimentalDefaultControls: {
8011          fontSize: true
8012        }
8013      },
8014      layout: true,
8015      interactivity: {
8016        clientNavigation: true
8017      }
8018    }
8019  };
8020  
8021  const {
8022    name: column_name
8023  } = column_metadata;
8024  
8025  const column_settings = {
8026    icon: library_column,
8027    edit: column_edit,
8028    save: column_save_save,
8029    deprecated: column_deprecated
8030  };
8031  const column_init = () => initBlock({
8032    name: column_name,
8033    metadata: column_metadata,
8034    settings: column_settings
8035  });
8036  
8037  ;// ./node_modules/@wordpress/icons/build-module/library/columns.js
8038  /**
8039   * WordPress dependencies
8040   */
8041  
8042  
8043  const columns = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
8044    viewBox: "0 0 24 24",
8045    xmlns: "http://www.w3.org/2000/svg",
8046    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
8047      fillRule: "evenodd",
8048      clipRule: "evenodd",
8049      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"
8050    })
8051  });
8052  /* harmony default export */ const library_columns = (columns);
8053  
8054  ;// ./node_modules/@wordpress/block-library/build-module/columns/deprecated.js
8055  /**
8056   * External dependencies
8057   */
8058  
8059  
8060  /**
8061   * WordPress dependencies
8062   */
8063  
8064  
8065  
8066  /**
8067   * Given an HTML string for a deprecated columns inner block, returns the
8068   * column index to which the migrated inner block should be assigned. Returns
8069   * undefined if the inner block was not assigned to a column.
8070   *
8071   * @param {string} originalContent Deprecated Columns inner block HTML.
8072   *
8073   * @return {number | undefined} Column to which inner block is to be assigned.
8074   */
8075  
8076  function getDeprecatedLayoutColumn(originalContent) {
8077    let {
8078      doc
8079    } = getDeprecatedLayoutColumn;
8080    if (!doc) {
8081      doc = document.implementation.createHTMLDocument('');
8082      getDeprecatedLayoutColumn.doc = doc;
8083    }
8084    let columnMatch;
8085    doc.body.innerHTML = originalContent;
8086    for (const classListItem of doc.body.firstChild.classList) {
8087      if (columnMatch = classListItem.match(/^layout-column-(\d+)$/)) {
8088        return Number(columnMatch[1]) - 1;
8089      }
8090    }
8091  }
8092  const migrateCustomColors = attributes => {
8093    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
8094      return attributes;
8095    }
8096    const style = {
8097      color: {}
8098    };
8099    if (attributes.customTextColor) {
8100      style.color.text = attributes.customTextColor;
8101    }
8102    if (attributes.customBackgroundColor) {
8103      style.color.background = attributes.customBackgroundColor;
8104    }
8105    const {
8106      customTextColor,
8107      customBackgroundColor,
8108      ...restAttributes
8109    } = attributes;
8110    return {
8111      ...restAttributes,
8112      style,
8113      isStackedOnMobile: true
8114    };
8115  };
8116  /* harmony default export */ const columns_deprecated = ([{
8117    attributes: {
8118      verticalAlignment: {
8119        type: 'string'
8120      },
8121      backgroundColor: {
8122        type: 'string'
8123      },
8124      customBackgroundColor: {
8125        type: 'string'
8126      },
8127      customTextColor: {
8128        type: 'string'
8129      },
8130      textColor: {
8131        type: 'string'
8132      }
8133    },
8134    migrate: migrateCustomColors,
8135    save({
8136      attributes
8137    }) {
8138      const {
8139        verticalAlignment,
8140        backgroundColor,
8141        customBackgroundColor,
8142        textColor,
8143        customTextColor
8144      } = attributes;
8145      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
8146      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
8147      const className = dist_clsx({
8148        'has-background': backgroundColor || customBackgroundColor,
8149        'has-text-color': textColor || customTextColor,
8150        [backgroundClass]: backgroundClass,
8151        [textClass]: textClass,
8152        [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment
8153      });
8154      const style = {
8155        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
8156        color: textClass ? undefined : customTextColor
8157      };
8158      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8159        className: className ? className : undefined,
8160        style: style,
8161        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
8162      });
8163    }
8164  }, {
8165    attributes: {
8166      columns: {
8167        type: 'number',
8168        default: 2
8169      }
8170    },
8171    isEligible(attributes, innerBlocks) {
8172      // Since isEligible is called on every valid instance of the
8173      // Columns block and a deprecation is the unlikely case due to
8174      // its subsequent migration, optimize for the `false` condition
8175      // by performing a naive, inaccurate pass at inner blocks.
8176      const isFastPassEligible = innerBlocks.some(innerBlock => /layout-column-\d+/.test(innerBlock.originalContent));
8177      if (!isFastPassEligible) {
8178        return false;
8179      }
8180  
8181      // Only if the fast pass is considered eligible is the more
8182      // accurate, durable, slower condition performed.
8183      return innerBlocks.some(innerBlock => getDeprecatedLayoutColumn(innerBlock.originalContent) !== undefined);
8184    },
8185    migrate(attributes, innerBlocks) {
8186      const columns = innerBlocks.reduce((accumulator, innerBlock) => {
8187        const {
8188          originalContent
8189        } = innerBlock;
8190        let columnIndex = getDeprecatedLayoutColumn(originalContent);
8191        if (columnIndex === undefined) {
8192          columnIndex = 0;
8193        }
8194        if (!accumulator[columnIndex]) {
8195          accumulator[columnIndex] = [];
8196        }
8197        accumulator[columnIndex].push(innerBlock);
8198        return accumulator;
8199      }, []);
8200      const migratedInnerBlocks = columns.map(columnBlocks => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, columnBlocks));
8201      const {
8202        columns: ignoredColumns,
8203        ...restAttributes
8204      } = attributes;
8205      return [{
8206        ...restAttributes,
8207        isStackedOnMobile: true
8208      }, migratedInnerBlocks];
8209    },
8210    save({
8211      attributes
8212    }) {
8213      const {
8214        columns
8215      } = attributes;
8216      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8217        className: `has-$columns}-columns`,
8218        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
8219      });
8220    }
8221  }, {
8222    attributes: {
8223      columns: {
8224        type: 'number',
8225        default: 2
8226      }
8227    },
8228    migrate(attributes, innerBlocks) {
8229      const {
8230        columns,
8231        ...restAttributes
8232      } = attributes;
8233      attributes = {
8234        ...restAttributes,
8235        isStackedOnMobile: true
8236      };
8237      return [attributes, innerBlocks];
8238    },
8239    save({
8240      attributes
8241    }) {
8242      const {
8243        verticalAlignment,
8244        columns
8245      } = attributes;
8246      const wrapperClasses = dist_clsx(`has-$columns}-columns`, {
8247        [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment
8248      });
8249      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8250        className: wrapperClasses,
8251        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
8252      });
8253    }
8254  }]);
8255  
8256  ;// ./node_modules/@wordpress/block-library/build-module/columns/utils.js
8257  /**
8258   * Returns a column width attribute value rounded to standard precision.
8259   * Returns `undefined` if the value is not a valid finite number.
8260   *
8261   * @param {?number} value Raw value.
8262   *
8263   * @return {number} Value rounded to standard precision.
8264   */
8265  const toWidthPrecision = value => {
8266    const unitlessValue = parseFloat(value);
8267    return Number.isFinite(unitlessValue) ? parseFloat(unitlessValue.toFixed(2)) : undefined;
8268  };
8269  /**
8270   * Returns an effective width for a given block. An effective width is equal to
8271   * its attribute value if set, or a computed value assuming equal distribution.
8272   *
8273   * @param {WPBlock} block           Block object.
8274   * @param {number}  totalBlockCount Total number of blocks in Columns.
8275   *
8276   * @return {number} Effective column width.
8277   */
8278  function getEffectiveColumnWidth(block, totalBlockCount) {
8279    const {
8280      width = 100 / totalBlockCount
8281    } = block.attributes;
8282    return toWidthPrecision(width);
8283  }
8284  
8285  /**
8286   * Returns the total width occupied by the given set of column blocks.
8287   *
8288   * @param {WPBlock[]} blocks          Block objects.
8289   * @param {?number}   totalBlockCount Total number of blocks in Columns.
8290   *                                    Defaults to number of blocks passed.
8291   *
8292   * @return {number} Total width occupied by blocks.
8293   */
8294  function getTotalColumnsWidth(blocks, totalBlockCount = blocks.length) {
8295    return blocks.reduce((sum, block) => sum + getEffectiveColumnWidth(block, totalBlockCount), 0);
8296  }
8297  
8298  /**
8299   * Returns an object of `clientId` → `width` of effective column widths.
8300   *
8301   * @param {WPBlock[]} blocks          Block objects.
8302   * @param {?number}   totalBlockCount Total number of blocks in Columns.
8303   *                                    Defaults to number of blocks passed.
8304   *
8305   * @return {Object<string,number>} Column widths.
8306   */
8307  function getColumnWidths(blocks, totalBlockCount = blocks.length) {
8308    return blocks.reduce((accumulator, block) => {
8309      const width = getEffectiveColumnWidth(block, totalBlockCount);
8310      return Object.assign(accumulator, {
8311        [block.clientId]: width
8312      });
8313    }, {});
8314  }
8315  
8316  /**
8317   * Returns an object of `clientId` → `width` of column widths as redistributed
8318   * proportional to their current widths, constrained or expanded to fit within
8319   * the given available width.
8320   *
8321   * @param {WPBlock[]} blocks          Block objects.
8322   * @param {number}    availableWidth  Maximum width to fit within.
8323   * @param {?number}   totalBlockCount Total number of blocks in Columns.
8324   *                                    Defaults to number of blocks passed.
8325   *
8326   * @return {Object<string,number>} Redistributed column widths.
8327   */
8328  function getRedistributedColumnWidths(blocks, availableWidth, totalBlockCount = blocks.length) {
8329    const totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);
8330    return Object.fromEntries(Object.entries(getColumnWidths(blocks, totalBlockCount)).map(([clientId, width]) => {
8331      const newWidth = availableWidth * width / totalWidth;
8332      return [clientId, toWidthPrecision(newWidth)];
8333    }));
8334  }
8335  
8336  /**
8337   * Returns true if column blocks within the provided set are assigned with
8338   * explicit widths, or false otherwise.
8339   *
8340   * @param {WPBlock[]} blocks Block objects.
8341   *
8342   * @return {boolean} Whether columns have explicit widths.
8343   */
8344  function hasExplicitPercentColumnWidths(blocks) {
8345    return blocks.every(block => {
8346      const blockWidth = block.attributes.width;
8347      return Number.isFinite(blockWidth?.endsWith?.('%') ? parseFloat(blockWidth) : blockWidth);
8348    });
8349  }
8350  
8351  /**
8352   * Returns a copy of the given set of blocks with new widths assigned from the
8353   * provided object of redistributed column widths.
8354   *
8355   * @param {WPBlock[]}             blocks Block objects.
8356   * @param {Object<string,number>} widths Redistributed column widths.
8357   *
8358   * @return {WPBlock[]} blocks Mapped block objects.
8359   */
8360  function getMappedColumnWidths(blocks, widths) {
8361    return blocks.map(block => ({
8362      ...block,
8363      attributes: {
8364        ...block.attributes,
8365        width: `$widths[block.clientId]}%`
8366      }
8367    }));
8368  }
8369  
8370  /**
8371   * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.
8372   *
8373   * @param {WPBlock[]} blocks      Block objects.
8374   * @param {?boolean}  withParsing Whether value has to be parsed.
8375   *
8376   * @return {Array<number,string>} Column widths.
8377   */
8378  function getWidths(blocks, withParsing = true) {
8379    return blocks.map(innerColumn => {
8380      const innerColumnWidth = innerColumn.attributes.width || 100 / blocks.length;
8381      return withParsing ? parseFloat(innerColumnWidth) : innerColumnWidth;
8382    });
8383  }
8384  
8385  /**
8386   * Returns a column width with unit.
8387   *
8388   * @param {string} width Column width.
8389   * @param {string} unit  Column width unit.
8390   *
8391   * @return {string} Column width with unit.
8392   */
8393  function getWidthWithUnit(width, unit) {
8394    width = 0 > parseFloat(width) ? '0' : width;
8395    if (isPercentageUnit(unit)) {
8396      width = Math.min(width, 100);
8397    }
8398    return `$width}$unit}`;
8399  }
8400  
8401  /**
8402   * Returns a boolean whether passed unit is percentage
8403   *
8404   * @param {string} unit Column width unit.
8405   *
8406   * @return {boolean}     Whether unit is '%'.
8407   */
8408  function isPercentageUnit(unit) {
8409    return unit === '%';
8410  }
8411  
8412  ;// ./node_modules/@wordpress/block-library/build-module/columns/edit.js
8413  /**
8414   * External dependencies
8415   */
8416  
8417  
8418  /**
8419   * WordPress dependencies
8420   */
8421  
8422  
8423  
8424  
8425  
8426  
8427  /**
8428   * Internal dependencies
8429   */
8430  
8431  
8432  
8433  const edit_DEFAULT_BLOCK = {
8434    name: 'core/column'
8435  };
8436  function edit_ColumnInspectorControls({
8437    clientId,
8438    setAttributes,
8439    isStackedOnMobile
8440  }) {
8441    const {
8442      count,
8443      canInsertColumnBlock,
8444      minCount
8445    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8446      const {
8447        canInsertBlockType,
8448        canRemoveBlock,
8449        getBlockOrder
8450      } = select(external_wp_blockEditor_namespaceObject.store);
8451      const blockOrder = getBlockOrder(clientId);
8452  
8453      // Get the indexes of columns for which removal is prevented.
8454      // The highest index will be used to determine the minimum column count.
8455      const preventRemovalBlockIndexes = blockOrder.reduce((acc, blockId, index) => {
8456        if (!canRemoveBlock(blockId)) {
8457          acc.push(index);
8458        }
8459        return acc;
8460      }, []);
8461      return {
8462        count: blockOrder.length,
8463        canInsertColumnBlock: canInsertBlockType('core/column', clientId),
8464        minCount: Math.max(...preventRemovalBlockIndexes) + 1
8465      };
8466    }, [clientId]);
8467    const {
8468      getBlocks
8469    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
8470    const {
8471      replaceInnerBlocks
8472    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
8473  
8474    /**
8475     * Updates the column count, including necessary revisions to child Column
8476     * blocks to grant required or redistribute available space.
8477     *
8478     * @param {number} previousColumns Previous column count.
8479     * @param {number} newColumns      New column count.
8480     */
8481    function updateColumns(previousColumns, newColumns) {
8482      let innerBlocks = getBlocks(clientId);
8483      const hasExplicitWidths = hasExplicitPercentColumnWidths(innerBlocks);
8484  
8485      // Redistribute available width for existing inner blocks.
8486      const isAddingColumn = newColumns > previousColumns;
8487      if (isAddingColumn && hasExplicitWidths) {
8488        // If adding a new column, assign width to the new column equal to
8489        // as if it were `1 / columns` of the total available space.
8490        const newColumnWidth = toWidthPrecision(100 / newColumns);
8491        const newlyAddedColumns = newColumns - previousColumns;
8492  
8493        // Redistribute in consideration of pending block insertion as
8494        // constraining the available working width.
8495        const widths = getRedistributedColumnWidths(innerBlocks, 100 - newColumnWidth * newlyAddedColumns);
8496        innerBlocks = [...getMappedColumnWidths(innerBlocks, widths), ...Array.from({
8497          length: newlyAddedColumns
8498        }).map(() => {
8499          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {
8500            width: `$newColumnWidth}%`
8501          });
8502        })];
8503      } else if (isAddingColumn) {
8504        innerBlocks = [...innerBlocks, ...Array.from({
8505          length: newColumns - previousColumns
8506        }).map(() => {
8507          return (0,external_wp_blocks_namespaceObject.createBlock)('core/column');
8508        })];
8509      } else if (newColumns < previousColumns) {
8510        // The removed column will be the last of the inner blocks.
8511        innerBlocks = innerBlocks.slice(0, -(previousColumns - newColumns));
8512        if (hasExplicitWidths) {
8513          // Redistribute as if block is already removed.
8514          const widths = getRedistributedColumnWidths(innerBlocks, 100);
8515          innerBlocks = getMappedColumnWidths(innerBlocks, widths);
8516        }
8517      }
8518      replaceInnerBlocks(clientId, innerBlocks);
8519    }
8520    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
8521    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
8522      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
8523      resetAll: () => {
8524        updateColumns(count, minCount);
8525        setAttributes({
8526          isStackedOnMobile: true
8527        });
8528      },
8529      dropdownMenuProps: dropdownMenuProps,
8530      children: [canInsertColumnBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
8531        label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
8532        isShownByDefault: true,
8533        hasValue: () => count,
8534        onDeselect: () => updateColumns(count, minCount),
8535        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
8536          spacing: 4,
8537          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
8538            __nextHasNoMarginBottom: true,
8539            __next40pxDefaultSize: true,
8540            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
8541            value: count,
8542            onChange: value => updateColumns(count, Math.max(minCount, value)),
8543            min: Math.max(1, minCount),
8544            max: Math.max(6, count)
8545          }), count > 6 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
8546            status: "warning",
8547            isDismissible: false,
8548            children: (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')
8549          })]
8550        })
8551      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
8552        label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
8553        isShownByDefault: true,
8554        hasValue: () => isStackedOnMobile !== true,
8555        onDeselect: () => setAttributes({
8556          isStackedOnMobile: true
8557        }),
8558        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
8559          __nextHasNoMarginBottom: true,
8560          label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
8561          checked: isStackedOnMobile,
8562          onChange: () => setAttributes({
8563            isStackedOnMobile: !isStackedOnMobile
8564          })
8565        })
8566      })]
8567    });
8568  }
8569  function ColumnsEditContainer({
8570    attributes,
8571    setAttributes,
8572    clientId
8573  }) {
8574    const {
8575      isStackedOnMobile,
8576      verticalAlignment,
8577      templateLock
8578    } = attributes;
8579    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
8580    const {
8581      getBlockOrder
8582    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
8583    const {
8584      updateBlockAttributes
8585    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
8586    const classes = dist_clsx({
8587      [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
8588      [`is-not-stacked-on-mobile`]: !isStackedOnMobile
8589    });
8590    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
8591      className: classes
8592    });
8593    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
8594      defaultBlock: edit_DEFAULT_BLOCK,
8595      directInsert: true,
8596      orientation: 'horizontal',
8597      renderAppender: false,
8598      templateLock
8599    });
8600  
8601    /**
8602     * Update all child Column blocks with a new vertical alignment setting
8603     * based on whatever alignment is passed in. This allows change to parent
8604     * to override anything set on a individual column basis.
8605     *
8606     * @param {string} newVerticalAlignment The vertical alignment setting.
8607     */
8608    function updateAlignment(newVerticalAlignment) {
8609      const innerBlockClientIds = getBlockOrder(clientId);
8610  
8611      // Update own and child Column block vertical alignments.
8612      // This is a single action; the batching prevents creating multiple history records.
8613      registry.batch(() => {
8614        setAttributes({
8615          verticalAlignment: newVerticalAlignment
8616        });
8617        updateBlockAttributes(innerBlockClientIds, {
8618          verticalAlignment: newVerticalAlignment
8619        });
8620      });
8621    }
8622    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
8623      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
8624        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentToolbar, {
8625          onChange: updateAlignment,
8626          value: verticalAlignment
8627        })
8628      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
8629        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ColumnInspectorControls, {
8630          clientId: clientId,
8631          setAttributes: setAttributes,
8632          isStackedOnMobile: isStackedOnMobile
8633        })
8634      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8635        ...innerBlocksProps
8636      })]
8637    });
8638  }
8639  function Placeholder({
8640    clientId,
8641    name,
8642    setAttributes
8643  }) {
8644    const {
8645      blockType,
8646      defaultVariation,
8647      variations
8648    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
8649      const {
8650        getBlockVariations,
8651        getBlockType,
8652        getDefaultBlockVariation
8653      } = select(external_wp_blocks_namespaceObject.store);
8654      return {
8655        blockType: getBlockType(name),
8656        defaultVariation: getDefaultBlockVariation(name, 'block'),
8657        variations: getBlockVariations(name, 'block')
8658      };
8659    }, [name]);
8660    const {
8661      replaceInnerBlocks
8662    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
8663    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
8664    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8665      ...blockProps,
8666      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
8667        icon: blockType?.icon?.src,
8668        label: blockType?.title,
8669        variations: variations,
8670        instructions: (0,external_wp_i18n_namespaceObject.__)('Divide into columns. Select a layout:'),
8671        onSelect: (nextVariation = defaultVariation) => {
8672          if (nextVariation.attributes) {
8673            setAttributes(nextVariation.attributes);
8674          }
8675          if (nextVariation.innerBlocks) {
8676            replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(nextVariation.innerBlocks), true);
8677          }
8678        },
8679        allowSkip: true
8680      })
8681    });
8682  }
8683  const ColumnsEdit = props => {
8684    const {
8685      clientId
8686    } = props;
8687    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length > 0, [clientId]);
8688    const Component = hasInnerBlocks ? ColumnsEditContainer : Placeholder;
8689    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
8690      ...props
8691    });
8692  };
8693  /* harmony default export */ const columns_edit = (ColumnsEdit);
8694  
8695  ;// ./node_modules/@wordpress/block-library/build-module/columns/save.js
8696  /**
8697   * External dependencies
8698   */
8699  
8700  
8701  /**
8702   * WordPress dependencies
8703   */
8704  
8705  
8706  function columns_save_save({
8707    attributes
8708  }) {
8709    const {
8710      isStackedOnMobile,
8711      verticalAlignment
8712    } = attributes;
8713    const className = dist_clsx({
8714      [`are-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
8715      [`is-not-stacked-on-mobile`]: !isStackedOnMobile
8716    });
8717    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
8718      className
8719    });
8720    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
8721    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
8722      ...innerBlocksProps
8723    });
8724  }
8725  
8726  ;// ./node_modules/@wordpress/block-library/build-module/columns/variations.js
8727  /**
8728   * WordPress dependencies
8729   */
8730  
8731  
8732  
8733  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
8734  
8735  /**
8736   * Template option choices for predefined columns layouts.
8737   *
8738   * @type {WPBlockVariation[]}
8739   */
8740  
8741  const variations_variations = [{
8742    name: 'one-column-full',
8743    title: (0,external_wp_i18n_namespaceObject.__)('100'),
8744    description: (0,external_wp_i18n_namespaceObject.__)('One column'),
8745    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8746      xmlns: "http://www.w3.org/2000/svg",
8747      width: "48",
8748      height: "48",
8749      viewBox: "0 0 48 48",
8750      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8751        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"
8752      })
8753    }),
8754    innerBlocks: [['core/column']],
8755    scope: ['block']
8756  }, {
8757    name: 'two-columns-equal',
8758    title: (0,external_wp_i18n_namespaceObject.__)('50 / 50'),
8759    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; equal split'),
8760    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8761      xmlns: "http://www.w3.org/2000/svg",
8762      width: "48",
8763      height: "48",
8764      viewBox: "0 0 48 48",
8765      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8766        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"
8767      })
8768    }),
8769    isDefault: true,
8770    innerBlocks: [['core/column'], ['core/column']],
8771    scope: ['block']
8772  }, {
8773    name: 'two-columns-one-third-two-thirds',
8774    title: (0,external_wp_i18n_namespaceObject.__)('33 / 66'),
8775    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; one-third, two-thirds split'),
8776    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8777      xmlns: "http://www.w3.org/2000/svg",
8778      width: "48",
8779      height: "48",
8780      viewBox: "0 0 48 48",
8781      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8782        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"
8783      })
8784    }),
8785    innerBlocks: [['core/column', {
8786      width: '33.33%'
8787    }], ['core/column', {
8788      width: '66.66%'
8789    }]],
8790    scope: ['block']
8791  }, {
8792    name: 'two-columns-two-thirds-one-third',
8793    title: (0,external_wp_i18n_namespaceObject.__)('66 / 33'),
8794    description: (0,external_wp_i18n_namespaceObject.__)('Two columns; two-thirds, one-third split'),
8795    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8796      xmlns: "http://www.w3.org/2000/svg",
8797      width: "48",
8798      height: "48",
8799      viewBox: "0 0 48 48",
8800      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8801        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"
8802      })
8803    }),
8804    innerBlocks: [['core/column', {
8805      width: '66.66%'
8806    }], ['core/column', {
8807      width: '33.33%'
8808    }]],
8809    scope: ['block']
8810  }, {
8811    name: 'three-columns-equal',
8812    title: (0,external_wp_i18n_namespaceObject.__)('33 / 33 / 33'),
8813    description: (0,external_wp_i18n_namespaceObject.__)('Three columns; equal split'),
8814    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8815      xmlns: "http://www.w3.org/2000/svg",
8816      width: "48",
8817      height: "48",
8818      viewBox: "0 0 48 48",
8819      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8820        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"
8821      })
8822    }),
8823    innerBlocks: [['core/column'], ['core/column'], ['core/column']],
8824    scope: ['block']
8825  }, {
8826    name: 'three-columns-wider-center',
8827    title: (0,external_wp_i18n_namespaceObject.__)('25 / 50 / 25'),
8828    description: (0,external_wp_i18n_namespaceObject.__)('Three columns; wide center column'),
8829    icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
8830      xmlns: "http://www.w3.org/2000/svg",
8831      width: "48",
8832      height: "48",
8833      viewBox: "0 0 48 48",
8834      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
8835        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"
8836      })
8837    }),
8838    innerBlocks: [['core/column', {
8839      width: '25%'
8840    }], ['core/column', {
8841      width: '50%'
8842    }], ['core/column', {
8843      width: '25%'
8844    }]],
8845    scope: ['block']
8846  }];
8847  /* harmony default export */ const columns_variations = (variations_variations);
8848  
8849  ;// ./node_modules/@wordpress/block-library/build-module/columns/transforms.js
8850  /**
8851   * WordPress dependencies
8852   */
8853  
8854  const MAXIMUM_SELECTED_BLOCKS = 6;
8855  const columns_transforms_transforms = {
8856    from: [{
8857      type: 'block',
8858      isMultiBlock: true,
8859      blocks: ['*'],
8860      __experimentalConvert: blocks => {
8861        const columnWidth = +(100 / blocks.length).toFixed(2);
8862        const innerBlocksTemplate = blocks.map(({
8863          name,
8864          attributes,
8865          innerBlocks
8866        }) => ['core/column', {
8867          width: `$columnWidth}%`
8868        }, [[name, {
8869          ...attributes
8870        }, innerBlocks]]]);
8871        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {}, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
8872      },
8873      isMatch: ({
8874        length: selectedBlocksLength
8875      }, blocks) => {
8876        // If a user is trying to transform a single Columns block, skip
8877        // the transformation. Enabling this functiontionality creates
8878        // nested Columns blocks resulting in an unintuitive user experience.
8879        // Multiple Columns blocks can still be transformed.
8880        if (blocks.length === 1 && blocks[0].name === 'core/columns') {
8881          return false;
8882        }
8883        return selectedBlocksLength && selectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS;
8884      }
8885    }, {
8886      type: 'block',
8887      blocks: ['core/media-text'],
8888      priority: 1,
8889      transform: (attributes, innerBlocks) => {
8890        const {
8891          align,
8892          backgroundColor,
8893          textColor,
8894          style,
8895          mediaAlt: alt,
8896          mediaId: id,
8897          mediaPosition,
8898          mediaSizeSlug: sizeSlug,
8899          mediaType,
8900          mediaUrl: url,
8901          mediaWidth,
8902          verticalAlignment
8903        } = attributes;
8904        let media;
8905        if (mediaType === 'image' || !mediaType) {
8906          const imageAttrs = {
8907            id,
8908            alt,
8909            url,
8910            sizeSlug
8911          };
8912          const linkAttrs = {
8913            href: attributes.href,
8914            linkClass: attributes.linkClass,
8915            linkDestination: attributes.linkDestination,
8916            linkTarget: attributes.linkTarget,
8917            rel: attributes.rel
8918          };
8919          media = ['core/image', {
8920            ...imageAttrs,
8921            ...linkAttrs
8922          }];
8923        } else {
8924          media = ['core/video', {
8925            id,
8926            src: url
8927          }];
8928        }
8929        const innerBlocksTemplate = [['core/column', {
8930          width: `$mediaWidth}%`
8931        }, [media]], ['core/column', {
8932          width: `$100 - mediaWidth}%`
8933        }, innerBlocks]];
8934        if (mediaPosition === 'right') {
8935          innerBlocksTemplate.reverse();
8936        }
8937        return (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
8938          align,
8939          backgroundColor,
8940          textColor,
8941          style,
8942          verticalAlignment
8943        }, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
8944      }
8945    }],
8946    ungroup: (attributes, innerBlocks) => innerBlocks.flatMap(innerBlock => innerBlock.innerBlocks)
8947  };
8948  /* harmony default export */ const columns_transforms = (columns_transforms_transforms);
8949  
8950  ;// ./node_modules/@wordpress/block-library/build-module/columns/index.js
8951  /**
8952   * WordPress dependencies
8953   */
8954  
8955  
8956  
8957  /**
8958   * Internal dependencies
8959   */
8960  
8961  
8962  
8963  const columns_metadata = {
8964    $schema: "https://schemas.wp.org/trunk/block.json",
8965    apiVersion: 3,
8966    name: "core/columns",
8967    title: "Columns",
8968    category: "design",
8969    allowedBlocks: ["core/column"],
8970    description: "Display content in multiple columns, with blocks added to each column.",
8971    textdomain: "default",
8972    attributes: {
8973      verticalAlignment: {
8974        type: "string"
8975      },
8976      isStackedOnMobile: {
8977        type: "boolean",
8978        "default": true
8979      },
8980      templateLock: {
8981        type: ["string", "boolean"],
8982        "enum": ["all", "insert", "contentOnly", false]
8983      }
8984    },
8985    supports: {
8986      anchor: true,
8987      align: ["wide", "full"],
8988      html: false,
8989      color: {
8990        gradients: true,
8991        link: true,
8992        heading: true,
8993        button: true,
8994        __experimentalDefaultControls: {
8995          background: true,
8996          text: true
8997        }
8998      },
8999      spacing: {
9000        blockGap: {
9001          __experimentalDefault: "2em",
9002          sides: ["horizontal", "vertical"]
9003        },
9004        margin: ["top", "bottom"],
9005        padding: true,
9006        __experimentalDefaultControls: {
9007          padding: true,
9008          blockGap: true
9009        }
9010      },
9011      layout: {
9012        allowSwitching: false,
9013        allowInheriting: false,
9014        allowEditing: false,
9015        "default": {
9016          type: "flex",
9017          flexWrap: "nowrap"
9018        }
9019      },
9020      __experimentalBorder: {
9021        color: true,
9022        radius: true,
9023        style: true,
9024        width: true,
9025        __experimentalDefaultControls: {
9026          color: true,
9027          radius: true,
9028          style: true,
9029          width: true
9030        }
9031      },
9032      typography: {
9033        fontSize: true,
9034        lineHeight: true,
9035        __experimentalFontFamily: true,
9036        __experimentalFontWeight: true,
9037        __experimentalFontStyle: true,
9038        __experimentalTextTransform: true,
9039        __experimentalTextDecoration: true,
9040        __experimentalLetterSpacing: true,
9041        __experimentalDefaultControls: {
9042          fontSize: true
9043        }
9044      },
9045      interactivity: {
9046        clientNavigation: true
9047      },
9048      shadow: true
9049    },
9050    editorStyle: "wp-block-columns-editor",
9051    style: "wp-block-columns"
9052  };
9053  
9054  
9055  
9056  const {
9057    name: columns_name
9058  } = columns_metadata;
9059  
9060  const columns_settings = {
9061    icon: library_columns,
9062    variations: columns_variations,
9063    example: {
9064      viewportWidth: 782,
9065      // Columns collapse "@media (max-width: 781px)".
9066      innerBlocks: [{
9067        name: 'core/column',
9068        innerBlocks: [{
9069          name: 'core/paragraph',
9070          attributes: {
9071            /* translators: example text. */
9072            content: (0,external_wp_i18n_namespaceObject.__)('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.')
9073          }
9074        }, {
9075          name: 'core/image',
9076          attributes: {
9077            url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'
9078          }
9079        }, {
9080          name: 'core/paragraph',
9081          attributes: {
9082            /* translators: example text. */
9083            content: (0,external_wp_i18n_namespaceObject.__)('Suspendisse commodo neque lacus, a dictum orci interdum et.')
9084          }
9085        }]
9086      }, {
9087        name: 'core/column',
9088        innerBlocks: [{
9089          name: 'core/paragraph',
9090          attributes: {
9091            /* translators: example text. */
9092            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.')
9093          }
9094        }, {
9095          name: 'core/paragraph',
9096          attributes: {
9097            /* translators: example text. */
9098            content: (0,external_wp_i18n_namespaceObject.__)('Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.')
9099          }
9100        }]
9101      }]
9102    },
9103    deprecated: columns_deprecated,
9104    edit: columns_edit,
9105    save: columns_save_save,
9106    transforms: columns_transforms
9107  };
9108  const columns_init = () => initBlock({
9109    name: columns_name,
9110    metadata: columns_metadata,
9111    settings: columns_settings
9112  });
9113  
9114  ;// ./node_modules/@wordpress/icons/build-module/library/post-comments.js
9115  /**
9116   * WordPress dependencies
9117   */
9118  
9119  
9120  const postComments = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
9121    xmlns: "http://www.w3.org/2000/svg",
9122    viewBox: "0 0 24 24",
9123    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9124      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"
9125    })
9126  });
9127  /* harmony default export */ const post_comments = (postComments);
9128  
9129  ;// ./node_modules/@wordpress/block-library/build-module/comments/deprecated.js
9130  /**
9131   * WordPress dependencies
9132   */
9133  
9134  
9135  // v1: Deprecate the initial version of the block which was called "Comments
9136  // Query Loop" instead of "Comments".
9137  
9138  const v1 = {
9139    attributes: {
9140      tagName: {
9141        type: 'string',
9142        default: 'div'
9143      }
9144    },
9145    apiVersion: 3,
9146    supports: {
9147      align: ['wide', 'full'],
9148      html: false,
9149      color: {
9150        gradients: true,
9151        link: true,
9152        __experimentalDefaultControls: {
9153          background: true,
9154          text: true,
9155          link: true
9156        }
9157      }
9158    },
9159    save({
9160      attributes: {
9161        tagName: Tag
9162      }
9163    }) {
9164      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
9165      const {
9166        className
9167      } = blockProps;
9168      const classes = className?.split(' ') || [];
9169  
9170      // The ID of the previous version of the block
9171      // didn't have the `wp-block-comments` class,
9172      // so we need to remove it here in order to mimic it.
9173      const newClasses = classes?.filter(cls => cls !== 'wp-block-comments');
9174      const newBlockProps = {
9175        ...blockProps,
9176        className: newClasses.join(' ')
9177      };
9178      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
9179        ...newBlockProps,
9180        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
9181      });
9182    }
9183  };
9184  /* harmony default export */ const comments_deprecated = ([v1]);
9185  
9186  ;// ./node_modules/@wordpress/block-library/build-module/utils/messages.js
9187  /**
9188   * WordPress dependencies
9189   */
9190  
9191  const htmlElementMessages = {
9192    article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self-contained, syndicatable portion of the document.'),
9193    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."),
9194    div: (0,external_wp_i18n_namespaceObject.__)('The <div> element should only be used if the block is a design element with no semantic meaning.'),
9195    footer: (0,external_wp_i18n_namespaceObject.__)('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'),
9196    header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
9197    main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only.'),
9198    nav: (0,external_wp_i18n_namespaceObject.__)('The <nav> element should be used to identify groups of links that are intended to be used for website or page content navigation.'),
9199    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.")
9200  };
9201  
9202  ;// ./node_modules/@wordpress/block-library/build-module/comments/edit/comments-inspector-controls.js
9203  /**
9204   * WordPress dependencies
9205   */
9206  
9207  
9208  
9209  
9210  /**
9211   * Internal dependencies
9212   */
9213  
9214  
9215  function CommentsInspectorControls({
9216    attributes: {
9217      tagName
9218    },
9219    setAttributes
9220  }) {
9221    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
9222      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
9223        group: "advanced",
9224        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
9225          __nextHasNoMarginBottom: true,
9226          __next40pxDefaultSize: true,
9227          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
9228          options: [{
9229            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
9230            value: 'div'
9231          }, {
9232            label: '<section>',
9233            value: 'section'
9234          }, {
9235            label: '<aside>',
9236            value: 'aside'
9237          }],
9238          value: tagName,
9239          onChange: value => setAttributes({
9240            tagName: value
9241          }),
9242          help: htmlElementMessages[tagName]
9243        })
9244      })
9245    });
9246  }
9247  
9248  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-form/form.js
9249  /**
9250   * External dependencies
9251   */
9252  
9253  
9254  /**
9255   * WordPress dependencies
9256   */
9257  
9258  
9259  
9260  
9261  
9262  
9263  
9264  const CommentsFormPlaceholder = () => {
9265    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(CommentsFormPlaceholder);
9266    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9267      className: "comment-respond",
9268      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
9269        className: "comment-reply-title",
9270        children: (0,external_wp_i18n_namespaceObject.__)('Leave a Reply')
9271      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
9272        noValidate: true,
9273        className: "comment-form",
9274        onSubmit: event => event.preventDefault(),
9275        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
9276          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("label", {
9277            htmlFor: `comment-$instanceId}`,
9278            children: (0,external_wp_i18n_namespaceObject.__)('Comment')
9279          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("textarea", {
9280            id: `comment-$instanceId}`,
9281            name: "comment",
9282            cols: "45",
9283            rows: "8",
9284            readOnly: true
9285          })]
9286        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
9287          className: "form-submit wp-block-button",
9288          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
9289            name: "submit",
9290            type: "submit",
9291            className: dist_clsx('wp-block-button__link', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
9292            label: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
9293            value: (0,external_wp_i18n_namespaceObject.__)('Post Comment'),
9294            "aria-disabled": "true"
9295          })
9296        })]
9297      })]
9298    });
9299  };
9300  const CommentsForm = ({
9301    postId,
9302    postType
9303  }) => {
9304    const [commentStatus, setCommentStatus] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'comment_status', postId);
9305    const isSiteEditor = postType === undefined || postId === undefined;
9306    const {
9307      defaultCommentStatus
9308    } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings);
9309    const postTypeSupportsComments = (0,external_wp_data_namespaceObject.useSelect)(select => postType ? !!select(external_wp_coreData_namespaceObject.store).getPostType(postType)?.supports.comments : false);
9310    if (!isSiteEditor && 'open' !== commentStatus) {
9311      if ('closed' === commentStatus) {
9312        const actions = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
9313          __next40pxDefaultSize: true,
9314          onClick: () => setCommentStatus('open'),
9315          variant: "primary",
9316          children: (0,external_wp_i18n_namespaceObject._x)('Enable comments', 'action that affects the current post')
9317        }, "enableComments")];
9318        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
9319          actions: actions,
9320          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: Comments are not enabled for this item.')
9321        });
9322      } else if (!postTypeSupportsComments) {
9323        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
9324          children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: 1: Post type (i.e. "post", "page") */
9325          (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: Comments are not enabled for this post type (%s).'), postType)
9326        });
9327      } else if ('open' !== defaultCommentStatus) {
9328        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
9329          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Form block: Comments are not enabled.')
9330        });
9331      }
9332    }
9333    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsFormPlaceholder, {});
9334  };
9335  /* harmony default export */ const post_comments_form_form = (CommentsForm);
9336  
9337  ;// ./node_modules/@wordpress/block-library/build-module/comments/edit/placeholder.js
9338  /**
9339   * WordPress dependencies
9340   */
9341  
9342  
9343  
9344  
9345  
9346  
9347  /**
9348   * Internal dependencies
9349   */
9350  
9351  
9352  function PostCommentsPlaceholder({
9353    postType,
9354    postId
9355  }) {
9356    let [postTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
9357    postTitle = postTitle || (0,external_wp_i18n_namespaceObject.__)('Post Title');
9358    const {
9359      avatarURL
9360    } = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().__experimentalDiscussionSettings);
9361    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9362      className: "wp-block-comments__legacy-placeholder",
9363      inert: "true",
9364      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
9365        children: /* translators: %s: Post title. */
9366        (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('One response to %s'), postTitle)
9367      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9368        className: "navigation",
9369        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9370          className: "alignleft",
9371          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
9372            href: "#top",
9373            children: ["\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments')]
9374          })
9375        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9376          className: "alignright",
9377          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
9378            href: "#top",
9379            children: [(0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"]
9380          })
9381        })]
9382      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
9383        className: "commentlist",
9384        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
9385          className: "comment even thread-even depth-1",
9386          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("article", {
9387            className: "comment-body",
9388            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("footer", {
9389              className: "comment-meta",
9390              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9391                className: "comment-author vcard",
9392                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
9393                  alt: (0,external_wp_i18n_namespaceObject.__)('Commenter Avatar'),
9394                  src: avatarURL,
9395                  className: "avatar avatar-32 photo",
9396                  height: "32",
9397                  width: "32",
9398                  loading: "lazy"
9399                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("b", {
9400                  className: "fn",
9401                  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9402                    href: "#top",
9403                    className: "url",
9404                    children: (0,external_wp_i18n_namespaceObject.__)('A WordPress Commenter')
9405                  })
9406                }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
9407                  className: "says",
9408                  children: [(0,external_wp_i18n_namespaceObject.__)('says'), ":"]
9409                })]
9410              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9411                className: "comment-metadata",
9412                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9413                  href: "#top",
9414                  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
9415                    dateTime: "2000-01-01T00:00:00+00:00",
9416                    children: (0,external_wp_i18n_namespaceObject.__)('January 1, 2000 at 00:00 am')
9417                  })
9418                }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
9419                  className: "edit-link",
9420                  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9421                    className: "comment-edit-link",
9422                    href: "#top",
9423                    children: (0,external_wp_i18n_namespaceObject.__)('Edit')
9424                  })
9425                })]
9426              })]
9427            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9428              className: "comment-content",
9429              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
9430                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>.'), {
9431                  a:
9432                  /*#__PURE__*/
9433                  // eslint-disable-next-line jsx-a11y/anchor-has-content
9434                  (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9435                    href: "https://gravatar.com/"
9436                  })
9437                })]
9438              })
9439            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9440              className: "reply",
9441              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
9442                className: "comment-reply-link",
9443                href: "#top",
9444                "aria-label": (0,external_wp_i18n_namespaceObject.__)('Reply to A WordPress Commenter'),
9445                children: (0,external_wp_i18n_namespaceObject.__)('Reply')
9446              })
9447            })]
9448          })
9449        })
9450      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9451        className: "navigation",
9452        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9453          className: "alignleft",
9454          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
9455            href: "#top",
9456            children: ["\xAB ", (0,external_wp_i18n_namespaceObject.__)('Older Comments')]
9457          })
9458        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9459          className: "alignright",
9460          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
9461            href: "#top",
9462            children: [(0,external_wp_i18n_namespaceObject.__)('Newer Comments'), " \xBB"]
9463          })
9464        })]
9465      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_comments_form_form, {
9466        postId: postId,
9467        postType: postType
9468      })]
9469    });
9470  }
9471  
9472  ;// ./node_modules/@wordpress/block-library/build-module/comments/edit/comments-legacy.js
9473  /**
9474   * External dependencies
9475   */
9476  
9477  
9478  /**
9479   * WordPress dependencies
9480   */
9481  
9482  
9483  
9484  
9485  /**
9486   * Internal dependencies
9487   */
9488  
9489  
9490  function CommentsLegacy({
9491    attributes,
9492    setAttributes,
9493    context: {
9494      postType,
9495      postId
9496    }
9497  }) {
9498    const {
9499      textAlign
9500    } = attributes;
9501    const actions = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
9502      __next40pxDefaultSize: true,
9503      onClick: () => void setAttributes({
9504        legacy: false
9505      }),
9506      variant: "primary",
9507      children: (0,external_wp_i18n_namespaceObject.__)('Switch to editable mode')
9508    }, "convert")];
9509    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
9510      className: dist_clsx({
9511        [`has-text-align-$textAlign}`]: textAlign
9512      })
9513    });
9514    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9515      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
9516        group: "block",
9517        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
9518          value: textAlign,
9519          onChange: nextAlign => {
9520            setAttributes({
9521              textAlign: nextAlign
9522            });
9523          }
9524        })
9525      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
9526        ...blockProps,
9527        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
9528          actions: actions,
9529          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.')
9530        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostCommentsPlaceholder, {
9531          postId: postId,
9532          postType: postType
9533        })]
9534      })]
9535    });
9536  }
9537  
9538  ;// ./node_modules/@wordpress/block-library/build-module/comments/edit/template.js
9539  const TEMPLATE = [['core/comments-title'], ['core/comment-template', {}, [['core/columns', {}, [['core/column', {
9540    width: '40px'
9541  }, [['core/avatar', {
9542    size: 40,
9543    style: {
9544      border: {
9545        radius: '20px'
9546      }
9547    }
9548  }]]], ['core/column', {}, [['core/comment-author-name', {
9549    fontSize: 'small'
9550  }], ['core/group', {
9551    layout: {
9552      type: 'flex'
9553    },
9554    style: {
9555      spacing: {
9556        margin: {
9557          top: '0px',
9558          bottom: '0px'
9559        }
9560      }
9561    }
9562  }, [['core/comment-date', {
9563    fontSize: 'small'
9564  }], ['core/comment-edit-link', {
9565    fontSize: 'small'
9566  }]]], ['core/comment-content'], ['core/comment-reply-link', {
9567    fontSize: 'small'
9568  }]]]]]]], ['core/comments-pagination'], ['core/post-comments-form']];
9569  /* harmony default export */ const template = (TEMPLATE);
9570  
9571  ;// ./node_modules/@wordpress/block-library/build-module/comments/edit/index.js
9572  /**
9573   * WordPress dependencies
9574   */
9575  
9576  
9577  /**
9578   * Internal dependencies
9579   */
9580  
9581  
9582  
9583  
9584  function CommentsEdit(props) {
9585    const {
9586      attributes,
9587      setAttributes
9588    } = props;
9589    const {
9590      tagName: TagName,
9591      legacy
9592    } = attributes;
9593    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
9594    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
9595      template: template
9596    });
9597    if (legacy) {
9598      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsLegacy, {
9599        ...props
9600      });
9601    }
9602    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9603      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsInspectorControls, {
9604        attributes: attributes,
9605        setAttributes: setAttributes
9606      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
9607        ...innerBlocksProps
9608      })]
9609    });
9610  }
9611  
9612  ;// ./node_modules/@wordpress/block-library/build-module/comments/save.js
9613  /**
9614   * WordPress dependencies
9615   */
9616  
9617  
9618  function comments_save_save({
9619    attributes: {
9620      tagName: Tag,
9621      legacy
9622    }
9623  }) {
9624    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
9625    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
9626  
9627    // The legacy version is dynamic (i.e. PHP rendered) and doesn't allow inner
9628    // blocks, so nothing is saved in that case.
9629    return legacy ? null : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
9630      ...innerBlocksProps
9631    });
9632  }
9633  
9634  ;// ./node_modules/@wordpress/block-library/build-module/comments/index.js
9635  /**
9636   * WordPress dependencies
9637   */
9638  
9639  
9640  /**
9641   * Internal dependencies
9642   */
9643  
9644  const comments_metadata = {
9645    $schema: "https://schemas.wp.org/trunk/block.json",
9646    apiVersion: 3,
9647    name: "core/comments",
9648    title: "Comments",
9649    category: "theme",
9650    description: "An advanced block that allows displaying post comments using different visual configurations.",
9651    textdomain: "default",
9652    attributes: {
9653      tagName: {
9654        type: "string",
9655        "default": "div"
9656      },
9657      legacy: {
9658        type: "boolean",
9659        "default": false
9660      }
9661    },
9662    supports: {
9663      align: ["wide", "full"],
9664      html: false,
9665      color: {
9666        gradients: true,
9667        heading: true,
9668        link: true,
9669        __experimentalDefaultControls: {
9670          background: true,
9671          text: true,
9672          link: true
9673        }
9674      },
9675      spacing: {
9676        margin: true,
9677        padding: true
9678      },
9679      typography: {
9680        fontSize: true,
9681        lineHeight: true,
9682        __experimentalFontFamily: true,
9683        __experimentalFontWeight: true,
9684        __experimentalFontStyle: true,
9685        __experimentalTextTransform: true,
9686        __experimentalTextDecoration: true,
9687        __experimentalLetterSpacing: true,
9688        __experimentalDefaultControls: {
9689          fontSize: true
9690        }
9691      },
9692      __experimentalBorder: {
9693        radius: true,
9694        color: true,
9695        width: true,
9696        style: true,
9697        __experimentalDefaultControls: {
9698          radius: true,
9699          color: true,
9700          width: true,
9701          style: true
9702        }
9703      }
9704    },
9705    editorStyle: "wp-block-comments-editor",
9706    usesContext: ["postId", "postType"]
9707  };
9708  
9709  
9710  
9711  const {
9712    name: comments_name
9713  } = comments_metadata;
9714  
9715  const comments_settings = {
9716    icon: post_comments,
9717    example: {},
9718    edit: CommentsEdit,
9719    save: comments_save_save,
9720    deprecated: comments_deprecated
9721  };
9722  const comments_init = () => initBlock({
9723    name: comments_name,
9724    metadata: comments_metadata,
9725    settings: comments_settings
9726  });
9727  
9728  ;// ./node_modules/@wordpress/block-library/build-module/comment-author-avatar/edit.js
9729  /**
9730   * WordPress dependencies
9731   */
9732  
9733  
9734  
9735  
9736  
9737  
9738  function edit_Edit({
9739    attributes,
9740    context: {
9741      commentId
9742    },
9743    setAttributes,
9744    isSelected
9745  }) {
9746    const {
9747      height,
9748      width
9749    } = attributes;
9750    const [avatars] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_avatar_urls', commentId);
9751    const [authorName] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'author_name', commentId);
9752    const avatarUrls = avatars ? Object.values(avatars) : null;
9753    const sizes = avatars ? Object.keys(avatars) : null;
9754    const minSize = sizes ? sizes[0] : 24;
9755    const maxSize = sizes ? sizes[sizes.length - 1] : 96;
9756    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
9757    const spacingProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetSpacingClassesAndStyles)(attributes);
9758    const maxSizeBuffer = Math.floor(maxSize * 2.5);
9759    const {
9760      avatarURL
9761    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
9762      const {
9763        getSettings
9764      } = select(external_wp_blockEditor_namespaceObject.store);
9765      const {
9766        __experimentalDiscussionSettings
9767      } = getSettings();
9768      return __experimentalDiscussionSettings;
9769    });
9770    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
9771      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
9772        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
9773        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
9774          __nextHasNoMarginBottom: true,
9775          __next40pxDefaultSize: true,
9776          label: (0,external_wp_i18n_namespaceObject.__)('Image size'),
9777          onChange: newWidth => setAttributes({
9778            width: newWidth,
9779            height: newWidth
9780          }),
9781          min: minSize,
9782          max: maxSizeBuffer,
9783          initialPosition: width,
9784          value: width
9785        })
9786      })
9787    });
9788    const resizableAvatar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
9789      size: {
9790        width,
9791        height
9792      },
9793      showHandle: isSelected,
9794      onResizeStop: (event, direction, elt, delta) => {
9795        setAttributes({
9796          height: parseInt(height + delta.height, 10),
9797          width: parseInt(width + delta.width, 10)
9798        });
9799      },
9800      lockAspectRatio: true,
9801      enable: {
9802        top: false,
9803        right: !(0,external_wp_i18n_namespaceObject.isRTL)(),
9804        bottom: true,
9805        left: (0,external_wp_i18n_namespaceObject.isRTL)()
9806      },
9807      minWidth: minSize,
9808      maxWidth: maxSizeBuffer,
9809      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
9810        src: avatarUrls ? avatarUrls[avatarUrls.length - 1] : avatarURL,
9811        alt: `$authorName} ${(0,external_wp_i18n_namespaceObject.__)('Avatar')}`,
9812        ...blockProps
9813      })
9814    });
9815    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
9816      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
9817        ...spacingProps,
9818        children: resizableAvatar
9819      })]
9820    });
9821  }
9822  
9823  ;// ./node_modules/@wordpress/block-library/build-module/comment-author-avatar/index.js
9824  /**
9825   * WordPress dependencies
9826   */
9827  
9828  
9829  /**
9830   * Internal dependencies
9831   */
9832  
9833  const comment_author_avatar_metadata = {
9834    $schema: "https://schemas.wp.org/trunk/block.json",
9835    apiVersion: 3,
9836    __experimental: "fse",
9837    name: "core/comment-author-avatar",
9838    title: "Comment Author Avatar (deprecated)",
9839    category: "theme",
9840    ancestor: ["core/comment-template"],
9841    description: "This block is deprecated. Please use the Avatar block instead.",
9842    textdomain: "default",
9843    attributes: {
9844      width: {
9845        type: "number",
9846        "default": 96
9847      },
9848      height: {
9849        type: "number",
9850        "default": 96
9851      }
9852    },
9853    usesContext: ["commentId"],
9854    supports: {
9855      html: false,
9856      inserter: false,
9857      __experimentalBorder: {
9858        radius: true,
9859        width: true,
9860        color: true,
9861        style: true
9862      },
9863      color: {
9864        background: true,
9865        text: false,
9866        __experimentalDefaultControls: {
9867          background: true
9868        }
9869      },
9870      spacing: {
9871        __experimentalSkipSerialization: true,
9872        margin: true,
9873        padding: true
9874      },
9875      interactivity: {
9876        clientNavigation: true
9877      }
9878    }
9879  };
9880  
9881  const {
9882    name: comment_author_avatar_name
9883  } = comment_author_avatar_metadata;
9884  
9885  const comment_author_avatar_settings = {
9886    icon: comment_author_avatar,
9887    edit: edit_Edit
9888  };
9889  const comment_author_avatar_init = () => initBlock({
9890    name: comment_author_avatar_name,
9891    metadata: comment_author_avatar_metadata,
9892    settings: comment_author_avatar_settings
9893  });
9894  
9895  ;// ./node_modules/@wordpress/icons/build-module/library/comment-author-name.js
9896  /**
9897   * WordPress dependencies
9898   */
9899  
9900  
9901  const commentAuthorName = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
9902    viewBox: "0 0 24 24",
9903    xmlns: "http://www.w3.org/2000/svg",
9904    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9905      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",
9906      fillRule: "evenodd",
9907      clipRule: "evenodd"
9908    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
9909      d: "M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15",
9910      fillRule: "evenodd",
9911      clipRule: "evenodd"
9912    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Circle, {
9913      cx: "12",
9914      cy: "9",
9915      r: "2",
9916      fillRule: "evenodd",
9917      clipRule: "evenodd"
9918    })]
9919  });
9920  /* harmony default export */ const comment_author_name = (commentAuthorName);
9921  
9922  ;// ./node_modules/@wordpress/block-library/build-module/comment-author-name/edit.js
9923  /**
9924   * External dependencies
9925   */
9926  
9927  
9928  /**
9929   * WordPress dependencies
9930   */
9931  
9932  
9933  
9934  
9935  
9936  
9937  /**
9938   * Renders the `core/comment-author-name` block on the editor.
9939   *
9940   * @param {Object} props                       React props.
9941   * @param {Object} props.setAttributes         Callback for updating block attributes.
9942   * @param {Object} props.attributes            Block attributes.
9943   * @param {string} props.attributes.isLink     Whether the author name should be linked.
9944   * @param {string} props.attributes.linkTarget Target of the link.
9945   * @param {string} props.attributes.textAlign  Text alignment.
9946   * @param {Object} props.context               Inherited context.
9947   * @param {string} props.context.commentId     The comment ID.
9948   *
9949   * @return {JSX.Element} React element.
9950   */
9951  
9952  function comment_author_name_edit_Edit({
9953    attributes: {
9954      isLink,
9955      linkTarget,
9956      textAlign
9957    },
9958    context: {
9959      commentId
9960    },
9961    setAttributes
9962  }) {
9963    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
9964      className: dist_clsx({
9965        [`has-text-align-$textAlign}`]: textAlign
9966      })
9967    });
9968    let displayName = (0,external_wp_data_namespaceObject.useSelect)(select => {
9969      const {
9970        getEntityRecord
9971      } = select(external_wp_coreData_namespaceObject.store);
9972      const comment = getEntityRecord('root', 'comment', commentId);
9973      const authorName = comment?.author_name; // eslint-disable-line camelcase
9974  
9975      if (comment && !authorName) {
9976        var _user$name;
9977        const user = getEntityRecord('root', 'user', comment.author);
9978        return (_user$name = user?.name) !== null && _user$name !== void 0 ? _user$name : (0,external_wp_i18n_namespaceObject.__)('Anonymous');
9979      }
9980      return authorName !== null && authorName !== void 0 ? authorName : '';
9981    }, [commentId]);
9982    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
9983      group: "block",
9984      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
9985        value: textAlign,
9986        onChange: newAlign => setAttributes({
9987          textAlign: newAlign
9988        })
9989      })
9990    });
9991    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
9992      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
9993        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
9994        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
9995          __nextHasNoMarginBottom: true,
9996          label: (0,external_wp_i18n_namespaceObject.__)('Link to authors URL'),
9997          onChange: () => setAttributes({
9998            isLink: !isLink
9999          }),
10000          checked: isLink
10001        }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
10002          __nextHasNoMarginBottom: true,
10003          label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
10004          onChange: value => setAttributes({
10005            linkTarget: value ? '_blank' : '_self'
10006          }),
10007          checked: linkTarget === '_blank'
10008        })]
10009      })
10010    });
10011    if (!commentId || !displayName) {
10012      displayName = (0,external_wp_i18n_namespaceObject._x)('Comment Author', 'block title');
10013    }
10014    const displayAuthor = isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10015      href: "#comment-author-pseudo-link",
10016      onClick: event => event.preventDefault(),
10017      children: displayName
10018    }) : displayName;
10019    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10020      children: [inspectorControls, blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10021        ...blockProps,
10022        children: displayAuthor
10023      })]
10024    });
10025  }
10026  
10027  ;// ./node_modules/@wordpress/block-library/build-module/comment-author-name/deprecated.js
10028  /**
10029   * Internal dependencies
10030   */
10031  
10032  const deprecated_v1 = {
10033    attributes: {
10034      isLink: {
10035        type: 'boolean',
10036        default: false
10037      },
10038      linkTarget: {
10039        type: 'string',
10040        default: '_self'
10041      }
10042    },
10043    supports: {
10044      html: false,
10045      color: {
10046        gradients: true,
10047        link: true
10048      },
10049      typography: {
10050        fontSize: true,
10051        lineHeight: true,
10052        __experimentalFontFamily: true,
10053        __experimentalFontWeight: true,
10054        __experimentalFontStyle: true,
10055        __experimentalTextTransform: true,
10056        __experimentalLetterSpacing: true
10057      }
10058    },
10059    save() {
10060      return null;
10061    },
10062    migrate: migrate_font_family,
10063    isEligible({
10064      style
10065    }) {
10066      return style?.typography?.fontFamily;
10067    }
10068  };
10069  
10070  /**
10071   * New deprecations need to be placed first
10072   * for them to have higher priority.
10073   *
10074   * Old deprecations may need to be updated as well.
10075   *
10076   * See block-deprecation.md
10077   */
10078  /* harmony default export */ const comment_author_name_deprecated = ([deprecated_v1]);
10079  
10080  ;// ./node_modules/@wordpress/block-library/build-module/comment-author-name/index.js
10081  /**
10082   * WordPress dependencies
10083   */
10084  
10085  
10086  /**
10087   * Internal dependencies
10088   */
10089  
10090  const comment_author_name_metadata = {
10091    $schema: "https://schemas.wp.org/trunk/block.json",
10092    apiVersion: 3,
10093    name: "core/comment-author-name",
10094    title: "Comment Author Name",
10095    category: "theme",
10096    ancestor: ["core/comment-template"],
10097    description: "Displays the name of the author of the comment.",
10098    textdomain: "default",
10099    attributes: {
10100      isLink: {
10101        type: "boolean",
10102        "default": true
10103      },
10104      linkTarget: {
10105        type: "string",
10106        "default": "_self"
10107      },
10108      textAlign: {
10109        type: "string"
10110      }
10111    },
10112    usesContext: ["commentId"],
10113    supports: {
10114      html: false,
10115      spacing: {
10116        margin: true,
10117        padding: true
10118      },
10119      color: {
10120        gradients: true,
10121        link: true,
10122        __experimentalDefaultControls: {
10123          background: true,
10124          text: true,
10125          link: true
10126        }
10127      },
10128      typography: {
10129        fontSize: true,
10130        lineHeight: true,
10131        __experimentalFontFamily: true,
10132        __experimentalFontWeight: true,
10133        __experimentalFontStyle: true,
10134        __experimentalTextTransform: true,
10135        __experimentalTextDecoration: true,
10136        __experimentalLetterSpacing: true,
10137        __experimentalDefaultControls: {
10138          fontSize: true
10139        }
10140      },
10141      interactivity: {
10142        clientNavigation: true
10143      },
10144      __experimentalBorder: {
10145        radius: true,
10146        color: true,
10147        width: true,
10148        style: true,
10149        __experimentalDefaultControls: {
10150          radius: true,
10151          color: true,
10152          width: true,
10153          style: true
10154        }
10155      }
10156    },
10157    style: "wp-block-comment-author-name"
10158  };
10159  
10160  
10161  const {
10162    name: comment_author_name_name
10163  } = comment_author_name_metadata;
10164  
10165  const comment_author_name_settings = {
10166    icon: comment_author_name,
10167    edit: comment_author_name_edit_Edit,
10168    deprecated: comment_author_name_deprecated,
10169    example: {}
10170  };
10171  const comment_author_name_init = () => initBlock({
10172    name: comment_author_name_name,
10173    metadata: comment_author_name_metadata,
10174    settings: comment_author_name_settings
10175  });
10176  
10177  ;// ./node_modules/@wordpress/icons/build-module/library/comment-content.js
10178  /**
10179   * WordPress dependencies
10180   */
10181  
10182  
10183  const commentContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10184    viewBox: "0 0 24 24",
10185    xmlns: "http://www.w3.org/2000/svg",
10186    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10187      fillRule: "evenodd",
10188      clipRule: "evenodd",
10189      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"
10190    })
10191  });
10192  /* harmony default export */ const comment_content = (commentContent);
10193  
10194  ;// ./node_modules/@wordpress/block-library/build-module/comment-content/edit.js
10195  /**
10196   * External dependencies
10197   */
10198  
10199  
10200  /**
10201   * WordPress dependencies
10202   */
10203  
10204  
10205  
10206  
10207  
10208  
10209  /**
10210   * Renders the `core/comment-content` block on the editor.
10211   *
10212   * @param {Object} props                      React props.
10213   * @param {Object} props.setAttributes        Callback for updating block attributes.
10214   * @param {Object} props.attributes           Block attributes.
10215   * @param {string} props.attributes.textAlign The `textAlign` attribute.
10216   * @param {Object} props.context              Inherited context.
10217   * @param {string} props.context.commentId    The comment ID.
10218   *
10219   * @return {JSX.Element} React element.
10220   */
10221  
10222  function comment_content_edit_Edit({
10223    setAttributes,
10224    attributes: {
10225      textAlign
10226    },
10227    context: {
10228      commentId
10229    }
10230  }) {
10231    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
10232      className: dist_clsx({
10233        [`has-text-align-$textAlign}`]: textAlign
10234      })
10235    });
10236    const [content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'content', commentId);
10237    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
10238      group: "block",
10239      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
10240        value: textAlign,
10241        onChange: newAlign => setAttributes({
10242          textAlign: newAlign
10243        })
10244      })
10245    });
10246    if (!commentId || !content) {
10247      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10248        children: [blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10249          ...blockProps,
10250          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
10251            children: (0,external_wp_i18n_namespaceObject._x)('Comment Content', 'block title')
10252          })
10253        })]
10254      });
10255    }
10256    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10257      children: [blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10258        ...blockProps,
10259        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
10260          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
10261            children: content.rendered
10262          }, "html")
10263        })
10264      })]
10265    });
10266  }
10267  
10268  ;// ./node_modules/@wordpress/block-library/build-module/comment-content/index.js
10269  /**
10270   * WordPress dependencies
10271   */
10272  
10273  
10274  /**
10275   * Internal dependencies
10276   */
10277  
10278  const comment_content_metadata = {
10279    $schema: "https://schemas.wp.org/trunk/block.json",
10280    apiVersion: 3,
10281    name: "core/comment-content",
10282    title: "Comment Content",
10283    category: "theme",
10284    ancestor: ["core/comment-template"],
10285    description: "Displays the contents of a comment.",
10286    textdomain: "default",
10287    usesContext: ["commentId"],
10288    attributes: {
10289      textAlign: {
10290        type: "string"
10291      }
10292    },
10293    supports: {
10294      color: {
10295        gradients: true,
10296        link: true,
10297        __experimentalDefaultControls: {
10298          background: true,
10299          text: true
10300        }
10301      },
10302      typography: {
10303        fontSize: true,
10304        lineHeight: true,
10305        __experimentalFontFamily: true,
10306        __experimentalFontWeight: true,
10307        __experimentalFontStyle: true,
10308        __experimentalTextTransform: true,
10309        __experimentalTextDecoration: true,
10310        __experimentalLetterSpacing: true,
10311        __experimentalDefaultControls: {
10312          fontSize: true
10313        }
10314      },
10315      __experimentalBorder: {
10316        radius: true,
10317        color: true,
10318        width: true,
10319        style: true,
10320        __experimentalDefaultControls: {
10321          radius: true,
10322          color: true,
10323          width: true,
10324          style: true
10325        }
10326      },
10327      spacing: {
10328        padding: ["horizontal", "vertical"],
10329        __experimentalDefaultControls: {
10330          padding: true
10331        }
10332      },
10333      html: false
10334    },
10335    style: "wp-block-comment-content"
10336  };
10337  
10338  const {
10339    name: comment_content_name
10340  } = comment_content_metadata;
10341  
10342  const comment_content_settings = {
10343    icon: comment_content,
10344    edit: comment_content_edit_Edit,
10345    example: {}
10346  };
10347  const comment_content_init = () => initBlock({
10348    name: comment_content_name,
10349    metadata: comment_content_metadata,
10350    settings: comment_content_settings
10351  });
10352  
10353  ;// ./node_modules/@wordpress/icons/build-module/library/post-date.js
10354  /**
10355   * WordPress dependencies
10356   */
10357  
10358  
10359  const postDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
10360    xmlns: "http://www.w3.org/2000/svg",
10361    viewBox: "0 0 24 24",
10362    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10363      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"
10364    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10365      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"
10366    })]
10367  });
10368  /* harmony default export */ const post_date = (postDate);
10369  
10370  ;// external ["wp","date"]
10371  const external_wp_date_namespaceObject = window["wp"]["date"];
10372  ;// ./node_modules/@wordpress/block-library/build-module/comment-date/edit.js
10373  /**
10374   * WordPress dependencies
10375   */
10376  
10377  
10378  
10379  
10380  
10381  
10382  /**
10383   * Renders the `core/comment-date` block on the editor.
10384   *
10385   * @param {Object} props                   React props.
10386   * @param {Object} props.setAttributes     Callback for updating block attributes.
10387   * @param {Object} props.attributes        Block attributes.
10388   * @param {string} props.attributes.format Format of the date.
10389   * @param {string} props.attributes.isLink Whether the author name should be linked.
10390   * @param {Object} props.context           Inherited context.
10391   * @param {string} props.context.commentId The comment ID.
10392   *
10393   * @return {JSX.Element} React element.
10394   */
10395  
10396  function comment_date_edit_Edit({
10397    attributes: {
10398      format,
10399      isLink
10400    },
10401    context: {
10402      commentId
10403    },
10404    setAttributes
10405  }) {
10406    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
10407    let [date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'comment', 'date', commentId);
10408    const [siteFormat = (0,external_wp_date_namespaceObject.getSettings)().formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
10409    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
10410      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
10411        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
10412        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
10413          format: format,
10414          defaultFormat: siteFormat,
10415          onChange: nextFormat => setAttributes({
10416            format: nextFormat
10417          })
10418        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
10419          __nextHasNoMarginBottom: true,
10420          label: (0,external_wp_i18n_namespaceObject.__)('Link to comment'),
10421          onChange: () => setAttributes({
10422            isLink: !isLink
10423          }),
10424          checked: isLink
10425        })]
10426      })
10427    });
10428    if (!commentId || !date) {
10429      date = (0,external_wp_i18n_namespaceObject._x)('Comment Date', 'block title');
10430    }
10431    let commentDate = date instanceof Date ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
10432      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
10433      children: format === 'human-diff' ? (0,external_wp_date_namespaceObject.humanTimeDiff)(date) : (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)
10434    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
10435      children: date
10436    });
10437    if (isLink) {
10438      commentDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10439        href: "#comment-date-pseudo-link",
10440        onClick: event => event.preventDefault(),
10441        children: commentDate
10442      });
10443    }
10444    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10445      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10446        ...blockProps,
10447        children: commentDate
10448      })]
10449    });
10450  }
10451  
10452  ;// ./node_modules/@wordpress/block-library/build-module/comment-date/deprecated.js
10453  /**
10454   * Internal dependencies
10455   */
10456  
10457  const comment_date_deprecated_v1 = {
10458    attributes: {
10459      format: {
10460        type: 'string'
10461      },
10462      isLink: {
10463        type: 'boolean',
10464        default: false
10465      }
10466    },
10467    supports: {
10468      html: false,
10469      color: {
10470        gradients: true,
10471        link: true
10472      },
10473      typography: {
10474        fontSize: true,
10475        lineHeight: true,
10476        __experimentalFontFamily: true,
10477        __experimentalFontWeight: true,
10478        __experimentalFontStyle: true,
10479        __experimentalTextTransform: true,
10480        __experimentalLetterSpacing: true
10481      }
10482    },
10483    save() {
10484      return null;
10485    },
10486    migrate: migrate_font_family,
10487    isEligible({
10488      style
10489    }) {
10490      return style?.typography?.fontFamily;
10491    }
10492  };
10493  
10494  /**
10495   * New deprecations need to be placed first
10496   * for them to have higher priority.
10497   *
10498   * Old deprecations may need to be updated as well.
10499   *
10500   * See block-deprecation.md
10501   */
10502  /* harmony default export */ const comment_date_deprecated = ([comment_date_deprecated_v1]);
10503  
10504  ;// ./node_modules/@wordpress/block-library/build-module/comment-date/index.js
10505  /**
10506   * WordPress dependencies
10507   */
10508  
10509  
10510  /**
10511   * Internal dependencies
10512   */
10513  
10514  const comment_date_metadata = {
10515    $schema: "https://schemas.wp.org/trunk/block.json",
10516    apiVersion: 3,
10517    name: "core/comment-date",
10518    title: "Comment Date",
10519    category: "theme",
10520    ancestor: ["core/comment-template"],
10521    description: "Displays the date on which the comment was posted.",
10522    textdomain: "default",
10523    attributes: {
10524      format: {
10525        type: "string"
10526      },
10527      isLink: {
10528        type: "boolean",
10529        "default": true
10530      }
10531    },
10532    usesContext: ["commentId"],
10533    supports: {
10534      html: false,
10535      color: {
10536        gradients: true,
10537        link: true,
10538        __experimentalDefaultControls: {
10539          background: true,
10540          text: true,
10541          link: true
10542        }
10543      },
10544      spacing: {
10545        margin: true,
10546        padding: true
10547      },
10548      typography: {
10549        fontSize: true,
10550        lineHeight: true,
10551        __experimentalFontFamily: true,
10552        __experimentalFontWeight: true,
10553        __experimentalFontStyle: true,
10554        __experimentalTextTransform: true,
10555        __experimentalTextDecoration: true,
10556        __experimentalLetterSpacing: true,
10557        __experimentalDefaultControls: {
10558          fontSize: true
10559        }
10560      },
10561      interactivity: {
10562        clientNavigation: true
10563      },
10564      __experimentalBorder: {
10565        radius: true,
10566        color: true,
10567        width: true,
10568        style: true,
10569        __experimentalDefaultControls: {
10570          radius: true,
10571          color: true,
10572          width: true,
10573          style: true
10574        }
10575      }
10576    },
10577    style: "wp-block-comment-date"
10578  };
10579  
10580  
10581  const {
10582    name: comment_date_name
10583  } = comment_date_metadata;
10584  
10585  const comment_date_settings = {
10586    icon: post_date,
10587    edit: comment_date_edit_Edit,
10588    deprecated: comment_date_deprecated,
10589    example: {}
10590  };
10591  const comment_date_init = () => initBlock({
10592    name: comment_date_name,
10593    metadata: comment_date_metadata,
10594    settings: comment_date_settings
10595  });
10596  
10597  ;// ./node_modules/@wordpress/icons/build-module/library/comment-edit-link.js
10598  /**
10599   * WordPress dependencies
10600   */
10601  
10602  
10603  const commentEditLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10604    width: "24",
10605    height: "24",
10606    viewBox: "0 0 24 24",
10607    xmlns: "http://www.w3.org/2000/svg",
10608    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10609      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"
10610    })
10611  });
10612  /* harmony default export */ const comment_edit_link = (commentEditLink);
10613  
10614  ;// ./node_modules/@wordpress/block-library/build-module/comment-edit-link/edit.js
10615  /**
10616   * External dependencies
10617   */
10618  
10619  
10620  /**
10621   * WordPress dependencies
10622   */
10623  
10624  
10625  
10626  
10627  function comment_edit_link_edit_Edit({
10628    attributes: {
10629      linkTarget,
10630      textAlign
10631    },
10632    setAttributes
10633  }) {
10634    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
10635      className: dist_clsx({
10636        [`has-text-align-$textAlign}`]: textAlign
10637      })
10638    });
10639    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
10640      group: "block",
10641      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
10642        value: textAlign,
10643        onChange: newAlign => setAttributes({
10644          textAlign: newAlign
10645        })
10646      })
10647    });
10648    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
10649      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
10650        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
10651        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
10652          __nextHasNoMarginBottom: true,
10653          label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
10654          onChange: value => setAttributes({
10655            linkTarget: value ? '_blank' : '_self'
10656          }),
10657          checked: linkTarget === '_blank'
10658        })
10659      })
10660    });
10661    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10662      children: [blockControls, inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10663        ...blockProps,
10664        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10665          href: "#edit-comment-pseudo-link",
10666          onClick: event => event.preventDefault(),
10667          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
10668        })
10669      })]
10670    });
10671  }
10672  
10673  ;// ./node_modules/@wordpress/block-library/build-module/comment-edit-link/index.js
10674  /**
10675   * WordPress dependencies
10676   */
10677  
10678  
10679  /**
10680   * Internal dependencies
10681   */
10682  
10683  const comment_edit_link_metadata = {
10684    $schema: "https://schemas.wp.org/trunk/block.json",
10685    apiVersion: 3,
10686    name: "core/comment-edit-link",
10687    title: "Comment Edit Link",
10688    category: "theme",
10689    ancestor: ["core/comment-template"],
10690    description: "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.",
10691    textdomain: "default",
10692    usesContext: ["commentId"],
10693    attributes: {
10694      linkTarget: {
10695        type: "string",
10696        "default": "_self"
10697      },
10698      textAlign: {
10699        type: "string"
10700      }
10701    },
10702    supports: {
10703      html: false,
10704      color: {
10705        link: true,
10706        gradients: true,
10707        text: false,
10708        __experimentalDefaultControls: {
10709          background: true,
10710          link: true
10711        }
10712      },
10713      spacing: {
10714        margin: true,
10715        padding: true,
10716        __experimentalDefaultControls: {
10717          margin: false,
10718          padding: false
10719        }
10720      },
10721      typography: {
10722        fontSize: true,
10723        lineHeight: true,
10724        __experimentalFontFamily: true,
10725        __experimentalFontWeight: true,
10726        __experimentalFontStyle: true,
10727        __experimentalTextTransform: true,
10728        __experimentalTextDecoration: true,
10729        __experimentalLetterSpacing: true,
10730        __experimentalDefaultControls: {
10731          fontSize: true
10732        }
10733      },
10734      interactivity: {
10735        clientNavigation: true
10736      },
10737      __experimentalBorder: {
10738        radius: true,
10739        color: true,
10740        width: true,
10741        style: true
10742      }
10743    },
10744    style: "wp-block-comment-edit-link"
10745  };
10746  
10747  const {
10748    name: comment_edit_link_name
10749  } = comment_edit_link_metadata;
10750  
10751  const comment_edit_link_settings = {
10752    icon: comment_edit_link,
10753    edit: comment_edit_link_edit_Edit,
10754    example: {}
10755  };
10756  const comment_edit_link_init = () => initBlock({
10757    name: comment_edit_link_name,
10758    metadata: comment_edit_link_metadata,
10759    settings: comment_edit_link_settings
10760  });
10761  
10762  ;// ./node_modules/@wordpress/icons/build-module/library/comment-reply-link.js
10763  /**
10764   * WordPress dependencies
10765   */
10766  
10767  
10768  const commentReplyLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10769    width: "24",
10770    height: "24",
10771    viewBox: "0 0 24 24",
10772    xmlns: "http://www.w3.org/2000/svg",
10773    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10774      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"
10775    })
10776  });
10777  /* harmony default export */ const comment_reply_link = (commentReplyLink);
10778  
10779  ;// ./node_modules/@wordpress/block-library/build-module/comment-reply-link/edit.js
10780  /**
10781   * External dependencies
10782   */
10783  
10784  
10785  /**
10786   * WordPress dependencies
10787   */
10788  
10789  
10790  
10791  /**
10792   * Renders the `core/comment-reply-link` block on the editor.
10793   *
10794   * @param {Object} props                      React props.
10795   * @param {Object} props.setAttributes        Callback for updating block attributes.
10796   * @param {Object} props.attributes           Block attributes.
10797   * @param {string} props.attributes.textAlign The `textAlign` attribute.
10798   *
10799   * @return {JSX.Element} React element.
10800   */
10801  
10802  function comment_reply_link_edit_Edit({
10803    setAttributes,
10804    attributes: {
10805      textAlign
10806    }
10807  }) {
10808    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
10809      className: dist_clsx({
10810        [`has-text-align-$textAlign}`]: textAlign
10811      })
10812    });
10813    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
10814      group: "block",
10815      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
10816        value: textAlign,
10817        onChange: newAlign => setAttributes({
10818          textAlign: newAlign
10819        })
10820      })
10821    });
10822    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
10823      children: [blockControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
10824        ...blockProps,
10825        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
10826          href: "#comment-reply-pseudo-link",
10827          onClick: event => event.preventDefault(),
10828          children: (0,external_wp_i18n_namespaceObject.__)('Reply')
10829        })
10830      })]
10831    });
10832  }
10833  /* harmony default export */ const comment_reply_link_edit = (comment_reply_link_edit_Edit);
10834  
10835  ;// ./node_modules/@wordpress/block-library/build-module/comment-reply-link/index.js
10836  /**
10837   * WordPress dependencies
10838   */
10839  
10840  
10841  /**
10842   * Internal dependencies
10843   */
10844  
10845  const comment_reply_link_metadata = {
10846    $schema: "https://schemas.wp.org/trunk/block.json",
10847    apiVersion: 3,
10848    name: "core/comment-reply-link",
10849    title: "Comment Reply Link",
10850    category: "theme",
10851    ancestor: ["core/comment-template"],
10852    description: "Displays a link to reply to a comment.",
10853    textdomain: "default",
10854    usesContext: ["commentId"],
10855    attributes: {
10856      textAlign: {
10857        type: "string"
10858      }
10859    },
10860    supports: {
10861      color: {
10862        gradients: true,
10863        link: true,
10864        text: false,
10865        __experimentalDefaultControls: {
10866          background: true,
10867          link: true
10868        }
10869      },
10870      spacing: {
10871        margin: true,
10872        padding: true,
10873        __experimentalDefaultControls: {
10874          margin: false,
10875          padding: false
10876        }
10877      },
10878      typography: {
10879        fontSize: true,
10880        lineHeight: true,
10881        __experimentalFontFamily: true,
10882        __experimentalFontWeight: true,
10883        __experimentalFontStyle: true,
10884        __experimentalTextTransform: true,
10885        __experimentalTextDecoration: true,
10886        __experimentalLetterSpacing: true,
10887        __experimentalDefaultControls: {
10888          fontSize: true
10889        }
10890      },
10891      __experimentalBorder: {
10892        radius: true,
10893        color: true,
10894        width: true,
10895        style: true
10896      },
10897      html: false
10898    },
10899    style: "wp-block-comment-reply-link"
10900  };
10901  
10902  const {
10903    name: comment_reply_link_name
10904  } = comment_reply_link_metadata;
10905  
10906  const comment_reply_link_settings = {
10907    edit: comment_reply_link_edit,
10908    icon: comment_reply_link,
10909    example: {}
10910  };
10911  const comment_reply_link_init = () => initBlock({
10912    name: comment_reply_link_name,
10913    metadata: comment_reply_link_metadata,
10914    settings: comment_reply_link_settings
10915  });
10916  
10917  ;// ./node_modules/@wordpress/icons/build-module/library/layout.js
10918  /**
10919   * WordPress dependencies
10920   */
10921  
10922  
10923  const layout = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
10924    xmlns: "http://www.w3.org/2000/svg",
10925    viewBox: "0 0 24 24",
10926    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
10927      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"
10928    })
10929  });
10930  /* harmony default export */ const library_layout = (layout);
10931  
10932  ;// external ["wp","apiFetch"]
10933  const external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"];
10934  var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject);
10935  ;// ./node_modules/@wordpress/block-library/build-module/comment-template/hooks.js
10936  /**
10937   * WordPress dependencies
10938   */
10939  
10940  
10941  
10942  
10943  
10944  
10945  // This is limited by WP REST API
10946  const MAX_COMMENTS_PER_PAGE = 100;
10947  
10948  /**
10949   * Return an object with the query args needed to fetch the default page of
10950   * comments.
10951   *
10952   * @param {Object} props        Hook props.
10953   * @param {number} props.postId ID of the post that contains the comments.
10954   *                              discussion settings.
10955   *
10956   * @return {Object} Query args to retrieve the comments.
10957   */
10958  const useCommentQueryArgs = ({
10959    postId
10960  }) => {
10961    // Initialize the query args that are not going to change.
10962    const queryArgs = {
10963      status: 'approve',
10964      order: 'asc',
10965      context: 'embed',
10966      parent: 0,
10967      _embed: 'children'
10968    };
10969  
10970    // Get the Discussion settings that may be needed to query the comments.
10971    const {
10972      pageComments,
10973      commentsPerPage,
10974      defaultCommentsPage: defaultPage
10975    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
10976      const {
10977        getSettings
10978      } = select(external_wp_blockEditor_namespaceObject.store);
10979      const {
10980        __experimentalDiscussionSettings
10981      } = getSettings();
10982      return __experimentalDiscussionSettings;
10983    });
10984  
10985    // WP REST API doesn't allow fetching more than max items limit set per single page of data.
10986    // As for the editor performance is more important than completeness of data and fetching only the
10987    // max allowed for single page should be enough for the purpose of design and laying out the page.
10988    // Fetching over the limit would return an error here but would work with backend query.
10989    const perPage = pageComments ? Math.min(commentsPerPage, MAX_COMMENTS_PER_PAGE) : MAX_COMMENTS_PER_PAGE;
10990  
10991    // Get the number of the default page.
10992    const page = useDefaultPageIndex({
10993      defaultPage,
10994      postId,
10995      perPage,
10996      queryArgs
10997    });
10998  
10999    // Merge, memoize and return all query arguments, unless the default page's
11000    // number is not known yet.
11001    return (0,external_wp_element_namespaceObject.useMemo)(() => {
11002      return page ? {
11003        ...queryArgs,
11004        post: postId,
11005        per_page: perPage,
11006        page
11007      } : null;
11008    }, [postId, perPage, page]);
11009  };
11010  
11011  /**
11012   * Return the index of the default page, depending on whether `defaultPage` is
11013   * `newest` or `oldest`. In the first case, the only way to know the page's
11014   * index is by using the `X-WP-TotalPages` header, which forces to make an
11015   * additional request.
11016   *
11017   * @param {Object} props             Hook props.
11018   * @param {string} props.defaultPage Page shown by default (newest/oldest).
11019   * @param {number} props.postId      ID of the post that contains the comments.
11020   * @param {number} props.perPage     The number of comments included per page.
11021   * @param {Object} props.queryArgs   Other query args.
11022   *
11023   * @return {number} Index of the default comments page.
11024   */
11025  const useDefaultPageIndex = ({
11026    defaultPage,
11027    postId,
11028    perPage,
11029    queryArgs
11030  }) => {
11031    // Store the default page indices.
11032    const [defaultPages, setDefaultPages] = (0,external_wp_element_namespaceObject.useState)({});
11033    const key = `$postId}_$perPage}`;
11034    const page = defaultPages[key] || 0;
11035    (0,external_wp_element_namespaceObject.useEffect)(() => {
11036      // Do nothing if the page is already known or not the newest page.
11037      if (page || defaultPage !== 'newest') {
11038        return;
11039      }
11040      // We need to fetch comments to know the index. Use HEAD and limit
11041      // fields just to ID, to make this call as light as possible.
11042      external_wp_apiFetch_default()({
11043        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
11044          ...queryArgs,
11045          post: postId,
11046          per_page: perPage,
11047          _fields: 'id'
11048        }),
11049        method: 'HEAD',
11050        parse: false
11051      }).then(res => {
11052        const pages = parseInt(res.headers.get('X-WP-TotalPages'));
11053        setDefaultPages({
11054          ...defaultPages,
11055          [key]: pages <= 1 ? 1 : pages // If there are 0 pages, it means that there are no comments, but there is no 0th page.
11056        });
11057      });
11058    }, [defaultPage, postId, perPage, setDefaultPages]);
11059  
11060    // The oldest one is always the first one.
11061    return defaultPage === 'newest' ? page : 1;
11062  };
11063  
11064  /**
11065   * Generate a tree structure of comment IDs from a list of comment entities. The
11066   * children of each comment are obtained from `_embedded`.
11067   *
11068   * @typedef {{ commentId: number, children: CommentNode }} CommentNode
11069   *
11070   * @param {Object[]} topLevelComments List of comment entities.
11071   * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.
11072   */
11073  const useCommentTree = topLevelComments => {
11074    const commentTree = (0,external_wp_element_namespaceObject.useMemo)(() => topLevelComments?.map(({
11075      id,
11076      _embedded
11077    }) => {
11078      const [children] = _embedded?.children || [[]];
11079      return {
11080        commentId: id,
11081        children: children.map(child => ({
11082          commentId: child.id
11083        }))
11084      };
11085    }), [topLevelComments]);
11086    return commentTree;
11087  };
11088  
11089  ;// ./node_modules/@wordpress/block-library/build-module/comment-template/edit.js
11090  /**
11091   * WordPress dependencies
11092   */
11093  
11094  
11095  
11096  
11097  
11098  
11099  
11100  /**
11101   * Internal dependencies
11102   */
11103  
11104  
11105  const edit_TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']];
11106  
11107  /**
11108   * Function that returns a comment structure that will be rendered with default placehoders.
11109   *
11110   * Each comment has a `commentId` property that is always a negative number in
11111   * case of the placeholders. This is to ensure that the comment does not
11112   * conflict with the actual (real) comments.
11113   *
11114   * @param {Object}  settings                       Discussion Settings.
11115   * @param {number}  [settings.perPage]             - Comments per page setting or block attribute.
11116   * @param {boolean} [settings.pageComments]        - Enable break comments into pages setting.
11117   * @param {boolean} [settings.threadComments]      - Enable threaded (nested) comments setting.
11118   * @param {number}  [settings.threadCommentsDepth] - Level deep of threaded comments.
11119   *
11120   * @typedef {{id: null, children: EmptyComment[]}} EmptyComment
11121   * @return {EmptyComment[]}                         Inner blocks of the Comment Template
11122   */
11123  const getCommentsPlaceholder = ({
11124    perPage,
11125    pageComments,
11126    threadComments,
11127    threadCommentsDepth
11128  }) => {
11129    // Limit commentsDepth to 3
11130    const commentsDepth = !threadComments ? 1 : Math.min(threadCommentsDepth, 3);
11131    const buildChildrenComment = commentsLevel => {
11132      // Render children comments until commentsDepth is reached
11133      if (commentsLevel < commentsDepth) {
11134        const nextLevel = commentsLevel + 1;
11135        return [{
11136          commentId: -(commentsLevel + 3),
11137          children: buildChildrenComment(nextLevel)
11138        }];
11139      }
11140      return [];
11141    };
11142  
11143    // Add the first comment and its children
11144    const placeholderComments = [{
11145      commentId: -1,
11146      children: buildChildrenComment(1)
11147    }];
11148  
11149    // Add a second comment unless the break comments setting is active and set to less than 2, and there is one nested comment max
11150    if ((!pageComments || perPage >= 2) && commentsDepth < 3) {
11151      placeholderComments.push({
11152        commentId: -2,
11153        children: []
11154      });
11155    }
11156  
11157    // Add a third comment unless the break comments setting is active and set to less than 3, and there aren't nested comments
11158    if ((!pageComments || perPage >= 3) && commentsDepth < 2) {
11159      placeholderComments.push({
11160        commentId: -3,
11161        children: []
11162      });
11163    }
11164  
11165    // In case that the value is set but larger than 3 we truncate it to 3.
11166    return placeholderComments;
11167  };
11168  
11169  /**
11170   * Component which renders the inner blocks of the Comment Template.
11171   *
11172   * @param {Object} props                      Component props.
11173   * @param {Array}  [props.comment]            - A comment object.
11174   * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
11175   * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
11176   * @param {Array}  [props.firstCommentId]     - ID of the first comment in the array.
11177   * @param {Array}  [props.blocks]             - Array of blocks returned from
11178   *                                            getBlocks() in parent .
11179   * @return {Element}                         Inner blocks of the Comment Template
11180   */
11181  function CommentTemplateInnerBlocks({
11182    comment,
11183    activeCommentId,
11184    setActiveCommentId,
11185    firstCommentId,
11186    blocks
11187  }) {
11188    const {
11189      children,
11190      ...innerBlocksProps
11191    } = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({}, {
11192      template: edit_TEMPLATE
11193    });
11194    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
11195      ...innerBlocksProps,
11196      children: [comment.commentId === (activeCommentId || firstCommentId) ? children : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MemoizedCommentTemplatePreview, {
11197        blocks: blocks,
11198        commentId: comment.commentId,
11199        setActiveCommentId: setActiveCommentId,
11200        isHidden: comment.commentId === (activeCommentId || firstCommentId)
11201      }), comment?.children?.length > 0 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsList, {
11202        comments: comment.children,
11203        activeCommentId: activeCommentId,
11204        setActiveCommentId: setActiveCommentId,
11205        blocks: blocks,
11206        firstCommentId: firstCommentId
11207      }) : null]
11208    });
11209  }
11210  const CommentTemplatePreview = ({
11211    blocks,
11212    commentId,
11213    setActiveCommentId,
11214    isHidden
11215  }) => {
11216    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
11217      blocks
11218    });
11219    const handleOnClick = () => {
11220      setActiveCommentId(commentId);
11221    };
11222  
11223    // We have to hide the preview block if the `comment` props points to
11224    // the currently active block!
11225  
11226    // Or, to put it differently, every preview block is visible unless it is the
11227    // currently active block - in this case we render its inner blocks.
11228    const style = {
11229      display: isHidden ? 'none' : undefined
11230    };
11231    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
11232      ...blockPreviewProps,
11233      tabIndex: 0,
11234      role: "button",
11235      style: style
11236      // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
11237      ,
11238      onClick: handleOnClick,
11239      onKeyPress: handleOnClick
11240    });
11241  };
11242  const MemoizedCommentTemplatePreview = (0,external_wp_element_namespaceObject.memo)(CommentTemplatePreview);
11243  
11244  /**
11245   * Component that renders a list of (nested) comments. It is called recursively.
11246   *
11247   * @param {Object} props                      Component props.
11248   * @param {Array}  [props.comments]           - Array of comment objects.
11249   * @param {Array}  [props.blockProps]         - Props from parent's `useBlockProps()`.
11250   * @param {Array}  [props.activeCommentId]    - The ID of the comment that is currently active.
11251   * @param {Array}  [props.setActiveCommentId] - The setter for activeCommentId.
11252   * @param {Array}  [props.blocks]             - Array of blocks returned from getBlocks() in parent.
11253   * @param {Object} [props.firstCommentId]     - The ID of the first comment in the array of
11254   *                                            comment objects.
11255   * @return {Element}                         List of comments.
11256   */
11257  const CommentsList = ({
11258    comments,
11259    blockProps,
11260    activeCommentId,
11261    setActiveCommentId,
11262    blocks,
11263    firstCommentId
11264  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
11265    ...blockProps,
11266    children: comments && comments.map(({
11267      commentId,
11268      ...comment
11269    }, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
11270      value: {
11271        // If the commentId is negative it means that this comment is a
11272        // "placeholder" and that the block is most likely being used in the
11273        // site editor. In this case, we have to set the commentId to `null`
11274        // because otherwise the (non-existent) comment with a negative ID
11275        // would be requested from the REST API.
11276        commentId: commentId < 0 ? null : commentId
11277      },
11278      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentTemplateInnerBlocks, {
11279        comment: {
11280          commentId,
11281          ...comment
11282        },
11283        activeCommentId: activeCommentId,
11284        setActiveCommentId: setActiveCommentId,
11285        blocks: blocks,
11286        firstCommentId: firstCommentId
11287      })
11288    }, comment.commentId || index))
11289  });
11290  function CommentTemplateEdit({
11291    clientId,
11292    context: {
11293      postId
11294    }
11295  }) {
11296    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
11297    const [activeCommentId, setActiveCommentId] = (0,external_wp_element_namespaceObject.useState)();
11298    const {
11299      commentOrder,
11300      threadCommentsDepth,
11301      threadComments,
11302      commentsPerPage,
11303      pageComments
11304    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
11305      const {
11306        getSettings
11307      } = select(external_wp_blockEditor_namespaceObject.store);
11308      return getSettings().__experimentalDiscussionSettings;
11309    });
11310    const commentQuery = useCommentQueryArgs({
11311      postId
11312    });
11313    const {
11314      topLevelComments,
11315      blocks
11316    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
11317      const {
11318        getEntityRecords
11319      } = select(external_wp_coreData_namespaceObject.store);
11320      const {
11321        getBlocks
11322      } = select(external_wp_blockEditor_namespaceObject.store);
11323      return {
11324        // Request only top-level comments. Replies are embedded.
11325        topLevelComments: commentQuery ? getEntityRecords('root', 'comment', commentQuery) : null,
11326        blocks: getBlocks(clientId)
11327      };
11328    }, [clientId, commentQuery]);
11329  
11330    // Generate a tree structure of comment IDs.
11331    let commentTree = useCommentTree(
11332    // Reverse the order of top comments if needed.
11333    commentOrder === 'desc' && topLevelComments ? [...topLevelComments].reverse() : topLevelComments);
11334    if (!topLevelComments) {
11335      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
11336        ...blockProps,
11337        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
11338      });
11339    }
11340    if (!postId) {
11341      commentTree = getCommentsPlaceholder({
11342        perPage: commentsPerPage,
11343        pageComments,
11344        threadComments,
11345        threadCommentsDepth
11346      });
11347    }
11348    if (!commentTree.length) {
11349      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
11350        ...blockProps,
11351        children: (0,external_wp_i18n_namespaceObject.__)('No results found.')
11352      });
11353    }
11354    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsList, {
11355      comments: commentTree,
11356      blockProps: blockProps,
11357      blocks: blocks,
11358      activeCommentId: activeCommentId,
11359      setActiveCommentId: setActiveCommentId,
11360      firstCommentId: commentTree[0]?.commentId
11361    });
11362  }
11363  
11364  ;// ./node_modules/@wordpress/block-library/build-module/comment-template/save.js
11365  /**
11366   * WordPress dependencies
11367   */
11368  
11369  
11370  function CommentTemplateSave() {
11371    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
11372  }
11373  
11374  ;// ./node_modules/@wordpress/block-library/build-module/comment-template/index.js
11375  /**
11376   * WordPress dependencies
11377   */
11378  
11379  
11380  /**
11381   * Internal dependencies
11382   */
11383  
11384  const comment_template_metadata = {
11385    $schema: "https://schemas.wp.org/trunk/block.json",
11386    apiVersion: 3,
11387    name: "core/comment-template",
11388    title: "Comment Template",
11389    category: "design",
11390    parent: ["core/comments"],
11391    description: "Contains the block elements used to display a comment, like the title, date, author, avatar and more.",
11392    textdomain: "default",
11393    usesContext: ["postId"],
11394    supports: {
11395      align: true,
11396      html: false,
11397      reusable: false,
11398      spacing: {
11399        margin: true,
11400        padding: true
11401      },
11402      typography: {
11403        fontSize: true,
11404        lineHeight: true,
11405        __experimentalFontFamily: true,
11406        __experimentalFontWeight: true,
11407        __experimentalFontStyle: true,
11408        __experimentalTextTransform: true,
11409        __experimentalTextDecoration: true,
11410        __experimentalLetterSpacing: true,
11411        __experimentalDefaultControls: {
11412          fontSize: true
11413        }
11414      },
11415      interactivity: {
11416        clientNavigation: true
11417      },
11418      __experimentalBorder: {
11419        radius: true,
11420        color: true,
11421        width: true,
11422        style: true,
11423        __experimentalDefaultControls: {
11424          radius: true,
11425          color: true,
11426          width: true,
11427          style: true
11428        }
11429      }
11430    },
11431    style: "wp-block-comment-template"
11432  };
11433  
11434  
11435  const {
11436    name: comment_template_name
11437  } = comment_template_metadata;
11438  
11439  const comment_template_settings = {
11440    icon: library_layout,
11441    edit: CommentTemplateEdit,
11442    save: CommentTemplateSave
11443  };
11444  const comment_template_init = () => initBlock({
11445    name: comment_template_name,
11446    metadata: comment_template_metadata,
11447    settings: comment_template_settings
11448  });
11449  
11450  ;// ./node_modules/@wordpress/icons/build-module/library/query-pagination-previous.js
11451  /**
11452   * WordPress dependencies
11453   */
11454  
11455  
11456  const queryPaginationPrevious = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11457    xmlns: "http://www.w3.org/2000/svg",
11458    viewBox: "0 0 24 24",
11459    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11460      d: "M16 10.5v3h3v-3h-3zm-5 3h3v-3h-3v3zM7 9l-3 3 3 3 1-1-2-2 2-2-1-1z"
11461    })
11462  });
11463  /* harmony default export */ const query_pagination_previous = (queryPaginationPrevious);
11464  
11465  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/edit.js
11466  /**
11467   * WordPress dependencies
11468   */
11469  
11470  
11471  
11472  const arrowMap = {
11473    none: '',
11474    arrow: '←',
11475    chevron: '«'
11476  };
11477  function CommentsPaginationPreviousEdit({
11478    attributes: {
11479      label
11480    },
11481    setAttributes,
11482    context: {
11483      'comments/paginationArrow': paginationArrow
11484    }
11485  }) {
11486    const displayArrow = arrowMap[paginationArrow];
11487    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
11488      href: "#comments-pagination-previous-pseudo-link",
11489      onClick: event => event.preventDefault(),
11490      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
11491      children: [displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
11492        className: `wp-block-comments-pagination-previous-arrow is-arrow-$paginationArrow}`,
11493        children: displayArrow
11494      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
11495        __experimentalVersion: 2,
11496        tagName: "span",
11497        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Older comments page link'),
11498        placeholder: (0,external_wp_i18n_namespaceObject.__)('Older Comments'),
11499        value: label,
11500        onChange: newLabel => setAttributes({
11501          label: newLabel
11502        })
11503      })]
11504    });
11505  }
11506  
11507  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination-previous/index.js
11508  /**
11509   * WordPress dependencies
11510   */
11511  
11512  
11513  
11514  /**
11515   * Internal dependencies
11516   */
11517  
11518  const comments_pagination_previous_metadata = {
11519    $schema: "https://schemas.wp.org/trunk/block.json",
11520    apiVersion: 3,
11521    name: "core/comments-pagination-previous",
11522    title: "Comments Previous Page",
11523    category: "theme",
11524    parent: ["core/comments-pagination"],
11525    description: "Displays the previous comment's page link.",
11526    textdomain: "default",
11527    attributes: {
11528      label: {
11529        type: "string"
11530      }
11531    },
11532    usesContext: ["postId", "comments/paginationArrow"],
11533    supports: {
11534      reusable: false,
11535      html: false,
11536      color: {
11537        gradients: true,
11538        text: false,
11539        __experimentalDefaultControls: {
11540          background: true
11541        }
11542      },
11543      typography: {
11544        fontSize: true,
11545        lineHeight: true,
11546        __experimentalFontFamily: true,
11547        __experimentalFontWeight: true,
11548        __experimentalFontStyle: true,
11549        __experimentalTextTransform: true,
11550        __experimentalTextDecoration: true,
11551        __experimentalLetterSpacing: true,
11552        __experimentalDefaultControls: {
11553          fontSize: true
11554        }
11555      },
11556      interactivity: {
11557        clientNavigation: true
11558      }
11559    }
11560  };
11561  
11562  const {
11563    name: comments_pagination_previous_name
11564  } = comments_pagination_previous_metadata;
11565  
11566  const comments_pagination_previous_settings = {
11567    icon: query_pagination_previous,
11568    edit: CommentsPaginationPreviousEdit,
11569    example: {
11570      attributes: {
11571        label: (0,external_wp_i18n_namespaceObject.__)('Older Comments')
11572      }
11573    }
11574  };
11575  const comments_pagination_previous_init = () => initBlock({
11576    name: comments_pagination_previous_name,
11577    metadata: comments_pagination_previous_metadata,
11578    settings: comments_pagination_previous_settings
11579  });
11580  
11581  ;// ./node_modules/@wordpress/icons/build-module/library/query-pagination.js
11582  /**
11583   * WordPress dependencies
11584   */
11585  
11586  
11587  const queryPagination = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11588    xmlns: "http://www.w3.org/2000/svg",
11589    viewBox: "0 0 24 24",
11590    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11591      d: "M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z"
11592    })
11593  });
11594  /* harmony default export */ const query_pagination = (queryPagination);
11595  
11596  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination/comments-pagination-arrow-controls.js
11597  /**
11598   * WordPress dependencies
11599   */
11600  
11601  
11602  
11603  function CommentsPaginationArrowControls({
11604    value,
11605    onChange
11606  }) {
11607    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
11608      __next40pxDefaultSize: true,
11609      __nextHasNoMarginBottom: true,
11610      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
11611      value: value,
11612      onChange: onChange,
11613      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous comments link.'),
11614      isBlock: true,
11615      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
11616        value: "none",
11617        label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Comments Pagination Next/Previous blocks')
11618      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
11619        value: "arrow",
11620        label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Comments Pagination Next/Previous blocks')
11621      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
11622        value: "chevron",
11623        label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Comments Pagination Next/Previous blocks')
11624      })]
11625    });
11626  }
11627  
11628  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination/edit.js
11629  /**
11630   * WordPress dependencies
11631   */
11632  
11633  
11634  
11635  
11636  
11637  /**
11638   * Internal dependencies
11639   */
11640  
11641  
11642  const comments_pagination_edit_TEMPLATE = [['core/comments-pagination-previous'], ['core/comments-pagination-numbers'], ['core/comments-pagination-next']];
11643  function QueryPaginationEdit({
11644    attributes: {
11645      paginationArrow
11646    },
11647    setAttributes,
11648    clientId
11649  }) {
11650    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
11651      const {
11652        getBlocks
11653      } = select(external_wp_blockEditor_namespaceObject.store);
11654      const innerBlocks = getBlocks(clientId);
11655      /**
11656       * Show the `paginationArrow` control only if a
11657       * Comments Pagination Next or Comments Pagination Previous
11658       * block exists.
11659       */
11660      return innerBlocks?.find(innerBlock => {
11661        return ['core/comments-pagination-previous', 'core/comments-pagination-next'].includes(innerBlock.name);
11662      });
11663    }, []);
11664    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
11665    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
11666      template: comments_pagination_edit_TEMPLATE
11667    });
11668  
11669    // Get the Discussion settings
11670    const pageComments = (0,external_wp_data_namespaceObject.useSelect)(select => {
11671      const {
11672        getSettings
11673      } = select(external_wp_blockEditor_namespaceObject.store);
11674      const {
11675        __experimentalDiscussionSettings
11676      } = getSettings();
11677      return __experimentalDiscussionSettings?.pageComments;
11678    }, []);
11679  
11680    // If paging comments is not enabled in the Discussion Settings then hide the pagination
11681    // controls. We don't want to remove them from the template so that when the user enables
11682    // paging comments, the controls will be visible.
11683    if (!pageComments) {
11684      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
11685        children: (0,external_wp_i18n_namespaceObject.__)('Comments Pagination block: paging comments is disabled in the Discussion Settings')
11686      });
11687    }
11688    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
11689      children: [hasNextPreviousBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
11690        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
11691          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
11692          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentsPaginationArrowControls, {
11693            value: paginationArrow,
11694            onChange: value => {
11695              setAttributes({
11696                paginationArrow: value
11697              });
11698            }
11699          })
11700        })
11701      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
11702        ...innerBlocksProps
11703      })]
11704    });
11705  }
11706  
11707  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination/save.js
11708  /**
11709   * WordPress dependencies
11710   */
11711  
11712  
11713  function comments_pagination_save_save() {
11714    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
11715  }
11716  
11717  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination/index.js
11718  /**
11719   * WordPress dependencies
11720   */
11721  
11722  
11723  /**
11724   * Internal dependencies
11725   */
11726  
11727  const comments_pagination_metadata = {
11728    $schema: "https://schemas.wp.org/trunk/block.json",
11729    apiVersion: 3,
11730    name: "core/comments-pagination",
11731    title: "Comments Pagination",
11732    category: "theme",
11733    parent: ["core/comments"],
11734    allowedBlocks: ["core/comments-pagination-previous", "core/comments-pagination-numbers", "core/comments-pagination-next"],
11735    description: "Displays a paginated navigation to next/previous set of comments, when applicable.",
11736    textdomain: "default",
11737    attributes: {
11738      paginationArrow: {
11739        type: "string",
11740        "default": "none"
11741      }
11742    },
11743    example: {
11744      attributes: {
11745        paginationArrow: "none"
11746      }
11747    },
11748    providesContext: {
11749      "comments/paginationArrow": "paginationArrow"
11750    },
11751    supports: {
11752      align: true,
11753      reusable: false,
11754      html: false,
11755      color: {
11756        gradients: true,
11757        link: true,
11758        __experimentalDefaultControls: {
11759          background: true,
11760          text: true,
11761          link: true
11762        }
11763      },
11764      layout: {
11765        allowSwitching: false,
11766        allowInheriting: false,
11767        "default": {
11768          type: "flex"
11769        }
11770      },
11771      typography: {
11772        fontSize: true,
11773        lineHeight: true,
11774        __experimentalFontFamily: true,
11775        __experimentalFontWeight: true,
11776        __experimentalFontStyle: true,
11777        __experimentalTextTransform: true,
11778        __experimentalTextDecoration: true,
11779        __experimentalLetterSpacing: true,
11780        __experimentalDefaultControls: {
11781          fontSize: true
11782        }
11783      },
11784      interactivity: {
11785        clientNavigation: true
11786      }
11787    },
11788    editorStyle: "wp-block-comments-pagination-editor",
11789    style: "wp-block-comments-pagination"
11790  };
11791  
11792  
11793  const {
11794    name: comments_pagination_name
11795  } = comments_pagination_metadata;
11796  
11797  const comments_pagination_settings = {
11798    icon: query_pagination,
11799    edit: QueryPaginationEdit,
11800    save: comments_pagination_save_save
11801  };
11802  const comments_pagination_init = () => initBlock({
11803    name: comments_pagination_name,
11804    metadata: comments_pagination_metadata,
11805    settings: comments_pagination_settings
11806  });
11807  
11808  ;// ./node_modules/@wordpress/icons/build-module/library/query-pagination-next.js
11809  /**
11810   * WordPress dependencies
11811   */
11812  
11813  
11814  const queryPaginationNext = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11815    xmlns: "http://www.w3.org/2000/svg",
11816    viewBox: "0 0 24 24",
11817    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11818      d: "M5 13.5h3v-3H5v3zm5 0h3v-3h-3v3zM17 9l-1 1 2 2-2 2 1 1 3-3-3-3z"
11819    })
11820  });
11821  /* harmony default export */ const query_pagination_next = (queryPaginationNext);
11822  
11823  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/edit.js
11824  /**
11825   * WordPress dependencies
11826   */
11827  
11828  
11829  
11830  const edit_arrowMap = {
11831    none: '',
11832    arrow: '→',
11833    chevron: '»'
11834  };
11835  function CommentsPaginationNextEdit({
11836    attributes: {
11837      label
11838    },
11839    setAttributes,
11840    context: {
11841      'comments/paginationArrow': paginationArrow
11842    }
11843  }) {
11844    const displayArrow = edit_arrowMap[paginationArrow];
11845    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
11846      href: "#comments-pagination-next-pseudo-link",
11847      onClick: event => event.preventDefault(),
11848      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
11849      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
11850        __experimentalVersion: 2,
11851        tagName: "span",
11852        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Newer comments page link'),
11853        placeholder: (0,external_wp_i18n_namespaceObject.__)('Newer Comments'),
11854        value: label,
11855        onChange: newLabel => setAttributes({
11856          label: newLabel
11857        })
11858      }), displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
11859        className: `wp-block-comments-pagination-next-arrow is-arrow-$paginationArrow}`,
11860        children: displayArrow
11861      })]
11862    });
11863  }
11864  
11865  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination-next/index.js
11866  /**
11867   * WordPress dependencies
11868   */
11869  
11870  
11871  
11872  /**
11873   * Internal dependencies
11874   */
11875  
11876  const comments_pagination_next_metadata = {
11877    $schema: "https://schemas.wp.org/trunk/block.json",
11878    apiVersion: 3,
11879    name: "core/comments-pagination-next",
11880    title: "Comments Next Page",
11881    category: "theme",
11882    parent: ["core/comments-pagination"],
11883    description: "Displays the next comment's page link.",
11884    textdomain: "default",
11885    attributes: {
11886      label: {
11887        type: "string"
11888      }
11889    },
11890    usesContext: ["postId", "comments/paginationArrow"],
11891    supports: {
11892      reusable: false,
11893      html: false,
11894      color: {
11895        gradients: true,
11896        text: false,
11897        __experimentalDefaultControls: {
11898          background: true
11899        }
11900      },
11901      typography: {
11902        fontSize: true,
11903        lineHeight: true,
11904        __experimentalFontFamily: true,
11905        __experimentalFontWeight: true,
11906        __experimentalFontStyle: true,
11907        __experimentalTextTransform: true,
11908        __experimentalTextDecoration: true,
11909        __experimentalLetterSpacing: true,
11910        __experimentalDefaultControls: {
11911          fontSize: true
11912        }
11913      },
11914      interactivity: {
11915        clientNavigation: true
11916      }
11917    }
11918  };
11919  
11920  const {
11921    name: comments_pagination_next_name
11922  } = comments_pagination_next_metadata;
11923  
11924  const comments_pagination_next_settings = {
11925    icon: query_pagination_next,
11926    edit: CommentsPaginationNextEdit,
11927    example: {
11928      attributes: {
11929        label: (0,external_wp_i18n_namespaceObject.__)('Newer Comments')
11930      }
11931    }
11932  };
11933  const comments_pagination_next_init = () => initBlock({
11934    name: comments_pagination_next_name,
11935    metadata: comments_pagination_next_metadata,
11936    settings: comments_pagination_next_settings
11937  });
11938  
11939  ;// ./node_modules/@wordpress/icons/build-module/library/query-pagination-numbers.js
11940  /**
11941   * WordPress dependencies
11942   */
11943  
11944  
11945  const queryPaginationNumbers = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
11946    xmlns: "http://www.w3.org/2000/svg",
11947    viewBox: "0 0 24 24",
11948    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
11949      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"
11950    })
11951  });
11952  /* harmony default export */ const query_pagination_numbers = (queryPaginationNumbers);
11953  
11954  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/edit.js
11955  /**
11956   * WordPress dependencies
11957   */
11958  
11959  
11960  const PaginationItem = ({
11961    content,
11962    tag: Tag = 'a',
11963    extraClass = ''
11964  }) => Tag === 'a' ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
11965    className: `page-numbers $extraClass}`,
11966    href: "#comments-pagination-numbers-pseudo-link",
11967    onClick: event => event.preventDefault(),
11968    children: content
11969  }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
11970    className: `page-numbers $extraClass}`,
11971    children: content
11972  });
11973  function CommentsPaginationNumbersEdit() {
11974    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
11975      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
11976      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11977        content: "1"
11978      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11979        content: "2"
11980      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11981        content: "3",
11982        tag: "span",
11983        extraClass: "current"
11984      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11985        content: "4"
11986      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11987        content: "5"
11988      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11989        content: "...",
11990        tag: "span",
11991        extraClass: "dots"
11992      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PaginationItem, {
11993        content: "8"
11994      })]
11995    });
11996  }
11997  
11998  ;// ./node_modules/@wordpress/block-library/build-module/comments-pagination-numbers/index.js
11999  /**
12000   * WordPress dependencies
12001   */
12002  
12003  
12004  /**
12005   * Internal dependencies
12006   */
12007  
12008  const comments_pagination_numbers_metadata = {
12009    $schema: "https://schemas.wp.org/trunk/block.json",
12010    apiVersion: 3,
12011    name: "core/comments-pagination-numbers",
12012    title: "Comments Page Numbers",
12013    category: "theme",
12014    parent: ["core/comments-pagination"],
12015    description: "Displays a list of page numbers for comments pagination.",
12016    textdomain: "default",
12017    usesContext: ["postId"],
12018    supports: {
12019      reusable: false,
12020      html: false,
12021      color: {
12022        gradients: true,
12023        text: false,
12024        __experimentalDefaultControls: {
12025          background: true
12026        }
12027      },
12028      typography: {
12029        fontSize: true,
12030        lineHeight: true,
12031        __experimentalFontFamily: true,
12032        __experimentalFontWeight: true,
12033        __experimentalFontStyle: true,
12034        __experimentalTextTransform: true,
12035        __experimentalTextDecoration: true,
12036        __experimentalLetterSpacing: true,
12037        __experimentalDefaultControls: {
12038          fontSize: true
12039        }
12040      },
12041      interactivity: {
12042        clientNavigation: true
12043      }
12044    }
12045  };
12046  
12047  const {
12048    name: comments_pagination_numbers_name
12049  } = comments_pagination_numbers_metadata;
12050  
12051  const comments_pagination_numbers_settings = {
12052    icon: query_pagination_numbers,
12053    edit: CommentsPaginationNumbersEdit,
12054    example: {}
12055  };
12056  const comments_pagination_numbers_init = () => initBlock({
12057    name: comments_pagination_numbers_name,
12058    metadata: comments_pagination_numbers_metadata,
12059    settings: comments_pagination_numbers_settings
12060  });
12061  
12062  ;// ./node_modules/@wordpress/icons/build-module/library/title.js
12063  /**
12064   * WordPress dependencies
12065   */
12066  
12067  
12068  const title = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
12069    xmlns: "http://www.w3.org/2000/svg",
12070    viewBox: "0 0 24 24",
12071    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
12072      d: "m4 5.5h2v6.5h1.5v-6.5h2v-1.5h-5.5zm16 10.5h-16v-1.5h16zm-7 4h-9v-1.5h9z"
12073    })
12074  });
12075  /* harmony default export */ const library_title = (title);
12076  
12077  ;// ./node_modules/@wordpress/block-library/build-module/comments-title/edit.js
12078  /**
12079   * External dependencies
12080   */
12081  
12082  
12083  /**
12084   * WordPress dependencies
12085   */
12086  
12087  
12088  
12089  
12090  
12091  
12092  
12093  
12094  
12095  function comments_title_edit_Edit({
12096    attributes: {
12097      textAlign,
12098      showPostTitle,
12099      showCommentsCount,
12100      level,
12101      levelOptions
12102    },
12103    setAttributes,
12104    context: {
12105      postType,
12106      postId
12107    }
12108  }) {
12109    const TagName = 'h' + level;
12110    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
12111    const [rawTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
12112    const isSiteEditor = typeof postId === 'undefined';
12113    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
12114      className: dist_clsx({
12115        [`has-text-align-$textAlign}`]: textAlign
12116      })
12117    });
12118    const {
12119      threadCommentsDepth,
12120      threadComments,
12121      commentsPerPage,
12122      pageComments
12123    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
12124      const {
12125        getSettings
12126      } = select(external_wp_blockEditor_namespaceObject.store);
12127      return getSettings().__experimentalDiscussionSettings;
12128    });
12129    (0,external_wp_element_namespaceObject.useEffect)(() => {
12130      if (isSiteEditor) {
12131        // Match the number of comments that will be shown in the comment-template/edit.js placeholder
12132  
12133        const nestedCommentsNumber = threadComments ? Math.min(threadCommentsDepth, 3) - 1 : 0;
12134        const topLevelCommentsNumber = pageComments ? commentsPerPage : 3;
12135        const commentsNumber = parseInt(nestedCommentsNumber) + parseInt(topLevelCommentsNumber);
12136        setCommentsCount(Math.min(commentsNumber, 3));
12137        return;
12138      }
12139      const currentPostId = postId;
12140      external_wp_apiFetch_default()({
12141        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
12142          post: postId,
12143          _fields: 'id'
12144        }),
12145        method: 'HEAD',
12146        parse: false
12147      }).then(res => {
12148        // Stale requests will have the `currentPostId` of an older closure.
12149        if (currentPostId === postId) {
12150          setCommentsCount(parseInt(res.headers.get('X-WP-Total')));
12151        }
12152      }).catch(() => {
12153        setCommentsCount(0);
12154      });
12155    }, [postId]);
12156    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
12157      group: "block",
12158      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
12159        value: textAlign,
12160        onChange: newAlign => setAttributes({
12161          textAlign: newAlign
12162        })
12163      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
12164        value: level,
12165        options: levelOptions,
12166        onChange: newLevel => setAttributes({
12167          level: newLevel
12168        })
12169      })]
12170    });
12171    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
12172      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
12173        title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
12174        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
12175          __nextHasNoMarginBottom: true,
12176          label: (0,external_wp_i18n_namespaceObject.__)('Show post title'),
12177          checked: showPostTitle,
12178          onChange: value => setAttributes({
12179            showPostTitle: value
12180          })
12181        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
12182          __nextHasNoMarginBottom: true,
12183          label: (0,external_wp_i18n_namespaceObject.__)('Show comments count'),
12184          checked: showCommentsCount,
12185          onChange: value => setAttributes({
12186            showCommentsCount: value
12187          })
12188        })]
12189      })
12190    });
12191    const postTitle = isSiteEditor ? (0,external_wp_i18n_namespaceObject.__)('“Post Title”') : `"$rawTitle}"`;
12192    let placeholder;
12193    if (showCommentsCount && commentsCount !== undefined) {
12194      if (showPostTitle) {
12195        if (commentsCount === 1) {
12196          /* translators: %s: Post title. */
12197          placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('One response to %s'), postTitle);
12198        } else {
12199          placeholder = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: 1: Number of comments, 2: Post title. */
12200          (0,external_wp_i18n_namespaceObject._n)('%1$s response to %2$s', '%1$s responses to %2$s', commentsCount), commentsCount, postTitle);
12201        }
12202      } else if (commentsCount === 1) {
12203        placeholder = (0,external_wp_i18n_namespaceObject.__)('One response');
12204      } else {
12205        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Number of comments. */
12206        (0,external_wp_i18n_namespaceObject._n)('%s response', '%s responses', commentsCount), commentsCount);
12207      }
12208    } else if (showPostTitle) {
12209      if (commentsCount === 1) {
12210        /* translators: %s: Post title. */
12211        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Response to %s'), postTitle);
12212      } else {
12213        /* translators: %s: Post title. */
12214        placeholder = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Responses to %s'), postTitle);
12215      }
12216    } else if (commentsCount === 1) {
12217      placeholder = (0,external_wp_i18n_namespaceObject.__)('Response');
12218    } else {
12219      placeholder = (0,external_wp_i18n_namespaceObject.__)('Responses');
12220    }
12221    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
12222      children: [blockControls, inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
12223        ...blockProps,
12224        children: placeholder
12225      })]
12226    });
12227  }
12228  
12229  ;// ./node_modules/@wordpress/block-library/build-module/comments-title/deprecated.js
12230  /**
12231   * Internal dependencies
12232   */
12233  const deprecated_metadata = {
12234    $schema: "https://schemas.wp.org/trunk/block.json",
12235    apiVersion: 3,
12236    name: "core/comments-title",
12237    title: "Comments Title",
12238    category: "theme",
12239    ancestor: ["core/comments"],
12240    description: "Displays a title with the number of comments.",
12241    textdomain: "default",
12242    usesContext: ["postId", "postType"],
12243    attributes: {
12244      textAlign: {
12245        type: "string"
12246      },
12247      showPostTitle: {
12248        type: "boolean",
12249        "default": true
12250      },
12251      showCommentsCount: {
12252        type: "boolean",
12253        "default": true
12254      },
12255      level: {
12256        type: "number",
12257        "default": 2
12258      },
12259      levelOptions: {
12260        type: "array"
12261      }
12262    },
12263    supports: {
12264      anchor: false,
12265      align: true,
12266      html: false,
12267      __experimentalBorder: {
12268        radius: true,
12269        color: true,
12270        width: true,
12271        style: true
12272      },
12273      color: {
12274        gradients: true,
12275        __experimentalDefaultControls: {
12276          background: true,
12277          text: true
12278        }
12279      },
12280      spacing: {
12281        margin: true,
12282        padding: true
12283      },
12284      typography: {
12285        fontSize: true,
12286        lineHeight: true,
12287        __experimentalFontFamily: true,
12288        __experimentalFontWeight: true,
12289        __experimentalFontStyle: true,
12290        __experimentalTextTransform: true,
12291        __experimentalTextDecoration: true,
12292        __experimentalLetterSpacing: true,
12293        __experimentalDefaultControls: {
12294          fontSize: true,
12295          __experimentalFontFamily: true,
12296          __experimentalFontStyle: true,
12297          __experimentalFontWeight: true
12298        }
12299      },
12300      interactivity: {
12301        clientNavigation: true
12302      }
12303    }
12304  };
12305  const {
12306    attributes,
12307    supports
12308  } = deprecated_metadata;
12309  /* harmony default export */ const comments_title_deprecated = ([{
12310    attributes: {
12311      ...attributes,
12312      singleCommentLabel: {
12313        type: 'string'
12314      },
12315      multipleCommentsLabel: {
12316        type: 'string'
12317      }
12318    },
12319    supports,
12320    migrate: oldAttributes => {
12321      const {
12322        singleCommentLabel,
12323        multipleCommentsLabel,
12324        ...newAttributes
12325      } = oldAttributes;
12326      return newAttributes;
12327    },
12328    isEligible: ({
12329      multipleCommentsLabel,
12330      singleCommentLabel
12331    }) => multipleCommentsLabel || singleCommentLabel,
12332    save: () => null
12333  }]);
12334  
12335  ;// ./node_modules/@wordpress/block-library/build-module/comments-title/index.js
12336  /**
12337   * WordPress dependencies
12338   */
12339  
12340  
12341  /**
12342   * Internal dependencies
12343   */
12344  
12345  const comments_title_metadata = {
12346    $schema: "https://schemas.wp.org/trunk/block.json",
12347    apiVersion: 3,
12348    name: "core/comments-title",
12349    title: "Comments Title",
12350    category: "theme",
12351    ancestor: ["core/comments"],
12352    description: "Displays a title with the number of comments.",
12353    textdomain: "default",
12354    usesContext: ["postId", "postType"],
12355    attributes: {
12356      textAlign: {
12357        type: "string"
12358      },
12359      showPostTitle: {
12360        type: "boolean",
12361        "default": true
12362      },
12363      showCommentsCount: {
12364        type: "boolean",
12365        "default": true
12366      },
12367      level: {
12368        type: "number",
12369        "default": 2
12370      },
12371      levelOptions: {
12372        type: "array"
12373      }
12374    },
12375    supports: {
12376      anchor: false,
12377      align: true,
12378      html: false,
12379      __experimentalBorder: {
12380        radius: true,
12381        color: true,
12382        width: true,
12383        style: true
12384      },
12385      color: {
12386        gradients: true,
12387        __experimentalDefaultControls: {
12388          background: true,
12389          text: true
12390        }
12391      },
12392      spacing: {
12393        margin: true,
12394        padding: true
12395      },
12396      typography: {
12397        fontSize: true,
12398        lineHeight: true,
12399        __experimentalFontFamily: true,
12400        __experimentalFontWeight: true,
12401        __experimentalFontStyle: true,
12402        __experimentalTextTransform: true,
12403        __experimentalTextDecoration: true,
12404        __experimentalLetterSpacing: true,
12405        __experimentalDefaultControls: {
12406          fontSize: true,
12407          __experimentalFontFamily: true,
12408          __experimentalFontStyle: true,
12409          __experimentalFontWeight: true
12410        }
12411      },
12412      interactivity: {
12413        clientNavigation: true
12414      }
12415    }
12416  };
12417  
12418  
12419  const {
12420    name: comments_title_name
12421  } = comments_title_metadata;
12422  
12423  const comments_title_settings = {
12424    icon: library_title,
12425    edit: comments_title_edit_Edit,
12426    deprecated: comments_title_deprecated,
12427    example: {}
12428  };
12429  const comments_title_init = () => initBlock({
12430    name: comments_title_name,
12431    metadata: comments_title_metadata,
12432    settings: comments_title_settings
12433  });
12434  
12435  ;// ./node_modules/@wordpress/icons/build-module/library/cover.js
12436  /**
12437   * WordPress dependencies
12438   */
12439  
12440  
12441  const cover = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
12442    xmlns: "http://www.w3.org/2000/svg",
12443    viewBox: "0 0 24 24",
12444    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
12445      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"
12446    })
12447  });
12448  /* harmony default export */ const library_cover = (cover);
12449  
12450  ;// ./node_modules/@wordpress/block-library/build-module/cover/shared.js
12451  /**
12452   * WordPress dependencies
12453   */
12454  
12455  const POSITION_CLASSNAMES = {
12456    'top left': 'is-position-top-left',
12457    'top center': 'is-position-top-center',
12458    'top right': 'is-position-top-right',
12459    'center left': 'is-position-center-left',
12460    'center center': 'is-position-center-center',
12461    center: 'is-position-center-center',
12462    'center right': 'is-position-center-right',
12463    'bottom left': 'is-position-bottom-left',
12464    'bottom center': 'is-position-bottom-center',
12465    'bottom right': 'is-position-bottom-right'
12466  };
12467  const IMAGE_BACKGROUND_TYPE = 'image';
12468  const VIDEO_BACKGROUND_TYPE = 'video';
12469  const COVER_MIN_HEIGHT = 50;
12470  const COVER_MAX_HEIGHT = 1000;
12471  const COVER_DEFAULT_HEIGHT = 300;
12472  const DEFAULT_FOCAL_POINT = {
12473    x: 0.5,
12474    y: 0.5
12475  };
12476  const shared_ALLOWED_MEDIA_TYPES = ['image', 'video'];
12477  function mediaPosition({
12478    x,
12479    y
12480  } = DEFAULT_FOCAL_POINT) {
12481    return `$Math.round(x * 100)}% $Math.round(y * 100)}%`;
12482  }
12483  function dimRatioToClass(ratio) {
12484    return ratio === 50 || ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
12485  }
12486  function attributesFromMedia(media) {
12487    if (!media || !media.url && !media.src) {
12488      return {
12489        url: undefined,
12490        id: undefined
12491      };
12492    }
12493    if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
12494      media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
12495    }
12496    let mediaType;
12497    // For media selections originated from a file upload.
12498    if (media.media_type) {
12499      if (media.media_type === IMAGE_BACKGROUND_TYPE) {
12500        mediaType = IMAGE_BACKGROUND_TYPE;
12501      } else {
12502        // Only images and videos are accepted so if the media_type is not an image we can assume it is a video.
12503        // Videos contain the media type of 'file' in the object returned from the rest api.
12504        mediaType = VIDEO_BACKGROUND_TYPE;
12505      }
12506      // For media selections originated from existing files in the media library.
12507    } else if (media.type && (media.type === IMAGE_BACKGROUND_TYPE || media.type === VIDEO_BACKGROUND_TYPE)) {
12508      mediaType = media.type;
12509    } else {
12510      return;
12511    }
12512    return {
12513      url: media.url || media.src,
12514      id: media.id,
12515      alt: media?.alt,
12516      backgroundType: mediaType,
12517      ...(mediaType === VIDEO_BACKGROUND_TYPE ? {
12518        hasParallax: undefined
12519      } : {})
12520    };
12521  }
12522  
12523  /**
12524   * Checks of the contentPosition is the center (default) position.
12525   *
12526   * @param {string} contentPosition The current content position.
12527   * @return {boolean} Whether the contentPosition is center.
12528   */
12529  function isContentPositionCenter(contentPosition) {
12530    return !contentPosition || contentPosition === 'center center' || contentPosition === 'center';
12531  }
12532  
12533  /**
12534   * Retrieves the className for the current contentPosition.
12535   * The default position (center) will not have a className.
12536   *
12537   * @param {string} contentPosition The current content position.
12538   * @return {string} The className assigned to the contentPosition.
12539   */
12540  function getPositionClassName(contentPosition) {
12541    /*
12542     * Only render a className if the contentPosition is not center (the default).
12543     */
12544    if (isContentPositionCenter(contentPosition)) {
12545      return '';
12546    }
12547    return POSITION_CLASSNAMES[contentPosition];
12548  }
12549  
12550  ;// ./node_modules/@wordpress/block-library/build-module/cover/deprecated.js
12551  /**
12552   * External dependencies
12553   */
12554  
12555  
12556  /**
12557   * WordPress dependencies
12558   */
12559  
12560  
12561  
12562  
12563  
12564  /**
12565   * Internal dependencies
12566   */
12567  
12568  
12569  function backgroundImageStyles(url) {
12570    return url ? {
12571      backgroundImage: `url($url})`
12572    } : {};
12573  }
12574  
12575  /**
12576   * Original function to determine the background opacity classname
12577   *
12578   * Used in deprecations: v1-7.
12579   *
12580   * @param {number} ratio ratio to use for opacity.
12581   * @return {string}       background opacity class   .
12582   */
12583  function dimRatioToClassV1(ratio) {
12584    return ratio === 0 || ratio === 50 || !ratio ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
12585  }
12586  function migrateDimRatio(attributes) {
12587    return {
12588      ...attributes,
12589      dimRatio: !attributes.url ? 100 : attributes.dimRatio
12590    };
12591  }
12592  function migrateTag(attributes) {
12593    if (!attributes.tagName) {
12594      attributes = {
12595        ...attributes,
12596        tagName: 'div'
12597      };
12598    }
12599    return {
12600      ...attributes
12601    };
12602  }
12603  const deprecated_blockAttributes = {
12604    url: {
12605      type: 'string'
12606    },
12607    id: {
12608      type: 'number'
12609    },
12610    hasParallax: {
12611      type: 'boolean',
12612      default: false
12613    },
12614    dimRatio: {
12615      type: 'number',
12616      default: 50
12617    },
12618    overlayColor: {
12619      type: 'string'
12620    },
12621    customOverlayColor: {
12622      type: 'string'
12623    },
12624    backgroundType: {
12625      type: 'string',
12626      default: 'image'
12627    },
12628    focalPoint: {
12629      type: 'object'
12630    }
12631  };
12632  const v8ToV11BlockAttributes = {
12633    url: {
12634      type: 'string'
12635    },
12636    id: {
12637      type: 'number'
12638    },
12639    alt: {
12640      type: 'string',
12641      source: 'attribute',
12642      selector: 'img',
12643      attribute: 'alt',
12644      default: ''
12645    },
12646    hasParallax: {
12647      type: 'boolean',
12648      default: false
12649    },
12650    isRepeated: {
12651      type: 'boolean',
12652      default: false
12653    },
12654    dimRatio: {
12655      type: 'number',
12656      default: 100
12657    },
12658    overlayColor: {
12659      type: 'string'
12660    },
12661    customOverlayColor: {
12662      type: 'string'
12663    },
12664    backgroundType: {
12665      type: 'string',
12666      default: 'image'
12667    },
12668    focalPoint: {
12669      type: 'object'
12670    },
12671    minHeight: {
12672      type: 'number'
12673    },
12674    minHeightUnit: {
12675      type: 'string'
12676    },
12677    gradient: {
12678      type: 'string'
12679    },
12680    customGradient: {
12681      type: 'string'
12682    },
12683    contentPosition: {
12684      type: 'string'
12685    },
12686    isDark: {
12687      type: 'boolean',
12688      default: true
12689    },
12690    allowedBlocks: {
12691      type: 'array'
12692    },
12693    templateLock: {
12694      type: ['string', 'boolean'],
12695      enum: ['all', 'insert', false]
12696    }
12697  };
12698  const v12toV13BlockAttributes = {
12699    ...v8ToV11BlockAttributes,
12700    useFeaturedImage: {
12701      type: 'boolean',
12702      default: false
12703    },
12704    tagName: {
12705      type: 'string',
12706      default: 'div'
12707    }
12708  };
12709  const v14BlockAttributes = {
12710    ...v12toV13BlockAttributes,
12711    isUserOverlayColor: {
12712      type: 'boolean'
12713    },
12714    sizeSlug: {
12715      type: 'string'
12716    },
12717    alt: {
12718      type: 'string',
12719      default: ''
12720    }
12721  };
12722  const v7toV11BlockSupports = {
12723    anchor: true,
12724    align: true,
12725    html: false,
12726    spacing: {
12727      padding: true,
12728      __experimentalDefaultControls: {
12729        padding: true
12730      }
12731    },
12732    color: {
12733      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
12734      text: false,
12735      background: false
12736    }
12737  };
12738  const v12BlockSupports = {
12739    ...v7toV11BlockSupports,
12740    spacing: {
12741      padding: true,
12742      margin: ['top', 'bottom'],
12743      blockGap: true,
12744      __experimentalDefaultControls: {
12745        padding: true,
12746        blockGap: true
12747      }
12748    },
12749    __experimentalBorder: {
12750      color: true,
12751      radius: true,
12752      style: true,
12753      width: true,
12754      __experimentalDefaultControls: {
12755        color: true,
12756        radius: true,
12757        style: true,
12758        width: true
12759      }
12760    },
12761    color: {
12762      __experimentalDuotone: '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
12763      heading: true,
12764      text: true,
12765      background: false,
12766      __experimentalSkipSerialization: ['gradients'],
12767      enableContrastChecker: false
12768    },
12769    typography: {
12770      fontSize: true,
12771      lineHeight: true,
12772      __experimentalFontFamily: true,
12773      __experimentalFontWeight: true,
12774      __experimentalFontStyle: true,
12775      __experimentalTextTransform: true,
12776      __experimentalTextDecoration: true,
12777      __experimentalLetterSpacing: true,
12778      __experimentalDefaultControls: {
12779        fontSize: true
12780      }
12781    },
12782    layout: {
12783      allowJustification: false
12784    }
12785  };
12786  const v14BlockSupports = {
12787    ...v12BlockSupports,
12788    shadow: true,
12789    dimensions: {
12790      aspectRatio: true
12791    },
12792    interactivity: {
12793      clientNavigation: true
12794    }
12795  };
12796  
12797  // Deprecation for blocks that have z-index.
12798  const v14 = {
12799    attributes: v14BlockAttributes,
12800    supports: v14BlockSupports,
12801    save({
12802      attributes
12803    }) {
12804      const {
12805        backgroundType,
12806        gradient,
12807        contentPosition,
12808        customGradient,
12809        customOverlayColor,
12810        dimRatio,
12811        focalPoint,
12812        useFeaturedImage,
12813        hasParallax,
12814        isDark,
12815        isRepeated,
12816        overlayColor,
12817        url,
12818        alt,
12819        id,
12820        minHeight: minHeightProp,
12821        minHeightUnit,
12822        tagName: Tag,
12823        sizeSlug
12824      } = attributes;
12825      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12826      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12827      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12828      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12829      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12830      const isImgElement = !(hasParallax || isRepeated);
12831      const style = {
12832        minHeight: minHeight || undefined
12833      };
12834      const bgStyle = {
12835        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12836        background: customGradient ? customGradient : undefined
12837      };
12838      const objectPosition =
12839      // prettier-ignore
12840      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
12841      const backgroundImage = url ? `url($url})` : undefined;
12842      const backgroundPosition = mediaPosition(focalPoint);
12843      const classes = dist_clsx({
12844        'is-light': !isDark,
12845        'has-parallax': hasParallax,
12846        'is-repeated': isRepeated,
12847        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12848      }, getPositionClassName(contentPosition));
12849      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
12850        [`size-$sizeSlug}`]: sizeSlug,
12851        'has-parallax': hasParallax,
12852        'is-repeated': isRepeated
12853      });
12854      const gradientValue = gradient || customGradient;
12855      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
12856        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12857          className: classes,
12858          style
12859        }),
12860        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12861          "aria-hidden": "true",
12862          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12863            'has-background-dim': dimRatio !== undefined,
12864            // For backwards compatibility. Former versions of the Cover Block applied
12865            // `.wp-block-cover__gradient-background` in the presence of
12866            // media, a gradient and a dim.
12867            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12868            'has-background-gradient': gradientValue,
12869            [gradientClass]: gradientClass
12870          }),
12871          style: bgStyle
12872        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12873          className: imgClasses,
12874          alt: alt,
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          role: alt ? 'img' : undefined,
12883          "aria-label": alt ? alt : undefined,
12884          className: imgClasses,
12885          style: {
12886            backgroundPosition,
12887            backgroundImage
12888          }
12889        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
12890          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
12891          autoPlay: true,
12892          muted: true,
12893          loop: true,
12894          playsInline: true,
12895          src: url,
12896          style: {
12897            objectPosition
12898          },
12899          "data-object-fit": "cover",
12900          "data-object-position": objectPosition
12901        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12902          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
12903            className: 'wp-block-cover__inner-container'
12904          })
12905        })]
12906      });
12907    }
12908  };
12909  
12910  // Deprecation for blocks that does not have the aria-label when the image background is fixed or repeated.
12911  const v13 = {
12912    attributes: v12toV13BlockAttributes,
12913    supports: v12BlockSupports,
12914    save({
12915      attributes
12916    }) {
12917      const {
12918        backgroundType,
12919        gradient,
12920        contentPosition,
12921        customGradient,
12922        customOverlayColor,
12923        dimRatio,
12924        focalPoint,
12925        useFeaturedImage,
12926        hasParallax,
12927        isDark,
12928        isRepeated,
12929        overlayColor,
12930        url,
12931        alt,
12932        id,
12933        minHeight: minHeightProp,
12934        minHeightUnit,
12935        tagName: Tag
12936      } = attributes;
12937      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
12938      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
12939      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
12940      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
12941      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
12942      const isImgElement = !(hasParallax || isRepeated);
12943      const style = {
12944        minHeight: minHeight || undefined
12945      };
12946      const bgStyle = {
12947        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
12948        background: customGradient ? customGradient : undefined
12949      };
12950      const objectPosition =
12951      // prettier-ignore
12952      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
12953      const backgroundImage = url ? `url($url})` : undefined;
12954      const backgroundPosition = mediaPosition(focalPoint);
12955      const classes = dist_clsx({
12956        'is-light': !isDark,
12957        'has-parallax': hasParallax,
12958        'is-repeated': isRepeated,
12959        'has-custom-content-position': !isContentPositionCenter(contentPosition)
12960      }, getPositionClassName(contentPosition));
12961      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
12962        'has-parallax': hasParallax,
12963        'is-repeated': isRepeated
12964      });
12965      const gradientValue = gradient || customGradient;
12966      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
12967        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
12968          className: classes,
12969          style
12970        }),
12971        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
12972          "aria-hidden": "true",
12973          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
12974            'has-background-dim': dimRatio !== undefined,
12975            // For backwards compatibility. Former versions of the Cover Block applied
12976            // `.wp-block-cover__gradient-background` in the presence of
12977            // media, a gradient and a dim.
12978            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
12979            'has-background-gradient': gradientValue,
12980            [gradientClass]: gradientClass
12981          }),
12982          style: bgStyle
12983        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
12984          className: imgClasses,
12985          alt: alt,
12986          src: url,
12987          style: {
12988            objectPosition
12989          },
12990          "data-object-fit": "cover",
12991          "data-object-position": objectPosition
12992        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
12993          role: "img",
12994          className: imgClasses,
12995          style: {
12996            backgroundPosition,
12997            backgroundImage
12998          }
12999        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13000          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13001          autoPlay: true,
13002          muted: true,
13003          loop: true,
13004          playsInline: true,
13005          src: url,
13006          style: {
13007            objectPosition
13008          },
13009          "data-object-fit": "cover",
13010          "data-object-position": objectPosition
13011        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13012          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
13013            className: 'wp-block-cover__inner-container'
13014          })
13015        })]
13016      });
13017    }
13018  };
13019  
13020  // Deprecation for blocks to prevent auto overlay color from overriding previously set values.
13021  const deprecated_v12 = {
13022    attributes: v12toV13BlockAttributes,
13023    supports: v12BlockSupports,
13024    isEligible(attributes) {
13025      return (attributes.customOverlayColor !== undefined || attributes.overlayColor !== undefined) && attributes.isUserOverlayColor === undefined;
13026    },
13027    migrate(attributes) {
13028      return {
13029        ...attributes,
13030        isUserOverlayColor: true
13031      };
13032    },
13033    save({
13034      attributes
13035    }) {
13036      const {
13037        backgroundType,
13038        gradient,
13039        contentPosition,
13040        customGradient,
13041        customOverlayColor,
13042        dimRatio,
13043        focalPoint,
13044        useFeaturedImage,
13045        hasParallax,
13046        isDark,
13047        isRepeated,
13048        overlayColor,
13049        url,
13050        alt,
13051        id,
13052        minHeight: minHeightProp,
13053        minHeightUnit,
13054        tagName: Tag
13055      } = attributes;
13056      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13057      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13058      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13059      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13060      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13061      const isImgElement = !(hasParallax || isRepeated);
13062      const style = {
13063        minHeight: minHeight || undefined
13064      };
13065      const bgStyle = {
13066        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13067        background: customGradient ? customGradient : undefined
13068      };
13069      const objectPosition =
13070      // prettier-ignore
13071      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
13072      const backgroundImage = url ? `url($url})` : undefined;
13073      const backgroundPosition = mediaPosition(focalPoint);
13074      const classes = dist_clsx({
13075        'is-light': !isDark,
13076        'has-parallax': hasParallax,
13077        'is-repeated': isRepeated,
13078        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13079      }, getPositionClassName(contentPosition));
13080      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
13081        'has-parallax': hasParallax,
13082        'is-repeated': isRepeated
13083      });
13084      const gradientValue = gradient || customGradient;
13085      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
13086        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13087          className: classes,
13088          style
13089        }),
13090        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13091          "aria-hidden": "true",
13092          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
13093            'has-background-dim': dimRatio !== undefined,
13094            // For backwards compatibility. Former versions of the Cover Block applied
13095            // `.wp-block-cover__gradient-background` in the presence of
13096            // media, a gradient and a dim.
13097            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
13098            'has-background-gradient': gradientValue,
13099            [gradientClass]: gradientClass
13100          }),
13101          style: bgStyle
13102        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13103          className: imgClasses,
13104          alt: alt,
13105          src: url,
13106          style: {
13107            objectPosition
13108          },
13109          "data-object-fit": "cover",
13110          "data-object-position": objectPosition
13111        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13112          role: "img",
13113          className: imgClasses,
13114          style: {
13115            backgroundPosition,
13116            backgroundImage
13117          }
13118        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13119          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13120          autoPlay: true,
13121          muted: true,
13122          loop: true,
13123          playsInline: true,
13124          src: url,
13125          style: {
13126            objectPosition
13127          },
13128          "data-object-fit": "cover",
13129          "data-object-position": objectPosition
13130        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13131          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
13132            className: 'wp-block-cover__inner-container'
13133          })
13134        })]
13135      });
13136    }
13137  };
13138  
13139  // Deprecation for blocks that does not have a HTML tag option.
13140  const deprecated_v11 = {
13141    attributes: v8ToV11BlockAttributes,
13142    supports: v7toV11BlockSupports,
13143    save({
13144      attributes
13145    }) {
13146      const {
13147        backgroundType,
13148        gradient,
13149        contentPosition,
13150        customGradient,
13151        customOverlayColor,
13152        dimRatio,
13153        focalPoint,
13154        useFeaturedImage,
13155        hasParallax,
13156        isDark,
13157        isRepeated,
13158        overlayColor,
13159        url,
13160        alt,
13161        id,
13162        minHeight: minHeightProp,
13163        minHeightUnit
13164      } = attributes;
13165      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13166      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13167      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13168      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13169      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13170      const isImgElement = !(hasParallax || isRepeated);
13171      const style = {
13172        minHeight: minHeight || undefined
13173      };
13174      const bgStyle = {
13175        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13176        background: customGradient ? customGradient : undefined
13177      };
13178      const objectPosition =
13179      // prettier-ignore
13180      focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
13181      const backgroundImage = url ? `url($url})` : undefined;
13182      const backgroundPosition = mediaPosition(focalPoint);
13183      const classes = dist_clsx({
13184        'is-light': !isDark,
13185        'has-parallax': hasParallax,
13186        'is-repeated': isRepeated,
13187        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13188      }, getPositionClassName(contentPosition));
13189      const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
13190        'has-parallax': hasParallax,
13191        'is-repeated': isRepeated
13192      });
13193      const gradientValue = gradient || customGradient;
13194      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13195        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13196          className: classes,
13197          style
13198        }),
13199        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13200          "aria-hidden": "true",
13201          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
13202            'has-background-dim': dimRatio !== undefined,
13203            // For backwards compatibility. Former versions of the Cover Block applied
13204            // `.wp-block-cover__gradient-background` in the presence of
13205            // media, a gradient and a dim.
13206            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
13207            'has-background-gradient': gradientValue,
13208            [gradientClass]: gradientClass
13209          }),
13210          style: bgStyle
13211        }), !useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13212          className: imgClasses,
13213          alt: alt,
13214          src: url,
13215          style: {
13216            objectPosition
13217          },
13218          "data-object-fit": "cover",
13219          "data-object-position": objectPosition
13220        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13221          role: "img",
13222          className: imgClasses,
13223          style: {
13224            backgroundPosition,
13225            backgroundImage
13226          }
13227        })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13228          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13229          autoPlay: true,
13230          muted: true,
13231          loop: true,
13232          playsInline: true,
13233          src: url,
13234          style: {
13235            objectPosition
13236          },
13237          "data-object-fit": "cover",
13238          "data-object-position": objectPosition
13239        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13240          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
13241            className: 'wp-block-cover__inner-container'
13242          })
13243        })]
13244      });
13245    },
13246    migrate: migrateTag
13247  };
13248  
13249  // Deprecation for blocks that renders fixed background as background from the main block container.
13250  const deprecated_v10 = {
13251    attributes: v8ToV11BlockAttributes,
13252    supports: v7toV11BlockSupports,
13253    save({
13254      attributes
13255    }) {
13256      const {
13257        backgroundType,
13258        gradient,
13259        contentPosition,
13260        customGradient,
13261        customOverlayColor,
13262        dimRatio,
13263        focalPoint,
13264        useFeaturedImage,
13265        hasParallax,
13266        isDark,
13267        isRepeated,
13268        overlayColor,
13269        url,
13270        alt,
13271        id,
13272        minHeight: minHeightProp,
13273        minHeightUnit
13274      } = attributes;
13275      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13276      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13277      const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13278      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13279      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13280      const isImgElement = !(hasParallax || isRepeated);
13281      const style = {
13282        ...(isImageBackground && !isImgElement && !useFeaturedImage ? backgroundImageStyles(url) : {}),
13283        minHeight: minHeight || undefined
13284      };
13285      const bgStyle = {
13286        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13287        background: customGradient ? customGradient : undefined
13288      };
13289      const objectPosition =
13290      // prettier-ignore
13291      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
13292      const classes = dist_clsx({
13293        'is-light': !isDark,
13294        'has-parallax': hasParallax,
13295        'is-repeated': isRepeated,
13296        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13297      }, getPositionClassName(contentPosition));
13298      const gradientValue = gradient || customGradient;
13299      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13300        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13301          className: classes,
13302          style
13303        }),
13304        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13305          "aria-hidden": "true",
13306          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
13307            'has-background-dim': dimRatio !== undefined,
13308            // For backwards compatibility. Former versions of the Cover Block applied
13309            // `.wp-block-cover__gradient-background` in the presence of
13310            // media, a gradient and a dim.
13311            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
13312            'has-background-gradient': gradientValue,
13313            [gradientClass]: gradientClass
13314          }),
13315          style: bgStyle
13316        }), !useFeaturedImage && isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13317          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
13318          alt: alt,
13319          src: url,
13320          style: {
13321            objectPosition
13322          },
13323          "data-object-fit": "cover",
13324          "data-object-position": objectPosition
13325        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13326          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13327          autoPlay: true,
13328          muted: true,
13329          loop: true,
13330          playsInline: true,
13331          src: url,
13332          style: {
13333            objectPosition
13334          },
13335          "data-object-fit": "cover",
13336          "data-object-position": objectPosition
13337        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13338          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
13339            className: 'wp-block-cover__inner-container'
13340          })
13341        })]
13342      });
13343    },
13344    migrate: migrateTag
13345  };
13346  
13347  // Deprecation for blocks with `minHeightUnit` set but no `minHeight`.
13348  const v9 = {
13349    attributes: v8ToV11BlockAttributes,
13350    supports: v7toV11BlockSupports,
13351    save({
13352      attributes
13353    }) {
13354      const {
13355        backgroundType,
13356        gradient,
13357        contentPosition,
13358        customGradient,
13359        customOverlayColor,
13360        dimRatio,
13361        focalPoint,
13362        hasParallax,
13363        isDark,
13364        isRepeated,
13365        overlayColor,
13366        url,
13367        alt,
13368        id,
13369        minHeight: minHeightProp,
13370        minHeightUnit
13371      } = attributes;
13372      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13373      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13374      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13375      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13376      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13377      const isImgElement = !(hasParallax || isRepeated);
13378      const style = {
13379        ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
13380        minHeight: minHeight || undefined
13381      };
13382      const bgStyle = {
13383        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13384        background: customGradient ? customGradient : undefined
13385      };
13386      const objectPosition =
13387      // prettier-ignore
13388      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
13389      const classes = dist_clsx({
13390        'is-light': !isDark,
13391        'has-parallax': hasParallax,
13392        'is-repeated': isRepeated,
13393        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13394      }, getPositionClassName(contentPosition));
13395      const gradientValue = gradient || customGradient;
13396      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13397        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13398          className: classes,
13399          style
13400        }),
13401        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13402          "aria-hidden": "true",
13403          className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
13404            'has-background-dim': dimRatio !== undefined,
13405            // For backwards compatibility. Former versions of the Cover Block applied
13406            // `.wp-block-cover__gradient-background` in the presence of
13407            // media, a gradient and a dim.
13408            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
13409            'has-background-gradient': gradientValue,
13410            [gradientClass]: gradientClass
13411          }),
13412          style: bgStyle
13413        }), isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13414          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
13415          alt: alt,
13416          src: url,
13417          style: {
13418            objectPosition
13419          },
13420          "data-object-fit": "cover",
13421          "data-object-position": objectPosition
13422        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13423          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13424          autoPlay: true,
13425          muted: true,
13426          loop: true,
13427          playsInline: true,
13428          src: url,
13429          style: {
13430            objectPosition
13431          },
13432          "data-object-fit": "cover",
13433          "data-object-position": objectPosition
13434        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13435          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
13436            className: 'wp-block-cover__inner-container'
13437          })
13438        })]
13439      });
13440    },
13441    migrate: migrateTag
13442  };
13443  
13444  // v8: deprecated to remove duplicated gradient classes and swap `wp-block-cover__gradient-background` for `wp-block-cover__background`.
13445  const v8 = {
13446    attributes: v8ToV11BlockAttributes,
13447    supports: v7toV11BlockSupports,
13448    save({
13449      attributes
13450    }) {
13451      const {
13452        backgroundType,
13453        gradient,
13454        contentPosition,
13455        customGradient,
13456        customOverlayColor,
13457        dimRatio,
13458        focalPoint,
13459        hasParallax,
13460        isDark,
13461        isRepeated,
13462        overlayColor,
13463        url,
13464        alt,
13465        id,
13466        minHeight: minHeightProp,
13467        minHeightUnit
13468      } = attributes;
13469      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13470      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13471      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13472      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13473      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13474      const isImgElement = !(hasParallax || isRepeated);
13475      const style = {
13476        ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
13477        minHeight: minHeight || undefined
13478      };
13479      const bgStyle = {
13480        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13481        background: customGradient ? customGradient : undefined
13482      };
13483      const objectPosition =
13484      // prettier-ignore
13485      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
13486      const classes = dist_clsx({
13487        'is-light': !isDark,
13488        'has-parallax': hasParallax,
13489        'is-repeated': isRepeated,
13490        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13491      }, getPositionClassName(contentPosition));
13492      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13493        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13494          className: classes,
13495          style
13496        }),
13497        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13498          "aria-hidden": "true",
13499          className: dist_clsx(overlayColorClass, dimRatioToClass(dimRatio), 'wp-block-cover__gradient-background', gradientClass, {
13500            'has-background-dim': dimRatio !== undefined,
13501            'has-background-gradient': gradient || customGradient,
13502            [gradientClass]: !url && gradientClass
13503          }),
13504          style: bgStyle
13505        }), isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13506          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
13507          alt: alt,
13508          src: url,
13509          style: {
13510            objectPosition
13511          },
13512          "data-object-fit": "cover",
13513          "data-object-position": objectPosition
13514        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13515          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13516          autoPlay: true,
13517          muted: true,
13518          loop: true,
13519          playsInline: true,
13520          src: url,
13521          style: {
13522            objectPosition
13523          },
13524          "data-object-fit": "cover",
13525          "data-object-position": objectPosition
13526        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13527          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
13528            className: 'wp-block-cover__inner-container'
13529          })
13530        })]
13531      });
13532    },
13533    migrate: migrateTag
13534  };
13535  const v7 = {
13536    attributes: {
13537      ...deprecated_blockAttributes,
13538      isRepeated: {
13539        type: 'boolean',
13540        default: false
13541      },
13542      minHeight: {
13543        type: 'number'
13544      },
13545      minHeightUnit: {
13546        type: 'string'
13547      },
13548      gradient: {
13549        type: 'string'
13550      },
13551      customGradient: {
13552        type: 'string'
13553      },
13554      contentPosition: {
13555        type: 'string'
13556      },
13557      alt: {
13558        type: 'string',
13559        source: 'attribute',
13560        selector: 'img',
13561        attribute: 'alt',
13562        default: ''
13563      }
13564    },
13565    supports: v7toV11BlockSupports,
13566    save({
13567      attributes
13568    }) {
13569      const {
13570        backgroundType,
13571        gradient,
13572        contentPosition,
13573        customGradient,
13574        customOverlayColor,
13575        dimRatio,
13576        focalPoint,
13577        hasParallax,
13578        isRepeated,
13579        overlayColor,
13580        url,
13581        alt,
13582        id,
13583        minHeight: minHeightProp,
13584        minHeightUnit
13585      } = attributes;
13586      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13587      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13588      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13589      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13590      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13591      const isImgElement = !(hasParallax || isRepeated);
13592      const style = {
13593        ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : {}),
13594        backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
13595        background: customGradient && !url ? customGradient : undefined,
13596        minHeight: minHeight || undefined
13597      };
13598      const objectPosition =
13599      // prettier-ignore
13600      focalPoint && isImgElement ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : undefined;
13601      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13602        'has-background-dim': dimRatio !== 0,
13603        'has-parallax': hasParallax,
13604        'is-repeated': isRepeated,
13605        'has-background-gradient': gradient || customGradient,
13606        [gradientClass]: !url && gradientClass,
13607        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13608      }, getPositionClassName(contentPosition));
13609      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13610        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13611          className: classes,
13612          style
13613        }),
13614        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13615          "aria-hidden": "true",
13616          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13617          style: customGradient ? {
13618            background: customGradient
13619          } : undefined
13620        }), isImageBackground && isImgElement && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
13621          className: dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null),
13622          alt: alt,
13623          src: url,
13624          style: {
13625            objectPosition
13626          },
13627          "data-object-fit": "cover",
13628          "data-object-position": objectPosition
13629        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13630          className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
13631          autoPlay: true,
13632          muted: true,
13633          loop: true,
13634          playsInline: true,
13635          src: url,
13636          style: {
13637            objectPosition
13638          },
13639          "data-object-fit": "cover",
13640          "data-object-position": objectPosition
13641        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13642          className: "wp-block-cover__inner-container",
13643          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13644        })]
13645      });
13646    },
13647    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13648  };
13649  const v6 = {
13650    attributes: {
13651      ...deprecated_blockAttributes,
13652      isRepeated: {
13653        type: 'boolean',
13654        default: false
13655      },
13656      minHeight: {
13657        type: 'number'
13658      },
13659      minHeightUnit: {
13660        type: 'string'
13661      },
13662      gradient: {
13663        type: 'string'
13664      },
13665      customGradient: {
13666        type: 'string'
13667      },
13668      contentPosition: {
13669        type: 'string'
13670      }
13671    },
13672    supports: {
13673      align: true
13674    },
13675    save({
13676      attributes
13677    }) {
13678      const {
13679        backgroundType,
13680        gradient,
13681        contentPosition,
13682        customGradient,
13683        customOverlayColor,
13684        dimRatio,
13685        focalPoint,
13686        hasParallax,
13687        isRepeated,
13688        overlayColor,
13689        url,
13690        minHeight: minHeightProp,
13691        minHeightUnit
13692      } = attributes;
13693      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13694      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13695      const minHeight = minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
13696      const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
13697      const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
13698      const style = isImageBackground ? backgroundImageStyles(url) : {};
13699      const videoStyle = {};
13700      if (!overlayColorClass) {
13701        style.backgroundColor = customOverlayColor;
13702      }
13703      if (customGradient && !url) {
13704        style.background = customGradient;
13705      }
13706      style.minHeight = minHeight || undefined;
13707      let positionValue;
13708      if (focalPoint) {
13709        positionValue = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`;
13710        if (isImageBackground && !hasParallax) {
13711          style.backgroundPosition = positionValue;
13712        }
13713        if (isVideoBackground) {
13714          videoStyle.objectPosition = positionValue;
13715        }
13716      }
13717      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13718        'has-background-dim': dimRatio !== 0,
13719        'has-parallax': hasParallax,
13720        'is-repeated': isRepeated,
13721        'has-background-gradient': gradient || customGradient,
13722        [gradientClass]: !url && gradientClass,
13723        'has-custom-content-position': !isContentPositionCenter(contentPosition)
13724      }, getPositionClassName(contentPosition));
13725      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13726        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
13727          className: classes,
13728          style
13729        }),
13730        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13731          "aria-hidden": "true",
13732          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13733          style: customGradient ? {
13734            background: customGradient
13735          } : undefined
13736        }), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13737          className: "wp-block-cover__video-background",
13738          autoPlay: true,
13739          muted: true,
13740          loop: true,
13741          playsInline: true,
13742          src: url,
13743          style: videoStyle
13744        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13745          className: "wp-block-cover__inner-container",
13746          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13747        })]
13748      });
13749    },
13750    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13751  };
13752  const v5 = {
13753    attributes: {
13754      ...deprecated_blockAttributes,
13755      minHeight: {
13756        type: 'number'
13757      },
13758      gradient: {
13759        type: 'string'
13760      },
13761      customGradient: {
13762        type: 'string'
13763      }
13764    },
13765    supports: {
13766      align: true
13767    },
13768    save({
13769      attributes
13770    }) {
13771      const {
13772        backgroundType,
13773        gradient,
13774        customGradient,
13775        customOverlayColor,
13776        dimRatio,
13777        focalPoint,
13778        hasParallax,
13779        overlayColor,
13780        url,
13781        minHeight
13782      } = attributes;
13783      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13784      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13785      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
13786      if (!overlayColorClass) {
13787        style.backgroundColor = customOverlayColor;
13788      }
13789      if (focalPoint && !hasParallax) {
13790        style.backgroundPosition = `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%`;
13791      }
13792      if (customGradient && !url) {
13793        style.background = customGradient;
13794      }
13795      style.minHeight = minHeight || undefined;
13796      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13797        'has-background-dim': dimRatio !== 0,
13798        'has-parallax': hasParallax,
13799        'has-background-gradient': customGradient,
13800        [gradientClass]: !url && gradientClass
13801      });
13802      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13803        className: classes,
13804        style: style,
13805        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13806          "aria-hidden": "true",
13807          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13808          style: customGradient ? {
13809            background: customGradient
13810          } : undefined
13811        }), VIDEO_BACKGROUND_TYPE === backgroundType && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13812          className: "wp-block-cover__video-background",
13813          autoPlay: true,
13814          muted: true,
13815          loop: true,
13816          src: url
13817        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13818          className: "wp-block-cover__inner-container",
13819          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13820        })]
13821      });
13822    },
13823    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13824  };
13825  const v4 = {
13826    attributes: {
13827      ...deprecated_blockAttributes,
13828      minHeight: {
13829        type: 'number'
13830      },
13831      gradient: {
13832        type: 'string'
13833      },
13834      customGradient: {
13835        type: 'string'
13836      }
13837    },
13838    supports: {
13839      align: true
13840    },
13841    save({
13842      attributes
13843    }) {
13844      const {
13845        backgroundType,
13846        gradient,
13847        customGradient,
13848        customOverlayColor,
13849        dimRatio,
13850        focalPoint,
13851        hasParallax,
13852        overlayColor,
13853        url,
13854        minHeight
13855      } = attributes;
13856      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13857      const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
13858      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
13859      if (!overlayColorClass) {
13860        style.backgroundColor = customOverlayColor;
13861      }
13862      if (focalPoint && !hasParallax) {
13863        style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`;
13864      }
13865      if (customGradient && !url) {
13866        style.background = customGradient;
13867      }
13868      style.minHeight = minHeight || undefined;
13869      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13870        'has-background-dim': dimRatio !== 0,
13871        'has-parallax': hasParallax,
13872        'has-background-gradient': customGradient,
13873        [gradientClass]: !url && gradientClass
13874      });
13875      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13876        className: classes,
13877        style: style,
13878        children: [url && (gradient || customGradient) && dimRatio !== 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
13879          "aria-hidden": "true",
13880          className: dist_clsx('wp-block-cover__gradient-background', gradientClass),
13881          style: customGradient ? {
13882            background: customGradient
13883          } : undefined
13884        }), VIDEO_BACKGROUND_TYPE === backgroundType && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13885          className: "wp-block-cover__video-background",
13886          autoPlay: true,
13887          muted: true,
13888          loop: true,
13889          src: url
13890        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
13891          className: "wp-block-cover__inner-container",
13892          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
13893        })]
13894      });
13895    },
13896    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateDimRatio, migrateTag)
13897  };
13898  const v3 = {
13899    attributes: {
13900      ...deprecated_blockAttributes,
13901      title: {
13902        type: 'string',
13903        source: 'html',
13904        selector: 'p'
13905      },
13906      contentAlign: {
13907        type: 'string',
13908        default: 'center'
13909      }
13910    },
13911    supports: {
13912      align: true
13913    },
13914    save({
13915      attributes
13916    }) {
13917      const {
13918        backgroundType,
13919        contentAlign,
13920        customOverlayColor,
13921        dimRatio,
13922        focalPoint,
13923        hasParallax,
13924        overlayColor,
13925        title,
13926        url
13927      } = attributes;
13928      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
13929      const style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};
13930      if (!overlayColorClass) {
13931        style.backgroundColor = customOverlayColor;
13932      }
13933      if (focalPoint && !hasParallax) {
13934        style.backgroundPosition = `$focalPoint.x * 100}% $focalPoint.y * 100}%`;
13935      }
13936      const classes = dist_clsx(dimRatioToClassV1(dimRatio), overlayColorClass, {
13937        'has-background-dim': dimRatio !== 0,
13938        'has-parallax': hasParallax,
13939        [`has-$contentAlign}-content`]: contentAlign !== 'center'
13940      });
13941      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
13942        className: classes,
13943        style: style,
13944        children: [VIDEO_BACKGROUND_TYPE === backgroundType && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
13945          className: "wp-block-cover__video-background",
13946          autoPlay: true,
13947          muted: true,
13948          loop: true,
13949          src: url
13950        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
13951          tagName: "p",
13952          className: "wp-block-cover-text",
13953          value: title
13954        })]
13955      });
13956    },
13957    migrate(attributes) {
13958      const newAttribs = {
13959        ...attributes,
13960        dimRatio: !attributes.url ? 100 : attributes.dimRatio,
13961        tagName: !attributes.tagName ? 'div' : attributes.tagName
13962      };
13963      const {
13964        title,
13965        contentAlign,
13966        ...restAttributes
13967      } = newAttribs;
13968      return [restAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
13969        content: attributes.title,
13970        align: attributes.contentAlign,
13971        fontSize: 'large',
13972        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
13973      })]];
13974    }
13975  };
13976  const v2 = {
13977    attributes: {
13978      ...deprecated_blockAttributes,
13979      title: {
13980        type: 'string',
13981        source: 'html',
13982        selector: 'p'
13983      },
13984      contentAlign: {
13985        type: 'string',
13986        default: 'center'
13987      },
13988      align: {
13989        type: 'string'
13990      }
13991    },
13992    supports: {
13993      className: false
13994    },
13995    save({
13996      attributes
13997    }) {
13998      const {
13999        url,
14000        title,
14001        hasParallax,
14002        dimRatio,
14003        align,
14004        contentAlign,
14005        overlayColor,
14006        customOverlayColor
14007      } = attributes;
14008      const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
14009      const style = backgroundImageStyles(url);
14010      if (!overlayColorClass) {
14011        style.backgroundColor = customOverlayColor;
14012      }
14013      const classes = dist_clsx('wp-block-cover-image', dimRatioToClassV1(dimRatio), overlayColorClass, {
14014        'has-background-dim': dimRatio !== 0,
14015        'has-parallax': hasParallax,
14016        [`has-$contentAlign}-content`]: contentAlign !== 'center'
14017      }, align ? `align$align}` : null);
14018      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
14019        className: classes,
14020        style: style,
14021        children: !external_wp_blockEditor_namespaceObject.RichText.isEmpty(title) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14022          tagName: "p",
14023          className: "wp-block-cover-image-text",
14024          value: title
14025        })
14026      });
14027    },
14028    migrate(attributes) {
14029      const newAttribs = {
14030        ...attributes,
14031        dimRatio: !attributes.url ? 100 : attributes.dimRatio,
14032        tagName: !attributes.tagName ? 'div' : attributes.tagName
14033      };
14034      const {
14035        title,
14036        contentAlign,
14037        align,
14038        ...restAttributes
14039      } = newAttribs;
14040      return [restAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
14041        content: attributes.title,
14042        align: attributes.contentAlign,
14043        fontSize: 'large',
14044        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
14045      })]];
14046    }
14047  };
14048  const cover_deprecated_v1 = {
14049    attributes: {
14050      ...deprecated_blockAttributes,
14051      title: {
14052        type: 'string',
14053        source: 'html',
14054        selector: 'h2'
14055      },
14056      align: {
14057        type: 'string'
14058      },
14059      contentAlign: {
14060        type: 'string',
14061        default: 'center'
14062      }
14063    },
14064    supports: {
14065      className: false
14066    },
14067    save({
14068      attributes
14069    }) {
14070      const {
14071        url,
14072        title,
14073        hasParallax,
14074        dimRatio,
14075        align
14076      } = attributes;
14077      const style = backgroundImageStyles(url);
14078      const classes = dist_clsx('wp-block-cover-image', dimRatioToClassV1(dimRatio), {
14079        'has-background-dim': dimRatio !== 0,
14080        'has-parallax': hasParallax
14081      }, align ? `align$align}` : null);
14082      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("section", {
14083        className: classes,
14084        style: style,
14085        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
14086          tagName: "h2",
14087          value: title
14088        })
14089      });
14090    },
14091    migrate(attributes) {
14092      const newAttribs = {
14093        ...attributes,
14094        dimRatio: !attributes.url ? 100 : attributes.dimRatio,
14095        tagName: !attributes.tagName ? 'div' : attributes.tagName
14096      };
14097      const {
14098        title,
14099        contentAlign,
14100        align,
14101        ...restAttributes
14102      } = newAttribs;
14103      return [restAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
14104        content: attributes.title,
14105        align: attributes.contentAlign,
14106        fontSize: 'large',
14107        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…')
14108      })]];
14109    }
14110  };
14111  /* harmony default export */ const cover_deprecated = ([v14, v13, deprecated_v12, deprecated_v11, deprecated_v10, v9, v8, v7, v6, v5, v4, v3, v2, cover_deprecated_v1]);
14112  
14113  ;// ./node_modules/@wordpress/block-library/build-module/cover/constants.js
14114  const DEFAULT_MEDIA_SIZE_SLUG = 'full';
14115  
14116  ;// ./node_modules/@wordpress/block-library/build-module/cover/edit/inspector-controls.js
14117  /**
14118   * WordPress dependencies
14119   */
14120  
14121  
14122  
14123  
14124  
14125  
14126  
14127  
14128  /**
14129   * Internal dependencies
14130   */
14131  
14132  
14133  
14134  
14135  
14136  
14137  const {
14138    cleanEmptyObject: inspector_controls_cleanEmptyObject,
14139    ResolutionTool
14140  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
14141  function CoverHeightInput({
14142    onChange,
14143    onUnitChange,
14144    unit = 'px',
14145    value = ''
14146  }) {
14147    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
14148    const inputId = `block-cover-height-input-$instanceId}`;
14149    const isPx = unit === 'px';
14150    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
14151    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
14152      availableUnits: availableUnits || ['px', 'em', 'rem', 'vw', 'vh'],
14153      defaultValues: {
14154        px: 430,
14155        '%': 20,
14156        em: 20,
14157        rem: 20,
14158        vw: 20,
14159        vh: 50
14160      }
14161    });
14162    const handleOnChange = unprocessedValue => {
14163      const inputValue = unprocessedValue !== '' ? parseFloat(unprocessedValue) : undefined;
14164      if (isNaN(inputValue) && inputValue !== undefined) {
14165        return;
14166      }
14167      onChange(inputValue);
14168    };
14169    const computedValue = (0,external_wp_element_namespaceObject.useMemo)(() => {
14170      const [parsedQuantity] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
14171      return [parsedQuantity, unit].join('');
14172    }, [unit, value]);
14173    const min = isPx ? COVER_MIN_HEIGHT : 0;
14174    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
14175      __next40pxDefaultSize: true,
14176      label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'),
14177      id: inputId,
14178      isResetValueOnUnitChange: true,
14179      min: min,
14180      onChange: handleOnChange,
14181      onUnitChange: onUnitChange,
14182      units: units,
14183      value: computedValue
14184    });
14185  }
14186  function CoverInspectorControls({
14187    attributes,
14188    setAttributes,
14189    clientId,
14190    setOverlayColor,
14191    coverRef,
14192    currentSettings,
14193    updateDimRatio,
14194    featuredImage
14195  }) {
14196    const {
14197      useFeaturedImage,
14198      id,
14199      dimRatio,
14200      focalPoint,
14201      hasParallax,
14202      isRepeated,
14203      minHeight,
14204      minHeightUnit,
14205      alt,
14206      tagName
14207    } = attributes;
14208    const {
14209      isVideoBackground,
14210      isImageBackground,
14211      mediaElement,
14212      url,
14213      overlayColor
14214    } = currentSettings;
14215    const sizeSlug = attributes.sizeSlug || DEFAULT_MEDIA_SIZE_SLUG;
14216    const {
14217      gradientValue,
14218      setGradient
14219    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
14220    const {
14221      getSettings
14222    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
14223    const imageSizes = getSettings()?.imageSizes;
14224    const image = (0,external_wp_data_namespaceObject.useSelect)(select => id && isImageBackground ? select(external_wp_coreData_namespaceObject.store).getMedia(id, {
14225      context: 'view'
14226    }) : null, [id, isImageBackground]);
14227    const currentBackgroundImage = useFeaturedImage ? featuredImage : image;
14228    function updateImage(newSizeSlug) {
14229      const newUrl = currentBackgroundImage?.media_details?.sizes?.[newSizeSlug]?.source_url;
14230      if (!newUrl) {
14231        return null;
14232      }
14233      setAttributes({
14234        url: newUrl,
14235        sizeSlug: newSizeSlug
14236      });
14237    }
14238    const imageSizeOptions = imageSizes?.filter(({
14239      slug
14240    }) => currentBackgroundImage?.media_details?.sizes?.[slug]?.source_url)?.map(({
14241      name,
14242      slug
14243    }) => ({
14244      value: slug,
14245      label: name
14246    }));
14247    const toggleParallax = () => {
14248      setAttributes({
14249        hasParallax: !hasParallax,
14250        ...(!hasParallax ? {
14251          focalPoint: undefined
14252        } : {})
14253      });
14254    };
14255    const toggleIsRepeated = () => {
14256      setAttributes({
14257        isRepeated: !isRepeated
14258      });
14259    };
14260    const showFocalPointPicker = isVideoBackground || isImageBackground && (!hasParallax || isRepeated);
14261    const imperativeFocalPointPreview = value => {
14262      const [styleOfRef, property] = mediaElement.current ? [mediaElement.current.style, 'objectPosition'] : [coverRef.current.style, 'backgroundPosition'];
14263      styleOfRef[property] = mediaPosition(value);
14264    };
14265    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
14266    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
14267    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
14268      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
14269        children: !!url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
14270          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
14271          resetAll: () => {
14272            setAttributes({
14273              hasParallax: false,
14274              focalPoint: undefined,
14275              isRepeated: false,
14276              alt: '',
14277              sizeSlug: undefined
14278            });
14279          },
14280          dropdownMenuProps: dropdownMenuProps,
14281          children: [isImageBackground && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
14282            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
14283              label: (0,external_wp_i18n_namespaceObject.__)('Fixed background'),
14284              isShownByDefault: true,
14285              hasValue: () => hasParallax,
14286              onDeselect: () => setAttributes({
14287                hasParallax: false,
14288                focalPoint: undefined
14289              }),
14290              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
14291                __nextHasNoMarginBottom: true,
14292                label: (0,external_wp_i18n_namespaceObject.__)('Fixed background'),
14293                checked: hasParallax,
14294                onChange: toggleParallax
14295              })
14296            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
14297              label: (0,external_wp_i18n_namespaceObject.__)('Repeated background'),
14298              isShownByDefault: true,
14299              hasValue: () => isRepeated,
14300              onDeselect: () => setAttributes({
14301                isRepeated: false
14302              }),
14303              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
14304                __nextHasNoMarginBottom: true,
14305                label: (0,external_wp_i18n_namespaceObject.__)('Repeated background'),
14306                checked: isRepeated,
14307                onChange: toggleIsRepeated
14308              })
14309            })]
14310          }), showFocalPointPicker && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
14311            label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
14312            isShownByDefault: true,
14313            hasValue: () => !!focalPoint,
14314            onDeselect: () => setAttributes({
14315              focalPoint: undefined
14316            }),
14317            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FocalPointPicker, {
14318              __nextHasNoMarginBottom: true,
14319              label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
14320              url: url,
14321              value: focalPoint,
14322              onDragStart: imperativeFocalPointPreview,
14323              onDrag: imperativeFocalPointPreview,
14324              onChange: newFocalPoint => setAttributes({
14325                focalPoint: newFocalPoint
14326              })
14327            })
14328          }), !useFeaturedImage && url && !isVideoBackground && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
14329            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
14330            isShownByDefault: true,
14331            hasValue: () => !!alt,
14332            onDeselect: () => setAttributes({
14333              alt: ''
14334            }),
14335            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
14336              __nextHasNoMarginBottom: true,
14337              label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
14338              value: alt,
14339              onChange: newAlt => setAttributes({
14340                alt: newAlt
14341              }),
14342              help: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
14343                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
14344                  href:
14345                  // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
14346                  (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
14347                  children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
14348                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
14349              })
14350            })
14351          }), !!imageSizeOptions?.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResolutionTool, {
14352            value: sizeSlug,
14353            onChange: updateImage,
14354            options: imageSizeOptions,
14355            defaultValue: DEFAULT_MEDIA_SIZE_SLUG
14356          })]
14357        })
14358      }), colorGradientSettings.hasColorsOrGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
14359        group: "color",
14360        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
14361          __experimentalIsRenderedInSidebar: true,
14362          settings: [{
14363            colorValue: overlayColor.color,
14364            gradientValue,
14365            label: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
14366            onColorChange: setOverlayColor,
14367            onGradientChange: setGradient,
14368            isShownByDefault: true,
14369            resetAllFilter: () => ({
14370              overlayColor: undefined,
14371              customOverlayColor: undefined,
14372              gradient: undefined,
14373              customGradient: undefined
14374            }),
14375            clearable: true
14376          }],
14377          panelId: clientId,
14378          ...colorGradientSettings
14379        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
14380          hasValue: () => {
14381            // If there's a media background the dimRatio will be
14382            // defaulted to 50 whereas it will be 100 for colors.
14383            return dimRatio === undefined ? false : dimRatio !== (url ? 50 : 100);
14384          },
14385          label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
14386          onDeselect: () => updateDimRatio(url ? 50 : 100),
14387          resetAllFilter: () => ({
14388            dimRatio: url ? 50 : 100
14389          }),
14390          isShownByDefault: true,
14391          panelId: clientId,
14392          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
14393            __nextHasNoMarginBottom: true,
14394            label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
14395            value: dimRatio,
14396            onChange: newDimRatio => updateDimRatio(newDimRatio),
14397            min: 0,
14398            max: 100,
14399            step: 10,
14400            required: true,
14401            __next40pxDefaultSize: true
14402          })
14403        })]
14404      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
14405        group: "dimensions",
14406        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
14407          className: "single-column",
14408          hasValue: () => !!minHeight,
14409          label: (0,external_wp_i18n_namespaceObject.__)('Minimum height'),
14410          onDeselect: () => setAttributes({
14411            minHeight: undefined,
14412            minHeightUnit: undefined
14413          }),
14414          resetAllFilter: () => ({
14415            minHeight: undefined,
14416            minHeightUnit: undefined
14417          }),
14418          isShownByDefault: true,
14419          panelId: clientId,
14420          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverHeightInput, {
14421            value: attributes?.style?.dimensions?.aspectRatio ? '' : minHeight,
14422            unit: minHeightUnit,
14423            onChange: newMinHeight => setAttributes({
14424              minHeight: newMinHeight,
14425              style: inspector_controls_cleanEmptyObject({
14426                ...attributes?.style,
14427                dimensions: {
14428                  ...attributes?.style?.dimensions,
14429                  aspectRatio: undefined // Reset aspect ratio when minHeight is set.
14430                }
14431              })
14432            }),
14433            onUnitChange: nextUnit => setAttributes({
14434              minHeightUnit: nextUnit
14435            })
14436          })
14437        })
14438      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
14439        group: "advanced",
14440        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
14441          __nextHasNoMarginBottom: true,
14442          __next40pxDefaultSize: true,
14443          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
14444          options: [{
14445            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
14446            value: 'div'
14447          }, {
14448            label: '<header>',
14449            value: 'header'
14450          }, {
14451            label: '<main>',
14452            value: 'main'
14453          }, {
14454            label: '<section>',
14455            value: 'section'
14456          }, {
14457            label: '<article>',
14458            value: 'article'
14459          }, {
14460            label: '<aside>',
14461            value: 'aside'
14462          }, {
14463            label: '<footer>',
14464            value: 'footer'
14465          }],
14466          value: tagName,
14467          onChange: value => setAttributes({
14468            tagName: value
14469          }),
14470          help: htmlElementMessages[tagName]
14471        })
14472      })]
14473    });
14474  }
14475  
14476  ;// ./node_modules/@wordpress/block-library/build-module/cover/edit/block-controls.js
14477  /**
14478   * WordPress dependencies
14479   */
14480  
14481  
14482  
14483  
14484  /**
14485   * Internal dependencies
14486   */
14487  
14488  
14489  
14490  const {
14491    cleanEmptyObject: block_controls_cleanEmptyObject
14492  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
14493  function CoverBlockControls({
14494    attributes,
14495    setAttributes,
14496    onSelectMedia,
14497    currentSettings,
14498    toggleUseFeaturedImage,
14499    onClearMedia
14500  }) {
14501    const {
14502      contentPosition,
14503      id,
14504      useFeaturedImage,
14505      minHeight,
14506      minHeightUnit
14507    } = attributes;
14508    const {
14509      hasInnerBlocks,
14510      url
14511    } = currentSettings;
14512    const [prevMinHeightValue, setPrevMinHeightValue] = (0,external_wp_element_namespaceObject.useState)(minHeight);
14513    const [prevMinHeightUnit, setPrevMinHeightUnit] = (0,external_wp_element_namespaceObject.useState)(minHeightUnit);
14514    const isMinFullHeight = minHeightUnit === 'vh' && minHeight === 100 && !attributes?.style?.dimensions?.aspectRatio;
14515    const toggleMinFullHeight = () => {
14516      if (isMinFullHeight) {
14517        // If there aren't previous values, take the default ones.
14518        if (prevMinHeightUnit === 'vh' && prevMinHeightValue === 100) {
14519          return setAttributes({
14520            minHeight: undefined,
14521            minHeightUnit: undefined
14522          });
14523        }
14524  
14525        // Set the previous values of height.
14526        return setAttributes({
14527          minHeight: prevMinHeightValue,
14528          minHeightUnit: prevMinHeightUnit
14529        });
14530      }
14531      setPrevMinHeightValue(minHeight);
14532      setPrevMinHeightUnit(minHeightUnit);
14533  
14534      // Set full height, and clear any aspect ratio value.
14535      return setAttributes({
14536        minHeight: 100,
14537        minHeightUnit: 'vh',
14538        style: block_controls_cleanEmptyObject({
14539          ...attributes?.style,
14540          dimensions: {
14541            ...attributes?.style?.dimensions,
14542            aspectRatio: undefined // Reset aspect ratio when minHeight is set.
14543          }
14544        })
14545      });
14546    };
14547    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
14548      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
14549        group: "block",
14550        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockAlignmentMatrixControl, {
14551          label: (0,external_wp_i18n_namespaceObject.__)('Change content position'),
14552          value: contentPosition,
14553          onChange: nextPosition => setAttributes({
14554            contentPosition: nextPosition
14555          }),
14556          isDisabled: !hasInnerBlocks
14557        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockFullHeightAligmentControl, {
14558          isActive: isMinFullHeight,
14559          onToggle: toggleMinFullHeight,
14560          isDisabled: !hasInnerBlocks
14561        })]
14562      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
14563        group: "other",
14564        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
14565          mediaId: id,
14566          mediaURL: url,
14567          allowedTypes: shared_ALLOWED_MEDIA_TYPES,
14568          accept: "image/*,video/*",
14569          onSelect: onSelectMedia,
14570          onToggleFeaturedImage: toggleUseFeaturedImage,
14571          useFeaturedImage: useFeaturedImage,
14572          name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add media') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
14573          onReset: onClearMedia
14574        })
14575      })]
14576    });
14577  }
14578  
14579  ;// ./node_modules/@wordpress/block-library/build-module/cover/edit/cover-placeholder.js
14580  /**
14581   * WordPress dependencies
14582   */
14583  
14584  
14585  
14586  
14587  /**
14588   * Internal dependencies
14589   */
14590  
14591  
14592  function CoverPlaceholder({
14593    disableMediaButtons = false,
14594    children,
14595    onSelectMedia,
14596    onError,
14597    style,
14598    toggleUseFeaturedImage
14599  }) {
14600    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
14601      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
14602        icon: library_cover
14603      }),
14604      labels: {
14605        title: (0,external_wp_i18n_namespaceObject.__)('Cover')
14606      },
14607      onSelect: onSelectMedia,
14608      accept: "image/*,video/*",
14609      allowedTypes: shared_ALLOWED_MEDIA_TYPES,
14610      disableMediaButtons: disableMediaButtons,
14611      onToggleFeaturedImage: toggleUseFeaturedImage,
14612      onError: onError,
14613      style: style,
14614      children: children
14615    });
14616  }
14617  
14618  ;// ./node_modules/@wordpress/block-library/build-module/cover/edit/resizable-cover-popover.js
14619  /**
14620   * External dependencies
14621   */
14622  
14623  
14624  /**
14625   * WordPress dependencies
14626   */
14627  
14628  
14629  
14630  /**
14631   * Internal dependencies
14632   */
14633  
14634  
14635  const RESIZABLE_BOX_ENABLE_OPTION = {
14636    top: false,
14637    right: false,
14638    bottom: true,
14639    left: false,
14640    topRight: false,
14641    bottomRight: false,
14642    bottomLeft: false,
14643    topLeft: false
14644  };
14645  const {
14646    ResizableBoxPopover
14647  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
14648  function ResizableCoverPopover({
14649    className,
14650    height,
14651    minHeight,
14652    onResize,
14653    onResizeStart,
14654    onResizeStop,
14655    showHandle,
14656    size,
14657    width,
14658    ...props
14659  }) {
14660    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
14661    const resizableBoxProps = {
14662      className: dist_clsx(className, {
14663        'is-resizing': isResizing
14664      }),
14665      enable: RESIZABLE_BOX_ENABLE_OPTION,
14666      onResizeStart: (_event, _direction, elt) => {
14667        onResizeStart(elt.clientHeight);
14668        onResize(elt.clientHeight);
14669      },
14670      onResize: (_event, _direction, elt) => {
14671        onResize(elt.clientHeight);
14672        if (!isResizing) {
14673          setIsResizing(true);
14674        }
14675      },
14676      onResizeStop: (_event, _direction, elt) => {
14677        onResizeStop(elt.clientHeight);
14678        setIsResizing(false);
14679      },
14680      showHandle,
14681      size,
14682      __experimentalShowTooltip: true,
14683      __experimentalTooltipProps: {
14684        axis: 'y',
14685        position: 'bottom',
14686        isVisible: isResizing
14687      }
14688    };
14689    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableBoxPopover, {
14690      className: "block-library-cover__resizable-box-popover",
14691      resizableBoxProps: resizableBoxProps,
14692      ...props
14693    });
14694  }
14695  
14696  ;// ./node_modules/colord/index.mjs
14697  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()})};
14698  
14699  ;// ./node_modules/colord/plugins/names.mjs
14700  /* 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"])}
14701  
14702  ;// ./node_modules/fast-average-color/dist/index.esm.js
14703  /*! Fast Average Color | © 2022 Denis Seleznev | MIT License | https://github.com/fast-average-color/fast-average-color */
14704  function toHex(num) {
14705      var str = num.toString(16);
14706      return str.length === 1 ? '0' + str : str;
14707  }
14708  function arrayToHex(arr) {
14709      return '#' + arr.map(toHex).join('');
14710  }
14711  function isDark(color) {
14712      // http://www.w3.org/TR/AERT#color-contrast
14713      var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000;
14714      return result < 128;
14715  }
14716  function prepareIgnoredColor(color) {
14717      if (!color) {
14718          return [];
14719      }
14720      return isRGBArray(color) ? color : [color];
14721  }
14722  function isRGBArray(value) {
14723      return Array.isArray(value[0]);
14724  }
14725  function isIgnoredColor(data, index, ignoredColor) {
14726      for (var i = 0; i < ignoredColor.length; i++) {
14727          if (isIgnoredColorAsNumbers(data, index, ignoredColor[i])) {
14728              return true;
14729          }
14730      }
14731      return false;
14732  }
14733  function isIgnoredColorAsNumbers(data, index, ignoredColor) {
14734      switch (ignoredColor.length) {
14735          case 3:
14736              // [red, green, blue]
14737              if (isIgnoredRGBColor(data, index, ignoredColor)) {
14738                  return true;
14739              }
14740              break;
14741          case 4:
14742              // [red, green, blue, alpha]
14743              if (isIgnoredRGBAColor(data, index, ignoredColor)) {
14744                  return true;
14745              }
14746              break;
14747          case 5:
14748              // [red, green, blue, alpha, threshold]
14749              if (isIgnoredRGBAColorWithThreshold(data, index, ignoredColor)) {
14750                  return true;
14751              }
14752              break;
14753          default:
14754              return false;
14755      }
14756  }
14757  function isIgnoredRGBColor(data, index, ignoredColor) {
14758      // Ignore if the pixel are transparent.
14759      if (data[index + 3] !== 255) {
14760          return true;
14761      }
14762      if (data[index] === ignoredColor[0] &&
14763          data[index + 1] === ignoredColor[1] &&
14764          data[index + 2] === ignoredColor[2]) {
14765          return true;
14766      }
14767      return false;
14768  }
14769  function isIgnoredRGBAColor(data, index, ignoredColor) {
14770      if (data[index + 3] && ignoredColor[3]) {
14771          return data[index] === ignoredColor[0] &&
14772              data[index + 1] === ignoredColor[1] &&
14773              data[index + 2] === ignoredColor[2] &&
14774              data[index + 3] === ignoredColor[3];
14775      }
14776      // Ignore rgb components if the pixel are fully transparent.
14777      return data[index + 3] === ignoredColor[3];
14778  }
14779  function inRange(colorComponent, ignoredColorComponent, value) {
14780      return colorComponent >= (ignoredColorComponent - value) &&
14781          colorComponent <= (ignoredColorComponent + value);
14782  }
14783  function isIgnoredRGBAColorWithThreshold(data, index, ignoredColor) {
14784      var redIgnored = ignoredColor[0];
14785      var greenIgnored = ignoredColor[1];
14786      var blueIgnored = ignoredColor[2];
14787      var alphaIgnored = ignoredColor[3];
14788      var threshold = ignoredColor[4];
14789      var alphaData = data[index + 3];
14790      var alphaInRange = inRange(alphaData, alphaIgnored, threshold);
14791      if (!alphaIgnored) {
14792          return alphaInRange;
14793      }
14794      if (!alphaData && alphaInRange) {
14795          return true;
14796      }
14797      if (inRange(data[index], redIgnored, threshold) &&
14798          inRange(data[index + 1], greenIgnored, threshold) &&
14799          inRange(data[index + 2], blueIgnored, threshold) &&
14800          alphaInRange) {
14801          return true;
14802      }
14803      return false;
14804  }
14805  
14806  function dominantAlgorithm(arr, len, options) {
14807      var colorHash = {};
14808      var divider = 24;
14809      var ignoredColor = options.ignoredColor;
14810      var step = options.step;
14811      var max = [0, 0, 0, 0, 0];
14812      for (var i = 0; i < len; i += step) {
14813          var red = arr[i];
14814          var green = arr[i + 1];
14815          var blue = arr[i + 2];
14816          var alpha = arr[i + 3];
14817          if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {
14818              continue;
14819          }
14820          var key = Math.round(red / divider) + ',' +
14821              Math.round(green / divider) + ',' +
14822              Math.round(blue / divider);
14823          if (colorHash[key]) {
14824              colorHash[key] = [
14825                  colorHash[key][0] + red * alpha,
14826                  colorHash[key][1] + green * alpha,
14827                  colorHash[key][2] + blue * alpha,
14828                  colorHash[key][3] + alpha,
14829                  colorHash[key][4] + 1
14830              ];
14831          }
14832          else {
14833              colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1];
14834          }
14835          if (max[4] < colorHash[key][4]) {
14836              max = colorHash[key];
14837          }
14838      }
14839      var redTotal = max[0];
14840      var greenTotal = max[1];
14841      var blueTotal = max[2];
14842      var alphaTotal = max[3];
14843      var count = max[4];
14844      return alphaTotal ? [
14845          Math.round(redTotal / alphaTotal),
14846          Math.round(greenTotal / alphaTotal),
14847          Math.round(blueTotal / alphaTotal),
14848          Math.round(alphaTotal / count)
14849      ] : options.defaultColor;
14850  }
14851  
14852  function simpleAlgorithm(arr, len, options) {
14853      var redTotal = 0;
14854      var greenTotal = 0;
14855      var blueTotal = 0;
14856      var alphaTotal = 0;
14857      var count = 0;
14858      var ignoredColor = options.ignoredColor;
14859      var step = options.step;
14860      for (var i = 0; i < len; i += step) {
14861          var alpha = arr[i + 3];
14862          var red = arr[i] * alpha;
14863          var green = arr[i + 1] * alpha;
14864          var blue = arr[i + 2] * alpha;
14865          if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {
14866              continue;
14867          }
14868          redTotal += red;
14869          greenTotal += green;
14870          blueTotal += blue;
14871          alphaTotal += alpha;
14872          count++;
14873      }
14874      return alphaTotal ? [
14875          Math.round(redTotal / alphaTotal),
14876          Math.round(greenTotal / alphaTotal),
14877          Math.round(blueTotal / alphaTotal),
14878          Math.round(alphaTotal / count)
14879      ] : options.defaultColor;
14880  }
14881  
14882  function sqrtAlgorithm(arr, len, options) {
14883      var redTotal = 0;
14884      var greenTotal = 0;
14885      var blueTotal = 0;
14886      var alphaTotal = 0;
14887      var count = 0;
14888      var ignoredColor = options.ignoredColor;
14889      var step = options.step;
14890      for (var i = 0; i < len; i += step) {
14891          var red = arr[i];
14892          var green = arr[i + 1];
14893          var blue = arr[i + 2];
14894          var alpha = arr[i + 3];
14895          if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {
14896              continue;
14897          }
14898          redTotal += red * red * alpha;
14899          greenTotal += green * green * alpha;
14900          blueTotal += blue * blue * alpha;
14901          alphaTotal += alpha;
14902          count++;
14903      }
14904      return alphaTotal ? [
14905          Math.round(Math.sqrt(redTotal / alphaTotal)),
14906          Math.round(Math.sqrt(greenTotal / alphaTotal)),
14907          Math.round(Math.sqrt(blueTotal / alphaTotal)),
14908          Math.round(alphaTotal / count)
14909      ] : options.defaultColor;
14910  }
14911  
14912  function getDefaultColor(options) {
14913      return getOption(options, 'defaultColor', [0, 0, 0, 0]);
14914  }
14915  function getOption(options, name, defaultValue) {
14916      return (options[name] === undefined ? defaultValue : options[name]);
14917  }
14918  
14919  var MIN_SIZE = 10;
14920  var MAX_SIZE = 100;
14921  function isSvg(filename) {
14922      return filename.search(/\.svg(\?|$)/i) !== -1;
14923  }
14924  function getOriginalSize(resource) {
14925      if (isInstanceOfHTMLImageElement(resource)) {
14926          var width = resource.naturalWidth;
14927          var height = resource.naturalHeight;
14928          // For SVG images with only viewBox attribute
14929          if (!resource.naturalWidth && isSvg(resource.src)) {
14930              width = height = MAX_SIZE;
14931          }
14932          return {
14933              width: width,
14934              height: height,
14935          };
14936      }
14937      if (isInstanceOfHTMLVideoElement(resource)) {
14938          return {
14939              width: resource.videoWidth,
14940              height: resource.videoHeight
14941          };
14942      }
14943      return {
14944          width: resource.width,
14945          height: resource.height
14946      };
14947  }
14948  function getSrc(resource) {
14949      if (isInstanceOfHTMLCanvasElement(resource)) {
14950          return 'canvas';
14951      }
14952      if (isInstanceOfOffscreenCanvas(resource)) {
14953          return 'offscreencanvas';
14954      }
14955      if (isInstanceOfImageBitmap(resource)) {
14956          return 'imagebitmap';
14957      }
14958      return resource.src;
14959  }
14960  function isInstanceOfHTMLImageElement(resource) {
14961      return typeof HTMLImageElement !== 'undefined' && resource instanceof HTMLImageElement;
14962  }
14963  var hasOffscreenCanvas = typeof OffscreenCanvas !== 'undefined';
14964  function isInstanceOfOffscreenCanvas(resource) {
14965      return hasOffscreenCanvas && resource instanceof OffscreenCanvas;
14966  }
14967  function isInstanceOfHTMLVideoElement(resource) {
14968      return typeof HTMLVideoElement !== 'undefined' && resource instanceof HTMLVideoElement;
14969  }
14970  function isInstanceOfHTMLCanvasElement(resource) {
14971      return typeof HTMLCanvasElement !== 'undefined' && resource instanceof HTMLCanvasElement;
14972  }
14973  function isInstanceOfImageBitmap(resource) {
14974      return typeof ImageBitmap !== 'undefined' && resource instanceof ImageBitmap;
14975  }
14976  function prepareSizeAndPosition(originalSize, options) {
14977      var srcLeft = getOption(options, 'left', 0);
14978      var srcTop = getOption(options, 'top', 0);
14979      var srcWidth = getOption(options, 'width', originalSize.width);
14980      var srcHeight = getOption(options, 'height', originalSize.height);
14981      var destWidth = srcWidth;
14982      var destHeight = srcHeight;
14983      if (options.mode === 'precision') {
14984          return {
14985              srcLeft: srcLeft,
14986              srcTop: srcTop,
14987              srcWidth: srcWidth,
14988              srcHeight: srcHeight,
14989              destWidth: destWidth,
14990              destHeight: destHeight
14991          };
14992      }
14993      var factor;
14994      if (srcWidth > srcHeight) {
14995          factor = srcWidth / srcHeight;
14996          destWidth = MAX_SIZE;
14997          destHeight = Math.round(destWidth / factor);
14998      }
14999      else {
15000          factor = srcHeight / srcWidth;
15001          destHeight = MAX_SIZE;
15002          destWidth = Math.round(destHeight / factor);
15003      }
15004      if (destWidth > srcWidth || destHeight > srcHeight ||
15005          destWidth < MIN_SIZE || destHeight < MIN_SIZE) {
15006          destWidth = srcWidth;
15007          destHeight = srcHeight;
15008      }
15009      return {
15010          srcLeft: srcLeft,
15011          srcTop: srcTop,
15012          srcWidth: srcWidth,
15013          srcHeight: srcHeight,
15014          destWidth: destWidth,
15015          destHeight: destHeight
15016      };
15017  }
15018  var isWebWorkers = typeof window === 'undefined';
15019  function makeCanvas() {
15020      if (isWebWorkers) {
15021          return hasOffscreenCanvas ? new OffscreenCanvas(1, 1) : null;
15022      }
15023      return document.createElement('canvas');
15024  }
15025  
15026  var ERROR_PREFIX = 'FastAverageColor: ';
15027  function getError(message) {
15028      return Error(ERROR_PREFIX + message);
15029  }
15030  function outputError(error, silent) {
15031      if (!silent) {
15032          console.error(error);
15033      }
15034  }
15035  
15036  var FastAverageColor = /** @class */ (function () {
15037      function FastAverageColor() {
15038          this.canvas = null;
15039          this.ctx = null;
15040      }
15041      /**
15042       * Get asynchronously the average color from not loaded image.
15043       */
15044      FastAverageColor.prototype.getColorAsync = function (resource, options) {
15045          if (!resource) {
15046              return Promise.reject(getError('call .getColorAsync() without resource.'));
15047          }
15048          if (typeof resource === 'string') {
15049              // Web workers
15050              if (typeof Image === 'undefined') {
15051                  return Promise.reject(getError('resource as string is not supported in this environment'));
15052              }
15053              var img = new Image();
15054              img.crossOrigin = options && options.crossOrigin || '';
15055              img.src = resource;
15056              return this.bindImageEvents(img, options);
15057          }
15058          else if (isInstanceOfHTMLImageElement(resource) && !resource.complete) {
15059              return this.bindImageEvents(resource, options);
15060          }
15061          else {
15062              var result = this.getColor(resource, options);
15063              return result.error ? Promise.reject(result.error) : Promise.resolve(result);
15064          }
15065      };
15066      /**
15067       * Get the average color from images, videos and canvas.
15068       */
15069      FastAverageColor.prototype.getColor = function (resource, options) {
15070          options = options || {};
15071          var defaultColor = getDefaultColor(options);
15072          if (!resource) {
15073              var error = getError('call .getColor(null) without resource');
15074              outputError(error, options.silent);
15075              return this.prepareResult(defaultColor, error);
15076          }
15077          var originalSize = getOriginalSize(resource);
15078          var size = prepareSizeAndPosition(originalSize, options);
15079          if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) {
15080              var error = getError("incorrect sizes for resource \"".concat(getSrc(resource), "\""));
15081              outputError(error, options.silent);
15082              return this.prepareResult(defaultColor, error);
15083          }
15084          if (!this.canvas) {
15085              this.canvas = makeCanvas();
15086              if (!this.canvas) {
15087                  var error = getError('OffscreenCanvas is not supported in this browser');
15088                  outputError(error, options.silent);
15089                  return this.prepareResult(defaultColor, error);
15090              }
15091          }
15092          if (!this.ctx) {
15093              this.ctx = this.canvas.getContext('2d', { willReadFrequently: true });
15094              if (!this.ctx) {
15095                  var error = getError('Canvas Context 2D is not supported in this browser');
15096                  outputError(error, options.silent);
15097                  return this.prepareResult(defaultColor);
15098              }
15099              this.ctx.imageSmoothingEnabled = false;
15100          }
15101          this.canvas.width = size.destWidth;
15102          this.canvas.height = size.destHeight;
15103          try {
15104              this.ctx.clearRect(0, 0, size.destWidth, size.destHeight);
15105              this.ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight);
15106              var bitmapData = this.ctx.getImageData(0, 0, size.destWidth, size.destHeight).data;
15107              return this.prepareResult(this.getColorFromArray4(bitmapData, options));
15108          }
15109          catch (originalError) {
15110              var error = getError("security error (CORS) for resource ".concat(getSrc(resource), ".\nDetails: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image"));
15111              outputError(error, options.silent);
15112              !options.silent && console.error(originalError);
15113              return this.prepareResult(defaultColor, error);
15114          }
15115      };
15116      /**
15117       * Get the average color from a array when 1 pixel is 4 bytes.
15118       */
15119      FastAverageColor.prototype.getColorFromArray4 = function (arr, options) {
15120          options = options || {};
15121          var bytesPerPixel = 4;
15122          var arrLength = arr.length;
15123          var defaultColor = getDefaultColor(options);
15124          if (arrLength < bytesPerPixel) {
15125              return defaultColor;
15126          }
15127          var len = arrLength - arrLength % bytesPerPixel;
15128          var step = (options.step || 1) * bytesPerPixel;
15129          var algorithm;
15130          switch (options.algorithm || 'sqrt') {
15131              case 'simple':
15132                  algorithm = simpleAlgorithm;
15133                  break;
15134              case 'sqrt':
15135                  algorithm = sqrtAlgorithm;
15136                  break;
15137              case 'dominant':
15138                  algorithm = dominantAlgorithm;
15139                  break;
15140              default:
15141                  throw getError("".concat(options.algorithm, " is unknown algorithm"));
15142          }
15143          return algorithm(arr, len, {
15144              defaultColor: defaultColor,
15145              ignoredColor: prepareIgnoredColor(options.ignoredColor),
15146              step: step
15147          });
15148      };
15149      /**
15150       * Get color data from value ([r, g, b, a]).
15151       */
15152      FastAverageColor.prototype.prepareResult = function (value, error) {
15153          var rgb = value.slice(0, 3);
15154          var rgba = [value[0], value[1], value[2], value[3] / 255];
15155          var isDarkColor = isDark(value);
15156          return {
15157              value: [value[0], value[1], value[2], value[3]],
15158              rgb: 'rgb(' + rgb.join(',') + ')',
15159              rgba: 'rgba(' + rgba.join(',') + ')',
15160              hex: arrayToHex(rgb),
15161              hexa: arrayToHex(value),
15162              isDark: isDarkColor,
15163              isLight: !isDarkColor,
15164              error: error,
15165          };
15166      };
15167      /**
15168       * Destroy the instance.
15169       */
15170      FastAverageColor.prototype.destroy = function () {
15171          if (this.canvas) {
15172              this.canvas.width = 1;
15173              this.canvas.height = 1;
15174              this.canvas = null;
15175          }
15176          this.ctx = null;
15177      };
15178      FastAverageColor.prototype.bindImageEvents = function (resource, options) {
15179          var _this = this;
15180          return new Promise(function (resolve, reject) {
15181              var onload = function () {
15182                  unbindEvents();
15183                  var result = _this.getColor(resource, options);
15184                  if (result.error) {
15185                      reject(result.error);
15186                  }
15187                  else {
15188                      resolve(result);
15189                  }
15190              };
15191              var onerror = function () {
15192                  unbindEvents();
15193                  reject(getError("Error loading image \"".concat(resource.src, "\".")));
15194              };
15195              var onabort = function () {
15196                  unbindEvents();
15197                  reject(getError("Image \"".concat(resource.src, "\" loading aborted")));
15198              };
15199              var unbindEvents = function () {
15200                  resource.removeEventListener('load', onload);
15201                  resource.removeEventListener('error', onerror);
15202                  resource.removeEventListener('abort', onabort);
15203              };
15204              resource.addEventListener('load', onload);
15205              resource.addEventListener('error', onerror);
15206              resource.addEventListener('abort', onabort);
15207          });
15208      };
15209      return FastAverageColor;
15210  }());
15211  
15212  
15213  
15214  ;// external ["wp","hooks"]
15215  const external_wp_hooks_namespaceObject = window["wp"]["hooks"];
15216  ;// ./node_modules/@wordpress/block-library/build-module/cover/edit/color-utils.js
15217  /**
15218   * External dependencies
15219   */
15220  
15221  
15222  
15223  
15224  
15225  /**
15226   * WordPress dependencies
15227   */
15228  
15229  
15230  /**
15231   * @typedef {import('colord').RgbaColor} RgbaColor
15232   */
15233  
15234  k([names]);
15235  
15236  /**
15237   * Fallback color when the average color can't be computed. The image may be
15238   * rendering as transparent, and most sites have a light color background.
15239   */
15240  const DEFAULT_BACKGROUND_COLOR = '#FFF';
15241  
15242  /**
15243   * Default dim color specified in style.css.
15244   */
15245  const DEFAULT_OVERLAY_COLOR = '#000';
15246  
15247  /**
15248   * Performs a Porter Duff composite source over operation on two rgba colors.
15249   *
15250   * @see {@link https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators_srcover}
15251   *
15252   * @param {RgbaColor} source Source color.
15253   * @param {RgbaColor} dest   Destination color.
15254   *
15255   * @return {RgbaColor} Composite color.
15256   */
15257  function compositeSourceOver(source, dest) {
15258    return {
15259      r: source.r * source.a + dest.r * dest.a * (1 - source.a),
15260      g: source.g * source.a + dest.g * dest.a * (1 - source.a),
15261      b: source.b * source.a + dest.b * dest.a * (1 - source.a),
15262      a: source.a + dest.a * (1 - source.a)
15263    };
15264  }
15265  
15266  /**
15267   * Retrieves the FastAverageColor singleton.
15268   *
15269   * @return {FastAverageColor} The FastAverageColor singleton.
15270   */
15271  function retrieveFastAverageColor() {
15272    if (!retrieveFastAverageColor.fastAverageColor) {
15273      retrieveFastAverageColor.fastAverageColor = new FastAverageColor();
15274    }
15275    return retrieveFastAverageColor.fastAverageColor;
15276  }
15277  
15278  /**
15279   * Computes the average color of an image.
15280   *
15281   * @param {string} url The url of the image.
15282   *
15283   * @return {Promise<string>} Promise of an average color as a hex string.
15284   */
15285  const getMediaColor = memize(async url => {
15286    if (!url) {
15287      return DEFAULT_BACKGROUND_COLOR;
15288    }
15289  
15290    // making the default color rgb for compat with FAC
15291    const {
15292      r,
15293      g,
15294      b,
15295      a
15296    } = w(DEFAULT_BACKGROUND_COLOR).toRgb();
15297    try {
15298      const imgCrossOrigin = (0,external_wp_hooks_namespaceObject.applyFilters)('media.crossOrigin', undefined, url);
15299      const color = await retrieveFastAverageColor().getColorAsync(url, {
15300        // The default color is white, which is the color
15301        // that is returned if there's an error.
15302        // colord returns alpga 0-1, FAC needs 0-255
15303        defaultColor: [r, g, b, a * 255],
15304        // Errors that come up don't reject the promise,
15305        // so error logging has to be silenced
15306        // with this option.
15307        silent: "production" === 'production',
15308        crossOrigin: imgCrossOrigin
15309      });
15310      return color.hex;
15311    } catch (error) {
15312      // If there's an error return the fallback color.
15313      return DEFAULT_BACKGROUND_COLOR;
15314    }
15315  });
15316  
15317  /**
15318   * Computes if the color combination of the overlay and background color is dark.
15319   *
15320   * @param {number} dimRatio        Opacity of the overlay between 0 and 100.
15321   * @param {string} overlayColor    CSS color string for the overlay.
15322   * @param {string} backgroundColor CSS color string for the background.
15323   *
15324   * @return {boolean} true if the color combination composite result is dark.
15325   */
15326  function compositeIsDark(dimRatio, overlayColor, backgroundColor) {
15327    // Opacity doesn't matter if you're overlaying the same color on top of itself.
15328    // And background doesn't matter when overlay is fully opaque.
15329    if (overlayColor === backgroundColor || dimRatio === 100) {
15330      return w(overlayColor).isDark();
15331    }
15332    const overlay = w(overlayColor).alpha(dimRatio / 100).toRgb();
15333    const background = w(backgroundColor).toRgb();
15334    const composite = compositeSourceOver(overlay, background);
15335    return w(composite).isDark();
15336  }
15337  
15338  ;// ./node_modules/@wordpress/block-library/build-module/cover/edit/index.js
15339  /**
15340   * External dependencies
15341   */
15342  
15343  
15344  /**
15345   * WordPress dependencies
15346   */
15347  
15348  
15349  
15350  
15351  
15352  
15353  
15354  
15355  
15356  
15357  /**
15358   * Internal dependencies
15359   */
15360  
15361  
15362  
15363  
15364  
15365  
15366  
15367  
15368  function getInnerBlocksTemplate(attributes) {
15369    return [['core/paragraph', {
15370      align: 'center',
15371      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write title…'),
15372      ...attributes
15373    }]];
15374  }
15375  
15376  /**
15377   * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while
15378   * the media (image or video) is being uploaded and will not have an id allocated yet.
15379   *
15380   * @param {number} id  The id of the media.
15381   * @param {string} url The url of the media.
15382   *
15383   * @return {boolean} Is the URL a Blob URL.
15384   */
15385  const isTemporaryMedia = (id, url) => !id && (0,external_wp_blob_namespaceObject.isBlobURL)(url);
15386  function CoverEdit({
15387    attributes,
15388    clientId,
15389    isSelected,
15390    overlayColor,
15391    setAttributes,
15392    setOverlayColor,
15393    toggleSelection,
15394    context: {
15395      postId,
15396      postType
15397    }
15398  }) {
15399    var _media$media_details$;
15400    const {
15401      contentPosition,
15402      id,
15403      url: originalUrl,
15404      backgroundType: originalBackgroundType,
15405      useFeaturedImage,
15406      dimRatio,
15407      focalPoint,
15408      hasParallax,
15409      isDark,
15410      isRepeated,
15411      minHeight,
15412      minHeightUnit,
15413      alt,
15414      allowedBlocks,
15415      templateLock,
15416      tagName: TagName = 'div',
15417      isUserOverlayColor,
15418      sizeSlug
15419    } = attributes;
15420    const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
15421    const {
15422      getSettings
15423    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
15424    const {
15425      __unstableMarkNextChangeAsNotPersistent
15426    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
15427    const {
15428      media
15429    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
15430      return {
15431        media: featuredImage && useFeaturedImage ? select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
15432          context: 'view'
15433        }) : undefined
15434      };
15435    }, [featuredImage, useFeaturedImage]);
15436    const mediaUrl = (_media$media_details$ = media?.media_details?.sizes?.[sizeSlug]?.source_url) !== null && _media$media_details$ !== void 0 ? _media$media_details$ : media?.source_url;
15437  
15438    // User can change the featured image outside of the block, but we still
15439    // need to update the block when that happens. This effect should only
15440    // run when the featured image changes in that case. All other cases are
15441    // handled in their respective callbacks.
15442    (0,external_wp_element_namespaceObject.useEffect)(() => {
15443      (async () => {
15444        if (!useFeaturedImage) {
15445          return;
15446        }
15447        const averageBackgroundColor = await getMediaColor(mediaUrl);
15448        let newOverlayColor = overlayColor.color;
15449        if (!isUserOverlayColor) {
15450          newOverlayColor = averageBackgroundColor;
15451          __unstableMarkNextChangeAsNotPersistent();
15452          setOverlayColor(newOverlayColor);
15453        }
15454        const newIsDark = compositeIsDark(dimRatio, newOverlayColor, averageBackgroundColor);
15455        __unstableMarkNextChangeAsNotPersistent();
15456        setAttributes({
15457          isDark: newIsDark,
15458          isUserOverlayColor: isUserOverlayColor || false
15459        });
15460      })();
15461      // Update the block only when the featured image changes.
15462    }, [mediaUrl]);
15463  
15464    // instead of destructuring the attributes
15465    // we define the url and background type
15466    // depending on the value of the useFeaturedImage flag
15467    // to preview in edit the dynamic featured image
15468    const url = useFeaturedImage ? mediaUrl :
15469    // Ensure the url is not malformed due to sanitization through `wp_kses`.
15470    originalUrl?.replaceAll('&amp;', '&');
15471    const backgroundType = useFeaturedImage ? IMAGE_BACKGROUND_TYPE : originalBackgroundType;
15472    const {
15473      createErrorNotice
15474    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
15475    const {
15476      gradientClass,
15477      gradientValue
15478    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
15479    const onSelectMedia = async newMedia => {
15480      const mediaAttributes = attributesFromMedia(newMedia);
15481      const isImage = [newMedia?.type, newMedia?.media_type].includes(IMAGE_BACKGROUND_TYPE);
15482      const averageBackgroundColor = await getMediaColor(isImage ? newMedia?.url : undefined);
15483      let newOverlayColor = overlayColor.color;
15484      if (!isUserOverlayColor) {
15485        newOverlayColor = averageBackgroundColor;
15486        setOverlayColor(newOverlayColor);
15487  
15488        // Make undo revert the next setAttributes and the previous setOverlayColor.
15489        __unstableMarkNextChangeAsNotPersistent();
15490      }
15491  
15492      // Only set a new dimRatio if there was no previous media selected
15493      // to avoid resetting to 50 if it has been explicitly set to 100.
15494      // See issue #52835 for context.
15495      const newDimRatio = originalUrl === undefined && dimRatio === 100 ? 50 : dimRatio;
15496      const newIsDark = compositeIsDark(newDimRatio, newOverlayColor, averageBackgroundColor);
15497      if (backgroundType === IMAGE_BACKGROUND_TYPE && mediaAttributes?.id) {
15498        const {
15499          imageDefaultSize
15500        } = getSettings();
15501  
15502        // Try to use the previous selected image size if it's available
15503        // otherwise try the default image size or fallback to full size.
15504        if (sizeSlug && (newMedia?.sizes?.[sizeSlug] || newMedia?.media_details?.sizes?.[sizeSlug])) {
15505          mediaAttributes.sizeSlug = sizeSlug;
15506          mediaAttributes.url = newMedia?.sizes?.[sizeSlug]?.url || newMedia?.media_details?.sizes?.[sizeSlug]?.source_url;
15507        } else if (newMedia?.sizes?.[imageDefaultSize] || newMedia?.media_details?.sizes?.[imageDefaultSize]) {
15508          mediaAttributes.sizeSlug = imageDefaultSize;
15509          mediaAttributes.url = newMedia?.sizes?.[imageDefaultSize]?.url || newMedia?.media_details?.sizes?.[imageDefaultSize]?.source_url;
15510        } else {
15511          mediaAttributes.sizeSlug = DEFAULT_MEDIA_SIZE_SLUG;
15512        }
15513      }
15514      setAttributes({
15515        ...mediaAttributes,
15516        focalPoint: undefined,
15517        useFeaturedImage: undefined,
15518        dimRatio: newDimRatio,
15519        isDark: newIsDark,
15520        isUserOverlayColor: isUserOverlayColor || false
15521      });
15522    };
15523    const onClearMedia = () => {
15524      let newOverlayColor = overlayColor.color;
15525      if (!isUserOverlayColor) {
15526        newOverlayColor = DEFAULT_OVERLAY_COLOR;
15527        setOverlayColor(undefined);
15528  
15529        // Make undo revert the next setAttributes and the previous setOverlayColor.
15530        __unstableMarkNextChangeAsNotPersistent();
15531      }
15532      const newIsDark = compositeIsDark(dimRatio, newOverlayColor, DEFAULT_BACKGROUND_COLOR);
15533      setAttributes({
15534        url: undefined,
15535        id: undefined,
15536        backgroundType: undefined,
15537        focalPoint: undefined,
15538        hasParallax: undefined,
15539        isRepeated: undefined,
15540        useFeaturedImage: undefined,
15541        isDark: newIsDark
15542      });
15543    };
15544    const onSetOverlayColor = async newOverlayColor => {
15545      const averageBackgroundColor = await getMediaColor(url);
15546      const newIsDark = compositeIsDark(dimRatio, newOverlayColor, averageBackgroundColor);
15547      setOverlayColor(newOverlayColor);
15548  
15549      // Make undo revert the next setAttributes and the previous setOverlayColor.
15550      __unstableMarkNextChangeAsNotPersistent();
15551      setAttributes({
15552        isUserOverlayColor: true,
15553        isDark: newIsDark
15554      });
15555    };
15556    const onUpdateDimRatio = async newDimRatio => {
15557      const averageBackgroundColor = await getMediaColor(url);
15558      const newIsDark = compositeIsDark(newDimRatio, overlayColor.color, averageBackgroundColor);
15559      setAttributes({
15560        dimRatio: newDimRatio,
15561        isDark: newIsDark
15562      });
15563    };
15564    const onUploadError = message => {
15565      createErrorNotice(message, {
15566        type: 'snackbar'
15567      });
15568    };
15569    const isUploadingMedia = isTemporaryMedia(id, url);
15570    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
15571    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
15572    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
15573    const hasNonContentControls = blockEditingMode === 'default';
15574    const [resizeListener, {
15575      height,
15576      width
15577    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
15578    const resizableBoxDimensions = (0,external_wp_element_namespaceObject.useMemo)(() => {
15579      return {
15580        height: minHeightUnit === 'px' ? minHeight : 'auto',
15581        width: 'auto'
15582      };
15583    }, [minHeight, minHeightUnit]);
15584    const minHeightWithUnit = minHeight && minHeightUnit ? `$minHeight}$minHeightUnit}` : minHeight;
15585    const isImgElement = !(hasParallax || isRepeated);
15586    const style = {
15587      minHeight: minHeightWithUnit || undefined
15588    };
15589    const backgroundImage = url ? `url($url})` : undefined;
15590    const backgroundPosition = mediaPosition(focalPoint);
15591    const bgStyle = {
15592      backgroundColor: overlayColor.color
15593    };
15594    const mediaStyle = {
15595      objectPosition: focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined
15596    };
15597    const hasBackground = !!(url || overlayColor.color || gradientValue);
15598    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlock(clientId).innerBlocks.length > 0, [clientId]);
15599    const ref = (0,external_wp_element_namespaceObject.useRef)();
15600    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
15601      ref
15602    });
15603  
15604    // Check for fontSize support before we pass a fontSize attribute to the innerBlocks.
15605    const [fontSizes] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.fontSizes');
15606    const hasFontSizes = fontSizes?.length > 0;
15607    const innerBlocksTemplate = getInnerBlocksTemplate({
15608      fontSize: hasFontSizes ? 'large' : undefined
15609    });
15610    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
15611      className: 'wp-block-cover__inner-container'
15612    }, {
15613      // Avoid template sync when the `templateLock` value is `all` or `contentOnly`.
15614      // See: https://github.com/WordPress/gutenberg/pull/45632
15615      template: !hasInnerBlocks ? innerBlocksTemplate : undefined,
15616      templateInsertUpdatesSelection: true,
15617      allowedBlocks,
15618      templateLock,
15619      dropZoneElement: ref.current
15620    });
15621    const mediaElement = (0,external_wp_element_namespaceObject.useRef)();
15622    const currentSettings = {
15623      isVideoBackground,
15624      isImageBackground,
15625      mediaElement,
15626      hasInnerBlocks,
15627      url,
15628      isImgElement,
15629      overlayColor
15630    };
15631    const toggleUseFeaturedImage = async () => {
15632      const newUseFeaturedImage = !useFeaturedImage;
15633      const averageBackgroundColor = newUseFeaturedImage ? await getMediaColor(mediaUrl) : DEFAULT_BACKGROUND_COLOR;
15634      const newOverlayColor = !isUserOverlayColor ? averageBackgroundColor : overlayColor.color;
15635      if (!isUserOverlayColor) {
15636        if (newUseFeaturedImage) {
15637          setOverlayColor(newOverlayColor);
15638        } else {
15639          setOverlayColor(undefined);
15640        }
15641  
15642        // Make undo revert the next setAttributes and the previous setOverlayColor.
15643        __unstableMarkNextChangeAsNotPersistent();
15644      }
15645      const newDimRatio = dimRatio === 100 ? 50 : dimRatio;
15646      const newIsDark = compositeIsDark(newDimRatio, newOverlayColor, averageBackgroundColor);
15647      setAttributes({
15648        id: undefined,
15649        url: undefined,
15650        useFeaturedImage: newUseFeaturedImage,
15651        dimRatio: newDimRatio,
15652        backgroundType: useFeaturedImage ? IMAGE_BACKGROUND_TYPE : undefined,
15653        isDark: newIsDark
15654      });
15655    };
15656    const blockControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverBlockControls, {
15657      attributes: attributes,
15658      setAttributes: setAttributes,
15659      onSelectMedia: onSelectMedia,
15660      currentSettings: currentSettings,
15661      toggleUseFeaturedImage: toggleUseFeaturedImage,
15662      onClearMedia: onClearMedia
15663    });
15664    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverInspectorControls, {
15665      attributes: attributes,
15666      setAttributes: setAttributes,
15667      clientId: clientId,
15668      setOverlayColor: onSetOverlayColor,
15669      coverRef: ref,
15670      currentSettings: currentSettings,
15671      toggleUseFeaturedImage: toggleUseFeaturedImage,
15672      updateDimRatio: onUpdateDimRatio,
15673      onClearMedia: onClearMedia,
15674      featuredImage: media
15675    });
15676    const resizableCoverProps = {
15677      className: 'block-library-cover__resize-container',
15678      clientId,
15679      height,
15680      minHeight: minHeightWithUnit,
15681      onResizeStart: () => {
15682        setAttributes({
15683          minHeightUnit: 'px'
15684        });
15685        toggleSelection(false);
15686      },
15687      onResize: value => {
15688        setAttributes({
15689          minHeight: value
15690        });
15691      },
15692      onResizeStop: newMinHeight => {
15693        toggleSelection(true);
15694        setAttributes({
15695          minHeight: newMinHeight
15696        });
15697      },
15698      // Hide the resize handle if an aspect ratio is set, as the aspect ratio takes precedence.
15699      showHandle: !attributes.style?.dimensions?.aspectRatio,
15700      size: resizableBoxDimensions,
15701      width
15702    };
15703    if (!useFeaturedImage && !hasInnerBlocks && !hasBackground) {
15704      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
15705        children: [blockControls, inspectorControls, hasNonContentControls && isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableCoverPopover, {
15706          ...resizableCoverProps
15707        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
15708          ...blockProps,
15709          className: dist_clsx('is-placeholder', blockProps.className),
15710          style: {
15711            ...blockProps.style,
15712            minHeight: minHeightWithUnit || undefined
15713          },
15714          children: [resizeListener, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverPlaceholder, {
15715            onSelectMedia: onSelectMedia,
15716            onError: onUploadError,
15717            toggleUseFeaturedImage: toggleUseFeaturedImage,
15718            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15719              className: "wp-block-cover__placeholder-background-options",
15720              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ColorPalette, {
15721                disableCustomColors: true,
15722                value: overlayColor.color,
15723                onChange: onSetOverlayColor,
15724                clearable: false,
15725                asButtons: true,
15726                "aria-label": (0,external_wp_i18n_namespaceObject.__)('Overlay color')
15727              })
15728            })
15729          })]
15730        })]
15731      });
15732    }
15733    const classes = dist_clsx({
15734      'is-dark-theme': isDark,
15735      'is-light': !isDark,
15736      'is-transient': isUploadingMedia,
15737      'has-parallax': hasParallax,
15738      'is-repeated': isRepeated,
15739      'has-custom-content-position': !isContentPositionCenter(contentPosition)
15740    }, getPositionClassName(contentPosition));
15741    const showOverlay = url || !useFeaturedImage || useFeaturedImage && !url;
15742    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
15743      children: [blockControls, inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
15744        ...blockProps,
15745        className: dist_clsx(classes, blockProps.className),
15746        style: {
15747          ...style,
15748          ...blockProps.style
15749        },
15750        "data-url": url,
15751        children: [resizeListener, !url && useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
15752          className: "wp-block-cover__image--placeholder-image",
15753          withIllustration: true
15754        }), url && isImageBackground && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
15755          ref: mediaElement,
15756          className: "wp-block-cover__image-background",
15757          alt: alt,
15758          src: url,
15759          style: mediaStyle
15760        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15761          ref: mediaElement,
15762          role: alt ? 'img' : undefined,
15763          "aria-label": alt ? alt : undefined,
15764          className: dist_clsx(classes, 'wp-block-cover__image-background'),
15765          style: {
15766            backgroundImage,
15767            backgroundPosition
15768          }
15769        })), url && isVideoBackground && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
15770          ref: mediaElement,
15771          className: "wp-block-cover__video-background",
15772          autoPlay: true,
15773          muted: true,
15774          loop: true,
15775          src: url,
15776          style: mediaStyle
15777        }), showOverlay && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
15778          "aria-hidden": "true",
15779          className: dist_clsx('wp-block-cover__background', dimRatioToClass(dimRatio), {
15780            [overlayColor.class]: overlayColor.class,
15781            'has-background-dim': dimRatio !== undefined,
15782            // For backwards compatibility. Former versions of the Cover Block applied
15783            // `.wp-block-cover__gradient-background` in the presence of
15784            // media, a gradient and a dim.
15785            'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
15786            'has-background-gradient': gradientValue,
15787            [gradientClass]: gradientClass
15788          }),
15789          style: {
15790            backgroundImage: gradientValue,
15791            ...bgStyle
15792          }
15793        }), isUploadingMedia && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CoverPlaceholder, {
15794          disableMediaButtons: true,
15795          onSelectMedia: onSelectMedia,
15796          onError: onUploadError,
15797          toggleUseFeaturedImage: toggleUseFeaturedImage
15798        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15799          ...innerBlocksProps
15800        })]
15801      }), hasNonContentControls && isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableCoverPopover, {
15802        ...resizableCoverProps
15803      })]
15804    });
15805  }
15806  /* harmony default export */ const cover_edit = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
15807    overlayColor: 'background-color'
15808  })])(CoverEdit));
15809  
15810  ;// ./node_modules/@wordpress/block-library/build-module/cover/save.js
15811  /**
15812   * External dependencies
15813   */
15814  
15815  
15816  /**
15817   * WordPress dependencies
15818   */
15819  
15820  
15821  /**
15822   * Internal dependencies
15823   */
15824  
15825  
15826  function cover_save_save({
15827    attributes
15828  }) {
15829    const {
15830      backgroundType,
15831      gradient,
15832      contentPosition,
15833      customGradient,
15834      customOverlayColor,
15835      dimRatio,
15836      focalPoint,
15837      useFeaturedImage,
15838      hasParallax,
15839      isDark,
15840      isRepeated,
15841      overlayColor,
15842      url,
15843      alt,
15844      id,
15845      minHeight: minHeightProp,
15846      minHeightUnit,
15847      tagName: Tag,
15848      sizeSlug
15849    } = attributes;
15850    const overlayColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayColor);
15851    const gradientClass = (0,external_wp_blockEditor_namespaceObject.__experimentalGetGradientClass)(gradient);
15852    const minHeight = minHeightProp && minHeightUnit ? `$minHeightProp}$minHeightUnit}` : minHeightProp;
15853    const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
15854    const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
15855    const isImgElement = !(hasParallax || isRepeated);
15856    const style = {
15857      minHeight: minHeight || undefined
15858    };
15859    const bgStyle = {
15860      backgroundColor: !overlayColorClass ? customOverlayColor : undefined,
15861      background: customGradient ? customGradient : undefined
15862    };
15863    const objectPosition =
15864    // prettier-ignore
15865    focalPoint && isImgElement ? mediaPosition(focalPoint) : undefined;
15866    const backgroundImage = url ? `url($url})` : undefined;
15867    const backgroundPosition = mediaPosition(focalPoint);
15868    const classes = dist_clsx({
15869      'is-light': !isDark,
15870      'has-parallax': hasParallax,
15871      'is-repeated': isRepeated,
15872      'has-custom-content-position': !isContentPositionCenter(contentPosition)
15873    }, getPositionClassName(contentPosition));
15874    const imgClasses = dist_clsx('wp-block-cover__image-background', id ? `wp-image-$id}` : null, {
15875      [`size-$sizeSlug}`]: sizeSlug,
15876      'has-parallax': hasParallax,
15877      'is-repeated': isRepeated
15878    });
15879    const gradientValue = gradient || customGradient;
15880    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tag, {
15881      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
15882        className: classes,
15883        style
15884      }),
15885      children: [!useFeaturedImage && isImageBackground && url && (isImgElement ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
15886        className: imgClasses,
15887        alt: alt,
15888        src: url,
15889        style: {
15890          objectPosition
15891        },
15892        "data-object-fit": "cover",
15893        "data-object-position": objectPosition
15894      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15895        role: alt ? 'img' : undefined,
15896        "aria-label": alt ? alt : undefined,
15897        className: imgClasses,
15898        style: {
15899          backgroundPosition,
15900          backgroundImage
15901        }
15902      })), isVideoBackground && url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
15903        className: dist_clsx('wp-block-cover__video-background', 'intrinsic-ignore'),
15904        autoPlay: true,
15905        muted: true,
15906        loop: true,
15907        playsInline: true,
15908        src: url,
15909        style: {
15910          objectPosition
15911        },
15912        "data-object-fit": "cover",
15913        "data-object-position": objectPosition
15914      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
15915        "aria-hidden": "true",
15916        className: dist_clsx('wp-block-cover__background', overlayColorClass, dimRatioToClass(dimRatio), {
15917          'has-background-dim': dimRatio !== undefined,
15918          // For backwards compatibility. Former versions of the Cover Block applied
15919          // `.wp-block-cover__gradient-background` in the presence of
15920          // media, a gradient and a dim.
15921          'wp-block-cover__gradient-background': url && gradientValue && dimRatio !== 0,
15922          'has-background-gradient': gradientValue,
15923          [gradientClass]: gradientClass
15924        }),
15925        style: bgStyle
15926      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
15927        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
15928          className: 'wp-block-cover__inner-container'
15929        })
15930      })]
15931    });
15932  }
15933  
15934  ;// ./node_modules/@wordpress/block-library/build-module/cover/transforms.js
15935  /**
15936   * WordPress dependencies
15937   */
15938  
15939  
15940  
15941  /**
15942   * Internal dependencies
15943   */
15944  
15945  
15946  const {
15947    cleanEmptyObject: transforms_cleanEmptyObject
15948  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
15949  const cover_transforms_transforms = {
15950    from: [{
15951      type: 'block',
15952      blocks: ['core/image'],
15953      transform: ({
15954        caption,
15955        url,
15956        alt,
15957        align,
15958        id,
15959        anchor,
15960        style
15961      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
15962        dimRatio: 50,
15963        url,
15964        alt,
15965        align,
15966        id,
15967        anchor,
15968        style: {
15969          color: {
15970            duotone: style?.color?.duotone
15971          }
15972        }
15973      }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
15974        content: caption,
15975        fontSize: 'large',
15976        align: 'center'
15977      })])
15978    }, {
15979      type: 'block',
15980      blocks: ['core/video'],
15981      transform: ({
15982        caption,
15983        src,
15984        align,
15985        id,
15986        anchor
15987      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', {
15988        dimRatio: 50,
15989        url: src,
15990        align,
15991        id,
15992        backgroundType: VIDEO_BACKGROUND_TYPE,
15993        anchor
15994      }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
15995        content: caption,
15996        fontSize: 'large',
15997        align: 'center'
15998      })])
15999    }, {
16000      type: 'block',
16001      blocks: ['core/group'],
16002      transform: (attributes, innerBlocks) => {
16003        const {
16004          align,
16005          anchor,
16006          backgroundColor,
16007          gradient,
16008          style
16009        } = attributes;
16010  
16011        // If the Group block being transformed has a Cover block as its
16012        // only child return that Cover block.
16013        if (innerBlocks?.length === 1 && innerBlocks[0]?.name === 'core/cover') {
16014          return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', innerBlocks[0].attributes, innerBlocks[0].innerBlocks);
16015        }
16016  
16017        // If no background or gradient color is provided, default to 50% opacity.
16018        // This matches the styling of a Cover block with a background image,
16019        // in the state where a background image has been removed.
16020        const dimRatio = backgroundColor || gradient || style?.color?.background || style?.color?.gradient ? undefined : 50;
16021  
16022        // Move the background or gradient color to the parent Cover block.
16023        const parentAttributes = {
16024          align,
16025          anchor,
16026          dimRatio,
16027          overlayColor: backgroundColor,
16028          customOverlayColor: style?.color?.background,
16029          gradient,
16030          customGradient: style?.color?.gradient
16031        };
16032        const attributesWithoutBackgroundColors = {
16033          ...attributes,
16034          backgroundColor: undefined,
16035          gradient: undefined,
16036          style: transforms_cleanEmptyObject({
16037            ...attributes?.style,
16038            color: style?.color ? {
16039              ...style?.color,
16040              background: undefined,
16041              gradient: undefined
16042            } : undefined
16043          })
16044        };
16045  
16046        // Preserve the block by nesting it within the Cover block,
16047        // instead of converting the Group block directly to the Cover block.
16048        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', parentAttributes, [(0,external_wp_blocks_namespaceObject.createBlock)('core/group', attributesWithoutBackgroundColors, innerBlocks)]);
16049      }
16050    }],
16051    to: [{
16052      type: 'block',
16053      blocks: ['core/image'],
16054      isMatch: ({
16055        backgroundType,
16056        url,
16057        overlayColor,
16058        customOverlayColor,
16059        gradient,
16060        customGradient
16061      }) => {
16062        if (url) {
16063          // If a url exists the transform could happen if that URL represents an image background.
16064          return backgroundType === IMAGE_BACKGROUND_TYPE;
16065        }
16066        // If a url is not set the transform could happen if the cover has no background color or gradient;
16067        return !overlayColor && !customOverlayColor && !gradient && !customGradient;
16068      },
16069      transform: ({
16070        title,
16071        url,
16072        alt,
16073        align,
16074        id,
16075        anchor,
16076        style
16077      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
16078        caption: title,
16079        url,
16080        alt,
16081        align,
16082        id,
16083        anchor,
16084        style: {
16085          color: {
16086            duotone: style?.color?.duotone
16087          }
16088        }
16089      })
16090    }, {
16091      type: 'block',
16092      blocks: ['core/video'],
16093      isMatch: ({
16094        backgroundType,
16095        url,
16096        overlayColor,
16097        customOverlayColor,
16098        gradient,
16099        customGradient
16100      }) => {
16101        if (url) {
16102          // If a url exists the transform could happen if that URL represents a video background.
16103          return backgroundType === VIDEO_BACKGROUND_TYPE;
16104        }
16105        // If a url is not set the transform could happen if the cover has no background color or gradient;
16106        return !overlayColor && !customOverlayColor && !gradient && !customGradient;
16107      },
16108      transform: ({
16109        title,
16110        url,
16111        align,
16112        id,
16113        anchor
16114      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
16115        caption: title,
16116        src: url,
16117        id,
16118        align,
16119        anchor
16120      })
16121    }, {
16122      type: 'block',
16123      blocks: ['core/group'],
16124      isMatch: ({
16125        url,
16126        useFeaturedImage
16127      }) => {
16128        // If the Cover block uses background media, skip this transform,
16129        // and instead use the Group block's default transform.
16130        if (url || useFeaturedImage) {
16131          return false;
16132        }
16133        return true;
16134      },
16135      transform: (attributes, innerBlocks) => {
16136        // Convert Cover overlay colors to comparable Group background colors.
16137        const transformedColorAttributes = {
16138          backgroundColor: attributes?.overlayColor,
16139          gradient: attributes?.gradient,
16140          style: transforms_cleanEmptyObject({
16141            ...attributes?.style,
16142            color: attributes?.customOverlayColor || attributes?.customGradient || attributes?.style?.color ? {
16143              background: attributes?.customOverlayColor,
16144              gradient: attributes?.customGradient,
16145              ...attributes?.style?.color
16146            } : undefined
16147          })
16148        };
16149  
16150        // If the Cover block contains only a single Group block as a direct child,
16151        // then attempt to merge the Cover's background colors with the child Group block,
16152        // and remove the Cover block as the wrapper.
16153        if (innerBlocks?.length === 1 && innerBlocks[0]?.name === 'core/group') {
16154          const groupAttributes = transforms_cleanEmptyObject(innerBlocks[0].attributes || {});
16155  
16156          // If the Group block contains any kind of background color or gradient,
16157          // skip merging Cover background colors, and preserve the Group block's colors.
16158          if (groupAttributes?.backgroundColor || groupAttributes?.gradient || groupAttributes?.style?.color?.background || groupAttributes?.style?.color?.gradient) {
16159            return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', groupAttributes, innerBlocks[0]?.innerBlocks);
16160          }
16161          return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
16162            ...transformedColorAttributes,
16163            ...groupAttributes,
16164            style: transforms_cleanEmptyObject({
16165              ...groupAttributes?.style,
16166              color: transformedColorAttributes?.style?.color || groupAttributes?.style?.color ? {
16167                ...transformedColorAttributes?.style?.color,
16168                ...groupAttributes?.style?.color
16169              } : undefined
16170            })
16171          }, innerBlocks[0]?.innerBlocks);
16172        }
16173  
16174        // In all other cases, transform the Cover block directly to a Group block.
16175        return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
16176          ...attributes,
16177          ...transformedColorAttributes
16178        }, innerBlocks);
16179      }
16180    }]
16181  };
16182  /* harmony default export */ const cover_transforms = (cover_transforms_transforms);
16183  
16184  ;// ./node_modules/@wordpress/block-library/build-module/cover/variations.js
16185  /**
16186   * WordPress dependencies
16187   */
16188  
16189  
16190  const cover_variations_variations = [{
16191    name: 'cover',
16192    title: (0,external_wp_i18n_namespaceObject.__)('Cover'),
16193    description: (0,external_wp_i18n_namespaceObject.__)('Add an image or video with a text overlay.'),
16194    attributes: {
16195      layout: {
16196        type: 'constrained'
16197      }
16198    },
16199    isDefault: true,
16200    icon: library_cover
16201  }];
16202  /* harmony default export */ const cover_variations = (cover_variations_variations);
16203  
16204  ;// ./node_modules/@wordpress/block-library/build-module/cover/index.js
16205  /**
16206   * WordPress dependencies
16207   */
16208  
16209  
16210  
16211  /**
16212   * Internal dependencies
16213   */
16214  
16215  
16216  
16217  const cover_metadata = {
16218    $schema: "https://schemas.wp.org/trunk/block.json",
16219    apiVersion: 3,
16220    name: "core/cover",
16221    title: "Cover",
16222    category: "media",
16223    description: "Add an image or video with a text overlay.",
16224    textdomain: "default",
16225    attributes: {
16226      url: {
16227        type: "string"
16228      },
16229      useFeaturedImage: {
16230        type: "boolean",
16231        "default": false
16232      },
16233      id: {
16234        type: "number"
16235      },
16236      alt: {
16237        type: "string",
16238        "default": ""
16239      },
16240      hasParallax: {
16241        type: "boolean",
16242        "default": false
16243      },
16244      isRepeated: {
16245        type: "boolean",
16246        "default": false
16247      },
16248      dimRatio: {
16249        type: "number",
16250        "default": 100
16251      },
16252      overlayColor: {
16253        type: "string"
16254      },
16255      customOverlayColor: {
16256        type: "string"
16257      },
16258      isUserOverlayColor: {
16259        type: "boolean"
16260      },
16261      backgroundType: {
16262        type: "string",
16263        "default": "image"
16264      },
16265      focalPoint: {
16266        type: "object"
16267      },
16268      minHeight: {
16269        type: "number"
16270      },
16271      minHeightUnit: {
16272        type: "string"
16273      },
16274      gradient: {
16275        type: "string"
16276      },
16277      customGradient: {
16278        type: "string"
16279      },
16280      contentPosition: {
16281        type: "string"
16282      },
16283      isDark: {
16284        type: "boolean",
16285        "default": true
16286      },
16287      allowedBlocks: {
16288        type: "array"
16289      },
16290      templateLock: {
16291        type: ["string", "boolean"],
16292        "enum": ["all", "insert", "contentOnly", false]
16293      },
16294      tagName: {
16295        type: "string",
16296        "default": "div"
16297      },
16298      sizeSlug: {
16299        type: "string"
16300      }
16301    },
16302    usesContext: ["postId", "postType"],
16303    supports: {
16304      anchor: true,
16305      align: true,
16306      html: false,
16307      shadow: true,
16308      spacing: {
16309        padding: true,
16310        margin: ["top", "bottom"],
16311        blockGap: true,
16312        __experimentalDefaultControls: {
16313          padding: true,
16314          blockGap: true
16315        }
16316      },
16317      __experimentalBorder: {
16318        color: true,
16319        radius: true,
16320        style: true,
16321        width: true,
16322        __experimentalDefaultControls: {
16323          color: true,
16324          radius: true,
16325          style: true,
16326          width: true
16327        }
16328      },
16329      color: {
16330        __experimentalDuotone: "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
16331        heading: true,
16332        text: true,
16333        background: false,
16334        __experimentalSkipSerialization: ["gradients"],
16335        enableContrastChecker: false
16336      },
16337      dimensions: {
16338        aspectRatio: true
16339      },
16340      typography: {
16341        fontSize: true,
16342        lineHeight: true,
16343        __experimentalFontFamily: true,
16344        __experimentalFontWeight: true,
16345        __experimentalFontStyle: true,
16346        __experimentalTextTransform: true,
16347        __experimentalTextDecoration: true,
16348        __experimentalLetterSpacing: true,
16349        __experimentalDefaultControls: {
16350          fontSize: true
16351        }
16352      },
16353      layout: {
16354        allowJustification: false
16355      },
16356      interactivity: {
16357        clientNavigation: true
16358      }
16359    },
16360    editorStyle: "wp-block-cover-editor",
16361    style: "wp-block-cover"
16362  };
16363  
16364  
16365  
16366  const {
16367    name: cover_name
16368  } = cover_metadata;
16369  
16370  const cover_settings = {
16371    icon: library_cover,
16372    example: {
16373      attributes: {
16374        customOverlayColor: '#065174',
16375        dimRatio: 40,
16376        url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',
16377        style: {
16378          typography: {
16379            fontSize: 48
16380          },
16381          color: {
16382            text: 'white'
16383          }
16384        }
16385      },
16386      innerBlocks: [{
16387        name: 'core/paragraph',
16388        attributes: {
16389          content: (0,external_wp_i18n_namespaceObject.__)('<strong>Snow Patrol</strong>'),
16390          align: 'center'
16391        }
16392      }]
16393    },
16394    transforms: cover_transforms,
16395    save: cover_save_save,
16396    edit: cover_edit,
16397    deprecated: cover_deprecated,
16398    variations: cover_variations
16399  };
16400  const cover_init = () => initBlock({
16401    name: cover_name,
16402    metadata: cover_metadata,
16403    settings: cover_settings
16404  });
16405  
16406  ;// ./node_modules/@wordpress/icons/build-module/library/details.js
16407  /**
16408   * WordPress dependencies
16409   */
16410  
16411  
16412  const details = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
16413    viewBox: "0 0 24 24",
16414    xmlns: "http://www.w3.org/2000/svg",
16415    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
16416      d: "M4 16h10v1.5H4V16Zm0-4.5h16V13H4v-1.5ZM10 7h10v1.5H10V7Z",
16417      fillRule: "evenodd",
16418      clipRule: "evenodd"
16419    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
16420      d: "m4 5.25 4 2.5-4 2.5v-5Z"
16421    })]
16422  });
16423  /* harmony default export */ const library_details = (details);
16424  
16425  ;// ./node_modules/@wordpress/block-library/build-module/details/edit.js
16426  /**
16427   * WordPress dependencies
16428   */
16429  
16430  
16431  
16432  
16433  
16434  /**
16435   * Internal dependencies
16436   */
16437  
16438  
16439  const details_edit_TEMPLATE = [['core/paragraph', {
16440    placeholder: (0,external_wp_i18n_namespaceObject.__)('Type / to add a hidden block')
16441  }]];
16442  function DetailsEdit({
16443    attributes,
16444    setAttributes
16445  }) {
16446    const {
16447      name,
16448      showContent,
16449      summary,
16450      allowedBlocks,
16451      placeholder
16452    } = attributes;
16453    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
16454    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
16455      template: details_edit_TEMPLATE,
16456      __experimentalCaptureToolbars: true,
16457      allowedBlocks
16458    });
16459    const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)(showContent);
16460    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
16461    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
16462      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16463        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
16464          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
16465          resetAll: () => {
16466            setAttributes({
16467              showContent: false
16468            });
16469          },
16470          dropdownMenuProps: dropdownMenuProps,
16471          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
16472            isShownByDefault: true,
16473            label: (0,external_wp_i18n_namespaceObject.__)('Open by default'),
16474            hasValue: () => showContent,
16475            onDeselect: () => {
16476              setAttributes({
16477                showContent: false
16478              });
16479            },
16480            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
16481              __nextHasNoMarginBottom: true,
16482              label: (0,external_wp_i18n_namespaceObject.__)('Open by default'),
16483              checked: showContent,
16484              onChange: () => setAttributes({
16485                showContent: !showContent
16486              })
16487            })
16488          })
16489        })
16490      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16491        group: "advanced",
16492        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
16493          __next40pxDefaultSize: true,
16494          __nextHasNoMarginBottom: true,
16495          label: (0,external_wp_i18n_namespaceObject.__)('Name attribute'),
16496          value: name || '',
16497          onChange: newName => setAttributes({
16498            name: newName
16499          }),
16500          help: (0,external_wp_i18n_namespaceObject.__)('Enables multiple Details blocks with the same name attribute to be connected, with only one open at a time.')
16501        })
16502      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("details", {
16503        ...innerBlocksProps,
16504        open: isOpen,
16505        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("summary", {
16506          onClick: event => {
16507            event.preventDefault();
16508            setIsOpen(!isOpen);
16509          },
16510          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
16511            identifier: "summary",
16512            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Write summary'),
16513            placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Write summary…'),
16514            allowedFormats: [],
16515            withoutInteractiveFormatting: true,
16516            value: summary,
16517            onChange: newSummary => setAttributes({
16518              summary: newSummary
16519            })
16520          })
16521        }), innerBlocksProps.children]
16522      })]
16523    });
16524  }
16525  /* harmony default export */ const details_edit = (DetailsEdit);
16526  
16527  ;// ./node_modules/@wordpress/block-library/build-module/details/save.js
16528  /**
16529   * WordPress dependencies
16530   */
16531  
16532  
16533  function details_save_save({
16534    attributes
16535  }) {
16536    const {
16537      name,
16538      showContent
16539    } = attributes;
16540    const summary = attributes.summary ? attributes.summary : 'Details';
16541    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
16542    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("details", {
16543      ...blockProps,
16544      name: name || undefined,
16545      open: showContent,
16546      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("summary", {
16547        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
16548          value: summary
16549        })
16550      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})]
16551    });
16552  }
16553  
16554  ;// ./node_modules/@wordpress/block-library/build-module/details/transforms.js
16555  /**
16556   * WordPress dependencies
16557   */
16558  
16559  /* harmony default export */ const details_transforms = ({
16560    from: [{
16561      type: 'block',
16562      isMultiBlock: true,
16563      blocks: ['*'],
16564      isMatch({}, blocks) {
16565        return !(blocks.length === 1 && blocks[0].name === 'core/details');
16566      },
16567      __experimentalConvert(blocks) {
16568        return (0,external_wp_blocks_namespaceObject.createBlock)('core/details', {}, blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)));
16569      }
16570    }]
16571  });
16572  
16573  ;// ./node_modules/@wordpress/block-library/build-module/details/index.js
16574  /**
16575   * WordPress dependencies
16576   */
16577  
16578  
16579  
16580  /**
16581   * Internal dependencies
16582   */
16583  
16584  const details_metadata = {
16585    $schema: "https://schemas.wp.org/trunk/block.json",
16586    apiVersion: 3,
16587    name: "core/details",
16588    title: "Details",
16589    category: "text",
16590    description: "Hide and show additional content.",
16591    keywords: ["accordion", "summary", "toggle", "disclosure"],
16592    textdomain: "default",
16593    attributes: {
16594      showContent: {
16595        type: "boolean",
16596        "default": false
16597      },
16598      summary: {
16599        type: "rich-text",
16600        source: "rich-text",
16601        selector: "summary"
16602      },
16603      name: {
16604        type: "string",
16605        source: "attribute",
16606        attribute: "name",
16607        selector: ".wp-block-details"
16608      },
16609      allowedBlocks: {
16610        type: "array"
16611      },
16612      placeholder: {
16613        type: "string"
16614      }
16615    },
16616    supports: {
16617      __experimentalOnEnter: true,
16618      align: ["wide", "full"],
16619      anchor: true,
16620      color: {
16621        gradients: true,
16622        link: true,
16623        __experimentalDefaultControls: {
16624          background: true,
16625          text: true
16626        }
16627      },
16628      __experimentalBorder: {
16629        color: true,
16630        width: true,
16631        style: true
16632      },
16633      html: false,
16634      spacing: {
16635        margin: true,
16636        padding: true,
16637        blockGap: true,
16638        __experimentalDefaultControls: {
16639          margin: false,
16640          padding: false
16641        }
16642      },
16643      typography: {
16644        fontSize: true,
16645        lineHeight: true,
16646        __experimentalFontFamily: true,
16647        __experimentalFontWeight: true,
16648        __experimentalFontStyle: true,
16649        __experimentalTextTransform: true,
16650        __experimentalTextDecoration: true,
16651        __experimentalLetterSpacing: true,
16652        __experimentalDefaultControls: {
16653          fontSize: true
16654        }
16655      },
16656      layout: {
16657        allowEditing: false
16658      },
16659      interactivity: {
16660        clientNavigation: true
16661      }
16662    },
16663    editorStyle: "wp-block-details-editor",
16664    style: "wp-block-details"
16665  };
16666  
16667  
16668  
16669  const {
16670    name: details_name
16671  } = details_metadata;
16672  
16673  const details_settings = {
16674    icon: library_details,
16675    example: {
16676      attributes: {
16677        summary: 'La Mancha',
16678        showContent: true
16679      },
16680      innerBlocks: [{
16681        name: 'core/paragraph',
16682        attributes: {
16683          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.')
16684        }
16685      }]
16686    },
16687    __experimentalLabel(attributes, {
16688      context
16689    }) {
16690      const {
16691        summary
16692      } = attributes;
16693      const customName = attributes?.metadata?.name;
16694      const hasSummary = summary?.trim().length > 0;
16695  
16696      // In the list view, use the block's summary as the label.
16697      // If the summary is empty, fall back to the default label.
16698      if (context === 'list-view' && (customName || hasSummary)) {
16699        return customName || summary;
16700      }
16701      if (context === 'accessibility') {
16702        return !hasSummary ? (0,external_wp_i18n_namespaceObject.__)('Details. Empty.') : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: accessibility text; summary title. */
16703        (0,external_wp_i18n_namespaceObject.__)('Details. %s'), summary);
16704      }
16705    },
16706    save: details_save_save,
16707    edit: details_edit,
16708    transforms: details_transforms
16709  };
16710  const details_init = () => initBlock({
16711    name: details_name,
16712    metadata: details_metadata,
16713    settings: details_settings
16714  });
16715  
16716  ;// ./node_modules/@wordpress/icons/build-module/library/pencil.js
16717  /**
16718   * WordPress dependencies
16719   */
16720  
16721  
16722  const pencil = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
16723    xmlns: "http://www.w3.org/2000/svg",
16724    viewBox: "0 0 24 24",
16725    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
16726      d: "m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"
16727    })
16728  });
16729  /* harmony default export */ const library_pencil = (pencil);
16730  
16731  ;// ./node_modules/@wordpress/icons/build-module/library/edit.js
16732  /**
16733   * Internal dependencies
16734   */
16735  
16736  
16737  /* harmony default export */ const library_edit = (library_pencil);
16738  
16739  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js
16740  /**
16741   * WordPress dependencies
16742   */
16743  
16744  
16745  
16746  
16747  
16748  function getResponsiveHelp(checked) {
16749    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.');
16750  }
16751  const EmbedControls = ({
16752    blockSupportsResponsive,
16753    showEditButton,
16754    themeSupportsResponsive,
16755    allowResponsive,
16756    toggleResponsive,
16757    switchBackToURLInput
16758  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
16759    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
16760      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
16761        children: showEditButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
16762          className: "components-toolbar__control",
16763          label: (0,external_wp_i18n_namespaceObject.__)('Edit URL'),
16764          icon: library_edit,
16765          onClick: switchBackToURLInput
16766        })
16767      })
16768    }), themeSupportsResponsive && blockSupportsResponsive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16769      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
16770        title: (0,external_wp_i18n_namespaceObject.__)('Media settings'),
16771        className: "blocks-responsive",
16772        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
16773          __nextHasNoMarginBottom: true,
16774          label: (0,external_wp_i18n_namespaceObject.__)('Resize for smaller devices'),
16775          checked: allowResponsive,
16776          help: getResponsiveHelp,
16777          onChange: toggleResponsive
16778        })
16779      })
16780    })]
16781  });
16782  /* harmony default export */ const embed_controls = (EmbedControls);
16783  
16784  ;// ./node_modules/@wordpress/block-library/build-module/embed/icons.js
16785  /**
16786   * WordPress dependencies
16787   */
16788  
16789  
16790  const embedContentIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16791    viewBox: "0 0 24 24",
16792    xmlns: "http://www.w3.org/2000/svg",
16793    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16794      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"
16795    })
16796  });
16797  const embedAudioIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16798    viewBox: "0 0 24 24",
16799    xmlns: "http://www.w3.org/2000/svg",
16800    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16801      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"
16802    })
16803  });
16804  const embedPhotoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16805    viewBox: "0 0 24 24",
16806    xmlns: "http://www.w3.org/2000/svg",
16807    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16808      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"
16809    })
16810  });
16811  const embedVideoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16812    viewBox: "0 0 24 24",
16813    xmlns: "http://www.w3.org/2000/svg",
16814    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16815      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"
16816    })
16817  });
16818  const embedTwitterIcon = {
16819    foreground: '#1da1f2',
16820    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16821      xmlns: "http://www.w3.org/2000/svg",
16822      viewBox: "0 0 24 24",
16823      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16824        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16825          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"
16826        })
16827      })
16828    })
16829  };
16830  const embedYouTubeIcon = {
16831    foreground: '#ff0000',
16832    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16833      viewBox: "0 0 24 24",
16834      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16835        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"
16836      })
16837    })
16838  };
16839  const embedFacebookIcon = {
16840    foreground: '#3b5998',
16841    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16842      viewBox: "0 0 24 24",
16843      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16844        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"
16845      })
16846    })
16847  };
16848  const embedInstagramIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16849    viewBox: "0 0 24 24",
16850    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16851      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16852        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"
16853      })
16854    })
16855  });
16856  const embedWordPressIcon = {
16857    foreground: '#0073AA',
16858    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16859      viewBox: "0 0 24 24",
16860      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16861        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16862          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"
16863        })
16864      })
16865    })
16866  };
16867  const embedSpotifyIcon = {
16868    foreground: '#1db954',
16869    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16870      viewBox: "0 0 24 24",
16871      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16872        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"
16873      })
16874    })
16875  };
16876  const embedFlickrIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16877    viewBox: "0 0 24 24",
16878    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16879      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"
16880    })
16881  });
16882  const embedVimeoIcon = {
16883    foreground: '#1ab7ea',
16884    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16885      xmlns: "http://www.w3.org/2000/svg",
16886      viewBox: "0 0 24 24",
16887      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16888        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16889          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"
16890        })
16891      })
16892    })
16893  };
16894  const embedRedditIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16895    viewBox: "0 0 24 24",
16896    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16897      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"
16898    })
16899  });
16900  const embedTumblrIcon = {
16901    foreground: '#35465c',
16902    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16903      viewBox: "0 0 24 24",
16904      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16905        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"
16906      })
16907    })
16908  };
16909  const embedAmazonIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16910    viewBox: "0 0 24 24",
16911    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16912      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"
16913    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16914      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"
16915    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16916      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"
16917    })]
16918  });
16919  const embedAnimotoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16920    viewBox: "0 0 24 24",
16921    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16922      d: "m.0206909 21 19.8160091-13.07806 3.5831 6.20826z",
16923      fill: "#4bc7ee"
16924    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16925      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",
16926      fill: "#d4cdcb"
16927    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16928      d: "m.0206909 21 15.2439091-16.38571 4.3029 7.32271z",
16929      fill: "#c3d82e"
16930    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16931      d: "m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z",
16932      fill: "#e4ecb0"
16933    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16934      d: "m.0206909 21 19.5468091-9.063 1.6621 2.8344z",
16935      fill: "#209dbd"
16936    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16937      d: "m.0206909 21 17.9209091-11.82623 1.6259 2.76323z",
16938      fill: "#7cb3c9"
16939    })]
16940  });
16941  const embedDailymotionIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16942    viewBox: "0 0 24 24",
16943    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16944      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",
16945      fill: "#333436"
16946    })
16947  });
16948  const embedPinterestIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16949    width: "24",
16950    height: "24",
16951    viewBox: "0 0 24 24",
16952    version: "1.1",
16953    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16954      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"
16955    })
16956  });
16957  const embedWolframIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16958    viewBox: "0 0 44 44",
16959    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16960      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"
16961    })
16962  });
16963  const embedPocketCastsIcon = {
16964    foreground: '#f43e37',
16965    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16966      width: "24",
16967      height: "24",
16968      viewBox: "0 0 24 24",
16969      fill: "none",
16970      xmlns: "http://www.w3.org/2000/svg",
16971      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16972        fillRule: "evenodd",
16973        clipRule: "evenodd",
16974        d: "M24,12A12,12,0,1,1,12,0,12,12,0,0,1,24,12Z"
16975      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16976        fillRule: "evenodd",
16977        clipRule: "evenodd",
16978        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",
16979        fill: "#fff"
16980      })]
16981    })
16982  };
16983  const embedBlueskyIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16984    viewBox: "0 0 24 24",
16985    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16986      fill: "#0a7aff",
16987      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"
16988    })
16989  });
16990  
16991  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js
16992  /**
16993   * WordPress dependencies
16994   */
16995  
16996  
16997  const EmbedLoading = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
16998    className: "wp-block-embed is-loading",
16999    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
17000  });
17001  /* harmony default export */ const embed_loading = (EmbedLoading);
17002  
17003  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js
17004  /**
17005   * WordPress dependencies
17006   */
17007  
17008  
17009  
17010  
17011  const EmbedPlaceholder = ({
17012    icon,
17013    label,
17014    value,
17015    onSubmit,
17016    onChange,
17017    cannotEmbed,
17018    fallback,
17019    tryAgain
17020  }) => {
17021    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
17022      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
17023        icon: icon,
17024        showColors: true
17025      }),
17026      label: label,
17027      className: "wp-block-embed",
17028      instructions: (0,external_wp_i18n_namespaceObject.__)('Paste a link to the content you want to display on your site.'),
17029      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
17030        onSubmit: onSubmit,
17031        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
17032          __next40pxDefaultSize: true,
17033          type: "url",
17034          value: value || '',
17035          className: "wp-block-embed__placeholder-input",
17036          label: label,
17037          hideLabelFromVision: true,
17038          placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL to embed here…'),
17039          onChange: onChange
17040        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
17041          __next40pxDefaultSize: true,
17042          variant: "primary",
17043          type: "submit",
17044          children: (0,external_wp_i18n_namespaceObject._x)('Embed', 'button label')
17045        })]
17046      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17047        className: "wp-block-embed__learn-more",
17048        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
17049          href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/embeds/'),
17050          children: (0,external_wp_i18n_namespaceObject.__)('Learn more about embeds')
17051        })
17052      }), cannotEmbed && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
17053        spacing: 3,
17054        className: "components-placeholder__error",
17055        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17056          className: "components-placeholder__instructions",
17057          children: (0,external_wp_i18n_namespaceObject.__)('Sorry, this content could not be embedded.')
17058        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
17059          expanded: false,
17060          spacing: 3,
17061          justify: "flex-start",
17062          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
17063            __next40pxDefaultSize: true,
17064            variant: "secondary",
17065            onClick: tryAgain,
17066            children: (0,external_wp_i18n_namespaceObject._x)('Try again', 'button label')
17067          }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
17068            __next40pxDefaultSize: true,
17069            variant: "secondary",
17070            onClick: fallback,
17071            children: (0,external_wp_i18n_namespaceObject._x)('Convert to link', 'button label')
17072          })]
17073        })]
17074      })]
17075    });
17076  };
17077  /* harmony default export */ const embed_placeholder = (EmbedPlaceholder);
17078  
17079  ;// ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js
17080  /**
17081   * WordPress dependencies
17082   */
17083  
17084  
17085  
17086  /** @typedef {import('react').SyntheticEvent} SyntheticEvent */
17087  
17088  const attributeMap = {
17089    class: 'className',
17090    frameborder: 'frameBorder',
17091    marginheight: 'marginHeight',
17092    marginwidth: 'marginWidth'
17093  };
17094  function WpEmbedPreview({
17095    html
17096  }) {
17097    const ref = (0,external_wp_element_namespaceObject.useRef)();
17098    const props = (0,external_wp_element_namespaceObject.useMemo)(() => {
17099      const doc = new window.DOMParser().parseFromString(html, 'text/html');
17100      const iframe = doc.querySelector('iframe');
17101      const iframeProps = {};
17102      if (!iframe) {
17103        return iframeProps;
17104      }
17105      Array.from(iframe.attributes).forEach(({
17106        name,
17107        value
17108      }) => {
17109        if (name === 'style') {
17110          return;
17111        }
17112        iframeProps[attributeMap[name] || name] = value;
17113      });
17114      return iframeProps;
17115    }, [html]);
17116    (0,external_wp_element_namespaceObject.useEffect)(() => {
17117      const {
17118        ownerDocument
17119      } = ref.current;
17120      const {
17121        defaultView
17122      } = ownerDocument;
17123  
17124      /**
17125       * Checks for WordPress embed events signaling the height change when
17126       * iframe content loads or iframe's window is resized.  The event is
17127       * sent from WordPress core via the window.postMessage API.
17128       *
17129       * References:
17130       * window.postMessage:
17131       * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
17132       * WordPress core embed-template on load:
17133       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143
17134       * WordPress core embed-template on resize:
17135       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187
17136       *
17137       * @param {MessageEvent} event Message event.
17138       */
17139      function resizeWPembeds({
17140        data: {
17141          secret,
17142          message,
17143          value
17144        } = {}
17145      }) {
17146        if (message !== 'height' || secret !== props['data-secret']) {
17147          return;
17148        }
17149        ref.current.height = value;
17150      }
17151      defaultView.addEventListener('message', resizeWPembeds);
17152      return () => {
17153        defaultView.removeEventListener('message', resizeWPembeds);
17154      };
17155    }, []);
17156    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17157      className: "wp-block-embed__wrapper",
17158      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("iframe", {
17159        ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]),
17160        title: props.title,
17161        ...props
17162      })
17163    });
17164  }
17165  
17166  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js
17167  /**
17168   * Internal dependencies
17169   */
17170  
17171  
17172  /**
17173   * External dependencies
17174   */
17175  
17176  
17177  /**
17178   * WordPress dependencies
17179   */
17180  
17181  
17182  
17183  
17184  
17185  
17186  /**
17187   * Internal dependencies
17188   */
17189  
17190  
17191  function EmbedPreview({
17192    preview,
17193    previewable,
17194    url,
17195    type,
17196    isSelected,
17197    className,
17198    icon,
17199    label
17200  }) {
17201    const [interactive, setInteractive] = (0,external_wp_element_namespaceObject.useState)(false);
17202    if (!isSelected && interactive) {
17203      // We only want to change this when the block is not selected, because changing it when
17204      // the block becomes selected makes the overlap disappear too early. Hiding the overlay
17205      // happens on mouseup when the overlay is clicked.
17206      setInteractive(false);
17207    }
17208    const hideOverlay = () => {
17209      // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop
17210      // changing, because that happens on mouse down, and the overlay immediately disappears,
17211      // and the mouse event can end up in the preview content. We can't use onClick on
17212      // the overlay to hide it either, because then the editor misses the mouseup event, and
17213      // thinks we're multi-selecting blocks.
17214      setInteractive(true);
17215    };
17216    const {
17217      scripts
17218    } = preview;
17219    const html = 'photo' === type ? getPhotoHtml(preview) : preview.html;
17220    const embedSourceUrl = (0,external_wp_url_namespaceObject.getAuthority)(url);
17221    const iframeTitle = (0,external_wp_i18n_namespaceObject.sprintf)(
17222    // translators: %s: host providing embed content e.g: www.youtube.com
17223    (0,external_wp_i18n_namespaceObject.__)('Embedded content from %s'), embedSourceUrl);
17224    const sandboxClassnames = dist_clsx(type, className, 'wp-block-embed__wrapper');
17225  
17226    // Disabled because the overlay div doesn't actually have a role or functionality
17227    // as far as the user is concerned. We're just catching the first click so that
17228    // the block can be selected without interacting with the embed preview that the overlay covers.
17229    /* eslint-disable jsx-a11y/no-static-element-interactions */
17230    const embedWrapper = 'wp-embed' === type ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WpEmbedPreview, {
17231      html: html
17232    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
17233      className: "wp-block-embed__wrapper",
17234      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SandBox, {
17235        html: html,
17236        scripts: scripts,
17237        title: iframeTitle,
17238        type: sandboxClassnames,
17239        onFocus: hideOverlay
17240      }), !interactive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17241        className: "block-library-embed__interactive-overlay",
17242        onMouseUp: hideOverlay
17243      })]
17244    });
17245    /* eslint-enable jsx-a11y/no-static-element-interactions */
17246  
17247    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17248      children: previewable ? embedWrapper : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
17249        icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
17250          icon: icon,
17251          showColors: true
17252        }),
17253        label: label,
17254        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
17255          className: "components-placeholder__error",
17256          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17257            href: url,
17258            children: url
17259          })
17260        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
17261          className: "components-placeholder__error",
17262          children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: host providing embed content e.g: www.youtube.com */
17263          (0,external_wp_i18n_namespaceObject.__)("Embedded content from %s can't be previewed in the editor."), embedSourceUrl)
17264        })]
17265      })
17266    });
17267  }
17268  
17269  ;// ./node_modules/@wordpress/block-library/build-module/embed/edit.js
17270  /* wp:polyfill */
17271  /**
17272   * Internal dependencies
17273   */
17274  
17275  
17276  
17277  
17278  
17279  
17280  
17281  /**
17282   * External dependencies
17283   */
17284  
17285  
17286  /**
17287   * WordPress dependencies
17288   */
17289  
17290  
17291  
17292  
17293  
17294  
17295  
17296  
17297  
17298  const EmbedEdit = props => {
17299    const {
17300      attributes: {
17301        providerNameSlug,
17302        previewable,
17303        responsive,
17304        url: attributesUrl
17305      },
17306      attributes,
17307      isSelected,
17308      onReplace,
17309      setAttributes,
17310      insertBlocksAfter,
17311      onFocus
17312    } = props;
17313    const defaultEmbedInfo = {
17314      title: (0,external_wp_i18n_namespaceObject._x)('Embed', 'block title'),
17315      icon: embedContentIcon
17316    };
17317    const {
17318      icon,
17319      title
17320    } = getEmbedInfoByProvider(providerNameSlug) || defaultEmbedInfo;
17321    const [url, setURL] = (0,external_wp_element_namespaceObject.useState)(attributesUrl);
17322    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
17323    const {
17324      invalidateResolution
17325    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
17326    const {
17327      preview,
17328      fetching,
17329      themeSupportsResponsive,
17330      cannotEmbed,
17331      hasResolved
17332    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
17333      const {
17334        getEmbedPreview,
17335        isPreviewEmbedFallback,
17336        isRequestingEmbedPreview,
17337        getThemeSupports,
17338        hasFinishedResolution
17339      } = select(external_wp_coreData_namespaceObject.store);
17340      if (!attributesUrl) {
17341        return {
17342          fetching: false,
17343          cannotEmbed: false
17344        };
17345      }
17346      const embedPreview = getEmbedPreview(attributesUrl);
17347      const previewIsFallback = isPreviewEmbedFallback(attributesUrl);
17348  
17349      // The external oEmbed provider does not exist. We got no type info and no html.
17350      const badEmbedProvider = embedPreview?.html === false && embedPreview?.type === undefined;
17351      // Some WordPress URLs that can't be embedded will cause the API to return
17352      // a valid JSON response with no HTML and `data.status` set to 404, rather
17353      // than generating a fallback response as other embeds do.
17354      const wordpressCantEmbed = embedPreview?.data?.status === 404;
17355      const validPreview = !!embedPreview && !badEmbedProvider && !wordpressCantEmbed;
17356      return {
17357        preview: validPreview ? embedPreview : undefined,
17358        fetching: isRequestingEmbedPreview(attributesUrl),
17359        themeSupportsResponsive: getThemeSupports()['responsive-embeds'],
17360        cannotEmbed: !validPreview || previewIsFallback,
17361        hasResolved: hasFinishedResolution('getEmbedPreview', [attributesUrl])
17362      };
17363    }, [attributesUrl]);
17364  
17365    /**
17366     * Returns the attributes derived from the preview, merged with the current attributes.
17367     *
17368     * @return {Object} Merged attributes.
17369     */
17370    const getMergedAttributes = () => getMergedAttributesWithPreview(attributes, preview, title, responsive);
17371    const toggleResponsive = () => {
17372      const {
17373        allowResponsive,
17374        className
17375      } = attributes;
17376      const {
17377        html
17378      } = preview;
17379      const newAllowResponsive = !allowResponsive;
17380      setAttributes({
17381        allowResponsive: newAllowResponsive,
17382        className: getClassNames(html, className, responsive && newAllowResponsive)
17383      });
17384    };
17385    (0,external_wp_element_namespaceObject.useEffect)(() => {
17386      if (preview?.html || !cannotEmbed || !hasResolved) {
17387        return;
17388      }
17389  
17390      // At this stage, we're not fetching the preview and know it can't be embedded,
17391      // so try removing any trailing slash, and resubmit.
17392      const newURL = attributesUrl.replace(/\/$/, '');
17393      setURL(newURL);
17394      setIsEditingURL(false);
17395      setAttributes({
17396        url: newURL
17397      });
17398    }, [preview?.html, attributesUrl, cannotEmbed, hasResolved, setAttributes]);
17399  
17400    // Try a different provider in case the embed url is not supported.
17401    (0,external_wp_element_namespaceObject.useEffect)(() => {
17402      if (!cannotEmbed || fetching || !url) {
17403        return;
17404      }
17405  
17406      // Until X provider is supported in WordPress, as a workaround we use Twitter provider.
17407      if ((0,external_wp_url_namespaceObject.getAuthority)(url) === 'x.com') {
17408        const newURL = new URL(url);
17409        newURL.host = 'twitter.com';
17410        setAttributes({
17411          url: newURL.toString()
17412        });
17413      }
17414    }, [url, cannotEmbed, fetching, setAttributes]);
17415  
17416    // Handle incoming preview.
17417    (0,external_wp_element_namespaceObject.useEffect)(() => {
17418      if (preview && !isEditingURL) {
17419        // When obtaining an incoming preview,
17420        // we set the attributes derived from the preview data.
17421        const mergedAttributes = getMergedAttributes();
17422        setAttributes(mergedAttributes);
17423        if (onReplace) {
17424          const upgradedBlock = createUpgradedEmbedBlock(props, mergedAttributes);
17425          if (upgradedBlock) {
17426            onReplace(upgradedBlock);
17427          }
17428        }
17429      }
17430    }, [preview, isEditingURL]);
17431    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
17432    if (fetching) {
17433      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
17434        ...blockProps,
17435        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_loading, {})
17436      });
17437    }
17438  
17439    // translators: %s: type of embed e.g: "YouTube", "Twitter", etc. "Embed" is used when no specific type exists
17440    const label = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s URL'), title);
17441  
17442    // No preview, or we can't embed the current URL, or we've clicked the edit button.
17443    const showEmbedPlaceholder = !preview || cannotEmbed || isEditingURL;
17444    if (showEmbedPlaceholder) {
17445      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
17446        ...blockProps,
17447        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_placeholder, {
17448          icon: icon,
17449          label: label,
17450          onFocus: onFocus,
17451          onSubmit: event => {
17452            if (event) {
17453              event.preventDefault();
17454            }
17455  
17456            // If the embed URL was changed, we need to reset the aspect ratio class.
17457            // To do this we have to remove the existing ratio class so it can be recalculated.
17458            const blockClass = removeAspectRatioClasses(attributes.className);
17459            setIsEditingURL(false);
17460            setAttributes({
17461              url,
17462              className: blockClass
17463            });
17464          },
17465          value: url,
17466          cannotEmbed: cannotEmbed,
17467          onChange: value => setURL(value),
17468          fallback: () => fallback(url, onReplace),
17469          tryAgain: () => {
17470            invalidateResolution('getEmbedPreview', [url]);
17471          }
17472        })
17473      });
17474    }
17475  
17476    // Even though we set attributes that get derived from the preview,
17477    // we don't access them directly because for the initial render,
17478    // the `setAttributes` call will not have taken effect. If we're
17479    // rendering responsive content, setting the responsive classes
17480    // after the preview has been rendered can result in unwanted
17481    // clipping or scrollbars. The `getAttributesFromPreview` function
17482    // that `getMergedAttributes` uses is memoized so that we're not
17483    // calculating them on every render.
17484    const {
17485      caption,
17486      type,
17487      allowResponsive,
17488      className: classFromPreview
17489    } = getMergedAttributes();
17490    const className = dist_clsx(classFromPreview, props.className);
17491    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17492      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_controls, {
17493        showEditButton: preview && !cannotEmbed,
17494        themeSupportsResponsive: themeSupportsResponsive,
17495        blockSupportsResponsive: responsive,
17496        allowResponsive: allowResponsive,
17497        toggleResponsive: toggleResponsive,
17498        switchBackToURLInput: () => setIsEditingURL(true)
17499      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
17500        ...blockProps,
17501        className: dist_clsx(blockProps.className, className, {
17502          [`is-type-$type}`]: type,
17503          [`is-provider-$providerNameSlug}`]: providerNameSlug,
17504          [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
17505        }),
17506        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EmbedPreview, {
17507          preview: preview,
17508          previewable: previewable,
17509          className: className,
17510          url: url,
17511          type: type,
17512          caption: caption,
17513          onCaptionChange: value => setAttributes({
17514            caption: value
17515          }),
17516          isSelected: isSelected,
17517          icon: icon,
17518          label: label,
17519          insertBlocksAfter: insertBlocksAfter,
17520          attributes: attributes,
17521          setAttributes: setAttributes
17522        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
17523          attributes: attributes,
17524          setAttributes: setAttributes,
17525          isSelected: isSelected,
17526          insertBlocksAfter: insertBlocksAfter,
17527          label: (0,external_wp_i18n_namespaceObject.__)('Embed caption text'),
17528          showToolbarButton: isSelected
17529        })]
17530      })]
17531    });
17532  };
17533  /* harmony default export */ const embed_edit = (EmbedEdit);
17534  
17535  ;// ./node_modules/@wordpress/block-library/build-module/embed/save.js
17536  /**
17537   * External dependencies
17538   */
17539  
17540  
17541  /**
17542   * WordPress dependencies
17543   */
17544  
17545  
17546  function embed_save_save({
17547    attributes
17548  }) {
17549    const {
17550      url,
17551      caption,
17552      type,
17553      providerNameSlug
17554    } = attributes;
17555    if (!url) {
17556      return null;
17557    }
17558    const className = dist_clsx('wp-block-embed', {
17559      [`is-type-$type}`]: type,
17560      [`is-provider-$providerNameSlug}`]: providerNameSlug,
17561      [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
17562    });
17563    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
17564      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
17565        className
17566      }),
17567      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17568        className: "wp-block-embed__wrapper",
17569        children: `\n$url}\n` /* URL needs to be on its own line. */
17570      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17571        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
17572        tagName: "figcaption",
17573        value: caption
17574      })]
17575    });
17576  }
17577  
17578  ;// ./node_modules/@wordpress/block-library/build-module/embed/transforms.js
17579  /**
17580   * WordPress dependencies
17581   */
17582  
17583  
17584  /**
17585   * Internal dependencies
17586   */
17587  const transforms_metadata = {
17588    $schema: "https://schemas.wp.org/trunk/block.json",
17589    apiVersion: 3,
17590    name: "core/embed",
17591    title: "Embed",
17592    category: "embed",
17593    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
17594    textdomain: "default",
17595    attributes: {
17596      url: {
17597        type: "string",
17598        role: "content"
17599      },
17600      caption: {
17601        type: "rich-text",
17602        source: "rich-text",
17603        selector: "figcaption",
17604        role: "content"
17605      },
17606      type: {
17607        type: "string",
17608        role: "content"
17609      },
17610      providerNameSlug: {
17611        type: "string",
17612        role: "content"
17613      },
17614      allowResponsive: {
17615        type: "boolean",
17616        "default": true
17617      },
17618      responsive: {
17619        type: "boolean",
17620        "default": false,
17621        role: "content"
17622      },
17623      previewable: {
17624        type: "boolean",
17625        "default": true,
17626        role: "content"
17627      }
17628    },
17629    supports: {
17630      align: true,
17631      spacing: {
17632        margin: true
17633      },
17634      interactivity: {
17635        clientNavigation: true
17636      }
17637    },
17638    editorStyle: "wp-block-embed-editor",
17639    style: "wp-block-embed"
17640  };
17641  
17642  const {
17643    name: EMBED_BLOCK
17644  } = transforms_metadata;
17645  
17646  /**
17647   * Default transforms for generic embeds.
17648   */
17649  const embed_transforms_transforms = {
17650    from: [{
17651      type: 'raw',
17652      isMatch: node => node.nodeName === 'P' && /^\s*(https?:\/\/\S+)\s*$/i.test(node.textContent) && node.textContent?.match(/https/gi)?.length === 1,
17653      transform: node => {
17654        return (0,external_wp_blocks_namespaceObject.createBlock)(EMBED_BLOCK, {
17655          url: node.textContent.trim()
17656        });
17657      }
17658    }],
17659    to: [{
17660      type: 'block',
17661      blocks: ['core/paragraph'],
17662      isMatch: ({
17663        url
17664      }) => !!url,
17665      transform: ({
17666        url,
17667        caption,
17668        className
17669      }) => {
17670        let value = `<a href="$url}">$url}</a>`;
17671        if (caption?.trim()) {
17672          value += `<br />$caption}`;
17673        }
17674        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
17675          content: value,
17676          className: removeAspectRatioClasses(className)
17677        });
17678      }
17679    }]
17680  };
17681  /* harmony default export */ const embed_transforms = (embed_transforms_transforms);
17682  
17683  ;// ./node_modules/@wordpress/block-library/build-module/embed/variations.js
17684  /**
17685   * WordPress dependencies
17686   */
17687  
17688  
17689  /**
17690   * Internal dependencies
17691   */
17692  
17693  
17694  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
17695  
17696  function getTitle(providerName) {
17697    return (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: provider name */
17698    (0,external_wp_i18n_namespaceObject.__)('%s Embed'), providerName);
17699  }
17700  
17701  /**
17702   * The embed provider services.
17703   *
17704   * @type {WPBlockVariation[]}
17705   */
17706  const embed_variations_variations = [{
17707    name: 'twitter',
17708    title: getTitle('Twitter'),
17709    icon: embedTwitterIcon,
17710    keywords: ['tweet', (0,external_wp_i18n_namespaceObject.__)('social')],
17711    description: (0,external_wp_i18n_namespaceObject.__)('Embed a tweet.'),
17712    patterns: [/^https?:\/\/(www\.)?twitter\.com\/.+/i],
17713    attributes: {
17714      providerNameSlug: 'twitter',
17715      responsive: true
17716    }
17717  }, {
17718    name: 'youtube',
17719    title: getTitle('YouTube'),
17720    icon: embedYouTubeIcon,
17721    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('video')],
17722    description: (0,external_wp_i18n_namespaceObject.__)('Embed a YouTube video.'),
17723    patterns: [/^https?:\/\/((m|www)\.)?youtube\.com\/.+/i, /^https?:\/\/youtu\.be\/.+/i],
17724    attributes: {
17725      providerNameSlug: 'youtube',
17726      responsive: true
17727    }
17728  }, {
17729    // Deprecate Facebook Embed per FB policy
17730    // See: https://developers.facebook.com/docs/plugins/oembed-legacy
17731    name: 'facebook',
17732    title: getTitle('Facebook'),
17733    icon: embedFacebookIcon,
17734    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
17735    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Facebook post.'),
17736    scope: ['block'],
17737    patterns: [],
17738    attributes: {
17739      providerNameSlug: 'facebook',
17740      previewable: false,
17741      responsive: true
17742    }
17743  }, {
17744    // Deprecate Instagram per FB policy
17745    // See: https://developers.facebook.com/docs/instagram/oembed-legacy
17746    name: 'instagram',
17747    title: getTitle('Instagram'),
17748    icon: embedInstagramIcon,
17749    keywords: [(0,external_wp_i18n_namespaceObject.__)('image'), (0,external_wp_i18n_namespaceObject.__)('social')],
17750    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Instagram post.'),
17751    scope: ['block'],
17752    patterns: [],
17753    attributes: {
17754      providerNameSlug: 'instagram',
17755      responsive: true
17756    }
17757  }, {
17758    name: 'wordpress',
17759    title: getTitle('WordPress'),
17760    icon: embedWordPressIcon,
17761    keywords: [(0,external_wp_i18n_namespaceObject.__)('post'), (0,external_wp_i18n_namespaceObject.__)('blog')],
17762    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress post.'),
17763    attributes: {
17764      providerNameSlug: 'wordpress'
17765    }
17766  }, {
17767    name: 'soundcloud',
17768    title: getTitle('SoundCloud'),
17769    icon: embedAudioIcon,
17770    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17771    description: (0,external_wp_i18n_namespaceObject.__)('Embed SoundCloud content.'),
17772    patterns: [/^https?:\/\/(www\.)?soundcloud\.com\/.+/i],
17773    attributes: {
17774      providerNameSlug: 'soundcloud',
17775      responsive: true
17776    }
17777  }, {
17778    name: 'spotify',
17779    title: getTitle('Spotify'),
17780    icon: embedSpotifyIcon,
17781    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17782    description: (0,external_wp_i18n_namespaceObject.__)('Embed Spotify content.'),
17783    patterns: [/^https?:\/\/(open|play)\.spotify\.com\/.+/i],
17784    attributes: {
17785      providerNameSlug: 'spotify',
17786      responsive: true
17787    }
17788  }, {
17789    name: 'flickr',
17790    title: getTitle('Flickr'),
17791    icon: embedFlickrIcon,
17792    keywords: [(0,external_wp_i18n_namespaceObject.__)('image')],
17793    description: (0,external_wp_i18n_namespaceObject.__)('Embed Flickr content.'),
17794    patterns: [/^https?:\/\/(www\.)?flickr\.com\/.+/i, /^https?:\/\/flic\.kr\/.+/i],
17795    attributes: {
17796      providerNameSlug: 'flickr',
17797      responsive: true
17798    }
17799  }, {
17800    name: 'vimeo',
17801    title: getTitle('Vimeo'),
17802    icon: embedVimeoIcon,
17803    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17804    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Vimeo video.'),
17805    patterns: [/^https?:\/\/(www\.)?vimeo\.com\/.+/i],
17806    attributes: {
17807      providerNameSlug: 'vimeo',
17808      responsive: true
17809    }
17810  }, {
17811    name: 'animoto',
17812    title: getTitle('Animoto'),
17813    icon: embedAnimotoIcon,
17814    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Animoto video.'),
17815    patterns: [/^https?:\/\/(www\.)?(animoto|video214)\.com\/.+/i],
17816    attributes: {
17817      providerNameSlug: 'animoto',
17818      responsive: true
17819    }
17820  }, {
17821    name: 'cloudup',
17822    title: getTitle('Cloudup'),
17823    icon: embedContentIcon,
17824    description: (0,external_wp_i18n_namespaceObject.__)('Embed Cloudup content.'),
17825    patterns: [/^https?:\/\/cloudup\.com\/.+/i],
17826    attributes: {
17827      providerNameSlug: 'cloudup',
17828      responsive: true
17829    }
17830  }, {
17831    // Deprecated since CollegeHumor content is now powered by YouTube.
17832    name: 'collegehumor',
17833    title: getTitle('CollegeHumor'),
17834    icon: embedVideoIcon,
17835    description: (0,external_wp_i18n_namespaceObject.__)('Embed CollegeHumor content.'),
17836    scope: ['block'],
17837    patterns: [],
17838    attributes: {
17839      providerNameSlug: 'collegehumor',
17840      responsive: true
17841    }
17842  }, {
17843    name: 'crowdsignal',
17844    title: getTitle('Crowdsignal'),
17845    icon: embedContentIcon,
17846    keywords: ['polldaddy', (0,external_wp_i18n_namespaceObject.__)('survey')],
17847    description: (0,external_wp_i18n_namespaceObject.__)('Embed Crowdsignal (formerly Polldaddy) content.'),
17848    patterns: [/^https?:\/\/((.+\.)?polldaddy\.com|poll\.fm|.+\.crowdsignal\.net|.+\.survey\.fm)\/.+/i],
17849    attributes: {
17850      providerNameSlug: 'crowdsignal',
17851      responsive: true
17852    }
17853  }, {
17854    name: 'dailymotion',
17855    title: getTitle('Dailymotion'),
17856    icon: embedDailymotionIcon,
17857    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17858    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Dailymotion video.'),
17859    patterns: [/^https?:\/\/(www\.)?dailymotion\.com\/.+/i],
17860    attributes: {
17861      providerNameSlug: 'dailymotion',
17862      responsive: true
17863    }
17864  }, {
17865    name: 'imgur',
17866    title: getTitle('Imgur'),
17867    icon: embedPhotoIcon,
17868    description: (0,external_wp_i18n_namespaceObject.__)('Embed Imgur content.'),
17869    patterns: [/^https?:\/\/(.+\.)?imgur\.com\/.+/i],
17870    attributes: {
17871      providerNameSlug: 'imgur',
17872      responsive: true
17873    }
17874  }, {
17875    name: 'issuu',
17876    title: getTitle('Issuu'),
17877    icon: embedContentIcon,
17878    description: (0,external_wp_i18n_namespaceObject.__)('Embed Issuu content.'),
17879    patterns: [/^https?:\/\/(www\.)?issuu\.com\/.+/i],
17880    attributes: {
17881      providerNameSlug: 'issuu',
17882      responsive: true
17883    }
17884  }, {
17885    name: 'kickstarter',
17886    title: getTitle('Kickstarter'),
17887    icon: embedContentIcon,
17888    description: (0,external_wp_i18n_namespaceObject.__)('Embed Kickstarter content.'),
17889    patterns: [/^https?:\/\/(www\.)?kickstarter\.com\/.+/i, /^https?:\/\/kck\.st\/.+/i],
17890    attributes: {
17891      providerNameSlug: 'kickstarter',
17892      responsive: true
17893    }
17894  }, {
17895    name: 'mixcloud',
17896    title: getTitle('Mixcloud'),
17897    icon: embedAudioIcon,
17898    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17899    description: (0,external_wp_i18n_namespaceObject.__)('Embed Mixcloud content.'),
17900    patterns: [/^https?:\/\/(www\.)?mixcloud\.com\/.+/i],
17901    attributes: {
17902      providerNameSlug: 'mixcloud',
17903      responsive: true
17904    }
17905  }, {
17906    name: 'pocket-casts',
17907    title: getTitle('Pocket Casts'),
17908    icon: embedPocketCastsIcon,
17909    keywords: [(0,external_wp_i18n_namespaceObject.__)('podcast'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17910    description: (0,external_wp_i18n_namespaceObject.__)('Embed a podcast player from Pocket Casts.'),
17911    patterns: [/^https:\/\/pca.st\/\w+/i],
17912    attributes: {
17913      providerNameSlug: 'pocket-casts',
17914      responsive: true
17915    }
17916  }, {
17917    name: 'reddit',
17918    title: getTitle('Reddit'),
17919    icon: embedRedditIcon,
17920    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Reddit thread.'),
17921    patterns: [/^https?:\/\/(www\.)?reddit\.com\/.+/i],
17922    attributes: {
17923      providerNameSlug: 'reddit',
17924      responsive: true
17925    }
17926  }, {
17927    name: 'reverbnation',
17928    title: getTitle('ReverbNation'),
17929    icon: embedAudioIcon,
17930    description: (0,external_wp_i18n_namespaceObject.__)('Embed ReverbNation content.'),
17931    patterns: [/^https?:\/\/(www\.)?reverbnation\.com\/.+/i],
17932    attributes: {
17933      providerNameSlug: 'reverbnation',
17934      responsive: true
17935    }
17936  }, {
17937    name: 'screencast',
17938    title: getTitle('Screencast'),
17939    icon: embedVideoIcon,
17940    description: (0,external_wp_i18n_namespaceObject.__)('Embed Screencast content.'),
17941    patterns: [/^https?:\/\/(www\.)?screencast\.com\/.+/i],
17942    attributes: {
17943      providerNameSlug: 'screencast',
17944      responsive: true
17945    }
17946  }, {
17947    name: 'scribd',
17948    title: getTitle('Scribd'),
17949    icon: embedContentIcon,
17950    description: (0,external_wp_i18n_namespaceObject.__)('Embed Scribd content.'),
17951    patterns: [/^https?:\/\/(www\.)?scribd\.com\/.+/i],
17952    attributes: {
17953      providerNameSlug: 'scribd',
17954      responsive: true
17955    }
17956  }, {
17957    name: 'smugmug',
17958    title: getTitle('SmugMug'),
17959    icon: embedPhotoIcon,
17960    description: (0,external_wp_i18n_namespaceObject.__)('Embed SmugMug content.'),
17961    patterns: [/^https?:\/\/(.+\.)?smugmug\.com\/.*/i],
17962    attributes: {
17963      providerNameSlug: 'smugmug',
17964      previewable: false,
17965      responsive: true
17966    }
17967  }, {
17968    name: 'speaker-deck',
17969    title: getTitle('Speaker Deck'),
17970    icon: embedContentIcon,
17971    description: (0,external_wp_i18n_namespaceObject.__)('Embed Speaker Deck content.'),
17972    patterns: [/^https?:\/\/(www\.)?speakerdeck\.com\/.+/i],
17973    attributes: {
17974      providerNameSlug: 'speaker-deck',
17975      responsive: true
17976    }
17977  }, {
17978    name: 'tiktok',
17979    title: getTitle('TikTok'),
17980    icon: embedVideoIcon,
17981    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17982    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TikTok video.'),
17983    patterns: [/^https?:\/\/(www\.)?tiktok\.com\/.+/i],
17984    attributes: {
17985      providerNameSlug: 'tiktok',
17986      responsive: true
17987    }
17988  }, {
17989    name: 'ted',
17990    title: getTitle('TED'),
17991    icon: embedVideoIcon,
17992    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TED video.'),
17993    patterns: [/^https?:\/\/(www\.|embed\.)?ted\.com\/.+/i],
17994    attributes: {
17995      providerNameSlug: 'ted',
17996      responsive: true
17997    }
17998  }, {
17999    name: 'tumblr',
18000    title: getTitle('Tumblr'),
18001    icon: embedTumblrIcon,
18002    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
18003    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Tumblr post.'),
18004    patterns: [/^https?:\/\/(.+)\.tumblr\.com\/.+/i],
18005    attributes: {
18006      providerNameSlug: 'tumblr',
18007      responsive: true
18008    }
18009  }, {
18010    name: 'videopress',
18011    title: getTitle('VideoPress'),
18012    icon: embedVideoIcon,
18013    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
18014    description: (0,external_wp_i18n_namespaceObject.__)('Embed a VideoPress video.'),
18015    patterns: [/^https?:\/\/videopress\.com\/.+/i],
18016    attributes: {
18017      providerNameSlug: 'videopress',
18018      responsive: true
18019    }
18020  }, {
18021    name: 'wordpress-tv',
18022    title: getTitle('WordPress.tv'),
18023    icon: embedVideoIcon,
18024    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress.tv video.'),
18025    patterns: [/^https?:\/\/wordpress\.tv\/.+/i],
18026    attributes: {
18027      providerNameSlug: 'wordpress-tv',
18028      responsive: true
18029    }
18030  }, {
18031    name: 'amazon-kindle',
18032    title: getTitle('Amazon Kindle'),
18033    icon: embedAmazonIcon,
18034    keywords: [(0,external_wp_i18n_namespaceObject.__)('ebook')],
18035    description: (0,external_wp_i18n_namespaceObject.__)('Embed Amazon Kindle content.'),
18036    patterns: [/^https?:\/\/([a-z0-9-]+\.)?(amazon|amzn)(\.[a-z]{2,4})+\/.+/i, /^https?:\/\/(www\.)?(a\.co|z\.cn)\/.+/i],
18037    attributes: {
18038      providerNameSlug: 'amazon-kindle'
18039    }
18040  }, {
18041    name: 'pinterest',
18042    title: getTitle('Pinterest'),
18043    icon: embedPinterestIcon,
18044    keywords: [(0,external_wp_i18n_namespaceObject.__)('social'), (0,external_wp_i18n_namespaceObject.__)('bookmark')],
18045    description: (0,external_wp_i18n_namespaceObject.__)('Embed Pinterest pins, boards, and profiles.'),
18046    patterns: [/^https?:\/\/([a-z]{2}|www)\.pinterest\.com(\.(au|mx))?\/.*/i],
18047    attributes: {
18048      providerNameSlug: 'pinterest'
18049    }
18050  }, {
18051    name: 'wolfram-cloud',
18052    title: getTitle('Wolfram'),
18053    icon: embedWolframIcon,
18054    description: (0,external_wp_i18n_namespaceObject.__)('Embed Wolfram notebook content.'),
18055    patterns: [/^https?:\/\/(www\.)?wolframcloud\.com\/obj\/.+/i],
18056    attributes: {
18057      providerNameSlug: 'wolfram-cloud',
18058      responsive: true
18059    }
18060  }, {
18061    name: 'bluesky',
18062    title: getTitle('Bluesky'),
18063    icon: embedBlueskyIcon,
18064    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Bluesky post.'),
18065    patterns: [/^https?:\/\/bsky\.app\/profile\/.+\/post\/.+/i],
18066    attributes: {
18067      providerNameSlug: 'bluesky'
18068    }
18069  }];
18070  
18071  /**
18072   * Add `isActive` function to all `embed` variations, if not defined.
18073   * `isActive` function is used to find a variation match from a created
18074   *  Block by providing its attributes.
18075   */
18076  embed_variations_variations.forEach(variation => {
18077    if (variation.isActive) {
18078      return;
18079    }
18080    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.providerNameSlug === variationAttributes.providerNameSlug;
18081  });
18082  /* harmony default export */ const embed_variations = (embed_variations_variations);
18083  
18084  ;// ./node_modules/@wordpress/block-library/build-module/embed/deprecated.js
18085  /**
18086   * External dependencies
18087   */
18088  
18089  
18090  /**
18091   * Internal dependencies
18092   */
18093  const embed_deprecated_metadata = {
18094    $schema: "https://schemas.wp.org/trunk/block.json",
18095    apiVersion: 3,
18096    name: "core/embed",
18097    title: "Embed",
18098    category: "embed",
18099    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
18100    textdomain: "default",
18101    attributes: {
18102      url: {
18103        type: "string",
18104        role: "content"
18105      },
18106      caption: {
18107        type: "rich-text",
18108        source: "rich-text",
18109        selector: "figcaption",
18110        role: "content"
18111      },
18112      type: {
18113        type: "string",
18114        role: "content"
18115      },
18116      providerNameSlug: {
18117        type: "string",
18118        role: "content"
18119      },
18120      allowResponsive: {
18121        type: "boolean",
18122        "default": true
18123      },
18124      responsive: {
18125        type: "boolean",
18126        "default": false,
18127        role: "content"
18128      },
18129      previewable: {
18130        type: "boolean",
18131        "default": true,
18132        role: "content"
18133      }
18134    },
18135    supports: {
18136      align: true,
18137      spacing: {
18138        margin: true
18139      },
18140      interactivity: {
18141        clientNavigation: true
18142      }
18143    },
18144    editorStyle: "wp-block-embed-editor",
18145    style: "wp-block-embed"
18146  };
18147  /**
18148   * WordPress dependencies
18149   */
18150  
18151  
18152  const {
18153    attributes: embed_deprecated_blockAttributes
18154  } = embed_deprecated_metadata;
18155  
18156  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
18157  // to the embed figcaption element.
18158  const deprecated_v2 = {
18159    attributes: embed_deprecated_blockAttributes,
18160    save({
18161      attributes
18162    }) {
18163      const {
18164        url,
18165        caption,
18166        type,
18167        providerNameSlug
18168      } = attributes;
18169      if (!url) {
18170        return null;
18171      }
18172      const className = dist_clsx('wp-block-embed', {
18173        [`is-type-$type}`]: type,
18174        [`is-provider-$providerNameSlug}`]: providerNameSlug,
18175        [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
18176      });
18177      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
18178        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
18179          className
18180        }),
18181        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18182          className: "wp-block-embed__wrapper",
18183          children: `\n$url}\n` /* URL needs to be on its own line. */
18184        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18185          tagName: "figcaption",
18186          value: caption
18187        })]
18188      });
18189    }
18190  };
18191  const embed_deprecated_v1 = {
18192    attributes: embed_deprecated_blockAttributes,
18193    save({
18194      attributes: {
18195        url,
18196        caption,
18197        type,
18198        providerNameSlug
18199      }
18200    }) {
18201      if (!url) {
18202        return null;
18203      }
18204      const embedClassName = dist_clsx('wp-block-embed', {
18205        [`is-type-$type}`]: type,
18206        [`is-provider-$providerNameSlug}`]: providerNameSlug
18207      });
18208      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
18209        className: embedClassName,
18210        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, {
18211          tagName: "figcaption",
18212          value: caption
18213        })]
18214      });
18215    }
18216  };
18217  const embed_deprecated_deprecated = [deprecated_v2, embed_deprecated_v1];
18218  /* harmony default export */ const embed_deprecated = (embed_deprecated_deprecated);
18219  
18220  ;// ./node_modules/@wordpress/block-library/build-module/embed/index.js
18221  /**
18222   * Internal dependencies
18223   */
18224  
18225  
18226  
18227  const embed_metadata = {
18228    $schema: "https://schemas.wp.org/trunk/block.json",
18229    apiVersion: 3,
18230    name: "core/embed",
18231    title: "Embed",
18232    category: "embed",
18233    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
18234    textdomain: "default",
18235    attributes: {
18236      url: {
18237        type: "string",
18238        role: "content"
18239      },
18240      caption: {
18241        type: "rich-text",
18242        source: "rich-text",
18243        selector: "figcaption",
18244        role: "content"
18245      },
18246      type: {
18247        type: "string",
18248        role: "content"
18249      },
18250      providerNameSlug: {
18251        type: "string",
18252        role: "content"
18253      },
18254      allowResponsive: {
18255        type: "boolean",
18256        "default": true
18257      },
18258      responsive: {
18259        type: "boolean",
18260        "default": false,
18261        role: "content"
18262      },
18263      previewable: {
18264        type: "boolean",
18265        "default": true,
18266        role: "content"
18267      }
18268    },
18269    supports: {
18270      align: true,
18271      spacing: {
18272        margin: true
18273      },
18274      interactivity: {
18275        clientNavigation: true
18276      }
18277    },
18278    editorStyle: "wp-block-embed-editor",
18279    style: "wp-block-embed"
18280  };
18281  
18282  
18283  
18284  
18285  const {
18286    name: embed_name
18287  } = embed_metadata;
18288  
18289  const embed_settings = {
18290    icon: embedContentIcon,
18291    edit: embed_edit,
18292    save: embed_save_save,
18293    transforms: embed_transforms,
18294    variations: embed_variations,
18295    deprecated: embed_deprecated
18296  };
18297  const embed_init = () => initBlock({
18298    name: embed_name,
18299    metadata: embed_metadata,
18300    settings: embed_settings
18301  });
18302  
18303  ;// ./node_modules/@wordpress/icons/build-module/library/file.js
18304  /**
18305   * WordPress dependencies
18306   */
18307  
18308  
18309  const file = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
18310    viewBox: "0 0 24 24",
18311    xmlns: "http://www.w3.org/2000/svg",
18312    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
18313      fillRule: "evenodd",
18314      clipRule: "evenodd",
18315      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"
18316    })
18317  });
18318  /* harmony default export */ const library_file = (file);
18319  
18320  ;// ./node_modules/@wordpress/block-library/build-module/file/deprecated.js
18321  /**
18322   * External dependencies
18323   */
18324  
18325  
18326  /**
18327   * WordPress dependencies
18328   */
18329  
18330  
18331  
18332  // Version of the file block without PR#43050 removing the translated aria-label.
18333  
18334  const deprecated_v3 = {
18335    attributes: {
18336      id: {
18337        type: 'number'
18338      },
18339      href: {
18340        type: 'string'
18341      },
18342      fileId: {
18343        type: 'string',
18344        source: 'attribute',
18345        selector: 'a:not([download])',
18346        attribute: 'id'
18347      },
18348      fileName: {
18349        type: 'string',
18350        source: 'html',
18351        selector: 'a:not([download])'
18352      },
18353      textLinkHref: {
18354        type: 'string',
18355        source: 'attribute',
18356        selector: 'a:not([download])',
18357        attribute: 'href'
18358      },
18359      textLinkTarget: {
18360        type: 'string',
18361        source: 'attribute',
18362        selector: 'a:not([download])',
18363        attribute: 'target'
18364      },
18365      showDownloadButton: {
18366        type: 'boolean',
18367        default: true
18368      },
18369      downloadButtonText: {
18370        type: 'string',
18371        source: 'html',
18372        selector: 'a[download]'
18373      },
18374      displayPreview: {
18375        type: 'boolean'
18376      },
18377      previewHeight: {
18378        type: 'number',
18379        default: 600
18380      }
18381    },
18382    supports: {
18383      anchor: true,
18384      align: true
18385    },
18386    save({
18387      attributes
18388    }) {
18389      const {
18390        href,
18391        fileId,
18392        fileName,
18393        textLinkHref,
18394        textLinkTarget,
18395        showDownloadButton,
18396        downloadButtonText,
18397        displayPreview,
18398        previewHeight
18399      } = attributes;
18400      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. */
18401      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
18402      const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
18403  
18404      // Only output an `aria-describedby` when the element it's referring to is
18405      // actually rendered.
18406      const describedById = hasFilename ? fileId : undefined;
18407      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18408        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18409        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18410          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18411            className: "wp-block-file__embed",
18412            data: href,
18413            type: "application/pdf",
18414            style: {
18415              width: '100%',
18416              height: `$previewHeight}px`
18417            },
18418            "aria-label": pdfEmbedLabel
18419          })
18420        }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18421          id: describedById,
18422          href: textLinkHref,
18423          target: textLinkTarget,
18424          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18425          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18426            value: fileName
18427          })
18428        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18429          href: href,
18430          className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
18431          download: true,
18432          "aria-describedby": describedById,
18433          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18434            value: downloadButtonText
18435          })
18436        })]
18437      });
18438    }
18439  };
18440  
18441  // In #41239 the button was made an element button which added a `wp-element-button` classname
18442  // to the download link element.
18443  const file_deprecated_v2 = {
18444    attributes: {
18445      id: {
18446        type: 'number'
18447      },
18448      href: {
18449        type: 'string'
18450      },
18451      fileId: {
18452        type: 'string',
18453        source: 'attribute',
18454        selector: 'a:not([download])',
18455        attribute: 'id'
18456      },
18457      fileName: {
18458        type: 'string',
18459        source: 'html',
18460        selector: 'a:not([download])'
18461      },
18462      textLinkHref: {
18463        type: 'string',
18464        source: 'attribute',
18465        selector: 'a:not([download])',
18466        attribute: 'href'
18467      },
18468      textLinkTarget: {
18469        type: 'string',
18470        source: 'attribute',
18471        selector: 'a:not([download])',
18472        attribute: 'target'
18473      },
18474      showDownloadButton: {
18475        type: 'boolean',
18476        default: true
18477      },
18478      downloadButtonText: {
18479        type: 'string',
18480        source: 'html',
18481        selector: 'a[download]'
18482      },
18483      displayPreview: {
18484        type: 'boolean'
18485      },
18486      previewHeight: {
18487        type: 'number',
18488        default: 600
18489      }
18490    },
18491    supports: {
18492      anchor: true,
18493      align: true
18494    },
18495    save({
18496      attributes
18497    }) {
18498      const {
18499        href,
18500        fileId,
18501        fileName,
18502        textLinkHref,
18503        textLinkTarget,
18504        showDownloadButton,
18505        downloadButtonText,
18506        displayPreview,
18507        previewHeight
18508      } = attributes;
18509      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. */
18510      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
18511      const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
18512  
18513      // Only output an `aria-describedby` when the element it's referring to is
18514      // actually rendered.
18515      const describedById = hasFilename ? fileId : undefined;
18516      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18517        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18518        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18519          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18520            className: "wp-block-file__embed",
18521            data: href,
18522            type: "application/pdf",
18523            style: {
18524              width: '100%',
18525              height: `$previewHeight}px`
18526            },
18527            "aria-label": pdfEmbedLabel
18528          })
18529        }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18530          id: describedById,
18531          href: textLinkHref,
18532          target: textLinkTarget,
18533          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18534          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18535            value: fileName
18536          })
18537        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18538          href: href,
18539          className: "wp-block-file__button",
18540          download: true,
18541          "aria-describedby": describedById,
18542          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18543            value: downloadButtonText
18544          })
18545        })]
18546      });
18547    }
18548  };
18549  
18550  // Version of the file block without PR#28062 accessibility fix.
18551  const file_deprecated_v1 = {
18552    attributes: {
18553      id: {
18554        type: 'number'
18555      },
18556      href: {
18557        type: 'string'
18558      },
18559      fileName: {
18560        type: 'string',
18561        source: 'html',
18562        selector: 'a:not([download])'
18563      },
18564      textLinkHref: {
18565        type: 'string',
18566        source: 'attribute',
18567        selector: 'a:not([download])',
18568        attribute: 'href'
18569      },
18570      textLinkTarget: {
18571        type: 'string',
18572        source: 'attribute',
18573        selector: 'a:not([download])',
18574        attribute: 'target'
18575      },
18576      showDownloadButton: {
18577        type: 'boolean',
18578        default: true
18579      },
18580      downloadButtonText: {
18581        type: 'string',
18582        source: 'html',
18583        selector: 'a[download]'
18584      },
18585      displayPreview: {
18586        type: 'boolean'
18587      },
18588      previewHeight: {
18589        type: 'number',
18590        default: 600
18591      }
18592    },
18593    supports: {
18594      anchor: true,
18595      align: true
18596    },
18597    save({
18598      attributes
18599    }) {
18600      const {
18601        href,
18602        fileName,
18603        textLinkHref,
18604        textLinkTarget,
18605        showDownloadButton,
18606        downloadButtonText,
18607        displayPreview,
18608        previewHeight
18609      } = attributes;
18610      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. */
18611      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
18612      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18613        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18614        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18615          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18616            className: "wp-block-file__embed",
18617            data: href,
18618            type: "application/pdf",
18619            style: {
18620              width: '100%',
18621              height: `$previewHeight}px`
18622            },
18623            "aria-label": pdfEmbedLabel
18624          })
18625        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18626          href: textLinkHref,
18627          target: textLinkTarget,
18628          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18629          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18630            value: fileName
18631          })
18632        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18633          href: href,
18634          className: "wp-block-file__button",
18635          download: true,
18636          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18637            value: downloadButtonText
18638          })
18639        })]
18640      });
18641    }
18642  };
18643  const file_deprecated_deprecated = [deprecated_v3, file_deprecated_v2, file_deprecated_v1];
18644  /* harmony default export */ const file_deprecated = (file_deprecated_deprecated);
18645  
18646  ;// ./node_modules/@wordpress/block-library/build-module/file/inspector.js
18647  /**
18648   * WordPress dependencies
18649   */
18650  
18651  
18652  
18653  
18654  /**
18655   * Internal dependencies
18656   */
18657  
18658  
18659  function FileBlockInspector({
18660    hrefs,
18661    openInNewWindow,
18662    showDownloadButton,
18663    changeLinkDestinationOption,
18664    changeOpenInNewWindow,
18665    changeShowDownloadButton,
18666    displayPreview,
18667    changeDisplayPreview,
18668    previewHeight,
18669    changePreviewHeight
18670  }) {
18671    const {
18672      href,
18673      textLinkHref,
18674      attachmentPage
18675    } = hrefs;
18676    let linkDestinationOptions = [{
18677      value: href,
18678      label: (0,external_wp_i18n_namespaceObject.__)('URL')
18679    }];
18680    if (attachmentPage) {
18681      linkDestinationOptions = [{
18682        value: href,
18683        label: (0,external_wp_i18n_namespaceObject.__)('Media file')
18684      }, {
18685        value: attachmentPage,
18686        label: (0,external_wp_i18n_namespaceObject.__)('Attachment page')
18687      }];
18688    }
18689    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18690      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
18691        children: [href.endsWith('.pdf') && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
18692          title: (0,external_wp_i18n_namespaceObject.__)('PDF settings'),
18693          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18694            __nextHasNoMarginBottom: true,
18695            label: (0,external_wp_i18n_namespaceObject.__)('Show inline embed'),
18696            help: displayPreview ? (0,external_wp_i18n_namespaceObject.__)("Note: Most phone and tablet browsers won't display embedded PDFs.") : null,
18697            checked: !!displayPreview,
18698            onChange: changeDisplayPreview
18699          }), displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
18700            __nextHasNoMarginBottom: true,
18701            __next40pxDefaultSize: true,
18702            label: (0,external_wp_i18n_namespaceObject.__)('Height in pixels'),
18703            min: MIN_PREVIEW_HEIGHT,
18704            max: Math.max(MAX_PREVIEW_HEIGHT, previewHeight),
18705            value: previewHeight,
18706            onChange: changePreviewHeight
18707          })]
18708        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
18709          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
18710          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
18711            __next40pxDefaultSize: true,
18712            __nextHasNoMarginBottom: true,
18713            label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
18714            value: textLinkHref,
18715            options: linkDestinationOptions,
18716            onChange: changeLinkDestinationOption
18717          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18718            __nextHasNoMarginBottom: true,
18719            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
18720            checked: openInNewWindow,
18721            onChange: changeOpenInNewWindow
18722          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18723            __nextHasNoMarginBottom: true,
18724            label: (0,external_wp_i18n_namespaceObject.__)('Show download button'),
18725            checked: showDownloadButton,
18726            onChange: changeShowDownloadButton
18727          })]
18728        })]
18729      })
18730    });
18731  }
18732  
18733  ;// ./node_modules/@wordpress/block-library/build-module/file/utils/index.js
18734  /**
18735   * Uses a combination of user agent matching and feature detection to determine whether
18736   * the current browser supports rendering PDFs inline.
18737   *
18738   * @return {boolean} Whether or not the browser supports inline PDFs.
18739   */
18740  const browserSupportsPdfs = () => {
18741    // Most mobile devices include "Mobi" in their UA.
18742    if (window.navigator.userAgent.indexOf('Mobi') > -1) {
18743      return false;
18744    }
18745  
18746    // Android tablets are the notable exception.
18747    if (window.navigator.userAgent.indexOf('Android') > -1) {
18748      return false;
18749    }
18750  
18751    // iPad pretends to be a Mac.
18752    if (window.navigator.userAgent.indexOf('Macintosh') > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) {
18753      return false;
18754    }
18755  
18756    // IE only supports PDFs when there's an ActiveX object available for it.
18757    if (!!(window.ActiveXObject || 'ActiveXObject' in window) && !(createActiveXObject('AcroPDF.PDF') || createActiveXObject('PDF.PdfCtrl'))) {
18758      return false;
18759    }
18760    return true;
18761  };
18762  
18763  /**
18764   * Helper function for creating ActiveX objects, catching any errors that are thrown
18765   * when it's generated.
18766   *
18767   * @param {string} type The name of the ActiveX object to create.
18768   * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.
18769   */
18770  const createActiveXObject = type => {
18771    let ax;
18772    try {
18773      ax = new window.ActiveXObject(type);
18774    } catch (e) {
18775      ax = undefined;
18776    }
18777    return ax;
18778  };
18779  
18780  ;// ./node_modules/@wordpress/block-library/build-module/file/edit.js
18781  /**
18782   * External dependencies
18783   */
18784  
18785  
18786  /**
18787   * WordPress dependencies
18788   */
18789  
18790  
18791  
18792  
18793  
18794  
18795  
18796  
18797  
18798  
18799  
18800  /**
18801   * Internal dependencies
18802   */
18803  
18804  
18805  
18806  
18807  
18808  const MIN_PREVIEW_HEIGHT = 200;
18809  const MAX_PREVIEW_HEIGHT = 2000;
18810  function ClipboardToolbarButton({
18811    text,
18812    disabled
18813  }) {
18814    const {
18815      createNotice
18816    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
18817    const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
18818      createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), {
18819        isDismissible: true,
18820        type: 'snackbar'
18821      });
18822    });
18823    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
18824      className: "components-clipboard-toolbar-button",
18825      ref: ref,
18826      disabled: disabled,
18827      children: (0,external_wp_i18n_namespaceObject.__)('Copy URL')
18828    });
18829  }
18830  function FileEdit({
18831    attributes,
18832    isSelected,
18833    setAttributes,
18834    clientId
18835  }) {
18836    const {
18837      id,
18838      fileName,
18839      href,
18840      textLinkHref,
18841      textLinkTarget,
18842      showDownloadButton,
18843      downloadButtonText,
18844      displayPreview,
18845      previewHeight
18846    } = attributes;
18847    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
18848    const {
18849      media
18850    } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
18851      media: id === undefined ? undefined : select(external_wp_coreData_namespaceObject.store).getMedia(id)
18852    }), [id]);
18853    const {
18854      createErrorNotice
18855    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
18856    const {
18857      toggleSelection,
18858      __unstableMarkNextChangeAsNotPersistent
18859    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
18860    useUploadMediaFromBlobURL({
18861      url: temporaryURL,
18862      onChange: onSelectFile,
18863      onError: onUploadError
18864    });
18865  
18866    // Note: Handle setting a default value for `downloadButtonText` via HTML API
18867    // when it supports replacing text content for HTML tags.
18868    (0,external_wp_element_namespaceObject.useEffect)(() => {
18869      if (external_wp_blockEditor_namespaceObject.RichText.isEmpty(downloadButtonText)) {
18870        __unstableMarkNextChangeAsNotPersistent();
18871        setAttributes({
18872          downloadButtonText: (0,external_wp_i18n_namespaceObject._x)('Download', 'button label')
18873        });
18874      }
18875      // This effect should only run on mount.
18876    }, []);
18877    function onSelectFile(newMedia) {
18878      var _attributes$displayPr, _attributes$previewHe;
18879      if (!newMedia || !newMedia.url) {
18880        // Reset attributes.
18881        setAttributes({
18882          href: undefined,
18883          fileName: undefined,
18884          textLinkHref: undefined,
18885          id: undefined,
18886          fileId: undefined,
18887          displayPreview: undefined,
18888          previewHeight: undefined
18889        });
18890        setTemporaryURL();
18891        return;
18892      }
18893      if ((0,external_wp_blob_namespaceObject.isBlobURL)(newMedia.url)) {
18894        setTemporaryURL(newMedia.url);
18895        return;
18896      }
18897      const isPdf = newMedia.url.endsWith('.pdf');
18898      const pdfAttributes = {
18899        displayPreview: isPdf ? (_attributes$displayPr = attributes.displayPreview) !== null && _attributes$displayPr !== void 0 ? _attributes$displayPr : true : undefined,
18900        previewHeight: isPdf ? (_attributes$previewHe = attributes.previewHeight) !== null && _attributes$previewHe !== void 0 ? _attributes$previewHe : 600 : undefined
18901      };
18902      setAttributes({
18903        href: newMedia.url,
18904        fileName: newMedia.title,
18905        textLinkHref: newMedia.url,
18906        id: newMedia.id,
18907        fileId: `wp-block-file--media-$clientId}`,
18908        blob: undefined,
18909        ...pdfAttributes
18910      });
18911      setTemporaryURL();
18912    }
18913    function onUploadError(message) {
18914      setAttributes({
18915        href: undefined
18916      });
18917      createErrorNotice(message, {
18918        type: 'snackbar'
18919      });
18920    }
18921    function changeLinkDestinationOption(newHref) {
18922      // Choose Media File or Attachment Page (when file is in Media Library).
18923      setAttributes({
18924        textLinkHref: newHref
18925      });
18926    }
18927    function changeOpenInNewWindow(newValue) {
18928      setAttributes({
18929        textLinkTarget: newValue ? '_blank' : false
18930      });
18931    }
18932    function changeShowDownloadButton(newValue) {
18933      setAttributes({
18934        showDownloadButton: newValue
18935      });
18936    }
18937    function changeDisplayPreview(newValue) {
18938      setAttributes({
18939        displayPreview: newValue
18940      });
18941    }
18942    function handleOnResizeStop(event, direction, elt, delta) {
18943      toggleSelection(true);
18944      const newHeight = parseInt(previewHeight + delta.height, 10);
18945      setAttributes({
18946        previewHeight: newHeight
18947      });
18948    }
18949    function changePreviewHeight(newValue) {
18950      const newHeight = Math.max(parseInt(newValue, 10), MIN_PREVIEW_HEIGHT);
18951      setAttributes({
18952        previewHeight: newHeight
18953      });
18954    }
18955    const attachmentPage = media && media.link;
18956    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
18957      className: dist_clsx(!!temporaryURL && (0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({
18958        type: 'loading'
18959      }), {
18960        'is-transient': !!temporaryURL
18961      })
18962    });
18963    const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;
18964    if (!href && !temporaryURL) {
18965      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18966        ...blockProps,
18967        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
18968          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
18969            icon: library_file
18970          }),
18971          labels: {
18972            title: (0,external_wp_i18n_namespaceObject.__)('File'),
18973            instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop a file, upload, or choose from your library.')
18974          },
18975          onSelect: onSelectFile,
18976          onError: onUploadError,
18977          accept: "*"
18978        })
18979      });
18980    }
18981    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18982      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FileBlockInspector, {
18983        hrefs: {
18984          href: href || temporaryURL,
18985          textLinkHref,
18986          attachmentPage
18987        },
18988        openInNewWindow: !!textLinkTarget,
18989        showDownloadButton,
18990        changeLinkDestinationOption,
18991        changeOpenInNewWindow,
18992        changeShowDownloadButton,
18993        displayPreview,
18994        changeDisplayPreview,
18995        previewHeight,
18996        changePreviewHeight
18997      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
18998        group: "other",
18999        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
19000          mediaId: id,
19001          mediaURL: href,
19002          accept: "*",
19003          onSelect: onSelectFile,
19004          onError: onUploadError,
19005          onReset: () => onSelectFile(undefined)
19006        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ClipboardToolbarButton, {
19007          text: href,
19008          disabled: (0,external_wp_blob_namespaceObject.isBlobURL)(href)
19009        })]
19010      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19011        ...blockProps,
19012        children: [displayPreviewInEditor && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ResizableBox, {
19013          size: {
19014            height: previewHeight,
19015            width: '100%'
19016          },
19017          minHeight: MIN_PREVIEW_HEIGHT,
19018          maxHeight: MAX_PREVIEW_HEIGHT
19019          // The horizontal grid value must be 1 or else the width may snap during a
19020          // resize even though only vertical resizing is enabled.
19021          ,
19022          grid: [1, 10],
19023          enable: {
19024            top: false,
19025            right: false,
19026            bottom: true,
19027            left: false,
19028            topRight: false,
19029            bottomRight: false,
19030            bottomLeft: false,
19031            topLeft: false
19032          },
19033          onResizeStart: () => toggleSelection(false),
19034          onResizeStop: handleOnResizeStop,
19035          showHandle: isSelected,
19036          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
19037            className: "wp-block-file__preview",
19038            data: href,
19039            type: "application/pdf",
19040            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Embed of the selected PDF file.')
19041          }), !isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19042            className: "wp-block-file__preview-overlay"
19043          })]
19044        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19045          className: "wp-block-file__content-wrapper",
19046          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
19047            identifier: "fileName",
19048            tagName: "a",
19049            value: fileName,
19050            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write file name…'),
19051            withoutInteractiveFormatting: true,
19052            onChange: text => setAttributes({
19053              fileName: removeAnchorTag(text)
19054            }),
19055            href: textLinkHref
19056          }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19057            className: "wp-block-file__button-richtext-wrapper",
19058            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
19059              identifier: "downloadButtonText",
19060              tagName: "div" // Must be block-level or else cursor disappears.
19061              ,
19062              "aria-label": (0,external_wp_i18n_namespaceObject.__)('Download button text'),
19063              className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
19064              value: downloadButtonText,
19065              withoutInteractiveFormatting: true,
19066              placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text…'),
19067              onChange: text => setAttributes({
19068                downloadButtonText: removeAnchorTag(text)
19069              })
19070            })
19071          })]
19072        })]
19073      })]
19074    });
19075  }
19076  /* harmony default export */ const file_edit = (FileEdit);
19077  
19078  ;// ./node_modules/@wordpress/block-library/build-module/file/save.js
19079  /**
19080   * External dependencies
19081   */
19082  
19083  
19084  /**
19085   * WordPress dependencies
19086   */
19087  
19088  
19089  function file_save_save({
19090    attributes
19091  }) {
19092    const {
19093      href,
19094      fileId,
19095      fileName,
19096      textLinkHref,
19097      textLinkTarget,
19098      showDownloadButton,
19099      downloadButtonText,
19100      displayPreview,
19101      previewHeight
19102    } = attributes;
19103    const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? 'PDF embed' :
19104    // To do: use toPlainText, but we need ensure it's RichTextData. See
19105    // https://github.com/WordPress/gutenberg/pull/56710.
19106    fileName.toString();
19107    const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
19108  
19109    // Only output an `aria-describedby` when the element it's referring to is
19110    // actually rendered.
19111    const describedById = hasFilename ? fileId : undefined;
19112    return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19113      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
19114      children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
19115        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
19116          className: "wp-block-file__embed",
19117          data: href,
19118          type: "application/pdf",
19119          style: {
19120            width: '100%',
19121            height: `$previewHeight}px`
19122          },
19123          "aria-label": pdfEmbedLabel
19124        })
19125      }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
19126        id: describedById,
19127        href: textLinkHref,
19128        target: textLinkTarget,
19129        rel: textLinkTarget ? 'noreferrer noopener' : undefined,
19130        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19131          value: fileName
19132        })
19133      }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
19134        href: href,
19135        className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
19136        download: true,
19137        "aria-describedby": describedById,
19138        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19139          value: downloadButtonText
19140        })
19141      })]
19142    });
19143  }
19144  
19145  ;// ./node_modules/@wordpress/block-library/build-module/file/transforms.js
19146  /**
19147   * WordPress dependencies
19148   */
19149  
19150  
19151  
19152  
19153  
19154  const file_transforms_transforms = {
19155    from: [{
19156      type: 'files',
19157      isMatch(files) {
19158        return files.length > 0;
19159      },
19160      // We define a lower priority (higher number) than the default of 10. This
19161      // ensures that the File block is only created as a fallback.
19162      priority: 15,
19163      transform: files => {
19164        const blocks = [];
19165        files.forEach(file => {
19166          const blobURL = (0,external_wp_blob_namespaceObject.createBlobURL)(file);
19167  
19168          // File will be uploaded in componentDidMount()
19169          if (file.type.startsWith('video/')) {
19170            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
19171              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
19172            }));
19173          } else if (file.type.startsWith('image/')) {
19174            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
19175              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
19176            }));
19177          } else if (file.type.startsWith('audio/')) {
19178            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
19179              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
19180            }));
19181          } else {
19182            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19183              blob: blobURL,
19184              fileName: file.name
19185            }));
19186          }
19187        });
19188        return blocks;
19189      }
19190    }, {
19191      type: 'block',
19192      blocks: ['core/audio'],
19193      transform: attributes => {
19194        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19195          href: attributes.src,
19196          fileName: attributes.caption,
19197          textLinkHref: attributes.src,
19198          id: attributes.id,
19199          anchor: attributes.anchor
19200        });
19201      }
19202    }, {
19203      type: 'block',
19204      blocks: ['core/video'],
19205      transform: attributes => {
19206        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19207          href: attributes.src,
19208          fileName: attributes.caption,
19209          textLinkHref: attributes.src,
19210          id: attributes.id,
19211          anchor: attributes.anchor
19212        });
19213      }
19214    }, {
19215      type: 'block',
19216      blocks: ['core/image'],
19217      transform: attributes => {
19218        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19219          href: attributes.url,
19220          fileName: attributes.caption || (0,external_wp_url_namespaceObject.getFilename)(attributes.url),
19221          textLinkHref: attributes.url,
19222          id: attributes.id,
19223          anchor: attributes.anchor
19224        });
19225      }
19226    }],
19227    to: [{
19228      type: 'block',
19229      blocks: ['core/audio'],
19230      isMatch: ({
19231        id
19232      }) => {
19233        if (!id) {
19234          return false;
19235        }
19236        const {
19237          getMedia
19238        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
19239        const media = getMedia(id);
19240        return !!media && media.mime_type.includes('audio');
19241      },
19242      transform: attributes => {
19243        return (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
19244          src: attributes.href,
19245          caption: attributes.fileName,
19246          id: attributes.id,
19247          anchor: attributes.anchor
19248        });
19249      }
19250    }, {
19251      type: 'block',
19252      blocks: ['core/video'],
19253      isMatch: ({
19254        id
19255      }) => {
19256        if (!id) {
19257          return false;
19258        }
19259        const {
19260          getMedia
19261        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
19262        const media = getMedia(id);
19263        return !!media && media.mime_type.includes('video');
19264      },
19265      transform: attributes => {
19266        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
19267          src: attributes.href,
19268          caption: attributes.fileName,
19269          id: attributes.id,
19270          anchor: attributes.anchor
19271        });
19272      }
19273    }, {
19274      type: 'block',
19275      blocks: ['core/image'],
19276      isMatch: ({
19277        id
19278      }) => {
19279        if (!id) {
19280          return false;
19281        }
19282        const {
19283          getMedia
19284        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
19285        const media = getMedia(id);
19286        return !!media && media.mime_type.includes('image');
19287      },
19288      transform: attributes => {
19289        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
19290          url: attributes.href,
19291          caption: attributes.fileName,
19292          id: attributes.id,
19293          anchor: attributes.anchor
19294        });
19295      }
19296    }]
19297  };
19298  /* harmony default export */ const file_transforms = (file_transforms_transforms);
19299  
19300  ;// ./node_modules/@wordpress/block-library/build-module/file/index.js
19301  /**
19302   * WordPress dependencies
19303   */
19304  
19305  
19306  
19307  /**
19308   * Internal dependencies
19309   */
19310  
19311  
19312  
19313  const file_metadata = {
19314    $schema: "https://schemas.wp.org/trunk/block.json",
19315    apiVersion: 3,
19316    name: "core/file",
19317    title: "File",
19318    category: "media",
19319    description: "Add a link to a downloadable file.",
19320    keywords: ["document", "pdf", "download"],
19321    textdomain: "default",
19322    attributes: {
19323      id: {
19324        type: "number"
19325      },
19326      blob: {
19327        type: "string",
19328        role: "local"
19329      },
19330      href: {
19331        type: "string",
19332        role: "content"
19333      },
19334      fileId: {
19335        type: "string",
19336        source: "attribute",
19337        selector: "a:not([download])",
19338        attribute: "id"
19339      },
19340      fileName: {
19341        type: "rich-text",
19342        source: "rich-text",
19343        selector: "a:not([download])",
19344        role: "content"
19345      },
19346      textLinkHref: {
19347        type: "string",
19348        source: "attribute",
19349        selector: "a:not([download])",
19350        attribute: "href",
19351        role: "content"
19352      },
19353      textLinkTarget: {
19354        type: "string",
19355        source: "attribute",
19356        selector: "a:not([download])",
19357        attribute: "target"
19358      },
19359      showDownloadButton: {
19360        type: "boolean",
19361        "default": true
19362      },
19363      downloadButtonText: {
19364        type: "rich-text",
19365        source: "rich-text",
19366        selector: "a[download]",
19367        role: "content"
19368      },
19369      displayPreview: {
19370        type: "boolean"
19371      },
19372      previewHeight: {
19373        type: "number",
19374        "default": 600
19375      }
19376    },
19377    supports: {
19378      anchor: true,
19379      align: true,
19380      spacing: {
19381        margin: true,
19382        padding: true
19383      },
19384      color: {
19385        gradients: true,
19386        link: true,
19387        text: false,
19388        __experimentalDefaultControls: {
19389          background: true,
19390          link: true
19391        }
19392      },
19393      __experimentalBorder: {
19394        radius: true,
19395        color: true,
19396        width: true,
19397        style: true,
19398        __experimentalDefaultControls: {
19399          radius: true,
19400          color: true,
19401          width: true,
19402          style: true
19403        }
19404      },
19405      interactivity: true
19406    },
19407    editorStyle: "wp-block-file-editor",
19408    style: "wp-block-file"
19409  };
19410  
19411  
19412  const {
19413    name: file_name
19414  } = file_metadata;
19415  
19416  const file_settings = {
19417    icon: library_file,
19418    example: {
19419      attributes: {
19420        href: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',
19421        fileName: (0,external_wp_i18n_namespaceObject._x)('Armstrong_Small_Step', 'Name of the file')
19422      }
19423    },
19424    transforms: file_transforms,
19425    deprecated: file_deprecated,
19426    edit: file_edit,
19427    save: file_save_save
19428  };
19429  const file_init = () => initBlock({
19430    name: file_name,
19431    metadata: file_metadata,
19432    settings: file_settings
19433  });
19434  
19435  ;// ./node_modules/@wordpress/block-library/build-module/form/utils.js
19436  /**
19437   * WordPress dependencies
19438   */
19439  
19440  const formSubmissionNotificationSuccess = ['core/form-submission-notification', {
19441    type: 'success'
19442  }, [['core/paragraph', {
19443    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>'
19444  }]]];
19445  const formSubmissionNotificationError = ['core/form-submission-notification', {
19446    type: 'error'
19447  }, [['core/paragraph', {
19448    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>'
19449  }]]];
19450  
19451  ;// ./node_modules/@wordpress/block-library/build-module/form/edit.js
19452  /**
19453   * WordPress dependencies
19454   */
19455  
19456  
19457  
19458  
19459  
19460  /**
19461   * Internal dependencies
19462   */
19463  
19464  
19465  const form_edit_TEMPLATE = [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/form-input', {
19466    type: 'text',
19467    label: (0,external_wp_i18n_namespaceObject.__)('Name'),
19468    required: true
19469  }], ['core/form-input', {
19470    type: 'email',
19471    label: (0,external_wp_i18n_namespaceObject.__)('Email'),
19472    required: true
19473  }], ['core/form-input', {
19474    type: 'textarea',
19475    label: (0,external_wp_i18n_namespaceObject.__)('Comment'),
19476    required: true
19477  }], ['core/form-submit-button', {}]];
19478  const form_edit_Edit = ({
19479    attributes,
19480    setAttributes,
19481    clientId
19482  }) => {
19483    const {
19484      action,
19485      method,
19486      email,
19487      submissionMethod
19488    } = attributes;
19489    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
19490    const {
19491      hasInnerBlocks
19492    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
19493      const {
19494        getBlock
19495      } = select(external_wp_blockEditor_namespaceObject.store);
19496      const block = getBlock(clientId);
19497      return {
19498        hasInnerBlocks: !!(block && block.innerBlocks.length)
19499      };
19500    }, [clientId]);
19501    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
19502      template: form_edit_TEMPLATE,
19503      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
19504    });
19505    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
19506      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
19507        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
19508          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
19509          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
19510            __nextHasNoMarginBottom: true,
19511            __next40pxDefaultSize: true,
19512            label: (0,external_wp_i18n_namespaceObject.__)('Submissions method'),
19513            options: [
19514            // TODO: Allow plugins to add their own submission methods.
19515            {
19516              label: (0,external_wp_i18n_namespaceObject.__)('Send email'),
19517              value: 'email'
19518            }, {
19519              label: (0,external_wp_i18n_namespaceObject.__)('- Custom -'),
19520              value: 'custom'
19521            }],
19522            value: submissionMethod,
19523            onChange: value => setAttributes({
19524              submissionMethod: value
19525            }),
19526            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.')
19527          }), submissionMethod === 'email' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
19528            __nextHasNoMarginBottom: true,
19529            __next40pxDefaultSize: true,
19530            autoComplete: "off",
19531            label: (0,external_wp_i18n_namespaceObject.__)('Email for form submissions'),
19532            value: email,
19533            required: true,
19534            onChange: value => {
19535              setAttributes({
19536                email: value
19537              });
19538              setAttributes({
19539                action: `mailto:$value}`
19540              });
19541              setAttributes({
19542                method: 'post'
19543              });
19544            },
19545            help: (0,external_wp_i18n_namespaceObject.__)('The email address where form submissions will be sent. Separate multiple email addresses with a comma.'),
19546            type: "email"
19547          })]
19548        })
19549      }), submissionMethod !== 'email' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
19550        group: "advanced",
19551        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
19552          __next40pxDefaultSize: true,
19553          __nextHasNoMarginBottom: true,
19554          label: (0,external_wp_i18n_namespaceObject.__)('Method'),
19555          options: [{
19556            label: 'Get',
19557            value: 'get'
19558          }, {
19559            label: 'Post',
19560            value: 'post'
19561          }],
19562          value: method,
19563          onChange: value => setAttributes({
19564            method: value
19565          }),
19566          help: (0,external_wp_i18n_namespaceObject.__)('Select the method to use for form submissions.')
19567        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
19568          __next40pxDefaultSize: true,
19569          __nextHasNoMarginBottom: true,
19570          autoComplete: "off",
19571          label: (0,external_wp_i18n_namespaceObject.__)('Form action'),
19572          value: action,
19573          onChange: newVal => {
19574            setAttributes({
19575              action: newVal
19576            });
19577          },
19578          help: (0,external_wp_i18n_namespaceObject.__)('The URL where the form should be submitted.'),
19579          type: "url"
19580        })]
19581      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
19582        ...innerBlocksProps,
19583        className: "wp-block-form",
19584        encType: submissionMethod === 'email' ? 'text/plain' : null
19585      })]
19586    });
19587  };
19588  /* harmony default export */ const form_edit = (form_edit_Edit);
19589  
19590  ;// ./node_modules/@wordpress/block-library/build-module/form/save.js
19591  /**
19592   * WordPress dependencies
19593   */
19594  
19595  
19596  function form_save_save({
19597    attributes
19598  }) {
19599    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19600    const {
19601      submissionMethod
19602    } = attributes;
19603    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
19604      ...blockProps,
19605      className: "wp-block-form",
19606      encType: submissionMethod === 'email' ? 'text/plain' : null,
19607      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
19608    });
19609  }
19610  
19611  ;// ./node_modules/@wordpress/block-library/build-module/form/variations.js
19612  /**
19613   * WordPress dependencies
19614   */
19615  
19616  /**
19617   * Internal dependencies
19618   */
19619  
19620  const form_variations_variations = [{
19621    name: 'comment-form',
19622    title: (0,external_wp_i18n_namespaceObject.__)('Experimental Comment form'),
19623    description: (0,external_wp_i18n_namespaceObject.__)('A comment form for posts and pages.'),
19624    attributes: {
19625      submissionMethod: 'custom',
19626      action: '{SITE_URL}/wp-comments-post.php',
19627      method: 'post',
19628      anchor: 'comment-form'
19629    },
19630    isDefault: false,
19631    innerBlocks: [['core/form-input', {
19632      type: 'text',
19633      name: 'author',
19634      label: (0,external_wp_i18n_namespaceObject.__)('Name'),
19635      required: true,
19636      visibilityPermissions: 'logged-out'
19637    }], ['core/form-input', {
19638      type: 'email',
19639      name: 'email',
19640      label: (0,external_wp_i18n_namespaceObject.__)('Email'),
19641      required: true,
19642      visibilityPermissions: 'logged-out'
19643    }], ['core/form-input', {
19644      type: 'textarea',
19645      name: 'comment',
19646      label: (0,external_wp_i18n_namespaceObject.__)('Comment'),
19647      required: true,
19648      visibilityPermissions: 'all'
19649    }], ['core/form-submit-button', {}]],
19650    scope: ['inserter', 'transform'],
19651    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
19652  }, {
19653    name: 'wp-privacy-form',
19654    title: (0,external_wp_i18n_namespaceObject.__)('Experimental Privacy Request Form'),
19655    keywords: ['GDPR'],
19656    description: (0,external_wp_i18n_namespaceObject.__)('A form to request data exports and/or deletion.'),
19657    attributes: {
19658      submissionMethod: 'custom',
19659      action: '',
19660      method: 'post',
19661      anchor: 'gdpr-form'
19662    },
19663    isDefault: false,
19664    innerBlocks: [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/paragraph', {
19665      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.')
19666    }], ['core/form-input', {
19667      type: 'email',
19668      name: 'email',
19669      label: (0,external_wp_i18n_namespaceObject.__)('Enter your email address.'),
19670      required: true,
19671      visibilityPermissions: 'all'
19672    }], ['core/form-input', {
19673      type: 'checkbox',
19674      name: 'export_personal_data',
19675      label: (0,external_wp_i18n_namespaceObject.__)('Request data export'),
19676      required: false,
19677      visibilityPermissions: 'all'
19678    }], ['core/form-input', {
19679      type: 'checkbox',
19680      name: 'remove_personal_data',
19681      label: (0,external_wp_i18n_namespaceObject.__)('Request data deletion'),
19682      required: false,
19683      visibilityPermissions: 'all'
19684    }], ['core/form-submit-button', {}], ['core/form-input', {
19685      type: 'hidden',
19686      name: 'wp-action',
19687      value: 'wp_privacy_send_request'
19688    }], ['core/form-input', {
19689      type: 'hidden',
19690      name: 'wp-privacy-request',
19691      value: '1'
19692    }]],
19693    scope: ['inserter', 'transform'],
19694    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
19695  }];
19696  /* harmony default export */ const form_variations = (form_variations_variations);
19697  
19698  ;// ./node_modules/@wordpress/block-library/build-module/form/index.js
19699  /**
19700   * Internal dependencies
19701   */
19702  
19703  
19704  const form_metadata = {
19705    $schema: "https://schemas.wp.org/trunk/block.json",
19706    apiVersion: 3,
19707    __experimental: true,
19708    name: "core/form",
19709    title: "Form",
19710    category: "common",
19711    allowedBlocks: ["core/paragraph", "core/heading", "core/form-input", "core/form-submit-button", "core/form-submission-notification", "core/group", "core/columns"],
19712    description: "A form.",
19713    keywords: ["container", "wrapper", "row", "section"],
19714    textdomain: "default",
19715    icon: "feedback",
19716    attributes: {
19717      submissionMethod: {
19718        type: "string",
19719        "default": "email"
19720      },
19721      method: {
19722        type: "string",
19723        "default": "post"
19724      },
19725      action: {
19726        type: "string"
19727      },
19728      email: {
19729        type: "string"
19730      }
19731    },
19732    supports: {
19733      anchor: true,
19734      className: false,
19735      color: {
19736        gradients: true,
19737        link: true,
19738        __experimentalDefaultControls: {
19739          background: true,
19740          text: true,
19741          link: true
19742        }
19743      },
19744      spacing: {
19745        margin: true,
19746        padding: true
19747      },
19748      typography: {
19749        fontSize: true,
19750        lineHeight: true,
19751        __experimentalFontFamily: true,
19752        __experimentalTextDecoration: true,
19753        __experimentalFontStyle: true,
19754        __experimentalFontWeight: true,
19755        __experimentalLetterSpacing: true,
19756        __experimentalTextTransform: true,
19757        __experimentalDefaultControls: {
19758          fontSize: true
19759        }
19760      },
19761      __experimentalSelector: "form"
19762    }
19763  };
19764  
19765  
19766  
19767  /**
19768   * WordPress dependencies
19769   */
19770  
19771  const {
19772    name: form_name
19773  } = form_metadata;
19774  
19775  const form_settings = {
19776    edit: form_edit,
19777    save: form_save_save,
19778    variations: form_variations
19779  };
19780  const form_init = () => {
19781    // Prevent adding forms inside forms.
19782    const DISALLOWED_PARENTS = ['core/form'];
19783    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'core/block-library/preventInsertingFormIntoAnotherForm', (canInsert, blockType, rootClientId, {
19784      getBlock,
19785      getBlockParentsByBlockName
19786    }) => {
19787      if (blockType.name !== 'core/form') {
19788        return canInsert;
19789      }
19790      for (const disallowedParentType of DISALLOWED_PARENTS) {
19791        const hasDisallowedParent = getBlock(rootClientId)?.name === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
19792        if (hasDisallowedParent) {
19793          return false;
19794        }
19795      }
19796      return true;
19797    });
19798    return initBlock({
19799      name: form_name,
19800      metadata: form_metadata,
19801      settings: form_settings
19802    });
19803  };
19804  
19805  // EXTERNAL MODULE: ./node_modules/remove-accents/index.js
19806  var remove_accents = __webpack_require__(9681);
19807  var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents);
19808  ;// external ["wp","dom"]
19809  const external_wp_dom_namespaceObject = window["wp"]["dom"];
19810  ;// ./node_modules/@wordpress/block-library/build-module/form-input/deprecated.js
19811  /**
19812   * External dependencies
19813   */
19814  
19815  
19816  
19817  /**
19818   * WordPress dependencies
19819   */
19820  
19821  
19822  
19823  const getNameFromLabelV1 = content => {
19824    return remove_accents_default()((0,external_wp_dom_namespaceObject.__unstableStripHTML)(content))
19825    // Convert anything that's not a letter or number to a hyphen.
19826    .replace(/[^\p{L}\p{N}]+/gu, '-')
19827    // Convert to lowercase
19828    .toLowerCase()
19829    // Remove any remaining leading or trailing hyphens.
19830    .replace(/(^-+)|(-+$)/g, '');
19831  };
19832  const form_input_deprecated_v2 = {
19833    attributes: {
19834      type: {
19835        type: 'string',
19836        default: 'text'
19837      },
19838      name: {
19839        type: 'string'
19840      },
19841      label: {
19842        type: 'string',
19843        default: 'Label',
19844        selector: '.wp-block-form-input__label-content',
19845        source: 'html',
19846        role: 'content'
19847      },
19848      inlineLabel: {
19849        type: 'boolean',
19850        default: false
19851      },
19852      required: {
19853        type: 'boolean',
19854        default: false,
19855        selector: '.wp-block-form-input__input',
19856        source: 'attribute',
19857        attribute: 'required'
19858      },
19859      placeholder: {
19860        type: 'string',
19861        selector: '.wp-block-form-input__input',
19862        source: 'attribute',
19863        attribute: 'placeholder',
19864        role: 'content'
19865      },
19866      value: {
19867        type: 'string',
19868        default: '',
19869        selector: 'input',
19870        source: 'attribute',
19871        attribute: 'value'
19872      },
19873      visibilityPermissions: {
19874        type: 'string',
19875        default: 'all'
19876      }
19877    },
19878    supports: {
19879      anchor: true,
19880      reusable: false,
19881      spacing: {
19882        margin: ['top', 'bottom']
19883      },
19884      __experimentalBorder: {
19885        radius: true,
19886        __experimentalSkipSerialization: true,
19887        __experimentalDefaultControls: {
19888          radius: true
19889        }
19890      }
19891    },
19892    save({
19893      attributes
19894    }) {
19895      const {
19896        type,
19897        name,
19898        label,
19899        inlineLabel,
19900        required,
19901        placeholder,
19902        value
19903      } = attributes;
19904      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
19905      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
19906      const inputStyle = {
19907        ...borderProps.style,
19908        ...colorProps.style
19909      };
19910      const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
19911      const TagName = type === 'textarea' ? 'textarea' : 'input';
19912      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19913      if ('hidden' === type) {
19914        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
19915          type: type,
19916          name: name,
19917          value: value
19918        });
19919      }
19920      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19921        ...blockProps,
19922        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
19923          className: dist_clsx('wp-block-form-input__label', {
19924            'is-label-inline': inlineLabel
19925          }),
19926          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
19927            className: "wp-block-form-input__label-content",
19928            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19929              value: label
19930            })
19931          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
19932            className: inputClasses,
19933            type: 'textarea' === type ? undefined : type,
19934            name: name || getNameFromLabelV1(label),
19935            required: required,
19936            "aria-required": required,
19937            placeholder: placeholder || undefined,
19938            style: inputStyle
19939          })]
19940        })
19941      });
19942    }
19943  };
19944  
19945  // Version without wrapper div in saved markup
19946  // See: https://github.com/WordPress/gutenberg/pull/56507
19947  const form_input_deprecated_v1 = {
19948    attributes: {
19949      type: {
19950        type: 'string',
19951        default: 'text'
19952      },
19953      name: {
19954        type: 'string'
19955      },
19956      label: {
19957        type: 'string',
19958        default: 'Label',
19959        selector: '.wp-block-form-input__label-content',
19960        source: 'html',
19961        role: 'content'
19962      },
19963      inlineLabel: {
19964        type: 'boolean',
19965        default: false
19966      },
19967      required: {
19968        type: 'boolean',
19969        default: false,
19970        selector: '.wp-block-form-input__input',
19971        source: 'attribute',
19972        attribute: 'required'
19973      },
19974      placeholder: {
19975        type: 'string',
19976        selector: '.wp-block-form-input__input',
19977        source: 'attribute',
19978        attribute: 'placeholder',
19979        role: 'content'
19980      },
19981      value: {
19982        type: 'string',
19983        default: '',
19984        selector: 'input',
19985        source: 'attribute',
19986        attribute: 'value'
19987      },
19988      visibilityPermissions: {
19989        type: 'string',
19990        default: 'all'
19991      }
19992    },
19993    supports: {
19994      className: false,
19995      anchor: true,
19996      reusable: false,
19997      spacing: {
19998        margin: ['top', 'bottom']
19999      },
20000      __experimentalBorder: {
20001        radius: true,
20002        __experimentalSkipSerialization: true,
20003        __experimentalDefaultControls: {
20004          radius: true
20005        }
20006      }
20007    },
20008    save({
20009      attributes
20010    }) {
20011      const {
20012        type,
20013        name,
20014        label,
20015        inlineLabel,
20016        required,
20017        placeholder,
20018        value
20019      } = attributes;
20020      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
20021      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
20022      const inputStyle = {
20023        ...borderProps.style,
20024        ...colorProps.style
20025      };
20026      const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
20027      const TagName = type === 'textarea' ? 'textarea' : 'input';
20028      if ('hidden' === type) {
20029        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
20030          type: type,
20031          name: name,
20032          value: value
20033        });
20034      }
20035  
20036      /* eslint-disable jsx-a11y/label-has-associated-control */
20037      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
20038        className: dist_clsx('wp-block-form-input__label', {
20039          'is-label-inline': inlineLabel
20040        }),
20041        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
20042          className: "wp-block-form-input__label-content",
20043          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20044            value: label
20045          })
20046        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
20047          className: inputClasses,
20048          type: 'textarea' === type ? undefined : type,
20049          name: name || getNameFromLabelV1(label),
20050          required: required,
20051          "aria-required": required,
20052          placeholder: placeholder || undefined,
20053          style: inputStyle
20054        })]
20055      });
20056      /* eslint-enable jsx-a11y/label-has-associated-control */
20057    }
20058  };
20059  const form_input_deprecated_deprecated = [form_input_deprecated_v2, form_input_deprecated_v1];
20060  /* harmony default export */ const form_input_deprecated = (form_input_deprecated_deprecated);
20061  
20062  ;// ./node_modules/@wordpress/block-library/build-module/form-input/edit.js
20063  /**
20064   * External dependencies
20065   */
20066  
20067  
20068  /**
20069   * WordPress dependencies
20070   */
20071  
20072  
20073  
20074  
20075  
20076  function InputFieldBlock({
20077    attributes,
20078    setAttributes,
20079    className
20080  }) {
20081    const {
20082      type,
20083      name,
20084      label,
20085      inlineLabel,
20086      required,
20087      placeholder,
20088      value
20089    } = attributes;
20090    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
20091    const ref = (0,external_wp_element_namespaceObject.useRef)();
20092    const TagName = type === 'textarea' ? 'textarea' : 'input';
20093    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
20094    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
20095    if (ref.current) {
20096      ref.current.focus();
20097    }
20098  
20099    // Note: radio inputs aren't implemented yet.
20100    const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
20101    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
20102      children: ['hidden' !== type && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
20103        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
20104          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
20105          children: ['checkbox' !== type && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
20106            __nextHasNoMarginBottom: true,
20107            label: (0,external_wp_i18n_namespaceObject.__)('Inline label'),
20108            checked: inlineLabel,
20109            onChange: newVal => {
20110              setAttributes({
20111                inlineLabel: newVal
20112              });
20113            }
20114          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
20115            __nextHasNoMarginBottom: true,
20116            label: (0,external_wp_i18n_namespaceObject.__)('Required'),
20117            checked: required,
20118            onChange: newVal => {
20119              setAttributes({
20120                required: newVal
20121              });
20122            }
20123          })]
20124        })
20125      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
20126        group: "advanced",
20127        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
20128          __next40pxDefaultSize: true,
20129          __nextHasNoMarginBottom: true,
20130          autoComplete: "off",
20131          label: (0,external_wp_i18n_namespaceObject.__)('Name'),
20132          value: name,
20133          onChange: newVal => {
20134            setAttributes({
20135              name: newVal
20136            });
20137          },
20138          help: (0,external_wp_i18n_namespaceObject.__)('Affects the "name" attribute of the input element, and is used as a name for the form submission results.')
20139        })
20140      })]
20141    });
20142    const content = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
20143      tagName: "span",
20144      className: "wp-block-form-input__label-content",
20145      value: label,
20146      onChange: newLabel => setAttributes({
20147        label: newLabel
20148      }),
20149      "aria-label": label ? (0,external_wp_i18n_namespaceObject.__)('Label') : (0,external_wp_i18n_namespaceObject.__)('Empty label'),
20150      "data-empty": !label,
20151      placeholder: (0,external_wp_i18n_namespaceObject.__)('Type the label for this input')
20152    });
20153    if ('hidden' === type) {
20154      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
20155        children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
20156          type: "hidden",
20157          className: dist_clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
20158          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Value'),
20159          value: value,
20160          onChange: event => setAttributes({
20161            value: event.target.value
20162          })
20163        })]
20164      });
20165    }
20166    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
20167      ...blockProps,
20168      children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
20169        className: dist_clsx('wp-block-form-input__label', {
20170          'is-label-inline': inlineLabel || 'checkbox' === type
20171        }),
20172        children: [!isCheckboxOrRadio && content, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
20173          type: 'textarea' === type ? undefined : type,
20174          className: dist_clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
20175          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text')
20176          // We hide the placeholder field's placeholder when there is a value. This
20177          // stops screen readers from reading the placeholder field's placeholder
20178          // which is confusing.
20179          ,
20180          placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
20181          value: placeholder,
20182          onChange: event => setAttributes({
20183            placeholder: event.target.value
20184          }),
20185          "aria-required": required,
20186          style: {
20187            ...borderProps.style,
20188            ...colorProps.style
20189          }
20190        }), isCheckboxOrRadio && content]
20191      })]
20192    });
20193  }
20194  /* harmony default export */ const form_input_edit = (InputFieldBlock);
20195  
20196  ;// ./node_modules/@wordpress/block-library/build-module/form-input/save.js
20197  /**
20198   * External dependencies
20199   */
20200  
20201  
20202  
20203  /**
20204   * WordPress dependencies
20205   */
20206  
20207  
20208  
20209  /**
20210   * Get the name attribute from a content string.
20211   *
20212   * @param {string} content The block content.
20213   *
20214   * @return {string} Returns the slug.
20215   */
20216  
20217  const getNameFromLabel = content => {
20218    return remove_accents_default()((0,external_wp_dom_namespaceObject.__unstableStripHTML)(content))
20219    // Convert anything that's not a letter or number to a hyphen.
20220    .replace(/[^\p{L}\p{N}]+/gu, '-')
20221    // Convert to lowercase
20222    .toLowerCase()
20223    // Remove any remaining leading or trailing hyphens.
20224    .replace(/(^-+)|(-+$)/g, '');
20225  };
20226  function form_input_save_save({
20227    attributes
20228  }) {
20229    const {
20230      type,
20231      name,
20232      label,
20233      inlineLabel,
20234      required,
20235      placeholder,
20236      value
20237    } = attributes;
20238    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
20239    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
20240    const inputStyle = {
20241      ...borderProps.style,
20242      ...colorProps.style
20243    };
20244    const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
20245    const TagName = type === 'textarea' ? 'textarea' : 'input';
20246    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
20247  
20248    // Note: radio inputs aren't implemented yet.
20249    const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
20250    if ('hidden' === type) {
20251      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
20252        type: type,
20253        name: name,
20254        value: value
20255      });
20256    }
20257    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20258      ...blockProps,
20259      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
20260        className: dist_clsx('wp-block-form-input__label', {
20261          'is-label-inline': inlineLabel
20262        }),
20263        children: [!isCheckboxOrRadio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
20264          className: "wp-block-form-input__label-content",
20265          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20266            value: label
20267          })
20268        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
20269          className: inputClasses,
20270          type: 'textarea' === type ? undefined : type,
20271          name: name || getNameFromLabel(label),
20272          required: required,
20273          "aria-required": required,
20274          placeholder: placeholder || undefined,
20275          style: inputStyle
20276        }), isCheckboxOrRadio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
20277          className: "wp-block-form-input__label-content",
20278          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20279            value: label
20280          })
20281        })]
20282      })
20283    });
20284  }
20285  
20286  ;// ./node_modules/@wordpress/block-library/build-module/form-input/variations.js
20287  /**
20288   * WordPress dependencies
20289   */
20290  
20291  const form_input_variations_variations = [{
20292    name: 'text',
20293    title: (0,external_wp_i18n_namespaceObject.__)('Text Input'),
20294    icon: 'edit-page',
20295    description: (0,external_wp_i18n_namespaceObject.__)('A generic text input.'),
20296    attributes: {
20297      type: 'text'
20298    },
20299    isDefault: true,
20300    scope: ['inserter', 'transform'],
20301    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
20302  }, {
20303    name: 'textarea',
20304    title: (0,external_wp_i18n_namespaceObject.__)('Textarea Input'),
20305    icon: 'testimonial',
20306    description: (0,external_wp_i18n_namespaceObject.__)('A textarea input to allow entering multiple lines of text.'),
20307    attributes: {
20308      type: 'textarea'
20309    },
20310    isDefault: true,
20311    scope: ['inserter', 'transform'],
20312    isActive: blockAttributes => blockAttributes?.type === 'textarea'
20313  }, {
20314    name: 'checkbox',
20315    title: (0,external_wp_i18n_namespaceObject.__)('Checkbox Input'),
20316    description: (0,external_wp_i18n_namespaceObject.__)('A simple checkbox input.'),
20317    icon: 'forms',
20318    attributes: {
20319      type: 'checkbox',
20320      inlineLabel: true
20321    },
20322    isDefault: true,
20323    scope: ['inserter', 'transform'],
20324    isActive: blockAttributes => blockAttributes?.type === 'checkbox'
20325  }, {
20326    name: 'email',
20327    title: (0,external_wp_i18n_namespaceObject.__)('Email Input'),
20328    icon: 'email',
20329    description: (0,external_wp_i18n_namespaceObject.__)('Used for email addresses.'),
20330    attributes: {
20331      type: 'email'
20332    },
20333    isDefault: true,
20334    scope: ['inserter', 'transform'],
20335    isActive: blockAttributes => blockAttributes?.type === 'email'
20336  }, {
20337    name: 'url',
20338    title: (0,external_wp_i18n_namespaceObject.__)('URL Input'),
20339    icon: 'admin-site',
20340    description: (0,external_wp_i18n_namespaceObject.__)('Used for URLs.'),
20341    attributes: {
20342      type: 'url'
20343    },
20344    isDefault: true,
20345    scope: ['inserter', 'transform'],
20346    isActive: blockAttributes => blockAttributes?.type === 'url'
20347  }, {
20348    name: 'tel',
20349    title: (0,external_wp_i18n_namespaceObject.__)('Telephone Input'),
20350    icon: 'phone',
20351    description: (0,external_wp_i18n_namespaceObject.__)('Used for phone numbers.'),
20352    attributes: {
20353      type: 'tel'
20354    },
20355    isDefault: true,
20356    scope: ['inserter', 'transform'],
20357    isActive: blockAttributes => blockAttributes?.type === 'tel'
20358  }, {
20359    name: 'number',
20360    title: (0,external_wp_i18n_namespaceObject.__)('Number Input'),
20361    icon: 'edit-page',
20362    description: (0,external_wp_i18n_namespaceObject.__)('A numeric input.'),
20363    attributes: {
20364      type: 'number'
20365    },
20366    isDefault: true,
20367    scope: ['inserter', 'transform'],
20368    isActive: blockAttributes => blockAttributes?.type === 'number'
20369  }];
20370  /* harmony default export */ const form_input_variations = (form_input_variations_variations);
20371  
20372  ;// ./node_modules/@wordpress/block-library/build-module/form-input/index.js
20373  /**
20374   * Internal dependencies
20375   */
20376  
20377  
20378  
20379  const form_input_metadata = {
20380    $schema: "https://schemas.wp.org/trunk/block.json",
20381    apiVersion: 3,
20382    __experimental: true,
20383    name: "core/form-input",
20384    title: "Input Field",
20385    category: "common",
20386    ancestor: ["core/form"],
20387    description: "The basic building block for forms.",
20388    keywords: ["input", "form"],
20389    textdomain: "default",
20390    icon: "forms",
20391    attributes: {
20392      type: {
20393        type: "string",
20394        "default": "text"
20395      },
20396      name: {
20397        type: "string"
20398      },
20399      label: {
20400        type: "rich-text",
20401        "default": "Label",
20402        selector: ".wp-block-form-input__label-content",
20403        source: "rich-text",
20404        role: "content"
20405      },
20406      inlineLabel: {
20407        type: "boolean",
20408        "default": false
20409      },
20410      required: {
20411        type: "boolean",
20412        "default": false,
20413        selector: ".wp-block-form-input__input",
20414        source: "attribute",
20415        attribute: "required"
20416      },
20417      placeholder: {
20418        type: "string",
20419        selector: ".wp-block-form-input__input",
20420        source: "attribute",
20421        attribute: "placeholder",
20422        role: "content"
20423      },
20424      value: {
20425        type: "string",
20426        "default": "",
20427        selector: "input",
20428        source: "attribute",
20429        attribute: "value"
20430      },
20431      visibilityPermissions: {
20432        type: "string",
20433        "default": "all"
20434      }
20435    },
20436    supports: {
20437      anchor: true,
20438      reusable: false,
20439      spacing: {
20440        margin: ["top", "bottom"]
20441      },
20442      __experimentalBorder: {
20443        radius: true,
20444        __experimentalSkipSerialization: true,
20445        __experimentalDefaultControls: {
20446          radius: true
20447        }
20448      }
20449    },
20450    style: ["wp-block-form-input"]
20451  };
20452  
20453  
20454  const {
20455    name: form_input_name
20456  } = form_input_metadata;
20457  
20458  const form_input_settings = {
20459    deprecated: form_input_deprecated,
20460    edit: form_input_edit,
20461    save: form_input_save_save,
20462    variations: form_input_variations
20463  };
20464  const form_input_init = () => initBlock({
20465    name: form_input_name,
20466    metadata: form_input_metadata,
20467    settings: form_input_settings
20468  });
20469  
20470  ;// ./node_modules/@wordpress/block-library/build-module/form-submit-button/edit.js
20471  /**
20472   * WordPress dependencies
20473   */
20474  
20475  
20476  
20477  const form_submit_button_edit_TEMPLATE = [['core/buttons', {}, [['core/button', {
20478    text: (0,external_wp_i18n_namespaceObject.__)('Submit'),
20479    tagName: 'button',
20480    type: 'submit'
20481  }]]]];
20482  const form_submit_button_edit_Edit = () => {
20483    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
20484    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
20485      template: form_submit_button_edit_TEMPLATE,
20486      templateLock: 'all'
20487    });
20488    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20489      className: "wp-block-form-submit-wrapper",
20490      ...innerBlocksProps
20491    });
20492  };
20493  /* harmony default export */ const form_submit_button_edit = (form_submit_button_edit_Edit);
20494  
20495  ;// ./node_modules/@wordpress/block-library/build-module/form-submit-button/save.js
20496  /**
20497   * WordPress dependencies
20498   */
20499  
20500  
20501  function form_submit_button_save_save() {
20502    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
20503    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20504      className: "wp-block-form-submit-wrapper",
20505      ...blockProps,
20506      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
20507    });
20508  }
20509  
20510  ;// ./node_modules/@wordpress/block-library/build-module/form-submit-button/index.js
20511  /**
20512   * Internal dependencies
20513   */
20514  
20515  
20516  const form_submit_button_metadata = {
20517    $schema: "https://schemas.wp.org/trunk/block.json",
20518    apiVersion: 3,
20519    __experimental: true,
20520    name: "core/form-submit-button",
20521    title: "Form Submit Button",
20522    category: "common",
20523    icon: "button",
20524    ancestor: ["core/form"],
20525    allowedBlocks: ["core/buttons", "core/button"],
20526    description: "A submission button for forms.",
20527    keywords: ["submit", "button", "form"],
20528    textdomain: "default",
20529    style: ["wp-block-form-submit-button"]
20530  };
20531  
20532  const {
20533    name: form_submit_button_name
20534  } = form_submit_button_metadata;
20535  
20536  const form_submit_button_settings = {
20537    edit: form_submit_button_edit,
20538    save: form_submit_button_save_save
20539  };
20540  const form_submit_button_init = () => initBlock({
20541    name: form_submit_button_name,
20542    metadata: form_submit_button_metadata,
20543    settings: form_submit_button_settings
20544  });
20545  
20546  ;// ./node_modules/@wordpress/icons/build-module/library/group.js
20547  /**
20548   * WordPress dependencies
20549   */
20550  
20551  
20552  const group = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
20553    viewBox: "0 0 24 24",
20554    xmlns: "http://www.w3.org/2000/svg",
20555    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
20556      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"
20557    })
20558  });
20559  /* harmony default export */ const library_group = (group);
20560  
20561  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/edit.js
20562  /**
20563   * WordPress dependencies
20564   */
20565  
20566  
20567  
20568  
20569  /**
20570   * External dependencies
20571   */
20572  
20573  
20574  const form_submission_notification_edit_TEMPLATE = [['core/paragraph', {
20575    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.")
20576  }]];
20577  const form_submission_notification_edit_Edit = ({
20578    attributes,
20579    clientId
20580  }) => {
20581    const {
20582      type
20583    } = attributes;
20584    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
20585      className: dist_clsx('wp-block-form-submission-notification', {
20586        [`form-notification-type-$type}`]: type
20587      })
20588    });
20589    const {
20590      hasInnerBlocks
20591    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
20592      const {
20593        getBlock
20594      } = select(external_wp_blockEditor_namespaceObject.store);
20595      const block = getBlock(clientId);
20596      return {
20597        hasInnerBlocks: !!(block && block.innerBlocks.length)
20598      };
20599    }, [clientId]);
20600    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
20601      template: form_submission_notification_edit_TEMPLATE,
20602      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
20603    });
20604    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20605      ...innerBlocksProps,
20606      "data-message-success": (0,external_wp_i18n_namespaceObject.__)('Submission success notification'),
20607      "data-message-error": (0,external_wp_i18n_namespaceObject.__)('Submission error notification')
20608    });
20609  };
20610  /* harmony default export */ const form_submission_notification_edit = (form_submission_notification_edit_Edit);
20611  
20612  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/save.js
20613  /**
20614   * WordPress dependencies
20615   */
20616  
20617  
20618  /**
20619   * External dependencies
20620   */
20621  
20622  
20623  function form_submission_notification_save_save({
20624    attributes
20625  }) {
20626    const {
20627      type
20628    } = attributes;
20629    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20630      ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save({
20631        className: dist_clsx('wp-block-form-submission-notification', {
20632          [`form-notification-type-$type}`]: type
20633        })
20634      }))
20635    });
20636  }
20637  
20638  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/variations.js
20639  /**
20640   * WordPress dependencies
20641   */
20642  
20643  const form_submission_notification_variations_variations = [{
20644    name: 'form-submission-success',
20645    title: (0,external_wp_i18n_namespaceObject.__)('Form Submission Success'),
20646    description: (0,external_wp_i18n_namespaceObject.__)('Success message for form submissions.'),
20647    attributes: {
20648      type: 'success'
20649    },
20650    isDefault: true,
20651    innerBlocks: [['core/paragraph', {
20652      content: (0,external_wp_i18n_namespaceObject.__)('Your form has been submitted successfully.'),
20653      backgroundColor: '#00D084',
20654      textColor: '#000000',
20655      style: {
20656        elements: {
20657          link: {
20658            color: {
20659              text: '#000000'
20660            }
20661          }
20662        }
20663      }
20664    }]],
20665    scope: ['inserter', 'transform'],
20666    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'success'
20667  }, {
20668    name: 'form-submission-error',
20669    title: (0,external_wp_i18n_namespaceObject.__)('Form Submission Error'),
20670    description: (0,external_wp_i18n_namespaceObject.__)('Error/failure message for form submissions.'),
20671    attributes: {
20672      type: 'error'
20673    },
20674    isDefault: false,
20675    innerBlocks: [['core/paragraph', {
20676      content: (0,external_wp_i18n_namespaceObject.__)('There was an error submitting your form.'),
20677      backgroundColor: '#CF2E2E',
20678      textColor: '#FFFFFF',
20679      style: {
20680        elements: {
20681          link: {
20682            color: {
20683              text: '#FFFFFF'
20684            }
20685          }
20686        }
20687      }
20688    }]],
20689    scope: ['inserter', 'transform'],
20690    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'error'
20691  }];
20692  /* harmony default export */ const form_submission_notification_variations = (form_submission_notification_variations_variations);
20693  
20694  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/index.js
20695  /**
20696   * WordPress dependencies
20697   */
20698  
20699  
20700  /**
20701   * Internal dependencies
20702   */
20703  
20704  
20705  const form_submission_notification_metadata = {
20706    $schema: "https://schemas.wp.org/trunk/block.json",
20707    apiVersion: 3,
20708    __experimental: true,
20709    name: "core/form-submission-notification",
20710    title: "Form Submission Notification",
20711    category: "common",
20712    ancestor: ["core/form"],
20713    description: "Provide a notification message after the form has been submitted.",
20714    keywords: ["form", "feedback", "notification", "message"],
20715    textdomain: "default",
20716    icon: "feedback",
20717    attributes: {
20718      type: {
20719        type: "string",
20720        "default": "success"
20721      }
20722    }
20723  };
20724  
20725  
20726  const {
20727    name: form_submission_notification_name
20728  } = form_submission_notification_metadata;
20729  
20730  const form_submission_notification_settings = {
20731    icon: library_group,
20732    edit: form_submission_notification_edit,
20733    save: form_submission_notification_save_save,
20734    variations: form_submission_notification_variations
20735  };
20736  const form_submission_notification_init = () => initBlock({
20737    name: form_submission_notification_name,
20738    metadata: form_submission_notification_metadata,
20739    settings: form_submission_notification_settings
20740  });
20741  
20742  ;// ./node_modules/@wordpress/icons/build-module/library/gallery.js
20743  /**
20744   * WordPress dependencies
20745   */
20746  
20747  
20748  const gallery = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
20749    viewBox: "0 0 24 24",
20750    xmlns: "http://www.w3.org/2000/svg",
20751    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
20752      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",
20753      fillRule: "evenodd",
20754      clipRule: "evenodd"
20755    })
20756  });
20757  /* harmony default export */ const library_gallery = (gallery);
20758  
20759  ;// ./node_modules/@wordpress/block-library/build-module/gallery/constants.js
20760  const LINK_DESTINATION_NONE = 'none';
20761  const LINK_DESTINATION_MEDIA = 'media';
20762  const LINK_DESTINATION_LIGHTBOX = 'lightbox';
20763  const LINK_DESTINATION_ATTACHMENT = 'attachment';
20764  const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
20765  const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';
20766  
20767  ;// ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js
20768  /**
20769   * External dependencies
20770   */
20771  
20772  
20773  /**
20774   * WordPress dependencies
20775   */
20776  
20777  
20778  
20779  /**
20780   * Internal dependencies
20781   */
20782  
20783  
20784  const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
20785  const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
20786  
20787  /**
20788   * Original function to determine default number of columns from a block's
20789   * attributes.
20790   *
20791   * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks.
20792   *
20793   * @param {Object} attributes Block attributes.
20794   * @return {number}           Default number of columns for the gallery.
20795   */
20796  function defaultColumnsNumberV1(attributes) {
20797    return Math.min(3, attributes?.images?.length);
20798  }
20799  
20800  /**
20801   * Original function to determine new href and linkDestination values for an image block from the
20802   * supplied Gallery link destination.
20803   *
20804   * Used in deprecations: v1-6.
20805   *
20806   * @param {Object} image       Gallery image.
20807   * @param {string} destination Gallery's selected link destination.
20808   * @return {Object}            New attributes to assign to image block.
20809   */
20810  function getHrefAndDestination(image, destination) {
20811    // Need to determine the URL that the selected destination maps to.
20812    // Gutenberg and WordPress use different constants so the new link
20813    // destination also needs to be tweaked.
20814    switch (destination) {
20815      case DEPRECATED_LINK_DESTINATION_MEDIA:
20816        return {
20817          href: image?.source_url || image?.url,
20818          // eslint-disable-line camelcase
20819          linkDestination: LINK_DESTINATION_MEDIA
20820        };
20821      case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
20822        return {
20823          href: image?.link,
20824          linkDestination: LINK_DESTINATION_ATTACHMENT
20825        };
20826      case LINK_DESTINATION_MEDIA:
20827        return {
20828          href: image?.source_url || image?.url,
20829          // eslint-disable-line camelcase
20830          linkDestination: LINK_DESTINATION_MEDIA
20831        };
20832      case LINK_DESTINATION_ATTACHMENT:
20833        return {
20834          href: image?.link,
20835          linkDestination: LINK_DESTINATION_ATTACHMENT
20836        };
20837      case LINK_DESTINATION_NONE:
20838        return {
20839          href: undefined,
20840          linkDestination: LINK_DESTINATION_NONE
20841        };
20842    }
20843    return {};
20844  }
20845  function runV2Migration(attributes) {
20846    let linkTo = attributes.linkTo ? attributes.linkTo : 'none';
20847    if (linkTo === 'post') {
20848      linkTo = 'attachment';
20849    } else if (linkTo === 'file') {
20850      linkTo = 'media';
20851    }
20852    const imageBlocks = attributes.images.map(image => {
20853      return getImageBlock(image, attributes.sizeSlug, linkTo);
20854    });
20855    const {
20856      images,
20857      ids,
20858      ...restAttributes
20859    } = attributes;
20860    return [{
20861      ...restAttributes,
20862      linkTo,
20863      allowResize: false
20864    }, imageBlocks];
20865  }
20866  /**
20867   * Gets an Image block from gallery image data
20868   *
20869   * Used to migrate Galleries to nested Image InnerBlocks.
20870   *
20871   * @param {Object} image    Image properties.
20872   * @param {string} sizeSlug Gallery sizeSlug attribute.
20873   * @param {string} linkTo   Gallery linkTo attribute.
20874   * @return {Object}         Image block.
20875   */
20876  function getImageBlock(image, sizeSlug, linkTo) {
20877    return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
20878      ...(image.id && {
20879        id: parseInt(image.id)
20880      }),
20881      url: image.url,
20882      alt: image.alt,
20883      caption: image.caption,
20884      sizeSlug,
20885      ...getHrefAndDestination(image, linkTo)
20886    });
20887  }
20888  
20889  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
20890  // to the gallery figcaption element.
20891  const deprecated_v7 = {
20892    attributes: {
20893      images: {
20894        type: 'array',
20895        default: [],
20896        source: 'query',
20897        selector: '.blocks-gallery-item',
20898        query: {
20899          url: {
20900            type: 'string',
20901            source: 'attribute',
20902            selector: 'img',
20903            attribute: 'src'
20904          },
20905          fullUrl: {
20906            type: 'string',
20907            source: 'attribute',
20908            selector: 'img',
20909            attribute: 'data-full-url'
20910          },
20911          link: {
20912            type: 'string',
20913            source: 'attribute',
20914            selector: 'img',
20915            attribute: 'data-link'
20916          },
20917          alt: {
20918            type: 'string',
20919            source: 'attribute',
20920            selector: 'img',
20921            attribute: 'alt',
20922            default: ''
20923          },
20924          id: {
20925            type: 'string',
20926            source: 'attribute',
20927            selector: 'img',
20928            attribute: 'data-id'
20929          },
20930          caption: {
20931            type: 'string',
20932            source: 'html',
20933            selector: '.blocks-gallery-item__caption'
20934          }
20935        }
20936      },
20937      ids: {
20938        type: 'array',
20939        items: {
20940          type: 'number'
20941        },
20942        default: []
20943      },
20944      shortCodeTransforms: {
20945        type: 'array',
20946        default: [],
20947        items: {
20948          type: 'object'
20949        }
20950      },
20951      columns: {
20952        type: 'number',
20953        minimum: 1,
20954        maximum: 8
20955      },
20956      caption: {
20957        type: 'string',
20958        source: 'html',
20959        selector: '.blocks-gallery-caption'
20960      },
20961      imageCrop: {
20962        type: 'boolean',
20963        default: true
20964      },
20965      fixedHeight: {
20966        type: 'boolean',
20967        default: true
20968      },
20969      linkTarget: {
20970        type: 'string'
20971      },
20972      linkTo: {
20973        type: 'string'
20974      },
20975      sizeSlug: {
20976        type: 'string',
20977        default: 'large'
20978      },
20979      allowResize: {
20980        type: 'boolean',
20981        default: false
20982      }
20983    },
20984    save({
20985      attributes
20986    }) {
20987      const {
20988        caption,
20989        columns,
20990        imageCrop
20991      } = attributes;
20992      const className = dist_clsx('has-nested-images', {
20993        [`columns-$columns}`]: columns !== undefined,
20994        [`columns-default`]: columns === undefined,
20995        'is-cropped': imageCrop
20996      });
20997      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
20998        className
20999      });
21000      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
21001      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21002        ...innerBlocksProps,
21003        children: [innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21004          tagName: "figcaption",
21005          className: "blocks-gallery-caption",
21006          value: caption
21007        })]
21008      });
21009    }
21010  };
21011  const deprecated_v6 = {
21012    attributes: {
21013      images: {
21014        type: 'array',
21015        default: [],
21016        source: 'query',
21017        selector: '.blocks-gallery-item',
21018        query: {
21019          url: {
21020            type: 'string',
21021            source: 'attribute',
21022            selector: 'img',
21023            attribute: 'src'
21024          },
21025          fullUrl: {
21026            type: 'string',
21027            source: 'attribute',
21028            selector: 'img',
21029            attribute: 'data-full-url'
21030          },
21031          link: {
21032            type: 'string',
21033            source: 'attribute',
21034            selector: 'img',
21035            attribute: 'data-link'
21036          },
21037          alt: {
21038            type: 'string',
21039            source: 'attribute',
21040            selector: 'img',
21041            attribute: 'alt',
21042            default: ''
21043          },
21044          id: {
21045            type: 'string',
21046            source: 'attribute',
21047            selector: 'img',
21048            attribute: 'data-id'
21049          },
21050          caption: {
21051            type: 'string',
21052            source: 'html',
21053            selector: '.blocks-gallery-item__caption'
21054          }
21055        }
21056      },
21057      ids: {
21058        type: 'array',
21059        items: {
21060          type: 'number'
21061        },
21062        default: []
21063      },
21064      columns: {
21065        type: 'number',
21066        minimum: 1,
21067        maximum: 8
21068      },
21069      caption: {
21070        type: 'string',
21071        source: 'html',
21072        selector: '.blocks-gallery-caption'
21073      },
21074      imageCrop: {
21075        type: 'boolean',
21076        default: true
21077      },
21078      fixedHeight: {
21079        type: 'boolean',
21080        default: true
21081      },
21082      linkTo: {
21083        type: 'string'
21084      },
21085      sizeSlug: {
21086        type: 'string',
21087        default: 'large'
21088      }
21089    },
21090    supports: {
21091      anchor: true,
21092      align: true
21093    },
21094    save({
21095      attributes
21096    }) {
21097      const {
21098        images,
21099        columns = defaultColumnsNumberV1(attributes),
21100        imageCrop,
21101        caption,
21102        linkTo
21103      } = attributes;
21104      const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`;
21105      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21106        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
21107          className
21108        }),
21109        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21110          className: "blocks-gallery-grid",
21111          children: images.map(image => {
21112            let href;
21113            switch (linkTo) {
21114              case DEPRECATED_LINK_DESTINATION_MEDIA:
21115                href = image.fullUrl || image.url;
21116                break;
21117              case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
21118                href = image.link;
21119                break;
21120            }
21121            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21122              src: image.url,
21123              alt: image.alt,
21124              "data-id": image.id,
21125              "data-full-url": image.fullUrl,
21126              "data-link": image.link,
21127              className: image.id ? `wp-image-$image.id}` : null
21128            });
21129            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21130              className: "blocks-gallery-item",
21131              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21132                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21133                  href: href,
21134                  children: img
21135                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21136                  tagName: "figcaption",
21137                  className: "blocks-gallery-item__caption",
21138                  value: image.caption
21139                })]
21140              })
21141            }, image.id || image.url);
21142          })
21143        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21144          tagName: "figcaption",
21145          className: "blocks-gallery-caption",
21146          value: caption
21147        })]
21148      });
21149    },
21150    migrate(attributes) {
21151      return runV2Migration(attributes);
21152    }
21153  };
21154  const deprecated_v5 = {
21155    attributes: {
21156      images: {
21157        type: 'array',
21158        default: [],
21159        source: 'query',
21160        selector: '.blocks-gallery-item',
21161        query: {
21162          url: {
21163            type: 'string',
21164            source: 'attribute',
21165            selector: 'img',
21166            attribute: 'src'
21167          },
21168          fullUrl: {
21169            type: 'string',
21170            source: 'attribute',
21171            selector: 'img',
21172            attribute: 'data-full-url'
21173          },
21174          link: {
21175            type: 'string',
21176            source: 'attribute',
21177            selector: 'img',
21178            attribute: 'data-link'
21179          },
21180          alt: {
21181            type: 'string',
21182            source: 'attribute',
21183            selector: 'img',
21184            attribute: 'alt',
21185            default: ''
21186          },
21187          id: {
21188            type: 'string',
21189            source: 'attribute',
21190            selector: 'img',
21191            attribute: 'data-id'
21192          },
21193          caption: {
21194            type: 'string',
21195            source: 'html',
21196            selector: '.blocks-gallery-item__caption'
21197          }
21198        }
21199      },
21200      ids: {
21201        type: 'array',
21202        items: {
21203          type: 'number'
21204        },
21205        default: []
21206      },
21207      columns: {
21208        type: 'number',
21209        minimum: 1,
21210        maximum: 8
21211      },
21212      caption: {
21213        type: 'string',
21214        source: 'html',
21215        selector: '.blocks-gallery-caption'
21216      },
21217      imageCrop: {
21218        type: 'boolean',
21219        default: true
21220      },
21221      linkTo: {
21222        type: 'string',
21223        default: 'none'
21224      },
21225      sizeSlug: {
21226        type: 'string',
21227        default: 'large'
21228      }
21229    },
21230    supports: {
21231      align: true
21232    },
21233    isEligible({
21234      linkTo
21235    }) {
21236      return !linkTo || linkTo === 'attachment' || linkTo === 'media';
21237    },
21238    migrate(attributes) {
21239      return runV2Migration(attributes);
21240    },
21241    save({
21242      attributes
21243    }) {
21244      const {
21245        images,
21246        columns = defaultColumnsNumberV1(attributes),
21247        imageCrop,
21248        caption,
21249        linkTo
21250      } = attributes;
21251      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21252        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21253        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21254          className: "blocks-gallery-grid",
21255          children: images.map(image => {
21256            let href;
21257            switch (linkTo) {
21258              case 'media':
21259                href = image.fullUrl || image.url;
21260                break;
21261              case 'attachment':
21262                href = image.link;
21263                break;
21264            }
21265            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21266              src: image.url,
21267              alt: image.alt,
21268              "data-id": image.id,
21269              "data-full-url": image.fullUrl,
21270              "data-link": image.link,
21271              className: image.id ? `wp-image-$image.id}` : null
21272            });
21273            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21274              className: "blocks-gallery-item",
21275              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21276                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21277                  href: href,
21278                  children: img
21279                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21280                  tagName: "figcaption",
21281                  className: "blocks-gallery-item__caption",
21282                  value: image.caption
21283                })]
21284              })
21285            }, image.id || image.url);
21286          })
21287        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21288          tagName: "figcaption",
21289          className: "blocks-gallery-caption",
21290          value: caption
21291        })]
21292      });
21293    }
21294  };
21295  const deprecated_v4 = {
21296    attributes: {
21297      images: {
21298        type: 'array',
21299        default: [],
21300        source: 'query',
21301        selector: '.blocks-gallery-item',
21302        query: {
21303          url: {
21304            source: 'attribute',
21305            selector: 'img',
21306            attribute: 'src'
21307          },
21308          fullUrl: {
21309            source: 'attribute',
21310            selector: 'img',
21311            attribute: 'data-full-url'
21312          },
21313          link: {
21314            source: 'attribute',
21315            selector: 'img',
21316            attribute: 'data-link'
21317          },
21318          alt: {
21319            source: 'attribute',
21320            selector: 'img',
21321            attribute: 'alt',
21322            default: ''
21323          },
21324          id: {
21325            source: 'attribute',
21326            selector: 'img',
21327            attribute: 'data-id'
21328          },
21329          caption: {
21330            type: 'string',
21331            source: 'html',
21332            selector: '.blocks-gallery-item__caption'
21333          }
21334        }
21335      },
21336      ids: {
21337        type: 'array',
21338        default: []
21339      },
21340      columns: {
21341        type: 'number'
21342      },
21343      caption: {
21344        type: 'string',
21345        source: 'html',
21346        selector: '.blocks-gallery-caption'
21347      },
21348      imageCrop: {
21349        type: 'boolean',
21350        default: true
21351      },
21352      linkTo: {
21353        type: 'string',
21354        default: 'none'
21355      }
21356    },
21357    supports: {
21358      align: true
21359    },
21360    isEligible({
21361      ids
21362    }) {
21363      return ids && ids.some(id => typeof id === 'string');
21364    },
21365    migrate(attributes) {
21366      return runV2Migration(attributes);
21367    },
21368    save({
21369      attributes
21370    }) {
21371      const {
21372        images,
21373        columns = defaultColumnsNumberV1(attributes),
21374        imageCrop,
21375        caption,
21376        linkTo
21377      } = attributes;
21378      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21379        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21380        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21381          className: "blocks-gallery-grid",
21382          children: images.map(image => {
21383            let href;
21384            switch (linkTo) {
21385              case 'media':
21386                href = image.fullUrl || image.url;
21387                break;
21388              case 'attachment':
21389                href = image.link;
21390                break;
21391            }
21392            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21393              src: image.url,
21394              alt: image.alt,
21395              "data-id": image.id,
21396              "data-full-url": image.fullUrl,
21397              "data-link": image.link,
21398              className: image.id ? `wp-image-$image.id}` : null
21399            });
21400            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21401              className: "blocks-gallery-item",
21402              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21403                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21404                  href: href,
21405                  children: img
21406                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21407                  tagName: "figcaption",
21408                  className: "blocks-gallery-item__caption",
21409                  value: image.caption
21410                })]
21411              })
21412            }, image.id || image.url);
21413          })
21414        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21415          tagName: "figcaption",
21416          className: "blocks-gallery-caption",
21417          value: caption
21418        })]
21419      });
21420    }
21421  };
21422  const gallery_deprecated_v3 = {
21423    attributes: {
21424      images: {
21425        type: 'array',
21426        default: [],
21427        source: 'query',
21428        selector: 'ul.wp-block-gallery .blocks-gallery-item',
21429        query: {
21430          url: {
21431            source: 'attribute',
21432            selector: 'img',
21433            attribute: 'src'
21434          },
21435          fullUrl: {
21436            source: 'attribute',
21437            selector: 'img',
21438            attribute: 'data-full-url'
21439          },
21440          alt: {
21441            source: 'attribute',
21442            selector: 'img',
21443            attribute: 'alt',
21444            default: ''
21445          },
21446          id: {
21447            source: 'attribute',
21448            selector: 'img',
21449            attribute: 'data-id'
21450          },
21451          link: {
21452            source: 'attribute',
21453            selector: 'img',
21454            attribute: 'data-link'
21455          },
21456          caption: {
21457            type: 'string',
21458            source: 'html',
21459            selector: 'figcaption'
21460          }
21461        }
21462      },
21463      ids: {
21464        type: 'array',
21465        default: []
21466      },
21467      columns: {
21468        type: 'number'
21469      },
21470      imageCrop: {
21471        type: 'boolean',
21472        default: true
21473      },
21474      linkTo: {
21475        type: 'string',
21476        default: 'none'
21477      }
21478    },
21479    supports: {
21480      align: true
21481    },
21482    save({
21483      attributes
21484    }) {
21485      const {
21486        images,
21487        columns = defaultColumnsNumberV1(attributes),
21488        imageCrop,
21489        linkTo
21490      } = attributes;
21491      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21492        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21493        children: images.map(image => {
21494          let href;
21495          switch (linkTo) {
21496            case 'media':
21497              href = image.fullUrl || image.url;
21498              break;
21499            case 'attachment':
21500              href = image.link;
21501              break;
21502          }
21503          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21504            src: image.url,
21505            alt: image.alt,
21506            "data-id": image.id,
21507            "data-full-url": image.fullUrl,
21508            "data-link": image.link,
21509            className: image.id ? `wp-image-$image.id}` : null
21510          });
21511          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21512            className: "blocks-gallery-item",
21513            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21514              children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21515                href: href,
21516                children: img
21517              }) : img, image.caption && image.caption.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21518                tagName: "figcaption",
21519                value: image.caption
21520              })]
21521            })
21522          }, image.id || image.url);
21523        })
21524      });
21525    },
21526    migrate(attributes) {
21527      return runV2Migration(attributes);
21528    }
21529  };
21530  const gallery_deprecated_v2 = {
21531    attributes: {
21532      images: {
21533        type: 'array',
21534        default: [],
21535        source: 'query',
21536        selector: 'ul.wp-block-gallery .blocks-gallery-item',
21537        query: {
21538          url: {
21539            source: 'attribute',
21540            selector: 'img',
21541            attribute: 'src'
21542          },
21543          alt: {
21544            source: 'attribute',
21545            selector: 'img',
21546            attribute: 'alt',
21547            default: ''
21548          },
21549          id: {
21550            source: 'attribute',
21551            selector: 'img',
21552            attribute: 'data-id'
21553          },
21554          link: {
21555            source: 'attribute',
21556            selector: 'img',
21557            attribute: 'data-link'
21558          },
21559          caption: {
21560            type: 'string',
21561            source: 'html',
21562            selector: 'figcaption'
21563          }
21564        }
21565      },
21566      columns: {
21567        type: 'number'
21568      },
21569      imageCrop: {
21570        type: 'boolean',
21571        default: true
21572      },
21573      linkTo: {
21574        type: 'string',
21575        default: 'none'
21576      }
21577    },
21578    isEligible({
21579      images,
21580      ids
21581    }) {
21582      return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || images.some((id, index) => {
21583        if (!id && ids[index] !== null) {
21584          return true;
21585        }
21586        return parseInt(id, 10) !== ids[index];
21587      }));
21588    },
21589    migrate(attributes) {
21590      return runV2Migration(attributes);
21591    },
21592    supports: {
21593      align: true
21594    },
21595    save({
21596      attributes
21597    }) {
21598      const {
21599        images,
21600        columns = defaultColumnsNumberV1(attributes),
21601        imageCrop,
21602        linkTo
21603      } = attributes;
21604      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21605        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21606        children: images.map(image => {
21607          let href;
21608          switch (linkTo) {
21609            case 'media':
21610              href = image.url;
21611              break;
21612            case 'attachment':
21613              href = image.link;
21614              break;
21615          }
21616          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21617            src: image.url,
21618            alt: image.alt,
21619            "data-id": image.id,
21620            "data-link": image.link,
21621            className: image.id ? `wp-image-$image.id}` : null
21622          });
21623          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21624            className: "blocks-gallery-item",
21625            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21626              children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21627                href: href,
21628                children: img
21629              }) : img, image.caption && image.caption.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21630                tagName: "figcaption",
21631                value: image.caption
21632              })]
21633            })
21634          }, image.id || image.url);
21635        })
21636      });
21637    }
21638  };
21639  const gallery_deprecated_v1 = {
21640    attributes: {
21641      images: {
21642        type: 'array',
21643        default: [],
21644        source: 'query',
21645        selector: 'div.wp-block-gallery figure.blocks-gallery-image img',
21646        query: {
21647          url: {
21648            source: 'attribute',
21649            attribute: 'src'
21650          },
21651          alt: {
21652            source: 'attribute',
21653            attribute: 'alt',
21654            default: ''
21655          },
21656          id: {
21657            source: 'attribute',
21658            attribute: 'data-id'
21659          }
21660        }
21661      },
21662      columns: {
21663        type: 'number'
21664      },
21665      imageCrop: {
21666        type: 'boolean',
21667        default: true
21668      },
21669      linkTo: {
21670        type: 'string',
21671        default: 'none'
21672      },
21673      align: {
21674        type: 'string',
21675        default: 'none'
21676      }
21677    },
21678    supports: {
21679      align: true
21680    },
21681    save({
21682      attributes
21683    }) {
21684      const {
21685        images,
21686        columns = defaultColumnsNumberV1(attributes),
21687        align,
21688        imageCrop,
21689        linkTo
21690      } = attributes;
21691      const className = dist_clsx(`columns-$columns}`, {
21692        alignnone: align === 'none',
21693        'is-cropped': imageCrop
21694      });
21695      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
21696        className: className,
21697        children: images.map(image => {
21698          let href;
21699          switch (linkTo) {
21700            case 'media':
21701              href = image.url;
21702              break;
21703            case 'attachment':
21704              href = image.link;
21705              break;
21706          }
21707          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21708            src: image.url,
21709            alt: image.alt,
21710            "data-id": image.id
21711          });
21712          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
21713            className: "blocks-gallery-image",
21714            children: href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21715              href: href,
21716              children: img
21717            }) : img
21718          }, image.id || image.url);
21719        })
21720      });
21721    },
21722    migrate(attributes) {
21723      return runV2Migration(attributes);
21724    }
21725  };
21726  /* harmony default export */ const gallery_deprecated = ([deprecated_v7, deprecated_v6, deprecated_v5, deprecated_v4, gallery_deprecated_v3, gallery_deprecated_v2, gallery_deprecated_v1]);
21727  
21728  ;// ./node_modules/@wordpress/icons/build-module/library/custom-link.js
21729  /**
21730   * WordPress dependencies
21731   */
21732  
21733  
21734  const customLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
21735    xmlns: "http://www.w3.org/2000/svg",
21736    viewBox: "0 0 24 24",
21737    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
21738      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"
21739    })
21740  });
21741  /* harmony default export */ const custom_link = (customLink);
21742  
21743  ;// ./node_modules/@wordpress/icons/build-module/library/image.js
21744  /**
21745   * WordPress dependencies
21746   */
21747  
21748  
21749  const image_image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
21750    viewBox: "0 0 24 24",
21751    xmlns: "http://www.w3.org/2000/svg",
21752    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
21753      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"
21754    })
21755  });
21756  /* harmony default export */ const library_image = (image_image);
21757  
21758  ;// ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js
21759  /**
21760   * WordPress dependencies
21761   */
21762  
21763  
21764  
21765  const sharedIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
21766    icon: library_gallery
21767  });
21768  
21769  ;// ./node_modules/@wordpress/block-library/build-module/gallery/shared.js
21770  function defaultColumnsNumber(imageCount) {
21771    return imageCount ? Math.min(3, imageCount) : 3;
21772  }
21773  const pickRelevantMediaFiles = (image, sizeSlug = 'large') => {
21774    const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link'].includes(key)));
21775    imageProps.url = image?.sizes?.[sizeSlug]?.url || image?.media_details?.sizes?.[sizeSlug]?.source_url || image?.url || image?.source_url;
21776    const fullUrl = image?.sizes?.full?.url || image?.media_details?.sizes?.full?.source_url;
21777    if (fullUrl) {
21778      imageProps.fullUrl = fullUrl;
21779    }
21780    return imageProps;
21781  };
21782  
21783  ;// ./node_modules/@wordpress/block-library/build-module/image/constants.js
21784  const constants_MIN_SIZE = 20;
21785  const constants_LINK_DESTINATION_NONE = 'none';
21786  const constants_LINK_DESTINATION_MEDIA = 'media';
21787  const constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
21788  const LINK_DESTINATION_CUSTOM = 'custom';
21789  const constants_NEW_TAB_REL = ['noreferrer', 'noopener'];
21790  const constants_ALLOWED_MEDIA_TYPES = ['image'];
21791  const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0;
21792  
21793  ;// ./node_modules/@wordpress/block-library/build-module/gallery/utils.js
21794  /**
21795   * Internal dependencies
21796   */
21797  
21798  
21799  
21800  /**
21801   * Determines new href and linkDestination values for an Image block from the
21802   * supplied Gallery link destination, or falls back to the Image blocks link.
21803   *
21804   * @param {Object} image              Gallery image.
21805   * @param {string} galleryDestination Gallery's selected link destination.
21806   * @param {Object} imageDestination   Image block link destination attribute.
21807   * @param {Object} attributes         Block attributes.
21808   * @param {Object} lightboxSetting    Lightbox setting.
21809   *
21810   * @return {Object}            New attributes to assign to image block.
21811   */
21812  function utils_getHrefAndDestination(image, galleryDestination, imageDestination, attributes, lightboxSetting) {
21813    // Gutenberg and WordPress use different constants so if image_default_link_type
21814    // option is set we need to map from the WP Core values.
21815    switch (imageDestination ? imageDestination : galleryDestination) {
21816      case LINK_DESTINATION_MEDIA_WP_CORE:
21817      case LINK_DESTINATION_MEDIA:
21818        return {
21819          href: image?.source_url || image?.url,
21820          // eslint-disable-line camelcase
21821          linkDestination: constants_LINK_DESTINATION_MEDIA,
21822          lightbox: lightboxSetting?.enabled ? {
21823            ...attributes?.lightbox,
21824            enabled: false
21825          } : undefined
21826        };
21827      case LINK_DESTINATION_ATTACHMENT_WP_CORE:
21828      case LINK_DESTINATION_ATTACHMENT:
21829        return {
21830          href: image?.link,
21831          linkDestination: constants_LINK_DESTINATION_ATTACHMENT,
21832          lightbox: lightboxSetting?.enabled ? {
21833            ...attributes?.lightbox,
21834            enabled: false
21835          } : undefined
21836        };
21837      case LINK_DESTINATION_LIGHTBOX:
21838        return {
21839          href: undefined,
21840          lightbox: !lightboxSetting?.enabled ? {
21841            ...attributes?.lightbox,
21842            enabled: true
21843          } : undefined,
21844          linkDestination: constants_LINK_DESTINATION_NONE
21845        };
21846      case LINK_DESTINATION_NONE:
21847        return {
21848          href: undefined,
21849          linkDestination: constants_LINK_DESTINATION_NONE,
21850          lightbox: undefined
21851        };
21852    }
21853    return {};
21854  }
21855  
21856  ;// ./node_modules/@wordpress/block-library/build-module/image/utils.js
21857  /**
21858   * Internal dependencies
21859   */
21860  
21861  
21862  /**
21863   * Evaluates a CSS aspect-ratio property value as a number.
21864   *
21865   * Degenerate or invalid ratios behave as 'auto'. And 'auto' ratios return NaN.
21866   *
21867   * @see https://drafts.csswg.org/css-sizing-4/#aspect-ratio
21868   *
21869   * @param {string} value CSS aspect-ratio property value.
21870   * @return {number} Numerical aspect ratio or NaN if invalid.
21871   */
21872  function evalAspectRatio(value) {
21873    const [width, height = 1] = value.split('/').map(Number);
21874    const aspectRatio = width / height;
21875    return aspectRatio === Infinity || aspectRatio === 0 ? NaN : aspectRatio;
21876  }
21877  function removeNewTabRel(currentRel) {
21878    let newRel = currentRel;
21879    if (currentRel !== undefined && newRel) {
21880      constants_NEW_TAB_REL.forEach(relVal => {
21881        const regExp = new RegExp('\\b' + relVal + '\\b', 'gi');
21882        newRel = newRel.replace(regExp, '');
21883      });
21884  
21885      // Only trim if NEW_TAB_REL values was replaced.
21886      if (newRel !== currentRel) {
21887        newRel = newRel.trim();
21888      }
21889      if (!newRel) {
21890        newRel = undefined;
21891      }
21892    }
21893    return newRel;
21894  }
21895  
21896  /**
21897   * Helper to get the link target settings to be stored.
21898   *
21899   * @param {boolean} value          The new link target value.
21900   * @param {Object}  attributes     Block attributes.
21901   * @param {Object}  attributes.rel Image block's rel attribute.
21902   *
21903   * @return {Object} Updated link target settings.
21904   */
21905  function getUpdatedLinkTargetSettings(value, {
21906    rel
21907  }) {
21908    const linkTarget = value ? '_blank' : undefined;
21909    let updatedRel;
21910    if (!linkTarget && !rel) {
21911      updatedRel = undefined;
21912    } else {
21913      updatedRel = removeNewTabRel(rel);
21914    }
21915    return {
21916      linkTarget,
21917      rel: updatedRel
21918    };
21919  }
21920  
21921  /**
21922   * Determines new Image block attributes size selection.
21923   *
21924   * @param {Object} image Media file object for gallery image.
21925   * @param {string} size  Selected size slug to apply.
21926   */
21927  function getImageSizeAttributes(image, size) {
21928    const url = image?.media_details?.sizes?.[size]?.source_url;
21929    if (url) {
21930      return {
21931        url,
21932        width: undefined,
21933        height: undefined,
21934        sizeSlug: size
21935      };
21936    }
21937    return {};
21938  }
21939  
21940  /**
21941   * Checks if the file has a valid file type.
21942   *
21943   * @param {File} file - The file to check.
21944   * @return {boolean} - Returns true if the file has a valid file type, otherwise false.
21945   */
21946  function isValidFileType(file) {
21947    return constants_ALLOWED_MEDIA_TYPES.some(mediaType => file.type.indexOf(mediaType) === 0);
21948  }
21949  
21950  ;// ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js
21951  /**
21952   * External dependencies
21953   */
21954  
21955  
21956  /**
21957   * WordPress dependencies
21958   */
21959  
21960  
21961  
21962  /**
21963   * Internal dependencies
21964   */
21965  
21966  
21967  function Gallery(props) {
21968    const {
21969      attributes,
21970      isSelected,
21971      setAttributes,
21972      mediaPlaceholder,
21973      insertBlocksAfter,
21974      blockProps,
21975      __unstableLayoutClassNames: layoutClassNames,
21976      isContentLocked,
21977      multiGallerySelection
21978    } = props;
21979    const {
21980      align,
21981      columns,
21982      imageCrop
21983    } = attributes;
21984    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21985      ...blockProps,
21986      className: dist_clsx(blockProps.className, layoutClassNames, 'blocks-gallery-grid', {
21987        [`align$align}`]: align,
21988        [`columns-$columns}`]: columns !== undefined,
21989        [`columns-default`]: columns === undefined,
21990        'is-cropped': imageCrop
21991      }),
21992      children: [blockProps.children, isSelected && !blockProps.children && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
21993        className: "blocks-gallery-media-placeholder-wrapper",
21994        children: mediaPlaceholder
21995      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
21996        attributes: attributes,
21997        setAttributes: setAttributes,
21998        isSelected: isSelected,
21999        insertBlocksAfter: insertBlocksAfter,
22000        showToolbarButton: !multiGallerySelection && !isContentLocked,
22001        className: "blocks-gallery-caption",
22002        label: (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
22003        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add gallery caption')
22004      })]
22005    });
22006  }
22007  
22008  ;// ./node_modules/@wordpress/block-library/build-module/gallery/use-image-sizes.js
22009  /**
22010   * WordPress dependencies
22011   */
22012  
22013  
22014  /**
22015   * Calculates the image sizes that are available for the current gallery images in order to
22016   * populate the 'Resolution' selector.
22017   *
22018   * @param {Array}    images      Basic image block data taken from current gallery innerBlock.
22019   * @param {boolean}  isSelected  Is the block currently selected in the editor.
22020   * @param {Function} getSettings Block editor store selector.
22021   *
22022   * @return {Array} An array of image size options.
22023   */
22024  function useImageSizes(images, isSelected, getSettings) {
22025    return (0,external_wp_element_namespaceObject.useMemo)(() => getImageSizing(), [images, isSelected]);
22026    function getImageSizing() {
22027      if (!images || images.length === 0) {
22028        return;
22029      }
22030      const {
22031        imageSizes
22032      } = getSettings();
22033      let resizedImages = {};
22034      if (isSelected) {
22035        resizedImages = images.reduce((currentResizedImages, img) => {
22036          if (!img.id) {
22037            return currentResizedImages;
22038          }
22039          const sizes = imageSizes.reduce((currentSizes, size) => {
22040            const defaultUrl = img.sizes?.[size.slug]?.url;
22041            const mediaDetailsUrl = img.media_details?.sizes?.[size.slug]?.source_url;
22042            return {
22043              ...currentSizes,
22044              [size.slug]: defaultUrl || mediaDetailsUrl
22045            };
22046          }, {});
22047          return {
22048            ...currentResizedImages,
22049            [parseInt(img.id, 10)]: sizes
22050          };
22051        }, {});
22052      }
22053      const resizedImageSizes = Object.values(resizedImages);
22054      return imageSizes.filter(({
22055        slug
22056      }) => resizedImageSizes.some(sizes => sizes[slug])).map(({
22057        name,
22058        slug
22059      }) => ({
22060        value: slug,
22061        label: name
22062      }));
22063    }
22064  }
22065  
22066  ;// ./node_modules/@wordpress/block-library/build-module/gallery/use-get-new-images.js
22067  /**
22068   * WordPress dependencies
22069   */
22070  
22071  
22072  /**
22073   * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This
22074   * is required so default gallery attributes can be applied without overwriting any custom
22075   * attributes applied to existing images.
22076   *
22077   * @param {Array} images    Basic image block data taken from current gallery innerBlock
22078   * @param {Array} imageData The related image data for each of the current gallery images.
22079   *
22080   * @return {Array} An array of any new images that have been added to the gallery.
22081   */
22082  function useGetNewImages(images, imageData) {
22083    const [currentImages, setCurrentImages] = (0,external_wp_element_namespaceObject.useState)([]);
22084    return (0,external_wp_element_namespaceObject.useMemo)(() => getNewImages(), [images, imageData]);
22085    function getNewImages() {
22086      let imagesUpdated = false;
22087  
22088      // First lets check if any images have been deleted.
22089      const newCurrentImages = currentImages.filter(currentImg => images.find(img => {
22090        return currentImg.clientId === img.clientId;
22091      }));
22092      if (newCurrentImages.length < currentImages.length) {
22093        imagesUpdated = true;
22094      }
22095  
22096      // Now lets see if we have any images hydrated from saved content and if so
22097      // add them to currentImages state.
22098      images.forEach(image => {
22099        if (image.fromSavedContent && !newCurrentImages.find(currentImage => currentImage.id === image.id)) {
22100          imagesUpdated = true;
22101          newCurrentImages.push(image);
22102        }
22103      });
22104  
22105      // Now check for any new images that have been added to InnerBlocks and for which
22106      // we have the imageData we need for setting default block attributes.
22107      const newImages = images.filter(image => !newCurrentImages.find(currentImage => image.clientId && currentImage.clientId === image.clientId) && imageData?.find(img => img.id === image.id) && !image.fromSavedContent);
22108      if (imagesUpdated || newImages?.length > 0) {
22109        setCurrentImages([...newCurrentImages, ...newImages]);
22110      }
22111      return newImages.length > 0 ? newImages : null;
22112    }
22113  }
22114  
22115  ;// ./node_modules/@wordpress/block-library/build-module/gallery/use-get-media.js
22116  /**
22117   * WordPress dependencies
22118   */
22119  
22120  
22121  const EMPTY_IMAGE_MEDIA = [];
22122  
22123  /**
22124   * Retrieves the extended media info for each gallery image from the store. This is used to
22125   * determine which image size options are available for the current gallery.
22126   *
22127   * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.
22128   *
22129   * @return {Array} An array of media info options for each gallery image.
22130   */
22131  function useGetMedia(innerBlockImages) {
22132    return (0,external_wp_data_namespaceObject.useSelect)(select => {
22133      var _select$getMediaItems;
22134      const imageIds = innerBlockImages.map(imageBlock => imageBlock.attributes.id).filter(id => id !== undefined);
22135      if (imageIds.length === 0) {
22136        return EMPTY_IMAGE_MEDIA;
22137      }
22138      return (_select$getMediaItems = select(external_wp_coreData_namespaceObject.store).getMediaItems({
22139        include: imageIds.join(','),
22140        per_page: -1,
22141        orderby: 'include'
22142      })) !== null && _select$getMediaItems !== void 0 ? _select$getMediaItems : EMPTY_IMAGE_MEDIA;
22143    }, [innerBlockImages]);
22144  }
22145  
22146  ;// ./node_modules/@wordpress/block-library/build-module/gallery/gap-styles.js
22147  /**
22148   * WordPress dependencies
22149   */
22150  
22151  function GapStyles({
22152    blockGap,
22153    clientId
22154  }) {
22155    // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
22156    // gap on the gallery.
22157    const fallbackValue = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
22158    let gapValue = fallbackValue;
22159    let column = fallbackValue;
22160    let row;
22161  
22162    // Check for the possibility of split block gap values. See: https://github.com/WordPress/gutenberg/pull/37736
22163    if (!!blockGap) {
22164      row = typeof blockGap === 'string' ? (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap) : (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap?.top) || fallbackValue;
22165      column = typeof blockGap === 'string' ? (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap) : (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap?.left) || fallbackValue;
22166      gapValue = row === column ? row : `$row} $column}`;
22167    }
22168  
22169    // The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.
22170    const gap = `#block-$clientId} {
22171          --wp--style--unstable-gallery-gap: $column === '0' ? '0px' : column};
22172          gap: $gapValue}
22173      }`;
22174    (0,external_wp_blockEditor_namespaceObject.useStyleOverride)({
22175      css: gap
22176    });
22177    return null;
22178  }
22179  
22180  ;// ./node_modules/@wordpress/block-library/build-module/gallery/edit.js
22181  /**
22182   * External dependencies
22183   */
22184  
22185  
22186  /**
22187   * WordPress dependencies
22188   */
22189  
22190  
22191  
22192  
22193  
22194  
22195  
22196  
22197  
22198  
22199  
22200  /**
22201   * Internal dependencies
22202   */
22203  
22204  
22205  
22206  
22207  
22208  
22209  
22210  
22211  
22212  
22213  
22214  const MAX_COLUMNS = 8;
22215  const LINK_OPTIONS = [{
22216    icon: custom_link,
22217    label: (0,external_wp_i18n_namespaceObject.__)('Link images to attachment pages'),
22218    value: LINK_DESTINATION_ATTACHMENT,
22219    noticeText: (0,external_wp_i18n_namespaceObject.__)('Attachment Pages')
22220  }, {
22221    icon: library_image,
22222    label: (0,external_wp_i18n_namespaceObject.__)('Link images to media files'),
22223    value: LINK_DESTINATION_MEDIA,
22224    noticeText: (0,external_wp_i18n_namespaceObject.__)('Media Files')
22225  }, {
22226    icon: library_fullscreen,
22227    label: (0,external_wp_i18n_namespaceObject.__)('Enlarge on click'),
22228    value: LINK_DESTINATION_LIGHTBOX,
22229    noticeText: (0,external_wp_i18n_namespaceObject.__)('Lightbox effect'),
22230    infoText: (0,external_wp_i18n_namespaceObject.__)('Scale images with a lightbox effect')
22231  }, {
22232    icon: link_off,
22233    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Media item link option'),
22234    value: LINK_DESTINATION_NONE,
22235    noticeText: (0,external_wp_i18n_namespaceObject.__)('None')
22236  }];
22237  const edit_ALLOWED_MEDIA_TYPES = ['image'];
22238  const PLACEHOLDER_TEXT = external_wp_element_namespaceObject.Platform.isNative ? (0,external_wp_i18n_namespaceObject.__)('Add media') : (0,external_wp_i18n_namespaceObject.__)('Drag and drop images, upload, or choose from your library.');
22239  const MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.isNative ? {
22240    type: 'stepper'
22241  } : {};
22242  const gallery_edit_DEFAULT_BLOCK = {
22243    name: 'core/image'
22244  };
22245  const EMPTY_ARRAY = [];
22246  function GalleryEdit(props) {
22247    const {
22248      setAttributes,
22249      attributes,
22250      className,
22251      clientId,
22252      isSelected,
22253      insertBlocksAfter,
22254      isContentLocked,
22255      onFocus
22256    } = props;
22257    const [lightboxSetting] = (0,external_wp_blockEditor_namespaceObject.useSettings)('blocks.core/image.lightbox');
22258    const linkOptions = !lightboxSetting?.allowEditing ? LINK_OPTIONS.filter(option => option.value !== LINK_DESTINATION_LIGHTBOX) : LINK_OPTIONS;
22259    const {
22260      columns,
22261      imageCrop,
22262      randomOrder,
22263      linkTarget,
22264      linkTo,
22265      sizeSlug
22266    } = attributes;
22267    const {
22268      __unstableMarkNextChangeAsNotPersistent,
22269      replaceInnerBlocks,
22270      updateBlockAttributes,
22271      selectBlock
22272    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
22273    const {
22274      createSuccessNotice,
22275      createErrorNotice
22276    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
22277    const {
22278      getBlock,
22279      getSettings,
22280      innerBlockImages,
22281      blockWasJustInserted,
22282      multiGallerySelection
22283    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
22284      var _getBlock$innerBlocks;
22285      const {
22286        getBlockName,
22287        getMultiSelectedBlockClientIds,
22288        getSettings: _getSettings,
22289        getBlock: _getBlock,
22290        wasBlockJustInserted
22291      } = select(external_wp_blockEditor_namespaceObject.store);
22292      const multiSelectedClientIds = getMultiSelectedBlockClientIds();
22293      return {
22294        getBlock: _getBlock,
22295        getSettings: _getSettings,
22296        innerBlockImages: (_getBlock$innerBlocks = _getBlock(clientId)?.innerBlocks) !== null && _getBlock$innerBlocks !== void 0 ? _getBlock$innerBlocks : EMPTY_ARRAY,
22297        blockWasJustInserted: wasBlockJustInserted(clientId, 'inserter_menu'),
22298        multiGallerySelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/gallery')
22299      };
22300    }, [clientId]);
22301    const images = (0,external_wp_element_namespaceObject.useMemo)(() => innerBlockImages?.map(block => ({
22302      clientId: block.clientId,
22303      id: block.attributes.id,
22304      url: block.attributes.url,
22305      attributes: block.attributes,
22306      fromSavedContent: Boolean(block.originalContent)
22307    })), [innerBlockImages]);
22308    const imageData = useGetMedia(innerBlockImages);
22309    const newImages = useGetNewImages(images, imageData);
22310    (0,external_wp_element_namespaceObject.useEffect)(() => {
22311      newImages?.forEach(newImage => {
22312        // Update the images data without creating new undo levels.
22313        __unstableMarkNextChangeAsNotPersistent();
22314        updateBlockAttributes(newImage.clientId, {
22315          ...buildImageAttributes(newImage.attributes),
22316          id: newImage.id,
22317          align: undefined
22318        });
22319      });
22320    }, [newImages]);
22321    const imageSizeOptions = useImageSizes(imageData, isSelected, getSettings);
22322  
22323    /**
22324     * Determines the image attributes that should be applied to an image block
22325     * after the gallery updates.
22326     *
22327     * The gallery will receive the full collection of images when a new image
22328     * is added. As a result we need to reapply the image's original settings if
22329     * it already existed in the gallery. If the image is in fact new, we need
22330     * to apply the gallery's current settings to the image.
22331     *
22332     * @param {Object} imageAttributes Media object for the actual image.
22333     * @return {Object}                Attributes to set on the new image block.
22334     */
22335    function buildImageAttributes(imageAttributes) {
22336      const image = imageAttributes.id ? imageData.find(({
22337        id
22338      }) => id === imageAttributes.id) : null;
22339      let newClassName;
22340      if (imageAttributes.className && imageAttributes.className !== '') {
22341        newClassName = imageAttributes.className;
22342      }
22343      let newLinkTarget;
22344      if (imageAttributes.linkTarget || imageAttributes.rel) {
22345        // When transformed from image blocks, the link destination and rel attributes are inherited.
22346        newLinkTarget = {
22347          linkTarget: imageAttributes.linkTarget,
22348          rel: imageAttributes.rel
22349        };
22350      } else {
22351        // When an image is added, update the link destination and rel attributes according to the gallery settings
22352        newLinkTarget = getUpdatedLinkTargetSettings(linkTarget, attributes);
22353      }
22354      return {
22355        ...pickRelevantMediaFiles(image, sizeSlug),
22356        ...utils_getHrefAndDestination(image, linkTo, imageAttributes?.linkDestination),
22357        ...newLinkTarget,
22358        className: newClassName,
22359        sizeSlug,
22360        caption: imageAttributes.caption || image.caption?.raw,
22361        alt: imageAttributes.alt || image.alt_text
22362      };
22363    }
22364    function isValidFileType(file) {
22365      // It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.
22366      const nativeFileData = external_wp_element_namespaceObject.Platform.isNative && file.id ? imageData.find(({
22367        id
22368      }) => id === file.id) : null;
22369      const mediaTypeSelector = nativeFileData ? nativeFileData?.media_type : file.type;
22370      return edit_ALLOWED_MEDIA_TYPES.some(mediaType => mediaTypeSelector?.indexOf(mediaType) === 0) || file.blob;
22371    }
22372    function updateImages(selectedImages) {
22373      const newFileUploads = Object.prototype.toString.call(selectedImages) === '[object FileList]';
22374      const imageArray = newFileUploads ? Array.from(selectedImages).map(file => {
22375        if (!file.url) {
22376          return {
22377            blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22378          };
22379        }
22380        return file;
22381      }) : selectedImages;
22382      if (!imageArray.every(isValidFileType)) {
22383        createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
22384          id: 'gallery-upload-invalid-file',
22385          type: 'snackbar'
22386        });
22387      }
22388      const processedImages = imageArray.filter(file => file.url || isValidFileType(file)).map(file => {
22389        if (!file.url) {
22390          return {
22391            blob: file.blob || (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22392          };
22393        }
22394        return file;
22395      });
22396  
22397      // Because we are reusing existing innerImage blocks any reordering
22398      // done in the media library will be lost so we need to reapply that ordering
22399      // once the new image blocks are merged in with existing.
22400      const newOrderMap = processedImages.reduce((result, image, index) => (result[image.id] = index, result), {});
22401      const existingImageBlocks = !newFileUploads ? innerBlockImages.filter(block => processedImages.find(img => img.id === block.attributes.id)) : innerBlockImages;
22402      const newImageList = processedImages.filter(img => !existingImageBlocks.find(existingImg => img.id === existingImg.attributes.id));
22403      const newBlocks = newImageList.map(image => {
22404        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22405          id: image.id,
22406          blob: image.blob,
22407          url: image.url,
22408          caption: image.caption,
22409          alt: image.alt
22410        });
22411      });
22412      replaceInnerBlocks(clientId, existingImageBlocks.concat(newBlocks).sort((a, b) => newOrderMap[a.attributes.id] - newOrderMap[b.attributes.id]));
22413  
22414      // Select the first block to scroll into view when new blocks are added.
22415      if (newBlocks?.length > 0) {
22416        selectBlock(newBlocks[0].clientId);
22417      }
22418    }
22419    function onUploadError(message) {
22420      createErrorNotice(message, {
22421        type: 'snackbar'
22422      });
22423    }
22424    function setLinkTo(value) {
22425      setAttributes({
22426        linkTo: value
22427      });
22428      const changedAttributes = {};
22429      const blocks = [];
22430      getBlock(clientId).innerBlocks.forEach(block => {
22431        blocks.push(block.clientId);
22432        const image = block.attributes.id ? imageData.find(({
22433          id
22434        }) => id === block.attributes.id) : null;
22435        changedAttributes[block.clientId] = utils_getHrefAndDestination(image, value, false, block.attributes, lightboxSetting);
22436      });
22437      updateBlockAttributes(blocks, changedAttributes, true);
22438      const linkToText = [...linkOptions].find(linkType => linkType.value === value);
22439      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: image size settings */
22440      (0,external_wp_i18n_namespaceObject.__)('All gallery image links updated to: %s'), linkToText.noticeText), {
22441        id: 'gallery-attributes-linkTo',
22442        type: 'snackbar'
22443      });
22444    }
22445    function setColumnsNumber(value) {
22446      setAttributes({
22447        columns: value
22448      });
22449    }
22450    function toggleImageCrop() {
22451      setAttributes({
22452        imageCrop: !imageCrop
22453      });
22454    }
22455    function toggleRandomOrder() {
22456      setAttributes({
22457        randomOrder: !randomOrder
22458      });
22459    }
22460    function toggleOpenInNewTab(openInNewTab) {
22461      const newLinkTarget = openInNewTab ? '_blank' : undefined;
22462      setAttributes({
22463        linkTarget: newLinkTarget
22464      });
22465      const changedAttributes = {};
22466      const blocks = [];
22467      getBlock(clientId).innerBlocks.forEach(block => {
22468        blocks.push(block.clientId);
22469        changedAttributes[block.clientId] = getUpdatedLinkTargetSettings(newLinkTarget, block.attributes);
22470      });
22471      updateBlockAttributes(blocks, changedAttributes, true);
22472      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');
22473      createSuccessNotice(noticeText, {
22474        id: 'gallery-attributes-openInNewTab',
22475        type: 'snackbar'
22476      });
22477    }
22478    function updateImagesSize(newSizeSlug) {
22479      setAttributes({
22480        sizeSlug: newSizeSlug
22481      });
22482      const changedAttributes = {};
22483      const blocks = [];
22484      getBlock(clientId).innerBlocks.forEach(block => {
22485        blocks.push(block.clientId);
22486        const image = block.attributes.id ? imageData.find(({
22487          id
22488        }) => id === block.attributes.id) : null;
22489        changedAttributes[block.clientId] = getImageSizeAttributes(image, newSizeSlug);
22490      });
22491      updateBlockAttributes(blocks, changedAttributes, true);
22492      const imageSize = imageSizeOptions.find(size => size.value === newSizeSlug);
22493      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: image size settings */
22494      (0,external_wp_i18n_namespaceObject.__)('All gallery image sizes updated to: %s'), imageSize.label), {
22495        id: 'gallery-attributes-sizeSlug',
22496        type: 'snackbar'
22497      });
22498    }
22499    (0,external_wp_element_namespaceObject.useEffect)(() => {
22500      // linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.
22501      if (!linkTo) {
22502        __unstableMarkNextChangeAsNotPersistent();
22503        setAttributes({
22504          linkTo: window?.wp?.media?.view?.settings?.defaultProps?.link || LINK_DESTINATION_NONE
22505        });
22506      }
22507    }, [linkTo]);
22508    const hasImages = !!images.length;
22509    const hasImageIds = hasImages && images.some(image => !!image.id);
22510    const imagesUploading = images.some(img => !external_wp_element_namespaceObject.Platform.isNative ? !img.id && img.url?.indexOf('blob:') === 0 : img.url?.indexOf('file:') === 0);
22511  
22512    // MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.
22513    const mediaPlaceholderProps = external_wp_element_namespaceObject.Platform.select({
22514      web: {
22515        addToGallery: false,
22516        disableMediaButtons: imagesUploading,
22517        value: {}
22518      },
22519      native: {
22520        addToGallery: hasImageIds,
22521        isAppender: hasImages,
22522        disableMediaButtons: hasImages && !isSelected || imagesUploading,
22523        value: hasImageIds ? images : {},
22524        autoOpenMediaUpload: !hasImages && isSelected && blockWasJustInserted,
22525        onFocus
22526      }
22527    });
22528    const mediaPlaceholder = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
22529      handleUpload: false,
22530      icon: sharedIcon,
22531      labels: {
22532        title: (0,external_wp_i18n_namespaceObject.__)('Gallery'),
22533        instructions: PLACEHOLDER_TEXT
22534      },
22535      onSelect: updateImages,
22536      accept: "image/*",
22537      allowedTypes: edit_ALLOWED_MEDIA_TYPES,
22538      multiple: true,
22539      onError: onUploadError,
22540      ...mediaPlaceholderProps
22541    });
22542    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
22543      className: dist_clsx(className, 'has-nested-images')
22544    });
22545    const nativeInnerBlockProps = external_wp_element_namespaceObject.Platform.isNative && {
22546      marginHorizontal: 0,
22547      marginVertical: 0
22548    };
22549    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
22550      defaultBlock: gallery_edit_DEFAULT_BLOCK,
22551      directInsert: true,
22552      orientation: 'horizontal',
22553      renderAppender: false,
22554      ...nativeInnerBlockProps
22555    });
22556    if (!hasImages) {
22557      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
22558        ...innerBlocksProps,
22559        children: [innerBlocksProps.children, mediaPlaceholder]
22560      });
22561    }
22562    const hasLinkTo = linkTo && linkTo !== 'none';
22563    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
22564      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
22565        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
22566          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
22567          children: [images.length > 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
22568            __nextHasNoMarginBottom: true,
22569            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
22570            value: columns ? columns : defaultColumnsNumber(images.length),
22571            onChange: setColumnsNumber,
22572            min: 1,
22573            max: Math.min(MAX_COLUMNS, images.length),
22574            ...MOBILE_CONTROL_PROPS_RANGE_CONTROL,
22575            required: true,
22576            __next40pxDefaultSize: true
22577          }), imageSizeOptions?.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
22578            __nextHasNoMarginBottom: true,
22579            label: (0,external_wp_i18n_namespaceObject.__)('Resolution'),
22580            help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source images.'),
22581            value: sizeSlug,
22582            options: imageSizeOptions,
22583            onChange: updateImagesSize,
22584            hideCancelButton: true,
22585            size: "__unstable-large"
22586          }), external_wp_element_namespaceObject.Platform.isNative ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
22587            __nextHasNoMarginBottom: true,
22588            label: (0,external_wp_i18n_namespaceObject.__)('Link'),
22589            value: linkTo,
22590            onChange: setLinkTo,
22591            options: linkOptions,
22592            hideCancelButton: true,
22593            size: "__unstable-large"
22594          }) : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
22595            __nextHasNoMarginBottom: true,
22596            label: (0,external_wp_i18n_namespaceObject.__)('Crop images to fit'),
22597            checked: !!imageCrop,
22598            onChange: toggleImageCrop
22599          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
22600            __nextHasNoMarginBottom: true,
22601            label: (0,external_wp_i18n_namespaceObject.__)('Randomize order'),
22602            checked: !!randomOrder,
22603            onChange: toggleRandomOrder
22604          }), hasLinkTo && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
22605            __nextHasNoMarginBottom: true,
22606            label: (0,external_wp_i18n_namespaceObject.__)('Open images in new tab'),
22607            checked: linkTarget === '_blank',
22608            onChange: toggleOpenInNewTab
22609          }), external_wp_element_namespaceObject.Platform.isWeb && !imageSizeOptions && hasImageIds && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.BaseControl, {
22610            className: "gallery-image-sizes",
22611            __nextHasNoMarginBottom: true,
22612            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
22613              children: (0,external_wp_i18n_namespaceObject.__)('Resolution')
22614            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
22615              className: "gallery-image-sizes__loading",
22616              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), (0,external_wp_i18n_namespaceObject.__)('Loading options…')]
22617            })]
22618          })]
22619        })
22620      }), external_wp_element_namespaceObject.Platform.isWeb ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
22621        group: "block",
22622        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
22623          icon: library_link,
22624          label: (0,external_wp_i18n_namespaceObject.__)('Link'),
22625          children: ({
22626            onClose
22627          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
22628            children: linkOptions.map(linkItem => {
22629              const isOptionSelected = linkTo === linkItem.value;
22630              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
22631                isSelected: isOptionSelected,
22632                className: dist_clsx('components-dropdown-menu__menu-item', {
22633                  'is-active': isOptionSelected
22634                }),
22635                iconPosition: "left",
22636                icon: linkItem.icon,
22637                onClick: () => {
22638                  setLinkTo(linkItem.value);
22639                  onClose();
22640                },
22641                role: "menuitemradio",
22642                info: linkItem.infoText,
22643                children: linkItem.label
22644              }, linkItem.value);
22645            })
22646          })
22647        })
22648      }) : null, external_wp_element_namespaceObject.Platform.isWeb && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
22649        children: [!multiGallerySelection && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
22650          group: "other",
22651          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
22652            allowedTypes: edit_ALLOWED_MEDIA_TYPES,
22653            accept: "image/*",
22654            handleUpload: false,
22655            onSelect: updateImages,
22656            name: (0,external_wp_i18n_namespaceObject.__)('Add'),
22657            multiple: true,
22658            mediaIds: images.filter(image => image.id).map(image => image.id),
22659            addToGallery: hasImageIds
22660          })
22661        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GapStyles, {
22662          blockGap: attributes.style?.spacing?.blockGap,
22663          clientId: clientId
22664        })]
22665      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Gallery, {
22666        ...props,
22667        isContentLocked: isContentLocked,
22668        images: images,
22669        mediaPlaceholder: !hasImages || external_wp_element_namespaceObject.Platform.isNative ? mediaPlaceholder : undefined,
22670        blockProps: innerBlocksProps,
22671        insertBlocksAfter: insertBlocksAfter,
22672        multiGallerySelection: multiGallerySelection
22673      })]
22674    });
22675  }
22676  
22677  ;// ./node_modules/@wordpress/block-library/build-module/gallery/save.js
22678  /**
22679   * External dependencies
22680   */
22681  
22682  
22683  /**
22684   * WordPress dependencies
22685   */
22686  
22687  
22688  function saveWithInnerBlocks({
22689    attributes
22690  }) {
22691    const {
22692      caption,
22693      columns,
22694      imageCrop
22695    } = attributes;
22696    const className = dist_clsx('has-nested-images', {
22697      [`columns-$columns}`]: columns !== undefined,
22698      [`columns-default`]: columns === undefined,
22699      'is-cropped': imageCrop
22700    });
22701    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
22702      className
22703    });
22704    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
22705    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
22706      ...innerBlocksProps,
22707      children: [innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
22708        tagName: "figcaption",
22709        className: dist_clsx('blocks-gallery-caption', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')),
22710        value: caption
22711      })]
22712    });
22713  }
22714  
22715  ;// ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js
22716  /**
22717   * WordPress dependencies
22718   */
22719  
22720  
22721  
22722  
22723  /**
22724   * Internal dependencies
22725   */
22726  
22727  const parseShortcodeIds = ids => {
22728    if (!ids) {
22729      return [];
22730    }
22731    return ids.split(',').map(id => parseInt(id, 10));
22732  };
22733  
22734  /**
22735   * Third party block plugins don't have an easy way to detect if the
22736   * innerBlocks version of the Gallery is running when they run a
22737   * 3rdPartyBlock -> GalleryBlock transform so this transform filter
22738   * will handle this. Once the innerBlocks version is the default
22739   * in a core release, this could be deprecated and removed after
22740   * plugin authors have been given time to update transforms.
22741   *
22742   * @typedef  {Object} Attributes
22743   * @typedef  {Object} Block
22744   * @property {Attributes} attributes The attributes of the block.
22745   * @param    {Block}      block      The transformed block.
22746   * @return   {Block}                 The transformed block.
22747   */
22748  function updateThirdPartyTransformToGallery(block) {
22749    if (block.name === 'core/gallery' && block.attributes?.images.length > 0) {
22750      const innerBlocks = block.attributes.images.map(({
22751        url,
22752        id,
22753        alt
22754      }) => {
22755        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22756          url,
22757          id: id ? parseInt(id, 10) : null,
22758          alt,
22759          sizeSlug: block.attributes.sizeSlug,
22760          linkDestination: block.attributes.linkDestination
22761        });
22762      });
22763      delete block.attributes.ids;
22764      delete block.attributes.images;
22765      block.innerBlocks = innerBlocks;
22766    }
22767    return block;
22768  }
22769  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-to', updateThirdPartyTransformToGallery);
22770  
22771  /**
22772   * Third party block plugins don't have an easy way to detect if the
22773   * innerBlocks version of the Gallery is running when they run a
22774   * GalleryBlock -> 3rdPartyBlock transform so this transform filter
22775   * will handle this. Once the innerBlocks version is the default
22776   * in a core release, this could be deprecated and removed after
22777   * plugin authors have been given time to update transforms.
22778   *
22779   * @typedef  {Object} Attributes
22780   * @typedef  {Object} Block
22781   * @property {Attributes} attributes The attributes of the block.
22782   * @param    {Block}      toBlock    The block to transform to.
22783   * @param    {Block[]}    fromBlocks The blocks to transform from.
22784   * @return   {Block}                 The transformed block.
22785   */
22786  function updateThirdPartyTransformFromGallery(toBlock, fromBlocks) {
22787    const from = Array.isArray(fromBlocks) ? fromBlocks : [fromBlocks];
22788    const galleryBlock = from.find(transformedBlock => transformedBlock.name === 'core/gallery' && transformedBlock.innerBlocks.length > 0 && !transformedBlock.attributes.images?.length > 0 && !toBlock.name.includes('core/'));
22789    if (galleryBlock) {
22790      const images = galleryBlock.innerBlocks.map(({
22791        attributes: {
22792          url,
22793          id,
22794          alt
22795        }
22796      }) => ({
22797        url,
22798        id: id ? parseInt(id, 10) : null,
22799        alt
22800      }));
22801      const ids = images.map(({
22802        id
22803      }) => id);
22804      galleryBlock.attributes.images = images;
22805      galleryBlock.attributes.ids = ids;
22806    }
22807    return toBlock;
22808  }
22809  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-from', updateThirdPartyTransformFromGallery);
22810  const gallery_transforms_transforms = {
22811    from: [{
22812      type: 'block',
22813      isMultiBlock: true,
22814      blocks: ['core/image'],
22815      transform: attributes => {
22816        // Init the align and size from the first item which may be either the placeholder or an image.
22817        let {
22818          align,
22819          sizeSlug
22820        } = attributes[0];
22821        // Loop through all the images and check if they have the same align and size.
22822        align = attributes.every(attribute => attribute.align === align) ? align : undefined;
22823        sizeSlug = attributes.every(attribute => attribute.sizeSlug === sizeSlug) ? sizeSlug : undefined;
22824        const validImages = attributes.filter(({
22825          url
22826        }) => url);
22827        const innerBlocks = validImages.map(image => {
22828          // Gallery images can't currently be resized so make sure height and width are undefined.
22829          image.width = undefined;
22830          image.height = undefined;
22831          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', image);
22832        });
22833        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
22834          align,
22835          sizeSlug
22836        }, innerBlocks);
22837      }
22838    }, {
22839      type: 'shortcode',
22840      tag: 'gallery',
22841      transform({
22842        named: {
22843          ids,
22844          columns = 3,
22845          link,
22846          orderby
22847        }
22848      }) {
22849        const imageIds = parseShortcodeIds(ids).map(id => parseInt(id, 10));
22850        let linkTo = LINK_DESTINATION_NONE;
22851        if (link === 'post') {
22852          linkTo = LINK_DESTINATION_ATTACHMENT;
22853        } else if (link === 'file') {
22854          linkTo = LINK_DESTINATION_MEDIA;
22855        }
22856        const galleryBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
22857          columns: parseInt(columns, 10),
22858          linkTo,
22859          randomOrder: orderby === 'rand'
22860        }, imageIds.map(imageId => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22861          id: imageId
22862        })));
22863        return galleryBlock;
22864      },
22865      isMatch({
22866        named
22867      }) {
22868        return undefined !== named.ids;
22869      }
22870    }, {
22871      // When created by drag and dropping multiple files on an insertion point. Because multiple
22872      // files must not be transformed to a gallery when dropped within a gallery there is another transform
22873      // within the image block to handle that case. Therefore this transform has to have priority 1
22874      // set so that it overrides the image block transformation when multiple images are dropped outside
22875      // of a gallery block.
22876      type: 'files',
22877      priority: 1,
22878      isMatch(files) {
22879        return files.length !== 1 && files.every(file => file.type.indexOf('image/') === 0);
22880      },
22881      transform(files) {
22882        const innerBlocks = files.map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22883          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22884        }));
22885        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, innerBlocks);
22886      }
22887    }],
22888    to: [{
22889      type: 'block',
22890      blocks: ['core/image'],
22891      transform: ({
22892        align
22893      }, innerBlocks) => {
22894        if (innerBlocks.length > 0) {
22895          return innerBlocks.map(({
22896            attributes: {
22897              url,
22898              alt,
22899              caption,
22900              title,
22901              href,
22902              rel,
22903              linkClass,
22904              id,
22905              sizeSlug: imageSizeSlug,
22906              linkDestination,
22907              linkTarget,
22908              anchor,
22909              className
22910            }
22911          }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22912            align,
22913            url,
22914            alt,
22915            caption,
22916            title,
22917            href,
22918            rel,
22919            linkClass,
22920            id,
22921            sizeSlug: imageSizeSlug,
22922            linkDestination,
22923            linkTarget,
22924            anchor,
22925            className
22926          }));
22927        }
22928        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22929          align
22930        });
22931      }
22932    }]
22933  };
22934  /* harmony default export */ const gallery_transforms = (gallery_transforms_transforms);
22935  
22936  ;// ./node_modules/@wordpress/block-library/build-module/gallery/index.js
22937  /**
22938   * WordPress dependencies
22939   */
22940  
22941  
22942  /**
22943   * Internal dependencies
22944   */
22945  
22946  
22947  
22948  const gallery_metadata = {
22949    $schema: "https://schemas.wp.org/trunk/block.json",
22950    apiVersion: 3,
22951    name: "core/gallery",
22952    title: "Gallery",
22953    category: "media",
22954    allowedBlocks: ["core/image"],
22955    description: "Display multiple images in a rich gallery.",
22956    keywords: ["images", "photos"],
22957    textdomain: "default",
22958    attributes: {
22959      images: {
22960        type: "array",
22961        "default": [],
22962        source: "query",
22963        selector: ".blocks-gallery-item",
22964        query: {
22965          url: {
22966            type: "string",
22967            source: "attribute",
22968            selector: "img",
22969            attribute: "src"
22970          },
22971          fullUrl: {
22972            type: "string",
22973            source: "attribute",
22974            selector: "img",
22975            attribute: "data-full-url"
22976          },
22977          link: {
22978            type: "string",
22979            source: "attribute",
22980            selector: "img",
22981            attribute: "data-link"
22982          },
22983          alt: {
22984            type: "string",
22985            source: "attribute",
22986            selector: "img",
22987            attribute: "alt",
22988            "default": ""
22989          },
22990          id: {
22991            type: "string",
22992            source: "attribute",
22993            selector: "img",
22994            attribute: "data-id"
22995          },
22996          caption: {
22997            type: "rich-text",
22998            source: "rich-text",
22999            selector: ".blocks-gallery-item__caption"
23000          }
23001        }
23002      },
23003      ids: {
23004        type: "array",
23005        items: {
23006          type: "number"
23007        },
23008        "default": []
23009      },
23010      shortCodeTransforms: {
23011        type: "array",
23012        items: {
23013          type: "object"
23014        },
23015        "default": []
23016      },
23017      columns: {
23018        type: "number",
23019        minimum: 1,
23020        maximum: 8
23021      },
23022      caption: {
23023        type: "rich-text",
23024        source: "rich-text",
23025        selector: ".blocks-gallery-caption"
23026      },
23027      imageCrop: {
23028        type: "boolean",
23029        "default": true
23030      },
23031      randomOrder: {
23032        type: "boolean",
23033        "default": false
23034      },
23035      fixedHeight: {
23036        type: "boolean",
23037        "default": true
23038      },
23039      linkTarget: {
23040        type: "string"
23041      },
23042      linkTo: {
23043        type: "string"
23044      },
23045      sizeSlug: {
23046        type: "string",
23047        "default": "large"
23048      },
23049      allowResize: {
23050        type: "boolean",
23051        "default": false
23052      }
23053    },
23054    providesContext: {
23055      allowResize: "allowResize",
23056      imageCrop: "imageCrop",
23057      fixedHeight: "fixedHeight"
23058    },
23059    supports: {
23060      anchor: true,
23061      align: true,
23062      __experimentalBorder: {
23063        radius: true,
23064        color: true,
23065        width: true,
23066        style: true,
23067        __experimentalDefaultControls: {
23068          color: true,
23069          radius: true
23070        }
23071      },
23072      html: false,
23073      units: ["px", "em", "rem", "vh", "vw"],
23074      spacing: {
23075        margin: true,
23076        padding: true,
23077        blockGap: ["horizontal", "vertical"],
23078        __experimentalSkipSerialization: ["blockGap"],
23079        __experimentalDefaultControls: {
23080          blockGap: true,
23081          margin: false,
23082          padding: false
23083        }
23084      },
23085      color: {
23086        text: false,
23087        background: true,
23088        gradients: true
23089      },
23090      layout: {
23091        allowSwitching: false,
23092        allowInheriting: false,
23093        allowEditing: false,
23094        "default": {
23095          type: "flex"
23096        }
23097      },
23098      interactivity: {
23099        clientNavigation: true
23100      }
23101    },
23102    editorStyle: "wp-block-gallery-editor",
23103    style: "wp-block-gallery"
23104  };
23105  
23106  
23107  const {
23108    name: gallery_name
23109  } = gallery_metadata;
23110  
23111  const gallery_settings = {
23112    icon: library_gallery,
23113    example: {
23114      attributes: {
23115        columns: 2
23116      },
23117      innerBlocks: [{
23118        name: 'core/image',
23119        attributes: {
23120          url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg'
23121        }
23122      }, {
23123        name: 'core/image',
23124        attributes: {
23125          url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg'
23126        }
23127      }]
23128    },
23129    transforms: gallery_transforms,
23130    edit: GalleryEdit,
23131    save: saveWithInnerBlocks,
23132    deprecated: gallery_deprecated
23133  };
23134  const gallery_init = () => initBlock({
23135    name: gallery_name,
23136    metadata: gallery_metadata,
23137    settings: gallery_settings
23138  });
23139  
23140  ;// ./node_modules/@wordpress/block-library/build-module/group/deprecated.js
23141  /**
23142   * External dependencies
23143   */
23144  
23145  
23146  /**
23147   * WordPress dependencies
23148   */
23149  
23150  
23151  const migrateAttributes = attributes => {
23152    if (!attributes.tagName) {
23153      attributes = {
23154        ...attributes,
23155        tagName: 'div'
23156      };
23157    }
23158    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
23159      return attributes;
23160    }
23161    const style = {
23162      color: {}
23163    };
23164    if (attributes.customTextColor) {
23165      style.color.text = attributes.customTextColor;
23166    }
23167    if (attributes.customBackgroundColor) {
23168      style.color.background = attributes.customBackgroundColor;
23169    }
23170    const {
23171      customTextColor,
23172      customBackgroundColor,
23173      ...restAttributes
23174    } = attributes;
23175    return {
23176      ...restAttributes,
23177      style
23178    };
23179  };
23180  const group_deprecated_deprecated = [
23181  // Version with default layout.
23182  {
23183    attributes: {
23184      tagName: {
23185        type: 'string',
23186        default: 'div'
23187      },
23188      templateLock: {
23189        type: ['string', 'boolean'],
23190        enum: ['all', 'insert', false]
23191      }
23192    },
23193    supports: {
23194      __experimentalOnEnter: true,
23195      __experimentalSettings: true,
23196      align: ['wide', 'full'],
23197      anchor: true,
23198      ariaLabel: true,
23199      html: false,
23200      color: {
23201        gradients: true,
23202        link: true,
23203        __experimentalDefaultControls: {
23204          background: true,
23205          text: true
23206        }
23207      },
23208      spacing: {
23209        margin: ['top', 'bottom'],
23210        padding: true,
23211        blockGap: true,
23212        __experimentalDefaultControls: {
23213          padding: true,
23214          blockGap: true
23215        }
23216      },
23217      __experimentalBorder: {
23218        color: true,
23219        radius: true,
23220        style: true,
23221        width: true,
23222        __experimentalDefaultControls: {
23223          color: true,
23224          radius: true,
23225          style: true,
23226          width: true
23227        }
23228      },
23229      typography: {
23230        fontSize: true,
23231        lineHeight: true,
23232        __experimentalFontStyle: true,
23233        __experimentalFontWeight: true,
23234        __experimentalLetterSpacing: true,
23235        __experimentalTextTransform: true,
23236        __experimentalDefaultControls: {
23237          fontSize: true
23238        }
23239      },
23240      layout: true
23241    },
23242    save({
23243      attributes: {
23244        tagName: Tag
23245      }
23246    }) {
23247      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23248        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())
23249      });
23250    },
23251    isEligible: ({
23252      layout
23253    }) => layout?.inherit || layout?.contentSize && layout?.type !== 'constrained',
23254    migrate: attributes => {
23255      const {
23256        layout = null
23257      } = attributes;
23258      if (layout?.inherit || layout?.contentSize) {
23259        return {
23260          ...attributes,
23261          layout: {
23262            ...layout,
23263            type: 'constrained'
23264          }
23265        };
23266      }
23267    }
23268  },
23269  // Version of the block with the double div.
23270  {
23271    attributes: {
23272      tagName: {
23273        type: 'string',
23274        default: 'div'
23275      },
23276      templateLock: {
23277        type: ['string', 'boolean'],
23278        enum: ['all', 'insert', false]
23279      }
23280    },
23281    supports: {
23282      align: ['wide', 'full'],
23283      anchor: true,
23284      color: {
23285        gradients: true,
23286        link: true
23287      },
23288      spacing: {
23289        padding: true
23290      },
23291      __experimentalBorder: {
23292        radius: true
23293      }
23294    },
23295    save({
23296      attributes
23297    }) {
23298      const {
23299        tagName: Tag
23300      } = attributes;
23301      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23302        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
23303        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23304          className: "wp-block-group__inner-container",
23305          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23306        })
23307      });
23308    }
23309  },
23310  // Version of the block without global styles support
23311  {
23312    attributes: {
23313      backgroundColor: {
23314        type: 'string'
23315      },
23316      customBackgroundColor: {
23317        type: 'string'
23318      },
23319      textColor: {
23320        type: 'string'
23321      },
23322      customTextColor: {
23323        type: 'string'
23324      }
23325    },
23326    supports: {
23327      align: ['wide', 'full'],
23328      anchor: true,
23329      html: false
23330    },
23331    migrate: migrateAttributes,
23332    save({
23333      attributes
23334    }) {
23335      const {
23336        backgroundColor,
23337        customBackgroundColor,
23338        textColor,
23339        customTextColor
23340      } = attributes;
23341      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23342      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23343      const className = dist_clsx(backgroundClass, textClass, {
23344        'has-text-color': textColor || customTextColor,
23345        'has-background': backgroundColor || customBackgroundColor
23346      });
23347      const styles = {
23348        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23349        color: textClass ? undefined : customTextColor
23350      };
23351      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23352        className: className,
23353        style: styles,
23354        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23355          className: "wp-block-group__inner-container",
23356          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23357        })
23358      });
23359    }
23360  },
23361  // Version of the group block with a bug that made text color class not applied.
23362  {
23363    attributes: {
23364      backgroundColor: {
23365        type: 'string'
23366      },
23367      customBackgroundColor: {
23368        type: 'string'
23369      },
23370      textColor: {
23371        type: 'string'
23372      },
23373      customTextColor: {
23374        type: 'string'
23375      }
23376    },
23377    migrate: migrateAttributes,
23378    supports: {
23379      align: ['wide', 'full'],
23380      anchor: true,
23381      html: false
23382    },
23383    save({
23384      attributes
23385    }) {
23386      const {
23387        backgroundColor,
23388        customBackgroundColor,
23389        textColor,
23390        customTextColor
23391      } = attributes;
23392      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23393      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23394      const className = dist_clsx(backgroundClass, {
23395        'has-text-color': textColor || customTextColor,
23396        'has-background': backgroundColor || customBackgroundColor
23397      });
23398      const styles = {
23399        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23400        color: textClass ? undefined : customTextColor
23401      };
23402      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23403        className: className,
23404        style: styles,
23405        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23406          className: "wp-block-group__inner-container",
23407          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23408        })
23409      });
23410    }
23411  },
23412  // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.
23413  {
23414    attributes: {
23415      backgroundColor: {
23416        type: 'string'
23417      },
23418      customBackgroundColor: {
23419        type: 'string'
23420      }
23421    },
23422    supports: {
23423      align: ['wide', 'full'],
23424      anchor: true,
23425      html: false
23426    },
23427    migrate: migrateAttributes,
23428    save({
23429      attributes
23430    }) {
23431      const {
23432        backgroundColor,
23433        customBackgroundColor
23434      } = attributes;
23435      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23436      const className = dist_clsx(backgroundClass, {
23437        'has-background': backgroundColor || customBackgroundColor
23438      });
23439      const styles = {
23440        backgroundColor: backgroundClass ? undefined : customBackgroundColor
23441      };
23442      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23443        className: className,
23444        style: styles,
23445        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23446      });
23447    }
23448  }];
23449  /* harmony default export */ const group_deprecated = (group_deprecated_deprecated);
23450  
23451  ;// ./node_modules/@wordpress/block-library/build-module/group/placeholder.js
23452  /**
23453   * WordPress dependencies
23454   */
23455  
23456  
23457  
23458  
23459  
23460  
23461  
23462  /**
23463   * Returns a custom variation icon.
23464   *
23465   * @param {string} name The block variation name.
23466   *
23467   * @return {JSX.Element} The SVG element.
23468   */
23469  
23470  const getGroupPlaceholderIcons = (name = 'group') => {
23471    const icons = {
23472      group: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23473        xmlns: "http://www.w3.org/2000/svg",
23474        width: "48",
23475        height: "48",
23476        viewBox: "0 0 48 48",
23477        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23478          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"
23479        })
23480      }),
23481      'group-row': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23482        xmlns: "http://www.w3.org/2000/svg",
23483        width: "48",
23484        height: "48",
23485        viewBox: "0 0 48 48",
23486        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23487          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"
23488        })
23489      }),
23490      'group-stack': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23491        xmlns: "http://www.w3.org/2000/svg",
23492        width: "48",
23493        height: "48",
23494        viewBox: "0 0 48 48",
23495        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23496          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"
23497        })
23498      }),
23499      'group-grid': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23500        xmlns: "http://www.w3.org/2000/svg",
23501        width: "48",
23502        height: "48",
23503        viewBox: "0 0 48 48",
23504        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23505          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"
23506        })
23507      })
23508    };
23509    return icons?.[name];
23510  };
23511  
23512  /**
23513   * A custom hook to tell the Group block whether to show the variation placeholder.
23514   *
23515   * @param {Object}  props                  Arguments to pass to hook.
23516   * @param {Object}  [props.attributes]     The block's attributes.
23517   * @param {string}  [props.usedLayoutType] The block's current layout type.
23518   * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.
23519   *
23520   * @return {[boolean, Function]} A state value and setter function.
23521   */
23522  function useShouldShowPlaceHolder({
23523    attributes = {
23524      style: undefined,
23525      backgroundColor: undefined,
23526      textColor: undefined,
23527      fontSize: undefined
23528    },
23529    usedLayoutType = '',
23530    hasInnerBlocks = false
23531  }) {
23532    const {
23533      style,
23534      backgroundColor,
23535      textColor,
23536      fontSize
23537    } = attributes;
23538    /*
23539     * Shows the placeholder when no known styles are set,
23540     * or when a non-default layout has been selected.
23541     * Should the Group block support more style presets in the
23542     * future, e.g., attributes.spacingSize, we can add them to the
23543     * condition.
23544     */
23545    const [showPlaceholder, setShowPlaceholder] = (0,external_wp_element_namespaceObject.useState)(!hasInnerBlocks && !backgroundColor && !fontSize && !textColor && !style && usedLayoutType !== 'flex' && usedLayoutType !== 'grid');
23546    (0,external_wp_element_namespaceObject.useEffect)(() => {
23547      if (!!hasInnerBlocks || !!backgroundColor || !!fontSize || !!textColor || !!style || usedLayoutType === 'flex') {
23548        setShowPlaceholder(false);
23549      }
23550    }, [backgroundColor, fontSize, textColor, style, usedLayoutType, hasInnerBlocks]);
23551    return [showPlaceholder, setShowPlaceholder];
23552  }
23553  
23554  /**
23555   * Display group variations if none is selected.
23556   *
23557   * @param {Object}   props          Component props.
23558   * @param {string}   props.name     The block's name.
23559   * @param {Function} props.onSelect Function to set block's attributes.
23560   *
23561   * @return {JSX.Element}                The placeholder.
23562   */
23563  function GroupPlaceHolder({
23564    name,
23565    onSelect
23566  }) {
23567    const variations = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getBlockVariations(name, 'block'), [name]);
23568    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
23569      className: 'wp-block-group__placeholder'
23570    });
23571    (0,external_wp_element_namespaceObject.useEffect)(() => {
23572      if (variations && variations.length === 1) {
23573        onSelect(variations[0]);
23574      }
23575    }, [onSelect, variations]);
23576    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23577      ...blockProps,
23578      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
23579        instructions: (0,external_wp_i18n_namespaceObject.__)('Group blocks together. Select a layout:'),
23580        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
23581          role: "list",
23582          className: "wp-block-group-placeholder__variations",
23583          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block variations'),
23584          children: variations.map(variation => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
23585            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
23586              __next40pxDefaultSize: true,
23587              variant: "tertiary",
23588              icon: getGroupPlaceholderIcons(variation.name),
23589              iconSize: 48,
23590              onClick: () => onSelect(variation),
23591              className: "wp-block-group-placeholder__variation-button",
23592              label: `$variation.title}: $variation.description}`
23593            })
23594          }, variation.name))
23595        })
23596      })
23597    });
23598  }
23599  /* harmony default export */ const placeholder = (GroupPlaceHolder);
23600  
23601  ;// ./node_modules/@wordpress/block-library/build-module/group/edit.js
23602  /**
23603   * WordPress dependencies
23604   */
23605  
23606  
23607  
23608  
23609  
23610  
23611  
23612  /**
23613   * Internal dependencies
23614   */
23615  
23616  
23617  
23618  /**
23619   * Render inspector controls for the Group block.
23620   *
23621   * @param {Object}   props                 Component props.
23622   * @param {string}   props.tagName         The HTML tag name.
23623   * @param {Function} props.onSelectTagName onChange function for the SelectControl.
23624   *
23625   * @return {JSX.Element}                The control group.
23626   */
23627  
23628  function GroupEditControls({
23629    tagName,
23630    onSelectTagName
23631  }) {
23632    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
23633      group: "advanced",
23634      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
23635        __nextHasNoMarginBottom: true,
23636        __next40pxDefaultSize: true,
23637        label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
23638        options: [{
23639          label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
23640          value: 'div'
23641        }, {
23642          label: '<header>',
23643          value: 'header'
23644        }, {
23645          label: '<main>',
23646          value: 'main'
23647        }, {
23648          label: '<section>',
23649          value: 'section'
23650        }, {
23651          label: '<article>',
23652          value: 'article'
23653        }, {
23654          label: '<aside>',
23655          value: 'aside'
23656        }, {
23657          label: '<footer>',
23658          value: 'footer'
23659        }],
23660        value: tagName,
23661        onChange: onSelectTagName,
23662        help: htmlElementMessages[tagName]
23663      })
23664    });
23665  }
23666  function GroupEdit({
23667    attributes,
23668    name,
23669    setAttributes,
23670    clientId
23671  }) {
23672    const {
23673      hasInnerBlocks,
23674      themeSupportsLayout
23675    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
23676      const {
23677        getBlock,
23678        getSettings
23679      } = select(external_wp_blockEditor_namespaceObject.store);
23680      const block = getBlock(clientId);
23681      return {
23682        hasInnerBlocks: !!(block && block.innerBlocks.length),
23683        themeSupportsLayout: getSettings()?.supportsLayout
23684      };
23685    }, [clientId]);
23686    const {
23687      tagName: TagName = 'div',
23688      templateLock,
23689      allowedBlocks,
23690      layout = {}
23691    } = attributes;
23692  
23693    // Layout settings.
23694    const {
23695      type = 'default'
23696    } = layout;
23697    const layoutSupportEnabled = themeSupportsLayout || type === 'flex' || type === 'grid';
23698  
23699    // Hooks.
23700    const ref = (0,external_wp_element_namespaceObject.useRef)();
23701    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
23702      ref
23703    });
23704    const [showPlaceholder, setShowPlaceholder] = useShouldShowPlaceHolder({
23705      attributes,
23706      usedLayoutType: type,
23707      hasInnerBlocks
23708    });
23709  
23710    // Default to the regular appender being rendered.
23711    let renderAppender;
23712    if (showPlaceholder) {
23713      // In the placeholder state, ensure the appender is not rendered.
23714      // This is needed because `...innerBlocksProps` is used in the placeholder
23715      // state so that blocks can dragged onto the placeholder area
23716      // from both the list view and in the editor canvas.
23717      renderAppender = false;
23718    } else if (!hasInnerBlocks) {
23719      // When there is no placeholder, but the block is also empty,
23720      // use the larger button appender.
23721      renderAppender = external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender;
23722    }
23723    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(layoutSupportEnabled ? blockProps : {
23724      className: 'wp-block-group__inner-container'
23725    }, {
23726      dropZoneElement: ref.current,
23727      templateLock,
23728      allowedBlocks,
23729      renderAppender
23730    });
23731    const {
23732      selectBlock
23733    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
23734    const selectVariation = nextVariation => {
23735      setAttributes(nextVariation.attributes);
23736      selectBlock(clientId, -1);
23737      setShowPlaceholder(false);
23738    };
23739    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
23740      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GroupEditControls, {
23741        tagName: TagName,
23742        onSelectTagName: value => setAttributes({
23743          tagName: value
23744        })
23745      }), showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
23746        children: [innerBlocksProps.children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder, {
23747          name: name,
23748          onSelect: selectVariation
23749        })]
23750      }), layoutSupportEnabled && !showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23751        ...innerBlocksProps
23752      }), !layoutSupportEnabled && !showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23753        ...blockProps,
23754        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23755          ...innerBlocksProps
23756        })
23757      })]
23758    });
23759  }
23760  /* harmony default export */ const group_edit = (GroupEdit);
23761  
23762  ;// ./node_modules/@wordpress/block-library/build-module/group/save.js
23763  /**
23764   * WordPress dependencies
23765   */
23766  
23767  
23768  function group_save_save({
23769    attributes: {
23770      tagName: Tag
23771    }
23772  }) {
23773    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23774      ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())
23775    });
23776  }
23777  
23778  ;// ./node_modules/@wordpress/block-library/build-module/group/transforms.js
23779  /**
23780   * WordPress dependencies
23781   */
23782  
23783  const group_transforms_transforms = {
23784    from: [{
23785      type: 'block',
23786      isMultiBlock: true,
23787      blocks: ['*'],
23788      __experimentalConvert(blocks) {
23789        const alignments = ['wide', 'full'];
23790  
23791        // Determine the widest setting of all the blocks to be grouped
23792        const widestAlignment = blocks.reduce((accumulator, block) => {
23793          const {
23794            align
23795          } = block.attributes;
23796          return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator;
23797        }, undefined);
23798  
23799        // Clone the Blocks to be Grouped
23800        // Failing to create new block references causes the original blocks
23801        // to be replaced in the switchToBlockType call thereby meaning they
23802        // are removed both from their original location and within the
23803        // new group block.
23804        const groupInnerBlocks = blocks.map(block => {
23805          return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks);
23806        });
23807        return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
23808          align: widestAlignment,
23809          layout: {
23810            type: 'constrained'
23811          }
23812        }, groupInnerBlocks);
23813      }
23814    }]
23815  };
23816  /* harmony default export */ const group_transforms = (group_transforms_transforms);
23817  
23818  ;// ./node_modules/@wordpress/icons/build-module/library/row.js
23819  /**
23820   * WordPress dependencies
23821   */
23822  
23823  
23824  const row = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23825    xmlns: "http://www.w3.org/2000/svg",
23826    viewBox: "0 0 24 24",
23827    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23828      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"
23829    })
23830  });
23831  /* harmony default export */ const library_row = (row);
23832  
23833  ;// ./node_modules/@wordpress/icons/build-module/library/stack.js
23834  /**
23835   * WordPress dependencies
23836   */
23837  
23838  
23839  const stack = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23840    xmlns: "http://www.w3.org/2000/svg",
23841    viewBox: "0 0 24 24",
23842    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23843      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"
23844    })
23845  });
23846  /* harmony default export */ const library_stack = (stack);
23847  
23848  ;// ./node_modules/@wordpress/icons/build-module/library/grid.js
23849  /**
23850   * WordPress dependencies
23851   */
23852  
23853  
23854  const grid = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23855    xmlns: "http://www.w3.org/2000/svg",
23856    viewBox: "0 0 24 24",
23857    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23858      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",
23859      fillRule: "evenodd",
23860      clipRule: "evenodd"
23861    })
23862  });
23863  /* harmony default export */ const library_grid = (grid);
23864  
23865  ;// ./node_modules/@wordpress/block-library/build-module/group/variations.js
23866  /**
23867   * WordPress dependencies
23868   */
23869  
23870  
23871  const example = {
23872    innerBlocks: [{
23873      name: 'core/paragraph',
23874      attributes: {
23875        customTextColor: '#cf2e2e',
23876        fontSize: 'large',
23877        content: (0,external_wp_i18n_namespaceObject.__)('One.')
23878      }
23879    }, {
23880      name: 'core/paragraph',
23881      attributes: {
23882        customTextColor: '#ff6900',
23883        fontSize: 'large',
23884        content: (0,external_wp_i18n_namespaceObject.__)('Two.')
23885      }
23886    }, {
23887      name: 'core/paragraph',
23888      attributes: {
23889        customTextColor: '#fcb900',
23890        fontSize: 'large',
23891        content: (0,external_wp_i18n_namespaceObject.__)('Three.')
23892      }
23893    }, {
23894      name: 'core/paragraph',
23895      attributes: {
23896        customTextColor: '#00d084',
23897        fontSize: 'large',
23898        content: (0,external_wp_i18n_namespaceObject.__)('Four.')
23899      }
23900    }, {
23901      name: 'core/paragraph',
23902      attributes: {
23903        customTextColor: '#0693e3',
23904        fontSize: 'large',
23905        content: (0,external_wp_i18n_namespaceObject.__)('Five.')
23906      }
23907    }, {
23908      name: 'core/paragraph',
23909      attributes: {
23910        customTextColor: '#9b51e0',
23911        fontSize: 'large',
23912        content: (0,external_wp_i18n_namespaceObject.__)('Six.')
23913      }
23914    }]
23915  };
23916  const group_variations_variations = [{
23917    name: 'group',
23918    title: (0,external_wp_i18n_namespaceObject.__)('Group'),
23919    description: (0,external_wp_i18n_namespaceObject.__)('Gather blocks in a container.'),
23920    attributes: {
23921      layout: {
23922        type: 'constrained'
23923      }
23924    },
23925    isDefault: true,
23926    scope: ['block', 'inserter', 'transform'],
23927    isActive: blockAttributes => !blockAttributes.layout || !blockAttributes.layout?.type || blockAttributes.layout?.type === 'default' || blockAttributes.layout?.type === 'constrained',
23928    icon: library_group
23929  }, {
23930    name: 'group-row',
23931    title: (0,external_wp_i18n_namespaceObject._x)('Row', 'single horizontal line'),
23932    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks horizontally.'),
23933    attributes: {
23934      layout: {
23935        type: 'flex',
23936        flexWrap: 'nowrap'
23937      }
23938    },
23939    scope: ['block', 'inserter', 'transform'],
23940    isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && (!blockAttributes.layout?.orientation || blockAttributes.layout?.orientation === 'horizontal'),
23941    icon: library_row,
23942    example
23943  }, {
23944    name: 'group-stack',
23945    title: (0,external_wp_i18n_namespaceObject.__)('Stack'),
23946    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks vertically.'),
23947    attributes: {
23948      layout: {
23949        type: 'flex',
23950        orientation: 'vertical'
23951      }
23952    },
23953    scope: ['block', 'inserter', 'transform'],
23954    isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && blockAttributes.layout?.orientation === 'vertical',
23955    icon: library_stack,
23956    example
23957  }, {
23958    name: 'group-grid',
23959    title: (0,external_wp_i18n_namespaceObject.__)('Grid'),
23960    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks in a grid.'),
23961    attributes: {
23962      layout: {
23963        type: 'grid'
23964      }
23965    },
23966    scope: ['block', 'inserter', 'transform'],
23967    isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
23968    icon: library_grid,
23969    example
23970  }];
23971  /* harmony default export */ const group_variations = (group_variations_variations);
23972  
23973  ;// ./node_modules/@wordpress/block-library/build-module/group/index.js
23974  /**
23975   * WordPress dependencies
23976   */
23977  
23978  
23979  
23980  /**
23981   * Internal dependencies
23982   */
23983  
23984  
23985  
23986  const group_metadata = {
23987    $schema: "https://schemas.wp.org/trunk/block.json",
23988    apiVersion: 3,
23989    name: "core/group",
23990    title: "Group",
23991    category: "design",
23992    description: "Gather blocks in a layout container.",
23993    keywords: ["container", "wrapper", "row", "section"],
23994    textdomain: "default",
23995    attributes: {
23996      tagName: {
23997        type: "string",
23998        "default": "div"
23999      },
24000      templateLock: {
24001        type: ["string", "boolean"],
24002        "enum": ["all", "insert", "contentOnly", false]
24003      },
24004      allowedBlocks: {
24005        type: "array"
24006      }
24007    },
24008    supports: {
24009      __experimentalOnEnter: true,
24010      __experimentalOnMerge: true,
24011      __experimentalSettings: true,
24012      align: ["wide", "full"],
24013      anchor: true,
24014      ariaLabel: true,
24015      html: false,
24016      background: {
24017        backgroundImage: true,
24018        backgroundSize: true,
24019        __experimentalDefaultControls: {
24020          backgroundImage: true
24021        }
24022      },
24023      color: {
24024        gradients: true,
24025        heading: true,
24026        button: true,
24027        link: true,
24028        __experimentalDefaultControls: {
24029          background: true,
24030          text: true
24031        }
24032      },
24033      shadow: true,
24034      spacing: {
24035        margin: ["top", "bottom"],
24036        padding: true,
24037        blockGap: true,
24038        __experimentalDefaultControls: {
24039          padding: true,
24040          blockGap: true
24041        }
24042      },
24043      dimensions: {
24044        minHeight: true
24045      },
24046      __experimentalBorder: {
24047        color: true,
24048        radius: true,
24049        style: true,
24050        width: true,
24051        __experimentalDefaultControls: {
24052          color: true,
24053          radius: true,
24054          style: true,
24055          width: true
24056        }
24057      },
24058      position: {
24059        sticky: true
24060      },
24061      typography: {
24062        fontSize: true,
24063        lineHeight: true,
24064        __experimentalFontFamily: true,
24065        __experimentalFontWeight: true,
24066        __experimentalFontStyle: true,
24067        __experimentalTextTransform: true,
24068        __experimentalTextDecoration: true,
24069        __experimentalLetterSpacing: true,
24070        __experimentalDefaultControls: {
24071          fontSize: true
24072        }
24073      },
24074      layout: {
24075        allowSizingOnChildren: true
24076      },
24077      interactivity: {
24078        clientNavigation: true
24079      }
24080    },
24081    editorStyle: "wp-block-group-editor",
24082    style: "wp-block-group"
24083  };
24084  
24085  
24086  
24087  const {
24088    name: group_name
24089  } = group_metadata;
24090  
24091  const group_settings = {
24092    icon: library_group,
24093    example: {
24094      attributes: {
24095        layout: {
24096          type: 'constrained',
24097          justifyContent: 'center'
24098        },
24099        style: {
24100          spacing: {
24101            padding: {
24102              top: '4em',
24103              right: '3em',
24104              bottom: '4em',
24105              left: '3em'
24106            }
24107          }
24108        }
24109      },
24110      innerBlocks: [{
24111        name: 'core/heading',
24112        attributes: {
24113          content: (0,external_wp_i18n_namespaceObject.__)('La Mancha'),
24114          textAlign: 'center'
24115        }
24116      }, {
24117        name: 'core/paragraph',
24118        attributes: {
24119          align: 'center',
24120          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.')
24121        }
24122      }, {
24123        name: 'core/spacer',
24124        attributes: {
24125          height: '10px'
24126        }
24127      }, {
24128        name: 'core/button',
24129        attributes: {
24130          text: (0,external_wp_i18n_namespaceObject.__)('Read more')
24131        }
24132      }],
24133      viewportWidth: 600
24134    },
24135    transforms: group_transforms,
24136    edit: group_edit,
24137    save: group_save_save,
24138    deprecated: group_deprecated,
24139    variations: group_variations
24140  };
24141  const group_init = () => initBlock({
24142    name: group_name,
24143    metadata: group_metadata,
24144    settings: group_settings
24145  });
24146  
24147  ;// ./node_modules/@wordpress/icons/build-module/library/heading.js
24148  /**
24149   * WordPress dependencies
24150   */
24151  
24152  
24153  const heading = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
24154    xmlns: "http://www.w3.org/2000/svg",
24155    viewBox: "0 0 24 24",
24156    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
24157      d: "M6 5V18.5911L12 13.8473L18 18.5911V5H6Z"
24158    })
24159  });
24160  /* harmony default export */ const library_heading = (heading);
24161  
24162  ;// ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js
24163  /**
24164   * External dependencies
24165   */
24166  
24167  
24168  /**
24169   * WordPress dependencies
24170   */
24171  
24172  
24173  const blockSupports = {
24174    className: false,
24175    anchor: true
24176  };
24177  const heading_deprecated_blockAttributes = {
24178    align: {
24179      type: 'string'
24180    },
24181    content: {
24182      type: 'string',
24183      source: 'html',
24184      selector: 'h1,h2,h3,h4,h5,h6',
24185      default: ''
24186    },
24187    level: {
24188      type: 'number',
24189      default: 2
24190    },
24191    placeholder: {
24192      type: 'string'
24193    }
24194  };
24195  const deprecated_migrateCustomColors = attributes => {
24196    if (!attributes.customTextColor) {
24197      return attributes;
24198    }
24199    const style = {
24200      color: {
24201        text: attributes.customTextColor
24202      }
24203    };
24204    const {
24205      customTextColor,
24206      ...restAttributes
24207    } = attributes;
24208    return {
24209      ...restAttributes,
24210      style
24211    };
24212  };
24213  const TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
24214  const migrateTextAlign = attributes => {
24215    const {
24216      align,
24217      ...rest
24218    } = attributes;
24219    return TEXT_ALIGN_OPTIONS.includes(align) ? {
24220      ...rest,
24221      textAlign: align
24222    } : attributes;
24223  };
24224  const heading_deprecated_v1 = {
24225    supports: blockSupports,
24226    attributes: {
24227      ...heading_deprecated_blockAttributes,
24228      customTextColor: {
24229        type: 'string'
24230      },
24231      textColor: {
24232        type: 'string'
24233      }
24234    },
24235    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
24236    save({
24237      attributes
24238    }) {
24239      const {
24240        align,
24241        level,
24242        content,
24243        textColor,
24244        customTextColor
24245      } = attributes;
24246      const tagName = 'h' + level;
24247      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
24248      const className = dist_clsx({
24249        [textClass]: textClass
24250      });
24251      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24252        className: className ? className : undefined,
24253        tagName: tagName,
24254        style: {
24255          textAlign: align,
24256          color: textClass ? undefined : customTextColor
24257        },
24258        value: content
24259      });
24260    }
24261  };
24262  const heading_deprecated_v2 = {
24263    attributes: {
24264      ...heading_deprecated_blockAttributes,
24265      customTextColor: {
24266        type: 'string'
24267      },
24268      textColor: {
24269        type: 'string'
24270      }
24271    },
24272    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
24273    save({
24274      attributes
24275    }) {
24276      const {
24277        align,
24278        content,
24279        customTextColor,
24280        level,
24281        textColor
24282      } = attributes;
24283      const tagName = 'h' + level;
24284      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
24285      const className = dist_clsx({
24286        [textClass]: textClass,
24287        [`has-text-align-$align}`]: align
24288      });
24289      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24290        className: className ? className : undefined,
24291        tagName: tagName,
24292        style: {
24293          color: textClass ? undefined : customTextColor
24294        },
24295        value: content
24296      });
24297    },
24298    supports: blockSupports
24299  };
24300  const heading_deprecated_v3 = {
24301    supports: blockSupports,
24302    attributes: {
24303      ...heading_deprecated_blockAttributes,
24304      customTextColor: {
24305        type: 'string'
24306      },
24307      textColor: {
24308        type: 'string'
24309      }
24310    },
24311    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
24312    save({
24313      attributes
24314    }) {
24315      const {
24316        align,
24317        content,
24318        customTextColor,
24319        level,
24320        textColor
24321      } = attributes;
24322      const tagName = 'h' + level;
24323      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
24324      const className = dist_clsx({
24325        [textClass]: textClass,
24326        'has-text-color': textColor || customTextColor,
24327        [`has-text-align-$align}`]: align
24328      });
24329      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24330        className: className ? className : undefined,
24331        tagName: tagName,
24332        style: {
24333          color: textClass ? undefined : customTextColor
24334        },
24335        value: content
24336      });
24337    }
24338  };
24339  const heading_deprecated_v4 = {
24340    supports: {
24341      align: ['wide', 'full'],
24342      anchor: true,
24343      className: false,
24344      color: {
24345        link: true
24346      },
24347      fontSize: true,
24348      lineHeight: true,
24349      __experimentalSelector: {
24350        'core/heading/h1': 'h1',
24351        'core/heading/h2': 'h2',
24352        'core/heading/h3': 'h3',
24353        'core/heading/h4': 'h4',
24354        'core/heading/h5': 'h5',
24355        'core/heading/h6': 'h6'
24356      },
24357      __unstablePasteTextInline: true
24358    },
24359    attributes: heading_deprecated_blockAttributes,
24360    isEligible: ({
24361      align
24362    }) => TEXT_ALIGN_OPTIONS.includes(align),
24363    migrate: migrateTextAlign,
24364    save({
24365      attributes
24366    }) {
24367      const {
24368        align,
24369        content,
24370        level
24371      } = attributes;
24372      const TagName = 'h' + level;
24373      const className = dist_clsx({
24374        [`has-text-align-$align}`]: align
24375      });
24376      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
24377        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
24378          className
24379        }),
24380        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24381          value: content
24382        })
24383      });
24384    }
24385  };
24386  
24387  // This deprecation covers the serialization of the `wp-block-heading` class
24388  // into the block's markup after className support was enabled.
24389  const heading_deprecated_v5 = {
24390    supports: {
24391      align: ['wide', 'full'],
24392      anchor: true,
24393      className: false,
24394      color: {
24395        gradients: true,
24396        link: true,
24397        __experimentalDefaultControls: {
24398          background: true,
24399          text: true
24400        }
24401      },
24402      spacing: {
24403        margin: true,
24404        padding: true
24405      },
24406      typography: {
24407        fontSize: true,
24408        lineHeight: true,
24409        __experimentalFontFamily: true,
24410        __experimentalFontStyle: true,
24411        __experimentalFontWeight: true,
24412        __experimentalLetterSpacing: true,
24413        __experimentalTextTransform: true,
24414        __experimentalTextDecoration: true,
24415        __experimentalDefaultControls: {
24416          fontSize: true,
24417          fontAppearance: true,
24418          textTransform: true
24419        }
24420      },
24421      __experimentalSelector: 'h1,h2,h3,h4,h5,h6',
24422      __unstablePasteTextInline: true,
24423      __experimentalSlashInserter: true
24424    },
24425    attributes: {
24426      textAlign: {
24427        type: 'string'
24428      },
24429      content: {
24430        type: 'string',
24431        source: 'html',
24432        selector: 'h1,h2,h3,h4,h5,h6',
24433        default: '',
24434        role: 'content'
24435      },
24436      level: {
24437        type: 'number',
24438        default: 2
24439      },
24440      placeholder: {
24441        type: 'string'
24442      }
24443    },
24444    save({
24445      attributes
24446    }) {
24447      const {
24448        textAlign,
24449        content,
24450        level
24451      } = attributes;
24452      const TagName = 'h' + level;
24453      const className = dist_clsx({
24454        [`has-text-align-$textAlign}`]: textAlign
24455      });
24456      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
24457        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
24458          className
24459        }),
24460        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24461          value: content
24462        })
24463      });
24464    }
24465  };
24466  const heading_deprecated_deprecated = [heading_deprecated_v5, heading_deprecated_v4, heading_deprecated_v3, heading_deprecated_v2, heading_deprecated_v1];
24467  /* harmony default export */ const heading_deprecated = (heading_deprecated_deprecated);
24468  
24469  ;// ./node_modules/@wordpress/block-library/build-module/heading/autogenerate-anchors.js
24470  /**
24471   * External dependencies
24472   */
24473  
24474  
24475  /**
24476   * Object map tracking anchors.
24477   *
24478   * @type {Record<string, string | null>}
24479   */
24480  const autogenerate_anchors_anchors = {};
24481  
24482  /**
24483   * Returns the text without markup.
24484   *
24485   * @param {string} text The text.
24486   *
24487   * @return {string} The text without markup.
24488   */
24489  const getTextWithoutMarkup = text => {
24490    const dummyElement = document.createElement('div');
24491    dummyElement.innerHTML = text;
24492    return dummyElement.innerText;
24493  };
24494  
24495  /**
24496   * Get the slug from the content.
24497   *
24498   * @param {string} content The block content.
24499   *
24500   * @return {string} Returns the slug.
24501   */
24502  const getSlug = content => {
24503    // Get the slug.
24504    return remove_accents_default()(getTextWithoutMarkup(content))
24505    // Convert anything that's not a letter or number to a hyphen.
24506    .replace(/[^\p{L}\p{N}]+/gu, '-')
24507    // Convert to lowercase
24508    .toLowerCase()
24509    // Remove any remaining leading or trailing hyphens.
24510    .replace(/(^-+)|(-+$)/g, '');
24511  };
24512  
24513  /**
24514   * Generate the anchor for a heading.
24515   *
24516   * @param {string} clientId The block ID.
24517   * @param {string} content  The block content.
24518   *
24519   * @return {string|null} Return the heading anchor.
24520   */
24521  const generateAnchor = (clientId, content) => {
24522    const slug = getSlug(content);
24523    // If slug is empty, then return null.
24524    // Returning null instead of an empty string allows us to check again when the content changes.
24525    if ('' === slug) {
24526      return null;
24527    }
24528    delete autogenerate_anchors_anchors[clientId];
24529    let anchor = slug;
24530    let i = 0;
24531  
24532    // If the anchor already exists in another heading, append -i.
24533    while (Object.values(autogenerate_anchors_anchors).includes(anchor)) {
24534      i += 1;
24535      anchor = slug + '-' + i;
24536    }
24537    return anchor;
24538  };
24539  
24540  /**
24541   * Set the anchor for a heading.
24542   *
24543   * @param {string}      clientId The block ID.
24544   * @param {string|null} anchor   The block anchor.
24545   */
24546  const setAnchor = (clientId, anchor) => {
24547    autogenerate_anchors_anchors[clientId] = anchor;
24548  };
24549  
24550  ;// ./node_modules/@wordpress/block-library/build-module/heading/edit.js
24551  /**
24552   * External dependencies
24553   */
24554  
24555  
24556  /**
24557   * WordPress dependencies
24558   */
24559  
24560  
24561  
24562  
24563  
24564  /**
24565   * Internal dependencies
24566   */
24567  
24568  
24569  function HeadingEdit({
24570    attributes,
24571    setAttributes,
24572    mergeBlocks,
24573    onReplace,
24574    style,
24575    clientId
24576  }) {
24577    const {
24578      textAlign,
24579      content,
24580      level,
24581      levelOptions,
24582      placeholder,
24583      anchor
24584    } = attributes;
24585    const tagName = 'h' + level;
24586    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
24587      className: dist_clsx({
24588        [`has-text-align-$textAlign}`]: textAlign
24589      }),
24590      style
24591    });
24592    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
24593    const {
24594      canGenerateAnchors
24595    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
24596      const {
24597        getGlobalBlockCount,
24598        getSettings
24599      } = select(external_wp_blockEditor_namespaceObject.store);
24600      const settings = getSettings();
24601      return {
24602        canGenerateAnchors: !!settings.generateAnchors || getGlobalBlockCount('core/table-of-contents') > 0
24603      };
24604    }, []);
24605    const {
24606      __unstableMarkNextChangeAsNotPersistent
24607    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
24608  
24609    // Initially set anchor for headings that have content but no anchor set.
24610    // This is used when transforming a block to heading, or for legacy anchors.
24611    (0,external_wp_element_namespaceObject.useEffect)(() => {
24612      if (!canGenerateAnchors) {
24613        return;
24614      }
24615      if (!anchor && content) {
24616        // This side-effect should not create an undo level.
24617        __unstableMarkNextChangeAsNotPersistent();
24618        setAttributes({
24619          anchor: generateAnchor(clientId, content)
24620        });
24621      }
24622      setAnchor(clientId, anchor);
24623  
24624      // Remove anchor map when block unmounts.
24625      return () => setAnchor(clientId, null);
24626    }, [anchor, content, clientId, canGenerateAnchors]);
24627    const onContentChange = value => {
24628      const newAttrs = {
24629        content: value
24630      };
24631      if (canGenerateAnchors && (!anchor || !value || generateAnchor(clientId, content) === anchor)) {
24632        newAttrs.anchor = generateAnchor(clientId, value);
24633      }
24634      setAttributes(newAttrs);
24635    };
24636    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
24637      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
24638        group: "block",
24639        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
24640          value: level,
24641          options: levelOptions,
24642          onChange: newLevel => setAttributes({
24643            level: newLevel
24644          })
24645        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
24646          value: textAlign,
24647          onChange: nextAlign => {
24648            setAttributes({
24649              textAlign: nextAlign
24650            });
24651          }
24652        })]
24653      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
24654        identifier: "content",
24655        tagName: tagName,
24656        value: content,
24657        onChange: onContentChange,
24658        onMerge: mergeBlocks,
24659        onReplace: onReplace,
24660        onRemove: () => onReplace([]),
24661        placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Heading'),
24662        textAlign: textAlign,
24663        ...(external_wp_element_namespaceObject.Platform.isNative && {
24664          deleteEnter: true
24665        }),
24666        ...blockProps
24667      })]
24668    });
24669  }
24670  /* harmony default export */ const heading_edit = (HeadingEdit);
24671  
24672  ;// ./node_modules/@wordpress/block-library/build-module/heading/save.js
24673  /**
24674   * External dependencies
24675   */
24676  
24677  
24678  /**
24679   * WordPress dependencies
24680   */
24681  
24682  
24683  function heading_save_save({
24684    attributes
24685  }) {
24686    const {
24687      textAlign,
24688      content,
24689      level
24690    } = attributes;
24691    const TagName = 'h' + level;
24692    const className = dist_clsx({
24693      [`has-text-align-$textAlign}`]: textAlign
24694    });
24695    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
24696      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
24697        className
24698      }),
24699      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24700        value: content
24701      })
24702    });
24703  }
24704  
24705  ;// ./node_modules/@wordpress/block-library/build-module/heading/shared.js
24706  /**
24707   * Given a node name string for a heading node, returns its numeric level.
24708   *
24709   * @param {string} nodeName Heading node name.
24710   *
24711   * @return {number} Heading level.
24712   */
24713  function getLevelFromHeadingNodeName(nodeName) {
24714    return Number(nodeName.substr(1));
24715  }
24716  
24717  ;// ./node_modules/@wordpress/block-library/build-module/heading/transforms.js
24718  /**
24719   * WordPress dependencies
24720   */
24721  
24722  
24723  /**
24724   * Internal dependencies
24725   */
24726  
24727  
24728  const heading_transforms_transforms = {
24729    from: [{
24730      type: 'block',
24731      isMultiBlock: true,
24732      blocks: ['core/paragraph'],
24733      transform: attributes => attributes.map(({
24734        content,
24735        anchor,
24736        align: textAlign,
24737        metadata
24738      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24739        content,
24740        anchor,
24741        textAlign,
24742        metadata: getTransformedMetadata(metadata, 'core/heading', ({
24743          content: contentBinding
24744        }) => ({
24745          content: contentBinding
24746        }))
24747      }))
24748    }, {
24749      type: 'raw',
24750      selector: 'h1,h2,h3,h4,h5,h6',
24751      schema: ({
24752        phrasingContentSchema,
24753        isPaste
24754      }) => {
24755        const schema = {
24756          children: phrasingContentSchema,
24757          attributes: isPaste ? [] : ['style', 'id']
24758        };
24759        return {
24760          h1: schema,
24761          h2: schema,
24762          h3: schema,
24763          h4: schema,
24764          h5: schema,
24765          h6: schema
24766        };
24767      },
24768      transform(node) {
24769        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/heading', node.outerHTML);
24770        const {
24771          textAlign
24772        } = node.style || {};
24773        attributes.level = getLevelFromHeadingNodeName(node.nodeName);
24774        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
24775          attributes.align = textAlign;
24776        }
24777        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', attributes);
24778      }
24779    }, ...[1, 2, 3, 4, 5, 6].map(level => ({
24780      type: 'prefix',
24781      prefix: Array(level + 1).join('#'),
24782      transform(content) {
24783        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24784          level,
24785          content
24786        });
24787      }
24788    })), ...[1, 2, 3, 4, 5, 6].map(level => ({
24789      type: 'enter',
24790      regExp: new RegExp(`^/(h|H)$level}$`),
24791      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24792        level
24793      })
24794    }))],
24795    to: [{
24796      type: 'block',
24797      isMultiBlock: true,
24798      blocks: ['core/paragraph'],
24799      transform: attributes => attributes.map(({
24800        content,
24801        textAlign: align,
24802        metadata
24803      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
24804        content,
24805        align,
24806        metadata: getTransformedMetadata(metadata, 'core/paragraph', ({
24807          content: contentBinding
24808        }) => ({
24809          content: contentBinding
24810        }))
24811      }))
24812    }]
24813  };
24814  /* harmony default export */ const heading_transforms = (heading_transforms_transforms);
24815  
24816  ;// ./node_modules/@wordpress/block-library/build-module/heading/index.js
24817  /**
24818   * WordPress dependencies
24819   */
24820  
24821  
24822  
24823  /**
24824   * Internal dependencies
24825   */
24826  
24827  
24828  
24829  const heading_metadata = {
24830    $schema: "https://schemas.wp.org/trunk/block.json",
24831    apiVersion: 3,
24832    name: "core/heading",
24833    title: "Heading",
24834    category: "text",
24835    description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
24836    keywords: ["title", "subtitle"],
24837    textdomain: "default",
24838    attributes: {
24839      textAlign: {
24840        type: "string"
24841      },
24842      content: {
24843        type: "rich-text",
24844        source: "rich-text",
24845        selector: "h1,h2,h3,h4,h5,h6",
24846        role: "content"
24847      },
24848      level: {
24849        type: "number",
24850        "default": 2
24851      },
24852      levelOptions: {
24853        type: "array"
24854      },
24855      placeholder: {
24856        type: "string"
24857      }
24858    },
24859    supports: {
24860      align: ["wide", "full"],
24861      anchor: true,
24862      className: true,
24863      splitting: true,
24864      __experimentalBorder: {
24865        color: true,
24866        radius: true,
24867        style: true,
24868        width: true
24869      },
24870      color: {
24871        gradients: true,
24872        link: true,
24873        __experimentalDefaultControls: {
24874          background: true,
24875          text: true
24876        }
24877      },
24878      spacing: {
24879        margin: true,
24880        padding: true,
24881        __experimentalDefaultControls: {
24882          margin: false,
24883          padding: false
24884        }
24885      },
24886      typography: {
24887        fontSize: true,
24888        lineHeight: true,
24889        __experimentalFontFamily: true,
24890        __experimentalFontStyle: true,
24891        __experimentalFontWeight: true,
24892        __experimentalLetterSpacing: true,
24893        __experimentalTextTransform: true,
24894        __experimentalTextDecoration: true,
24895        __experimentalWritingMode: true,
24896        __experimentalDefaultControls: {
24897          fontSize: true
24898        }
24899      },
24900      __unstablePasteTextInline: true,
24901      __experimentalSlashInserter: true,
24902      interactivity: {
24903        clientNavigation: true
24904      }
24905    },
24906    editorStyle: "wp-block-heading-editor",
24907    style: "wp-block-heading"
24908  };
24909  
24910  
24911  const {
24912    name: heading_name
24913  } = heading_metadata;
24914  
24915  const heading_settings = {
24916    icon: library_heading,
24917    example: {
24918      attributes: {
24919        content: (0,external_wp_i18n_namespaceObject.__)('Code is Poetry'),
24920        level: 2,
24921        textAlign: 'center'
24922      }
24923    },
24924    __experimentalLabel(attributes, {
24925      context
24926    }) {
24927      const {
24928        content,
24929        level
24930      } = attributes;
24931      const customName = attributes?.metadata?.name;
24932      const hasContent = content?.trim().length > 0;
24933  
24934      // In the list view, use the block's content as the label.
24935      // If the content is empty, fall back to the default label.
24936      if (context === 'list-view' && (customName || hasContent)) {
24937        return customName || content;
24938      }
24939      if (context === 'accessibility') {
24940        return !hasContent ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: accessibility text. %s: heading level. */
24941        (0,external_wp_i18n_namespaceObject.__)('Level %s. Empty.'), level) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: accessibility text. 1: heading level. 2: heading content. */
24942        (0,external_wp_i18n_namespaceObject.__)('Level %1$s. %2$s'), level, content);
24943      }
24944    },
24945    transforms: heading_transforms,
24946    deprecated: heading_deprecated,
24947    merge(attributes, attributesToMerge) {
24948      return {
24949        content: (attributes.content || '') + (attributesToMerge.content || '')
24950      };
24951    },
24952    edit: heading_edit,
24953    save: heading_save_save
24954  };
24955  const heading_init = () => initBlock({
24956    name: heading_name,
24957    metadata: heading_metadata,
24958    settings: heading_settings
24959  });
24960  
24961  ;// ./node_modules/@wordpress/icons/build-module/library/home.js
24962  /**
24963   * WordPress dependencies
24964   */
24965  
24966  
24967  const home = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
24968    xmlns: "http://www.w3.org/2000/svg",
24969    viewBox: "0 0 24 24",
24970    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
24971      d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"
24972    })
24973  });
24974  /* harmony default export */ const library_home = (home);
24975  
24976  ;// ./node_modules/@wordpress/block-library/build-module/home-link/edit.js
24977  /**
24978   * External dependencies
24979   */
24980  
24981  
24982  /**
24983   * WordPress dependencies
24984   */
24985  
24986  
24987  
24988  
24989  
24990  const preventDefault = event => event.preventDefault();
24991  function HomeEdit({
24992    attributes,
24993    setAttributes,
24994    context
24995  }) {
24996    var _attributes$label;
24997    const homeUrl = (0,external_wp_data_namespaceObject.useSelect)(select => {
24998      // Site index.
24999      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase')?.home;
25000    }, []);
25001    const {
25002      textColor,
25003      backgroundColor,
25004      style
25005    } = context;
25006    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
25007      className: dist_clsx('wp-block-navigation-item', {
25008        'has-text-color': !!textColor || !!style?.color?.text,
25009        [`has-$textColor}-color`]: !!textColor,
25010        'has-background': !!backgroundColor || !!style?.color?.background,
25011        [`has-$backgroundColor}-background-color`]: !!backgroundColor
25012      }),
25013      style: {
25014        color: style?.color?.text,
25015        backgroundColor: style?.color?.background
25016      }
25017    });
25018    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25019      ...blockProps,
25020      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25021        className: "wp-block-home-link__content wp-block-navigation-item__content",
25022        href: homeUrl,
25023        onClick: preventDefault,
25024        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
25025          identifier: "label",
25026          className: "wp-block-home-link__label",
25027          value: (_attributes$label = attributes.label) !== null && _attributes$label !== void 0 ? _attributes$label : (0,external_wp_i18n_namespaceObject.__)('Home'),
25028          onChange: labelValue => {
25029            setAttributes({
25030              label: labelValue
25031            });
25032          },
25033          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home link text'),
25034          placeholder: (0,external_wp_i18n_namespaceObject.__)('Add home link'),
25035          withoutInteractiveFormatting: true
25036        })
25037      })
25038    });
25039  }
25040  
25041  ;// ./node_modules/@wordpress/block-library/build-module/home-link/save.js
25042  /**
25043   * WordPress dependencies
25044   */
25045  
25046  
25047  function home_link_save_save() {
25048    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
25049  }
25050  
25051  ;// ./node_modules/@wordpress/block-library/build-module/home-link/index.js
25052  /**
25053   * WordPress dependencies
25054   */
25055  
25056  
25057  
25058  /**
25059   * Internal dependencies
25060   */
25061  
25062  const home_link_metadata = {
25063    $schema: "https://schemas.wp.org/trunk/block.json",
25064    apiVersion: 3,
25065    name: "core/home-link",
25066    category: "design",
25067    parent: ["core/navigation"],
25068    title: "Home Link",
25069    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.",
25070    textdomain: "default",
25071    attributes: {
25072      label: {
25073        type: "string"
25074      }
25075    },
25076    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style"],
25077    supports: {
25078      reusable: false,
25079      html: false,
25080      typography: {
25081        fontSize: true,
25082        lineHeight: true,
25083        __experimentalFontFamily: true,
25084        __experimentalFontWeight: true,
25085        __experimentalFontStyle: true,
25086        __experimentalTextTransform: true,
25087        __experimentalTextDecoration: true,
25088        __experimentalLetterSpacing: true,
25089        __experimentalDefaultControls: {
25090          fontSize: true
25091        }
25092      },
25093      interactivity: {
25094        clientNavigation: true
25095      }
25096    },
25097    editorStyle: "wp-block-home-link-editor",
25098    style: "wp-block-home-link"
25099  };
25100  
25101  
25102  const {
25103    name: home_link_name
25104  } = home_link_metadata;
25105  
25106  const home_link_settings = {
25107    icon: library_home,
25108    edit: HomeEdit,
25109    save: home_link_save_save,
25110    example: {
25111      attributes: {
25112        label: (0,external_wp_i18n_namespaceObject._x)('Home Link', 'block example')
25113      }
25114    }
25115  };
25116  const home_link_init = () => initBlock({
25117    name: home_link_name,
25118    metadata: home_link_metadata,
25119    settings: home_link_settings
25120  });
25121  
25122  ;// ./node_modules/@wordpress/icons/build-module/library/html.js
25123  /**
25124   * WordPress dependencies
25125   */
25126  
25127  
25128  const html = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
25129    viewBox: "0 0 24 24",
25130    xmlns: "http://www.w3.org/2000/svg",
25131    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
25132      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"
25133    })
25134  });
25135  /* harmony default export */ const library_html = (html);
25136  
25137  ;// ./node_modules/@wordpress/block-library/build-module/html/preview.js
25138  /**
25139   * WordPress dependencies
25140   */
25141  
25142  
25143  
25144  
25145  
25146  
25147  // Default styles used to unset some of the styles
25148  // that might be inherited from the editor style.
25149  
25150  const DEFAULT_STYLES = `
25151      html,body,:root {
25152          margin: 0 !important;
25153          padding: 0 !important;
25154          overflow: visible !important;
25155          min-height: auto !important;
25156      }
25157  `;
25158  function HTMLEditPreview({
25159    content,
25160    isSelected
25161  }) {
25162    const settingStyles = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().styles, []);
25163    const styles = (0,external_wp_element_namespaceObject.useMemo)(() => [DEFAULT_STYLES, ...(0,external_wp_blockEditor_namespaceObject.transformStyles)((settingStyles !== null && settingStyles !== void 0 ? settingStyles : []).filter(style => style.css))], [settingStyles]);
25164    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25165      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SandBox, {
25166        html: content,
25167        styles: styles,
25168        title: (0,external_wp_i18n_namespaceObject.__)('Custom HTML Preview'),
25169        tabIndex: -1
25170      }), !isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25171        className: "block-library-html__preview-overlay"
25172      })]
25173    });
25174  }
25175  
25176  ;// ./node_modules/@wordpress/block-library/build-module/html/edit.js
25177  /**
25178   * WordPress dependencies
25179   */
25180  
25181  
25182  
25183  
25184  
25185  
25186  
25187  /**
25188   * Internal dependencies
25189   */
25190  
25191  
25192  function HTMLEdit({
25193    attributes,
25194    setAttributes,
25195    isSelected
25196  }) {
25197    const [isPreview, setIsPreview] = (0,external_wp_element_namespaceObject.useState)();
25198    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
25199    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(HTMLEdit, 'html-edit-desc');
25200    const isPreviewMode = (0,external_wp_data_namespaceObject.useSelect)(select => {
25201      return select(external_wp_blockEditor_namespaceObject.store).getSettings().isPreviewMode;
25202    }, []);
25203    function switchToPreview() {
25204      setIsPreview(true);
25205    }
25206    function switchToHTML() {
25207      setIsPreview(false);
25208    }
25209    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
25210      className: 'block-library-html__edit',
25211      'aria-describedby': isPreview ? instanceId : undefined
25212    });
25213    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
25214      ...blockProps,
25215      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
25216        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
25217          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
25218            isPressed: !isPreview,
25219            onClick: switchToHTML,
25220            children: "HTML"
25221          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
25222            isPressed: isPreview,
25223            onClick: switchToPreview,
25224            children: (0,external_wp_i18n_namespaceObject.__)('Preview')
25225          })]
25226        })
25227      }), isPreview || isPreviewMode || isDisabled ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25228        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(HTMLEditPreview, {
25229          content: attributes.content,
25230          isSelected: isSelected
25231        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
25232          id: instanceId,
25233          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.')
25234        })]
25235      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
25236        value: attributes.content,
25237        onChange: content => setAttributes({
25238          content
25239        }),
25240        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write HTML…'),
25241        "aria-label": (0,external_wp_i18n_namespaceObject.__)('HTML')
25242      })]
25243    });
25244  }
25245  
25246  ;// ./node_modules/@wordpress/block-library/build-module/html/save.js
25247  /**
25248   * WordPress dependencies
25249   */
25250  
25251  
25252  function html_save_save({
25253    attributes
25254  }) {
25255    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
25256      children: attributes.content
25257    });
25258  }
25259  
25260  ;// ./node_modules/@wordpress/block-library/build-module/html/transforms.js
25261  /**
25262   * WordPress dependencies
25263   */
25264  
25265  
25266  const html_transforms_transforms = {
25267    from: [{
25268      type: 'block',
25269      blocks: ['core/code'],
25270      transform: ({
25271        content: html
25272      }) => {
25273        return (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
25274          // The code block may output HTML formatting, so convert it
25275          // to plain text.
25276          content: (0,external_wp_richText_namespaceObject.create)({
25277            html
25278          }).text
25279        });
25280      }
25281    }]
25282  };
25283  /* harmony default export */ const html_transforms = (html_transforms_transforms);
25284  
25285  ;// ./node_modules/@wordpress/block-library/build-module/html/index.js
25286  /**
25287   * WordPress dependencies
25288   */
25289  
25290  
25291  
25292  /**
25293   * Internal dependencies
25294   */
25295  
25296  
25297  const html_metadata = {
25298    $schema: "https://schemas.wp.org/trunk/block.json",
25299    apiVersion: 3,
25300    name: "core/html",
25301    title: "Custom HTML",
25302    category: "widgets",
25303    description: "Add custom HTML code and preview it as you edit.",
25304    keywords: ["embed"],
25305    textdomain: "default",
25306    attributes: {
25307      content: {
25308        type: "string",
25309        source: "raw"
25310      }
25311    },
25312    supports: {
25313      customClassName: false,
25314      className: false,
25315      html: false,
25316      interactivity: {
25317        clientNavigation: true
25318      }
25319    },
25320    editorStyle: "wp-block-html-editor"
25321  };
25322  
25323  
25324  const {
25325    name: html_name
25326  } = html_metadata;
25327  
25328  const html_settings = {
25329    icon: library_html,
25330    example: {
25331      attributes: {
25332        content: '<marquee>' + (0,external_wp_i18n_namespaceObject.__)('Welcome to the wonderful world of blocks…') + '</marquee>'
25333      }
25334    },
25335    edit: HTMLEdit,
25336    save: html_save_save,
25337    transforms: html_transforms
25338  };
25339  const html_init = () => initBlock({
25340    name: html_name,
25341    metadata: html_metadata,
25342    settings: html_settings
25343  });
25344  
25345  ;// ./node_modules/@wordpress/block-library/build-module/image/deprecated.js
25346  /**
25347   * External dependencies
25348   */
25349  
25350  
25351  /**
25352   * WordPress dependencies
25353   */
25354  
25355  
25356  /**
25357   * Deprecation for adding the `wp-image-${id}` class to the image block for
25358   * responsive images.
25359   *
25360   * @see https://github.com/WordPress/gutenberg/pull/4898
25361   */
25362  
25363  const image_deprecated_v1 = {
25364    attributes: {
25365      url: {
25366        type: 'string',
25367        source: 'attribute',
25368        selector: 'img',
25369        attribute: 'src'
25370      },
25371      alt: {
25372        type: 'string',
25373        source: 'attribute',
25374        selector: 'img',
25375        attribute: 'alt',
25376        default: ''
25377      },
25378      caption: {
25379        type: 'array',
25380        source: 'children',
25381        selector: 'figcaption'
25382      },
25383      href: {
25384        type: 'string',
25385        source: 'attribute',
25386        selector: 'a',
25387        attribute: 'href'
25388      },
25389      id: {
25390        type: 'number'
25391      },
25392      align: {
25393        type: 'string'
25394      },
25395      width: {
25396        type: 'number'
25397      },
25398      height: {
25399        type: 'number'
25400      }
25401    },
25402    save({
25403      attributes
25404    }) {
25405      const {
25406        url,
25407        alt,
25408        caption,
25409        align,
25410        href,
25411        width,
25412        height
25413      } = attributes;
25414      const extraImageProps = width || height ? {
25415        width,
25416        height
25417      } : {};
25418      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25419        src: url,
25420        alt: alt,
25421        ...extraImageProps
25422      });
25423      let figureStyle = {};
25424      if (width) {
25425        figureStyle = {
25426          width
25427        };
25428      } else if (align === 'left' || align === 'right') {
25429        figureStyle = {
25430          maxWidth: '50%'
25431        };
25432      }
25433      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
25434        className: align ? `align$align}` : null,
25435        style: figureStyle,
25436        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25437          href: href,
25438          children: image
25439        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25440          tagName: "figcaption",
25441          value: caption
25442        })]
25443      });
25444    }
25445  };
25446  
25447  /**
25448   * Deprecation for adding the `is-resized` class to the image block to fix
25449   * captions on resized images.
25450   *
25451   * @see https://github.com/WordPress/gutenberg/pull/6496
25452   */
25453  const image_deprecated_v2 = {
25454    attributes: {
25455      url: {
25456        type: 'string',
25457        source: 'attribute',
25458        selector: 'img',
25459        attribute: 'src'
25460      },
25461      alt: {
25462        type: 'string',
25463        source: 'attribute',
25464        selector: 'img',
25465        attribute: 'alt',
25466        default: ''
25467      },
25468      caption: {
25469        type: 'array',
25470        source: 'children',
25471        selector: 'figcaption'
25472      },
25473      href: {
25474        type: 'string',
25475        source: 'attribute',
25476        selector: 'a',
25477        attribute: 'href'
25478      },
25479      id: {
25480        type: 'number'
25481      },
25482      align: {
25483        type: 'string'
25484      },
25485      width: {
25486        type: 'number'
25487      },
25488      height: {
25489        type: 'number'
25490      }
25491    },
25492    save({
25493      attributes
25494    }) {
25495      const {
25496        url,
25497        alt,
25498        caption,
25499        align,
25500        href,
25501        width,
25502        height,
25503        id
25504      } = attributes;
25505      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25506        src: url,
25507        alt: alt,
25508        className: id ? `wp-image-$id}` : null,
25509        width: width,
25510        height: height
25511      });
25512      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
25513        className: align ? `align$align}` : null,
25514        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25515          href: href,
25516          children: image
25517        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25518          tagName: "figcaption",
25519          value: caption
25520        })]
25521      });
25522    }
25523  };
25524  
25525  /**
25526   * Deprecation for image floats including a wrapping div.
25527   *
25528   * @see https://github.com/WordPress/gutenberg/pull/7721
25529   */
25530  const image_deprecated_v3 = {
25531    attributes: {
25532      url: {
25533        type: 'string',
25534        source: 'attribute',
25535        selector: 'img',
25536        attribute: 'src'
25537      },
25538      alt: {
25539        type: 'string',
25540        source: 'attribute',
25541        selector: 'img',
25542        attribute: 'alt',
25543        default: ''
25544      },
25545      caption: {
25546        type: 'array',
25547        source: 'children',
25548        selector: 'figcaption'
25549      },
25550      href: {
25551        type: 'string',
25552        source: 'attribute',
25553        selector: 'figure > a',
25554        attribute: 'href'
25555      },
25556      id: {
25557        type: 'number'
25558      },
25559      align: {
25560        type: 'string'
25561      },
25562      width: {
25563        type: 'number'
25564      },
25565      height: {
25566        type: 'number'
25567      },
25568      linkDestination: {
25569        type: 'string',
25570        default: 'none'
25571      }
25572    },
25573    save({
25574      attributes
25575    }) {
25576      const {
25577        url,
25578        alt,
25579        caption,
25580        align,
25581        href,
25582        width,
25583        height,
25584        id
25585      } = attributes;
25586      const classes = dist_clsx({
25587        [`align$align}`]: align,
25588        'is-resized': width || height
25589      });
25590      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25591        src: url,
25592        alt: alt,
25593        className: id ? `wp-image-$id}` : null,
25594        width: width,
25595        height: height
25596      });
25597      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
25598        className: classes,
25599        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25600          href: href,
25601          children: image
25602        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25603          tagName: "figcaption",
25604          value: caption
25605        })]
25606      });
25607    }
25608  };
25609  
25610  /**
25611   * Deprecation for removing the outer div wrapper around aligned images.
25612   *
25613   * @see https://github.com/WordPress/gutenberg/pull/38657
25614   */
25615  const image_deprecated_v4 = {
25616    attributes: {
25617      align: {
25618        type: 'string'
25619      },
25620      url: {
25621        type: 'string',
25622        source: 'attribute',
25623        selector: 'img',
25624        attribute: 'src'
25625      },
25626      alt: {
25627        type: 'string',
25628        source: 'attribute',
25629        selector: 'img',
25630        attribute: 'alt',
25631        default: ''
25632      },
25633      caption: {
25634        type: 'string',
25635        source: 'html',
25636        selector: 'figcaption'
25637      },
25638      title: {
25639        type: 'string',
25640        source: 'attribute',
25641        selector: 'img',
25642        attribute: 'title'
25643      },
25644      href: {
25645        type: 'string',
25646        source: 'attribute',
25647        selector: 'figure > a',
25648        attribute: 'href'
25649      },
25650      rel: {
25651        type: 'string',
25652        source: 'attribute',
25653        selector: 'figure > a',
25654        attribute: 'rel'
25655      },
25656      linkClass: {
25657        type: 'string',
25658        source: 'attribute',
25659        selector: 'figure > a',
25660        attribute: 'class'
25661      },
25662      id: {
25663        type: 'number'
25664      },
25665      width: {
25666        type: 'number'
25667      },
25668      height: {
25669        type: 'number'
25670      },
25671      sizeSlug: {
25672        type: 'string'
25673      },
25674      linkDestination: {
25675        type: 'string'
25676      },
25677      linkTarget: {
25678        type: 'string',
25679        source: 'attribute',
25680        selector: 'figure > a',
25681        attribute: 'target'
25682      }
25683    },
25684    supports: {
25685      anchor: true
25686    },
25687    save({
25688      attributes
25689    }) {
25690      const {
25691        url,
25692        alt,
25693        caption,
25694        align,
25695        href,
25696        rel,
25697        linkClass,
25698        width,
25699        height,
25700        id,
25701        linkTarget,
25702        sizeSlug,
25703        title
25704      } = attributes;
25705      const newRel = !rel ? undefined : rel;
25706      const classes = dist_clsx({
25707        [`align$align}`]: align,
25708        [`size-$sizeSlug}`]: sizeSlug,
25709        'is-resized': width || height
25710      });
25711      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25712        src: url,
25713        alt: alt,
25714        className: id ? `wp-image-$id}` : null,
25715        width: width,
25716        height: height,
25717        title: title
25718      });
25719      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25720        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25721          className: linkClass,
25722          href: href,
25723          target: linkTarget,
25724          rel: newRel,
25725          children: image
25726        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25727          tagName: "figcaption",
25728          value: caption
25729        })]
25730      });
25731      if ('left' === align || 'right' === align || 'center' === align) {
25732        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25733          ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
25734          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25735            className: classes,
25736            children: figure
25737          })
25738        });
25739      }
25740      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25741        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25742          className: classes
25743        }),
25744        children: figure
25745      });
25746    }
25747  };
25748  
25749  /**
25750   * Deprecation for moving existing border radius styles onto the inner img
25751   * element where new border block support styles must be applied.
25752   * It will also add a new `.has-custom-border` class for existing blocks
25753   * with border radii set. This class is required to improve caption position
25754   * and styling when an image within a gallery has a custom border or
25755   * rounded corners.
25756   *
25757   * @see https://github.com/WordPress/gutenberg/pull/31366
25758   */
25759  const image_deprecated_v5 = {
25760    attributes: {
25761      align: {
25762        type: 'string'
25763      },
25764      url: {
25765        type: 'string',
25766        source: 'attribute',
25767        selector: 'img',
25768        attribute: 'src'
25769      },
25770      alt: {
25771        type: 'string',
25772        source: 'attribute',
25773        selector: 'img',
25774        attribute: 'alt',
25775        default: ''
25776      },
25777      caption: {
25778        type: 'string',
25779        source: 'html',
25780        selector: 'figcaption'
25781      },
25782      title: {
25783        type: 'string',
25784        source: 'attribute',
25785        selector: 'img',
25786        attribute: 'title'
25787      },
25788      href: {
25789        type: 'string',
25790        source: 'attribute',
25791        selector: 'figure > a',
25792        attribute: 'href'
25793      },
25794      rel: {
25795        type: 'string',
25796        source: 'attribute',
25797        selector: 'figure > a',
25798        attribute: 'rel'
25799      },
25800      linkClass: {
25801        type: 'string',
25802        source: 'attribute',
25803        selector: 'figure > a',
25804        attribute: 'class'
25805      },
25806      id: {
25807        type: 'number'
25808      },
25809      width: {
25810        type: 'number'
25811      },
25812      height: {
25813        type: 'number'
25814      },
25815      sizeSlug: {
25816        type: 'string'
25817      },
25818      linkDestination: {
25819        type: 'string'
25820      },
25821      linkTarget: {
25822        type: 'string',
25823        source: 'attribute',
25824        selector: 'figure > a',
25825        attribute: 'target'
25826      }
25827    },
25828    supports: {
25829      anchor: true,
25830      color: {
25831        __experimentalDuotone: 'img',
25832        text: false,
25833        background: false
25834      },
25835      __experimentalBorder: {
25836        radius: true,
25837        __experimentalDefaultControls: {
25838          radius: true
25839        }
25840      },
25841      __experimentalStyle: {
25842        spacing: {
25843          margin: '0 0 1em 0'
25844        }
25845      }
25846    },
25847    save({
25848      attributes
25849    }) {
25850      const {
25851        url,
25852        alt,
25853        caption,
25854        align,
25855        href,
25856        rel,
25857        linkClass,
25858        width,
25859        height,
25860        id,
25861        linkTarget,
25862        sizeSlug,
25863        title
25864      } = attributes;
25865      const newRel = !rel ? undefined : rel;
25866      const classes = dist_clsx({
25867        [`align$align}`]: align,
25868        [`size-$sizeSlug}`]: sizeSlug,
25869        'is-resized': width || height
25870      });
25871      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25872        src: url,
25873        alt: alt,
25874        className: id ? `wp-image-$id}` : null,
25875        width: width,
25876        height: height,
25877        title: title
25878      });
25879      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25880        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25881          className: linkClass,
25882          href: href,
25883          target: linkTarget,
25884          rel: newRel,
25885          children: image
25886        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25887          tagName: "figcaption",
25888          value: caption
25889        })]
25890      });
25891      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25892        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25893          className: classes
25894        }),
25895        children: figure
25896      });
25897    }
25898  };
25899  
25900  /**
25901   * Deprecation for adding width and height as style rules on the inner img.
25902   *
25903   * @see https://github.com/WordPress/gutenberg/pull/31366
25904   */
25905  const image_deprecated_v6 = {
25906    attributes: {
25907      align: {
25908        type: 'string'
25909      },
25910      url: {
25911        type: 'string',
25912        source: 'attribute',
25913        selector: 'img',
25914        attribute: 'src',
25915        role: 'content'
25916      },
25917      alt: {
25918        type: 'string',
25919        source: 'attribute',
25920        selector: 'img',
25921        attribute: 'alt',
25922        default: '',
25923        role: 'content'
25924      },
25925      caption: {
25926        type: 'string',
25927        source: 'html',
25928        selector: 'figcaption',
25929        role: 'content'
25930      },
25931      title: {
25932        type: 'string',
25933        source: 'attribute',
25934        selector: 'img',
25935        attribute: 'title',
25936        role: 'content'
25937      },
25938      href: {
25939        type: 'string',
25940        source: 'attribute',
25941        selector: 'figure > a',
25942        attribute: 'href',
25943        role: 'content'
25944      },
25945      rel: {
25946        type: 'string',
25947        source: 'attribute',
25948        selector: 'figure > a',
25949        attribute: 'rel'
25950      },
25951      linkClass: {
25952        type: 'string',
25953        source: 'attribute',
25954        selector: 'figure > a',
25955        attribute: 'class'
25956      },
25957      id: {
25958        type: 'number',
25959        role: 'content'
25960      },
25961      width: {
25962        type: 'number'
25963      },
25964      height: {
25965        type: 'number'
25966      },
25967      aspectRatio: {
25968        type: 'string'
25969      },
25970      scale: {
25971        type: 'string'
25972      },
25973      sizeSlug: {
25974        type: 'string'
25975      },
25976      linkDestination: {
25977        type: 'string'
25978      },
25979      linkTarget: {
25980        type: 'string',
25981        source: 'attribute',
25982        selector: 'figure > a',
25983        attribute: 'target'
25984      }
25985    },
25986    supports: {
25987      anchor: true,
25988      color: {
25989        text: false,
25990        background: false
25991      },
25992      filter: {
25993        duotone: true
25994      },
25995      __experimentalBorder: {
25996        color: true,
25997        radius: true,
25998        width: true,
25999        __experimentalSkipSerialization: true,
26000        __experimentalDefaultControls: {
26001          color: true,
26002          radius: true,
26003          width: true
26004        }
26005      }
26006    },
26007    migrate(attributes) {
26008      const {
26009        height,
26010        width
26011      } = attributes;
26012      return {
26013        ...attributes,
26014        width: typeof width === 'number' ? `$width}px` : width,
26015        height: typeof height === 'number' ? `$height}px` : height
26016      };
26017    },
26018    save({
26019      attributes
26020    }) {
26021      const {
26022        url,
26023        alt,
26024        caption,
26025        align,
26026        href,
26027        rel,
26028        linkClass,
26029        width,
26030        height,
26031        aspectRatio,
26032        scale,
26033        id,
26034        linkTarget,
26035        sizeSlug,
26036        title
26037      } = attributes;
26038      const newRel = !rel ? undefined : rel;
26039      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
26040      const classes = dist_clsx({
26041        [`align$align}`]: align,
26042        [`size-$sizeSlug}`]: sizeSlug,
26043        'is-resized': width || height,
26044        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
26045      });
26046      const imageClasses = dist_clsx(borderProps.className, {
26047        [`wp-image-$id}`]: !!id
26048      });
26049      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26050        src: url,
26051        alt: alt,
26052        className: imageClasses || undefined,
26053        style: {
26054          ...borderProps.style,
26055          aspectRatio,
26056          objectFit: scale
26057        },
26058        width: width,
26059        height: height,
26060        title: title
26061      });
26062      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26063        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26064          className: linkClass,
26065          href: href,
26066          target: linkTarget,
26067          rel: newRel,
26068          children: image
26069        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
26070          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
26071          tagName: "figcaption",
26072          value: caption
26073        })]
26074      });
26075      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
26076        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
26077          className: classes
26078        }),
26079        children: figure
26080      });
26081    }
26082  };
26083  
26084  /**
26085   * Deprecation for converting to string width and height block attributes and
26086   * removing the width and height img element attributes which are not needed
26087   * as they get added by the TODO hook.
26088   *
26089   * @see https://github.com/WordPress/gutenberg/pull/53274
26090   */
26091  const image_deprecated_v7 = {
26092    attributes: {
26093      align: {
26094        type: 'string'
26095      },
26096      url: {
26097        type: 'string',
26098        source: 'attribute',
26099        selector: 'img',
26100        attribute: 'src',
26101        role: 'content'
26102      },
26103      alt: {
26104        type: 'string',
26105        source: 'attribute',
26106        selector: 'img',
26107        attribute: 'alt',
26108        default: '',
26109        role: 'content'
26110      },
26111      caption: {
26112        type: 'string',
26113        source: 'html',
26114        selector: 'figcaption',
26115        role: 'content'
26116      },
26117      title: {
26118        type: 'string',
26119        source: 'attribute',
26120        selector: 'img',
26121        attribute: 'title',
26122        role: 'content'
26123      },
26124      href: {
26125        type: 'string',
26126        source: 'attribute',
26127        selector: 'figure > a',
26128        attribute: 'href',
26129        role: 'content'
26130      },
26131      rel: {
26132        type: 'string',
26133        source: 'attribute',
26134        selector: 'figure > a',
26135        attribute: 'rel'
26136      },
26137      linkClass: {
26138        type: 'string',
26139        source: 'attribute',
26140        selector: 'figure > a',
26141        attribute: 'class'
26142      },
26143      id: {
26144        type: 'number',
26145        role: 'content'
26146      },
26147      width: {
26148        type: 'number'
26149      },
26150      height: {
26151        type: 'number'
26152      },
26153      aspectRatio: {
26154        type: 'string'
26155      },
26156      scale: {
26157        type: 'string'
26158      },
26159      sizeSlug: {
26160        type: 'string'
26161      },
26162      linkDestination: {
26163        type: 'string'
26164      },
26165      linkTarget: {
26166        type: 'string',
26167        source: 'attribute',
26168        selector: 'figure > a',
26169        attribute: 'target'
26170      }
26171    },
26172    supports: {
26173      anchor: true,
26174      color: {
26175        text: false,
26176        background: false
26177      },
26178      filter: {
26179        duotone: true
26180      },
26181      __experimentalBorder: {
26182        color: true,
26183        radius: true,
26184        width: true,
26185        __experimentalSkipSerialization: true,
26186        __experimentalDefaultControls: {
26187          color: true,
26188          radius: true,
26189          width: true
26190        }
26191      }
26192    },
26193    migrate({
26194      width,
26195      height,
26196      ...attributes
26197    }) {
26198      return {
26199        ...attributes,
26200        width: `$width}px`,
26201        height: `$height}px`
26202      };
26203    },
26204    save({
26205      attributes
26206    }) {
26207      const {
26208        url,
26209        alt,
26210        caption,
26211        align,
26212        href,
26213        rel,
26214        linkClass,
26215        width,
26216        height,
26217        aspectRatio,
26218        scale,
26219        id,
26220        linkTarget,
26221        sizeSlug,
26222        title
26223      } = attributes;
26224      const newRel = !rel ? undefined : rel;
26225      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
26226      const classes = dist_clsx({
26227        [`align$align}`]: align,
26228        [`size-$sizeSlug}`]: sizeSlug,
26229        'is-resized': width || height,
26230        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
26231      });
26232      const imageClasses = dist_clsx(borderProps.className, {
26233        [`wp-image-$id}`]: !!id
26234      });
26235      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26236        src: url,
26237        alt: alt,
26238        className: imageClasses || undefined,
26239        style: {
26240          ...borderProps.style,
26241          aspectRatio,
26242          objectFit: scale,
26243          width,
26244          height
26245        },
26246        width: width,
26247        height: height,
26248        title: title
26249      });
26250      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26251        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26252          className: linkClass,
26253          href: href,
26254          target: linkTarget,
26255          rel: newRel,
26256          children: image
26257        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
26258          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
26259          tagName: "figcaption",
26260          value: caption
26261        })]
26262      });
26263      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
26264        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
26265          className: classes
26266        }),
26267        children: figure
26268      });
26269    }
26270  };
26271  const deprecated_v8 = {
26272    attributes: {
26273      align: {
26274        type: 'string'
26275      },
26276      behaviors: {
26277        type: 'object'
26278      },
26279      url: {
26280        type: 'string',
26281        source: 'attribute',
26282        selector: 'img',
26283        attribute: 'src',
26284        role: 'content'
26285      },
26286      alt: {
26287        type: 'string',
26288        source: 'attribute',
26289        selector: 'img',
26290        attribute: 'alt',
26291        default: '',
26292        role: 'content'
26293      },
26294      caption: {
26295        type: 'string',
26296        source: 'html',
26297        selector: 'figcaption',
26298        role: 'content'
26299      },
26300      title: {
26301        type: 'string',
26302        source: 'attribute',
26303        selector: 'img',
26304        attribute: 'title',
26305        role: 'content'
26306      },
26307      href: {
26308        type: 'string',
26309        source: 'attribute',
26310        selector: 'figure > a',
26311        attribute: 'href',
26312        role: 'content'
26313      },
26314      rel: {
26315        type: 'string',
26316        source: 'attribute',
26317        selector: 'figure > a',
26318        attribute: 'rel'
26319      },
26320      linkClass: {
26321        type: 'string',
26322        source: 'attribute',
26323        selector: 'figure > a',
26324        attribute: 'class'
26325      },
26326      id: {
26327        type: 'number',
26328        role: 'content'
26329      },
26330      width: {
26331        type: 'string'
26332      },
26333      height: {
26334        type: 'string'
26335      },
26336      aspectRatio: {
26337        type: 'string'
26338      },
26339      scale: {
26340        type: 'string'
26341      },
26342      sizeSlug: {
26343        type: 'string'
26344      },
26345      linkDestination: {
26346        type: 'string'
26347      },
26348      linkTarget: {
26349        type: 'string',
26350        source: 'attribute',
26351        selector: 'figure > a',
26352        attribute: 'target'
26353      }
26354    },
26355    supports: {
26356      anchor: true,
26357      color: {
26358        text: false,
26359        background: false
26360      },
26361      filter: {
26362        duotone: true
26363      },
26364      __experimentalBorder: {
26365        color: true,
26366        radius: true,
26367        width: true,
26368        __experimentalSkipSerialization: true,
26369        __experimentalDefaultControls: {
26370          color: true,
26371          radius: true,
26372          width: true
26373        }
26374      }
26375    },
26376    migrate({
26377      width,
26378      height,
26379      ...attributes
26380    }) {
26381      // We need to perform a check here because in cases
26382      // where attributes are added dynamically to blocks,
26383      // block invalidation overrides the isEligible() method
26384      // and forces the migration to run, so it's not guaranteed
26385      // that `behaviors` or `behaviors.lightbox` will be defined.
26386      if (!attributes.behaviors?.lightbox) {
26387        return attributes;
26388      }
26389      const {
26390        behaviors: {
26391          lightbox: {
26392            enabled
26393          }
26394        }
26395      } = attributes;
26396      const newAttributes = {
26397        ...attributes,
26398        lightbox: {
26399          enabled
26400        }
26401      };
26402      delete newAttributes.behaviors;
26403      return newAttributes;
26404    },
26405    isEligible(attributes) {
26406      return !!attributes.behaviors;
26407    },
26408    save({
26409      attributes
26410    }) {
26411      const {
26412        url,
26413        alt,
26414        caption,
26415        align,
26416        href,
26417        rel,
26418        linkClass,
26419        width,
26420        height,
26421        aspectRatio,
26422        scale,
26423        id,
26424        linkTarget,
26425        sizeSlug,
26426        title
26427      } = attributes;
26428      const newRel = !rel ? undefined : rel;
26429      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
26430      const classes = dist_clsx({
26431        [`align$align}`]: align,
26432        [`size-$sizeSlug}`]: sizeSlug,
26433        'is-resized': width || height,
26434        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
26435      });
26436      const imageClasses = dist_clsx(borderProps.className, {
26437        [`wp-image-$id}`]: !!id
26438      });
26439      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26440        src: url,
26441        alt: alt,
26442        className: imageClasses || undefined,
26443        style: {
26444          ...borderProps.style,
26445          aspectRatio,
26446          objectFit: scale,
26447          width,
26448          height
26449        },
26450        title: title
26451      });
26452      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26453        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26454          className: linkClass,
26455          href: href,
26456          target: linkTarget,
26457          rel: newRel,
26458          children: image
26459        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
26460          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
26461          tagName: "figcaption",
26462          value: caption
26463        })]
26464      });
26465      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
26466        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
26467          className: classes
26468        }),
26469        children: figure
26470      });
26471    }
26472  };
26473  /* 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]);
26474  
26475  ;// ./node_modules/@wordpress/icons/build-module/library/plugins.js
26476  /**
26477   * WordPress dependencies
26478   */
26479  
26480  
26481  const plugins = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26482    xmlns: "http://www.w3.org/2000/svg",
26483    viewBox: "0 0 24 24",
26484    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26485      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"
26486    })
26487  });
26488  /* harmony default export */ const library_plugins = (plugins);
26489  
26490  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
26491  /**
26492   * WordPress dependencies
26493   */
26494  
26495  
26496  const chevronDown = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26497    viewBox: "0 0 24 24",
26498    xmlns: "http://www.w3.org/2000/svg",
26499    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26500      d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
26501    })
26502  });
26503  /* harmony default export */ const chevron_down = (chevronDown);
26504  
26505  ;// ./node_modules/@wordpress/icons/build-module/library/crop.js
26506  /**
26507   * WordPress dependencies
26508   */
26509  
26510  
26511  const crop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26512    xmlns: "http://www.w3.org/2000/svg",
26513    viewBox: "0 0 24 24",
26514    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26515      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"
26516    })
26517  });
26518  /* harmony default export */ const library_crop = (crop);
26519  
26520  ;// ./node_modules/@wordpress/icons/build-module/library/overlay-text.js
26521  /**
26522   * WordPress dependencies
26523   */
26524  
26525  
26526  const overlayText = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26527    xmlns: "http://www.w3.org/2000/svg",
26528    viewBox: "0 0 24 24",
26529    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26530      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"
26531    })
26532  });
26533  /* harmony default export */ const overlay_text = (overlayText);
26534  
26535  ;// ./node_modules/@wordpress/icons/build-module/library/upload.js
26536  /**
26537   * WordPress dependencies
26538   */
26539  
26540  
26541  const upload = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26542    xmlns: "http://www.w3.org/2000/svg",
26543    viewBox: "0 0 24 24",
26544    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26545      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"
26546    })
26547  });
26548  /* harmony default export */ const library_upload = (upload);
26549  
26550  ;// ./node_modules/@wordpress/block-library/build-module/image/image.js
26551  /**
26552   * WordPress dependencies
26553   */
26554  
26555  
26556  
26557  
26558  
26559  
26560  
26561  
26562  
26563  
26564  
26565  
26566  
26567  /**
26568   * Internal dependencies
26569   */
26570  
26571  
26572  
26573  
26574  
26575  /**
26576   * Module constants
26577   */
26578  
26579  
26580  
26581  
26582  const {
26583    DimensionsTool,
26584    ResolutionTool: image_ResolutionTool
26585  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
26586  const scaleOptions = [{
26587    value: 'cover',
26588    label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for dimensions control'),
26589    help: (0,external_wp_i18n_namespaceObject.__)('Image covers the space evenly.')
26590  }, {
26591    value: 'contain',
26592    label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for dimensions control'),
26593    help: (0,external_wp_i18n_namespaceObject.__)('Image is contained without distortion.')
26594  }];
26595  const WRITEMODE_POPOVER_PROPS = {
26596    placement: 'bottom-start'
26597  };
26598  
26599  // If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.
26600  const ImageWrapper = ({
26601    href,
26602    children
26603  }) => {
26604    if (!href) {
26605      return children;
26606    }
26607    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26608      href: href,
26609      onClick: event => event.preventDefault(),
26610      "aria-disabled": true,
26611      style: {
26612        // When the Image block is linked,
26613        // it's wrapped with a disabled <a /> tag.
26614        // Restore cursor style so it doesn't appear 'clickable'
26615        // and remove pointer events. Safari needs the display property.
26616        pointerEvents: 'none',
26617        cursor: 'default',
26618        display: 'inline'
26619      },
26620      children: children
26621    });
26622  };
26623  function ContentOnlyControls({
26624    attributes,
26625    setAttributes,
26626    lockAltControls,
26627    lockAltControlsMessage,
26628    lockTitleControls,
26629    lockTitleControlsMessage
26630  }) {
26631    // Use internal state instead of a ref to make sure that the component
26632    // re-renders when the popover's anchor updates.
26633    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
26634    const [isAltDialogOpen, setIsAltDialogOpen] = (0,external_wp_element_namespaceObject.useState)(false);
26635    const [isTitleDialogOpen, setIsTitleDialogOpen] = (0,external_wp_element_namespaceObject.useState)(false);
26636    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26637      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarItem, {
26638        ref: setPopoverAnchor,
26639        children: toggleProps => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
26640          icon: chevron_down
26641          /* translators: button label text should, if possible, be under 16 characters. */,
26642          label: (0,external_wp_i18n_namespaceObject.__)('More'),
26643          toggleProps: {
26644            ...toggleProps,
26645            description: (0,external_wp_i18n_namespaceObject.__)('Displays more controls.')
26646          },
26647          popoverProps: WRITEMODE_POPOVER_PROPS,
26648          children: ({
26649            onClose
26650          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26651            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
26652              onClick: () => {
26653                setIsAltDialogOpen(true);
26654                onClose();
26655              },
26656              "aria-haspopup": "dialog",
26657              children: (0,external_wp_i18n_namespaceObject._x)('Alternative text', 'Alternative text for an image. Block toolbar label, a low character count is preferred.')
26658            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
26659              onClick: () => {
26660                setIsTitleDialogOpen(true);
26661                onClose();
26662              },
26663              "aria-haspopup": "dialog",
26664              children: (0,external_wp_i18n_namespaceObject.__)('Title text')
26665            })]
26666          })
26667        })
26668      }), isAltDialogOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover, {
26669        placement: "bottom-start",
26670        anchor: popoverAnchor,
26671        onClose: () => setIsAltDialogOpen(false),
26672        offset: 13,
26673        variant: "toolbar",
26674        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
26675          className: "wp-block-image__toolbar_content_textarea__container",
26676          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
26677            className: "wp-block-image__toolbar_content_textarea",
26678            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
26679            value: attributes.alt || '',
26680            onChange: value => setAttributes({
26681              alt: value
26682            }),
26683            disabled: lockAltControls,
26684            help: lockAltControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26685              children: lockAltControlsMessage
26686            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26687              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
26688                href:
26689                // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
26690                (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
26691                children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
26692              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
26693            }),
26694            __nextHasNoMarginBottom: true
26695          })
26696        })
26697      }), isTitleDialogOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover, {
26698        placement: "bottom-start",
26699        anchor: popoverAnchor,
26700        onClose: () => setIsTitleDialogOpen(false),
26701        offset: 13,
26702        variant: "toolbar",
26703        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
26704          className: "wp-block-image__toolbar_content_textarea__container",
26705          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
26706            __next40pxDefaultSize: true,
26707            className: "wp-block-image__toolbar_content_textarea",
26708            __nextHasNoMarginBottom: true,
26709            label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
26710            value: attributes.title || '',
26711            onChange: value => setAttributes({
26712              title: value
26713            }),
26714            disabled: lockTitleControls,
26715            help: lockTitleControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26716              children: lockTitleControlsMessage
26717            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26718              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, {
26719                href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute",
26720                children: (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')
26721              })]
26722            })
26723          })
26724        })
26725      })]
26726    });
26727  }
26728  function image_Image({
26729    temporaryURL,
26730    attributes,
26731    setAttributes,
26732    isSingleSelected,
26733    insertBlocksAfter,
26734    onReplace,
26735    onSelectImage,
26736    onSelectURL,
26737    onUploadError,
26738    context,
26739    clientId,
26740    blockEditingMode,
26741    parentLayoutType,
26742    maxContentWidth
26743  }) {
26744    const {
26745      url = '',
26746      alt,
26747      align,
26748      id,
26749      href,
26750      rel,
26751      linkClass,
26752      linkDestination,
26753      title,
26754      width,
26755      height,
26756      aspectRatio,
26757      scale,
26758      linkTarget,
26759      sizeSlug,
26760      lightbox,
26761      metadata
26762    } = attributes;
26763  
26764    // The only supported unit is px, so we can parseInt to strip the px here.
26765    const numericWidth = width ? parseInt(width, 10) : undefined;
26766    const numericHeight = height ? parseInt(height, 10) : undefined;
26767    const imageRef = (0,external_wp_element_namespaceObject.useRef)();
26768    const {
26769      allowResize = true
26770    } = context;
26771    const {
26772      getBlock,
26773      getSettings
26774    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
26775    const image = (0,external_wp_data_namespaceObject.useSelect)(select => id && isSingleSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(id, {
26776      context: 'view'
26777    }) : null, [id, isSingleSelected]);
26778    const {
26779      canInsertCover,
26780      imageEditing,
26781      imageSizes,
26782      maxWidth
26783    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
26784      const {
26785        getBlockRootClientId,
26786        canInsertBlockType
26787      } = select(external_wp_blockEditor_namespaceObject.store);
26788      const rootClientId = getBlockRootClientId(clientId);
26789      const settings = getSettings();
26790      return {
26791        imageEditing: settings.imageEditing,
26792        imageSizes: settings.imageSizes,
26793        maxWidth: settings.maxWidth,
26794        canInsertCover: canInsertBlockType('core/cover', rootClientId)
26795      };
26796    }, [clientId]);
26797    const {
26798      replaceBlocks,
26799      toggleSelection
26800    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
26801    const {
26802      createErrorNotice,
26803      createSuccessNotice
26804    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
26805    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
26806    const isWideAligned = ['wide', 'full'].includes(align);
26807    const [{
26808      loadedNaturalWidth,
26809      loadedNaturalHeight
26810    }, setLoadedNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
26811    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
26812    const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)();
26813    const [hasImageErrored, setHasImageErrored] = (0,external_wp_element_namespaceObject.useState)(false);
26814    const hasNonContentControls = blockEditingMode === 'default';
26815    const isContentOnlyMode = blockEditingMode === 'contentOnly';
26816    const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
26817    const imageSizeOptions = imageSizes.filter(({
26818      slug
26819    }) => image?.media_details?.sizes?.[slug]?.source_url).map(({
26820      name,
26821      slug
26822    }) => ({
26823      value: slug,
26824      label: name
26825    }));
26826  
26827    // If an image is externally hosted, try to fetch the image data. This may
26828    // fail if the image host doesn't allow CORS with the domain. If it works,
26829    // we can enable a button in the toolbar to upload the image.
26830    (0,external_wp_element_namespaceObject.useEffect)(() => {
26831      if (!isExternalImage(id, url) || !isSingleSelected || !getSettings().mediaUpload) {
26832        setExternalBlob();
26833        return;
26834      }
26835      if (externalBlob) {
26836        return;
26837      }
26838      window
26839      // Avoid cache, which seems to help avoid CORS problems.
26840      .fetch(url.includes('?') ? url : url + '?').then(response => response.blob()).then(blob => setExternalBlob(blob))
26841      // Do nothing, cannot upload.
26842      .catch(() => {});
26843    }, [id, url, isSingleSelected, externalBlob]);
26844  
26845    // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
26846    // width and height. This resolves an issue in Safari where the loaded natural
26847    // width and height is otherwise lost when switching between alignments.
26848    // See: https://github.com/WordPress/gutenberg/pull/37210.
26849    const {
26850      naturalWidth,
26851      naturalHeight
26852    } = (0,external_wp_element_namespaceObject.useMemo)(() => {
26853      return {
26854        naturalWidth: imageRef.current?.naturalWidth || loadedNaturalWidth || undefined,
26855        naturalHeight: imageRef.current?.naturalHeight || loadedNaturalHeight || undefined
26856      };
26857    }, [loadedNaturalWidth, loadedNaturalHeight, imageRef.current?.complete]);
26858    function onResizeStart() {
26859      toggleSelection(false);
26860    }
26861    function onResizeStop() {
26862      toggleSelection(true);
26863    }
26864    function onImageError() {
26865      setHasImageErrored(true);
26866  
26867      // Check if there's an embed block that handles this URL, e.g., instagram URL.
26868      // See: https://github.com/WordPress/gutenberg/pull/11472
26869      const embedBlock = createUpgradedEmbedBlock({
26870        attributes: {
26871          url
26872        }
26873      });
26874      if (undefined !== embedBlock) {
26875        onReplace(embedBlock);
26876      }
26877    }
26878    function onImageLoad(event) {
26879      setHasImageErrored(false);
26880      setLoadedNaturalSize({
26881        loadedNaturalWidth: event.target?.naturalWidth,
26882        loadedNaturalHeight: event.target?.naturalHeight
26883      });
26884    }
26885    function onSetHref(props) {
26886      setAttributes(props);
26887    }
26888    function onSetLightbox(enable) {
26889      if (enable && !lightboxSetting?.enabled) {
26890        setAttributes({
26891          lightbox: {
26892            enabled: true
26893          }
26894        });
26895      } else if (!enable && lightboxSetting?.enabled) {
26896        setAttributes({
26897          lightbox: {
26898            enabled: false
26899          }
26900        });
26901      } else {
26902        setAttributes({
26903          lightbox: undefined
26904        });
26905      }
26906    }
26907    function resetLightbox() {
26908      // When deleting a link from an image while lightbox settings
26909      // are enabled by default, we should disable the lightbox,
26910      // otherwise the resulting UX looks like a mistake.
26911      // See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.
26912      if (lightboxSetting?.enabled && lightboxSetting?.allowEditing) {
26913        setAttributes({
26914          lightbox: {
26915            enabled: false
26916          }
26917        });
26918      } else {
26919        setAttributes({
26920          lightbox: undefined
26921        });
26922      }
26923    }
26924    function onSetTitle(value) {
26925      // This is the HTML title attribute, separate from the media object
26926      // title.
26927      setAttributes({
26928        title: value
26929      });
26930    }
26931    function updateAlt(newAlt) {
26932      setAttributes({
26933        alt: newAlt
26934      });
26935    }
26936    function updateImage(newSizeSlug) {
26937      const newUrl = image?.media_details?.sizes?.[newSizeSlug]?.source_url;
26938      if (!newUrl) {
26939        return null;
26940      }
26941      setAttributes({
26942        url: newUrl,
26943        sizeSlug: newSizeSlug
26944      });
26945    }
26946    function uploadExternal() {
26947      const {
26948        mediaUpload
26949      } = getSettings();
26950      if (!mediaUpload) {
26951        return;
26952      }
26953      mediaUpload({
26954        filesList: [externalBlob],
26955        onFileChange([img]) {
26956          onSelectImage(img);
26957          if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) {
26958            return;
26959          }
26960          setExternalBlob();
26961          createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded.'), {
26962            type: 'snackbar'
26963          });
26964        },
26965        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
26966        onError(message) {
26967          createErrorNotice(message, {
26968            type: 'snackbar'
26969          });
26970        }
26971      });
26972    }
26973    (0,external_wp_element_namespaceObject.useEffect)(() => {
26974      if (!isSingleSelected) {
26975        setIsEditingImage(false);
26976      }
26977    }, [isSingleSelected]);
26978    const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
26979    const allowCrop = isSingleSelected && canEditImage && !isEditingImage && !isContentOnlyMode;
26980    function switchToCover() {
26981      replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), 'core/cover'));
26982    }
26983  
26984    // TODO: Can allow more units after figuring out how they should interact
26985    // with the ResizableBox and ImageEditor components. Calculations later on
26986    // for those components are currently assuming px units.
26987    const dimensionsUnitsOptions = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
26988      availableUnits: ['px']
26989    });
26990    const [lightboxSetting] = (0,external_wp_blockEditor_namespaceObject.useSettings)('lightbox');
26991    const showLightboxSetting =
26992    // If a block-level override is set, we should give users the option to
26993    // remove that override, even if the lightbox UI is disabled in the settings.
26994    !!lightbox && lightbox?.enabled !== lightboxSetting?.enabled || lightboxSetting?.allowEditing;
26995    const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
26996    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
26997    const dimensionsControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionsTool, {
26998      value: {
26999        width,
27000        height,
27001        scale,
27002        aspectRatio
27003      },
27004      onChange: ({
27005        width: newWidth,
27006        height: newHeight,
27007        scale: newScale,
27008        aspectRatio: newAspectRatio
27009      }) => {
27010        // Rebuilding the object forces setting `undefined`
27011        // for values that are removed since setAttributes
27012        // doesn't do anything with keys that aren't set.
27013        setAttributes({
27014          // CSS includes `height: auto`, but we need
27015          // `width: auto` to fix the aspect ratio when
27016          // only height is set due to the width and
27017          // height attributes set via the server.
27018          width: !newWidth && newHeight ? 'auto' : newWidth,
27019          height: newHeight,
27020          scale: newScale,
27021          aspectRatio: newAspectRatio
27022        });
27023      },
27024      defaultScale: "cover",
27025      defaultAspectRatio: "auto",
27026      scaleOptions: scaleOptions,
27027      unitsOptions: dimensionsUnitsOptions
27028    });
27029    const aspectRatioControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionsTool, {
27030      value: {
27031        aspectRatio
27032      },
27033      onChange: ({
27034        aspectRatio: newAspectRatio
27035      }) => {
27036        setAttributes({
27037          aspectRatio: newAspectRatio,
27038          scale: 'cover'
27039        });
27040      },
27041      defaultAspectRatio: "auto",
27042      tools: ['aspectRatio']
27043    });
27044    const resetAll = () => {
27045      setAttributes({
27046        alt: undefined,
27047        width: undefined,
27048        height: undefined,
27049        scale: undefined,
27050        aspectRatio: undefined,
27051        lightbox: undefined
27052      });
27053    };
27054    const sizeControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27055      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
27056        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
27057        resetAll: resetAll,
27058        dropdownMenuProps: dropdownMenuProps,
27059        children: isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl)
27060      })
27061    });
27062    const arePatternOverridesEnabled = metadata?.bindings?.__default?.source === 'core/pattern-overrides';
27063    const {
27064      lockUrlControls = false,
27065      lockHrefControls = false,
27066      lockAltControls = false,
27067      lockAltControlsMessage,
27068      lockTitleControls = false,
27069      lockTitleControlsMessage,
27070      lockCaption = false
27071    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27072      if (!isSingleSelected) {
27073        return {};
27074      }
27075      const {
27076        url: urlBinding,
27077        alt: altBinding,
27078        title: titleBinding
27079      } = metadata?.bindings || {};
27080      const hasParentPattern = !!context['pattern/overrides'];
27081      const urlBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(urlBinding?.source);
27082      const altBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(altBinding?.source);
27083      const titleBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(titleBinding?.source);
27084      return {
27085        lockUrlControls: !!urlBinding && !urlBindingSource?.canUserEditValue?.({
27086          select,
27087          context,
27088          args: urlBinding?.args
27089        }),
27090        lockHrefControls:
27091        // Disable editing the link of the URL if the image is inside a pattern instance.
27092        // This is a temporary solution until we support overriding the link on the frontend.
27093        hasParentPattern || arePatternOverridesEnabled,
27094        lockCaption:
27095        // Disable editing the caption if the image is inside a pattern instance.
27096        // This is a temporary solution until we support overriding the caption on the frontend.
27097        hasParentPattern,
27098        lockAltControls: !!altBinding && !altBindingSource?.canUserEditValue?.({
27099          select,
27100          context,
27101          args: altBinding?.args
27102        }),
27103        lockAltControlsMessage: altBindingSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the bindings source. */
27104        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), altBindingSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data'),
27105        lockTitleControls: !!titleBinding && !titleBindingSource?.canUserEditValue?.({
27106          select,
27107          context,
27108          args: titleBinding?.args
27109        }),
27110        lockTitleControlsMessage: titleBindingSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the bindings source. */
27111        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), titleBindingSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data')
27112      };
27113    }, [arePatternOverridesEnabled, context, isSingleSelected, metadata?.bindings]);
27114    const showUrlInput = isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls;
27115    const showCoverControls = isSingleSelected && canInsertCover;
27116    const showBlockControls = showUrlInput || allowCrop || showCoverControls;
27117    const mediaReplaceFlow = isSingleSelected && !isEditingImage && !lockUrlControls &&
27118    /*#__PURE__*/
27119    // For contentOnly mode, put this button in its own area so it has borders around it.
27120    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
27121      group: isContentOnlyMode ? 'inline' : 'other',
27122      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
27123        mediaId: id,
27124        mediaURL: url,
27125        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27126        accept: "image/*",
27127        onSelect: onSelectImage,
27128        onSelectURL: onSelectURL,
27129        onError: onUploadError,
27130        name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add image') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
27131        onReset: () => onSelectImage(undefined)
27132      })
27133    });
27134    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27135      children: [showBlockControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
27136        group: "block",
27137        children: [showUrlInput && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
27138          url: href || '',
27139          onChangeUrl: onSetHref,
27140          linkDestination: linkDestination,
27141          mediaUrl: image && image.source_url || url,
27142          mediaLink: image && image.link,
27143          linkTarget: linkTarget,
27144          linkClass: linkClass,
27145          rel: rel,
27146          showLightboxSetting: showLightboxSetting,
27147          lightboxEnabled: lightboxChecked,
27148          onSetLightbox: onSetLightbox,
27149          resetLightbox: resetLightbox
27150        }), allowCrop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
27151          onClick: () => setIsEditingImage(true),
27152          icon: library_crop,
27153          label: (0,external_wp_i18n_namespaceObject.__)('Crop')
27154        }), showCoverControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
27155          icon: overlay_text,
27156          label: (0,external_wp_i18n_namespaceObject.__)('Add text over image'),
27157          onClick: switchToCover
27158        })]
27159      }), isSingleSelected && externalBlob && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
27160        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
27161          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
27162            onClick: uploadExternal,
27163            icon: library_upload,
27164            label: (0,external_wp_i18n_namespaceObject.__)('Upload to Media Library')
27165          })
27166        })
27167      }), isContentOnlyMode &&
27168      /*#__PURE__*/
27169      // Add some extra controls for content attributes when content only mode is active.
27170      // With content only mode active, the inspector is hidden, so users need another way
27171      // to edit these attributes.
27172      (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
27173        group: "block",
27174        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ContentOnlyControls, {
27175          attributes: attributes,
27176          setAttributes: setAttributes,
27177          lockAltControls: lockAltControls,
27178          lockAltControlsMessage: lockAltControlsMessage,
27179          lockTitleControls: lockTitleControls,
27180          lockTitleControlsMessage: lockTitleControlsMessage
27181        })
27182      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27183        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
27184          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
27185          resetAll: resetAll,
27186          dropdownMenuProps: dropdownMenuProps,
27187          children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
27188            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
27189            isShownByDefault: true,
27190            hasValue: () => !!alt,
27191            onDeselect: () => setAttributes({
27192              alt: undefined
27193            }),
27194            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
27195              label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
27196              value: alt || '',
27197              onChange: updateAlt,
27198              readOnly: lockAltControls,
27199              help: lockAltControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27200                children: lockAltControlsMessage
27201              }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27202                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
27203                  href:
27204                  // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
27205                  (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
27206                  children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
27207                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
27208              }),
27209              __nextHasNoMarginBottom: true
27210            })
27211          }), isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl), !!imageSizeOptions.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(image_ResolutionTool, {
27212            value: sizeSlug,
27213            onChange: updateImage,
27214            options: imageSizeOptions
27215          })]
27216        })
27217      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27218        group: "advanced",
27219        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
27220          __nextHasNoMarginBottom: true,
27221          __next40pxDefaultSize: true,
27222          label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
27223          value: title || '',
27224          onChange: onSetTitle,
27225          readOnly: lockTitleControls,
27226          help: lockTitleControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27227            children: lockTitleControlsMessage
27228          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27229            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, {
27230              href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute",
27231              children: (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')
27232            })]
27233          })
27234        })
27235      })]
27236    });
27237    const filename = (0,external_wp_url_namespaceObject.getFilename)(url);
27238    let defaultedAlt;
27239    if (alt) {
27240      defaultedAlt = alt;
27241    } else if (filename) {
27242      defaultedAlt = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: file name */
27243      (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute; its file name is %s'), filename);
27244    } else {
27245      defaultedAlt = (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute');
27246    }
27247    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
27248    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27249    const isRounded = attributes.className?.includes('is-style-rounded');
27250    const {
27251      postType,
27252      postId,
27253      queryId
27254    } = context;
27255    const isDescendentOfQueryLoop = Number.isFinite(queryId);
27256    const [, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
27257    let img = temporaryURL && hasImageErrored ?
27258    /*#__PURE__*/
27259    // Show a placeholder during upload when the blob URL can't be loaded. This can
27260    // happen when the user uploads a HEIC image in a browser that doesn't support them.
27261    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
27262      className: "wp-block-image__placeholder",
27263      withIllustration: true,
27264      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
27265    }) :
27266    /*#__PURE__*/
27267    // Disable reason: Image itself is not meant to be interactive, but
27268    // should direct focus to block.
27269    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
27270    (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27271      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27272        src: temporaryURL || url,
27273        alt: defaultedAlt,
27274        onError: onImageError,
27275        onLoad: onImageLoad,
27276        ref: imageRef,
27277        className: borderProps.className,
27278        style: {
27279          width: width && height || aspectRatio ? '100%' : undefined,
27280          height: width && height || aspectRatio ? '100%' : undefined,
27281          objectFit: scale,
27282          ...borderProps.style,
27283          ...shadowProps.style
27284        }
27285      }), temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
27286    })
27287    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
27288    if (canEditImage && isEditingImage) {
27289      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
27290        href: href,
27291        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
27292          id: id,
27293          url: url,
27294          width: numericWidth,
27295          height: numericHeight,
27296          naturalHeight: naturalHeight,
27297          naturalWidth: naturalWidth,
27298          onSaveImage: imageAttributes => setAttributes(imageAttributes),
27299          onFinishEditing: () => {
27300            setIsEditingImage(false);
27301          },
27302          borderProps: isRounded ? undefined : borderProps
27303        })
27304      });
27305    } else if (!isResizable || parentLayoutType === 'grid') {
27306      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
27307        style: {
27308          width,
27309          height,
27310          aspectRatio
27311        },
27312        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
27313          href: href,
27314          children: img
27315        })
27316      });
27317    } else {
27318      const numericRatio = aspectRatio && evalAspectRatio(aspectRatio);
27319      const customRatio = numericWidth / numericHeight;
27320      const naturalRatio = naturalWidth / naturalHeight;
27321      const ratio = numericRatio || customRatio || naturalRatio || 1;
27322      const currentWidth = !numericWidth && numericHeight ? numericHeight * ratio : numericWidth;
27323      const currentHeight = !numericHeight && numericWidth ? numericWidth / ratio : numericHeight;
27324      const minWidth = naturalWidth < naturalHeight ? constants_MIN_SIZE : constants_MIN_SIZE * ratio;
27325      const minHeight = naturalHeight < naturalWidth ? constants_MIN_SIZE : constants_MIN_SIZE / ratio;
27326  
27327      // With the current implementation of ResizableBox, an image needs an
27328      // explicit pixel value for the max-width. In absence of being able to
27329      // set the content-width, this max-width is currently dictated by the
27330      // vanilla editor style. The following variable adds a buffer to this
27331      // vanilla style, so 3rd party themes have some wiggleroom. This does,
27332      // in most cases, allow you to scale the image beyond the width of the
27333      // main column, though not infinitely.
27334      // @todo It would be good to revisit this once a content-width variable
27335      // becomes available.
27336      const maxWidthBuffer = maxWidth * 2.5;
27337      const maxResizeWidth = maxContentWidth || maxWidthBuffer;
27338      let showRightHandle = false;
27339      let showLeftHandle = false;
27340  
27341      /* eslint-disable no-lonely-if */
27342      // See https://github.com/WordPress/gutenberg/issues/7584.
27343      if (align === 'center') {
27344        // When the image is centered, show both handles.
27345        showRightHandle = true;
27346        showLeftHandle = true;
27347      } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
27348        // In RTL mode the image is on the right by default.
27349        // Show the right handle and hide the left handle only when it is
27350        // aligned left. Otherwise always show the left handle.
27351        if (align === 'left') {
27352          showRightHandle = true;
27353        } else {
27354          showLeftHandle = true;
27355        }
27356      } else {
27357        // Show the left handle and hide the right handle only when the
27358        // image is aligned right. Otherwise always show the right handle.
27359        if (align === 'right') {
27360          showLeftHandle = true;
27361        } else {
27362          showRightHandle = true;
27363        }
27364      }
27365      /* eslint-enable no-lonely-if */
27366      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
27367        style: {
27368          display: 'block',
27369          objectFit: scale,
27370          aspectRatio: !width && !height && aspectRatio ? aspectRatio : undefined
27371        },
27372        size: {
27373          width: currentWidth !== null && currentWidth !== void 0 ? currentWidth : 'auto',
27374          height: currentHeight !== null && currentHeight !== void 0 ? currentHeight : 'auto'
27375        },
27376        showHandle: isSingleSelected,
27377        minWidth: minWidth,
27378        maxWidth: maxResizeWidth,
27379        minHeight: minHeight,
27380        maxHeight: maxResizeWidth / ratio,
27381        lockAspectRatio: ratio,
27382        enable: {
27383          top: false,
27384          right: showRightHandle,
27385          bottom: true,
27386          left: showLeftHandle
27387        },
27388        onResizeStart: onResizeStart,
27389        onResizeStop: (event, direction, elt) => {
27390          onResizeStop();
27391  
27392          // Clear hardcoded width if the resized width is close to the max-content width.
27393          if (maxContentWidth &&
27394          // Only do this if the image is bigger than the container to prevent it from being squished.
27395          // TODO: Remove this check if the image support setting 100% width.
27396          naturalWidth >= maxContentWidth && Math.abs(elt.offsetWidth - maxContentWidth) < 10) {
27397            setAttributes({
27398              width: undefined,
27399              height: undefined
27400            });
27401            return;
27402          }
27403  
27404          // Since the aspect ratio is locked when resizing, we can
27405          // use the width of the resized element to calculate the
27406          // height in CSS to prevent stretching when the max-width
27407          // is reached.
27408          setAttributes({
27409            width: `$elt.offsetWidth}px`,
27410            height: 'auto',
27411            aspectRatio: ratio === naturalRatio ? undefined : String(ratio)
27412          });
27413        },
27414        resizeRatio: align === 'center' ? 2 : 1,
27415        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
27416          href: href,
27417          children: img
27418        })
27419      });
27420    }
27421    if (!url && !temporaryURL) {
27422      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27423        children: [mediaReplaceFlow, metadata?.bindings ? controls : sizeControls]
27424      });
27425    }
27426  
27427    /**
27428     * Set the post's featured image with the current image.
27429     */
27430    const setPostFeatureImage = () => {
27431      setFeaturedImage(id);
27432      createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Post featured image updated.'), {
27433        type: 'snackbar'
27434      });
27435    };
27436    const featuredImageControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
27437      children: ({
27438        selectedClientIds
27439      }) => selectedClientIds.length === 1 && !isDescendentOfQueryLoop && postId && id && clientId === selectedClientIds[0] && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
27440        onClick: setPostFeatureImage,
27441        children: (0,external_wp_i18n_namespaceObject.__)('Set as featured image')
27442      })
27443    });
27444    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27445      children: [mediaReplaceFlow, controls, featuredImageControl, img, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
27446        attributes: attributes,
27447        setAttributes: setAttributes,
27448        isSelected: isSingleSelected,
27449        insertBlocksAfter: insertBlocksAfter,
27450        label: (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
27451        showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
27452        readOnly: lockCaption
27453      })]
27454    });
27455  }
27456  
27457  ;// ./node_modules/@wordpress/block-library/build-module/image/use-max-width-observer.js
27458  /**
27459   * WordPress dependencies
27460   */
27461  
27462  
27463  
27464  function useMaxWidthObserver() {
27465    const [contentResizeListener, {
27466      width
27467    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
27468    const observerRef = (0,external_wp_element_namespaceObject.useRef)();
27469    const maxWidthObserver = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
27470      // Some themes set max-width on blocks.
27471      className: "wp-block",
27472      "aria-hidden": "true",
27473      style: {
27474        position: 'absolute',
27475        inset: 0,
27476        width: '100%',
27477        height: 0,
27478        margin: 0
27479      },
27480      ref: observerRef,
27481      children: contentResizeListener
27482    });
27483    return [maxWidthObserver, width];
27484  }
27485  
27486  
27487  ;// ./node_modules/@wordpress/block-library/build-module/image/edit.js
27488  /**
27489   * External dependencies
27490   */
27491  
27492  
27493  /**
27494   * WordPress dependencies
27495   */
27496  
27497  
27498  
27499  
27500  
27501  
27502  
27503  
27504  
27505  
27506  
27507  /**
27508   * Internal dependencies
27509   */
27510  
27511  
27512  
27513  
27514  
27515  /**
27516   * Module constants
27517   */
27518  
27519  
27520  const edit_pickRelevantMediaFiles = (image, size) => {
27521    const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link', 'caption'].includes(key)));
27522    imageProps.url = image?.sizes?.[size]?.url || image?.media_details?.sizes?.[size]?.source_url || image.url;
27523    return imageProps;
27524  };
27525  
27526  /**
27527   * Is the url for the image hosted externally. An externally hosted image has no
27528   * id and is not a blob url.
27529   *
27530   * @param {number=} id  The id of the image.
27531   * @param {string=} url The url of the image.
27532   *
27533   * @return {boolean} Is the url an externally hosted url?
27534   */
27535  const isExternalImage = (id, url) => url && !id && !(0,external_wp_blob_namespaceObject.isBlobURL)(url);
27536  
27537  /**
27538   * Checks if WP generated the specified image size. Size generation is skipped
27539   * when the image is smaller than the said size.
27540   *
27541   * @param {Object} image
27542   * @param {string} size
27543   *
27544   * @return {boolean} Whether or not it has default image size.
27545   */
27546  function hasSize(image, size) {
27547    var _image$sizes$size, _image$media_details$;
27548    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$ : {});
27549  }
27550  function ImageEdit({
27551    attributes,
27552    setAttributes,
27553    isSelected: isSingleSelected,
27554    className,
27555    insertBlocksAfter,
27556    onReplace,
27557    context,
27558    clientId,
27559    __unstableParentLayout: parentLayout
27560  }) {
27561    const {
27562      url = '',
27563      alt,
27564      caption,
27565      id,
27566      width,
27567      height,
27568      sizeSlug,
27569      aspectRatio,
27570      scale,
27571      align,
27572      metadata
27573    } = attributes;
27574    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
27575    const containerRef = (0,external_wp_element_namespaceObject.useRef)();
27576    // Only observe the max width from the parent container when the parent layout is not flex nor grid.
27577    // This won't work for them because the container width changes with the image.
27578    // TODO: Find a way to observe the container width for flex and grid layouts.
27579    const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
27580    const [maxWidthObserver, maxContentWidth] = useMaxWidthObserver();
27581    const [placeholderResizeListener, {
27582      width: placeholderWidth
27583    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
27584    const isSmallContainer = placeholderWidth && placeholderWidth < 160;
27585    const altRef = (0,external_wp_element_namespaceObject.useRef)();
27586    (0,external_wp_element_namespaceObject.useEffect)(() => {
27587      altRef.current = alt;
27588    }, [alt]);
27589    const captionRef = (0,external_wp_element_namespaceObject.useRef)();
27590    (0,external_wp_element_namespaceObject.useEffect)(() => {
27591      captionRef.current = caption;
27592    }, [caption]);
27593    const {
27594      __unstableMarkNextChangeAsNotPersistent,
27595      replaceBlock
27596    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
27597    (0,external_wp_element_namespaceObject.useEffect)(() => {
27598      if (['wide', 'full'].includes(align)) {
27599        __unstableMarkNextChangeAsNotPersistent();
27600        setAttributes({
27601          width: undefined,
27602          height: undefined,
27603          aspectRatio: undefined,
27604          scale: undefined
27605        });
27606      }
27607    }, [__unstableMarkNextChangeAsNotPersistent, align, setAttributes]);
27608    const {
27609      getSettings,
27610      getBlockRootClientId,
27611      getBlockName,
27612      canInsertBlockType
27613    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
27614    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
27615    const {
27616      createErrorNotice
27617    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
27618    function onUploadError(message) {
27619      createErrorNotice(message, {
27620        type: 'snackbar'
27621      });
27622      setAttributes({
27623        src: undefined,
27624        id: undefined,
27625        url: undefined,
27626        blob: undefined
27627      });
27628    }
27629    function onSelectImagesList(images) {
27630      const win = containerRef.current?.ownerDocument.defaultView;
27631      if (images.every(file => file instanceof win.File)) {
27632        /** @type {File[]} */
27633        const files = images;
27634        const rootClientId = getBlockRootClientId(clientId);
27635        if (files.some(file => !isValidFileType(file))) {
27636          // Copied from the same notice in the gallery block.
27637          createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
27638            id: 'gallery-upload-invalid-file',
27639            type: 'snackbar'
27640          });
27641        }
27642        const imageBlocks = files.filter(file => isValidFileType(file)).map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
27643          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
27644        }));
27645        if (getBlockName(rootClientId) === 'core/gallery') {
27646          replaceBlock(clientId, imageBlocks);
27647        } else if (canInsertBlockType('core/gallery', rootClientId)) {
27648          const galleryBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, imageBlocks);
27649          replaceBlock(clientId, galleryBlock);
27650        }
27651      }
27652    }
27653    function onSelectImage(media) {
27654      if (Array.isArray(media)) {
27655        onSelectImagesList(media);
27656        return;
27657      }
27658      if (!media || !media.url) {
27659        setAttributes({
27660          url: undefined,
27661          alt: undefined,
27662          id: undefined,
27663          title: undefined,
27664          caption: undefined,
27665          blob: undefined
27666        });
27667        setTemporaryURL();
27668        return;
27669      }
27670      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
27671        setTemporaryURL(media.url);
27672        return;
27673      }
27674      const {
27675        imageDefaultSize
27676      } = getSettings();
27677  
27678      // Try to use the previous selected image size if its available
27679      // otherwise try the default image size or fallback to "full"
27680      let newSize = 'full';
27681      if (sizeSlug && hasSize(media, sizeSlug)) {
27682        newSize = sizeSlug;
27683      } else if (hasSize(media, imageDefaultSize)) {
27684        newSize = imageDefaultSize;
27685      }
27686      let mediaAttributes = edit_pickRelevantMediaFiles(media, newSize);
27687  
27688      // If a caption text was meanwhile written by the user,
27689      // make sure the text is not overwritten by empty captions.
27690      if (captionRef.current && !mediaAttributes.caption) {
27691        const {
27692          caption: omittedCaption,
27693          ...restMediaAttributes
27694        } = mediaAttributes;
27695        mediaAttributes = restMediaAttributes;
27696      }
27697      let additionalAttributes;
27698      // Reset the dimension attributes if changing to a different image.
27699      if (!media.id || media.id !== id) {
27700        additionalAttributes = {
27701          sizeSlug: newSize
27702        };
27703      } else {
27704        // Keep the same url when selecting the same file, so "Resolution"
27705        // option is not changed.
27706        additionalAttributes = {
27707          url
27708        };
27709      }
27710  
27711      // Check if default link setting should be used.
27712      let linkDestination = attributes.linkDestination;
27713      if (!linkDestination) {
27714        // Use the WordPress option to determine the proper default.
27715        // The constants used in Gutenberg do not match WP options so a little more complicated than ideal.
27716        // TODO: fix this in a follow up PR, requires updating media-text and ui component.
27717        switch (window?.wp?.media?.view?.settings?.defaultProps?.link || constants_LINK_DESTINATION_NONE) {
27718          case 'file':
27719          case constants_LINK_DESTINATION_MEDIA:
27720            linkDestination = constants_LINK_DESTINATION_MEDIA;
27721            break;
27722          case 'post':
27723          case constants_LINK_DESTINATION_ATTACHMENT:
27724            linkDestination = constants_LINK_DESTINATION_ATTACHMENT;
27725            break;
27726          case LINK_DESTINATION_CUSTOM:
27727            linkDestination = LINK_DESTINATION_CUSTOM;
27728            break;
27729          case constants_LINK_DESTINATION_NONE:
27730            linkDestination = constants_LINK_DESTINATION_NONE;
27731            break;
27732        }
27733      }
27734  
27735      // Check if the image is linked to it's media.
27736      let href;
27737      switch (linkDestination) {
27738        case constants_LINK_DESTINATION_MEDIA:
27739          href = media.url;
27740          break;
27741        case constants_LINK_DESTINATION_ATTACHMENT:
27742          href = media.link;
27743          break;
27744      }
27745      mediaAttributes.href = href;
27746      setAttributes({
27747        blob: undefined,
27748        ...mediaAttributes,
27749        ...additionalAttributes,
27750        linkDestination
27751      });
27752      setTemporaryURL();
27753    }
27754    function onSelectURL(newURL) {
27755      if (newURL !== url) {
27756        setAttributes({
27757          blob: undefined,
27758          url: newURL,
27759          id: undefined,
27760          sizeSlug: getSettings().imageDefaultSize
27761        });
27762        setTemporaryURL();
27763      }
27764    }
27765    useUploadMediaFromBlobURL({
27766      url: temporaryURL,
27767      allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27768      onChange: onSelectImage,
27769      onError: onUploadError
27770    });
27771    const isExternal = isExternalImage(id, url);
27772    const src = isExternal ? url : undefined;
27773    const mediaPreview = !!url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27774      alt: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
27775      title: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
27776      className: "edit-image-preview",
27777      src: url
27778    });
27779    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
27780    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27781    const classes = dist_clsx(className, {
27782      'is-transient': !!temporaryURL,
27783      'is-resized': !!width || !!height,
27784      [`size-$sizeSlug}`]: sizeSlug,
27785      'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
27786    });
27787    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
27788      ref: containerRef,
27789      className: classes
27790    });
27791  
27792    // Much of this description is duplicated from MediaPlaceholder.
27793    const {
27794      lockUrlControls = false,
27795      lockUrlControlsMessage
27796    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27797      if (!isSingleSelected) {
27798        return {};
27799      }
27800      const blockBindingsSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(metadata?.bindings?.url?.source);
27801      return {
27802        lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue?.({
27803          select,
27804          context,
27805          args: metadata?.bindings?.url?.args
27806        }),
27807        lockUrlControlsMessage: blockBindingsSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the bindings source. */
27808        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), blockBindingsSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data')
27809      };
27810    }, [context, isSingleSelected, metadata?.bindings?.url]);
27811    const placeholder = content => {
27812      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
27813        className: dist_clsx('block-editor-media-placeholder', {
27814          [borderProps.className]: !!borderProps.className && !isSingleSelected
27815        }),
27816        icon: !isSmallContainer && (lockUrlControls ? library_plugins : library_image),
27817        withIllustration: !isSingleSelected || isSmallContainer,
27818        label: !isSmallContainer && (0,external_wp_i18n_namespaceObject.__)('Image'),
27819        instructions: !lockUrlControls && !isSmallContainer && (0,external_wp_i18n_namespaceObject.__)('Drag and drop an image, upload, or choose from your library.'),
27820        style: {
27821          aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
27822          width: height && aspectRatio ? '100%' : width,
27823          height: width && aspectRatio ? '100%' : height,
27824          objectFit: scale,
27825          ...borderProps.style,
27826          ...shadowProps.style
27827        },
27828        children: [lockUrlControls && !isSmallContainer && lockUrlControlsMessage, !lockUrlControls && !isSmallContainer && content, placeholderResizeListener]
27829      });
27830    };
27831    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27832      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
27833        ...blockProps,
27834        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(image_Image, {
27835          temporaryURL: temporaryURL,
27836          attributes: attributes,
27837          setAttributes: setAttributes,
27838          isSingleSelected: isSingleSelected,
27839          insertBlocksAfter: insertBlocksAfter,
27840          onReplace: onReplace,
27841          onSelectImage: onSelectImage,
27842          onSelectURL: onSelectURL,
27843          onUploadError: onUploadError,
27844          context: context,
27845          clientId: clientId,
27846          blockEditingMode: blockEditingMode,
27847          parentLayoutType: parentLayout?.type,
27848          maxContentWidth: maxContentWidth
27849        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
27850          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
27851            icon: library_image
27852          }),
27853          onSelect: onSelectImage,
27854          onSelectURL: onSelectURL,
27855          onError: onUploadError,
27856          placeholder: placeholder,
27857          accept: "image/*",
27858          allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27859          handleUpload: files => files.length === 1,
27860          value: {
27861            id,
27862            src
27863          },
27864          mediaPreview: mediaPreview,
27865          disableMediaButtons: temporaryURL || url
27866        })]
27867      }),
27868      // The listener cannot be placed as the first element as it will break the in-between inserter.
27869      // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
27870      isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver]
27871    });
27872  }
27873  /* harmony default export */ const image_edit = (ImageEdit);
27874  
27875  ;// ./node_modules/@wordpress/block-library/build-module/image/save.js
27876  /**
27877   * External dependencies
27878   */
27879  
27880  
27881  /**
27882   * WordPress dependencies
27883   */
27884  
27885  
27886  function image_save_save({
27887    attributes
27888  }) {
27889    const {
27890      url,
27891      alt,
27892      caption,
27893      align,
27894      href,
27895      rel,
27896      linkClass,
27897      width,
27898      height,
27899      aspectRatio,
27900      scale,
27901      id,
27902      linkTarget,
27903      sizeSlug,
27904      title
27905    } = attributes;
27906    const newRel = !rel ? undefined : rel;
27907    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
27908    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27909    const classes = dist_clsx({
27910      // All other align classes are handled by block supports.
27911      // `{ align: 'none' }` is unique to transforms for the image block.
27912      alignnone: 'none' === align,
27913      [`size-$sizeSlug}`]: sizeSlug,
27914      'is-resized': width || height,
27915      'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
27916    });
27917    const imageClasses = dist_clsx(borderProps.className, {
27918      [`wp-image-$id}`]: !!id
27919    });
27920    const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27921      src: url,
27922      alt: alt,
27923      className: imageClasses || undefined,
27924      style: {
27925        ...borderProps.style,
27926        ...shadowProps.style,
27927        aspectRatio,
27928        objectFit: scale,
27929        width,
27930        height
27931      },
27932      title: title
27933    });
27934    const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27935      children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
27936        className: linkClass,
27937        href: href,
27938        target: linkTarget,
27939        rel: newRel,
27940        children: image
27941      }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
27942        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
27943        tagName: "figcaption",
27944        value: caption
27945      })]
27946    });
27947    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
27948      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
27949        className: classes
27950      }),
27951      children: figure
27952    });
27953  }
27954  
27955  ;// ./node_modules/@wordpress/block-library/build-module/image/transforms.js
27956  /**
27957   * WordPress dependencies
27958   */
27959  
27960  
27961  function stripFirstImage(attributes, {
27962    shortcode
27963  }) {
27964    const {
27965      body
27966    } = document.implementation.createHTMLDocument('');
27967    body.innerHTML = shortcode.content;
27968    let nodeToRemove = body.querySelector('img');
27969  
27970    // If an image has parents, find the topmost node to remove.
27971    while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) {
27972      nodeToRemove = nodeToRemove.parentNode;
27973    }
27974    if (nodeToRemove) {
27975      nodeToRemove.parentNode.removeChild(nodeToRemove);
27976    }
27977    return body.innerHTML.trim();
27978  }
27979  function getFirstAnchorAttributeFormHTML(html, attributeName) {
27980    const {
27981      body
27982    } = document.implementation.createHTMLDocument('');
27983    body.innerHTML = html;
27984    const {
27985      firstElementChild
27986    } = body;
27987    if (firstElementChild && firstElementChild.nodeName === 'A') {
27988      return firstElementChild.getAttribute(attributeName) || undefined;
27989    }
27990  }
27991  const imageSchema = {
27992    img: {
27993      attributes: ['src', 'alt', 'title'],
27994      classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\d+$/]
27995    }
27996  };
27997  const schema = ({
27998    phrasingContentSchema
27999  }) => ({
28000    figure: {
28001      require: ['img'],
28002      children: {
28003        ...imageSchema,
28004        a: {
28005          attributes: ['href', 'rel', 'target'],
28006          classes: ['*'],
28007          children: imageSchema
28008        },
28009        figcaption: {
28010          children: phrasingContentSchema
28011        }
28012      }
28013    }
28014  });
28015  const image_transforms_transforms = {
28016    from: [{
28017      type: 'raw',
28018      isMatch: node => node.nodeName === 'FIGURE' && !!node.querySelector('img'),
28019      schema,
28020      transform: node => {
28021        // Search both figure and image classes. Alignment could be
28022        // set on either. ID is set on the image.
28023        const className = node.className + ' ' + node.querySelector('img').className;
28024        const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec(className);
28025        const anchor = node.id === '' ? undefined : node.id;
28026        const align = alignMatches ? alignMatches[1] : undefined;
28027        const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec(className);
28028        const id = idMatches ? Number(idMatches[1]) : undefined;
28029        const anchorElement = node.querySelector('a');
28030        const linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;
28031        const href = anchorElement && anchorElement.href ? anchorElement.href : undefined;
28032        const rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined;
28033        const linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined;
28034        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/image', node.outerHTML, {
28035          align,
28036          id,
28037          linkDestination,
28038          href,
28039          rel,
28040          linkClass,
28041          anchor
28042        });
28043        if ((0,external_wp_blob_namespaceObject.isBlobURL)(attributes.url)) {
28044          attributes.blob = attributes.url;
28045          delete attributes.url;
28046        }
28047        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', attributes);
28048      }
28049    }, {
28050      // Note: when dragging and dropping multiple files onto a gallery this overrides the
28051      // gallery transform in order to add new images to the gallery instead of
28052      // creating a new gallery.
28053      type: 'files',
28054      isMatch(files) {
28055        return files.every(file => file.type.indexOf('image/') === 0);
28056      },
28057      transform(files) {
28058        const blocks = files.map(file => {
28059          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
28060            blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
28061          });
28062        });
28063        return blocks;
28064      }
28065    }, {
28066      type: 'shortcode',
28067      tag: 'caption',
28068      attributes: {
28069        url: {
28070          type: 'string',
28071          source: 'attribute',
28072          attribute: 'src',
28073          selector: 'img'
28074        },
28075        alt: {
28076          type: 'string',
28077          source: 'attribute',
28078          attribute: 'alt',
28079          selector: 'img'
28080        },
28081        caption: {
28082          shortcode: stripFirstImage
28083        },
28084        href: {
28085          shortcode: (attributes, {
28086            shortcode
28087          }) => {
28088            return getFirstAnchorAttributeFormHTML(shortcode.content, 'href');
28089          }
28090        },
28091        rel: {
28092          shortcode: (attributes, {
28093            shortcode
28094          }) => {
28095            return getFirstAnchorAttributeFormHTML(shortcode.content, 'rel');
28096          }
28097        },
28098        linkClass: {
28099          shortcode: (attributes, {
28100            shortcode
28101          }) => {
28102            return getFirstAnchorAttributeFormHTML(shortcode.content, 'class');
28103          }
28104        },
28105        id: {
28106          type: 'number',
28107          shortcode: ({
28108            named: {
28109              id
28110            }
28111          }) => {
28112            if (!id) {
28113              return;
28114            }
28115            return parseInt(id.replace('attachment_', ''), 10);
28116          }
28117        },
28118        align: {
28119          type: 'string',
28120          shortcode: ({
28121            named: {
28122              align = 'alignnone'
28123            }
28124          }) => {
28125            return align.replace('align', '');
28126          }
28127        }
28128      }
28129    }]
28130  };
28131  /* harmony default export */ const image_transforms = (image_transforms_transforms);
28132  
28133  ;// ./node_modules/@wordpress/block-library/build-module/image/index.js
28134  /**
28135   * WordPress dependencies
28136   */
28137  
28138  
28139  
28140  /**
28141   * Internal dependencies
28142   */
28143  
28144  
28145  
28146  const image_metadata = {
28147    $schema: "https://schemas.wp.org/trunk/block.json",
28148    apiVersion: 3,
28149    name: "core/image",
28150    title: "Image",
28151    category: "media",
28152    usesContext: ["allowResize", "imageCrop", "fixedHeight", "postId", "postType", "queryId"],
28153    description: "Insert an image to make a visual statement.",
28154    keywords: ["img", "photo", "picture"],
28155    textdomain: "default",
28156    attributes: {
28157      blob: {
28158        type: "string",
28159        role: "local"
28160      },
28161      url: {
28162        type: "string",
28163        source: "attribute",
28164        selector: "img",
28165        attribute: "src",
28166        role: "content"
28167      },
28168      alt: {
28169        type: "string",
28170        source: "attribute",
28171        selector: "img",
28172        attribute: "alt",
28173        "default": "",
28174        role: "content"
28175      },
28176      caption: {
28177        type: "rich-text",
28178        source: "rich-text",
28179        selector: "figcaption",
28180        role: "content"
28181      },
28182      lightbox: {
28183        type: "object",
28184        enabled: {
28185          type: "boolean"
28186        }
28187      },
28188      title: {
28189        type: "string",
28190        source: "attribute",
28191        selector: "img",
28192        attribute: "title",
28193        role: "content"
28194      },
28195      href: {
28196        type: "string",
28197        source: "attribute",
28198        selector: "figure > a",
28199        attribute: "href",
28200        role: "content"
28201      },
28202      rel: {
28203        type: "string",
28204        source: "attribute",
28205        selector: "figure > a",
28206        attribute: "rel"
28207      },
28208      linkClass: {
28209        type: "string",
28210        source: "attribute",
28211        selector: "figure > a",
28212        attribute: "class"
28213      },
28214      id: {
28215        type: "number",
28216        role: "content"
28217      },
28218      width: {
28219        type: "string"
28220      },
28221      height: {
28222        type: "string"
28223      },
28224      aspectRatio: {
28225        type: "string"
28226      },
28227      scale: {
28228        type: "string"
28229      },
28230      sizeSlug: {
28231        type: "string"
28232      },
28233      linkDestination: {
28234        type: "string"
28235      },
28236      linkTarget: {
28237        type: "string",
28238        source: "attribute",
28239        selector: "figure > a",
28240        attribute: "target"
28241      }
28242    },
28243    supports: {
28244      interactivity: true,
28245      align: ["left", "center", "right", "wide", "full"],
28246      anchor: true,
28247      color: {
28248        text: false,
28249        background: false
28250      },
28251      filter: {
28252        duotone: true
28253      },
28254      spacing: {
28255        margin: true
28256      },
28257      __experimentalBorder: {
28258        color: true,
28259        radius: true,
28260        width: true,
28261        __experimentalSkipSerialization: true,
28262        __experimentalDefaultControls: {
28263          color: true,
28264          radius: true,
28265          width: true
28266        }
28267      },
28268      shadow: {
28269        __experimentalSkipSerialization: true
28270      }
28271    },
28272    selectors: {
28273      border: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
28274      shadow: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
28275      filter: {
28276        duotone: ".wp-block-image img, .wp-block-image .components-placeholder"
28277      }
28278    },
28279    styles: [{
28280      name: "default",
28281      label: "Default",
28282      isDefault: true
28283    }, {
28284      name: "rounded",
28285      label: "Rounded"
28286    }],
28287    editorStyle: "wp-block-image-editor",
28288    style: "wp-block-image"
28289  };
28290  
28291  
28292  const {
28293    name: image_name
28294  } = image_metadata;
28295  
28296  const image_settings = {
28297    icon: library_image,
28298    example: {
28299      attributes: {
28300        sizeSlug: 'large',
28301        url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',
28302        // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.
28303        caption: (0,external_wp_i18n_namespaceObject.__)('Mont Blanc appears—still, snowy, and serene.')
28304      }
28305    },
28306    __experimentalLabel(attributes, {
28307      context
28308    }) {
28309      const customName = attributes?.metadata?.name;
28310      if (context === 'list-view' && customName) {
28311        return customName;
28312      }
28313      if (context === 'accessibility') {
28314        const {
28315          caption,
28316          alt,
28317          url
28318        } = attributes;
28319        if (!url) {
28320          return (0,external_wp_i18n_namespaceObject.__)('Empty');
28321        }
28322        if (!alt) {
28323          return caption || '';
28324        }
28325  
28326        // This is intended to be read by a screen reader.
28327        // A period simply means a pause, no need to translate it.
28328        return alt + (caption ? '. ' + caption : '');
28329      }
28330    },
28331    getEditWrapperProps(attributes) {
28332      return {
28333        'data-align': attributes.align
28334      };
28335    },
28336    transforms: image_transforms,
28337    edit: image_edit,
28338    save: image_save_save,
28339    deprecated: image_deprecated
28340  };
28341  const image_init = () => initBlock({
28342    name: image_name,
28343    metadata: image_metadata,
28344    settings: image_settings
28345  });
28346  
28347  ;// ./node_modules/@wordpress/icons/build-module/library/comment.js
28348  /**
28349   * WordPress dependencies
28350   */
28351  
28352  
28353  const comment = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28354    viewBox: "0 0 24 24",
28355    xmlns: "http://www.w3.org/2000/svg",
28356    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28357      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"
28358    })
28359  });
28360  /* harmony default export */ const library_comment = (comment);
28361  
28362  ;// ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js
28363  /**
28364   * WordPress dependencies
28365   */
28366  
28367  
28368  
28369  
28370  
28371  /**
28372   * Internal dependencies
28373   */
28374  
28375  
28376  /**
28377   * Minimum number of comments a user can show using this block.
28378   *
28379   * @type {number}
28380   */
28381  
28382  const MIN_COMMENTS = 1;
28383  /**
28384   * Maximum number of comments a user can show using this block.
28385   *
28386   * @type {number}
28387   */
28388  const MAX_COMMENTS = 100;
28389  function LatestComments({
28390    attributes,
28391    setAttributes
28392  }) {
28393    const {
28394      commentsToShow,
28395      displayAvatar,
28396      displayDate,
28397      displayExcerpt
28398    } = attributes;
28399    const serverSideAttributes = {
28400      ...attributes,
28401      style: {
28402        ...attributes?.style,
28403        spacing: undefined
28404      }
28405    };
28406    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
28407    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
28408      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
28409      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
28410        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
28411          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
28412          resetAll: () => {
28413            setAttributes({
28414              commentsToShow: 5,
28415              displayAvatar: true,
28416              displayDate: true,
28417              displayExcerpt: true
28418            });
28419          },
28420          dropdownMenuProps: dropdownMenuProps,
28421          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28422            hasValue: () => !displayAvatar,
28423            label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
28424            onDeselect: () => setAttributes({
28425              displayAvatar: true
28426            }),
28427            isShownByDefault: true,
28428            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28429              __nextHasNoMarginBottom: true,
28430              label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
28431              checked: displayAvatar,
28432              onChange: () => setAttributes({
28433                displayAvatar: !displayAvatar
28434              })
28435            })
28436          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28437            hasValue: () => !displayDate,
28438            label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
28439            onDeselect: () => setAttributes({
28440              displayDate: true
28441            }),
28442            isShownByDefault: true,
28443            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28444              __nextHasNoMarginBottom: true,
28445              label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
28446              checked: displayDate,
28447              onChange: () => setAttributes({
28448                displayDate: !displayDate
28449              })
28450            })
28451          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28452            hasValue: () => !displayExcerpt,
28453            label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
28454            onDeselect: () => setAttributes({
28455              displayExcerpt: true
28456            }),
28457            isShownByDefault: true,
28458            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28459              __nextHasNoMarginBottom: true,
28460              label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
28461              checked: displayExcerpt,
28462              onChange: () => setAttributes({
28463                displayExcerpt: !displayExcerpt
28464              })
28465            })
28466          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28467            hasValue: () => commentsToShow !== 5,
28468            label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
28469            onDeselect: () => setAttributes({
28470              commentsToShow: 5
28471            }),
28472            isShownByDefault: true,
28473            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
28474              __nextHasNoMarginBottom: true,
28475              __next40pxDefaultSize: true,
28476              label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
28477              value: commentsToShow,
28478              onChange: value => setAttributes({
28479                commentsToShow: value
28480              }),
28481              min: MIN_COMMENTS,
28482              max: MAX_COMMENTS,
28483              required: true
28484            })
28485          })]
28486        })
28487      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
28488        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
28489          block: "core/latest-comments",
28490          attributes: serverSideAttributes
28491          // The preview uses the site's locale to make it more true to how
28492          // the block appears on the frontend. Setting the locale
28493          // explicitly prevents any middleware from setting it to 'user'.
28494          ,
28495          urlQueryArgs: {
28496            _locale: 'site'
28497          }
28498        })
28499      })]
28500    });
28501  }
28502  
28503  ;// ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
28504  /**
28505   * WordPress dependencies
28506   */
28507  
28508  
28509  /**
28510   * Internal dependencies
28511   */
28512  
28513  const latest_comments_metadata = {
28514    $schema: "https://schemas.wp.org/trunk/block.json",
28515    apiVersion: 3,
28516    name: "core/latest-comments",
28517    title: "Latest Comments",
28518    category: "widgets",
28519    description: "Display a list of your most recent comments.",
28520    keywords: ["recent comments"],
28521    textdomain: "default",
28522    attributes: {
28523      commentsToShow: {
28524        type: "number",
28525        "default": 5,
28526        minimum: 1,
28527        maximum: 100
28528      },
28529      displayAvatar: {
28530        type: "boolean",
28531        "default": true
28532      },
28533      displayDate: {
28534        type: "boolean",
28535        "default": true
28536      },
28537      displayExcerpt: {
28538        type: "boolean",
28539        "default": true
28540      }
28541    },
28542    supports: {
28543      align: true,
28544      color: {
28545        gradients: true,
28546        link: true,
28547        __experimentalDefaultControls: {
28548          background: true,
28549          text: true,
28550          link: true
28551        }
28552      },
28553      html: false,
28554      spacing: {
28555        margin: true,
28556        padding: true
28557      },
28558      typography: {
28559        fontSize: true,
28560        lineHeight: true,
28561        __experimentalFontFamily: true,
28562        __experimentalFontWeight: true,
28563        __experimentalFontStyle: true,
28564        __experimentalTextTransform: true,
28565        __experimentalTextDecoration: true,
28566        __experimentalLetterSpacing: true,
28567        __experimentalDefaultControls: {
28568          fontSize: true
28569        }
28570      },
28571      interactivity: {
28572        clientNavigation: true
28573      }
28574    },
28575    editorStyle: "wp-block-latest-comments-editor",
28576    style: "wp-block-latest-comments"
28577  };
28578  
28579  const {
28580    name: latest_comments_name
28581  } = latest_comments_metadata;
28582  
28583  const latest_comments_settings = {
28584    icon: library_comment,
28585    example: {},
28586    edit: LatestComments
28587  };
28588  const latest_comments_init = () => initBlock({
28589    name: latest_comments_name,
28590    metadata: latest_comments_metadata,
28591    settings: latest_comments_settings
28592  });
28593  
28594  ;// ./node_modules/@wordpress/icons/build-module/library/post-list.js
28595  /**
28596   * WordPress dependencies
28597   */
28598  
28599  
28600  const postList = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28601    viewBox: "0 0 24 24",
28602    xmlns: "http://www.w3.org/2000/svg",
28603    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28604      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"
28605    })
28606  });
28607  /* harmony default export */ const post_list = (postList);
28608  
28609  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js
28610  /**
28611   * Internal dependencies
28612   */
28613  const latest_posts_deprecated_metadata = {
28614    $schema: "https://schemas.wp.org/trunk/block.json",
28615    apiVersion: 3,
28616    name: "core/latest-posts",
28617    title: "Latest Posts",
28618    category: "widgets",
28619    description: "Display a list of your most recent posts.",
28620    keywords: ["recent posts"],
28621    textdomain: "default",
28622    attributes: {
28623      categories: {
28624        type: "array",
28625        items: {
28626          type: "object"
28627        }
28628      },
28629      selectedAuthor: {
28630        type: "number"
28631      },
28632      postsToShow: {
28633        type: "number",
28634        "default": 5
28635      },
28636      displayPostContent: {
28637        type: "boolean",
28638        "default": false
28639      },
28640      displayPostContentRadio: {
28641        type: "string",
28642        "default": "excerpt"
28643      },
28644      excerptLength: {
28645        type: "number",
28646        "default": 55
28647      },
28648      displayAuthor: {
28649        type: "boolean",
28650        "default": false
28651      },
28652      displayPostDate: {
28653        type: "boolean",
28654        "default": false
28655      },
28656      postLayout: {
28657        type: "string",
28658        "default": "list"
28659      },
28660      columns: {
28661        type: "number",
28662        "default": 3
28663      },
28664      order: {
28665        type: "string",
28666        "default": "desc"
28667      },
28668      orderBy: {
28669        type: "string",
28670        "default": "date"
28671      },
28672      displayFeaturedImage: {
28673        type: "boolean",
28674        "default": false
28675      },
28676      featuredImageAlign: {
28677        type: "string",
28678        "enum": ["left", "center", "right"]
28679      },
28680      featuredImageSizeSlug: {
28681        type: "string",
28682        "default": "thumbnail"
28683      },
28684      featuredImageSizeWidth: {
28685        type: "number",
28686        "default": null
28687      },
28688      featuredImageSizeHeight: {
28689        type: "number",
28690        "default": null
28691      },
28692      addLinkToFeaturedImage: {
28693        type: "boolean",
28694        "default": false
28695      }
28696    },
28697    supports: {
28698      align: true,
28699      html: false,
28700      color: {
28701        gradients: true,
28702        link: true,
28703        __experimentalDefaultControls: {
28704          background: true,
28705          text: true,
28706          link: true
28707        }
28708      },
28709      spacing: {
28710        margin: true,
28711        padding: true
28712      },
28713      typography: {
28714        fontSize: true,
28715        lineHeight: true,
28716        __experimentalFontFamily: true,
28717        __experimentalFontWeight: true,
28718        __experimentalFontStyle: true,
28719        __experimentalTextTransform: true,
28720        __experimentalTextDecoration: true,
28721        __experimentalLetterSpacing: true,
28722        __experimentalDefaultControls: {
28723          fontSize: true
28724        }
28725      },
28726      __experimentalBorder: {
28727        radius: true,
28728        color: true,
28729        width: true,
28730        style: true,
28731        __experimentalDefaultControls: {
28732          radius: true,
28733          color: true,
28734          width: true,
28735          style: true
28736        }
28737      },
28738      interactivity: {
28739        clientNavigation: true
28740      }
28741    },
28742    editorStyle: "wp-block-latest-posts-editor",
28743    style: "wp-block-latest-posts"
28744  };
28745  const {
28746    attributes: deprecated_attributes
28747  } = latest_posts_deprecated_metadata;
28748  /* harmony default export */ const latest_posts_deprecated = ([{
28749    attributes: {
28750      ...deprecated_attributes,
28751      categories: {
28752        type: 'string'
28753      }
28754    },
28755    supports: {
28756      align: true,
28757      html: false
28758    },
28759    migrate: oldAttributes => {
28760      // This needs the full category object, not just the ID.
28761      return {
28762        ...oldAttributes,
28763        categories: [{
28764          id: Number(oldAttributes.categories)
28765        }]
28766      };
28767    },
28768    isEligible: ({
28769      categories
28770    }) => categories && 'string' === typeof categories,
28771    save: () => null
28772  }]);
28773  
28774  ;// ./node_modules/@wordpress/icons/build-module/library/align-none.js
28775  /**
28776   * WordPress dependencies
28777   */
28778  
28779  
28780  const alignNone = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28781    xmlns: "http://www.w3.org/2000/svg",
28782    viewBox: "0 0 24 24",
28783    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28784      d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z"
28785    })
28786  });
28787  /* harmony default export */ const align_none = (alignNone);
28788  
28789  ;// ./node_modules/@wordpress/icons/build-module/library/position-left.js
28790  /**
28791   * WordPress dependencies
28792   */
28793  
28794  
28795  const positionLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28796    xmlns: "http://www.w3.org/2000/svg",
28797    viewBox: "0 0 24 24",
28798    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28799      d: "M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z"
28800    })
28801  });
28802  /* harmony default export */ const position_left = (positionLeft);
28803  
28804  ;// ./node_modules/@wordpress/icons/build-module/library/position-center.js
28805  /**
28806   * WordPress dependencies
28807   */
28808  
28809  
28810  const positionCenter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28811    xmlns: "http://www.w3.org/2000/svg",
28812    viewBox: "0 0 24 24",
28813    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28814      d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z"
28815    })
28816  });
28817  /* harmony default export */ const position_center = (positionCenter);
28818  
28819  ;// ./node_modules/@wordpress/icons/build-module/library/position-right.js
28820  /**
28821   * WordPress dependencies
28822   */
28823  
28824  
28825  const positionRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28826    xmlns: "http://www.w3.org/2000/svg",
28827    viewBox: "0 0 24 24",
28828    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28829      d: "M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z"
28830    })
28831  });
28832  /* harmony default export */ const position_right = (positionRight);
28833  
28834  ;// ./node_modules/@wordpress/icons/build-module/library/list.js
28835  /**
28836   * WordPress dependencies
28837   */
28838  
28839  
28840  const list = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28841    viewBox: "0 0 24 24",
28842    xmlns: "http://www.w3.org/2000/svg",
28843    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28844      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"
28845    })
28846  });
28847  /* harmony default export */ const library_list = (list);
28848  
28849  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js
28850  const MIN_EXCERPT_LENGTH = 10;
28851  const MAX_EXCERPT_LENGTH = 100;
28852  const MAX_POSTS_COLUMNS = 6;
28853  const DEFAULT_EXCERPT_LENGTH = 55;
28854  
28855  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js
28856  /**
28857   * External dependencies
28858   */
28859  
28860  
28861  /**
28862   * WordPress dependencies
28863   */
28864  
28865  
28866  
28867  
28868  
28869  
28870  
28871  
28872  
28873  
28874  
28875  /**
28876   * Internal dependencies
28877   */
28878  
28879  
28880  
28881  /**
28882   * Module Constants
28883   */
28884  
28885  const CATEGORIES_LIST_QUERY = {
28886    per_page: -1,
28887    context: 'view'
28888  };
28889  const USERS_LIST_QUERY = {
28890    per_page: -1,
28891    has_published_posts: ['post'],
28892    context: 'view'
28893  };
28894  function getFeaturedImageDetails(post, size) {
28895    var _image$media_details$;
28896    const image = post._embedded?.['wp:featuredmedia']?.['0'];
28897    return {
28898      url: (_image$media_details$ = image?.media_details?.sizes?.[size]?.source_url) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : image?.source_url,
28899      alt: image?.alt_text
28900    };
28901  }
28902  function LatestPostsEdit({
28903    attributes,
28904    setAttributes
28905  }) {
28906    var _categoriesList$reduc;
28907    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(LatestPostsEdit);
28908    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
28909    const {
28910      postsToShow,
28911      order,
28912      orderBy,
28913      categories,
28914      selectedAuthor,
28915      displayFeaturedImage,
28916      displayPostContentRadio,
28917      displayPostContent,
28918      displayPostDate,
28919      displayAuthor,
28920      postLayout,
28921      columns,
28922      excerptLength,
28923      featuredImageAlign,
28924      featuredImageSizeSlug,
28925      featuredImageSizeWidth,
28926      featuredImageSizeHeight,
28927      addLinkToFeaturedImage
28928    } = attributes;
28929    const {
28930      imageSizes,
28931      latestPosts,
28932      defaultImageWidth,
28933      defaultImageHeight,
28934      categoriesList,
28935      authorList
28936    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
28937      var _settings$imageDimens, _settings$imageDimens2;
28938      const {
28939        getEntityRecords,
28940        getUsers
28941      } = select(external_wp_coreData_namespaceObject.store);
28942      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
28943      const catIds = categories && categories.length > 0 ? categories.map(cat => cat.id) : [];
28944      const latestPostsQuery = Object.fromEntries(Object.entries({
28945        categories: catIds,
28946        author: selectedAuthor,
28947        order,
28948        orderby: orderBy,
28949        per_page: postsToShow,
28950        _embed: 'wp:featuredmedia',
28951        ignore_sticky: true
28952      }).filter(([, value]) => typeof value !== 'undefined'));
28953      return {
28954        defaultImageWidth: (_settings$imageDimens = settings.imageDimensions?.[featuredImageSizeSlug]?.width) !== null && _settings$imageDimens !== void 0 ? _settings$imageDimens : 0,
28955        defaultImageHeight: (_settings$imageDimens2 = settings.imageDimensions?.[featuredImageSizeSlug]?.height) !== null && _settings$imageDimens2 !== void 0 ? _settings$imageDimens2 : 0,
28956        imageSizes: settings.imageSizes,
28957        latestPosts: getEntityRecords('postType', 'post', latestPostsQuery),
28958        categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY),
28959        authorList: getUsers(USERS_LIST_QUERY)
28960      };
28961    }, [featuredImageSizeSlug, postsToShow, order, orderBy, categories, selectedAuthor]);
28962  
28963    // If a user clicks to a link prevent redirection and show a warning.
28964    const {
28965      createWarningNotice
28966    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
28967    const showRedirectionPreventedNotice = event => {
28968      event.preventDefault();
28969      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('Links are disabled in the editor.'), {
28970        id: `block-library/core/latest-posts/redirection-prevented/$instanceId}`,
28971        type: 'snackbar'
28972      });
28973    };
28974    const imageSizeOptions = imageSizes.filter(({
28975      slug
28976    }) => slug !== 'full').map(({
28977      name,
28978      slug
28979    }) => ({
28980      value: slug,
28981      label: name
28982    }));
28983    const categorySuggestions = (_categoriesList$reduc = categoriesList?.reduce((accumulator, category) => ({
28984      ...accumulator,
28985      [category.name]: category
28986    }), {})) !== null && _categoriesList$reduc !== void 0 ? _categoriesList$reduc : {};
28987    const selectCategories = tokens => {
28988      const hasNoSuggestion = tokens.some(token => typeof token === 'string' && !categorySuggestions[token]);
28989      if (hasNoSuggestion) {
28990        return;
28991      }
28992      // Categories that are already will be objects, while new additions will be strings (the name).
28993      // allCategories nomalizes the array so that they are all objects.
28994      const allCategories = tokens.map(token => {
28995        return typeof token === 'string' ? categorySuggestions[token] : token;
28996      });
28997      // We do nothing if the category is not selected
28998      // from suggestions.
28999      if (allCategories.includes(null)) {
29000        return false;
29001      }
29002      setAttributes({
29003        categories: allCategories
29004      });
29005    };
29006    const imageAlignmentOptions = [{
29007      value: 'none',
29008      icon: align_none,
29009      label: (0,external_wp_i18n_namespaceObject.__)('None')
29010    }, {
29011      value: 'left',
29012      icon: position_left,
29013      label: (0,external_wp_i18n_namespaceObject.__)('Left')
29014    }, {
29015      value: 'center',
29016      icon: position_center,
29017      label: (0,external_wp_i18n_namespaceObject.__)('Center')
29018    }, {
29019      value: 'right',
29020      icon: position_right,
29021      label: (0,external_wp_i18n_namespaceObject.__)('Right')
29022    }];
29023    const hasPosts = !!latestPosts?.length;
29024    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
29025      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
29026        label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
29027        resetAll: () => setAttributes({
29028          displayPostContent: false,
29029          displayPostContentRadio: 'excerpt',
29030          excerptLength: DEFAULT_EXCERPT_LENGTH
29031        }),
29032        dropdownMenuProps: dropdownMenuProps,
29033        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29034          hasValue: () => !!displayPostContent,
29035          label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
29036          onDeselect: () => setAttributes({
29037            displayPostContent: false
29038          }),
29039          isShownByDefault: true,
29040          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29041            __nextHasNoMarginBottom: true,
29042            label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
29043            checked: displayPostContent,
29044            onChange: value => setAttributes({
29045              displayPostContent: value
29046            })
29047          })
29048        }), displayPostContent && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29049          hasValue: () => displayPostContentRadio !== 'excerpt',
29050          label: (0,external_wp_i18n_namespaceObject.__)('Show'),
29051          onDeselect: () => setAttributes({
29052            displayPostContentRadio: 'excerpt'
29053          }),
29054          isShownByDefault: true,
29055          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
29056            label: (0,external_wp_i18n_namespaceObject.__)('Show'),
29057            selected: displayPostContentRadio,
29058            options: [{
29059              label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
29060              value: 'excerpt'
29061            }, {
29062              label: (0,external_wp_i18n_namespaceObject.__)('Full post'),
29063              value: 'full_post'
29064            }],
29065            onChange: value => setAttributes({
29066              displayPostContentRadio: value
29067            })
29068          })
29069        }), displayPostContent && displayPostContentRadio === 'excerpt' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29070          hasValue: () => excerptLength !== DEFAULT_EXCERPT_LENGTH,
29071          label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
29072          onDeselect: () => setAttributes({
29073            excerptLength: DEFAULT_EXCERPT_LENGTH
29074          }),
29075          isShownByDefault: true,
29076          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
29077            __nextHasNoMarginBottom: true,
29078            __next40pxDefaultSize: true,
29079            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
29080            value: excerptLength,
29081            onChange: value => setAttributes({
29082              excerptLength: value
29083            }),
29084            min: MIN_EXCERPT_LENGTH,
29085            max: MAX_EXCERPT_LENGTH
29086          })
29087        })]
29088      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
29089        label: (0,external_wp_i18n_namespaceObject.__)('Post meta'),
29090        resetAll: () => setAttributes({
29091          displayAuthor: false,
29092          displayPostDate: false
29093        }),
29094        dropdownMenuProps: dropdownMenuProps,
29095        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29096          hasValue: () => !!displayAuthor,
29097          label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
29098          onDeselect: () => setAttributes({
29099            displayAuthor: false
29100          }),
29101          isShownByDefault: true,
29102          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29103            __nextHasNoMarginBottom: true,
29104            label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
29105            checked: displayAuthor,
29106            onChange: value => setAttributes({
29107              displayAuthor: value
29108            })
29109          })
29110        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29111          hasValue: () => !!displayPostDate,
29112          label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
29113          onDeselect: () => setAttributes({
29114            displayPostDate: false
29115          }),
29116          isShownByDefault: true,
29117          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29118            __nextHasNoMarginBottom: true,
29119            label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
29120            checked: displayPostDate,
29121            onChange: value => setAttributes({
29122              displayPostDate: value
29123            })
29124          })
29125        })]
29126      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
29127        title: (0,external_wp_i18n_namespaceObject.__)('Featured image'),
29128        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29129          __nextHasNoMarginBottom: true,
29130          label: (0,external_wp_i18n_namespaceObject.__)('Display featured image'),
29131          checked: displayFeaturedImage,
29132          onChange: value => setAttributes({
29133            displayFeaturedImage: value
29134          })
29135        }), displayFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29136          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
29137            onChange: value => {
29138              const newAttrs = {};
29139              if (value.hasOwnProperty('width')) {
29140                newAttrs.featuredImageSizeWidth = value.width;
29141              }
29142              if (value.hasOwnProperty('height')) {
29143                newAttrs.featuredImageSizeHeight = value.height;
29144              }
29145              setAttributes(newAttrs);
29146            },
29147            slug: featuredImageSizeSlug,
29148            width: featuredImageSizeWidth,
29149            height: featuredImageSizeHeight,
29150            imageWidth: defaultImageWidth,
29151            imageHeight: defaultImageHeight,
29152            imageSizeOptions: imageSizeOptions,
29153            imageSizeHelp: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.'),
29154            onChangeImage: value => setAttributes({
29155              featuredImageSizeSlug: value,
29156              featuredImageSizeWidth: undefined,
29157              featuredImageSizeHeight: undefined
29158            })
29159          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
29160            className: "editor-latest-posts-image-alignment-control",
29161            __nextHasNoMarginBottom: true,
29162            __next40pxDefaultSize: true,
29163            label: (0,external_wp_i18n_namespaceObject.__)('Image alignment'),
29164            value: featuredImageAlign || 'none',
29165            onChange: value => setAttributes({
29166              featuredImageAlign: value !== 'none' ? value : undefined
29167            }),
29168            children: imageAlignmentOptions.map(({
29169              value,
29170              icon,
29171              label
29172            }) => {
29173              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, {
29174                value: value,
29175                icon: icon,
29176                label: label
29177              }, value);
29178            })
29179          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29180            __nextHasNoMarginBottom: true,
29181            label: (0,external_wp_i18n_namespaceObject.__)('Add link to featured image'),
29182            checked: addLinkToFeaturedImage,
29183            onChange: value => setAttributes({
29184              addLinkToFeaturedImage: value
29185            })
29186          })]
29187        })]
29188      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
29189        title: (0,external_wp_i18n_namespaceObject.__)('Sorting and filtering'),
29190        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.QueryControls, {
29191          order,
29192          orderBy,
29193          numberOfItems: postsToShow,
29194          onOrderChange: value => setAttributes({
29195            order: value
29196          }),
29197          onOrderByChange: value => setAttributes({
29198            orderBy: value
29199          }),
29200          onNumberOfItemsChange: value => setAttributes({
29201            postsToShow: value
29202          }),
29203          categorySuggestions: categorySuggestions,
29204          onCategoryChange: selectCategories,
29205          selectedCategories: categories,
29206          onAuthorChange: value => setAttributes({
29207            selectedAuthor: '' !== value ? Number(value) : undefined
29208          }),
29209          authorList: authorList !== null && authorList !== void 0 ? authorList : [],
29210          selectedAuthorId: selectedAuthor
29211        }), postLayout === 'grid' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
29212          __nextHasNoMarginBottom: true,
29213          __next40pxDefaultSize: true,
29214          label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
29215          value: columns,
29216          onChange: value => setAttributes({
29217            columns: value
29218          }),
29219          min: 2,
29220          max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length),
29221          required: true
29222        })]
29223      })]
29224    });
29225    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
29226      className: dist_clsx({
29227        'wp-block-latest-posts__list': true,
29228        'is-grid': postLayout === 'grid',
29229        'has-dates': displayPostDate,
29230        'has-author': displayAuthor,
29231        [`columns-$columns}`]: postLayout === 'grid'
29232      })
29233    });
29234    if (!hasPosts) {
29235      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
29236        ...blockProps,
29237        children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
29238          icon: library_pin,
29239          label: (0,external_wp_i18n_namespaceObject.__)('Latest Posts'),
29240          children: !Array.isArray(latestPosts) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : (0,external_wp_i18n_namespaceObject.__)('No posts found.')
29241        })]
29242      });
29243    }
29244  
29245    // Removing posts from display should be instant.
29246    const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;
29247    const layoutControls = [{
29248      icon: library_list,
29249      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'Latest posts block display setting'),
29250      onClick: () => setAttributes({
29251        postLayout: 'list'
29252      }),
29253      isActive: postLayout === 'list'
29254    }, {
29255      icon: library_grid,
29256      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'Latest posts block display setting'),
29257      onClick: () => setAttributes({
29258        postLayout: 'grid'
29259      }),
29260      isActive: postLayout === 'grid'
29261    }];
29262    const dateFormat = (0,external_wp_date_namespaceObject.getSettings)().formats.date;
29263    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29264      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
29265        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
29266          controls: layoutControls
29267        })
29268      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
29269        ...blockProps,
29270        children: displayPosts.map(post => {
29271          const titleTrimmed = post.title.rendered.trim();
29272          let excerpt = post.excerpt.rendered;
29273          const currentAuthor = authorList?.find(author => author.id === post.author);
29274          const excerptElement = document.createElement('div');
29275          excerptElement.innerHTML = excerpt;
29276          excerpt = excerptElement.textContent || excerptElement.innerText || '';
29277          const {
29278            url: imageSourceUrl,
29279            alt: featuredImageAlt
29280          } = getFeaturedImageDetails(post, featuredImageSizeSlug);
29281          const imageClasses = dist_clsx({
29282            'wp-block-latest-posts__featured-image': true,
29283            [`align$featuredImageAlign}`]: !!featuredImageAlign
29284          });
29285          const renderFeaturedImage = displayFeaturedImage && imageSourceUrl;
29286          const featuredImage = renderFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
29287            src: imageSourceUrl,
29288            alt: featuredImageAlt,
29289            style: {
29290              maxWidth: featuredImageSizeWidth,
29291              maxHeight: featuredImageSizeHeight
29292            }
29293          });
29294          const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
29295          const postExcerpt = needsReadMore ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29296            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 */
29297            (0,external_wp_i18n_namespaceObject.__)('… <a>Read more<span>: %1$s</span></a>'), titleTrimmed || (0,external_wp_i18n_namespaceObject.__)('(no title)')), {
29298              a:
29299              /*#__PURE__*/
29300              // eslint-disable-next-line jsx-a11y/anchor-has-content
29301              (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
29302                className: "wp-block-latest-posts__read-more",
29303                href: post.link,
29304                rel: "noopener noreferrer",
29305                onClick: showRedirectionPreventedNotice
29306              }),
29307              span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
29308                className: "screen-reader-text"
29309              })
29310            })]
29311          }) : excerpt;
29312          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
29313            children: [renderFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29314              className: imageClasses,
29315              children: addLinkToFeaturedImage ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
29316                href: post.link,
29317                rel: "noreferrer noopener",
29318                onClick: showRedirectionPreventedNotice,
29319                children: featuredImage
29320              }) : featuredImage
29321            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
29322              className: "wp-block-latest-posts__post-title",
29323              href: post.link,
29324              rel: "noreferrer noopener",
29325              dangerouslySetInnerHTML: !!titleTrimmed ? {
29326                __html: titleTrimmed
29327              } : undefined,
29328              onClick: showRedirectionPreventedNotice,
29329              children: !titleTrimmed ? (0,external_wp_i18n_namespaceObject.__)('(no title)') : null
29330            }), displayAuthor && currentAuthor && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29331              className: "wp-block-latest-posts__post-author",
29332              children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: byline. %s: author. */
29333              (0,external_wp_i18n_namespaceObject.__)('by %s'), currentAuthor.name)
29334            }), displayPostDate && post.date_gmt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
29335              dateTime: (0,external_wp_date_namespaceObject.format)('c', post.date_gmt),
29336              className: "wp-block-latest-posts__post-date",
29337              children: (0,external_wp_date_namespaceObject.dateI18n)(dateFormat, post.date_gmt)
29338            }), displayPostContent && displayPostContentRadio === 'excerpt' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29339              className: "wp-block-latest-posts__post-excerpt",
29340              children: postExcerpt
29341            }), displayPostContent && displayPostContentRadio === 'full_post' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29342              className: "wp-block-latest-posts__post-full-content",
29343              dangerouslySetInnerHTML: {
29344                __html: post.content.raw.trim()
29345              }
29346            })]
29347          }, post.id);
29348        })
29349      })]
29350    });
29351  }
29352  
29353  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
29354  /**
29355   * WordPress dependencies
29356   */
29357  
29358  
29359  /**
29360   * Internal dependencies
29361   */
29362  
29363  
29364  
29365  const latest_posts_metadata = {
29366    $schema: "https://schemas.wp.org/trunk/block.json",
29367    apiVersion: 3,
29368    name: "core/latest-posts",
29369    title: "Latest Posts",
29370    category: "widgets",
29371    description: "Display a list of your most recent posts.",
29372    keywords: ["recent posts"],
29373    textdomain: "default",
29374    attributes: {
29375      categories: {
29376        type: "array",
29377        items: {
29378          type: "object"
29379        }
29380      },
29381      selectedAuthor: {
29382        type: "number"
29383      },
29384      postsToShow: {
29385        type: "number",
29386        "default": 5
29387      },
29388      displayPostContent: {
29389        type: "boolean",
29390        "default": false
29391      },
29392      displayPostContentRadio: {
29393        type: "string",
29394        "default": "excerpt"
29395      },
29396      excerptLength: {
29397        type: "number",
29398        "default": 55
29399      },
29400      displayAuthor: {
29401        type: "boolean",
29402        "default": false
29403      },
29404      displayPostDate: {
29405        type: "boolean",
29406        "default": false
29407      },
29408      postLayout: {
29409        type: "string",
29410        "default": "list"
29411      },
29412      columns: {
29413        type: "number",
29414        "default": 3
29415      },
29416      order: {
29417        type: "string",
29418        "default": "desc"
29419      },
29420      orderBy: {
29421        type: "string",
29422        "default": "date"
29423      },
29424      displayFeaturedImage: {
29425        type: "boolean",
29426        "default": false
29427      },
29428      featuredImageAlign: {
29429        type: "string",
29430        "enum": ["left", "center", "right"]
29431      },
29432      featuredImageSizeSlug: {
29433        type: "string",
29434        "default": "thumbnail"
29435      },
29436      featuredImageSizeWidth: {
29437        type: "number",
29438        "default": null
29439      },
29440      featuredImageSizeHeight: {
29441        type: "number",
29442        "default": null
29443      },
29444      addLinkToFeaturedImage: {
29445        type: "boolean",
29446        "default": false
29447      }
29448    },
29449    supports: {
29450      align: true,
29451      html: false,
29452      color: {
29453        gradients: true,
29454        link: true,
29455        __experimentalDefaultControls: {
29456          background: true,
29457          text: true,
29458          link: true
29459        }
29460      },
29461      spacing: {
29462        margin: true,
29463        padding: true
29464      },
29465      typography: {
29466        fontSize: true,
29467        lineHeight: true,
29468        __experimentalFontFamily: true,
29469        __experimentalFontWeight: true,
29470        __experimentalFontStyle: true,
29471        __experimentalTextTransform: true,
29472        __experimentalTextDecoration: true,
29473        __experimentalLetterSpacing: true,
29474        __experimentalDefaultControls: {
29475          fontSize: true
29476        }
29477      },
29478      __experimentalBorder: {
29479        radius: true,
29480        color: true,
29481        width: true,
29482        style: true,
29483        __experimentalDefaultControls: {
29484          radius: true,
29485          color: true,
29486          width: true,
29487          style: true
29488        }
29489      },
29490      interactivity: {
29491        clientNavigation: true
29492      }
29493    },
29494    editorStyle: "wp-block-latest-posts-editor",
29495    style: "wp-block-latest-posts"
29496  };
29497  const {
29498    name: latest_posts_name
29499  } = latest_posts_metadata;
29500  
29501  const latest_posts_settings = {
29502    icon: post_list,
29503    example: {},
29504    edit: LatestPostsEdit,
29505    deprecated: latest_posts_deprecated
29506  };
29507  const latest_posts_init = () => initBlock({
29508    name: latest_posts_name,
29509    metadata: latest_posts_metadata,
29510    settings: latest_posts_settings
29511  });
29512  
29513  ;// ./node_modules/@wordpress/block-library/build-module/list/utils.js
29514  /**
29515   * WordPress dependencies
29516   */
29517  
29518  const LIST_STYLES = {
29519    A: 'upper-alpha',
29520    a: 'lower-alpha',
29521    I: 'upper-roman',
29522    i: 'lower-roman'
29523  };
29524  function createListBlockFromDOMElement(listElement) {
29525    const type = listElement.getAttribute('type');
29526    const listAttributes = {
29527      ordered: 'OL' === listElement.tagName,
29528      anchor: listElement.id === '' ? undefined : listElement.id,
29529      start: listElement.getAttribute('start') ? parseInt(listElement.getAttribute('start'), 10) : undefined,
29530      reversed: listElement.hasAttribute('reversed') ? true : undefined,
29531      type: type && LIST_STYLES[type] ? LIST_STYLES[type] : undefined
29532    };
29533    const innerBlocks = Array.from(listElement.children).map(listItem => {
29534      const children = Array.from(listItem.childNodes).filter(node => node.nodeType !== node.TEXT_NODE || node.textContent.trim().length !== 0);
29535      children.reverse();
29536      const [nestedList, ...nodes] = children;
29537      const hasNestedList = nestedList?.tagName === 'UL' || nestedList?.tagName === 'OL';
29538      if (!hasNestedList) {
29539        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
29540          content: listItem.innerHTML
29541        });
29542      }
29543      const htmlNodes = nodes.map(node => {
29544        if (node.nodeType === node.TEXT_NODE) {
29545          return node.textContent;
29546        }
29547        return node.outerHTML;
29548      });
29549      htmlNodes.reverse();
29550      const childAttributes = {
29551        content: htmlNodes.join('').trim()
29552      };
29553      const childInnerBlocks = [createListBlockFromDOMElement(nestedList)];
29554      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', childAttributes, childInnerBlocks);
29555    });
29556    return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', listAttributes, innerBlocks);
29557  }
29558  function migrateToListV2(attributes) {
29559    const {
29560      values,
29561      start,
29562      reversed,
29563      ordered,
29564      type,
29565      ...otherAttributes
29566    } = attributes;
29567    const list = document.createElement(ordered ? 'ol' : 'ul');
29568    list.innerHTML = values;
29569    if (start) {
29570      list.setAttribute('start', start);
29571    }
29572    if (reversed) {
29573      list.setAttribute('reversed', true);
29574    }
29575    if (type) {
29576      list.setAttribute('type', type);
29577    }
29578    const [listBlock] = (0,external_wp_blocks_namespaceObject.rawHandler)({
29579      HTML: list.outerHTML
29580    });
29581    return [{
29582      ...otherAttributes,
29583      ...listBlock.attributes
29584    }, listBlock.innerBlocks];
29585  }
29586  function migrateTypeToInlineStyle(attributes) {
29587    const {
29588      type
29589    } = attributes;
29590    if (type && LIST_STYLES[type]) {
29591      return {
29592        ...attributes,
29593        type: LIST_STYLES[type]
29594      };
29595    }
29596    return attributes;
29597  }
29598  
29599  ;// ./node_modules/@wordpress/block-library/build-module/list/deprecated.js
29600  /**
29601   * WordPress dependencies
29602   */
29603  
29604  
29605  /**
29606   * Internal dependencies
29607   */
29608  
29609  
29610  
29611  const v0 = {
29612    attributes: {
29613      ordered: {
29614        type: 'boolean',
29615        default: false,
29616        role: 'content'
29617      },
29618      values: {
29619        type: 'string',
29620        source: 'html',
29621        selector: 'ol,ul',
29622        multiline: 'li',
29623        __unstableMultilineWrapperTags: ['ol', 'ul'],
29624        default: '',
29625        role: 'content'
29626      },
29627      type: {
29628        type: 'string'
29629      },
29630      start: {
29631        type: 'number'
29632      },
29633      reversed: {
29634        type: 'boolean'
29635      },
29636      placeholder: {
29637        type: 'string'
29638      }
29639    },
29640    supports: {
29641      anchor: true,
29642      className: false,
29643      typography: {
29644        fontSize: true,
29645        __experimentalFontFamily: true
29646      },
29647      color: {
29648        gradients: true,
29649        link: true
29650      },
29651      __unstablePasteTextInline: true,
29652      __experimentalSelector: 'ol,ul',
29653      __experimentalSlashInserter: true
29654    },
29655    save({
29656      attributes
29657    }) {
29658      const {
29659        ordered,
29660        values,
29661        type,
29662        reversed,
29663        start
29664      } = attributes;
29665      const TagName = ordered ? 'ol' : 'ul';
29666      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29667        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29668          type,
29669          reversed,
29670          start
29671        }),
29672        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
29673          value: values,
29674          multiline: "li"
29675        })
29676      });
29677    },
29678    migrate: migrate_font_family,
29679    isEligible({
29680      style
29681    }) {
29682      return style?.typography?.fontFamily;
29683    }
29684  };
29685  const list_deprecated_v1 = {
29686    attributes: {
29687      ordered: {
29688        type: 'boolean',
29689        default: false,
29690        role: 'content'
29691      },
29692      values: {
29693        type: 'string',
29694        source: 'html',
29695        selector: 'ol,ul',
29696        multiline: 'li',
29697        __unstableMultilineWrapperTags: ['ol', 'ul'],
29698        default: '',
29699        role: 'content'
29700      },
29701      type: {
29702        type: 'string'
29703      },
29704      start: {
29705        type: 'number'
29706      },
29707      reversed: {
29708        type: 'boolean'
29709      },
29710      placeholder: {
29711        type: 'string'
29712      }
29713    },
29714    supports: {
29715      anchor: true,
29716      className: false,
29717      typography: {
29718        fontSize: true,
29719        __experimentalFontFamily: true,
29720        lineHeight: true,
29721        __experimentalFontStyle: true,
29722        __experimentalFontWeight: true,
29723        __experimentalLetterSpacing: true,
29724        __experimentalTextTransform: true,
29725        __experimentalDefaultControls: {
29726          fontSize: true
29727        }
29728      },
29729      color: {
29730        gradients: true,
29731        link: true,
29732        __experimentalDefaultControls: {
29733          background: true,
29734          text: true
29735        }
29736      },
29737      __unstablePasteTextInline: true,
29738      __experimentalSelector: 'ol,ul',
29739      __experimentalSlashInserter: true
29740    },
29741    save({
29742      attributes
29743    }) {
29744      const {
29745        ordered,
29746        values,
29747        type,
29748        reversed,
29749        start
29750      } = attributes;
29751      const TagName = ordered ? 'ol' : 'ul';
29752      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29753        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29754          type,
29755          reversed,
29756          start
29757        }),
29758        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
29759          value: values,
29760          multiline: "li"
29761        })
29762      });
29763    },
29764    migrate: migrateToListV2
29765  };
29766  
29767  // In #53301 changed to use the inline style instead of type attribute.
29768  const list_deprecated_v2 = {
29769    attributes: {
29770      ordered: {
29771        type: 'boolean',
29772        default: false,
29773        role: 'content'
29774      },
29775      values: {
29776        type: 'string',
29777        source: 'html',
29778        selector: 'ol,ul',
29779        multiline: 'li',
29780        __unstableMultilineWrapperTags: ['ol', 'ul'],
29781        default: '',
29782        role: 'content'
29783      },
29784      type: {
29785        type: 'string'
29786      },
29787      start: {
29788        type: 'number'
29789      },
29790      reversed: {
29791        type: 'boolean'
29792      },
29793      placeholder: {
29794        type: 'string'
29795      }
29796    },
29797    supports: {
29798      anchor: true,
29799      className: false,
29800      typography: {
29801        fontSize: true,
29802        lineHeight: true,
29803        __experimentalFontFamily: true,
29804        __experimentalFontWeight: true,
29805        __experimentalFontStyle: true,
29806        __experimentalTextTransform: true,
29807        __experimentalTextDecoration: true,
29808        __experimentalLetterSpacing: true,
29809        __experimentalDefaultControls: {
29810          fontSize: true
29811        }
29812      },
29813      color: {
29814        gradients: true,
29815        link: true,
29816        __experimentalDefaultControls: {
29817          background: true,
29818          text: true
29819        }
29820      },
29821      spacing: {
29822        margin: true,
29823        padding: true,
29824        __experimentalDefaultControls: {
29825          margin: false,
29826          padding: false
29827        }
29828      },
29829      __unstablePasteTextInline: true,
29830      __experimentalSelector: 'ol,ul',
29831      __experimentalSlashInserter: true
29832    },
29833    isEligible({
29834      type
29835    }) {
29836      return !!type;
29837    },
29838    save({
29839      attributes
29840    }) {
29841      const {
29842        ordered,
29843        type,
29844        reversed,
29845        start
29846      } = attributes;
29847      const TagName = ordered ? 'ol' : 'ul';
29848      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29849        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29850          type,
29851          reversed,
29852          start
29853        }),
29854        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
29855      });
29856    },
29857    migrate: migrateTypeToInlineStyle
29858  };
29859  
29860  // Version without block support 'className: true'.
29861  const list_deprecated_v3 = {
29862    attributes: {
29863      ordered: {
29864        type: 'boolean',
29865        default: false,
29866        role: 'content'
29867      },
29868      values: {
29869        type: 'string',
29870        source: 'html',
29871        selector: 'ol,ul',
29872        multiline: 'li',
29873        __unstableMultilineWrapperTags: ['ol', 'ul'],
29874        default: '',
29875        role: 'content'
29876      },
29877      type: {
29878        type: 'string'
29879      },
29880      start: {
29881        type: 'number'
29882      },
29883      reversed: {
29884        type: 'boolean'
29885      },
29886      placeholder: {
29887        type: 'string'
29888      }
29889    },
29890    supports: {
29891      anchor: true,
29892      className: false,
29893      typography: {
29894        fontSize: true,
29895        lineHeight: true,
29896        __experimentalFontFamily: true,
29897        __experimentalFontWeight: true,
29898        __experimentalFontStyle: true,
29899        __experimentalTextTransform: true,
29900        __experimentalTextDecoration: true,
29901        __experimentalLetterSpacing: true,
29902        __experimentalDefaultControls: {
29903          fontSize: true
29904        }
29905      },
29906      color: {
29907        gradients: true,
29908        link: true,
29909        __experimentalDefaultControls: {
29910          background: true,
29911          text: true
29912        }
29913      },
29914      spacing: {
29915        margin: true,
29916        padding: true,
29917        __experimentalDefaultControls: {
29918          margin: false,
29919          padding: false
29920        }
29921      },
29922      __unstablePasteTextInline: true,
29923      __experimentalSelector: 'ol,ul',
29924      __experimentalOnMerge: 'true',
29925      __experimentalSlashInserter: true
29926    },
29927    save({
29928      attributes
29929    }) {
29930      const {
29931        ordered,
29932        type,
29933        reversed,
29934        start
29935      } = attributes;
29936      const TagName = ordered ? 'ol' : 'ul';
29937      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29938        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29939          reversed,
29940          start,
29941          style: {
29942            listStyleType: ordered && type !== 'decimal' ? type : undefined
29943          }
29944        }),
29945        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
29946      });
29947    }
29948  };
29949  
29950  /**
29951   * New deprecations need to be placed first
29952   * for them to have higher priority.
29953   *
29954   * Old deprecations may need to be updated as well.
29955   *
29956   * See block-deprecation.md
29957   */
29958  /* harmony default export */ const list_deprecated = ([list_deprecated_v3, list_deprecated_v2, list_deprecated_v1, v0]);
29959  
29960  ;// ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js
29961  /**
29962   * WordPress dependencies
29963   */
29964  
29965  
29966  const formatOutdentRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29967    xmlns: "http://www.w3.org/2000/svg",
29968    viewBox: "0 0 24 24",
29969    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29970      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"
29971    })
29972  });
29973  /* harmony default export */ const format_outdent_rtl = (formatOutdentRTL);
29974  
29975  ;// ./node_modules/@wordpress/icons/build-module/library/format-outdent.js
29976  /**
29977   * WordPress dependencies
29978   */
29979  
29980  
29981  const formatOutdent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29982    xmlns: "http://www.w3.org/2000/svg",
29983    viewBox: "0 0 24 24",
29984    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29985      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"
29986    })
29987  });
29988  /* harmony default export */ const format_outdent = (formatOutdent);
29989  
29990  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js
29991  /**
29992   * WordPress dependencies
29993   */
29994  
29995  
29996  const formatListBulletsRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29997    xmlns: "http://www.w3.org/2000/svg",
29998    viewBox: "0 0 24 24",
29999    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30000      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"
30001    })
30002  });
30003  /* harmony default export */ const format_list_bullets_rtl = (formatListBulletsRTL);
30004  
30005  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js
30006  /**
30007   * WordPress dependencies
30008   */
30009  
30010  
30011  const formatListBullets = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30012    xmlns: "http://www.w3.org/2000/svg",
30013    viewBox: "0 0 24 24",
30014    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30015      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"
30016    })
30017  });
30018  /* harmony default export */ const format_list_bullets = (formatListBullets);
30019  
30020  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js
30021  /**
30022   * WordPress dependencies
30023   */
30024  
30025  
30026  const formatListNumberedRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30027    xmlns: "http://www.w3.org/2000/svg",
30028    viewBox: "0 0 24 24",
30029    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30030      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"
30031    })
30032  });
30033  /* harmony default export */ const format_list_numbered_rtl = (formatListNumberedRTL);
30034  
30035  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js
30036  /**
30037   * WordPress dependencies
30038   */
30039  
30040  
30041  const formatListNumbered = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30042    xmlns: "http://www.w3.org/2000/svg",
30043    viewBox: "0 0 24 24",
30044    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30045      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"
30046    })
30047  });
30048  /* harmony default export */ const format_list_numbered = (formatListNumbered);
30049  
30050  ;// external ["wp","deprecated"]
30051  const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
30052  var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
30053  ;// ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js
30054  /**
30055   * WordPress dependencies
30056   */
30057  
30058  
30059  
30060  
30061  const OrderedListSettings = ({
30062    setAttributes,
30063    reversed,
30064    start,
30065    type
30066  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
30067    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
30068      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
30069      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
30070        __next40pxDefaultSize: true,
30071        __nextHasNoMarginBottom: true,
30072        label: (0,external_wp_i18n_namespaceObject.__)('List style'),
30073        options: [{
30074          label: (0,external_wp_i18n_namespaceObject.__)('Numbers'),
30075          value: 'decimal'
30076        }, {
30077          label: (0,external_wp_i18n_namespaceObject.__)('Uppercase letters'),
30078          value: 'upper-alpha'
30079        }, {
30080          label: (0,external_wp_i18n_namespaceObject.__)('Lowercase letters'),
30081          value: 'lower-alpha'
30082        }, {
30083          label: (0,external_wp_i18n_namespaceObject.__)('Uppercase Roman numerals'),
30084          value: 'upper-roman'
30085        }, {
30086          label: (0,external_wp_i18n_namespaceObject.__)('Lowercase Roman numerals'),
30087          value: 'lower-roman'
30088        }],
30089        value: type,
30090        onChange: newValue => setAttributes({
30091          type: newValue
30092        })
30093      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
30094        __next40pxDefaultSize: true,
30095        __nextHasNoMarginBottom: true,
30096        label: (0,external_wp_i18n_namespaceObject.__)('Start value'),
30097        type: "number",
30098        onChange: value => {
30099          const int = parseInt(value, 10);
30100          setAttributes({
30101            // It should be possible to unset the value,
30102            // e.g. with an empty string.
30103            start: isNaN(int) ? undefined : int
30104          });
30105        },
30106        value: Number.isInteger(start) ? start.toString(10) : '',
30107        step: "1"
30108      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
30109        __nextHasNoMarginBottom: true,
30110        label: (0,external_wp_i18n_namespaceObject.__)('Reverse order'),
30111        checked: reversed || false,
30112        onChange: value => {
30113          setAttributes({
30114            // Unset the attribute if not reversed.
30115            reversed: value || undefined
30116          });
30117        }
30118      })]
30119    })
30120  });
30121  /* harmony default export */ const ordered_list_settings = (OrderedListSettings);
30122  
30123  ;// ./node_modules/@wordpress/block-library/build-module/list/tag-name.js
30124  /**
30125   * WordPress dependencies
30126   */
30127  
30128  
30129  function TagName(props, ref) {
30130    const {
30131      ordered,
30132      ...extraProps
30133    } = props;
30134    const Tag = ordered ? 'ol' : 'ul';
30135    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
30136      ref: ref,
30137      ...extraProps
30138    });
30139  }
30140  /* harmony default export */ const tag_name = ((0,external_wp_element_namespaceObject.forwardRef)(TagName));
30141  
30142  ;// ./node_modules/@wordpress/block-library/build-module/list/edit.js
30143  /**
30144   * WordPress dependencies
30145   */
30146  
30147  
30148  
30149  
30150  
30151  
30152  
30153  
30154  
30155  /**
30156   * Internal dependencies
30157   */
30158  
30159  
30160  
30161  
30162  const list_edit_DEFAULT_BLOCK = {
30163    name: 'core/list-item'
30164  };
30165  const list_edit_TEMPLATE = [['core/list-item']];
30166  const NATIVE_MARGIN_SPACING = 8;
30167  
30168  /**
30169   * At the moment, deprecations don't handle create blocks from attributes
30170   * (like when using CPT templates). For this reason, this hook is necessary
30171   * to avoid breaking templates using the old list block format.
30172   *
30173   * @param {Object} attributes Block attributes.
30174   * @param {string} clientId   Block client ID.
30175   */
30176  function useMigrateOnLoad(attributes, clientId) {
30177    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30178    const {
30179      updateBlockAttributes,
30180      replaceInnerBlocks
30181    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30182    (0,external_wp_element_namespaceObject.useEffect)(() => {
30183      // As soon as the block is loaded, migrate it to the new version.
30184  
30185      if (!attributes.values) {
30186        return;
30187      }
30188      const [newAttributes, newInnerBlocks] = migrateToListV2(attributes);
30189      external_wp_deprecated_default()('Value attribute on the list block', {
30190        since: '6.0',
30191        version: '6.5',
30192        alternative: 'inner blocks'
30193      });
30194      registry.batch(() => {
30195        updateBlockAttributes(clientId, newAttributes);
30196        replaceInnerBlocks(clientId, newInnerBlocks);
30197      });
30198    }, [attributes.values]);
30199  }
30200  function useOutdentList(clientId) {
30201    const {
30202      replaceBlocks,
30203      selectionChange
30204    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30205    const {
30206      getBlockRootClientId,
30207      getBlockAttributes,
30208      getBlock
30209    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30210    return (0,external_wp_element_namespaceObject.useCallback)(() => {
30211      const parentBlockId = getBlockRootClientId(clientId);
30212      const parentBlockAttributes = getBlockAttributes(parentBlockId);
30213      // Create a new parent block without the inner blocks.
30214      const newParentBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', parentBlockAttributes);
30215      const {
30216        innerBlocks
30217      } = getBlock(clientId);
30218      // Replace the parent block with a new parent block without inner blocks,
30219      // and make the inner blocks siblings of the parent.
30220      replaceBlocks([parentBlockId], [newParentBlock, ...innerBlocks]);
30221      // Select the last child of the list being outdent.
30222      selectionChange(innerBlocks[innerBlocks.length - 1].clientId);
30223    }, [clientId]);
30224  }
30225  function IndentUI({
30226    clientId
30227  }) {
30228    const outdentList = useOutdentList(clientId);
30229    const canOutdent = (0,external_wp_data_namespaceObject.useSelect)(select => {
30230      const {
30231        getBlockRootClientId,
30232        getBlockName
30233      } = select(external_wp_blockEditor_namespaceObject.store);
30234      return getBlockName(getBlockRootClientId(clientId)) === 'core/list-item';
30235    }, [clientId]);
30236    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30237      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30238        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
30239        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
30240        description: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
30241        disabled: !canOutdent,
30242        onClick: outdentList
30243      })
30244    });
30245  }
30246  function list_edit_Edit({
30247    attributes,
30248    setAttributes,
30249    clientId,
30250    style
30251  }) {
30252    const {
30253      ordered,
30254      type,
30255      reversed,
30256      start
30257    } = attributes;
30258    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
30259      style: {
30260        ...(external_wp_element_namespaceObject.Platform.isNative && style),
30261        listStyleType: ordered && type !== 'decimal' ? type : undefined
30262      }
30263    });
30264    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
30265      defaultBlock: list_edit_DEFAULT_BLOCK,
30266      directInsert: true,
30267      template: list_edit_TEMPLATE,
30268      templateLock: false,
30269      templateInsertUpdatesSelection: true,
30270      ...(external_wp_element_namespaceObject.Platform.isNative && {
30271        marginVertical: NATIVE_MARGIN_SPACING,
30272        marginHorizontal: NATIVE_MARGIN_SPACING,
30273        renderAppender: false
30274      }),
30275      __experimentalCaptureToolbars: true
30276    });
30277    useMigrateOnLoad(attributes, clientId);
30278    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
30279      group: "block",
30280      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30281        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_bullets_rtl : format_list_bullets,
30282        title: (0,external_wp_i18n_namespaceObject.__)('Unordered'),
30283        description: (0,external_wp_i18n_namespaceObject.__)('Convert to unordered list'),
30284        isActive: ordered === false,
30285        onClick: () => {
30286          setAttributes({
30287            ordered: false
30288          });
30289        }
30290      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30291        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_numbered_rtl : format_list_numbered,
30292        title: (0,external_wp_i18n_namespaceObject.__)('Ordered'),
30293        description: (0,external_wp_i18n_namespaceObject.__)('Convert to ordered list'),
30294        isActive: ordered === true,
30295        onClick: () => {
30296          setAttributes({
30297            ordered: true
30298          });
30299        }
30300      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(IndentUI, {
30301        clientId: clientId
30302      })]
30303    });
30304    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30305      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(tag_name, {
30306        ordered: ordered,
30307        reversed: reversed,
30308        start: start,
30309        ...innerBlocksProps
30310      }), controls, ordered && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ordered_list_settings, {
30311        setAttributes,
30312        reversed,
30313        start,
30314        type
30315      })]
30316    });
30317  }
30318  
30319  ;// ./node_modules/@wordpress/block-library/build-module/list/save.js
30320  /**
30321   * WordPress dependencies
30322   */
30323  
30324  
30325  function list_save_save({
30326    attributes
30327  }) {
30328    const {
30329      ordered,
30330      type,
30331      reversed,
30332      start
30333    } = attributes;
30334    const TagName = ordered ? 'ol' : 'ul';
30335    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
30336      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
30337        reversed,
30338        start,
30339        style: {
30340          listStyleType: ordered && type !== 'decimal' ? type : undefined
30341        }
30342      }),
30343      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
30344    });
30345  }
30346  
30347  ;// ./node_modules/@wordpress/block-library/build-module/list/transforms.js
30348  /**
30349   * WordPress dependencies
30350   */
30351  
30352  
30353  
30354  /**
30355   * Internal dependencies
30356   */
30357  
30358  function getListContentSchema({
30359    phrasingContentSchema
30360  }) {
30361    const listContentSchema = {
30362      ...phrasingContentSchema,
30363      ul: {},
30364      ol: {
30365        attributes: ['type', 'start', 'reversed']
30366      }
30367    };
30368  
30369    // Recursion is needed.
30370    // Possible: ul > li > ul.
30371    // Impossible: ul > ul.
30372    ['ul', 'ol'].forEach(tag => {
30373      listContentSchema[tag].children = {
30374        li: {
30375          children: listContentSchema
30376        }
30377      };
30378    });
30379    return listContentSchema;
30380  }
30381  function getListContentFlat(blocks) {
30382    return blocks.flatMap(({
30383      name,
30384      attributes,
30385      innerBlocks = []
30386    }) => {
30387      if (name === 'core/list-item') {
30388        return [attributes.content, ...getListContentFlat(innerBlocks)];
30389      }
30390      return getListContentFlat(innerBlocks);
30391    });
30392  }
30393  const list_transforms_transforms = {
30394    from: [{
30395      type: 'block',
30396      isMultiBlock: true,
30397      blocks: ['core/paragraph', 'core/heading'],
30398      transform: blockAttributes => {
30399        let childBlocks = [];
30400        if (blockAttributes.length > 1) {
30401          childBlocks = blockAttributes.map(({
30402            content
30403          }) => {
30404            return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30405              content
30406            });
30407          });
30408        } else if (blockAttributes.length === 1) {
30409          const value = (0,external_wp_richText_namespaceObject.create)({
30410            html: blockAttributes[0].content
30411          });
30412          childBlocks = (0,external_wp_richText_namespaceObject.split)(value, '\n').map(result => {
30413            return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30414              content: (0,external_wp_richText_namespaceObject.toHTMLString)({
30415                value: result
30416              })
30417            });
30418          });
30419        }
30420        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
30421          anchor: blockAttributes.anchor
30422        }, childBlocks);
30423      }
30424    }, {
30425      type: 'raw',
30426      selector: 'ol,ul',
30427      schema: args => ({
30428        ol: getListContentSchema(args).ol,
30429        ul: getListContentSchema(args).ul
30430      }),
30431      transform: createListBlockFromDOMElement
30432    }, ...['*', '-'].map(prefix => ({
30433      type: 'prefix',
30434      prefix,
30435      transform(content) {
30436        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30437          content
30438        })]);
30439      }
30440    })), ...['1.', '1)'].map(prefix => ({
30441      type: 'prefix',
30442      prefix,
30443      transform(content) {
30444        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
30445          ordered: true
30446        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30447          content
30448        })]);
30449      }
30450    }))],
30451    to: [...['core/paragraph', 'core/heading'].map(block => ({
30452      type: 'block',
30453      blocks: [block],
30454      transform: (_attributes, childBlocks) => {
30455        return getListContentFlat(childBlocks).map(content => (0,external_wp_blocks_namespaceObject.createBlock)(block, {
30456          content
30457        }));
30458      }
30459    }))]
30460  };
30461  /* harmony default export */ const list_transforms = (list_transforms_transforms);
30462  
30463  ;// ./node_modules/@wordpress/block-library/build-module/list/index.js
30464  /**
30465   * WordPress dependencies
30466   */
30467  
30468  
30469  
30470  /**
30471   * Internal dependencies
30472   */
30473  
30474  
30475  
30476  const list_metadata = {
30477    $schema: "https://schemas.wp.org/trunk/block.json",
30478    apiVersion: 3,
30479    name: "core/list",
30480    title: "List",
30481    category: "text",
30482    allowedBlocks: ["core/list-item"],
30483    description: "An organized collection of items displayed in a specific order.",
30484    keywords: ["bullet list", "ordered list", "numbered list"],
30485    textdomain: "default",
30486    attributes: {
30487      ordered: {
30488        type: "boolean",
30489        "default": false,
30490        role: "content"
30491      },
30492      values: {
30493        type: "string",
30494        source: "html",
30495        selector: "ol,ul",
30496        multiline: "li",
30497        __unstableMultilineWrapperTags: ["ol", "ul"],
30498        "default": "",
30499        role: "content"
30500      },
30501      type: {
30502        type: "string"
30503      },
30504      start: {
30505        type: "number"
30506      },
30507      reversed: {
30508        type: "boolean"
30509      },
30510      placeholder: {
30511        type: "string"
30512      }
30513    },
30514    supports: {
30515      anchor: true,
30516      html: false,
30517      __experimentalBorder: {
30518        color: true,
30519        radius: true,
30520        style: true,
30521        width: true
30522      },
30523      typography: {
30524        fontSize: true,
30525        lineHeight: true,
30526        __experimentalFontFamily: true,
30527        __experimentalFontWeight: true,
30528        __experimentalFontStyle: true,
30529        __experimentalTextTransform: true,
30530        __experimentalTextDecoration: true,
30531        __experimentalLetterSpacing: true,
30532        __experimentalDefaultControls: {
30533          fontSize: true
30534        }
30535      },
30536      color: {
30537        gradients: true,
30538        link: true,
30539        __experimentalDefaultControls: {
30540          background: true,
30541          text: true
30542        }
30543      },
30544      spacing: {
30545        margin: true,
30546        padding: true,
30547        __experimentalDefaultControls: {
30548          margin: false,
30549          padding: false
30550        }
30551      },
30552      __unstablePasteTextInline: true,
30553      __experimentalOnMerge: true,
30554      __experimentalSlashInserter: true,
30555      interactivity: {
30556        clientNavigation: true
30557      }
30558    },
30559    selectors: {
30560      border: ".wp-block-list:not(.wp-block-list .wp-block-list)"
30561    },
30562    editorStyle: "wp-block-list-editor",
30563    style: "wp-block-list"
30564  };
30565  
30566  
30567  const {
30568    name: list_name
30569  } = list_metadata;
30570  
30571  const list_settings = {
30572    icon: library_list,
30573    example: {
30574      innerBlocks: [{
30575        name: 'core/list-item',
30576        attributes: {
30577          content: (0,external_wp_i18n_namespaceObject.__)('Alice.')
30578        }
30579      }, {
30580        name: 'core/list-item',
30581        attributes: {
30582          content: (0,external_wp_i18n_namespaceObject.__)('The White Rabbit.')
30583        }
30584      }, {
30585        name: 'core/list-item',
30586        attributes: {
30587          content: (0,external_wp_i18n_namespaceObject.__)('The Cheshire Cat.')
30588        }
30589      }, {
30590        name: 'core/list-item',
30591        attributes: {
30592          content: (0,external_wp_i18n_namespaceObject.__)('The Mad Hatter.')
30593        }
30594      }, {
30595        name: 'core/list-item',
30596        attributes: {
30597          content: (0,external_wp_i18n_namespaceObject.__)('The Queen of Hearts.')
30598        }
30599      }]
30600    },
30601    transforms: list_transforms,
30602    edit: list_edit_Edit,
30603    save: list_save_save,
30604    deprecated: list_deprecated
30605  };
30606  
30607  const list_init = () => initBlock({
30608    name: list_name,
30609    metadata: list_metadata,
30610    settings: list_settings
30611  });
30612  
30613  ;// ./node_modules/@wordpress/icons/build-module/library/list-item.js
30614  /**
30615   * WordPress dependencies
30616   */
30617  
30618  
30619  const listItem = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30620    xmlns: "http://www.w3.org/2000/svg",
30621    viewBox: "0 0 24 24",
30622    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30623      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"
30624    })
30625  });
30626  /* harmony default export */ const list_item = (listItem);
30627  
30628  ;// ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js
30629  /**
30630   * WordPress dependencies
30631   */
30632  
30633  
30634  const formatIndentRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30635    xmlns: "http://www.w3.org/2000/svg",
30636    viewBox: "0 0 24 24",
30637    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30638      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"
30639    })
30640  });
30641  /* harmony default export */ const format_indent_rtl = (formatIndentRTL);
30642  
30643  ;// ./node_modules/@wordpress/icons/build-module/library/format-indent.js
30644  /**
30645   * WordPress dependencies
30646   */
30647  
30648  
30649  const formatIndent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30650    xmlns: "http://www.w3.org/2000/svg",
30651    viewBox: "0 0 24 24",
30652    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30653      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"
30654    })
30655  });
30656  /* harmony default export */ const format_indent = (formatIndent);
30657  
30658  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-indent-list-item.js
30659  /**
30660   * WordPress dependencies
30661   */
30662  
30663  
30664  
30665  
30666  function useIndentListItem(clientId) {
30667    const {
30668      replaceBlocks,
30669      selectionChange,
30670      multiSelect
30671    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30672    const {
30673      getBlock,
30674      getPreviousBlockClientId,
30675      getSelectionStart,
30676      getSelectionEnd,
30677      hasMultiSelection,
30678      getMultiSelectedBlockClientIds
30679    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30680    return (0,external_wp_element_namespaceObject.useCallback)(() => {
30681      const _hasMultiSelection = hasMultiSelection();
30682      const clientIds = _hasMultiSelection ? getMultiSelectedBlockClientIds() : [clientId];
30683      const clonedBlocks = clientIds.map(_clientId => (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(_clientId)));
30684      const previousSiblingId = getPreviousBlockClientId(clientId);
30685      const newListItem = (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(previousSiblingId));
30686      // If the sibling has no innerBlocks, create a new `list` block.
30687      if (!newListItem.innerBlocks?.length) {
30688        newListItem.innerBlocks = [(0,external_wp_blocks_namespaceObject.createBlock)('core/list')];
30689      }
30690      // A list item usually has one `list`, but it's possible to have
30691      // more. So we need to preserve the previous `list` blocks and
30692      // merge the new blocks to the last `list`.
30693      newListItem.innerBlocks[newListItem.innerBlocks.length - 1].innerBlocks.push(...clonedBlocks);
30694  
30695      // We get the selection start/end here, because when
30696      // we replace blocks, the selection is updated too.
30697      const selectionStart = getSelectionStart();
30698      const selectionEnd = getSelectionEnd();
30699      // Replace the previous sibling of the block being indented and the indented blocks,
30700      // with a new block whose attributes are equal to the ones of the previous sibling and
30701      // whose descendants are the children of the previous sibling, followed by the indented blocks.
30702      replaceBlocks([previousSiblingId, ...clientIds], [newListItem]);
30703      if (!_hasMultiSelection) {
30704        selectionChange(clonedBlocks[0].clientId, selectionEnd.attributeKey, selectionEnd.clientId === selectionStart.clientId ? selectionStart.offset : selectionEnd.offset, selectionEnd.offset);
30705      } else {
30706        multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId);
30707      }
30708      return true;
30709    }, [clientId]);
30710  }
30711  
30712  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-outdent-list-item.js
30713  /**
30714   * WordPress dependencies
30715   */
30716  
30717  
30718  
30719  
30720  function useOutdentListItem() {
30721    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30722    const {
30723      moveBlocksToPosition,
30724      removeBlock,
30725      insertBlock,
30726      updateBlockListSettings
30727    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30728    const {
30729      getBlockRootClientId,
30730      getBlockName,
30731      getBlockOrder,
30732      getBlockIndex,
30733      getSelectedBlockClientIds,
30734      getBlock,
30735      getBlockListSettings
30736    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30737    function getParentListItemId(id) {
30738      const listId = getBlockRootClientId(id);
30739      const parentListItemId = getBlockRootClientId(listId);
30740      if (!parentListItemId) {
30741        return;
30742      }
30743      if (getBlockName(parentListItemId) !== 'core/list-item') {
30744        return;
30745      }
30746      return parentListItemId;
30747    }
30748    return (0,external_wp_element_namespaceObject.useCallback)((clientIds = getSelectedBlockClientIds()) => {
30749      if (!Array.isArray(clientIds)) {
30750        clientIds = [clientIds];
30751      }
30752      if (!clientIds.length) {
30753        return;
30754      }
30755      const firstClientId = clientIds[0];
30756  
30757      // Can't outdent if it's not a list item.
30758      if (getBlockName(firstClientId) !== 'core/list-item') {
30759        return;
30760      }
30761      const parentListItemId = getParentListItemId(firstClientId);
30762  
30763      // Can't outdent if it's at the top level.
30764      if (!parentListItemId) {
30765        return;
30766      }
30767      const parentListId = getBlockRootClientId(firstClientId);
30768      const lastClientId = clientIds[clientIds.length - 1];
30769      const order = getBlockOrder(parentListId);
30770      const followingListItems = order.slice(getBlockIndex(lastClientId) + 1);
30771      registry.batch(() => {
30772        if (followingListItems.length) {
30773          let nestedListId = getBlockOrder(firstClientId)[0];
30774          if (!nestedListId) {
30775            const nestedListBlock = (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(parentListId), {}, []);
30776            nestedListId = nestedListBlock.clientId;
30777            insertBlock(nestedListBlock, 0, firstClientId, false);
30778            // Immediately update the block list settings, otherwise
30779            // blocks can't be moved here due to canInsert checks.
30780            updateBlockListSettings(nestedListId, getBlockListSettings(parentListId));
30781          }
30782          moveBlocksToPosition(followingListItems, parentListId, nestedListId);
30783        }
30784        moveBlocksToPosition(clientIds, parentListId, getBlockRootClientId(parentListItemId), getBlockIndex(parentListItemId) + 1);
30785        if (!getBlockOrder(parentListId).length) {
30786          const shouldSelectParent = false;
30787          removeBlock(parentListId, shouldSelectParent);
30788        }
30789      });
30790      return true;
30791    }, []);
30792  }
30793  
30794  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-enter.js
30795  /**
30796   * WordPress dependencies
30797   */
30798  
30799  
30800  
30801  
30802  
30803  
30804  
30805  /**
30806   * Internal dependencies
30807   */
30808  
30809  function use_enter_useEnter(props) {
30810    const {
30811      replaceBlocks,
30812      selectionChange
30813    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30814    const {
30815      getBlock,
30816      getBlockRootClientId,
30817      getBlockIndex,
30818      getBlockName
30819    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30820    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
30821    propsRef.current = props;
30822    const outdentListItem = useOutdentListItem();
30823    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
30824      function onKeyDown(event) {
30825        if (event.defaultPrevented || event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
30826          return;
30827        }
30828        const {
30829          content,
30830          clientId
30831        } = propsRef.current;
30832        if (content.length) {
30833          return;
30834        }
30835        event.preventDefault();
30836        const canOutdent = getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item';
30837        if (canOutdent) {
30838          outdentListItem();
30839          return;
30840        }
30841        // Here we are in top level list so we need to split.
30842        const topParentListBlock = getBlock(getBlockRootClientId(clientId));
30843        const blockIndex = getBlockIndex(clientId);
30844        const head = (0,external_wp_blocks_namespaceObject.cloneBlock)({
30845          ...topParentListBlock,
30846          innerBlocks: topParentListBlock.innerBlocks.slice(0, blockIndex)
30847        });
30848        const middle = (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)());
30849        // Last list item might contain a `list` block innerBlock
30850        // In that case append remaining innerBlocks blocks.
30851        const after = [...(topParentListBlock.innerBlocks[blockIndex].innerBlocks[0]?.innerBlocks || []), ...topParentListBlock.innerBlocks.slice(blockIndex + 1)];
30852        const tail = after.length ? [(0,external_wp_blocks_namespaceObject.cloneBlock)({
30853          ...topParentListBlock,
30854          innerBlocks: after
30855        })] : [];
30856        replaceBlocks(topParentListBlock.clientId, [head, middle, ...tail], 1);
30857        // We manually change the selection here because we are replacing
30858        // a different block than the selected one.
30859        selectionChange(middle.clientId);
30860      }
30861      element.addEventListener('keydown', onKeyDown);
30862      return () => {
30863        element.removeEventListener('keydown', onKeyDown);
30864      };
30865    }, []);
30866  }
30867  
30868  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-space.js
30869  /**
30870   * WordPress dependencies
30871   */
30872  
30873  
30874  
30875  
30876  
30877  /**
30878   * Internal dependencies
30879   */
30880  
30881  
30882  function useSpace(clientId) {
30883    const {
30884      getSelectionStart,
30885      getSelectionEnd,
30886      getBlockIndex
30887    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30888    const indentListItem = useIndentListItem(clientId);
30889    const outdentListItem = useOutdentListItem();
30890    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
30891      function onKeyDown(event) {
30892        const {
30893          keyCode,
30894          shiftKey,
30895          altKey,
30896          metaKey,
30897          ctrlKey
30898        } = event;
30899        if (event.defaultPrevented || keyCode !== external_wp_keycodes_namespaceObject.SPACE && keyCode !== external_wp_keycodes_namespaceObject.TAB ||
30900        // Only override when no modifiers are pressed.
30901        altKey || metaKey || ctrlKey) {
30902          return;
30903        }
30904        const selectionStart = getSelectionStart();
30905        const selectionEnd = getSelectionEnd();
30906        if (selectionStart.offset === 0 && selectionEnd.offset === 0) {
30907          if (shiftKey) {
30908            // Note that backspace behaviour in defined in onMerge.
30909            if (keyCode === external_wp_keycodes_namespaceObject.TAB) {
30910              if (outdentListItem()) {
30911                event.preventDefault();
30912              }
30913            }
30914          } else if (getBlockIndex(clientId) !== 0) {
30915            if (indentListItem()) {
30916              event.preventDefault();
30917            }
30918          }
30919        }
30920      }
30921      element.addEventListener('keydown', onKeyDown);
30922      return () => {
30923        element.removeEventListener('keydown', onKeyDown);
30924      };
30925    }, [clientId, indentListItem]);
30926  }
30927  
30928  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-merge.js
30929  /**
30930   * WordPress dependencies
30931   */
30932  
30933  
30934  
30935  /**
30936   * Internal dependencies
30937   */
30938  
30939  function useMerge(clientId, onMerge) {
30940    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30941    const {
30942      getPreviousBlockClientId,
30943      getNextBlockClientId,
30944      getBlockOrder,
30945      getBlockRootClientId,
30946      getBlockName
30947    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30948    const {
30949      mergeBlocks,
30950      moveBlocksToPosition
30951    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30952    const outdentListItem = useOutdentListItem();
30953    function getTrailingId(id) {
30954      const order = getBlockOrder(id);
30955      if (!order.length) {
30956        return id;
30957      }
30958      return getTrailingId(order[order.length - 1]);
30959    }
30960    function getParentListItemId(id) {
30961      const listId = getBlockRootClientId(id);
30962      const parentListItemId = getBlockRootClientId(listId);
30963      if (!parentListItemId) {
30964        return;
30965      }
30966      if (getBlockName(parentListItemId) !== 'core/list-item') {
30967        return;
30968      }
30969      return parentListItemId;
30970    }
30971  
30972    /**
30973     * Return the next list item with respect to the given list item. If none,
30974     * return the next list item of the parent list item if it exists.
30975     *
30976     * @param {string} id A list item client ID.
30977     * @return {?string} The client ID of the next list item.
30978     */
30979    function _getNextId(id) {
30980      const next = getNextBlockClientId(id);
30981      if (next) {
30982        return next;
30983      }
30984      const parentListItemId = getParentListItemId(id);
30985      if (!parentListItemId) {
30986        return;
30987      }
30988      return _getNextId(parentListItemId);
30989    }
30990  
30991    /**
30992     * Given a client ID, return the client ID of the list item on the next
30993     * line, regardless of indentation level.
30994     *
30995     * @param {string} id The client ID of the current list item.
30996     * @return {?string} The client ID of the next list item.
30997     */
30998    function getNextId(id) {
30999      const order = getBlockOrder(id);
31000  
31001      // If the list item does not have a nested list, return the next list
31002      // item.
31003      if (!order.length) {
31004        return _getNextId(id);
31005      }
31006  
31007      // Get the first list item in the nested list.
31008      return getBlockOrder(order[0])[0];
31009    }
31010    return forward => {
31011      function mergeWithNested(clientIdA, clientIdB) {
31012        registry.batch(() => {
31013          // When merging a sub list item with a higher next list item, we
31014          // also need to move any nested list items. Check if there's a
31015          // listed list, and append its nested list items to the current
31016          // list.
31017          const [nestedListClientId] = getBlockOrder(clientIdB);
31018          if (nestedListClientId) {
31019            // If we are merging with the previous list item, and the
31020            // previous list item does not have nested list, move the
31021            // nested list to the previous list item.
31022            if (getPreviousBlockClientId(clientIdB) === clientIdA && !getBlockOrder(clientIdA).length) {
31023              moveBlocksToPosition([nestedListClientId], clientIdB, clientIdA);
31024            } else {
31025              moveBlocksToPosition(getBlockOrder(nestedListClientId), nestedListClientId, getBlockRootClientId(clientIdA));
31026            }
31027          }
31028          mergeBlocks(clientIdA, clientIdB);
31029        });
31030      }
31031      if (forward) {
31032        const nextBlockClientId = getNextId(clientId);
31033        if (!nextBlockClientId) {
31034          onMerge(forward);
31035          return;
31036        }
31037        if (getParentListItemId(nextBlockClientId)) {
31038          outdentListItem(nextBlockClientId);
31039        } else {
31040          mergeWithNested(clientId, nextBlockClientId);
31041        }
31042      } else {
31043        // Merging is only done from the top level. For lowel levels, the
31044        // list item is outdented instead.
31045        const previousBlockClientId = getPreviousBlockClientId(clientId);
31046        if (getParentListItemId(clientId)) {
31047          outdentListItem(clientId);
31048        } else if (previousBlockClientId) {
31049          const trailingId = getTrailingId(previousBlockClientId);
31050          mergeWithNested(trailingId, clientId);
31051        } else {
31052          onMerge(forward);
31053        }
31054      }
31055    };
31056  }
31057  
31058  ;// ./node_modules/@wordpress/block-library/build-module/list-item/edit.js
31059  /**
31060   * WordPress dependencies
31061   */
31062  
31063  
31064  
31065  
31066  
31067  
31068  
31069  /**
31070   * Internal dependencies
31071   */
31072  
31073  
31074  function edit_IndentUI({
31075    clientId
31076  }) {
31077    const indentListItem = useIndentListItem(clientId);
31078    const outdentListItem = useOutdentListItem();
31079    const {
31080      canIndent,
31081      canOutdent
31082    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
31083      const {
31084        getBlockIndex,
31085        getBlockRootClientId,
31086        getBlockName
31087      } = select(external_wp_blockEditor_namespaceObject.store);
31088      return {
31089        canIndent: getBlockIndex(clientId) > 0,
31090        canOutdent: getBlockName(getBlockRootClientId(getBlockRootClientId(clientId))) === 'core/list-item'
31091      };
31092    }, [clientId]);
31093    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
31094      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
31095        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
31096        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
31097        description: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
31098        disabled: !canOutdent,
31099        onClick: () => outdentListItem()
31100      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
31101        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_indent_rtl : format_indent,
31102        title: (0,external_wp_i18n_namespaceObject.__)('Indent'),
31103        description: (0,external_wp_i18n_namespaceObject.__)('Indent list item'),
31104        disabled: !canIndent,
31105        onClick: () => indentListItem()
31106      })]
31107    });
31108  }
31109  function ListItemEdit({
31110    attributes,
31111    setAttributes,
31112    clientId,
31113    mergeBlocks
31114  }) {
31115    const {
31116      placeholder,
31117      content
31118    } = attributes;
31119    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
31120    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
31121      renderAppender: false,
31122      __unstableDisableDropZone: true
31123    });
31124    const useEnterRef = use_enter_useEnter({
31125      content,
31126      clientId
31127    });
31128    const useSpaceRef = useSpace(clientId);
31129    const onMerge = useMerge(clientId, mergeBlocks);
31130    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
31131      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
31132        ...innerBlocksProps,
31133        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
31134          ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([useEnterRef, useSpaceRef]),
31135          identifier: "content",
31136          tagName: "div",
31137          onChange: nextContent => setAttributes({
31138            content: nextContent
31139          }),
31140          value: content,
31141          "aria-label": (0,external_wp_i18n_namespaceObject.__)('List text'),
31142          placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('List'),
31143          onMerge: onMerge
31144        }), innerBlocksProps.children]
31145      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
31146        group: "block",
31147        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_IndentUI, {
31148          clientId: clientId
31149        })
31150      })]
31151    });
31152  }
31153  
31154  ;// ./node_modules/@wordpress/block-library/build-module/list-item/save.js
31155  /**
31156   * WordPress dependencies
31157   */
31158  
31159  
31160  function list_item_save_save({
31161    attributes
31162  }) {
31163    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
31164      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
31165      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
31166        value: attributes.content
31167      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})]
31168    });
31169  }
31170  
31171  ;// ./node_modules/@wordpress/block-library/build-module/list-item/transforms.js
31172  /**
31173   * WordPress dependencies
31174   */
31175  
31176  const list_item_transforms_transforms = {
31177    to: [{
31178      type: 'block',
31179      blocks: ['core/paragraph'],
31180      transform: (attributes, innerBlocks = []) => [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes), ...innerBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block))]
31181    }]
31182  };
31183  /* harmony default export */ const list_item_transforms = (list_item_transforms_transforms);
31184  
31185  ;// ./node_modules/@wordpress/block-library/build-module/list-item/index.js
31186  /**
31187   * WordPress dependencies
31188   */
31189  
31190  
31191  
31192  /**
31193   * Internal dependencies
31194   */
31195  
31196  const list_item_metadata = {
31197    $schema: "https://schemas.wp.org/trunk/block.json",
31198    apiVersion: 3,
31199    name: "core/list-item",
31200    title: "List Item",
31201    category: "text",
31202    parent: ["core/list"],
31203    allowedBlocks: ["core/list"],
31204    description: "An individual item within a list.",
31205    textdomain: "default",
31206    attributes: {
31207      placeholder: {
31208        type: "string"
31209      },
31210      content: {
31211        type: "rich-text",
31212        source: "rich-text",
31213        selector: "li",
31214        role: "content"
31215      }
31216    },
31217    supports: {
31218      anchor: true,
31219      className: false,
31220      splitting: true,
31221      __experimentalBorder: {
31222        color: true,
31223        radius: true,
31224        style: true,
31225        width: true
31226      },
31227      color: {
31228        gradients: true,
31229        link: true,
31230        background: true,
31231        __experimentalDefaultControls: {
31232          text: true
31233        }
31234      },
31235      spacing: {
31236        margin: true,
31237        padding: true,
31238        __experimentalDefaultControls: {
31239          margin: false,
31240          padding: false
31241        }
31242      },
31243      typography: {
31244        fontSize: true,
31245        lineHeight: true,
31246        __experimentalFontFamily: true,
31247        __experimentalFontWeight: true,
31248        __experimentalFontStyle: true,
31249        __experimentalTextTransform: true,
31250        __experimentalTextDecoration: true,
31251        __experimentalLetterSpacing: true,
31252        __experimentalDefaultControls: {
31253          fontSize: true
31254        }
31255      },
31256      interactivity: {
31257        clientNavigation: true
31258      }
31259    },
31260    selectors: {
31261      root: ".wp-block-list > li",
31262      border: ".wp-block-list:not(.wp-block-list .wp-block-list) > li"
31263    }
31264  };
31265  
31266  
31267  
31268  
31269  const {
31270    name: list_item_name
31271  } = list_item_metadata;
31272  
31273  const list_item_settings = {
31274    icon: list_item,
31275    edit: ListItemEdit,
31276    save: list_item_save_save,
31277    merge(attributes, attributesToMerge) {
31278      return {
31279        ...attributes,
31280        content: attributes.content + attributesToMerge.content
31281      };
31282    },
31283    transforms: list_item_transforms,
31284    [unlock(external_wp_blockEditor_namespaceObject.privateApis).requiresWrapperOnCopy]: true
31285  };
31286  const list_item_init = () => initBlock({
31287    name: list_item_name,
31288    metadata: list_item_metadata,
31289    settings: list_item_settings
31290  });
31291  
31292  ;// ./node_modules/@wordpress/icons/build-module/library/login.js
31293  /**
31294   * WordPress dependencies
31295   */
31296  
31297  
31298  const login = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
31299    xmlns: "http://www.w3.org/2000/svg",
31300    viewBox: "0 0 24 24",
31301    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31302      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"
31303    })
31304  });
31305  /* harmony default export */ const library_login = (login);
31306  
31307  ;// ./node_modules/@wordpress/block-library/build-module/loginout/edit.js
31308  /**
31309   * WordPress dependencies
31310   */
31311  
31312  
31313  
31314  /**
31315   * Internal dependencies
31316   */
31317  
31318  
31319  function LoginOutEdit({
31320    attributes,
31321    setAttributes
31322  }) {
31323    const {
31324      displayLoginAsForm,
31325      redirectToCurrent
31326    } = attributes;
31327    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
31328    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
31329      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
31330        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
31331          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
31332          resetAll: () => {
31333            setAttributes({
31334              displayLoginAsForm: false,
31335              redirectToCurrent: true
31336            });
31337          },
31338          dropdownMenuProps: dropdownMenuProps,
31339          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
31340            label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
31341            isShownByDefault: true,
31342            hasValue: () => displayLoginAsForm,
31343            onDeselect: () => setAttributes({
31344              displayLoginAsForm: false
31345            }),
31346            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
31347              __nextHasNoMarginBottom: true,
31348              label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
31349              checked: displayLoginAsForm,
31350              onChange: () => setAttributes({
31351                displayLoginAsForm: !displayLoginAsForm
31352              })
31353            })
31354          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
31355            label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
31356            isShownByDefault: true,
31357            hasValue: () => !redirectToCurrent,
31358            onDeselect: () => setAttributes({
31359              redirectToCurrent: true
31360            }),
31361            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
31362              __nextHasNoMarginBottom: true,
31363              label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
31364              checked: redirectToCurrent,
31365              onChange: () => setAttributes({
31366                redirectToCurrent: !redirectToCurrent
31367              })
31368            })
31369          })]
31370        })
31371      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31372        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31373          className: 'logged-in'
31374        }),
31375        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31376          href: "#login-pseudo-link",
31377          children: (0,external_wp_i18n_namespaceObject.__)('Log out')
31378        })
31379      })]
31380    });
31381  }
31382  
31383  ;// ./node_modules/@wordpress/block-library/build-module/loginout/index.js
31384  /**
31385   * WordPress dependencies
31386   */
31387  
31388  
31389  /**
31390   * Internal dependencies
31391   */
31392  
31393  
31394  const loginout_metadata = {
31395    $schema: "https://schemas.wp.org/trunk/block.json",
31396    apiVersion: 3,
31397    name: "core/loginout",
31398    title: "Login/out",
31399    category: "theme",
31400    description: "Show login & logout links.",
31401    keywords: ["login", "logout", "form"],
31402    textdomain: "default",
31403    attributes: {
31404      displayLoginAsForm: {
31405        type: "boolean",
31406        "default": false
31407      },
31408      redirectToCurrent: {
31409        type: "boolean",
31410        "default": true
31411      }
31412    },
31413    example: {
31414      viewportWidth: 350
31415    },
31416    supports: {
31417      className: true,
31418      color: {
31419        background: true,
31420        text: false,
31421        gradients: true,
31422        link: true
31423      },
31424      spacing: {
31425        margin: true,
31426        padding: true,
31427        __experimentalDefaultControls: {
31428          margin: false,
31429          padding: false
31430        }
31431      },
31432      typography: {
31433        fontSize: true,
31434        lineHeight: true,
31435        __experimentalFontFamily: true,
31436        __experimentalFontWeight: true,
31437        __experimentalFontStyle: true,
31438        __experimentalTextTransform: true,
31439        __experimentalTextDecoration: true,
31440        __experimentalLetterSpacing: true,
31441        __experimentalDefaultControls: {
31442          fontSize: true
31443        }
31444      },
31445      __experimentalBorder: {
31446        radius: true,
31447        color: true,
31448        width: true,
31449        style: true
31450      },
31451      interactivity: {
31452        clientNavigation: true
31453      }
31454    },
31455    style: "wp-block-loginout"
31456  };
31457  const {
31458    name: loginout_name
31459  } = loginout_metadata;
31460  
31461  const loginout_settings = {
31462    icon: library_login,
31463    edit: LoginOutEdit
31464  };
31465  const loginout_init = () => initBlock({
31466    name: loginout_name,
31467    metadata: loginout_metadata,
31468    settings: loginout_settings
31469  });
31470  
31471  ;// ./node_modules/@wordpress/icons/build-module/library/media-and-text.js
31472  /**
31473   * WordPress dependencies
31474   */
31475  
31476  
31477  const mediaAndText = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
31478    xmlns: "http://www.w3.org/2000/svg",
31479    viewBox: "0 0 24 24",
31480    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31481      d: "M3 6v11.5h8V6H3Zm11 3h7V7.5h-7V9Zm7 3.5h-7V11h7v1.5ZM14 16h7v-1.5h-7V16Z"
31482    })
31483  });
31484  /* harmony default export */ const media_and_text = (mediaAndText);
31485  
31486  ;// ./node_modules/@wordpress/block-library/build-module/media-text/constants.js
31487  /**
31488   * WordPress dependencies
31489   */
31490  
31491  const constants_DEFAULT_MEDIA_SIZE_SLUG = 'full';
31492  const WIDTH_CONSTRAINT_PERCENTAGE = 15;
31493  const media_text_constants_LINK_DESTINATION_MEDIA = 'media';
31494  const media_text_constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
31495  const constants_TEMPLATE = [['core/paragraph', {
31496    placeholder: (0,external_wp_i18n_namespaceObject._x)('Content…', 'content placeholder')
31497  }]];
31498  
31499  ;// ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js
31500  /**
31501   * External dependencies
31502   */
31503  
31504  
31505  /**
31506   * WordPress dependencies
31507   */
31508  
31509  
31510  
31511  /**
31512   * Internal dependencies
31513   */
31514  
31515  
31516  const v1ToV5ImageFillStyles = (url, focalPoint) => {
31517    return url ? {
31518      backgroundImage: `url($url})`,
31519      backgroundPosition: focalPoint ? `$focalPoint.x * 100}% $focalPoint.y * 100}%` : `50% 50%`
31520    } : {};
31521  };
31522  const v6ToV7ImageFillStyles = (url, focalPoint) => {
31523    return url ? {
31524      backgroundImage: `url($url})`,
31525      backgroundPosition: focalPoint ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : `50% 50%`
31526    } : {};
31527  };
31528  const DEFAULT_MEDIA_WIDTH = 50;
31529  const noop = () => {};
31530  const media_text_deprecated_migrateCustomColors = attributes => {
31531    if (!attributes.customBackgroundColor) {
31532      return attributes;
31533    }
31534    const style = {
31535      color: {
31536        background: attributes.customBackgroundColor
31537      }
31538    };
31539    const {
31540      customBackgroundColor,
31541      ...restAttributes
31542    } = attributes;
31543    return {
31544      ...restAttributes,
31545      style
31546    };
31547  };
31548  
31549  // After align attribute's default was updated this function explicitly sets
31550  // the align value for deprecated blocks to the `wide` value which was default
31551  // for their versions of this block.
31552  const migrateDefaultAlign = attributes => {
31553    if (attributes.align) {
31554      return attributes;
31555    }
31556    return {
31557      ...attributes,
31558      align: 'wide'
31559    };
31560  };
31561  const v0Attributes = {
31562    align: {
31563      type: 'string',
31564      default: 'wide'
31565    },
31566    mediaAlt: {
31567      type: 'string',
31568      source: 'attribute',
31569      selector: 'figure img',
31570      attribute: 'alt',
31571      default: ''
31572    },
31573    mediaPosition: {
31574      type: 'string',
31575      default: 'left'
31576    },
31577    mediaId: {
31578      type: 'number'
31579    },
31580    mediaType: {
31581      type: 'string'
31582    },
31583    mediaWidth: {
31584      type: 'number',
31585      default: 50
31586    },
31587    isStackedOnMobile: {
31588      type: 'boolean',
31589      default: false
31590    }
31591  };
31592  const v4ToV5BlockAttributes = {
31593    ...v0Attributes,
31594    isStackedOnMobile: {
31595      type: 'boolean',
31596      default: true
31597    },
31598    mediaUrl: {
31599      type: 'string',
31600      source: 'attribute',
31601      selector: 'figure video,figure img',
31602      attribute: 'src'
31603    },
31604    mediaLink: {
31605      type: 'string'
31606    },
31607    linkDestination: {
31608      type: 'string'
31609    },
31610    linkTarget: {
31611      type: 'string',
31612      source: 'attribute',
31613      selector: 'figure a',
31614      attribute: 'target'
31615    },
31616    href: {
31617      type: 'string',
31618      source: 'attribute',
31619      selector: 'figure a',
31620      attribute: 'href'
31621    },
31622    rel: {
31623      type: 'string',
31624      source: 'attribute',
31625      selector: 'figure a',
31626      attribute: 'rel'
31627    },
31628    linkClass: {
31629      type: 'string',
31630      source: 'attribute',
31631      selector: 'figure a',
31632      attribute: 'class'
31633    },
31634    mediaSizeSlug: {
31635      type: 'string'
31636    },
31637    verticalAlignment: {
31638      type: 'string'
31639    },
31640    imageFill: {
31641      type: 'boolean'
31642    },
31643    focalPoint: {
31644      type: 'object'
31645    }
31646  };
31647  const v6Attributes = {
31648    ...v4ToV5BlockAttributes,
31649    mediaAlt: {
31650      type: 'string',
31651      source: 'attribute',
31652      selector: 'figure img',
31653      attribute: 'alt',
31654      default: '',
31655      role: 'content'
31656    },
31657    mediaId: {
31658      type: 'number',
31659      role: 'content'
31660    },
31661    mediaUrl: {
31662      type: 'string',
31663      source: 'attribute',
31664      selector: 'figure video,figure img',
31665      attribute: 'src',
31666      role: 'content'
31667    },
31668    href: {
31669      type: 'string',
31670      source: 'attribute',
31671      selector: 'figure a',
31672      attribute: 'href',
31673      role: 'content'
31674    },
31675    mediaType: {
31676      type: 'string',
31677      role: 'content'
31678    }
31679  };
31680  const v7Attributes = {
31681    ...v6Attributes,
31682    align: {
31683      type: 'string',
31684      // v7 changed the default for the `align` attribute.
31685      default: 'none'
31686    },
31687    // New attribute.
31688    useFeaturedImage: {
31689      type: 'boolean',
31690      default: false
31691    }
31692  };
31693  const v4ToV5Supports = {
31694    anchor: true,
31695    align: ['wide', 'full'],
31696    html: false,
31697    color: {
31698      gradients: true,
31699      link: true
31700    }
31701  };
31702  const v6Supports = {
31703    ...v4ToV5Supports,
31704    color: {
31705      gradients: true,
31706      link: true,
31707      __experimentalDefaultControls: {
31708        background: true,
31709        text: true
31710      }
31711    },
31712    spacing: {
31713      margin: true,
31714      padding: true
31715    },
31716    typography: {
31717      fontSize: true,
31718      lineHeight: true,
31719      __experimentalFontFamily: true,
31720      __experimentalFontWeight: true,
31721      __experimentalFontStyle: true,
31722      __experimentalTextTransform: true,
31723      __experimentalTextDecoration: true,
31724      __experimentalLetterSpacing: true,
31725      __experimentalDefaultControls: {
31726        fontSize: true
31727      }
31728    }
31729  };
31730  const v7Supports = {
31731    ...v6Supports,
31732    __experimentalBorder: {
31733      color: true,
31734      radius: true,
31735      style: true,
31736      width: true,
31737      __experimentalDefaultControls: {
31738        color: true,
31739        radius: true,
31740        style: true,
31741        width: true
31742      }
31743    },
31744    color: {
31745      gradients: true,
31746      heading: true,
31747      link: true,
31748      __experimentalDefaultControls: {
31749        background: true,
31750        text: true
31751      }
31752    },
31753    interactivity: {
31754      clientNavigation: true
31755    }
31756  };
31757  
31758  // Version with 'none' as the default alignment.
31759  // See: https://github.com/WordPress/gutenberg/pull/64981
31760  const media_text_deprecated_v7 = {
31761    attributes: v7Attributes,
31762    supports: v7Supports,
31763    usesContext: ['postId', 'postType'],
31764    save({
31765      attributes
31766    }) {
31767      const {
31768        isStackedOnMobile,
31769        mediaAlt,
31770        mediaPosition,
31771        mediaType,
31772        mediaUrl,
31773        mediaWidth,
31774        mediaId,
31775        verticalAlignment,
31776        imageFill,
31777        focalPoint,
31778        linkClass,
31779        href,
31780        linkTarget,
31781        rel
31782      } = attributes;
31783      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
31784      const newRel = !rel ? undefined : rel;
31785      const imageClasses = dist_clsx({
31786        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
31787        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
31788      });
31789      let image = mediaUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31790        src: mediaUrl,
31791        alt: mediaAlt,
31792        className: imageClasses || null
31793      }) : null;
31794      if (href) {
31795        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31796          className: linkClass,
31797          href: href,
31798          target: linkTarget,
31799          rel: newRel,
31800          children: image
31801        });
31802      }
31803      const mediaTypeRenders = {
31804        image: () => image,
31805        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31806          controls: true,
31807          src: mediaUrl
31808        })
31809      };
31810      const className = dist_clsx({
31811        'has-media-on-the-right': 'right' === mediaPosition,
31812        'is-stacked-on-mobile': isStackedOnMobile,
31813        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31814        'is-image-fill': imageFill
31815      });
31816      const backgroundStyles = imageFill ? v6ToV7ImageFillStyles(mediaUrl, focalPoint) : {};
31817      let gridTemplateColumns;
31818      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31819        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31820      }
31821      const style = {
31822        gridTemplateColumns
31823      };
31824      if ('right' === mediaPosition) {
31825        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31826          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31827            className,
31828            style
31829          }),
31830          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31831            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31832              className: 'wp-block-media-text__content'
31833            })
31834          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31835            className: "wp-block-media-text__media",
31836            style: backgroundStyles,
31837            children: (mediaTypeRenders[mediaType] || noop)()
31838          })]
31839        });
31840      }
31841      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31842        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31843          className,
31844          style
31845        }),
31846        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31847          className: "wp-block-media-text__media",
31848          style: backgroundStyles,
31849          children: (mediaTypeRenders[mediaType] || noop)()
31850        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31851          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31852            className: 'wp-block-media-text__content'
31853          })
31854        })]
31855      });
31856    }
31857  };
31858  
31859  // Version with wide as the default alignment.
31860  // See: https://github.com/WordPress/gutenberg/pull/48404
31861  const media_text_deprecated_v6 = {
31862    attributes: v6Attributes,
31863    supports: v6Supports,
31864    save({
31865      attributes
31866    }) {
31867      const {
31868        isStackedOnMobile,
31869        mediaAlt,
31870        mediaPosition,
31871        mediaType,
31872        mediaUrl,
31873        mediaWidth,
31874        mediaId,
31875        verticalAlignment,
31876        imageFill,
31877        focalPoint,
31878        linkClass,
31879        href,
31880        linkTarget,
31881        rel
31882      } = attributes;
31883      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
31884      const newRel = !rel ? undefined : rel;
31885      const imageClasses = dist_clsx({
31886        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
31887        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
31888      });
31889      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31890        src: mediaUrl,
31891        alt: mediaAlt,
31892        className: imageClasses || null
31893      });
31894      if (href) {
31895        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31896          className: linkClass,
31897          href: href,
31898          target: linkTarget,
31899          rel: newRel,
31900          children: image
31901        });
31902      }
31903      const mediaTypeRenders = {
31904        image: () => image,
31905        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31906          controls: true,
31907          src: mediaUrl
31908        })
31909      };
31910      const className = dist_clsx({
31911        'has-media-on-the-right': 'right' === mediaPosition,
31912        'is-stacked-on-mobile': isStackedOnMobile,
31913        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31914        'is-image-fill': imageFill
31915      });
31916      const backgroundStyles = imageFill ? v6ToV7ImageFillStyles(mediaUrl, focalPoint) : {};
31917      let gridTemplateColumns;
31918      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31919        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31920      }
31921      const style = {
31922        gridTemplateColumns
31923      };
31924      if ('right' === mediaPosition) {
31925        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31926          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31927            className,
31928            style
31929          }),
31930          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31931            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31932              className: 'wp-block-media-text__content'
31933            })
31934          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31935            className: "wp-block-media-text__media",
31936            style: backgroundStyles,
31937            children: (mediaTypeRenders[mediaType] || noop)()
31938          })]
31939        });
31940      }
31941      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31942        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31943          className,
31944          style
31945        }),
31946        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31947          className: "wp-block-media-text__media",
31948          style: backgroundStyles,
31949          children: (mediaTypeRenders[mediaType] || noop)()
31950        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31951          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31952            className: 'wp-block-media-text__content'
31953          })
31954        })]
31955      });
31956    },
31957    migrate: migrateDefaultAlign,
31958    isEligible(attributes, innerBlocks, {
31959      block
31960    }) {
31961      const {
31962        attributes: finalizedAttributes
31963      } = block;
31964      // When the align attribute defaults to none, valid block markup should
31965      // not contain any alignment CSS class. Unfortunately, this
31966      // deprecation's version of the block won't be invalidated due to the
31967      // alignwide class still being in the markup. That is because the custom
31968      // CSS classname support picks it up and adds it to the className
31969      // attribute. At the time of parsing, the className attribute won't
31970      // contain the alignwide class, hence the need to check the finalized
31971      // block attributes.
31972      return attributes.align === undefined && !!finalizedAttributes.className?.includes('alignwide');
31973    }
31974  };
31975  
31976  // Version with non-rounded background position attribute for focal point.
31977  // See: https://github.com/WordPress/gutenberg/pull/33915
31978  const media_text_deprecated_v5 = {
31979    attributes: v4ToV5BlockAttributes,
31980    supports: v4ToV5Supports,
31981    save({
31982      attributes
31983    }) {
31984      const {
31985        isStackedOnMobile,
31986        mediaAlt,
31987        mediaPosition,
31988        mediaType,
31989        mediaUrl,
31990        mediaWidth,
31991        mediaId,
31992        verticalAlignment,
31993        imageFill,
31994        focalPoint,
31995        linkClass,
31996        href,
31997        linkTarget,
31998        rel
31999      } = attributes;
32000      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
32001      const newRel = !rel ? undefined : rel;
32002      const imageClasses = dist_clsx({
32003        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
32004        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
32005      });
32006      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32007        src: mediaUrl,
32008        alt: mediaAlt,
32009        className: imageClasses || null
32010      });
32011      if (href) {
32012        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32013          className: linkClass,
32014          href: href,
32015          target: linkTarget,
32016          rel: newRel,
32017          children: image
32018        });
32019      }
32020      const mediaTypeRenders = {
32021        image: () => image,
32022        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32023          controls: true,
32024          src: mediaUrl
32025        })
32026      };
32027      const className = dist_clsx({
32028        'has-media-on-the-right': 'right' === mediaPosition,
32029        'is-stacked-on-mobile': isStackedOnMobile,
32030        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32031        'is-image-fill': imageFill
32032      });
32033      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32034      let gridTemplateColumns;
32035      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32036        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32037      }
32038      const style = {
32039        gridTemplateColumns
32040      };
32041      if ('right' === mediaPosition) {
32042        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32043          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32044            className,
32045            style
32046          }),
32047          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32048            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32049              className: 'wp-block-media-text__content'
32050            })
32051          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32052            className: "wp-block-media-text__media",
32053            style: backgroundStyles,
32054            children: (mediaTypeRenders[mediaType] || noop)()
32055          })]
32056        });
32057      }
32058      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32059        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32060          className,
32061          style
32062        }),
32063        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32064          className: "wp-block-media-text__media",
32065          style: backgroundStyles,
32066          children: (mediaTypeRenders[mediaType] || noop)()
32067        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32068          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32069            className: 'wp-block-media-text__content'
32070          })
32071        })]
32072      });
32073    },
32074    migrate: migrateDefaultAlign
32075  };
32076  
32077  // Version with CSS grid
32078  // See: https://github.com/WordPress/gutenberg/pull/40806
32079  const media_text_deprecated_v4 = {
32080    attributes: v4ToV5BlockAttributes,
32081    supports: v4ToV5Supports,
32082    save({
32083      attributes
32084    }) {
32085      const {
32086        isStackedOnMobile,
32087        mediaAlt,
32088        mediaPosition,
32089        mediaType,
32090        mediaUrl,
32091        mediaWidth,
32092        mediaId,
32093        verticalAlignment,
32094        imageFill,
32095        focalPoint,
32096        linkClass,
32097        href,
32098        linkTarget,
32099        rel
32100      } = attributes;
32101      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
32102      const newRel = !rel ? undefined : rel;
32103      const imageClasses = dist_clsx({
32104        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
32105        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
32106      });
32107      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32108        src: mediaUrl,
32109        alt: mediaAlt,
32110        className: imageClasses || null
32111      });
32112      if (href) {
32113        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32114          className: linkClass,
32115          href: href,
32116          target: linkTarget,
32117          rel: newRel,
32118          children: image
32119        });
32120      }
32121      const mediaTypeRenders = {
32122        image: () => image,
32123        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32124          controls: true,
32125          src: mediaUrl
32126        })
32127      };
32128      const className = dist_clsx({
32129        'has-media-on-the-right': 'right' === mediaPosition,
32130        'is-stacked-on-mobile': isStackedOnMobile,
32131        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32132        'is-image-fill': imageFill
32133      });
32134      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32135      let gridTemplateColumns;
32136      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32137        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32138      }
32139      const style = {
32140        gridTemplateColumns
32141      };
32142      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32143        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32144          className,
32145          style
32146        }),
32147        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32148          className: "wp-block-media-text__media",
32149          style: backgroundStyles,
32150          children: (mediaTypeRenders[mediaType] || noop)()
32151        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32152          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32153            className: 'wp-block-media-text__content'
32154          })
32155        })]
32156      });
32157    },
32158    migrate: migrateDefaultAlign
32159  };
32160  
32161  // Version with ad-hoc color attributes
32162  // See: https://github.com/WordPress/gutenberg/pull/21169
32163  const media_text_deprecated_v3 = {
32164    attributes: {
32165      ...v0Attributes,
32166      isStackedOnMobile: {
32167        type: 'boolean',
32168        default: true
32169      },
32170      backgroundColor: {
32171        type: 'string'
32172      },
32173      customBackgroundColor: {
32174        type: 'string'
32175      },
32176      mediaLink: {
32177        type: 'string'
32178      },
32179      linkDestination: {
32180        type: 'string'
32181      },
32182      linkTarget: {
32183        type: 'string',
32184        source: 'attribute',
32185        selector: 'figure a',
32186        attribute: 'target'
32187      },
32188      href: {
32189        type: 'string',
32190        source: 'attribute',
32191        selector: 'figure a',
32192        attribute: 'href'
32193      },
32194      rel: {
32195        type: 'string',
32196        source: 'attribute',
32197        selector: 'figure a',
32198        attribute: 'rel'
32199      },
32200      linkClass: {
32201        type: 'string',
32202        source: 'attribute',
32203        selector: 'figure a',
32204        attribute: 'class'
32205      },
32206      verticalAlignment: {
32207        type: 'string'
32208      },
32209      imageFill: {
32210        type: 'boolean'
32211      },
32212      focalPoint: {
32213        type: 'object'
32214      }
32215    },
32216    migrate: (0,external_wp_compose_namespaceObject.compose)(media_text_deprecated_migrateCustomColors, migrateDefaultAlign),
32217    save({
32218      attributes
32219    }) {
32220      const {
32221        backgroundColor,
32222        customBackgroundColor,
32223        isStackedOnMobile,
32224        mediaAlt,
32225        mediaPosition,
32226        mediaType,
32227        mediaUrl,
32228        mediaWidth,
32229        mediaId,
32230        verticalAlignment,
32231        imageFill,
32232        focalPoint,
32233        linkClass,
32234        href,
32235        linkTarget,
32236        rel
32237      } = attributes;
32238      const newRel = !rel ? undefined : rel;
32239      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32240        src: mediaUrl,
32241        alt: mediaAlt,
32242        className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
32243      });
32244      if (href) {
32245        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32246          className: linkClass,
32247          href: href,
32248          target: linkTarget,
32249          rel: newRel,
32250          children: image
32251        });
32252      }
32253      const mediaTypeRenders = {
32254        image: () => image,
32255        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32256          controls: true,
32257          src: mediaUrl
32258        })
32259      };
32260      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
32261      const className = dist_clsx({
32262        'has-media-on-the-right': 'right' === mediaPosition,
32263        'has-background': backgroundClass || customBackgroundColor,
32264        [backgroundClass]: backgroundClass,
32265        'is-stacked-on-mobile': isStackedOnMobile,
32266        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32267        'is-image-fill': imageFill
32268      });
32269      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32270      let gridTemplateColumns;
32271      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32272        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32273      }
32274      const style = {
32275        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
32276        gridTemplateColumns
32277      };
32278      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32279        className: className,
32280        style: style,
32281        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32282          className: "wp-block-media-text__media",
32283          style: backgroundStyles,
32284          children: (mediaTypeRenders[mediaType] || noop)()
32285        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32286          className: "wp-block-media-text__content",
32287          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
32288        })]
32289      });
32290    }
32291  };
32292  
32293  // Version with stack on mobile off by default
32294  // See: https://github.com/WordPress/gutenberg/pull/14364
32295  const media_text_deprecated_v2 = {
32296    attributes: {
32297      ...v0Attributes,
32298      backgroundColor: {
32299        type: 'string'
32300      },
32301      customBackgroundColor: {
32302        type: 'string'
32303      },
32304      mediaUrl: {
32305        type: 'string',
32306        source: 'attribute',
32307        selector: 'figure video,figure img',
32308        attribute: 'src'
32309      },
32310      verticalAlignment: {
32311        type: 'string'
32312      },
32313      imageFill: {
32314        type: 'boolean'
32315      },
32316      focalPoint: {
32317        type: 'object'
32318      }
32319    },
32320    migrate: (0,external_wp_compose_namespaceObject.compose)(media_text_deprecated_migrateCustomColors, migrateDefaultAlign),
32321    save({
32322      attributes
32323    }) {
32324      const {
32325        backgroundColor,
32326        customBackgroundColor,
32327        isStackedOnMobile,
32328        mediaAlt,
32329        mediaPosition,
32330        mediaType,
32331        mediaUrl,
32332        mediaWidth,
32333        mediaId,
32334        verticalAlignment,
32335        imageFill,
32336        focalPoint
32337      } = attributes;
32338      const mediaTypeRenders = {
32339        image: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32340          src: mediaUrl,
32341          alt: mediaAlt,
32342          className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
32343        }),
32344        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32345          controls: true,
32346          src: mediaUrl
32347        })
32348      };
32349      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
32350      const className = dist_clsx({
32351        'has-media-on-the-right': 'right' === mediaPosition,
32352        [backgroundClass]: backgroundClass,
32353        'is-stacked-on-mobile': isStackedOnMobile,
32354        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32355        'is-image-fill': imageFill
32356      });
32357      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32358      let gridTemplateColumns;
32359      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32360        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32361      }
32362      const style = {
32363        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
32364        gridTemplateColumns
32365      };
32366      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32367        className: className,
32368        style: style,
32369        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32370          className: "wp-block-media-text__media",
32371          style: backgroundStyles,
32372          children: (mediaTypeRenders[mediaType] || noop)()
32373        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32374          className: "wp-block-media-text__content",
32375          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
32376        })]
32377      });
32378    }
32379  };
32380  
32381  // Version without the wp-image-#### class on image
32382  // See: https://github.com/WordPress/gutenberg/pull/11922
32383  const media_text_deprecated_v1 = {
32384    attributes: {
32385      ...v0Attributes,
32386      backgroundColor: {
32387        type: 'string'
32388      },
32389      customBackgroundColor: {
32390        type: 'string'
32391      },
32392      mediaUrl: {
32393        type: 'string',
32394        source: 'attribute',
32395        selector: 'figure video,figure img',
32396        attribute: 'src'
32397      }
32398    },
32399    migrate: migrateDefaultAlign,
32400    save({
32401      attributes
32402    }) {
32403      const {
32404        backgroundColor,
32405        customBackgroundColor,
32406        isStackedOnMobile,
32407        mediaAlt,
32408        mediaPosition,
32409        mediaType,
32410        mediaUrl,
32411        mediaWidth
32412      } = attributes;
32413      const mediaTypeRenders = {
32414        image: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32415          src: mediaUrl,
32416          alt: mediaAlt
32417        }),
32418        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32419          controls: true,
32420          src: mediaUrl
32421        })
32422      };
32423      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
32424      const className = dist_clsx({
32425        'has-media-on-the-right': 'right' === mediaPosition,
32426        [backgroundClass]: backgroundClass,
32427        'is-stacked-on-mobile': isStackedOnMobile
32428      });
32429      let gridTemplateColumns;
32430      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32431        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32432      }
32433      const style = {
32434        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
32435        gridTemplateColumns
32436      };
32437      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32438        className: className,
32439        style: style,
32440        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32441          className: "wp-block-media-text__media",
32442          children: (mediaTypeRenders[mediaType] || noop)()
32443        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32444          className: "wp-block-media-text__content",
32445          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
32446        })]
32447      });
32448    }
32449  };
32450  /* 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]);
32451  
32452  ;// ./node_modules/@wordpress/icons/build-module/library/pull-left.js
32453  /**
32454   * WordPress dependencies
32455   */
32456  
32457  
32458  const pullLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
32459    xmlns: "http://www.w3.org/2000/svg",
32460    viewBox: "0 0 24 24",
32461    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32462      d: "M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z"
32463    })
32464  });
32465  /* harmony default export */ const pull_left = (pullLeft);
32466  
32467  ;// ./node_modules/@wordpress/icons/build-module/library/pull-right.js
32468  /**
32469   * WordPress dependencies
32470   */
32471  
32472  
32473  const pullRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
32474    xmlns: "http://www.w3.org/2000/svg",
32475    viewBox: "0 0 24 24",
32476    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32477      d: "M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z"
32478    })
32479  });
32480  /* harmony default export */ const pull_right = (pullRight);
32481  
32482  ;// ./node_modules/@wordpress/icons/build-module/library/media.js
32483  /**
32484   * WordPress dependencies
32485   */
32486  
32487  
32488  const media = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
32489    xmlns: "http://www.w3.org/2000/svg",
32490    viewBox: "0 0 24 24",
32491    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32492      d: "m7 6.5 4 2.5-4 2.5z"
32493    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32494      fillRule: "evenodd",
32495      clipRule: "evenodd",
32496      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"
32497    })]
32498  });
32499  /* harmony default export */ const library_media = (media);
32500  
32501  ;// ./node_modules/@wordpress/block-library/build-module/media-text/image-fill.js
32502  function imageFillStyles(url, focalPoint) {
32503    return url ? {
32504      objectPosition: focalPoint ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : `50% 50%`
32505    } : {};
32506  }
32507  
32508  ;// ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js
32509  /**
32510   * External dependencies
32511   */
32512  
32513  
32514  /**
32515   * WordPress dependencies
32516   */
32517  
32518  
32519  
32520  
32521  
32522  
32523  
32524  
32525  
32526  
32527  /**
32528   * Internal dependencies
32529   */
32530  
32531  
32532  /**
32533   * Constants
32534   */
32535  
32536  const media_container_ALLOWED_MEDIA_TYPES = ['image', 'video'];
32537  const media_container_noop = () => {};
32538  const ResizableBoxContainer = (0,external_wp_element_namespaceObject.forwardRef)(({
32539    isSelected,
32540    isStackedOnMobile,
32541    ...props
32542  }, ref) => {
32543    const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
32544    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
32545      ref: ref,
32546      showHandle: isSelected && (!isMobile || !isStackedOnMobile),
32547      ...props
32548    });
32549  });
32550  function ToolbarEditButton({
32551    mediaId,
32552    mediaUrl,
32553    onSelectMedia,
32554    toggleUseFeaturedImage,
32555    useFeaturedImage
32556  }) {
32557    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
32558      group: "other",
32559      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
32560        mediaId: mediaId,
32561        mediaURL: mediaUrl,
32562        allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
32563        accept: "image/*,video/*",
32564        onSelect: onSelectMedia,
32565        onToggleFeaturedImage: toggleUseFeaturedImage,
32566        useFeaturedImage: useFeaturedImage,
32567        onReset: () => onSelectMedia(undefined)
32568      })
32569    });
32570  }
32571  function PlaceholderContainer({
32572    className,
32573    mediaUrl,
32574    onSelectMedia,
32575    toggleUseFeaturedImage
32576  }) {
32577    const {
32578      createErrorNotice
32579    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
32580    const onUploadError = message => {
32581      createErrorNotice(message, {
32582        type: 'snackbar'
32583      });
32584    };
32585    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
32586      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
32587        icon: library_media
32588      }),
32589      labels: {
32590        title: (0,external_wp_i18n_namespaceObject.__)('Media area')
32591      },
32592      className: className,
32593      onSelect: onSelectMedia,
32594      accept: "image/*,video/*",
32595      onToggleFeaturedImage: toggleUseFeaturedImage,
32596      allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
32597      onError: onUploadError,
32598      disableMediaButtons: mediaUrl
32599    });
32600  }
32601  function MediaContainer(props, ref) {
32602    const {
32603      className,
32604      commitWidthChange,
32605      focalPoint,
32606      imageFill,
32607      isSelected,
32608      isStackedOnMobile,
32609      mediaAlt,
32610      mediaId,
32611      mediaPosition,
32612      mediaType,
32613      mediaUrl,
32614      mediaWidth,
32615      onSelectMedia,
32616      onWidthChange,
32617      enableResize,
32618      toggleUseFeaturedImage,
32619      useFeaturedImage,
32620      featuredImageURL,
32621      featuredImageAlt,
32622      refMedia
32623    } = props;
32624    const isTemporaryMedia = !mediaId && (0,external_wp_blob_namespaceObject.isBlobURL)(mediaUrl);
32625    const {
32626      toggleSelection
32627    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
32628    if (mediaUrl || featuredImageURL || useFeaturedImage) {
32629      const onResizeStart = () => {
32630        toggleSelection(false);
32631      };
32632      const onResize = (event, direction, elt) => {
32633        onWidthChange(parseInt(elt.style.width));
32634      };
32635      const onResizeStop = (event, direction, elt) => {
32636        toggleSelection(true);
32637        commitWidthChange(parseInt(elt.style.width));
32638      };
32639      const enablePositions = {
32640        right: enableResize && mediaPosition === 'left',
32641        left: enableResize && mediaPosition === 'right'
32642      };
32643      const positionStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl || featuredImageURL, focalPoint) : {};
32644      const mediaTypeRenderers = {
32645        image: () => useFeaturedImage && featuredImageURL ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32646          ref: refMedia,
32647          src: featuredImageURL,
32648          alt: featuredImageAlt,
32649          style: positionStyles
32650        }) : mediaUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32651          ref: refMedia,
32652          src: mediaUrl,
32653          alt: mediaAlt,
32654          style: positionStyles
32655        }),
32656        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32657          controls: true,
32658          ref: refMedia,
32659          src: mediaUrl
32660        })
32661      };
32662      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ResizableBoxContainer, {
32663        as: "figure",
32664        className: dist_clsx(className, 'editor-media-container__resizer', {
32665          'is-transient': isTemporaryMedia
32666        }),
32667        size: {
32668          width: mediaWidth + '%'
32669        },
32670        minWidth: "10%",
32671        maxWidth: "100%",
32672        enable: enablePositions,
32673        onResizeStart: onResizeStart,
32674        onResize: onResize,
32675        onResizeStop: onResizeStop,
32676        axis: "x",
32677        isSelected: isSelected,
32678        isStackedOnMobile: isStackedOnMobile,
32679        ref: ref,
32680        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ToolbarEditButton, {
32681          onSelectMedia: onSelectMedia,
32682          mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
32683          mediaId: mediaId,
32684          toggleUseFeaturedImage: toggleUseFeaturedImage
32685        }), (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, {
32686          ...props
32687        }), !featuredImageURL && useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
32688          className: "wp-block-media-text--placeholder-image",
32689          style: positionStyles,
32690          withIllustration: true
32691        })]
32692      });
32693    }
32694    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderContainer, {
32695      ...props
32696    });
32697  }
32698  /* harmony default export */ const media_container = ((0,external_wp_element_namespaceObject.forwardRef)(MediaContainer));
32699  
32700  ;// ./node_modules/@wordpress/block-library/build-module/media-text/edit.js
32701  /**
32702   * External dependencies
32703   */
32704  
32705  
32706  /**
32707   * WordPress dependencies
32708   */
32709  
32710  
32711  
32712  
32713  
32714  
32715  
32716  
32717  
32718  /**
32719   * Internal dependencies
32720   */
32721  
32722  
32723  
32724  
32725  
32726  const {
32727    ResolutionTool: edit_ResolutionTool
32728  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
32729  
32730  // this limits the resize to a safe zone to avoid making broken layouts
32731  const applyWidthConstraints = width => Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE));
32732  function getImageSourceUrlBySizeSlug(image, slug) {
32733    // eslint-disable-next-line camelcase
32734    return image?.media_details?.sizes?.[slug]?.source_url;
32735  }
32736  function edit_attributesFromMedia({
32737    attributes: {
32738      linkDestination,
32739      href
32740    },
32741    setAttributes
32742  }) {
32743    return media => {
32744      if (!media || !media.url) {
32745        setAttributes({
32746          mediaAlt: undefined,
32747          mediaId: undefined,
32748          mediaType: undefined,
32749          mediaUrl: undefined,
32750          mediaLink: undefined,
32751          href: undefined,
32752          focalPoint: undefined,
32753          useFeaturedImage: false
32754        });
32755        return;
32756      }
32757      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
32758        media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
32759      }
32760      let mediaType;
32761      let src;
32762      // For media selections originated from a file upload.
32763      if (media.media_type) {
32764        if (media.media_type === 'image') {
32765          mediaType = 'image';
32766        } else {
32767          // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
32768          // video contain the media type of 'file' in the object returned from the rest api.
32769          mediaType = 'video';
32770        }
32771      } else {
32772        // For media selections originated from existing files in the media library.
32773        mediaType = media.type;
32774      }
32775      if (mediaType === 'image') {
32776        // Try the "large" size URL, falling back to the "full" size URL below.
32777        src = media.sizes?.large?.url ||
32778        // eslint-disable-next-line camelcase
32779        media.media_details?.sizes?.large?.source_url;
32780      }
32781      let newHref = href;
32782      if (linkDestination === media_text_constants_LINK_DESTINATION_MEDIA) {
32783        // Update the media link.
32784        newHref = media.url;
32785      }
32786  
32787      // Check if the image is linked to the attachment page.
32788      if (linkDestination === media_text_constants_LINK_DESTINATION_ATTACHMENT) {
32789        // Update the media link.
32790        newHref = media.link;
32791      }
32792      setAttributes({
32793        mediaAlt: media.alt,
32794        mediaId: media.id,
32795        mediaType,
32796        mediaUrl: src || media.url,
32797        mediaLink: media.link || undefined,
32798        href: newHref,
32799        focalPoint: undefined,
32800        useFeaturedImage: false
32801      });
32802    };
32803  }
32804  function MediaTextResolutionTool({
32805    image,
32806    value,
32807    onChange
32808  }) {
32809    const {
32810      imageSizes
32811    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32812      const {
32813        getSettings
32814      } = select(external_wp_blockEditor_namespaceObject.store);
32815      return {
32816        imageSizes: getSettings().imageSizes
32817      };
32818    }, []);
32819    if (!imageSizes?.length) {
32820      return null;
32821    }
32822    const imageSizeOptions = imageSizes.filter(({
32823      slug
32824    }) => getImageSourceUrlBySizeSlug(image, slug)).map(({
32825      name,
32826      slug
32827    }) => ({
32828      value: slug,
32829      label: name
32830    }));
32831    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ResolutionTool, {
32832      value: value,
32833      defaultValue: constants_DEFAULT_MEDIA_SIZE_SLUG,
32834      options: imageSizeOptions,
32835      onChange: onChange
32836    });
32837  }
32838  function MediaTextEdit({
32839    attributes,
32840    isSelected,
32841    setAttributes,
32842    context: {
32843      postId,
32844      postType
32845    }
32846  }) {
32847    const {
32848      focalPoint,
32849      href,
32850      imageFill,
32851      isStackedOnMobile,
32852      linkClass,
32853      linkDestination,
32854      linkTarget,
32855      mediaAlt,
32856      mediaId,
32857      mediaPosition,
32858      mediaType,
32859      mediaUrl,
32860      mediaWidth,
32861      mediaSizeSlug,
32862      rel,
32863      verticalAlignment,
32864      allowedBlocks,
32865      useFeaturedImage
32866    } = attributes;
32867    const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
32868    const {
32869      featuredImageMedia
32870    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32871      return {
32872        featuredImageMedia: featuredImage && useFeaturedImage ? select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
32873          context: 'view'
32874        }) : undefined
32875      };
32876    }, [featuredImage, useFeaturedImage]);
32877    const {
32878      image
32879    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32880      return {
32881        image: mediaId && isSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(mediaId, {
32882          context: 'view'
32883        }) : null
32884      };
32885    }, [isSelected, mediaId]);
32886    const featuredImageURL = useFeaturedImage ? featuredImageMedia?.source_url : '';
32887    const featuredImageAlt = useFeaturedImage ? featuredImageMedia?.alt_text : '';
32888    const toggleUseFeaturedImage = () => {
32889      setAttributes({
32890        imageFill: false,
32891        mediaType: 'image',
32892        mediaId: undefined,
32893        mediaUrl: undefined,
32894        mediaAlt: undefined,
32895        mediaLink: undefined,
32896        linkDestination: undefined,
32897        linkTarget: undefined,
32898        linkClass: undefined,
32899        rel: undefined,
32900        href: undefined,
32901        useFeaturedImage: !useFeaturedImage
32902      });
32903    };
32904    const refMedia = (0,external_wp_element_namespaceObject.useRef)();
32905    const imperativeFocalPointPreview = value => {
32906      const {
32907        style
32908      } = refMedia.current;
32909      const {
32910        x,
32911        y
32912      } = value;
32913      style.objectPosition = `$x * 100}% $y * 100}%`;
32914    };
32915    const [temporaryMediaWidth, setTemporaryMediaWidth] = (0,external_wp_element_namespaceObject.useState)(null);
32916    const onSelectMedia = edit_attributesFromMedia({
32917      attributes,
32918      setAttributes
32919    });
32920    const onSetHref = props => {
32921      setAttributes(props);
32922    };
32923    const onWidthChange = width => {
32924      setTemporaryMediaWidth(applyWidthConstraints(width));
32925    };
32926    const commitWidthChange = width => {
32927      setAttributes({
32928        mediaWidth: applyWidthConstraints(width)
32929      });
32930      setTemporaryMediaWidth(null);
32931    };
32932    const classNames = dist_clsx({
32933      'has-media-on-the-right': 'right' === mediaPosition,
32934      'is-selected': isSelected,
32935      'is-stacked-on-mobile': isStackedOnMobile,
32936      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32937      'is-image-fill-element': imageFill
32938    });
32939    const widthString = `$temporaryMediaWidth || mediaWidth}%`;
32940    const gridTemplateColumns = 'right' === mediaPosition ? `1fr $widthString}` : `$widthString} 1fr`;
32941    const style = {
32942      gridTemplateColumns,
32943      msGridColumns: gridTemplateColumns
32944    };
32945    const onMediaAltChange = newMediaAlt => {
32946      setAttributes({
32947        mediaAlt: newMediaAlt
32948      });
32949    };
32950    const onVerticalAlignmentChange = alignment => {
32951      setAttributes({
32952        verticalAlignment: alignment
32953      });
32954    };
32955    const updateImage = newMediaSizeSlug => {
32956      const newUrl = getImageSourceUrlBySizeSlug(image, newMediaSizeSlug);
32957      if (!newUrl) {
32958        return null;
32959      }
32960      setAttributes({
32961        mediaUrl: newUrl,
32962        mediaSizeSlug: newMediaSizeSlug
32963      });
32964    };
32965    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
32966    const mediaTextGeneralSettings = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
32967      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
32968      resetAll: () => {
32969        setAttributes({
32970          isStackedOnMobile: true,
32971          imageFill: false,
32972          mediaAlt: '',
32973          focalPoint: undefined,
32974          mediaWidth: 50,
32975          mediaSizeSlug: undefined
32976        });
32977      },
32978      dropdownMenuProps: dropdownMenuProps,
32979      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32980        label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
32981        isShownByDefault: true,
32982        hasValue: () => mediaWidth !== 50,
32983        onDeselect: () => setAttributes({
32984          mediaWidth: 50
32985        }),
32986        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
32987          __nextHasNoMarginBottom: true,
32988          __next40pxDefaultSize: true,
32989          label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
32990          value: temporaryMediaWidth || mediaWidth,
32991          onChange: commitWidthChange,
32992          min: WIDTH_CONSTRAINT_PERCENTAGE,
32993          max: 100 - WIDTH_CONSTRAINT_PERCENTAGE
32994        })
32995      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32996        label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
32997        isShownByDefault: true,
32998        hasValue: () => !isStackedOnMobile,
32999        onDeselect: () => setAttributes({
33000          isStackedOnMobile: true
33001        }),
33002        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
33003          __nextHasNoMarginBottom: true,
33004          label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
33005          checked: isStackedOnMobile,
33006          onChange: () => setAttributes({
33007            isStackedOnMobile: !isStackedOnMobile
33008          })
33009        })
33010      }), mediaType === 'image' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33011        label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill'),
33012        isShownByDefault: true,
33013        hasValue: () => !!imageFill,
33014        onDeselect: () => setAttributes({
33015          imageFill: false
33016        }),
33017        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
33018          __nextHasNoMarginBottom: true,
33019          label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill'),
33020          checked: !!imageFill,
33021          onChange: () => setAttributes({
33022            imageFill: !imageFill
33023          })
33024        })
33025      }), imageFill && (mediaUrl || featuredImageURL) && mediaType === 'image' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33026        label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
33027        isShownByDefault: true,
33028        hasValue: () => !!focalPoint,
33029        onDeselect: () => setAttributes({
33030          focalPoint: undefined
33031        }),
33032        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FocalPointPicker, {
33033          __nextHasNoMarginBottom: true,
33034          label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
33035          url: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
33036          value: focalPoint,
33037          onChange: value => setAttributes({
33038            focalPoint: value
33039          }),
33040          onDragStart: imperativeFocalPointPreview,
33041          onDrag: imperativeFocalPointPreview
33042        })
33043      }), mediaType === 'image' && mediaUrl && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33044        label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
33045        isShownByDefault: true,
33046        hasValue: () => !!mediaAlt,
33047        onDeselect: () => setAttributes({
33048          mediaAlt: ''
33049        }),
33050        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
33051          __nextHasNoMarginBottom: true,
33052          label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
33053          value: mediaAlt,
33054          onChange: onMediaAltChange,
33055          help: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33056            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
33057              href:
33058              // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
33059              (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
33060              children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
33061            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
33062          })
33063        })
33064      }), mediaType === 'image' && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MediaTextResolutionTool, {
33065        image: image,
33066        value: mediaSizeSlug,
33067        onChange: updateImage
33068      })]
33069    });
33070    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33071      className: classNames,
33072      style
33073    });
33074    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
33075      className: 'wp-block-media-text__content'
33076    }, {
33077      template: constants_TEMPLATE,
33078      allowedBlocks
33079    });
33080    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
33081    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33082      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
33083        children: mediaTextGeneralSettings
33084      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
33085        group: "block",
33086        children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33087          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentControl, {
33088            onChange: onVerticalAlignmentChange,
33089            value: verticalAlignment
33090          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
33091            icon: pull_left,
33092            title: (0,external_wp_i18n_namespaceObject.__)('Show media on left'),
33093            isActive: mediaPosition === 'left',
33094            onClick: () => setAttributes({
33095              mediaPosition: 'left'
33096            })
33097          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
33098            icon: pull_right,
33099            title: (0,external_wp_i18n_namespaceObject.__)('Show media on right'),
33100            isActive: mediaPosition === 'right',
33101            onClick: () => setAttributes({
33102              mediaPosition: 'right'
33103            })
33104          })]
33105        }), mediaType === 'image' && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
33106          url: href || '',
33107          onChangeUrl: onSetHref,
33108          linkDestination: linkDestination,
33109          mediaType: mediaType,
33110          mediaUrl: image && image.source_url,
33111          mediaLink: image && image.link,
33112          linkTarget: linkTarget,
33113          linkClass: linkClass,
33114          rel: rel
33115        })]
33116      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33117        ...blockProps,
33118        children: [mediaPosition === 'right' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33119          ...innerBlocksProps
33120        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(media_container, {
33121          className: "wp-block-media-text__media",
33122          onSelectMedia: onSelectMedia,
33123          onWidthChange: onWidthChange,
33124          commitWidthChange: commitWidthChange,
33125          refMedia: refMedia,
33126          enableResize: blockEditingMode === 'default',
33127          toggleUseFeaturedImage: toggleUseFeaturedImage,
33128          focalPoint,
33129          imageFill,
33130          isSelected,
33131          isStackedOnMobile,
33132          mediaAlt,
33133          mediaId,
33134          mediaPosition,
33135          mediaType,
33136          mediaUrl,
33137          mediaWidth,
33138          useFeaturedImage,
33139          featuredImageURL,
33140          featuredImageAlt
33141        }), mediaPosition !== 'right' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33142          ...innerBlocksProps
33143        })]
33144      })]
33145    });
33146  }
33147  /* harmony default export */ const media_text_edit = (MediaTextEdit);
33148  
33149  ;// ./node_modules/@wordpress/block-library/build-module/media-text/save.js
33150  /**
33151   * External dependencies
33152   */
33153  
33154  
33155  /**
33156   * WordPress dependencies
33157   */
33158  
33159  
33160  /**
33161   * Internal dependencies
33162   */
33163  
33164  
33165  
33166  const save_DEFAULT_MEDIA_WIDTH = 50;
33167  const save_noop = () => {};
33168  function media_text_save_save({
33169    attributes
33170  }) {
33171    const {
33172      isStackedOnMobile,
33173      mediaAlt,
33174      mediaPosition,
33175      mediaType,
33176      mediaUrl,
33177      mediaWidth,
33178      mediaId,
33179      verticalAlignment,
33180      imageFill,
33181      focalPoint,
33182      linkClass,
33183      href,
33184      linkTarget,
33185      rel
33186    } = attributes;
33187    const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
33188    const newRel = !rel ? undefined : rel;
33189    const imageClasses = dist_clsx({
33190      [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
33191      [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
33192    });
33193    const positionStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
33194    let image = mediaUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
33195      src: mediaUrl,
33196      alt: mediaAlt,
33197      className: imageClasses || null,
33198      style: positionStyles
33199    }) : null;
33200    if (href) {
33201      image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
33202        className: linkClass,
33203        href: href,
33204        target: linkTarget,
33205        rel: newRel,
33206        children: image
33207      });
33208    }
33209    const mediaTypeRenders = {
33210      image: () => image,
33211      video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
33212        controls: true,
33213        src: mediaUrl
33214      })
33215    };
33216    const className = dist_clsx({
33217      'has-media-on-the-right': 'right' === mediaPosition,
33218      'is-stacked-on-mobile': isStackedOnMobile,
33219      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
33220      'is-image-fill-element': imageFill
33221    });
33222    let gridTemplateColumns;
33223    if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) {
33224      gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
33225    }
33226    const style = {
33227      gridTemplateColumns
33228    };
33229    if ('right' === mediaPosition) {
33230      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33231        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
33232          className,
33233          style
33234        }),
33235        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33236          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
33237            className: 'wp-block-media-text__content'
33238          })
33239        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
33240          className: "wp-block-media-text__media",
33241          children: (mediaTypeRenders[mediaType] || save_noop)()
33242        })]
33243      });
33244    }
33245    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33246      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
33247        className,
33248        style
33249      }),
33250      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
33251        className: "wp-block-media-text__media",
33252        children: (mediaTypeRenders[mediaType] || save_noop)()
33253      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33254        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
33255          className: 'wp-block-media-text__content'
33256        })
33257      })]
33258    });
33259  }
33260  
33261  ;// ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js
33262  /**
33263   * WordPress dependencies
33264   */
33265  
33266  const media_text_transforms_transforms = {
33267    from: [{
33268      type: 'block',
33269      blocks: ['core/image'],
33270      transform: ({
33271        alt,
33272        url,
33273        id,
33274        anchor
33275      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
33276        mediaAlt: alt,
33277        mediaId: id,
33278        mediaUrl: url,
33279        mediaType: 'image',
33280        anchor
33281      })
33282    }, {
33283      type: 'block',
33284      blocks: ['core/video'],
33285      transform: ({
33286        src,
33287        id,
33288        anchor
33289      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
33290        mediaId: id,
33291        mediaUrl: src,
33292        mediaType: 'video',
33293        anchor
33294      })
33295    }, {
33296      type: 'block',
33297      blocks: ['core/cover'],
33298      transform: ({
33299        align,
33300        alt,
33301        anchor,
33302        backgroundType,
33303        customGradient,
33304        customOverlayColor,
33305        gradient,
33306        id,
33307        overlayColor,
33308        style,
33309        textColor,
33310        url
33311      }, innerBlocks) => {
33312        let additionalAttributes = {};
33313        if (customGradient) {
33314          additionalAttributes = {
33315            style: {
33316              color: {
33317                gradient: customGradient
33318              }
33319            }
33320          };
33321        } else if (customOverlayColor) {
33322          additionalAttributes = {
33323            style: {
33324              color: {
33325                background: customOverlayColor
33326              }
33327            }
33328          };
33329        }
33330  
33331        // Maintain custom text color block support value.
33332        if (style?.color?.text) {
33333          additionalAttributes.style = {
33334            color: {
33335              ...additionalAttributes.style?.color,
33336              text: style.color.text
33337            }
33338          };
33339        }
33340        return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
33341          align,
33342          anchor,
33343          backgroundColor: overlayColor,
33344          gradient,
33345          mediaAlt: alt,
33346          mediaId: id,
33347          mediaType: backgroundType,
33348          mediaUrl: url,
33349          textColor,
33350          ...additionalAttributes
33351        }, innerBlocks);
33352      }
33353    }],
33354    to: [{
33355      type: 'block',
33356      blocks: ['core/image'],
33357      isMatch: ({
33358        mediaType,
33359        mediaUrl
33360      }) => {
33361        return !mediaUrl || mediaType === 'image';
33362      },
33363      transform: ({
33364        mediaAlt,
33365        mediaId,
33366        mediaUrl,
33367        anchor
33368      }) => {
33369        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
33370          alt: mediaAlt,
33371          id: mediaId,
33372          url: mediaUrl,
33373          anchor
33374        });
33375      }
33376    }, {
33377      type: 'block',
33378      blocks: ['core/video'],
33379      isMatch: ({
33380        mediaType,
33381        mediaUrl
33382      }) => {
33383        return !mediaUrl || mediaType === 'video';
33384      },
33385      transform: ({
33386        mediaId,
33387        mediaUrl,
33388        anchor
33389      }) => {
33390        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
33391          id: mediaId,
33392          src: mediaUrl,
33393          anchor
33394        });
33395      }
33396    }, {
33397      type: 'block',
33398      blocks: ['core/cover'],
33399      transform: ({
33400        align,
33401        anchor,
33402        backgroundColor,
33403        focalPoint,
33404        gradient,
33405        mediaAlt,
33406        mediaId,
33407        mediaType,
33408        mediaUrl,
33409        style,
33410        textColor
33411      }, innerBlocks) => {
33412        const additionalAttributes = {};
33413  
33414        // Migrate the background styles or gradient to Cover's custom
33415        // gradient and overlay properties.
33416        if (style?.color?.gradient) {
33417          additionalAttributes.customGradient = style.color.gradient;
33418        } else if (style?.color?.background) {
33419          additionalAttributes.customOverlayColor = style.color.background;
33420        }
33421  
33422        // Maintain custom text color support style.
33423        if (style?.color?.text) {
33424          additionalAttributes.style = {
33425            color: {
33426              text: style.color.text
33427            }
33428          };
33429        }
33430        const coverAttributes = {
33431          align,
33432          alt: mediaAlt,
33433          anchor,
33434          backgroundType: mediaType,
33435          dimRatio: !!mediaUrl ? 50 : 100,
33436          focalPoint,
33437          gradient,
33438          id: mediaId,
33439          overlayColor: backgroundColor,
33440          textColor,
33441          url: mediaUrl,
33442          ...additionalAttributes
33443        };
33444        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', coverAttributes, innerBlocks);
33445      }
33446    }]
33447  };
33448  /* harmony default export */ const media_text_transforms = (media_text_transforms_transforms);
33449  
33450  ;// ./node_modules/@wordpress/block-library/build-module/media-text/index.js
33451  /**
33452   * WordPress dependencies
33453   */
33454  
33455  
33456  
33457  /**
33458   * Internal dependencies
33459   */
33460  
33461  
33462  
33463  const media_text_metadata = {
33464    $schema: "https://schemas.wp.org/trunk/block.json",
33465    apiVersion: 3,
33466    name: "core/media-text",
33467    title: "Media & Text",
33468    category: "media",
33469    description: "Set media and words side-by-side for a richer layout.",
33470    keywords: ["image", "video"],
33471    textdomain: "default",
33472    attributes: {
33473      align: {
33474        type: "string",
33475        "default": "none"
33476      },
33477      mediaAlt: {
33478        type: "string",
33479        source: "attribute",
33480        selector: "figure img",
33481        attribute: "alt",
33482        "default": "",
33483        role: "content"
33484      },
33485      mediaPosition: {
33486        type: "string",
33487        "default": "left"
33488      },
33489      mediaId: {
33490        type: "number",
33491        role: "content"
33492      },
33493      mediaUrl: {
33494        type: "string",
33495        source: "attribute",
33496        selector: "figure video,figure img",
33497        attribute: "src",
33498        role: "content"
33499      },
33500      mediaLink: {
33501        type: "string"
33502      },
33503      linkDestination: {
33504        type: "string"
33505      },
33506      linkTarget: {
33507        type: "string",
33508        source: "attribute",
33509        selector: "figure a",
33510        attribute: "target"
33511      },
33512      href: {
33513        type: "string",
33514        source: "attribute",
33515        selector: "figure a",
33516        attribute: "href",
33517        role: "content"
33518      },
33519      rel: {
33520        type: "string",
33521        source: "attribute",
33522        selector: "figure a",
33523        attribute: "rel"
33524      },
33525      linkClass: {
33526        type: "string",
33527        source: "attribute",
33528        selector: "figure a",
33529        attribute: "class"
33530      },
33531      mediaType: {
33532        type: "string",
33533        role: "content"
33534      },
33535      mediaWidth: {
33536        type: "number",
33537        "default": 50
33538      },
33539      mediaSizeSlug: {
33540        type: "string"
33541      },
33542      isStackedOnMobile: {
33543        type: "boolean",
33544        "default": true
33545      },
33546      verticalAlignment: {
33547        type: "string"
33548      },
33549      imageFill: {
33550        type: "boolean"
33551      },
33552      focalPoint: {
33553        type: "object"
33554      },
33555      allowedBlocks: {
33556        type: "array"
33557      },
33558      useFeaturedImage: {
33559        type: "boolean",
33560        "default": false
33561      }
33562    },
33563    usesContext: ["postId", "postType"],
33564    supports: {
33565      anchor: true,
33566      align: ["wide", "full"],
33567      html: false,
33568      __experimentalBorder: {
33569        color: true,
33570        radius: true,
33571        style: true,
33572        width: true,
33573        __experimentalDefaultControls: {
33574          color: true,
33575          radius: true,
33576          style: true,
33577          width: true
33578        }
33579      },
33580      color: {
33581        gradients: true,
33582        heading: true,
33583        link: true,
33584        __experimentalDefaultControls: {
33585          background: true,
33586          text: true
33587        }
33588      },
33589      spacing: {
33590        margin: true,
33591        padding: true
33592      },
33593      typography: {
33594        fontSize: true,
33595        lineHeight: true,
33596        __experimentalFontFamily: true,
33597        __experimentalFontWeight: true,
33598        __experimentalFontStyle: true,
33599        __experimentalTextTransform: true,
33600        __experimentalTextDecoration: true,
33601        __experimentalLetterSpacing: true,
33602        __experimentalDefaultControls: {
33603          fontSize: true
33604        }
33605      },
33606      interactivity: {
33607        clientNavigation: true
33608      }
33609    },
33610    editorStyle: "wp-block-media-text-editor",
33611    style: "wp-block-media-text"
33612  };
33613  
33614  
33615  const {
33616    name: media_text_name
33617  } = media_text_metadata;
33618  
33619  const media_text_settings = {
33620    icon: media_and_text,
33621    example: {
33622      viewportWidth: 601,
33623      // Columns collapse "@media (max-width: 600px)".
33624      attributes: {
33625        mediaType: 'image',
33626        mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg'
33627      },
33628      innerBlocks: [{
33629        name: 'core/paragraph',
33630        attributes: {
33631          content: (0,external_wp_i18n_namespaceObject.__)('The wren<br>Earns his living<br>Noiselessly.')
33632        }
33633      }, {
33634        name: 'core/paragraph',
33635        attributes: {
33636          content: (0,external_wp_i18n_namespaceObject.__)('— Kobayashi Issa (一茶)')
33637        }
33638      }]
33639    },
33640    transforms: media_text_transforms,
33641    edit: media_text_edit,
33642    save: media_text_save_save,
33643    deprecated: media_text_deprecated
33644  };
33645  const media_text_init = () => initBlock({
33646    name: media_text_name,
33647    metadata: media_text_metadata,
33648    settings: media_text_settings
33649  });
33650  
33651  ;// ./node_modules/@wordpress/block-library/build-module/missing/edit.js
33652  /**
33653   * WordPress dependencies
33654   */
33655  
33656  
33657  
33658  
33659  
33660  
33661  
33662  
33663  function MissingEdit({
33664    attributes,
33665    clientId
33666  }) {
33667    const {
33668      originalName,
33669      originalUndelimitedContent
33670    } = attributes;
33671    const hasContent = !!originalUndelimitedContent;
33672    const {
33673      hasFreeformBlock,
33674      hasHTMLBlock
33675    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
33676      const {
33677        canInsertBlockType,
33678        getBlockRootClientId
33679      } = select(external_wp_blockEditor_namespaceObject.store);
33680      return {
33681        hasFreeformBlock: canInsertBlockType('core/freeform', getBlockRootClientId(clientId)),
33682        hasHTMLBlock: canInsertBlockType('core/html', getBlockRootClientId(clientId))
33683      };
33684    }, [clientId]);
33685    const {
33686      replaceBlock
33687    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
33688    function convertToHTML() {
33689      replaceBlock(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
33690        content: originalUndelimitedContent
33691      }));
33692    }
33693    const actions = [];
33694    let messageHTML;
33695    const convertToHtmlButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
33696      __next40pxDefaultSize: true,
33697      onClick: convertToHTML,
33698      variant: "primary",
33699      children: (0,external_wp_i18n_namespaceObject.__)('Keep as HTML')
33700    }, "convert");
33701    if (hasContent && !hasFreeformBlock && !originalName) {
33702      if (hasHTMLBlock) {
33703        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.');
33704        actions.push(convertToHtmlButton);
33705      } else {
33706        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.');
33707      }
33708    } else if (hasContent && hasHTMLBlock) {
33709      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: block name */
33710      (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);
33711      actions.push(convertToHtmlButton);
33712    } else {
33713      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: block name */
33714      (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);
33715    }
33716    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33717      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33718        className: 'has-warning'
33719      }),
33720      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
33721        actions: actions,
33722        children: messageHTML
33723      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
33724        children: (0,external_wp_dom_namespaceObject.safeHTML)(originalUndelimitedContent)
33725      })]
33726    });
33727  }
33728  
33729  ;// ./node_modules/@wordpress/block-library/build-module/missing/save.js
33730  /**
33731   * WordPress dependencies
33732   */
33733  
33734  
33735  function missing_save_save({
33736    attributes
33737  }) {
33738    // Preserve the missing block's content.
33739    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
33740      children: attributes.originalContent
33741    });
33742  }
33743  
33744  ;// ./node_modules/@wordpress/block-library/build-module/missing/index.js
33745  /**
33746   * WordPress dependencies
33747   */
33748  
33749  
33750  /**
33751   * Internal dependencies
33752   */
33753  
33754  
33755  const missing_metadata = {
33756    $schema: "https://schemas.wp.org/trunk/block.json",
33757    apiVersion: 3,
33758    name: "core/missing",
33759    title: "Unsupported",
33760    category: "text",
33761    description: "Your site doesn\u2019t include support for this block.",
33762    textdomain: "default",
33763    attributes: {
33764      originalName: {
33765        type: "string"
33766      },
33767      originalUndelimitedContent: {
33768        type: "string"
33769      },
33770      originalContent: {
33771        type: "string",
33772        source: "raw"
33773      }
33774    },
33775    supports: {
33776      className: false,
33777      customClassName: false,
33778      inserter: false,
33779      html: false,
33780      reusable: false,
33781      interactivity: {
33782        clientNavigation: true
33783      }
33784    }
33785  };
33786  
33787  const {
33788    name: missing_name
33789  } = missing_metadata;
33790  
33791  const missing_settings = {
33792    name: missing_name,
33793    __experimentalLabel(attributes, {
33794      context
33795    }) {
33796      if (context === 'accessibility') {
33797        const {
33798          originalName
33799        } = attributes;
33800        const originalBlockType = originalName ? (0,external_wp_blocks_namespaceObject.getBlockType)(originalName) : undefined;
33801        if (originalBlockType) {
33802          return originalBlockType.settings.title || originalName;
33803        }
33804        return '';
33805      }
33806    },
33807    edit: MissingEdit,
33808    save: missing_save_save
33809  };
33810  const missing_init = () => initBlock({
33811    name: missing_name,
33812    metadata: missing_metadata,
33813    settings: missing_settings
33814  });
33815  
33816  ;// ./node_modules/@wordpress/icons/build-module/library/more.js
33817  /**
33818   * WordPress dependencies
33819   */
33820  
33821  
33822  const more = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
33823    viewBox: "0 0 24 24",
33824    xmlns: "http://www.w3.org/2000/svg",
33825    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
33826      d: "M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z"
33827    })
33828  });
33829  /* harmony default export */ const library_more = (more);
33830  
33831  ;// ./node_modules/@wordpress/block-library/build-module/more/edit.js
33832  /**
33833   * WordPress dependencies
33834   */
33835  
33836  
33837  
33838  
33839  
33840  /**
33841   * Internal dependencies
33842   */
33843  
33844  
33845  const DEFAULT_TEXT = (0,external_wp_i18n_namespaceObject.__)('Read more');
33846  function MoreEdit({
33847    attributes: {
33848      customText,
33849      noTeaser
33850    },
33851    insertBlocksAfter,
33852    setAttributes
33853  }) {
33854    const onChangeInput = event => {
33855      setAttributes({
33856        customText: event.target.value
33857      });
33858    };
33859    const onKeyDown = ({
33860      keyCode
33861    }) => {
33862      if (keyCode === external_wp_keycodes_namespaceObject.ENTER) {
33863        insertBlocksAfter([(0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())]);
33864      }
33865    };
33866    const getHideExcerptHelp = checked => checked ? (0,external_wp_i18n_namespaceObject.__)('The excerpt is hidden.') : (0,external_wp_i18n_namespaceObject.__)('The excerpt is visible.');
33867    const toggleHideExcerpt = () => setAttributes({
33868      noTeaser: !noTeaser
33869    });
33870    const style = {
33871      width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em`
33872    };
33873    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
33874    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33875      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
33876        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
33877          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
33878          resetAll: () => {
33879            setAttributes({
33880              noTeaser: false
33881            });
33882          },
33883          dropdownMenuProps: dropdownMenuProps,
33884          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33885            label: (0,external_wp_i18n_namespaceObject.__)('Hide excerpt'),
33886            isShownByDefault: true,
33887            hasValue: () => noTeaser,
33888            onDeselect: () => setAttributes({
33889              noTeaser: false
33890            }),
33891            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
33892              __nextHasNoMarginBottom: true,
33893              label: (0,external_wp_i18n_namespaceObject.__)('Hide the excerpt on the full content page'),
33894              checked: !!noTeaser,
33895              onChange: toggleHideExcerpt,
33896              help: getHideExcerptHelp
33897            })
33898          })
33899        })
33900      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33901        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
33902        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
33903          "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
33904          type: "text",
33905          value: customText,
33906          placeholder: DEFAULT_TEXT,
33907          onChange: onChangeInput,
33908          onKeyDown: onKeyDown,
33909          style: style
33910        })
33911      })]
33912    });
33913  }
33914  
33915  ;// ./node_modules/@wordpress/block-library/build-module/more/save.js
33916  /**
33917   * WordPress dependencies
33918   */
33919  
33920  
33921  function more_save_save({
33922    attributes: {
33923      customText,
33924      noTeaser
33925    }
33926  }) {
33927    const moreTag = customText ? `<!--more $customText}-->` : '<!--more-->';
33928    const noTeaserTag = noTeaser ? '<!--noteaser-->' : '';
33929    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
33930      children: [moreTag, noTeaserTag].filter(Boolean).join('\n')
33931    });
33932  }
33933  
33934  ;// ./node_modules/@wordpress/block-library/build-module/more/transforms.js
33935  /**
33936   * WordPress dependencies
33937   */
33938  
33939  const more_transforms_transforms = {
33940    from: [{
33941      type: 'raw',
33942      schema: {
33943        'wp-block': {
33944          attributes: ['data-block']
33945        }
33946      },
33947      isMatch: node => node.dataset && node.dataset.block === 'core/more',
33948      transform(node) {
33949        const {
33950          customText,
33951          noTeaser
33952        } = node.dataset;
33953        const attrs = {};
33954        // Don't copy unless defined and not an empty string.
33955        if (customText) {
33956          attrs.customText = customText;
33957        }
33958        // Special handling for boolean.
33959        if (noTeaser === '') {
33960          attrs.noTeaser = true;
33961        }
33962        return (0,external_wp_blocks_namespaceObject.createBlock)('core/more', attrs);
33963      }
33964    }]
33965  };
33966  /* harmony default export */ const more_transforms = (more_transforms_transforms);
33967  
33968  ;// ./node_modules/@wordpress/block-library/build-module/more/index.js
33969  /**
33970   * WordPress dependencies
33971   */
33972  
33973  
33974  /**
33975   * Internal dependencies
33976   */
33977  
33978  
33979  const more_metadata = {
33980    $schema: "https://schemas.wp.org/trunk/block.json",
33981    apiVersion: 3,
33982    name: "core/more",
33983    title: "More",
33984    category: "design",
33985    description: "Content before this block will be shown in the excerpt on your archives page.",
33986    keywords: ["read more"],
33987    textdomain: "default",
33988    attributes: {
33989      customText: {
33990        type: "string",
33991        "default": ""
33992      },
33993      noTeaser: {
33994        type: "boolean",
33995        "default": false
33996      }
33997    },
33998    supports: {
33999      customClassName: false,
34000      className: false,
34001      html: false,
34002      multiple: false,
34003      interactivity: {
34004        clientNavigation: true
34005      }
34006    },
34007    editorStyle: "wp-block-more-editor"
34008  };
34009  
34010  
34011  const {
34012    name: more_name
34013  } = more_metadata;
34014  
34015  const more_settings = {
34016    icon: library_more,
34017    example: {},
34018    __experimentalLabel(attributes, {
34019      context
34020    }) {
34021      const customName = attributes?.metadata?.name;
34022      if (context === 'list-view' && customName) {
34023        return customName;
34024      }
34025      if (context === 'accessibility') {
34026        return attributes.customText;
34027      }
34028    },
34029    transforms: more_transforms,
34030    edit: MoreEdit,
34031    save: more_save_save
34032  };
34033  const more_init = () => initBlock({
34034    name: more_name,
34035    metadata: more_metadata,
34036    settings: more_settings
34037  });
34038  
34039  ;// ./node_modules/@wordpress/icons/build-module/library/navigation.js
34040  /**
34041   * WordPress dependencies
34042   */
34043  
34044  
34045  const navigation = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34046    viewBox: "0 0 24 24",
34047    xmlns: "http://www.w3.org/2000/svg",
34048    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34049      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"
34050    })
34051  });
34052  /* harmony default export */ const library_navigation = (navigation);
34053  
34054  ;// external ["wp","a11y"]
34055  const external_wp_a11y_namespaceObject = window["wp"]["a11y"];
34056  ;// ./node_modules/@wordpress/icons/build-module/icon/index.js
34057  /**
34058   * WordPress dependencies
34059   */
34060  
34061  
34062  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
34063  
34064  /**
34065   * Return an SVG icon.
34066   *
34067   * @param {IconProps}                                 props icon is the SVG component to render
34068   *                                                          size is a number specifying the icon size in pixels
34069   *                                                          Other props will be passed to wrapped SVG component
34070   * @param {import('react').ForwardedRef<HTMLElement>} ref   The forwarded ref to the SVG element.
34071   *
34072   * @return {JSX.Element}  Icon component
34073   */
34074  function Icon({
34075    icon,
34076    size = 24,
34077    ...props
34078  }, ref) {
34079    return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
34080      width: size,
34081      height: size,
34082      ...props,
34083      ref
34084    });
34085  }
34086  /* harmony default export */ const build_module_icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon));
34087  
34088  ;// ./node_modules/@wordpress/icons/build-module/library/close.js
34089  /**
34090   * WordPress dependencies
34091   */
34092  
34093  
34094  const close_close = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34095    xmlns: "http://www.w3.org/2000/svg",
34096    viewBox: "0 0 24 24",
34097    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34098      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"
34099    })
34100  });
34101  /* harmony default export */ const library_close = (close_close);
34102  
34103  ;// ./node_modules/@wordpress/block-library/build-module/navigation/constants.js
34104  const constants_DEFAULT_BLOCK = {
34105    name: 'core/navigation-link'
34106  };
34107  const PRIORITIZED_INSERTER_BLOCKS = ['core/navigation-link/page', 'core/navigation-link'];
34108  
34109  // These parameters must be kept aligned with those in
34110  // lib/compat/wordpress-6.3/navigation-block-preloading.php
34111  // and
34112  // edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js
34113  const PRELOADED_NAVIGATION_MENUS_QUERY = {
34114    per_page: 100,
34115    status: ['publish', 'draft'],
34116    order: 'desc',
34117    orderby: 'date'
34118  };
34119  const SELECT_NAVIGATION_MENUS_ARGS = ['postType', 'wp_navigation', PRELOADED_NAVIGATION_MENUS_QUERY];
34120  
34121  ;// ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js
34122  /**
34123   * WordPress dependencies
34124   */
34125  
34126  
34127  
34128  /**
34129   * Internal dependencies
34130   */
34131  
34132  function useNavigationMenu(ref) {
34133    const permissions = (0,external_wp_coreData_namespaceObject.useResourcePermissions)({
34134      kind: 'postType',
34135      name: 'wp_navigation',
34136      id: ref
34137    });
34138    const {
34139      navigationMenu,
34140      isNavigationMenuResolved,
34141      isNavigationMenuMissing
34142    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
34143      return selectExistingMenu(select, ref);
34144    }, [ref]);
34145    const {
34146      // Can the user create navigation menus?
34147      canCreate: canCreateNavigationMenus,
34148      // Can the user update the specific navigation menu with the given post ID?
34149      canUpdate: canUpdateNavigationMenu,
34150      // Can the user delete the specific navigation menu with the given post ID?
34151      canDelete: canDeleteNavigationMenu,
34152      isResolving: isResolvingPermissions,
34153      hasResolved: hasResolvedPermissions
34154    } = permissions;
34155    const {
34156      records: navigationMenus,
34157      isResolving: isResolvingNavigationMenus,
34158      hasResolved: hasResolvedNavigationMenus
34159    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', `wp_navigation`, PRELOADED_NAVIGATION_MENUS_QUERY);
34160    const canSwitchNavigationMenu = ref ? navigationMenus?.length > 1 : navigationMenus?.length > 0;
34161    return {
34162      navigationMenu,
34163      isNavigationMenuResolved,
34164      isNavigationMenuMissing,
34165      navigationMenus,
34166      isResolvingNavigationMenus,
34167      hasResolvedNavigationMenus,
34168      canSwitchNavigationMenu,
34169      canUserCreateNavigationMenus: canCreateNavigationMenus,
34170      isResolvingCanUserCreateNavigationMenus: isResolvingPermissions,
34171      hasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,
34172      canUserUpdateNavigationMenu: canUpdateNavigationMenu,
34173      hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
34174      canUserDeleteNavigationMenu: canDeleteNavigationMenu,
34175      hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
34176    };
34177  }
34178  function selectExistingMenu(select, ref) {
34179    if (!ref) {
34180      return {
34181        isNavigationMenuResolved: false,
34182        isNavigationMenuMissing: true
34183      };
34184    }
34185    const {
34186      getEntityRecord,
34187      getEditedEntityRecord,
34188      hasFinishedResolution
34189    } = select(external_wp_coreData_namespaceObject.store);
34190    const args = ['postType', 'wp_navigation', ref];
34191    const navigationMenu = getEntityRecord(...args);
34192    const editedNavigationMenu = getEditedEntityRecord(...args);
34193    const hasResolvedNavigationMenu = hasFinishedResolution('getEditedEntityRecord', args);
34194  
34195    // Only published Navigation posts are considered valid.
34196    // Draft Navigation posts are valid only on the editor,
34197    // requiring a post update to publish to show in frontend.
34198    // To achieve that, index.php must reflect this validation only for published.
34199    const isNavigationMenuPublishedOrDraft = editedNavigationMenu.status === 'publish' || editedNavigationMenu.status === 'draft';
34200    return {
34201      isNavigationMenuResolved: hasResolvedNavigationMenu,
34202      isNavigationMenuMissing: hasResolvedNavigationMenu && (!navigationMenu || !isNavigationMenuPublishedOrDraft),
34203      // getEditedEntityRecord will return the post regardless of status.
34204      // Therefore if the found post is not published then we should ignore it.
34205      navigationMenu: isNavigationMenuPublishedOrDraft ? editedNavigationMenu : null
34206    };
34207  }
34208  
34209  ;// ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-entities.js
34210  /**
34211   * WordPress dependencies
34212   */
34213  
34214  
34215  /**
34216   * @typedef {Object} NavigationEntitiesData
34217   * @property {Array|undefined} pages                - a collection of WP Post entity objects of post type "Page".
34218   * @property {boolean}         isResolvingPages     - indicates whether the request to fetch pages is currently resolving.
34219   * @property {boolean}         hasResolvedPages     - indicates whether the request to fetch pages has finished resolving.
34220   * @property {Array|undefined} menus                - a collection of Menu entity objects.
34221   * @property {boolean}         isResolvingMenus     - indicates whether the request to fetch menus is currently resolving.
34222   * @property {boolean}         hasResolvedMenus     - indicates whether the request to fetch menus has finished resolving.
34223   * @property {Array|undefined} menusItems           - a collection of Menu Item entity objects for the current menuId.
34224   * @property {boolean}         hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.
34225   * @property {boolean}         hasPages             - indicates whether there is currently any data for pages.
34226   * @property {boolean}         hasMenus             - indicates whether there is currently any data for menus.
34227   */
34228  
34229  /**
34230   * Manages fetching and resolution state for all entities required
34231   * for the Navigation block.
34232   *
34233   * @param {number} menuId the menu for which to retrieve menuItem data.
34234   * @return { NavigationEntitiesData } the entity data.
34235   */
34236  function useNavigationEntities(menuId) {
34237    const {
34238      records: menus,
34239      isResolving: isResolvingMenus,
34240      hasResolved: hasResolvedMenus
34241    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'menu', {
34242      per_page: -1,
34243      context: 'view'
34244    });
34245    const {
34246      records: pages,
34247      isResolving: isResolvingPages,
34248      hasResolved: hasResolvedPages
34249    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', 'page', {
34250      parent: 0,
34251      order: 'asc',
34252      orderby: 'id',
34253      per_page: -1,
34254      context: 'view'
34255    });
34256    const {
34257      records: menuItems,
34258      hasResolved: hasResolvedMenuItems
34259    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'menuItem', {
34260      menus: menuId,
34261      per_page: -1,
34262      context: 'view'
34263    }, {
34264      enabled: !!menuId
34265    });
34266    return {
34267      pages,
34268      isResolvingPages,
34269      hasResolvedPages,
34270      hasPages: !!(hasResolvedPages && pages?.length),
34271      menus,
34272      isResolvingMenus,
34273      hasResolvedMenus,
34274      hasMenus: !!(hasResolvedMenus && menus?.length),
34275      menuItems,
34276      hasResolvedMenuItems
34277    };
34278  }
34279  
34280  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/placeholder-preview.js
34281  /**
34282   * WordPress dependencies
34283   */
34284  
34285  
34286  
34287  const PlaceholderPreview = ({
34288    isVisible = true
34289  }) => {
34290    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34291      "aria-hidden": !isVisible ? true : undefined,
34292      className: "wp-block-navigation-placeholder__preview",
34293      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34294        className: "wp-block-navigation-placeholder__actions__indicator",
34295        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34296          icon: library_navigation
34297        }), (0,external_wp_i18n_namespaceObject.__)('Navigation')]
34298      })
34299    });
34300  };
34301  /* harmony default export */ const placeholder_preview = (PlaceholderPreview);
34302  
34303  ;// ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
34304  /**
34305   * WordPress dependencies
34306   */
34307  
34308  
34309  const moreVertical = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34310    xmlns: "http://www.w3.org/2000/svg",
34311    viewBox: "0 0 24 24",
34312    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34313      d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
34314    })
34315  });
34316  /* harmony default export */ const more_vertical = (moreVertical);
34317  
34318  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-selector.js
34319  /**
34320   * WordPress dependencies
34321   */
34322  
34323  
34324  
34325  
34326  
34327  
34328  
34329  /**
34330   * Internal dependencies
34331   */
34332  
34333  
34334  
34335  function buildMenuLabel(title, id, status) {
34336    if (!title) {
34337      /* translators: %s: the index of the menu in the list of menus. */
34338      return (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('(no title %s)'), id);
34339    }
34340    if (status === 'publish') {
34341      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title);
34342    }
34343    return (0,external_wp_i18n_namespaceObject.sprintf)(
34344    // translators: 1: title of the menu. 2: status of the menu (draft, pending, etc.).
34345    (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$s)'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title), status);
34346  }
34347  function NavigationMenuSelector({
34348    currentMenuId,
34349    onSelectNavigationMenu,
34350    onSelectClassicMenu,
34351    onCreateNew,
34352    actionLabel,
34353    createNavigationMenuIsSuccess,
34354    createNavigationMenuIsError
34355  }) {
34356    /* translators: %s: The name of a menu. */
34357    const createActionLabel = (0,external_wp_i18n_namespaceObject.__)("Create from '%s'");
34358    const [isUpdatingMenuRef, setIsUpdatingMenuRef] = (0,external_wp_element_namespaceObject.useState)(false);
34359    actionLabel = actionLabel || createActionLabel;
34360    const {
34361      menus: classicMenus
34362    } = useNavigationEntities();
34363    const {
34364      navigationMenus,
34365      isResolvingNavigationMenus,
34366      hasResolvedNavigationMenus,
34367      canUserCreateNavigationMenus,
34368      canSwitchNavigationMenu,
34369      isNavigationMenuMissing
34370    } = useNavigationMenu(currentMenuId);
34371    const [currentTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
34372    const menuChoices = (0,external_wp_element_namespaceObject.useMemo)(() => {
34373      return navigationMenus?.map(({
34374        id,
34375        title,
34376        status
34377      }, index) => {
34378        const label = buildMenuLabel(title?.rendered, index + 1, status);
34379        return {
34380          value: id,
34381          label,
34382          ariaLabel: (0,external_wp_i18n_namespaceObject.sprintf)(actionLabel, label),
34383          disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
34384        };
34385      }) || [];
34386    }, [navigationMenus, actionLabel, isResolvingNavigationMenus, hasResolvedNavigationMenus, isUpdatingMenuRef]);
34387    const hasNavigationMenus = !!navigationMenus?.length;
34388    const hasClassicMenus = !!classicMenus?.length;
34389    const showNavigationMenus = !!canSwitchNavigationMenu;
34390    const showClassicMenus = !!canUserCreateNavigationMenus;
34391    const noMenuSelected = hasNavigationMenus && !currentMenuId;
34392    const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
34393    const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
34394    const navMenuHasBeenDeleted = currentMenuId && isNavigationMenuMissing;
34395    let selectorLabel = '';
34396    if (isResolvingNavigationMenus) {
34397      selectorLabel = (0,external_wp_i18n_namespaceObject.__)('Loading…');
34398    } else if (noMenuSelected || noBlockMenus || menuUnavailable || navMenuHasBeenDeleted) {
34399      // Note: classic Menus may be available.
34400      selectorLabel = (0,external_wp_i18n_namespaceObject.__)('Choose or create a Navigation Menu');
34401    } else {
34402      // Current Menu's title.
34403      selectorLabel = currentTitle;
34404    }
34405    (0,external_wp_element_namespaceObject.useEffect)(() => {
34406      if (isUpdatingMenuRef && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
34407        setIsUpdatingMenuRef(false);
34408      }
34409    }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenus, createNavigationMenuIsError, isUpdatingMenuRef, menuUnavailable, noBlockMenus, noMenuSelected]);
34410    const NavigationMenuSelectorDropdown = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
34411      label: selectorLabel,
34412      icon: more_vertical,
34413      toggleProps: {
34414        size: 'small'
34415      },
34416      children: ({
34417        onClose
34418      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34419        children: [showNavigationMenus && hasNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
34420          label: (0,external_wp_i18n_namespaceObject.__)('Menus'),
34421          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItemsChoice, {
34422            value: currentMenuId,
34423            onSelect: menuId => {
34424              onSelectNavigationMenu(menuId);
34425              onClose();
34426            },
34427            choices: menuChoices
34428          })
34429        }), showClassicMenus && hasClassicMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
34430          label: (0,external_wp_i18n_namespaceObject.__)('Import Classic Menus'),
34431          children: classicMenus?.map(menu => {
34432            const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(menu.name);
34433            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34434              onClick: async () => {
34435                setIsUpdatingMenuRef(true);
34436                await onSelectClassicMenu(menu);
34437                setIsUpdatingMenuRef(false);
34438                onClose();
34439              },
34440              "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(createActionLabel, label),
34441              disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus,
34442              children: label
34443            }, menu.id);
34444          })
34445        }), canUserCreateNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
34446          label: (0,external_wp_i18n_namespaceObject.__)('Tools'),
34447          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34448            onClick: async () => {
34449              setIsUpdatingMenuRef(true);
34450              await onCreateNew();
34451              setIsUpdatingMenuRef(false);
34452              onClose();
34453            },
34454            disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus,
34455            children: (0,external_wp_i18n_namespaceObject.__)('Create new Menu')
34456          })
34457        })]
34458      })
34459    });
34460    return NavigationMenuSelectorDropdown;
34461  }
34462  /* harmony default export */ const navigation_menu_selector = (NavigationMenuSelector);
34463  
34464  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/index.js
34465  /**
34466   * WordPress dependencies
34467   */
34468  
34469  
34470  
34471  
34472  
34473  
34474  /**
34475   * Internal dependencies
34476   */
34477  
34478  
34479  
34480  
34481  function NavigationPlaceholder({
34482    isSelected,
34483    currentMenuId,
34484    clientId,
34485    canUserCreateNavigationMenus = false,
34486    isResolvingCanUserCreateNavigationMenus,
34487    onSelectNavigationMenu,
34488    onSelectClassicMenu,
34489    onCreateEmpty
34490  }) {
34491    const {
34492      isResolvingMenus,
34493      hasResolvedMenus
34494    } = useNavigationEntities();
34495    (0,external_wp_element_namespaceObject.useEffect)(() => {
34496      if (!isSelected) {
34497        return;
34498      }
34499      if (isResolvingMenus) {
34500        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Loading navigation block setup options…'));
34501      }
34502      if (hasResolvedMenus) {
34503        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Navigation block setup options ready.'));
34504      }
34505    }, [hasResolvedMenus, isResolvingMenus, isSelected]);
34506    const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenus;
34507    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34508      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
34509        className: "wp-block-navigation-placeholder",
34510        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder_preview, {
34511          isVisible: !isSelected
34512        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34513          "aria-hidden": !isSelected ? true : undefined,
34514          className: "wp-block-navigation-placeholder__controls",
34515          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34516            className: "wp-block-navigation-placeholder__actions",
34517            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34518              className: "wp-block-navigation-placeholder__actions__indicator",
34519              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34520                icon: library_navigation
34521              }), " ", (0,external_wp_i18n_namespaceObject.__)('Navigation')]
34522            }), /*#__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, {
34523              currentMenuId: currentMenuId,
34524              clientId: clientId,
34525              onSelectNavigationMenu: onSelectNavigationMenu,
34526              onSelectClassicMenu: onSelectClassicMenu
34527            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {}), canUserCreateNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
34528              __next40pxDefaultSize: true,
34529              variant: "tertiary",
34530              onClick: onCreateEmpty,
34531              children: (0,external_wp_i18n_namespaceObject.__)('Start empty')
34532            })]
34533          })
34534        })]
34535      })
34536    });
34537  }
34538  
34539  ;// ./node_modules/@wordpress/icons/build-module/library/menu.js
34540  /**
34541   * WordPress dependencies
34542   */
34543  
34544  
34545  const menu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34546    xmlns: "http://www.w3.org/2000/svg",
34547    viewBox: "0 0 24 24",
34548    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34549      d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"
34550    })
34551  });
34552  /* harmony default export */ const library_menu = (menu);
34553  
34554  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-icon.js
34555  /**
34556   * WordPress dependencies
34557   */
34558  
34559  
34560  
34561  function OverlayMenuIcon({
34562    icon
34563  }) {
34564    if (icon === 'menu') {
34565      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34566        icon: library_menu
34567      });
34568    }
34569    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
34570      xmlns: "http://www.w3.org/2000/svg",
34571      viewBox: "0 0 24 24",
34572      width: "24",
34573      height: "24",
34574      "aria-hidden": "true",
34575      focusable: "false",
34576      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Rect, {
34577        x: "4",
34578        y: "7.5",
34579        width: "16",
34580        height: "1.5"
34581      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Rect, {
34582        x: "4",
34583        y: "15",
34584        width: "16",
34585        height: "1.5"
34586      })]
34587    });
34588  }
34589  
34590  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/responsive-wrapper.js
34591  /**
34592   * External dependencies
34593   */
34594  
34595  
34596  /**
34597   * WordPress dependencies
34598   */
34599  
34600  
34601  
34602  
34603  
34604  /**
34605   * Internal dependencies
34606   */
34607  
34608  
34609  function ResponsiveWrapper({
34610    children,
34611    id,
34612    isOpen,
34613    isResponsive,
34614    onToggle,
34615    isHiddenByDefault,
34616    overlayBackgroundColor,
34617    overlayTextColor,
34618    hasIcon,
34619    icon
34620  }) {
34621    if (!isResponsive) {
34622      return children;
34623    }
34624    const responsiveContainerClasses = dist_clsx('wp-block-navigation__responsive-container', {
34625      'has-text-color': !!overlayTextColor.color || !!overlayTextColor?.class,
34626      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', overlayTextColor?.slug)]: !!overlayTextColor?.slug,
34627      'has-background': !!overlayBackgroundColor.color || overlayBackgroundColor?.class,
34628      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayBackgroundColor?.slug)]: !!overlayBackgroundColor?.slug,
34629      'is-menu-open': isOpen,
34630      'hidden-by-default': isHiddenByDefault
34631    });
34632    const styles = {
34633      color: !overlayTextColor?.slug && overlayTextColor?.color,
34634      backgroundColor: !overlayBackgroundColor?.slug && overlayBackgroundColor?.color && overlayBackgroundColor.color
34635    };
34636    const openButtonClasses = dist_clsx('wp-block-navigation__responsive-container-open', {
34637      'always-shown': isHiddenByDefault
34638    });
34639    const modalId = `$id}-modal`;
34640    const dialogProps = {
34641      className: 'wp-block-navigation__responsive-dialog',
34642      ...(isOpen && {
34643        role: 'dialog',
34644        'aria-modal': true,
34645        'aria-label': (0,external_wp_i18n_namespaceObject.__)('Menu')
34646      })
34647    };
34648    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34649      children: [!isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
34650        __next40pxDefaultSize: true,
34651        "aria-haspopup": "true",
34652        "aria-label": hasIcon && (0,external_wp_i18n_namespaceObject.__)('Open menu'),
34653        className: openButtonClasses,
34654        onClick: () => onToggle(true),
34655        children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
34656          icon: icon
34657        }), !hasIcon && (0,external_wp_i18n_namespaceObject.__)('Menu')]
34658      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34659        className: responsiveContainerClasses,
34660        style: styles,
34661        id: modalId,
34662        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34663          className: "wp-block-navigation__responsive-close",
34664          tabIndex: "-1",
34665          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34666            ...dialogProps,
34667            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
34668              __next40pxDefaultSize: true,
34669              className: "wp-block-navigation__responsive-container-close",
34670              "aria-label": hasIcon && (0,external_wp_i18n_namespaceObject.__)('Close menu'),
34671              onClick: () => onToggle(false),
34672              children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34673                icon: library_close
34674              }), !hasIcon && (0,external_wp_i18n_namespaceObject.__)('Close')]
34675            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34676              className: "wp-block-navigation__responsive-container-content",
34677              id: `$modalId}-content`,
34678              children: children
34679            })]
34680          })
34681        })
34682      })]
34683    });
34684  }
34685  
34686  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/inner-blocks.js
34687  /**
34688   * WordPress dependencies
34689   */
34690  
34691  
34692  
34693  
34694  
34695  /**
34696   * Internal dependencies
34697   */
34698  
34699  
34700  
34701  function NavigationInnerBlocks({
34702    clientId,
34703    hasCustomPlaceholder,
34704    orientation,
34705    templateLock
34706  }) {
34707    const {
34708      isImmediateParentOfSelectedBlock,
34709      selectedBlockHasChildren,
34710      isSelected
34711    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
34712      const {
34713        getBlockCount,
34714        hasSelectedInnerBlock,
34715        getSelectedBlockClientId
34716      } = select(external_wp_blockEditor_namespaceObject.store);
34717      const selectedBlockId = getSelectedBlockClientId();
34718      return {
34719        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
34720        selectedBlockHasChildren: !!getBlockCount(selectedBlockId),
34721        // This prop is already available but computing it here ensures it's
34722        // fresh compared to isImmediateParentOfSelectedBlock.
34723        isSelected: selectedBlockId === clientId
34724      };
34725    }, [clientId]);
34726    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_navigation');
34727  
34728    // When the block is selected itself or has a top level item selected that
34729    // doesn't itself have children, show the standard appender. Else show no
34730    // appender.
34731    const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren;
34732    const placeholder = (0,external_wp_element_namespaceObject.useMemo)(() => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder_preview, {}), []);
34733    const hasMenuItems = !!blocks?.length;
34734  
34735    // If there is a `ref` attribute pointing to a `wp_navigation` but
34736    // that menu has no **items** (i.e. empty) then show a placeholder.
34737    // The block must also be selected else the placeholder will display
34738    // alongside the appender.
34739    const showPlaceholder = !hasCustomPlaceholder && !hasMenuItems && !isSelected;
34740    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
34741      className: 'wp-block-navigation__container'
34742    }, {
34743      value: blocks,
34744      onInput,
34745      onChange,
34746      prioritizedInserterBlocks: PRIORITIZED_INSERTER_BLOCKS,
34747      defaultBlock: constants_DEFAULT_BLOCK,
34748      directInsert: true,
34749      orientation,
34750      templateLock,
34751      // As an exception to other blocks which feature nesting, show
34752      // the block appender even when a child block is selected.
34753      // This should be a temporary fix, to be replaced by improvements to
34754      // the sibling inserter.
34755      // See https://github.com/WordPress/gutenberg/issues/37572.
34756      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren ||
34757      // Show the appender while dragging to allow inserting element between item and the appender.
34758      parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
34759      placeholder: showPlaceholder ? placeholder : undefined,
34760      __experimentalCaptureToolbars: true,
34761      __unstableDisableLayoutClassNames: true
34762    });
34763    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34764      ...innerBlocksProps
34765    });
34766  }
34767  
34768  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-name-control.js
34769  /**
34770   * WordPress dependencies
34771   */
34772  
34773  
34774  
34775  
34776  function NavigationMenuNameControl() {
34777    const [title, updateTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
34778    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
34779      __next40pxDefaultSize: true,
34780      __nextHasNoMarginBottom: true,
34781      label: (0,external_wp_i18n_namespaceObject.__)('Menu name'),
34782      value: title,
34783      onChange: updateTitle
34784    });
34785  }
34786  
34787  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/are-blocks-dirty.js
34788  function areBlocksDirty(originalBlocks, blocks) {
34789    return !isDeepEqual(originalBlocks, blocks, (prop, x) => {
34790      // Skip inner blocks of page list during comparison as they
34791      // are **always** controlled and may be updated async due to
34792      // syncing with entity records. Left unchecked this would
34793      // inadvertently trigger the dirty state.
34794      if (x?.name === 'core/page-list' && prop === 'innerBlocks') {
34795        return true;
34796      }
34797    });
34798  }
34799  
34800  /**
34801   * Conditionally compares two candidates for deep equality.
34802   * Provides an option to skip a given property of an object during comparison.
34803   *
34804   * @param {*}                  x          1st candidate for comparison
34805   * @param {*}                  y          2nd candidate for comparison
34806   * @param {Function|undefined} shouldSkip a function which can be used to skip a given property of an object.
34807   * @return {boolean}                      whether the two candidates are deeply equal.
34808   */
34809  const isDeepEqual = (x, y, shouldSkip) => {
34810    if (x === y) {
34811      return true;
34812    } else if (typeof x === 'object' && x !== null && x !== undefined && typeof y === 'object' && y !== null && y !== undefined) {
34813      if (Object.keys(x).length !== Object.keys(y).length) {
34814        return false;
34815      }
34816      for (const prop in x) {
34817        if (y.hasOwnProperty(prop)) {
34818          // Afford skipping a given property of an object.
34819          if (shouldSkip && shouldSkip(prop, x)) {
34820            return true;
34821          }
34822          if (!isDeepEqual(x[prop], y[prop], shouldSkip)) {
34823            return false;
34824          }
34825        } else {
34826          return false;
34827        }
34828      }
34829      return true;
34830    }
34831    return false;
34832  };
34833  
34834  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/unsaved-inner-blocks.js
34835  /**
34836   * WordPress dependencies
34837   */
34838  
34839  
34840  
34841  
34842  
34843  
34844  /**
34845   * Internal dependencies
34846   */
34847  
34848  
34849  
34850  const EMPTY_OBJECT = {};
34851  function UnsavedInnerBlocks({
34852    blocks,
34853    createNavigationMenu,
34854    hasSelection
34855  }) {
34856    const originalBlocksRef = (0,external_wp_element_namespaceObject.useRef)();
34857    (0,external_wp_element_namespaceObject.useEffect)(() => {
34858      // Initially store the uncontrolled inner blocks for
34859      // dirty state comparison.
34860      if (!originalBlocksRef?.current) {
34861        originalBlocksRef.current = blocks;
34862      }
34863    }, [blocks]);
34864  
34865    // If the current inner blocks are different from the original inner blocks
34866    // from the post content then the user has made changes to the inner blocks.
34867    // At this point the inner blocks can be considered "dirty".
34868    // Note: referential equality is not sufficient for comparison as the inner blocks
34869    // of the page list are controlled and may be updated async due to syncing with
34870    // entity records. As a result we need to perform a deep equality check skipping
34871    // the page list's inner blocks.
34872    const innerBlocksAreDirty = areBlocksDirty(originalBlocksRef?.current, blocks);
34873  
34874    // The block will be disabled in a block preview, use this as a way of
34875    // avoiding the side-effects of this component for block previews.
34876    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
34877    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
34878      className: 'wp-block-navigation__container'
34879    }, {
34880      renderAppender: hasSelection ? undefined : false,
34881      defaultBlock: constants_DEFAULT_BLOCK,
34882      directInsert: true
34883    });
34884    const {
34885      isSaving,
34886      hasResolvedAllNavigationMenus
34887    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
34888      if (isDisabled) {
34889        return EMPTY_OBJECT;
34890      }
34891      const {
34892        hasFinishedResolution,
34893        isSavingEntityRecord
34894      } = select(external_wp_coreData_namespaceObject.store);
34895      return {
34896        isSaving: isSavingEntityRecord('postType', 'wp_navigation'),
34897        hasResolvedAllNavigationMenus: hasFinishedResolution('getEntityRecords', SELECT_NAVIGATION_MENUS_ARGS)
34898      };
34899    }, [isDisabled]);
34900  
34901    // Automatically save the uncontrolled blocks.
34902    (0,external_wp_element_namespaceObject.useEffect)(() => {
34903      // The block will be disabled when used in a BlockPreview.
34904      // In this case avoid automatic creation of a wp_navigation post.
34905      // Otherwise the user will be spammed with lots of menus!
34906      //
34907      // Also ensure other navigation menus have loaded so an
34908      // accurate name can be created.
34909      //
34910      // Don't try saving when another save is already
34911      // in progress.
34912      //
34913      // And finally only create the menu when the block is selected,
34914      // which is an indication they want to start editing.
34915      if (isDisabled || isSaving || !hasResolvedAllNavigationMenus || !hasSelection || !innerBlocksAreDirty) {
34916        return;
34917      }
34918      createNavigationMenu(null, blocks);
34919    }, [blocks, createNavigationMenu, isDisabled, isSaving, hasResolvedAllNavigationMenus, innerBlocksAreDirty, hasSelection]);
34920    const Wrapper = isSaving ? external_wp_components_namespaceObject.Disabled : 'div';
34921    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wrapper, {
34922      ...innerBlocksProps
34923    });
34924  }
34925  
34926  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-delete-control.js
34927  /**
34928   * WordPress dependencies
34929   */
34930  
34931  
34932  
34933  
34934  
34935  
34936  function NavigationMenuDeleteControl({
34937    onDelete
34938  }) {
34939    const [isConfirmDialogVisible, setIsConfirmDialogVisible] = (0,external_wp_element_namespaceObject.useState)(false);
34940    const id = (0,external_wp_coreData_namespaceObject.useEntityId)('postType', 'wp_navigation');
34941    const {
34942      deleteEntityRecord
34943    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
34944    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34945      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
34946        __next40pxDefaultSize: true,
34947        className: "wp-block-navigation-delete-menu-button",
34948        variant: "secondary",
34949        isDestructive: true,
34950        onClick: () => {
34951          setIsConfirmDialogVisible(true);
34952        },
34953        children: (0,external_wp_i18n_namespaceObject.__)('Delete menu')
34954      }), isConfirmDialogVisible && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
34955        isOpen: true,
34956        onConfirm: () => {
34957          deleteEntityRecord('postType', 'wp_navigation', id, {
34958            force: true
34959          });
34960          onDelete();
34961        },
34962        onCancel: () => {
34963          setIsConfirmDialogVisible(false);
34964        },
34965        confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Delete'),
34966        size: "medium",
34967        children: (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to delete this Navigation Menu?')
34968      })]
34969    });
34970  }
34971  
34972  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-navigation-notice.js
34973  /**
34974   * WordPress dependencies
34975   */
34976  
34977  
34978  
34979  function useNavigationNotice({
34980    name,
34981    message = ''
34982  } = {}) {
34983    const noticeRef = (0,external_wp_element_namespaceObject.useRef)();
34984    const {
34985      createWarningNotice,
34986      removeNotice
34987    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
34988    const showNotice = (0,external_wp_element_namespaceObject.useCallback)(customMsg => {
34989      if (noticeRef.current) {
34990        return;
34991      }
34992      noticeRef.current = name;
34993      createWarningNotice(customMsg || message, {
34994        id: noticeRef.current,
34995        type: 'snackbar'
34996      });
34997    }, [noticeRef, createWarningNotice, message, name]);
34998    const hideNotice = (0,external_wp_element_namespaceObject.useCallback)(() => {
34999      if (!noticeRef.current) {
35000        return;
35001      }
35002      removeNotice(noticeRef.current);
35003      noticeRef.current = null;
35004    }, [noticeRef, removeNotice]);
35005    return [showNotice, hideNotice];
35006  }
35007  /* harmony default export */ const use_navigation_notice = (useNavigationNotice);
35008  
35009  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-preview.js
35010  /**
35011   * WordPress dependencies
35012   */
35013  
35014  
35015  
35016  /**
35017   * Internal dependencies
35018   */
35019  
35020  
35021  function OverlayMenuPreview({
35022    setAttributes,
35023    hasIcon,
35024    icon
35025  }) {
35026    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
35027      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
35028        __nextHasNoMarginBottom: true,
35029        label: (0,external_wp_i18n_namespaceObject.__)('Show icon button'),
35030        help: (0,external_wp_i18n_namespaceObject.__)('Configure the visual appearance of the button that toggles the overlay menu.'),
35031        onChange: value => setAttributes({
35032          hasIcon: value
35033        }),
35034        checked: hasIcon
35035      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
35036        __next40pxDefaultSize: true,
35037        __nextHasNoMarginBottom: true,
35038        className: "wp-block-navigation__overlay-menu-icon-toggle-group",
35039        label: (0,external_wp_i18n_namespaceObject.__)('Icon'),
35040        value: icon,
35041        onChange: value => setAttributes({
35042          icon: value
35043        }),
35044        isBlock: true,
35045        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
35046          value: "handle",
35047          "aria-label": (0,external_wp_i18n_namespaceObject.__)('handle'),
35048          label: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
35049            icon: "handle"
35050          })
35051        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
35052          value: "menu",
35053          "aria-label": (0,external_wp_i18n_namespaceObject.__)('menu'),
35054          label: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
35055            icon: "menu"
35056          })
35057        })]
35058      })]
35059    });
35060  }
35061  
35062  ;// ./node_modules/@wordpress/block-library/build-module/navigation/menu-items-to-blocks.js
35063  /**
35064   * WordPress dependencies
35065   */
35066  
35067  
35068  
35069  /**
35070   * Convert a flat menu item structure to a nested blocks structure.
35071   *
35072   * @param {Object[]} menuItems An array of menu items.
35073   *
35074   * @return {WPBlock[]} An array of blocks.
35075   */
35076  function menuItemsToBlocks(menuItems) {
35077    if (!menuItems) {
35078      return null;
35079    }
35080    const menuTree = createDataTree(menuItems);
35081    const blocks = mapMenuItemsToBlocks(menuTree);
35082    return (0,external_wp_hooks_namespaceObject.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems);
35083  }
35084  
35085  /**
35086   * A recursive function that maps menu item nodes to blocks.
35087   *
35088   * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.
35089   * @param {number}          level     An integer representing the nesting level.
35090   * @return {Object} Object containing innerBlocks and mapping.
35091   */
35092  function mapMenuItemsToBlocks(menuItems, level = 0) {
35093    let mapping = {};
35094  
35095    // The menuItem should be in menu_order sort order.
35096    const sortedItems = [...menuItems].sort((a, b) => a.menu_order - b.menu_order);
35097    const innerBlocks = sortedItems.map(menuItem => {
35098      if (menuItem.type === 'block') {
35099        const [block] = (0,external_wp_blocks_namespaceObject.parse)(menuItem.content.raw);
35100        if (!block) {
35101          return (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', {
35102            content: menuItem.content
35103          });
35104        }
35105        return block;
35106      }
35107      const blockType = menuItem.children?.length ? 'core/navigation-submenu' : 'core/navigation-link';
35108      const attributes = menuItemToBlockAttributes(menuItem, blockType, level);
35109  
35110      // If there are children recurse to build those nested blocks.
35111      const {
35112        innerBlocks: nestedBlocks = [],
35113        // alias to avoid shadowing
35114        mapping: nestedMapping = {} // alias to avoid shadowing
35115      } = menuItem.children?.length ? mapMenuItemsToBlocks(menuItem.children, level + 1) : {};
35116  
35117      // Update parent mapping with nested mapping.
35118      mapping = {
35119        ...mapping,
35120        ...nestedMapping
35121      };
35122  
35123      // Create block with nested "innerBlocks".
35124      const block = (0,external_wp_blocks_namespaceObject.createBlock)(blockType, attributes, nestedBlocks);
35125  
35126      // Create mapping for menuItem -> block.
35127      mapping[menuItem.id] = block.clientId;
35128      return block;
35129    });
35130    return {
35131      innerBlocks,
35132      mapping
35133    };
35134  }
35135  
35136  /**
35137   * A WP nav_menu_item object.
35138   * For more documentation on the individual fields present on a menu item please see:
35139   * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789
35140   *
35141   * @typedef WPNavMenuItem
35142   *
35143   * @property {Object} title       stores the raw and rendered versions of the title/label for this menu item.
35144   * @property {Array}  xfn         the XFN relationships expressed in the link of this menu item.
35145   * @property {Array}  classes     the HTML class attributes for this menu item.
35146   * @property {string} attr_title  the HTML title attribute for this menu item.
35147   * @property {string} object      The type of object originally represented, such as 'category', 'post', or 'attachment'.
35148   * @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.
35149   * @property {string} description The description of this menu item.
35150   * @property {string} url         The URL to which this menu item points.
35151   * @property {string} type        The family of objects originally represented, such as 'post_type' or 'taxonomy'.
35152   * @property {string} target      The target attribute of the link element for this menu item.
35153   */
35154  
35155  /**
35156   * Convert block attributes to menu item.
35157   *
35158   * @param {WPNavMenuItem} menuItem  the menu item to be converted to block attributes.
35159   * @param {string}        blockType The block type.
35160   * @param {number}        level     An integer representing the nesting level.
35161   * @return {Object} the block attributes converted from the WPNavMenuItem item.
35162   */
35163  function menuItemToBlockAttributes({
35164    title: menuItemTitleField,
35165    xfn,
35166    classes,
35167    // eslint-disable-next-line camelcase
35168    attr_title,
35169    object,
35170    // eslint-disable-next-line camelcase
35171    object_id,
35172    description,
35173    url,
35174    type: menuItemTypeField,
35175    target
35176  }, blockType, level) {
35177    // For historical reasons, the `core/navigation-link` variation type is `tag`
35178    // whereas WP Core expects `post_tag` as the `object` type.
35179    // To avoid writing a block migration we perform a conversion here.
35180    // See also inverse equivalent in `blockAttributesToMenuItem`.
35181    if (object && object === 'post_tag') {
35182      object = 'tag';
35183    }
35184    return {
35185      label: menuItemTitleField?.rendered || '',
35186      ...(object?.length && {
35187        type: object
35188      }),
35189      kind: menuItemTypeField?.replace('_', '-') || 'custom',
35190      url: url || '',
35191      ...(xfn?.length && xfn.join(' ').trim() && {
35192        rel: xfn.join(' ').trim()
35193      }),
35194      ...(classes?.length && classes.join(' ').trim() && {
35195        className: classes.join(' ').trim()
35196      }),
35197      /* eslint-disable camelcase */
35198      ...(attr_title?.length && {
35199        title: attr_title
35200      }),
35201      ...(object_id && 'custom' !== object && {
35202        id: object_id
35203      }),
35204      /* eslint-enable camelcase */
35205      ...(description?.length && {
35206        description
35207      }),
35208      ...(target === '_blank' && {
35209        opensInNewTab: true
35210      }),
35211      ...(blockType === 'core/navigation-submenu' && {
35212        isTopLevelItem: level === 0
35213      }),
35214      ...(blockType === 'core/navigation-link' && {
35215        isTopLevelLink: level === 0
35216      })
35217    };
35218  }
35219  
35220  /**
35221   * Creates a nested, hierarchical tree representation from unstructured data that
35222   * has an inherent relationship defined between individual items.
35223   *
35224   * For example, by default, each element in the dataset should have an `id` and
35225   * `parent` property where the `parent` property indicates a relationship between
35226   * the current item and another item with a matching `id` properties.
35227   *
35228   * This is useful for building linked lists of data from flat data structures.
35229   *
35230   * @param {Array}  dataset  linked data to be rearranged into a hierarchical tree based on relational fields.
35231   * @param {string} id       the property which uniquely identifies each entry within the array.
35232   * @param {*}      relation the property which identifies how the current item is related to other items in the data (if at all).
35233   * @return {Array} a nested array of parent/child relationships
35234   */
35235  function createDataTree(dataset, id = 'id', relation = 'parent') {
35236    const hashTable = Object.create(null);
35237    const dataTree = [];
35238    for (const data of dataset) {
35239      hashTable[data[id]] = {
35240        ...data,
35241        children: []
35242      };
35243      if (data[relation]) {
35244        hashTable[data[relation]] = hashTable[data[relation]] || {};
35245        hashTable[data[relation]].children = hashTable[data[relation]].children || [];
35246        hashTable[data[relation]].children.push(hashTable[data[id]]);
35247      } else {
35248        dataTree.push(hashTable[data[id]]);
35249      }
35250    }
35251    return dataTree;
35252  }
35253  
35254  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js
35255  /**
35256   * WordPress dependencies
35257   */
35258  
35259  
35260  
35261  
35262  
35263  /**
35264   * Internal dependencies
35265   */
35266  
35267  const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
35268  const CLASSIC_MENU_CONVERSION_ERROR = 'error';
35269  const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
35270  const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
35271  
35272  // This is needed to ensure that multiple components using this hook
35273  // do not import the same classic menu twice.
35274  let classicMenuBeingConvertedId = null;
35275  function useConvertClassicToBlockMenu(createNavigationMenu, {
35276    throwOnError = false
35277  } = {}) {
35278    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
35279    const {
35280      editEntityRecord
35281    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
35282    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CLASSIC_MENU_CONVERSION_IDLE);
35283    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
35284    const convertClassicMenuToBlockMenu = (0,external_wp_element_namespaceObject.useCallback)(async (menuId, menuName, postStatus = 'publish') => {
35285      let navigationMenu;
35286      let classicMenuItems;
35287  
35288      // 1. Fetch the classic Menu items.
35289      try {
35290        classicMenuItems = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getMenuItems({
35291          menus: menuId,
35292          per_page: -1,
35293          context: 'view'
35294        });
35295      } catch (err) {
35296        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35297        // translators: %s: The name of a menu (e.g. Header menu).
35298        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName), {
35299          cause: err
35300        });
35301      }
35302  
35303      // Handle offline response which resolves to `null`.
35304      if (classicMenuItems === null) {
35305        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35306        // translators: %s: The name of a menu (e.g. Header menu).
35307        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName));
35308      }
35309  
35310      // 2. Convert the classic items into blocks.
35311      const {
35312        innerBlocks
35313      } = menuItemsToBlocks(classicMenuItems);
35314  
35315      // 3. Create the `wp_navigation` Post with the blocks.
35316      try {
35317        navigationMenu = await createNavigationMenu(menuName, innerBlocks, postStatus);
35318  
35319        /**
35320         * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.
35321         * This status change causes the menu to be displayed on the front of the site and sets the post state to be "dirty".
35322         * The problem being solved is if saveEditedEntityRecord was used here, the menu would be updated on the frontend and the editor _automatically_,
35323         * without user interaction.
35324         * If the user abandons the site editor without saving, there would still be a wp_navigation post created as draft.
35325         */
35326        await editEntityRecord('postType', 'wp_navigation', navigationMenu.id, {
35327          status: 'publish'
35328        }, {
35329          throwOnError: true
35330        });
35331      } catch (err) {
35332        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35333        // translators: %s: The name of a menu (e.g. Header menu).
35334        (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
35335          cause: err
35336        });
35337      }
35338      return navigationMenu;
35339    }, [createNavigationMenu, editEntityRecord, registry]);
35340    const convert = (0,external_wp_element_namespaceObject.useCallback)(async (menuId, menuName, postStatus) => {
35341      // Check whether this classic menu is being imported already.
35342      if (classicMenuBeingConvertedId === menuId) {
35343        return;
35344      }
35345  
35346      // Set the ID for the currently importing classic menu.
35347      classicMenuBeingConvertedId = menuId;
35348      if (!menuId || !menuName) {
35349        setError('Unable to convert menu. Missing menu details.');
35350        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
35351        return;
35352      }
35353      setStatus(CLASSIC_MENU_CONVERSION_PENDING);
35354      setError(null);
35355      return await convertClassicMenuToBlockMenu(menuId, menuName, postStatus).then(navigationMenu => {
35356        setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
35357        // Reset the ID for the currently importing classic menu.
35358        classicMenuBeingConvertedId = null;
35359        return navigationMenu;
35360      }).catch(err => {
35361        setError(err?.message);
35362        // Reset the ID for the currently importing classic menu.
35363        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
35364  
35365        // Reset the ID for the currently importing classic menu.
35366        classicMenuBeingConvertedId = null;
35367  
35368        // Rethrow error for debugging.
35369        if (throwOnError) {
35370          throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35371          // translators: %s: The name of a menu (e.g. Header menu).
35372          (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
35373            cause: err
35374          });
35375        }
35376      });
35377    }, [convertClassicMenuToBlockMenu, throwOnError]);
35378    return {
35379      convert,
35380      status,
35381      error
35382    };
35383  }
35384  /* harmony default export */ const use_convert_classic_menu_to_block_menu = (useConvertClassicToBlockMenu);
35385  
35386  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/create-template-part-id.js
35387  /**
35388   * Generates a template part Id based on slug and theme inputs.
35389   *
35390   * @param {string} theme the template part's theme.
35391   * @param {string} slug  the template part's slug
35392   * @return {string|null} the template part's Id.
35393   */
35394  function createTemplatePartId(theme, slug) {
35395    return theme && slug ? theme + '//' + slug : null;
35396  }
35397  
35398  ;// ./node_modules/@wordpress/icons/build-module/library/header.js
35399  /**
35400   * WordPress dependencies
35401   */
35402  
35403  
35404  const header = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35405    xmlns: "http://www.w3.org/2000/svg",
35406    viewBox: "0 0 24 24",
35407    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35408      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"
35409    })
35410  });
35411  /* harmony default export */ const library_header = (header);
35412  
35413  ;// ./node_modules/@wordpress/icons/build-module/library/footer.js
35414  /**
35415   * WordPress dependencies
35416   */
35417  
35418  
35419  const footer = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35420    xmlns: "http://www.w3.org/2000/svg",
35421    viewBox: "0 0 24 24",
35422    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35423      fillRule: "evenodd",
35424      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"
35425    })
35426  });
35427  /* harmony default export */ const library_footer = (footer);
35428  
35429  ;// ./node_modules/@wordpress/icons/build-module/library/sidebar.js
35430  /**
35431   * WordPress dependencies
35432   */
35433  
35434  
35435  const sidebar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35436    xmlns: "http://www.w3.org/2000/svg",
35437    viewBox: "0 0 24 24",
35438    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35439      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"
35440    })
35441  });
35442  /* harmony default export */ const library_sidebar = (sidebar);
35443  
35444  ;// ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js
35445  /**
35446   * WordPress dependencies
35447   */
35448  
35449  
35450  const symbolFilled = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35451    xmlns: "http://www.w3.org/2000/svg",
35452    viewBox: "0 0 24 24",
35453    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35454      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"
35455    })
35456  });
35457  /* harmony default export */ const symbol_filled = (symbolFilled);
35458  
35459  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/get-template-part-icon.js
35460  /**
35461   * WordPress dependencies
35462   */
35463  
35464  const getTemplatePartIcon = iconName => {
35465    if ('header' === iconName) {
35466      return library_header;
35467    } else if ('footer' === iconName) {
35468      return library_footer;
35469    } else if ('sidebar' === iconName) {
35470      return library_sidebar;
35471    }
35472    return symbol_filled;
35473  };
35474  
35475  ;// ./node_modules/@wordpress/block-library/build-module/navigation/use-template-part-area-label.js
35476  /**
35477   * WordPress dependencies
35478   */
35479  
35480  
35481  
35482  
35483  /**
35484   * Internal dependencies
35485   */
35486  
35487  // TODO: this util should perhaps be refactored somewhere like core-data.
35488  
35489  
35490  function useTemplatePartAreaLabel(clientId) {
35491    return (0,external_wp_data_namespaceObject.useSelect)(select => {
35492      // Use the lack of a clientId as an opportunity to bypass the rest
35493      // of this hook.
35494      if (!clientId) {
35495        return;
35496      }
35497      const {
35498        getBlock,
35499        getBlockParentsByBlockName
35500      } = select(external_wp_blockEditor_namespaceObject.store);
35501      const withAscendingResults = true;
35502      const parentTemplatePartClientIds = getBlockParentsByBlockName(clientId, 'core/template-part', withAscendingResults);
35503      if (!parentTemplatePartClientIds?.length) {
35504        return;
35505      }
35506      const {
35507        getCurrentTheme,
35508        getEditedEntityRecord
35509      } = select(external_wp_coreData_namespaceObject.store);
35510      const currentTheme = getCurrentTheme();
35511      const defaultTemplatePartAreas = currentTheme?.default_template_part_areas || [];
35512      const definedAreas = defaultTemplatePartAreas.map(item => ({
35513        ...item,
35514        icon: getTemplatePartIcon(item.icon)
35515      }));
35516      for (const templatePartClientId of parentTemplatePartClientIds) {
35517        const templatePartBlock = getBlock(templatePartClientId);
35518  
35519        // The 'area' usually isn't stored on the block, but instead
35520        // on the entity.
35521        const {
35522          theme = currentTheme?.stylesheet,
35523          slug
35524        } = templatePartBlock.attributes;
35525        const templatePartEntityId = createTemplatePartId(theme, slug);
35526        const templatePartEntity = getEditedEntityRecord('postType', 'wp_template_part', templatePartEntityId);
35527  
35528        // Look up the `label` for the area in the defined areas so
35529        // that an internationalized label can be used.
35530        if (templatePartEntity?.area) {
35531          return definedAreas.find(definedArea => definedArea.area !== 'uncategorized' && definedArea.area === templatePartEntity.area)?.label;
35532        }
35533      }
35534    }, [clientId]);
35535  }
35536  
35537  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-generate-default-navigation-title.js
35538  /**
35539   * WordPress dependencies
35540   */
35541  
35542  
35543  
35544  
35545  
35546  
35547  /**
35548   * Internal dependencies
35549   */
35550  
35551  const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
35552    status: 'draft',
35553    per_page: -1
35554  }];
35555  const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', {
35556    per_page: -1,
35557    status: 'publish'
35558  }];
35559  function useGenerateDefaultNavigationTitle(clientId) {
35560    // The block will be disabled in a block preview, use this as a way of
35561    // avoiding the side-effects of this component for block previews.
35562    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
35563  
35564    // Because we can't conditionally call hooks, pass an undefined client id
35565    // arg to bypass the expensive `useTemplateArea` code. The hook will return
35566    // early.
35567    const area = useTemplatePartAreaLabel(isDisabled ? undefined : clientId);
35568    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
35569    return (0,external_wp_element_namespaceObject.useCallback)(async () => {
35570      // Ensure other navigation menus have loaded so an
35571      // accurate name can be created.
35572      if (isDisabled) {
35573        return '';
35574      }
35575      const {
35576        getEntityRecords
35577      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
35578      const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]);
35579      const title = area ? (0,external_wp_i18n_namespaceObject.sprintf)(
35580      // translators: %s: the name of a menu (e.g. Header menu).
35581      (0,external_wp_i18n_namespaceObject.__)('%s menu'), area) :
35582      // translators: 'menu' as in website navigation menu.
35583      (0,external_wp_i18n_namespaceObject.__)('Menu');
35584  
35585      // Determine how many menus start with the automatic title.
35586      const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => menu?.title?.raw?.startsWith(title) ? count + 1 : count, 0);
35587  
35588      // Append a number to the end of the title if a menu with
35589      // the same name exists.
35590      const titleWithCount = matchingMenuTitleCount > 0 ? `$title} $matchingMenuTitleCount + 1}` : title;
35591      return titleWithCount || '';
35592    }, [isDisabled, area, registry]);
35593  }
35594  
35595  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-create-navigation-menu.js
35596  /**
35597   * WordPress dependencies
35598   */
35599  
35600  
35601  
35602  
35603  
35604  /**
35605   * Internal dependencies
35606   */
35607  
35608  const CREATE_NAVIGATION_MENU_SUCCESS = 'success';
35609  const CREATE_NAVIGATION_MENU_ERROR = 'error';
35610  const CREATE_NAVIGATION_MENU_PENDING = 'pending';
35611  const CREATE_NAVIGATION_MENU_IDLE = 'idle';
35612  function useCreateNavigationMenu(clientId) {
35613    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CREATE_NAVIGATION_MENU_IDLE);
35614    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
35615    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
35616    const {
35617      saveEntityRecord,
35618      editEntityRecord
35619    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
35620    const generateDefaultTitle = useGenerateDefaultNavigationTitle(clientId);
35621  
35622    // This callback uses data from the two placeholder steps and only creates
35623    // a new navigation menu when the user completes the final step.
35624    const create = (0,external_wp_element_namespaceObject.useCallback)(async (title = null, blocks = [], postStatus) => {
35625      // Guard against creating Navigations without a title.
35626      // Note you can pass no title, but if one is passed it must be
35627      // a string otherwise the title may end up being empty.
35628      if (title && typeof title !== 'string') {
35629        setError('Invalid title supplied when creating Navigation Menu.');
35630        setStatus(CREATE_NAVIGATION_MENU_ERROR);
35631        throw new Error(`Value of supplied title argument was not a string.`);
35632      }
35633      setStatus(CREATE_NAVIGATION_MENU_PENDING);
35634      setValue(null);
35635      setError(null);
35636      if (!title) {
35637        title = await generateDefaultTitle().catch(err => {
35638          setError(err?.message);
35639          setStatus(CREATE_NAVIGATION_MENU_ERROR);
35640          throw new Error('Failed to create title when saving new Navigation Menu.', {
35641            cause: err
35642          });
35643        });
35644      }
35645      const record = {
35646        title,
35647        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
35648        status: postStatus
35649      };
35650  
35651      // Return affords ability to await on this function directly
35652      return saveEntityRecord('postType', 'wp_navigation', record).then(response => {
35653        setValue(response);
35654        setStatus(CREATE_NAVIGATION_MENU_SUCCESS);
35655  
35656        // Set the status to publish so that the Navigation block
35657        // shows up in the multi entity save flow.
35658        if (postStatus !== 'publish') {
35659          editEntityRecord('postType', 'wp_navigation', response.id, {
35660            status: 'publish'
35661          });
35662        }
35663        return response;
35664      }).catch(err => {
35665        setError(err?.message);
35666        setStatus(CREATE_NAVIGATION_MENU_ERROR);
35667        throw new Error('Unable to save new Navigation Menu', {
35668          cause: err
35669        });
35670      });
35671    }, [saveEntityRecord, editEntityRecord, generateDefaultTitle]);
35672    return {
35673      create,
35674      status,
35675      value,
35676      error,
35677      isIdle: status === CREATE_NAVIGATION_MENU_IDLE,
35678      isPending: status === CREATE_NAVIGATION_MENU_PENDING,
35679      isSuccess: status === CREATE_NAVIGATION_MENU_SUCCESS,
35680      isError: status === CREATE_NAVIGATION_MENU_ERROR
35681    };
35682  }
35683  
35684  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-inner-blocks.js
35685  /**
35686   * WordPress dependencies
35687   */
35688  
35689  
35690  const use_inner_blocks_EMPTY_ARRAY = [];
35691  function useInnerBlocks(clientId) {
35692    return (0,external_wp_data_namespaceObject.useSelect)(select => {
35693      const {
35694        getBlock,
35695        getBlocks,
35696        hasSelectedInnerBlock
35697      } = select(external_wp_blockEditor_namespaceObject.store);
35698  
35699      // This relies on the fact that `getBlock` won't return controlled
35700      // inner blocks, while `getBlocks` does. It might be more stable to
35701      // introduce a selector like `getUncontrolledInnerBlocks`, just in
35702      // case `getBlock` is fixed.
35703      const _uncontrolledInnerBlocks = getBlock(clientId).innerBlocks;
35704      const _hasUncontrolledInnerBlocks = !!_uncontrolledInnerBlocks?.length;
35705      const _controlledInnerBlocks = _hasUncontrolledInnerBlocks ? use_inner_blocks_EMPTY_ARRAY : getBlocks(clientId);
35706      return {
35707        innerBlocks: _hasUncontrolledInnerBlocks ? _uncontrolledInnerBlocks : _controlledInnerBlocks,
35708        hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
35709        uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
35710        controlledInnerBlocks: _controlledInnerBlocks,
35711        isInnerBlockSelected: hasSelectedInnerBlock(clientId, true)
35712      };
35713    }, [clientId]);
35714  }
35715  
35716  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/utils.js
35717  /**
35718   * External dependencies
35719   */
35720  
35721  function getComputedStyle(node) {
35722    return node.ownerDocument.defaultView.getComputedStyle(node);
35723  }
35724  function detectColors(colorsDetectionElement, setColor, setBackground) {
35725    if (!colorsDetectionElement) {
35726      return;
35727    }
35728    setColor(getComputedStyle(colorsDetectionElement).color);
35729    let backgroundColorNode = colorsDetectionElement;
35730    let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
35731    while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) {
35732      backgroundColorNode = backgroundColorNode.parentNode;
35733      backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
35734    }
35735    setBackground(backgroundColor);
35736  }
35737  
35738  /**
35739   * Determine the colors for a menu.
35740   *
35741   * Order of priority is:
35742   * 1: Overlay custom colors (if submenu)
35743   * 2: Overlay theme colors (if submenu)
35744   * 3: Custom colors
35745   * 4: Theme colors
35746   * 5: Global styles
35747   *
35748   * @param {Object}  context
35749   * @param {boolean} isSubMenu
35750   */
35751  function getColors(context, isSubMenu) {
35752    const {
35753      textColor,
35754      customTextColor,
35755      backgroundColor,
35756      customBackgroundColor,
35757      overlayTextColor,
35758      customOverlayTextColor,
35759      overlayBackgroundColor,
35760      customOverlayBackgroundColor,
35761      style
35762    } = context;
35763    const colors = {};
35764    if (isSubMenu && !!customOverlayTextColor) {
35765      colors.customTextColor = customOverlayTextColor;
35766    } else if (isSubMenu && !!overlayTextColor) {
35767      colors.textColor = overlayTextColor;
35768    } else if (!!customTextColor) {
35769      colors.customTextColor = customTextColor;
35770    } else if (!!textColor) {
35771      colors.textColor = textColor;
35772    } else if (!!style?.color?.text) {
35773      colors.customTextColor = style.color.text;
35774    }
35775    if (isSubMenu && !!customOverlayBackgroundColor) {
35776      colors.customBackgroundColor = customOverlayBackgroundColor;
35777    } else if (isSubMenu && !!overlayBackgroundColor) {
35778      colors.backgroundColor = overlayBackgroundColor;
35779    } else if (!!customBackgroundColor) {
35780      colors.customBackgroundColor = customBackgroundColor;
35781    } else if (!!backgroundColor) {
35782      colors.backgroundColor = backgroundColor;
35783    } else if (!!style?.color?.background) {
35784      colors.customTextColor = style.color.background;
35785    }
35786    return colors;
35787  }
35788  function getNavigationChildBlockProps(innerBlocksColors) {
35789    return {
35790      className: dist_clsx('wp-block-navigation__submenu-container', {
35791        'has-text-color': !!(innerBlocksColors.textColor || innerBlocksColors.customTextColor),
35792        [`has-$innerBlocksColors.textColor}-color`]: !!innerBlocksColors.textColor,
35793        'has-background': !!(innerBlocksColors.backgroundColor || innerBlocksColors.customBackgroundColor),
35794        [`has-$innerBlocksColors.backgroundColor}-background-color`]: !!innerBlocksColors.backgroundColor
35795      }),
35796      style: {
35797        color: innerBlocksColors.customTextColor,
35798        backgroundColor: innerBlocksColors.customBackgroundColor
35799      }
35800    };
35801  }
35802  
35803  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/manage-menus-button.js
35804  /**
35805   * WordPress dependencies
35806   */
35807  
35808  
35809  
35810  
35811  const ManageMenusButton = ({
35812    className = '',
35813    disabled,
35814    isMenuItem = false
35815  }) => {
35816    let ComponentName = external_wp_components_namespaceObject.Button;
35817    if (isMenuItem) {
35818      ComponentName = external_wp_components_namespaceObject.MenuItem;
35819    }
35820    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComponentName, {
35821      variant: "link",
35822      disabled: disabled,
35823      className: className,
35824      href: (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', {
35825        post_type: 'wp_navigation'
35826      }),
35827      children: (0,external_wp_i18n_namespaceObject.__)('Manage menus')
35828    });
35829  };
35830  /* harmony default export */ const manage_menus_button = (ManageMenusButton);
35831  
35832  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/deleted-navigation-warning.js
35833  /**
35834   * WordPress dependencies
35835   */
35836  
35837  
35838  
35839  
35840  
35841  function DeletedNavigationWarning({
35842    onCreateNew,
35843    isNotice = false
35844  }) {
35845    const [isButtonDisabled, setIsButtonDisabled] = (0,external_wp_element_namespaceObject.useState)(false);
35846    const handleButtonClick = () => {
35847      setIsButtonDisabled(true);
35848      onCreateNew();
35849    };
35850    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>'), {
35851      button: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
35852        __next40pxDefaultSize: true,
35853        onClick: handleButtonClick,
35854        variant: "link",
35855        disabled: isButtonDisabled,
35856        accessibleWhenDisabled: true
35857      })
35858    });
35859    return isNotice ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
35860      status: "warning",
35861      isDismissible: false,
35862      children: message
35863    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
35864      children: message
35865    });
35866  }
35867  /* harmony default export */ const deleted_navigation_warning = (DeletedNavigationWarning);
35868  
35869  ;// ./node_modules/@wordpress/icons/build-module/library/add-submenu.js
35870  /**
35871   * WordPress dependencies
35872   */
35873  
35874  
35875  const addSubmenu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35876    xmlns: "http://www.w3.org/2000/svg",
35877    viewBox: "0 0 24 24",
35878    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35879      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"
35880    })
35881  });
35882  /* harmony default export */ const add_submenu = (addSubmenu);
35883  
35884  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-up.js
35885  /**
35886   * WordPress dependencies
35887   */
35888  
35889  
35890  const chevronUp = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35891    viewBox: "0 0 24 24",
35892    xmlns: "http://www.w3.org/2000/svg",
35893    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35894      d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"
35895    })
35896  });
35897  /* harmony default export */ const chevron_up = (chevronUp);
35898  
35899  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/leaf-more-menu.js
35900  /**
35901   * WordPress dependencies
35902   */
35903  
35904  
35905  
35906  
35907  
35908  
35909  
35910  const POPOVER_PROPS = {
35911    className: 'block-editor-block-settings-menu__popover',
35912    placement: 'bottom-start'
35913  };
35914  const BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = ['core/navigation-link', 'core/navigation-submenu'];
35915  function AddSubmenuItem({
35916    block,
35917    onClose,
35918    expandedState,
35919    expand,
35920    setInsertedBlock
35921  }) {
35922    const {
35923      insertBlock,
35924      replaceBlock,
35925      replaceInnerBlocks
35926    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35927    const clientId = block.clientId;
35928    const isDisabled = !BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(block.name);
35929    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
35930      icon: add_submenu,
35931      disabled: isDisabled,
35932      onClick: () => {
35933        const updateSelectionOnInsert = false;
35934        const newLink = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
35935        if (block.name === 'core/navigation-submenu') {
35936          insertBlock(newLink, block.innerBlocks.length, clientId, updateSelectionOnInsert);
35937        } else {
35938          // Convert to a submenu if the block currently isn't one.
35939          const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', block.attributes, block.innerBlocks);
35940  
35941          // The following must happen as two independent actions.
35942          // Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds
35943          // selector to determine which block is "active". As the UX needs the newLink to be
35944          // the "active" block it must be the last block to be inserted.
35945          // Therefore the Submenu is first created and **then** the newLink is inserted
35946          // thus ensuring it is the last inserted block.
35947          replaceBlock(clientId, newSubmenu);
35948          replaceInnerBlocks(newSubmenu.clientId, [newLink], updateSelectionOnInsert);
35949        }
35950  
35951        // This call sets the local List View state for the "last inserted block".
35952        // This is required for the Nav Block to determine whether or not to display
35953        // the Link UI for this new block.
35954        setInsertedBlock(newLink);
35955        if (!expandedState[block.clientId]) {
35956          expand(block.clientId);
35957        }
35958        onClose();
35959      },
35960      children: (0,external_wp_i18n_namespaceObject.__)('Add submenu link')
35961    });
35962  }
35963  function LeafMoreMenu(props) {
35964    const {
35965      block
35966    } = props;
35967    const {
35968      clientId
35969    } = block;
35970    const {
35971      moveBlocksDown,
35972      moveBlocksUp,
35973      removeBlocks
35974    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35975    const removeLabel = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: block name */
35976    (0,external_wp_i18n_namespaceObject.__)('Remove %s'), (0,external_wp_blockEditor_namespaceObject.BlockTitle)({
35977      clientId,
35978      maximumLength: 25
35979    }));
35980    const rootClientId = (0,external_wp_data_namespaceObject.useSelect)(select => {
35981      const {
35982        getBlockRootClientId
35983      } = select(external_wp_blockEditor_namespaceObject.store);
35984      return getBlockRootClientId(clientId);
35985    }, [clientId]);
35986    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
35987      icon: more_vertical,
35988      label: (0,external_wp_i18n_namespaceObject.__)('Options'),
35989      className: "block-editor-block-settings-menu",
35990      popoverProps: POPOVER_PROPS,
35991      noIcons: true,
35992      ...props,
35993      children: ({
35994        onClose
35995      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
35996        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
35997          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
35998            icon: chevron_up,
35999            onClick: () => {
36000              moveBlocksUp([clientId], rootClientId);
36001              onClose();
36002            },
36003            children: (0,external_wp_i18n_namespaceObject.__)('Move up')
36004          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
36005            icon: chevron_down,
36006            onClick: () => {
36007              moveBlocksDown([clientId], rootClientId);
36008              onClose();
36009            },
36010            children: (0,external_wp_i18n_namespaceObject.__)('Move down')
36011          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AddSubmenuItem, {
36012            block: block,
36013            onClose: onClose,
36014            expanded: true,
36015            expandedState: props.expandedState,
36016            expand: props.expand,
36017            setInsertedBlock: props.setInsertedBlock
36018          })]
36019        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
36020          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
36021            onClick: () => {
36022              removeBlocks([clientId], false);
36023              onClose();
36024            },
36025            children: removeLabel
36026          })
36027        })]
36028      })
36029    });
36030  }
36031  
36032  ;// external ["wp","escapeHtml"]
36033  const external_wp_escapeHtml_namespaceObject = window["wp"]["escapeHtml"];
36034  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/update-attributes.js
36035  /**
36036   * WordPress dependencies
36037   */
36038  
36039  
36040  
36041  /**
36042   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
36043   */
36044  /**
36045   * Navigation Link Block Attributes
36046   *
36047   * @typedef {Object} WPNavigationLinkBlockAttributes
36048   *
36049   * @property {string}               [label]         Link text.
36050   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
36051   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
36052   * @property {string}               [rel]           The relationship of the linked URL.
36053   * @property {number}               [id]            A post or term id.
36054   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
36055   * @property {string}               [url]           Link href.
36056   * @property {string}               [title]         Link title attribute.
36057   */
36058  /**
36059   * Link Control onChange handler that updates block attributes when a setting is changed.
36060   *
36061   * @param {Object}                          updatedValue    New block attributes to update.
36062   * @param {Function}                        setAttributes   Block attribute update function.
36063   * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
36064   */
36065  
36066  const updateAttributes = (updatedValue = {}, setAttributes, blockAttributes = {}) => {
36067    const {
36068      label: originalLabel = '',
36069      kind: originalKind = '',
36070      type: originalType = ''
36071    } = blockAttributes;
36072    const {
36073      title: newLabel = '',
36074      // the title of any provided Post.
36075      url: newUrl = '',
36076      opensInNewTab,
36077      id,
36078      kind: newKind = originalKind,
36079      type: newType = originalType
36080    } = updatedValue;
36081    const newLabelWithoutHttp = newLabel.replace(/http(s?):\/\//gi, '');
36082    const newUrlWithoutHttp = newUrl.replace(/http(s?):\/\//gi, '');
36083    const useNewLabel = newLabel && newLabel !== originalLabel &&
36084    // LinkControl without the title field relies
36085    // on the check below. Specifically, it assumes that
36086    // the URL is the same as a title.
36087    // This logic a) looks suspicious and b) should really
36088    // live in the LinkControl and not here. It's a great
36089    // candidate for future refactoring.
36090    newLabelWithoutHttp !== newUrlWithoutHttp;
36091  
36092    // Unfortunately this causes the escaping model to be inverted.
36093    // The escaped content is stored in the block attributes (and ultimately in the database),
36094    // and then the raw data is "recovered" when outputting into the DOM.
36095    // It would be preferable to store the **raw** data in the block attributes and escape it in JS.
36096    // Why? Because there isn't one way to escape data. Depending on the context, you need to do
36097    // different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.
36098    // See also:
36099    // - https://github.com/WordPress/gutenberg/pull/41063
36100    // - https://github.com/WordPress/gutenberg/pull/18617.
36101    const label = useNewLabel ? (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(newLabel) : originalLabel || (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(newUrlWithoutHttp);
36102  
36103    // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"
36104    const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
36105    const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
36106    const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
36107    const kind = isCustomLink ? 'custom' : newKind;
36108    setAttributes({
36109      // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
36110      ...(newUrl && {
36111        url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(newUrl))
36112      }),
36113      ...(label && {
36114        label
36115      }),
36116      ...(undefined !== opensInNewTab && {
36117        opensInNewTab
36118      }),
36119      ...(id && Number.isInteger(id) && {
36120        id
36121      }),
36122      ...(kind && {
36123        kind
36124      }),
36125      ...(type && type !== 'URL' && {
36126        type
36127      })
36128    });
36129  };
36130  
36131  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js
36132  /**
36133   * WordPress dependencies
36134   */
36135  
36136  
36137  const chevronRightSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
36138    xmlns: "http://www.w3.org/2000/svg",
36139    viewBox: "0 0 24 24",
36140    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
36141      d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"
36142    })
36143  });
36144  /* harmony default export */ const chevron_right_small = (chevronRightSmall);
36145  
36146  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js
36147  /**
36148   * WordPress dependencies
36149   */
36150  
36151  
36152  const chevronLeftSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
36153    xmlns: "http://www.w3.org/2000/svg",
36154    viewBox: "0 0 24 24",
36155    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
36156      d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"
36157    })
36158  });
36159  /* harmony default export */ const chevron_left_small = (chevronLeftSmall);
36160  
36161  ;// ./node_modules/@wordpress/icons/build-module/library/plus.js
36162  /**
36163   * WordPress dependencies
36164   */
36165  
36166  
36167  const plus = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
36168    xmlns: "http://www.w3.org/2000/svg",
36169    viewBox: "0 0 24 24",
36170    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
36171      d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z"
36172    })
36173  });
36174  /* harmony default export */ const library_plus = (plus);
36175  
36176  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/link-ui.js
36177  /**
36178   * WordPress dependencies
36179   */
36180  
36181  
36182  
36183  
36184  
36185  
36186  
36187  
36188  
36189  
36190  
36191  /**
36192   * Internal dependencies
36193   */
36194  
36195  
36196  const {
36197    PrivateQuickInserter: QuickInserter
36198  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
36199  
36200  /**
36201   * Given the Link block's type attribute, return the query params to give to
36202   * /wp/v2/search.
36203   *
36204   * @param {string} type Link block's type attribute.
36205   * @param {string} kind Link block's entity of kind (post-type|taxonomy)
36206   * @return {{ type?: string, subtype?: string }} Search query params.
36207   */
36208  function getSuggestionsQuery(type, kind) {
36209    switch (type) {
36210      case 'post':
36211      case 'page':
36212        return {
36213          type: 'post',
36214          subtype: type
36215        };
36216      case 'category':
36217        return {
36218          type: 'term',
36219          subtype: 'category'
36220        };
36221      case 'tag':
36222        return {
36223          type: 'term',
36224          subtype: 'post_tag'
36225        };
36226      case 'post_format':
36227        return {
36228          type: 'post-format'
36229        };
36230      default:
36231        if (kind === 'taxonomy') {
36232          return {
36233            type: 'term',
36234            subtype: type
36235          };
36236        }
36237        if (kind === 'post-type') {
36238          return {
36239            type: 'post',
36240            subtype: type
36241          };
36242        }
36243        return {
36244          // for custom link which has no type
36245          // always show pages as initial suggestions
36246          initialSuggestionsSearchOptions: {
36247            type: 'post',
36248            subtype: 'page',
36249            perPage: 20
36250          }
36251        };
36252    }
36253  }
36254  function LinkUIBlockInserter({
36255    clientId,
36256    onBack
36257  }) {
36258    const {
36259      rootBlockClientId
36260    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
36261      const {
36262        getBlockRootClientId
36263      } = select(external_wp_blockEditor_namespaceObject.store);
36264      return {
36265        rootBlockClientId: getBlockRootClientId(clientId)
36266      };
36267    }, [clientId]);
36268    const focusOnMountRef = (0,external_wp_compose_namespaceObject.useFocusOnMount)('firstElement');
36269    const dialogTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_blockEditor_namespaceObject.LinkControl, `link-ui-block-inserter__title`);
36270    const dialogDescriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_blockEditor_namespaceObject.LinkControl, `link-ui-block-inserter__description`);
36271    if (!clientId) {
36272      return null;
36273    }
36274    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
36275      className: "link-ui-block-inserter",
36276      role: "dialog",
36277      "aria-labelledby": dialogTitleId,
36278      "aria-describedby": dialogDescriptionId,
36279      ref: focusOnMountRef,
36280      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.VisuallyHidden, {
36281        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
36282          id: dialogTitleId,
36283          children: (0,external_wp_i18n_namespaceObject.__)('Add block')
36284        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
36285          id: dialogDescriptionId,
36286          children: (0,external_wp_i18n_namespaceObject.__)('Choose a block to add to your Navigation.')
36287        })]
36288      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
36289        className: "link-ui-block-inserter__back",
36290        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right_small : chevron_left_small,
36291        onClick: e => {
36292          e.preventDefault();
36293          onBack();
36294        },
36295        size: "small",
36296        children: (0,external_wp_i18n_namespaceObject.__)('Back')
36297      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QuickInserter, {
36298        rootClientId: rootBlockClientId,
36299        clientId: clientId,
36300        isAppender: false,
36301        prioritizePatterns: false,
36302        selectBlockOnInsert: true,
36303        hasSearch: false
36304      })]
36305    });
36306  }
36307  function UnforwardedLinkUI(props, ref) {
36308    const {
36309      label,
36310      url,
36311      opensInNewTab,
36312      type,
36313      kind
36314    } = props.link;
36315    const postType = type || 'page';
36316    const [addingBlock, setAddingBlock] = (0,external_wp_element_namespaceObject.useState)(false);
36317    const [focusAddBlockButton, setFocusAddBlockButton] = (0,external_wp_element_namespaceObject.useState)(false);
36318    const {
36319      saveEntityRecord
36320    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
36321    const permissions = (0,external_wp_coreData_namespaceObject.useResourcePermissions)({
36322      kind: 'postType',
36323      name: postType
36324    });
36325    async function handleCreate(pageTitle) {
36326      const page = await saveEntityRecord('postType', postType, {
36327        title: pageTitle,
36328        status: 'draft'
36329      });
36330      return {
36331        id: page.id,
36332        type: postType,
36333        // Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)
36334        // is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.
36335        // Ideally in the future we will update both APIs to utilise the "raw" form of the title which is better suited to edit contexts.
36336        // e.g.
36337        // - title.raw = "Yes & No"
36338        // - title.rendered = "Yes &#038; No"
36339        // - decodeEntities( title.rendered ) = "Yes & No"
36340        // See:
36341        // - https://github.com/WordPress/gutenberg/pull/41063
36342        // - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218
36343        title: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(page.title.rendered),
36344        url: page.link,
36345        kind: 'post-type'
36346      };
36347    }
36348  
36349    // Memoize link value to avoid overriding the LinkControl's internal state.
36350    // This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.
36351    const link = (0,external_wp_element_namespaceObject.useMemo)(() => ({
36352      url,
36353      opensInNewTab,
36354      title: label && (0,external_wp_dom_namespaceObject.__unstableStripHTML)(label)
36355    }), [label, opensInNewTab, url]);
36356    const dialogTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkUI, `link-ui-link-control__title`);
36357    const dialogDescriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkUI, `link-ui-link-control__description`);
36358    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Popover, {
36359      ref: ref,
36360      placement: "bottom",
36361      onClose: props.onClose,
36362      anchor: props.anchor,
36363      shift: true,
36364      children: [!addingBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
36365        role: "dialog",
36366        "aria-labelledby": dialogTitleId,
36367        "aria-describedby": dialogDescriptionId,
36368        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.VisuallyHidden, {
36369          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
36370            id: dialogTitleId,
36371            children: (0,external_wp_i18n_namespaceObject.__)('Add link')
36372          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
36373            id: dialogDescriptionId,
36374            children: (0,external_wp_i18n_namespaceObject.__)('Search for and add a link to your Navigation.')
36375          })]
36376        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.LinkControl, {
36377          hasTextControl: true,
36378          hasRichPreviews: true,
36379          value: link,
36380          showInitialSuggestions: true,
36381          withCreateSuggestion: permissions.canCreate,
36382          createSuggestion: handleCreate,
36383          createSuggestionButtonText: searchTerm => {
36384            let format;
36385            if (type === 'post') {
36386              /* translators: %s: search term. */
36387              format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
36388            } else {
36389              /* translators: %s: search term. */
36390              format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
36391            }
36392            return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
36393              mark: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("mark", {})
36394            });
36395          },
36396          noDirectEntry: !!type,
36397          noURLSuggestion: !!type,
36398          suggestionsQuery: getSuggestionsQuery(type, kind),
36399          onChange: props.onChange,
36400          onRemove: props.onRemove,
36401          onCancel: props.onCancel,
36402          renderControlBottom: () => !link?.url?.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUITools, {
36403            focusAddBlockButton: focusAddBlockButton,
36404            setAddingBlock: () => {
36405              setAddingBlock(true);
36406              setFocusAddBlockButton(false);
36407            }
36408          })
36409        })]
36410      }), addingBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUIBlockInserter, {
36411        clientId: props.clientId,
36412        onBack: () => {
36413          setAddingBlock(false);
36414          setFocusAddBlockButton(true);
36415        }
36416      })]
36417    });
36418  }
36419  const LinkUI = (0,external_wp_element_namespaceObject.forwardRef)(UnforwardedLinkUI);
36420  const LinkUITools = ({
36421    setAddingBlock,
36422    focusAddBlockButton
36423  }) => {
36424    const blockInserterAriaRole = 'listbox';
36425    const addBlockButtonRef = (0,external_wp_element_namespaceObject.useRef)();
36426  
36427    // Focus the add block button when the popover is opened.
36428    (0,external_wp_element_namespaceObject.useEffect)(() => {
36429      if (focusAddBlockButton) {
36430        addBlockButtonRef.current?.focus();
36431      }
36432    }, [focusAddBlockButton]);
36433    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
36434      className: "link-ui-tools",
36435      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
36436        __next40pxDefaultSize: true,
36437        ref: addBlockButtonRef,
36438        icon: library_plus,
36439        onClick: e => {
36440          e.preventDefault();
36441          setAddingBlock(true);
36442        },
36443        "aria-haspopup": blockInserterAriaRole,
36444        children: (0,external_wp_i18n_namespaceObject.__)('Add block')
36445      })
36446    });
36447  };
36448  /* harmony default export */ const link_ui = ((/* unused pure expression or super */ null && (LinkUITools)));
36449  
36450  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/menu-inspector-controls.js
36451  /**
36452   * WordPress dependencies
36453   */
36454  
36455  
36456  
36457  
36458  
36459  /**
36460   * Internal dependencies
36461   */
36462  
36463  
36464  
36465  
36466  
36467  
36468  
36469  
36470  const actionLabel = /* translators: %s: The name of a menu. */(0,external_wp_i18n_namespaceObject.__)("Switch to '%s'");
36471  const BLOCKS_WITH_LINK_UI_SUPPORT = ['core/navigation-link', 'core/navigation-submenu'];
36472  const {
36473    PrivateListView
36474  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
36475  function AdditionalBlockContent({
36476    block,
36477    insertedBlock,
36478    setInsertedBlock
36479  }) {
36480    const {
36481      updateBlockAttributes
36482    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
36483    const supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(insertedBlock?.name);
36484    const blockWasJustInserted = insertedBlock?.clientId === block.clientId;
36485    const showLinkControls = supportsLinkControls && blockWasJustInserted;
36486    if (!showLinkControls) {
36487      return null;
36488    }
36489    const setInsertedBlockAttributes = _insertedBlockClientId => _updatedAttributes => {
36490      if (!_insertedBlockClientId) {
36491        return;
36492      }
36493      updateBlockAttributes(_insertedBlockClientId, _updatedAttributes);
36494    };
36495    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
36496      clientId: insertedBlock?.clientId,
36497      link: insertedBlock?.attributes,
36498      onClose: () => {
36499        setInsertedBlock(null);
36500      },
36501      onChange: updatedValue => {
36502        updateAttributes(updatedValue, setInsertedBlockAttributes(insertedBlock?.clientId), insertedBlock?.attributes);
36503        setInsertedBlock(null);
36504      },
36505      onCancel: () => {
36506        setInsertedBlock(null);
36507      }
36508    });
36509  }
36510  const MainContent = ({
36511    clientId,
36512    currentMenuId,
36513    isLoading,
36514    isNavigationMenuMissing,
36515    onCreateNew
36516  }) => {
36517    const hasChildren = (0,external_wp_data_namespaceObject.useSelect)(select => {
36518      return !!select(external_wp_blockEditor_namespaceObject.store).getBlockCount(clientId);
36519    }, [clientId]);
36520    const {
36521      navigationMenu
36522    } = useNavigationMenu(currentMenuId);
36523    if (currentMenuId && isNavigationMenuMissing) {
36524      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(deleted_navigation_warning, {
36525        onCreateNew: onCreateNew,
36526        isNotice: true
36527      });
36528    }
36529    if (isLoading) {
36530      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {});
36531    }
36532    const description = navigationMenu ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: The name of a menu. */
36533    (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');
36534    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
36535      className: "wp-block-navigation__menu-inspector-controls",
36536      children: [!hasChildren && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
36537        className: "wp-block-navigation__menu-inspector-controls__empty-message",
36538        children: (0,external_wp_i18n_namespaceObject.__)('This Navigation Menu is empty.')
36539      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivateListView, {
36540        rootClientId: clientId,
36541        isExpanded: true,
36542        description: description,
36543        showAppender: true,
36544        blockSettingsMenu: LeafMoreMenu,
36545        additionalBlockContent: AdditionalBlockContent
36546      })]
36547    });
36548  };
36549  const MenuInspectorControls = props => {
36550    const {
36551      createNavigationMenuIsSuccess,
36552      createNavigationMenuIsError,
36553      currentMenuId = null,
36554      onCreateNew,
36555      onSelectClassicMenu,
36556      onSelectNavigationMenu,
36557      isManageMenusButtonDisabled,
36558      blockEditingMode
36559    } = props;
36560    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
36561      group: "list",
36562      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
36563        title: null,
36564        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
36565          className: "wp-block-navigation-off-canvas-editor__header",
36566          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHeading, {
36567            className: "wp-block-navigation-off-canvas-editor__title",
36568            level: 2,
36569            children: (0,external_wp_i18n_namespaceObject.__)('Menu')
36570          }), blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigation_menu_selector, {
36571            currentMenuId: currentMenuId,
36572            onSelectClassicMenu: onSelectClassicMenu,
36573            onSelectNavigationMenu: onSelectNavigationMenu,
36574            onCreateNew: onCreateNew,
36575            createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
36576            createNavigationMenuIsError: createNavigationMenuIsError,
36577            actionLabel: actionLabel,
36578            isManageMenusButtonDisabled: isManageMenusButtonDisabled
36579          })]
36580        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MainContent, {
36581          ...props
36582        })]
36583      })
36584    });
36585  };
36586  /* harmony default export */ const menu_inspector_controls = (MenuInspectorControls);
36587  
36588  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/accessible-description.js
36589  /**
36590   * WordPress dependencies
36591   */
36592  
36593  
36594  function AccessibleDescription({
36595    id,
36596    children
36597  }) {
36598    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
36599      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
36600        id: id,
36601        className: "wp-block-navigation__description",
36602        children: children
36603      })
36604    });
36605  }
36606  
36607  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/accessible-menu-description.js
36608  /**
36609   * WordPress dependencies
36610   */
36611  
36612  
36613  
36614  /**
36615   * Internal dependencies
36616   */
36617  
36618  
36619  function AccessibleMenuDescription({
36620    id
36621  }) {
36622    const [menuTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
36623    /* translators: %s: Title of a Navigation Menu post. */
36624    const description = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu: "%s"`), menuTitle);
36625    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleDescription, {
36626      id: id,
36627      children: description
36628    });
36629  }
36630  
36631  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/index.js
36632  /**
36633   * External dependencies
36634   */
36635  
36636  
36637  /**
36638   * WordPress dependencies
36639   */
36640  
36641  
36642  
36643  
36644  
36645  
36646  
36647  
36648  
36649  
36650  /**
36651   * Internal dependencies
36652   */
36653  
36654  
36655  
36656  
36657  
36658  
36659  
36660  
36661  
36662  
36663  
36664  
36665  
36666  
36667  
36668  
36669  
36670  
36671  
36672  
36673  
36674  
36675  function ColorTools({
36676    textColor,
36677    setTextColor,
36678    backgroundColor,
36679    setBackgroundColor,
36680    overlayTextColor,
36681    setOverlayTextColor,
36682    overlayBackgroundColor,
36683    setOverlayBackgroundColor,
36684    clientId,
36685    navRef
36686  }) {
36687    const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
36688    const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)();
36689    const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
36690    const [detectedOverlayColor, setDetectedOverlayColor] = (0,external_wp_element_namespaceObject.useState)();
36691    // Turn on contrast checker for web only since it's not supported on mobile yet.
36692    const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web';
36693    (0,external_wp_element_namespaceObject.useEffect)(() => {
36694      if (!enableContrastChecking) {
36695        return;
36696      }
36697      detectColors(navRef.current, setDetectedColor, setDetectedBackgroundColor);
36698      const subMenuElement = navRef.current?.querySelector('[data-type="core/navigation-submenu"] [data-type="core/navigation-link"]');
36699      if (!subMenuElement) {
36700        return;
36701      }
36702  
36703      // Only detect submenu overlay colors if they have previously been explicitly set.
36704      // This avoids the contrast checker from reporting on inherited submenu colors and
36705      // showing the contrast warning twice.
36706      if (overlayTextColor.color || overlayBackgroundColor.color) {
36707        detectColors(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor);
36708      }
36709    }, [enableContrastChecking, overlayTextColor.color, overlayBackgroundColor.color, navRef]);
36710    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
36711    if (!colorGradientSettings.hasColorsOrGradients) {
36712      return null;
36713    }
36714    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36715      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
36716        __experimentalIsRenderedInSidebar: true,
36717        settings: [{
36718          colorValue: textColor.color,
36719          label: (0,external_wp_i18n_namespaceObject.__)('Text'),
36720          onColorChange: setTextColor,
36721          resetAllFilter: () => setTextColor(),
36722          clearable: true
36723        }, {
36724          colorValue: backgroundColor.color,
36725          label: (0,external_wp_i18n_namespaceObject.__)('Background'),
36726          onColorChange: setBackgroundColor,
36727          resetAllFilter: () => setBackgroundColor(),
36728          clearable: true
36729        }, {
36730          colorValue: overlayTextColor.color,
36731          label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay text'),
36732          onColorChange: setOverlayTextColor,
36733          resetAllFilter: () => setOverlayTextColor(),
36734          clearable: true
36735        }, {
36736          colorValue: overlayBackgroundColor.color,
36737          label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay background'),
36738          onColorChange: setOverlayBackgroundColor,
36739          resetAllFilter: () => setOverlayBackgroundColor(),
36740          clearable: true
36741        }],
36742        panelId: clientId,
36743        ...colorGradientSettings,
36744        gradients: [],
36745        disableCustomGradients: true
36746      }), enableContrastChecking && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36747        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
36748          backgroundColor: detectedBackgroundColor,
36749          textColor: detectedColor
36750        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
36751          backgroundColor: detectedOverlayBackgroundColor,
36752          textColor: detectedOverlayColor
36753        })]
36754      })]
36755    });
36756  }
36757  function Navigation({
36758    attributes,
36759    setAttributes,
36760    clientId,
36761    isSelected,
36762    className,
36763    backgroundColor,
36764    setBackgroundColor,
36765    textColor,
36766    setTextColor,
36767    overlayBackgroundColor,
36768    setOverlayBackgroundColor,
36769    overlayTextColor,
36770    setOverlayTextColor,
36771    // These props are used by the navigation editor to override specific
36772    // navigation block settings.
36773    hasSubmenuIndicatorSetting = true,
36774    customPlaceholder: CustomPlaceholder = null,
36775    __unstableLayoutClassNames: layoutClassNames
36776  }) {
36777    const {
36778      openSubmenusOnClick,
36779      overlayMenu,
36780      showSubmenuIcon,
36781      templateLock,
36782      layout: {
36783        justifyContent,
36784        orientation = 'horizontal',
36785        flexWrap = 'wrap'
36786      } = {},
36787      hasIcon,
36788      icon = 'handle'
36789    } = attributes;
36790    const ref = attributes.ref;
36791    const setRef = (0,external_wp_element_namespaceObject.useCallback)(postId => {
36792      setAttributes({
36793        ref: postId
36794      });
36795    }, [setAttributes]);
36796    const recursionId = `navigationMenu/$ref}`;
36797    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(recursionId);
36798    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
36799  
36800    // Preload classic menus, so that they don't suddenly pop-in when viewing
36801    // the Select Menu dropdown.
36802    const {
36803      menus: classicMenus
36804    } = useNavigationEntities();
36805    const [showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice] = use_navigation_notice({
36806      name: 'block-library/core/navigation/status'
36807    });
36808    const [showClassicMenuConversionNotice, hideClassicMenuConversionNotice] = use_navigation_notice({
36809      name: 'block-library/core/navigation/classic-menu-conversion'
36810    });
36811    const [showNavigationMenuPermissionsNotice, hideNavigationMenuPermissionsNotice] = use_navigation_notice({
36812      name: 'block-library/core/navigation/permissions/update'
36813    });
36814    const {
36815      create: createNavigationMenu,
36816      status: createNavigationMenuStatus,
36817      error: createNavigationMenuError,
36818      value: createNavigationMenuPost,
36819      isPending: isCreatingNavigationMenu,
36820      isSuccess: createNavigationMenuIsSuccess,
36821      isError: createNavigationMenuIsError
36822    } = useCreateNavigationMenu(clientId);
36823    const createUntitledEmptyNavigationMenu = async () => {
36824      await createNavigationMenu('');
36825    };
36826    const {
36827      hasUncontrolledInnerBlocks,
36828      uncontrolledInnerBlocks,
36829      isInnerBlockSelected,
36830      innerBlocks
36831    } = useInnerBlocks(clientId);
36832    const hasSubmenus = !!innerBlocks.find(block => block.name === 'core/navigation-submenu');
36833    const {
36834      replaceInnerBlocks,
36835      selectBlock,
36836      __unstableMarkNextChangeAsNotPersistent
36837    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
36838    const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0,external_wp_element_namespaceObject.useState)(false);
36839    const [overlayMenuPreview, setOverlayMenuPreview] = (0,external_wp_element_namespaceObject.useState)(false);
36840    const {
36841      hasResolvedNavigationMenus,
36842      isNavigationMenuResolved,
36843      isNavigationMenuMissing,
36844      canUserUpdateNavigationMenu,
36845      hasResolvedCanUserUpdateNavigationMenu,
36846      canUserDeleteNavigationMenu,
36847      hasResolvedCanUserDeleteNavigationMenu,
36848      canUserCreateNavigationMenus,
36849      isResolvingCanUserCreateNavigationMenus,
36850      hasResolvedCanUserCreateNavigationMenus
36851    } = useNavigationMenu(ref);
36852    const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing;
36853    const {
36854      convert: convertClassicMenu,
36855      status: classicMenuConversionStatus,
36856      error: classicMenuConversionError
36857    } = use_convert_classic_menu_to_block_menu(createNavigationMenu);
36858    const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
36859    const handleUpdateMenu = (0,external_wp_element_namespaceObject.useCallback)((menuId, options = {
36860      focusNavigationBlock: false
36861    }) => {
36862      const {
36863        focusNavigationBlock
36864      } = options;
36865      setRef(menuId);
36866      if (focusNavigationBlock) {
36867        selectBlock(clientId);
36868      }
36869    }, [selectBlock, clientId, setRef]);
36870    const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved;
36871  
36872    // If the block has inner blocks, but no menu id, then these blocks are either:
36873    // - inserted via a pattern.
36874    // - inserted directly via Code View (or otherwise).
36875    // - from an older version of navigation block added before the block used a wp_navigation entity.
36876    // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
36877    // that automatically saves the menu as an entity when changes are made to the inner blocks.
36878    const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
36879    const {
36880      getNavigationFallbackId
36881    } = unlock((0,external_wp_data_namespaceObject.useSelect)(external_wp_coreData_namespaceObject.store));
36882    const navigationFallbackId = !(ref || hasUnsavedBlocks) ? getNavigationFallbackId() : null;
36883    (0,external_wp_element_namespaceObject.useEffect)(() => {
36884      // If:
36885      // - there is an existing menu, OR
36886      // - there are existing (uncontrolled) inner blocks
36887      // ...then don't request a fallback menu.
36888      if (ref || hasUnsavedBlocks || !navigationFallbackId) {
36889        return;
36890      }
36891  
36892      /**
36893       *  This fallback displays (both in editor and on front)
36894       *  The fallback should not request a save (entity dirty state)
36895       *  nor to be undoable, hence why it is marked as non persistent
36896       */
36897  
36898      __unstableMarkNextChangeAsNotPersistent();
36899      setRef(navigationFallbackId);
36900    }, [ref, setRef, hasUnsavedBlocks, navigationFallbackId, __unstableMarkNextChangeAsNotPersistent]);
36901    const navRef = (0,external_wp_element_namespaceObject.useRef)();
36902  
36903    // The standard HTML5 tag for the block wrapper.
36904    const TagName = 'nav';
36905  
36906    // "placeholder" shown if:
36907    // - there is no ref attribute pointing to a Navigation Post.
36908    // - there is no classic menu conversion process in progress.
36909    // - there is no menu creation process in progress.
36910    // - there are no uncontrolled blocks.
36911    const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && classicMenus?.length === 0 && !hasUncontrolledInnerBlocks;
36912  
36913    // "loading" state:
36914    // - there is a menu creation process in progress.
36915    // - there is a classic menu conversion process in progress.
36916    // OR:
36917    // - there is a ref attribute pointing to a Navigation Post
36918    // - the Navigation Post isn't available (hasn't resolved) yet.
36919    const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu);
36920    const textDecoration = attributes.style?.typography?.textDecoration;
36921    const hasBlockOverlay = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__unstableHasActiveBlockOverlayActive(clientId), [clientId]);
36922    const isResponsive = 'never' !== overlayMenu;
36923    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
36924      ref: navRef,
36925      className: dist_clsx(className, {
36926        'items-justified-right': justifyContent === 'right',
36927        'items-justified-space-between': justifyContent === 'space-between',
36928        'items-justified-left': justifyContent === 'left',
36929        'items-justified-center': justifyContent === 'center',
36930        'is-vertical': orientation === 'vertical',
36931        'no-wrap': flexWrap === 'nowrap',
36932        'is-responsive': isResponsive,
36933        'has-text-color': !!textColor.color || !!textColor?.class,
36934        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor?.slug)]: !!textColor?.slug,
36935        'has-background': !!backgroundColor.color || backgroundColor.class,
36936        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor?.slug)]: !!backgroundColor?.slug,
36937        [`has-text-decoration-$textDecoration}`]: textDecoration,
36938        'block-editor-block-content-overlay': hasBlockOverlay
36939      }, layoutClassNames),
36940      style: {
36941        color: !textColor?.slug && textColor?.color,
36942        backgroundColor: !backgroundColor?.slug && backgroundColor?.color
36943      }
36944    });
36945    const onSelectClassicMenu = async classicMenu => {
36946      return convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
36947    };
36948    const onSelectNavigationMenu = menuId => {
36949      handleUpdateMenu(menuId);
36950    };
36951    (0,external_wp_element_namespaceObject.useEffect)(() => {
36952      hideNavigationMenuStatusNotice();
36953      if (isCreatingNavigationMenu) {
36954        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)(`Creating Navigation Menu.`));
36955      }
36956      if (createNavigationMenuIsSuccess) {
36957        handleUpdateMenu(createNavigationMenuPost?.id, {
36958          focusNavigationBlock: true
36959        });
36960        showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu successfully created.`));
36961      }
36962      if (createNavigationMenuIsError) {
36963        showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)('Failed to create Navigation Menu.'));
36964      }
36965    }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost?.id, createNavigationMenuIsError, createNavigationMenuIsSuccess, isCreatingNavigationMenu, handleUpdateMenu, hideNavigationMenuStatusNotice, showNavigationMenuStatusNotice]);
36966    (0,external_wp_element_namespaceObject.useEffect)(() => {
36967      hideClassicMenuConversionNotice();
36968      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING) {
36969        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu importing.'));
36970      }
36971      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS) {
36972        showClassicMenuConversionNotice((0,external_wp_i18n_namespaceObject.__)('Classic menu imported successfully.'));
36973        handleUpdateMenu(createNavigationMenuPost?.id, {
36974          focusNavigationBlock: true
36975        });
36976      }
36977      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) {
36978        showClassicMenuConversionNotice((0,external_wp_i18n_namespaceObject.__)('Classic menu import failed.'));
36979      }
36980    }, [classicMenuConversionStatus, classicMenuConversionError, hideClassicMenuConversionNotice, showClassicMenuConversionNotice, createNavigationMenuPost?.id, handleUpdateMenu]);
36981    (0,external_wp_element_namespaceObject.useEffect)(() => {
36982      if (!isSelected && !isInnerBlockSelected) {
36983        hideNavigationMenuPermissionsNotice();
36984      }
36985      if (isSelected || isInnerBlockSelected) {
36986        if (ref && !navMenuResolvedButMissing && hasResolvedCanUserUpdateNavigationMenu && !canUserUpdateNavigationMenu) {
36987          showNavigationMenuPermissionsNotice((0,external_wp_i18n_namespaceObject.__)('You do not have permission to edit this Menu. Any changes made will not be saved.'));
36988        }
36989        if (!ref && hasResolvedCanUserCreateNavigationMenus && !canUserCreateNavigationMenus) {
36990          showNavigationMenuPermissionsNotice((0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Navigation Menus.'));
36991        }
36992      }
36993    }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenus, hasResolvedCanUserCreateNavigationMenus, ref, hideNavigationMenuPermissionsNotice, showNavigationMenuPermissionsNotice, navMenuResolvedButMissing]);
36994    const hasManagePermissions = canUserCreateNavigationMenus || canUserUpdateNavigationMenu;
36995    const overlayMenuPreviewClasses = dist_clsx('wp-block-navigation__overlay-menu-preview', {
36996      open: overlayMenuPreview
36997    });
36998    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.') : '';
36999    const isFirstRender = (0,external_wp_element_namespaceObject.useRef)(true); // Don't speak on first render.
37000    (0,external_wp_element_namespaceObject.useEffect)(() => {
37001      if (!isFirstRender.current && submenuAccessibilityNotice) {
37002        (0,external_wp_a11y_namespaceObject.speak)(submenuAccessibilityNotice);
37003      }
37004      isFirstRender.current = false;
37005    }, [submenuAccessibilityNotice]);
37006    const overlayMenuPreviewId = (0,external_wp_compose_namespaceObject.useInstanceId)(OverlayMenuPreview, `overlay-menu-preview`);
37007    const stylingInspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37008      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37009        children: hasSubmenuIndicatorSetting && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
37010          title: (0,external_wp_i18n_namespaceObject.__)('Display'),
37011          children: [isResponsive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37012            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
37013              __next40pxDefaultSize: true,
37014              className: overlayMenuPreviewClasses,
37015              onClick: () => {
37016                setOverlayMenuPreview(!overlayMenuPreview);
37017              },
37018              "aria-label": (0,external_wp_i18n_namespaceObject.__)('Overlay menu controls'),
37019              "aria-controls": overlayMenuPreviewId,
37020              "aria-expanded": overlayMenuPreview,
37021              children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37022                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
37023                  icon: icon
37024                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
37025                  icon: library_close
37026                })]
37027              }), !hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37028                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37029                  children: (0,external_wp_i18n_namespaceObject.__)('Menu')
37030                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37031                  children: (0,external_wp_i18n_namespaceObject.__)('Close')
37032                })]
37033              })]
37034            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37035              id: overlayMenuPreviewId,
37036              children: overlayMenuPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuPreview, {
37037                setAttributes: setAttributes,
37038                hasIcon: hasIcon,
37039                icon: icon,
37040                hidden: !overlayMenuPreview
37041              })
37042            })]
37043          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
37044            __next40pxDefaultSize: true,
37045            __nextHasNoMarginBottom: true,
37046            label: (0,external_wp_i18n_namespaceObject.__)('Overlay Menu'),
37047            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Configure overlay menu'),
37048            value: overlayMenu,
37049            help: (0,external_wp_i18n_namespaceObject.__)('Collapses the navigation options in a menu icon opening an overlay.'),
37050            onChange: value => setAttributes({
37051              overlayMenu: value
37052            }),
37053            isBlock: true,
37054            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
37055              value: "never",
37056              label: (0,external_wp_i18n_namespaceObject.__)('Off')
37057            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
37058              value: "mobile",
37059              label: (0,external_wp_i18n_namespaceObject.__)('Mobile')
37060            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
37061              value: "always",
37062              label: (0,external_wp_i18n_namespaceObject.__)('Always')
37063            })]
37064          }), hasSubmenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37065            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
37066              children: (0,external_wp_i18n_namespaceObject.__)('Submenus')
37067            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
37068              __nextHasNoMarginBottom: true,
37069              checked: openSubmenusOnClick,
37070              onChange: value => {
37071                setAttributes({
37072                  openSubmenusOnClick: value,
37073                  ...(value && {
37074                    showSubmenuIcon: true
37075                  }) // Make sure arrows are shown when we toggle this on.
37076                });
37077              },
37078              label: (0,external_wp_i18n_namespaceObject.__)('Open on click')
37079            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
37080              __nextHasNoMarginBottom: true,
37081              checked: showSubmenuIcon,
37082              onChange: value => {
37083                setAttributes({
37084                  showSubmenuIcon: value
37085                });
37086              },
37087              disabled: attributes.openSubmenusOnClick,
37088              label: (0,external_wp_i18n_namespaceObject.__)('Show arrow')
37089            }), submenuAccessibilityNotice && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37090              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
37091                spokenMessage: null,
37092                status: "warning",
37093                isDismissible: false,
37094                children: submenuAccessibilityNotice
37095              })
37096            })]
37097          })]
37098        })
37099      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37100        group: "color",
37101        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ColorTools, {
37102          textColor: textColor,
37103          setTextColor: setTextColor,
37104          backgroundColor: backgroundColor,
37105          setBackgroundColor: setBackgroundColor,
37106          overlayTextColor: overlayTextColor,
37107          setOverlayTextColor: setOverlayTextColor,
37108          overlayBackgroundColor: overlayBackgroundColor,
37109          setOverlayBackgroundColor: setOverlayBackgroundColor,
37110          clientId: clientId,
37111          navRef: navRef
37112        })
37113      })]
37114    });
37115    const accessibleDescriptionId = `$clientId}-desc`;
37116    const isHiddenByDefault = 'always' === overlayMenu;
37117    const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
37118    if (hasUnsavedBlocks && !isCreatingNavigationMenu) {
37119      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
37120        ...blockProps,
37121        "aria-describedby": !isPlaceholder ? accessibleDescriptionId : undefined,
37122        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleDescription, {
37123          id: accessibleDescriptionId,
37124          children: (0,external_wp_i18n_namespaceObject.__)('Unsaved Navigation Menu.')
37125        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
37126          clientId: clientId,
37127          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
37128          createNavigationMenuIsError: createNavigationMenuIsError,
37129          currentMenuId: ref,
37130          isNavigationMenuMissing: isNavigationMenuMissing,
37131          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
37132          onCreateNew: createUntitledEmptyNavigationMenu,
37133          onSelectClassicMenu: onSelectClassicMenu,
37134          onSelectNavigationMenu: onSelectNavigationMenu,
37135          isLoading: isLoading,
37136          blockEditingMode: blockEditingMode
37137        }), blockEditingMode === 'default' && stylingInspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResponsiveWrapper, {
37138          id: clientId,
37139          onToggle: setResponsiveMenuVisibility,
37140          isOpen: isResponsiveMenuOpen,
37141          hasIcon: hasIcon,
37142          icon: icon,
37143          isResponsive: isResponsive,
37144          isHiddenByDefault: isHiddenByDefault,
37145          overlayBackgroundColor: overlayBackgroundColor,
37146          overlayTextColor: overlayTextColor,
37147          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(UnsavedInnerBlocks, {
37148            createNavigationMenu: createNavigationMenu,
37149            blocks: uncontrolledInnerBlocks,
37150            hasSelection: isSelected || isInnerBlockSelected
37151          })
37152        })]
37153      });
37154    }
37155  
37156    // Show a warning if the selected menu is no longer available.
37157    // TODO - the user should be able to select a new one?
37158    if (ref && isNavigationMenuMissing) {
37159      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
37160        ...blockProps,
37161        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
37162          clientId: clientId,
37163          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
37164          createNavigationMenuIsError: createNavigationMenuIsError,
37165          currentMenuId: ref,
37166          isNavigationMenuMissing: isNavigationMenuMissing,
37167          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
37168          onCreateNew: createUntitledEmptyNavigationMenu,
37169          onSelectClassicMenu: onSelectClassicMenu,
37170          onSelectNavigationMenu: onSelectNavigationMenu,
37171          isLoading: isLoading,
37172          blockEditingMode: blockEditingMode
37173        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(deleted_navigation_warning, {
37174          onCreateNew: createUntitledEmptyNavigationMenu
37175        })]
37176      });
37177    }
37178    if (isEntityAvailable && hasAlreadyRendered) {
37179      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37180        ...blockProps,
37181        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
37182          children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
37183        })
37184      });
37185    }
37186    const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : NavigationPlaceholder;
37187  
37188    /**
37189     * Historically the navigation block has supported custom placeholders.
37190     * Even though the current UX tries as hard as possible not to
37191     * end up in a placeholder state, the block continues to support
37192     * this extensibility point, via a CustomPlaceholder.
37193     * When CustomPlaceholder is present it becomes the default fallback
37194     * for an empty navigation block, instead of the default fallbacks.
37195     *
37196     */
37197  
37198    if (isPlaceholder && CustomPlaceholder) {
37199      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
37200        ...blockProps,
37201        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderComponent, {
37202          isSelected: isSelected,
37203          currentMenuId: ref,
37204          clientId: clientId,
37205          canUserCreateNavigationMenus: canUserCreateNavigationMenus,
37206          isResolvingCanUserCreateNavigationMenus: isResolvingCanUserCreateNavigationMenus,
37207          onSelectNavigationMenu: onSelectNavigationMenu,
37208          onSelectClassicMenu: onSelectClassicMenu,
37209          onCreateEmpty: createUntitledEmptyNavigationMenu
37210        })
37211      });
37212    }
37213    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_coreData_namespaceObject.EntityProvider, {
37214      kind: "postType",
37215      type: "wp_navigation",
37216      id: ref,
37217      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
37218        uniqueId: recursionId,
37219        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
37220          clientId: clientId,
37221          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
37222          createNavigationMenuIsError: createNavigationMenuIsError,
37223          currentMenuId: ref,
37224          isNavigationMenuMissing: isNavigationMenuMissing,
37225          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
37226          onCreateNew: createUntitledEmptyNavigationMenu,
37227          onSelectClassicMenu: onSelectClassicMenu,
37228          onSelectNavigationMenu: onSelectNavigationMenu,
37229          isLoading: isLoading,
37230          blockEditingMode: blockEditingMode
37231        }), blockEditingMode === 'default' && stylingInspectorControls, blockEditingMode === 'default' && isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37232          group: "advanced",
37233          children: [hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationMenuNameControl, {}), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationMenuDeleteControl, {
37234            onDelete: () => {
37235              replaceInnerBlocks(clientId, []);
37236              showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)('Navigation Menu successfully deleted.'));
37237            }
37238          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(manage_menus_button, {
37239            disabled: isManageMenusButtonDisabled,
37240            className: "wp-block-navigation-manage-menus-button"
37241          })]
37242        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
37243          ...blockProps,
37244          "aria-describedby": !isPlaceholder && !isLoading ? accessibleDescriptionId : undefined,
37245          children: [isLoading && !isHiddenByDefault && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37246            className: "wp-block-navigation__loading-indicator-container",
37247            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {
37248              className: "wp-block-navigation__loading-indicator"
37249            })
37250          }), (!isLoading || isHiddenByDefault) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37251            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleMenuDescription, {
37252              id: accessibleDescriptionId
37253            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResponsiveWrapper, {
37254              id: clientId,
37255              onToggle: setResponsiveMenuVisibility,
37256              hasIcon: hasIcon,
37257              icon: icon,
37258              isOpen: isResponsiveMenuOpen,
37259              isResponsive: isResponsive,
37260              isHiddenByDefault: isHiddenByDefault,
37261              overlayBackgroundColor: overlayBackgroundColor,
37262              overlayTextColor: overlayTextColor,
37263              children: isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationInnerBlocks, {
37264                clientId: clientId,
37265                hasCustomPlaceholder: !!CustomPlaceholder,
37266                templateLock: templateLock,
37267                orientation: orientation
37268              })
37269            })]
37270          })]
37271        })]
37272      })
37273    });
37274  }
37275  /* harmony default export */ const navigation_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)({
37276    textColor: 'color'
37277  }, {
37278    backgroundColor: 'color'
37279  }, {
37280    overlayBackgroundColor: 'color'
37281  }, {
37282    overlayTextColor: 'color'
37283  })(Navigation));
37284  
37285  ;// ./node_modules/@wordpress/block-library/build-module/navigation/save.js
37286  /**
37287   * WordPress dependencies
37288   */
37289  
37290  
37291  function navigation_save_save({
37292    attributes
37293  }) {
37294    if (attributes.ref) {
37295      // Avoid rendering inner blocks when a ref is defined.
37296      // When this id is defined the inner blocks are loaded from the
37297      // `wp_navigation` entity rather than the hard-coded block html.
37298      return;
37299    }
37300    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37301  }
37302  
37303  ;// ./node_modules/@wordpress/block-library/build-module/navigation/deprecated.js
37304  /**
37305   * WordPress dependencies
37306   */
37307  
37308  
37309  
37310  /**
37311   * Internal dependencies
37312   */
37313  
37314  
37315  const TYPOGRAPHY_PRESET_DEPRECATION_MAP = {
37316    fontStyle: 'var:preset|font-style|',
37317    fontWeight: 'var:preset|font-weight|',
37318    textDecoration: 'var:preset|text-decoration|',
37319    textTransform: 'var:preset|text-transform|'
37320  };
37321  const migrateIdToRef = ({
37322    navigationMenuId,
37323    ...attributes
37324  }) => {
37325    return {
37326      ...attributes,
37327      ref: navigationMenuId
37328    };
37329  };
37330  const deprecated_migrateWithLayout = attributes => {
37331    if (!!attributes.layout) {
37332      return attributes;
37333    }
37334    const {
37335      itemsJustification,
37336      orientation,
37337      ...updatedAttributes
37338    } = attributes;
37339    if (itemsJustification || orientation) {
37340      Object.assign(updatedAttributes, {
37341        layout: {
37342          type: 'flex',
37343          ...(itemsJustification && {
37344            justifyContent: itemsJustification
37345          }),
37346          ...(orientation && {
37347            orientation
37348          })
37349        }
37350      });
37351    }
37352    return updatedAttributes;
37353  };
37354  const navigation_deprecated_v6 = {
37355    attributes: {
37356      navigationMenuId: {
37357        type: 'number'
37358      },
37359      textColor: {
37360        type: 'string'
37361      },
37362      customTextColor: {
37363        type: 'string'
37364      },
37365      rgbTextColor: {
37366        type: 'string'
37367      },
37368      backgroundColor: {
37369        type: 'string'
37370      },
37371      customBackgroundColor: {
37372        type: 'string'
37373      },
37374      rgbBackgroundColor: {
37375        type: 'string'
37376      },
37377      showSubmenuIcon: {
37378        type: 'boolean',
37379        default: true
37380      },
37381      openSubmenusOnClick: {
37382        type: 'boolean',
37383        default: false
37384      },
37385      overlayMenu: {
37386        type: 'string',
37387        default: 'mobile'
37388      },
37389      __unstableLocation: {
37390        type: 'string'
37391      },
37392      overlayBackgroundColor: {
37393        type: 'string'
37394      },
37395      customOverlayBackgroundColor: {
37396        type: 'string'
37397      },
37398      overlayTextColor: {
37399        type: 'string'
37400      },
37401      customOverlayTextColor: {
37402        type: 'string'
37403      }
37404    },
37405    supports: {
37406      align: ['wide', 'full'],
37407      anchor: true,
37408      html: false,
37409      inserter: true,
37410      typography: {
37411        fontSize: true,
37412        lineHeight: true,
37413        __experimentalFontStyle: true,
37414        __experimentalFontWeight: true,
37415        __experimentalTextTransform: true,
37416        __experimentalFontFamily: true,
37417        __experimentalTextDecoration: true,
37418        __experimentalDefaultControls: {
37419          fontSize: true
37420        }
37421      },
37422      spacing: {
37423        blockGap: true,
37424        units: ['px', 'em', 'rem', 'vh', 'vw'],
37425        __experimentalDefaultControls: {
37426          blockGap: true
37427        }
37428      },
37429      layout: {
37430        allowSwitching: false,
37431        allowInheriting: false,
37432        default: {
37433          type: 'flex'
37434        }
37435      }
37436    },
37437    save() {
37438      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37439    },
37440    isEligible: ({
37441      navigationMenuId
37442    }) => !!navigationMenuId,
37443    migrate: migrateIdToRef
37444  };
37445  const navigation_deprecated_v5 = {
37446    attributes: {
37447      navigationMenuId: {
37448        type: 'number'
37449      },
37450      orientation: {
37451        type: 'string',
37452        default: 'horizontal'
37453      },
37454      textColor: {
37455        type: 'string'
37456      },
37457      customTextColor: {
37458        type: 'string'
37459      },
37460      rgbTextColor: {
37461        type: 'string'
37462      },
37463      backgroundColor: {
37464        type: 'string'
37465      },
37466      customBackgroundColor: {
37467        type: 'string'
37468      },
37469      rgbBackgroundColor: {
37470        type: 'string'
37471      },
37472      itemsJustification: {
37473        type: 'string'
37474      },
37475      showSubmenuIcon: {
37476        type: 'boolean',
37477        default: true
37478      },
37479      openSubmenusOnClick: {
37480        type: 'boolean',
37481        default: false
37482      },
37483      overlayMenu: {
37484        type: 'string',
37485        default: 'never'
37486      },
37487      __unstableLocation: {
37488        type: 'string'
37489      },
37490      overlayBackgroundColor: {
37491        type: 'string'
37492      },
37493      customOverlayBackgroundColor: {
37494        type: 'string'
37495      },
37496      overlayTextColor: {
37497        type: 'string'
37498      },
37499      customOverlayTextColor: {
37500        type: 'string'
37501      }
37502    },
37503    supports: {
37504      align: ['wide', 'full'],
37505      anchor: true,
37506      html: false,
37507      inserter: true,
37508      typography: {
37509        fontSize: true,
37510        lineHeight: true,
37511        __experimentalFontStyle: true,
37512        __experimentalFontWeight: true,
37513        __experimentalTextTransform: true,
37514        __experimentalFontFamily: true,
37515        __experimentalTextDecoration: true,
37516        __experimentalDefaultControls: {
37517          fontSize: true
37518        }
37519      },
37520      spacing: {
37521        blockGap: true,
37522        units: ['px', 'em', 'rem', 'vh', 'vw'],
37523        __experimentalDefaultControls: {
37524          blockGap: true
37525        }
37526      }
37527    },
37528    save() {
37529      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37530    },
37531    isEligible: ({
37532      itemsJustification,
37533      orientation
37534    }) => !!itemsJustification || !!orientation,
37535    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout)
37536  };
37537  const navigation_deprecated_v4 = {
37538    attributes: {
37539      orientation: {
37540        type: 'string',
37541        default: 'horizontal'
37542      },
37543      textColor: {
37544        type: 'string'
37545      },
37546      customTextColor: {
37547        type: 'string'
37548      },
37549      rgbTextColor: {
37550        type: 'string'
37551      },
37552      backgroundColor: {
37553        type: 'string'
37554      },
37555      customBackgroundColor: {
37556        type: 'string'
37557      },
37558      rgbBackgroundColor: {
37559        type: 'string'
37560      },
37561      itemsJustification: {
37562        type: 'string'
37563      },
37564      showSubmenuIcon: {
37565        type: 'boolean',
37566        default: true
37567      },
37568      openSubmenusOnClick: {
37569        type: 'boolean',
37570        default: false
37571      },
37572      overlayMenu: {
37573        type: 'string',
37574        default: 'never'
37575      },
37576      __unstableLocation: {
37577        type: 'string'
37578      },
37579      overlayBackgroundColor: {
37580        type: 'string'
37581      },
37582      customOverlayBackgroundColor: {
37583        type: 'string'
37584      },
37585      overlayTextColor: {
37586        type: 'string'
37587      },
37588      customOverlayTextColor: {
37589        type: 'string'
37590      }
37591    },
37592    supports: {
37593      align: ['wide', 'full'],
37594      anchor: true,
37595      html: false,
37596      inserter: true,
37597      typography: {
37598        fontSize: true,
37599        lineHeight: true,
37600        __experimentalFontStyle: true,
37601        __experimentalFontWeight: true,
37602        __experimentalTextTransform: true,
37603        __experimentalFontFamily: true,
37604        __experimentalTextDecoration: true
37605      },
37606      spacing: {
37607        blockGap: true,
37608        units: ['px', 'em', 'rem', 'vh', 'vw'],
37609        __experimentalDefaultControls: {
37610          blockGap: true
37611        }
37612      }
37613    },
37614    save() {
37615      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37616    },
37617    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family),
37618    isEligible({
37619      style
37620    }) {
37621      return style?.typography?.fontFamily;
37622    }
37623  };
37624  const migrateIsResponsive = function (attributes) {
37625    delete attributes.isResponsive;
37626    return {
37627      ...attributes,
37628      overlayMenu: 'mobile'
37629    };
37630  };
37631  const migrateTypographyPresets = function (attributes) {
37632    var _attributes$style$typ;
37633    return {
37634      ...attributes,
37635      style: {
37636        ...attributes.style,
37637        typography: Object.fromEntries(Object.entries((_attributes$style$typ = attributes.style.typography) !== null && _attributes$style$typ !== void 0 ? _attributes$style$typ : {}).map(([key, value]) => {
37638          const prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[key];
37639          if (prefix && value.startsWith(prefix)) {
37640            const newValue = value.slice(prefix.length);
37641            if ('textDecoration' === key && 'strikethrough' === newValue) {
37642              return [key, 'line-through'];
37643            }
37644            return [key, newValue];
37645          }
37646          return [key, value];
37647        }))
37648      }
37649    };
37650  };
37651  const navigation_deprecated_deprecated = [navigation_deprecated_v6, navigation_deprecated_v5, navigation_deprecated_v4,
37652  // Remove `isResponsive` attribute.
37653  {
37654    attributes: {
37655      orientation: {
37656        type: 'string',
37657        default: 'horizontal'
37658      },
37659      textColor: {
37660        type: 'string'
37661      },
37662      customTextColor: {
37663        type: 'string'
37664      },
37665      rgbTextColor: {
37666        type: 'string'
37667      },
37668      backgroundColor: {
37669        type: 'string'
37670      },
37671      customBackgroundColor: {
37672        type: 'string'
37673      },
37674      rgbBackgroundColor: {
37675        type: 'string'
37676      },
37677      itemsJustification: {
37678        type: 'string'
37679      },
37680      showSubmenuIcon: {
37681        type: 'boolean',
37682        default: true
37683      },
37684      openSubmenusOnClick: {
37685        type: 'boolean',
37686        default: false
37687      },
37688      isResponsive: {
37689        type: 'boolean',
37690        default: 'false'
37691      },
37692      __unstableLocation: {
37693        type: 'string'
37694      },
37695      overlayBackgroundColor: {
37696        type: 'string'
37697      },
37698      customOverlayBackgroundColor: {
37699        type: 'string'
37700      },
37701      overlayTextColor: {
37702        type: 'string'
37703      },
37704      customOverlayTextColor: {
37705        type: 'string'
37706      }
37707    },
37708    supports: {
37709      align: ['wide', 'full'],
37710      anchor: true,
37711      html: false,
37712      inserter: true,
37713      typography: {
37714        fontSize: true,
37715        lineHeight: true,
37716        __experimentalFontStyle: true,
37717        __experimentalFontWeight: true,
37718        __experimentalTextTransform: true,
37719        __experimentalFontFamily: true,
37720        __experimentalTextDecoration: true
37721      }
37722    },
37723    isEligible(attributes) {
37724      return attributes.isResponsive;
37725    },
37726    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateIsResponsive),
37727    save() {
37728      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37729    }
37730  }, {
37731    attributes: {
37732      orientation: {
37733        type: 'string'
37734      },
37735      textColor: {
37736        type: 'string'
37737      },
37738      customTextColor: {
37739        type: 'string'
37740      },
37741      rgbTextColor: {
37742        type: 'string'
37743      },
37744      backgroundColor: {
37745        type: 'string'
37746      },
37747      customBackgroundColor: {
37748        type: 'string'
37749      },
37750      rgbBackgroundColor: {
37751        type: 'string'
37752      },
37753      itemsJustification: {
37754        type: 'string'
37755      },
37756      showSubmenuIcon: {
37757        type: 'boolean',
37758        default: true
37759      }
37760    },
37761    supports: {
37762      align: ['wide', 'full'],
37763      anchor: true,
37764      html: false,
37765      inserter: true,
37766      fontSize: true,
37767      __experimentalFontStyle: true,
37768      __experimentalFontWeight: true,
37769      __experimentalTextTransform: true,
37770      color: true,
37771      __experimentalFontFamily: true,
37772      __experimentalTextDecoration: true
37773    },
37774    save() {
37775      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37776    },
37777    isEligible(attributes) {
37778      if (!attributes.style || !attributes.style.typography) {
37779        return false;
37780      }
37781      for (const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP) {
37782        const attributeValue = attributes.style.typography[styleAttribute];
37783        if (attributeValue && attributeValue.startsWith(TYPOGRAPHY_PRESET_DEPRECATION_MAP[styleAttribute])) {
37784          return true;
37785        }
37786      }
37787      return false;
37788    },
37789    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateTypographyPresets)
37790  }, {
37791    attributes: {
37792      className: {
37793        type: 'string'
37794      },
37795      textColor: {
37796        type: 'string'
37797      },
37798      rgbTextColor: {
37799        type: 'string'
37800      },
37801      backgroundColor: {
37802        type: 'string'
37803      },
37804      rgbBackgroundColor: {
37805        type: 'string'
37806      },
37807      fontSize: {
37808        type: 'string'
37809      },
37810      customFontSize: {
37811        type: 'number'
37812      },
37813      itemsJustification: {
37814        type: 'string'
37815      },
37816      showSubmenuIcon: {
37817        type: 'boolean'
37818      }
37819    },
37820    isEligible(attribute) {
37821      return attribute.rgbTextColor || attribute.rgbBackgroundColor;
37822    },
37823    supports: {
37824      align: ['wide', 'full'],
37825      anchor: true,
37826      html: false,
37827      inserter: true
37828    },
37829    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, attributes => {
37830      const {
37831        rgbTextColor,
37832        rgbBackgroundColor,
37833        ...restAttributes
37834      } = attributes;
37835      return {
37836        ...restAttributes,
37837        customTextColor: attributes.textColor ? undefined : attributes.rgbTextColor,
37838        customBackgroundColor: attributes.backgroundColor ? undefined : attributes.rgbBackgroundColor
37839      };
37840    }),
37841    save() {
37842      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37843    }
37844  }];
37845  /* harmony default export */ const navigation_deprecated = (navigation_deprecated_deprecated);
37846  
37847  ;// ./node_modules/@wordpress/block-library/build-module/navigation/index.js
37848  /**
37849   * WordPress dependencies
37850   */
37851  
37852  
37853  
37854  
37855  
37856  
37857  /**
37858   * Internal dependencies
37859   */
37860  
37861  const navigation_metadata = {
37862    $schema: "https://schemas.wp.org/trunk/block.json",
37863    apiVersion: 3,
37864    name: "core/navigation",
37865    title: "Navigation",
37866    category: "theme",
37867    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"],
37868    description: "A collection of blocks that allow visitors to get around your site.",
37869    keywords: ["menu", "navigation", "links"],
37870    textdomain: "default",
37871    attributes: {
37872      ref: {
37873        type: "number"
37874      },
37875      textColor: {
37876        type: "string"
37877      },
37878      customTextColor: {
37879        type: "string"
37880      },
37881      rgbTextColor: {
37882        type: "string"
37883      },
37884      backgroundColor: {
37885        type: "string"
37886      },
37887      customBackgroundColor: {
37888        type: "string"
37889      },
37890      rgbBackgroundColor: {
37891        type: "string"
37892      },
37893      showSubmenuIcon: {
37894        type: "boolean",
37895        "default": true
37896      },
37897      openSubmenusOnClick: {
37898        type: "boolean",
37899        "default": false
37900      },
37901      overlayMenu: {
37902        type: "string",
37903        "default": "mobile"
37904      },
37905      icon: {
37906        type: "string",
37907        "default": "handle"
37908      },
37909      hasIcon: {
37910        type: "boolean",
37911        "default": true
37912      },
37913      __unstableLocation: {
37914        type: "string"
37915      },
37916      overlayBackgroundColor: {
37917        type: "string"
37918      },
37919      customOverlayBackgroundColor: {
37920        type: "string"
37921      },
37922      overlayTextColor: {
37923        type: "string"
37924      },
37925      customOverlayTextColor: {
37926        type: "string"
37927      },
37928      maxNestingLevel: {
37929        type: "number",
37930        "default": 5
37931      },
37932      templateLock: {
37933        type: ["string", "boolean"],
37934        "enum": ["all", "insert", "contentOnly", false]
37935      }
37936    },
37937    providesContext: {
37938      textColor: "textColor",
37939      customTextColor: "customTextColor",
37940      backgroundColor: "backgroundColor",
37941      customBackgroundColor: "customBackgroundColor",
37942      overlayTextColor: "overlayTextColor",
37943      customOverlayTextColor: "customOverlayTextColor",
37944      overlayBackgroundColor: "overlayBackgroundColor",
37945      customOverlayBackgroundColor: "customOverlayBackgroundColor",
37946      fontSize: "fontSize",
37947      customFontSize: "customFontSize",
37948      showSubmenuIcon: "showSubmenuIcon",
37949      openSubmenusOnClick: "openSubmenusOnClick",
37950      style: "style",
37951      maxNestingLevel: "maxNestingLevel"
37952    },
37953    supports: {
37954      align: ["wide", "full"],
37955      ariaLabel: true,
37956      html: false,
37957      inserter: true,
37958      typography: {
37959        fontSize: true,
37960        lineHeight: true,
37961        __experimentalFontStyle: true,
37962        __experimentalFontWeight: true,
37963        __experimentalTextTransform: true,
37964        __experimentalFontFamily: true,
37965        __experimentalLetterSpacing: true,
37966        __experimentalTextDecoration: true,
37967        __experimentalSkipSerialization: ["textDecoration"],
37968        __experimentalDefaultControls: {
37969          fontSize: true
37970        }
37971      },
37972      spacing: {
37973        blockGap: true,
37974        units: ["px", "em", "rem", "vh", "vw"],
37975        __experimentalDefaultControls: {
37976          blockGap: true
37977        }
37978      },
37979      layout: {
37980        allowSwitching: false,
37981        allowInheriting: false,
37982        allowVerticalAlignment: false,
37983        allowSizingOnChildren: true,
37984        "default": {
37985          type: "flex"
37986        }
37987      },
37988      interactivity: true,
37989      renaming: false
37990    },
37991    editorStyle: "wp-block-navigation-editor",
37992    style: "wp-block-navigation"
37993  };
37994  
37995  
37996  
37997  const {
37998    name: navigation_name
37999  } = navigation_metadata;
38000  
38001  const navigation_settings = {
38002    icon: library_navigation,
38003    example: {
38004      attributes: {
38005        overlayMenu: 'never'
38006      },
38007      innerBlocks: [{
38008        name: 'core/navigation-link',
38009        attributes: {
38010          // translators: 'Home' as in a website's home page.
38011          label: (0,external_wp_i18n_namespaceObject.__)('Home'),
38012          url: 'https://make.wordpress.org/'
38013        }
38014      }, {
38015        name: 'core/navigation-link',
38016        attributes: {
38017          // translators: 'About' as in a website's about page.
38018          label: (0,external_wp_i18n_namespaceObject.__)('About'),
38019          url: 'https://make.wordpress.org/'
38020        }
38021      }, {
38022        name: 'core/navigation-link',
38023        attributes: {
38024          // translators: 'Contact' as in a website's contact page.
38025          label: (0,external_wp_i18n_namespaceObject.__)('Contact'),
38026          url: 'https://make.wordpress.org/'
38027        }
38028      }]
38029    },
38030    edit: navigation_edit,
38031    save: navigation_save_save,
38032    __experimentalLabel: ({
38033      ref
38034    }) => {
38035      if (!ref) {
38036        return;
38037      }
38038      const navigation = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_navigation', ref);
38039      if (!navigation?.title) {
38040        return;
38041      }
38042      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(navigation.title);
38043    },
38044    deprecated: navigation_deprecated
38045  };
38046  const navigation_init = () => initBlock({
38047    name: navigation_name,
38048    metadata: navigation_metadata,
38049    settings: navigation_settings
38050  });
38051  
38052  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/edit.js
38053  /**
38054   * External dependencies
38055   */
38056  
38057  
38058  /**
38059   * WordPress dependencies
38060   */
38061  
38062  
38063  
38064  
38065  
38066  
38067  
38068  
38069  
38070  
38071  
38072  
38073  
38074  
38075  /**
38076   * Internal dependencies
38077   */
38078  
38079  
38080  
38081  
38082  const navigation_link_edit_DEFAULT_BLOCK = {
38083    name: 'core/navigation-link'
38084  };
38085  
38086  /**
38087   * A React hook to determine if it's dragging within the target element.
38088   *
38089   * @typedef {import('@wordpress/element').RefObject} RefObject
38090   *
38091   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
38092   *
38093   * @return {boolean} Is dragging within the target element.
38094   */
38095  const useIsDraggingWithin = elementRef => {
38096    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
38097    (0,external_wp_element_namespaceObject.useEffect)(() => {
38098      const {
38099        ownerDocument
38100      } = elementRef.current;
38101      function handleDragStart(event) {
38102        // Check the first time when the dragging starts.
38103        handleDragEnter(event);
38104      }
38105  
38106      // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
38107      function handleDragEnd() {
38108        setIsDraggingWithin(false);
38109      }
38110      function handleDragEnter(event) {
38111        // Check if the current target is inside the item element.
38112        if (elementRef.current.contains(event.target)) {
38113          setIsDraggingWithin(true);
38114        } else {
38115          setIsDraggingWithin(false);
38116        }
38117      }
38118  
38119      // Bind these events to the document to catch all drag events.
38120      // Ideally, we can also use `event.relatedTarget`, but sadly that
38121      // doesn't work in Safari.
38122      ownerDocument.addEventListener('dragstart', handleDragStart);
38123      ownerDocument.addEventListener('dragend', handleDragEnd);
38124      ownerDocument.addEventListener('dragenter', handleDragEnter);
38125      return () => {
38126        ownerDocument.removeEventListener('dragstart', handleDragStart);
38127        ownerDocument.removeEventListener('dragend', handleDragEnd);
38128        ownerDocument.removeEventListener('dragenter', handleDragEnter);
38129      };
38130    }, [elementRef]);
38131    return isDraggingWithin;
38132  };
38133  const useIsInvalidLink = (kind, type, id) => {
38134    const isPostType = kind === 'post-type' || type === 'post' || type === 'page';
38135    const hasId = Number.isInteger(id);
38136    const postStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
38137      if (!isPostType) {
38138        return null;
38139      }
38140      const {
38141        getEntityRecord
38142      } = select(external_wp_coreData_namespaceObject.store);
38143      return getEntityRecord('postType', type, id)?.status;
38144    }, [isPostType, type, id]);
38145  
38146    // Check Navigation Link validity if:
38147    // 1. Link is 'post-type'.
38148    // 2. It has an id.
38149    // 3. It's neither null, nor undefined, as valid items might be either of those while loading.
38150    // If those conditions are met, check if
38151    // 1. The post status is published.
38152    // 2. The Navigation Link item has no label.
38153    // If either of those is true, invalidate.
38154    const isInvalid = isPostType && hasId && postStatus && 'trash' === postStatus;
38155    const isDraft = 'draft' === postStatus;
38156    return [isInvalid, isDraft];
38157  };
38158  function getMissingText(type) {
38159    let missingText = '';
38160    switch (type) {
38161      case 'post':
38162        /* translators: label for missing post in navigation link block */
38163        missingText = (0,external_wp_i18n_namespaceObject.__)('Select post');
38164        break;
38165      case 'page':
38166        /* translators: label for missing page in navigation link block */
38167        missingText = (0,external_wp_i18n_namespaceObject.__)('Select page');
38168        break;
38169      case 'category':
38170        /* translators: label for missing category in navigation link block */
38171        missingText = (0,external_wp_i18n_namespaceObject.__)('Select category');
38172        break;
38173      case 'tag':
38174        /* translators: label for missing tag in navigation link block */
38175        missingText = (0,external_wp_i18n_namespaceObject.__)('Select tag');
38176        break;
38177      default:
38178        /* translators: label for missing values in navigation link block */
38179        missingText = (0,external_wp_i18n_namespaceObject.__)('Add link');
38180    }
38181    return missingText;
38182  }
38183  
38184  /*
38185   * Warning, this duplicated in
38186   * packages/block-library/src/navigation-submenu/edit.js
38187   * Consider reusing this components for both blocks.
38188   */
38189  function Controls({
38190    attributes,
38191    setAttributes,
38192    setIsLabelFieldFocused
38193  }) {
38194    const {
38195      label,
38196      url,
38197      description,
38198      title,
38199      rel
38200    } = attributes;
38201    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
38202      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
38203      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38204        hasValue: () => !!label,
38205        label: (0,external_wp_i18n_namespaceObject.__)('Text'),
38206        onDeselect: () => setAttributes({
38207          label: ''
38208        }),
38209        isShownByDefault: true,
38210        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38211          __nextHasNoMarginBottom: true,
38212          __next40pxDefaultSize: true,
38213          label: (0,external_wp_i18n_namespaceObject.__)('Text'),
38214          value: label ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(label) : '',
38215          onChange: labelValue => {
38216            setAttributes({
38217              label: labelValue
38218            });
38219          },
38220          autoComplete: "off",
38221          onFocus: () => setIsLabelFieldFocused(true),
38222          onBlur: () => setIsLabelFieldFocused(false)
38223        })
38224      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38225        hasValue: () => !!url,
38226        label: (0,external_wp_i18n_namespaceObject.__)('Link'),
38227        onDeselect: () => setAttributes({
38228          url: ''
38229        }),
38230        isShownByDefault: true,
38231        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38232          __nextHasNoMarginBottom: true,
38233          __next40pxDefaultSize: true,
38234          label: (0,external_wp_i18n_namespaceObject.__)('Link'),
38235          value: url ? (0,external_wp_url_namespaceObject.safeDecodeURI)(url) : '',
38236          onChange: urlValue => {
38237            updateAttributes({
38238              url: urlValue
38239            }, setAttributes, attributes);
38240          },
38241          autoComplete: "off",
38242          type: "url"
38243        })
38244      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38245        hasValue: () => !!description,
38246        label: (0,external_wp_i18n_namespaceObject.__)('Description'),
38247        onDeselect: () => setAttributes({
38248          description: ''
38249        }),
38250        isShownByDefault: true,
38251        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
38252          __nextHasNoMarginBottom: true,
38253          label: (0,external_wp_i18n_namespaceObject.__)('Description'),
38254          value: description || '',
38255          onChange: descriptionValue => {
38256            setAttributes({
38257              description: descriptionValue
38258            });
38259          },
38260          help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
38261        })
38262      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38263        hasValue: () => !!title,
38264        label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
38265        onDeselect: () => setAttributes({
38266          title: ''
38267        }),
38268        isShownByDefault: true,
38269        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38270          __nextHasNoMarginBottom: true,
38271          __next40pxDefaultSize: true,
38272          label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
38273          value: title || '',
38274          onChange: titleValue => {
38275            setAttributes({
38276              title: titleValue
38277            });
38278          },
38279          autoComplete: "off",
38280          help: (0,external_wp_i18n_namespaceObject.__)('Additional information to help clarify the purpose of the link.')
38281        })
38282      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38283        hasValue: () => !!rel,
38284        label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
38285        onDeselect: () => setAttributes({
38286          rel: ''
38287        }),
38288        isShownByDefault: true,
38289        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38290          __nextHasNoMarginBottom: true,
38291          __next40pxDefaultSize: true,
38292          label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
38293          value: rel || '',
38294          onChange: relValue => {
38295            setAttributes({
38296              rel: relValue
38297            });
38298          },
38299          autoComplete: "off",
38300          help: (0,external_wp_i18n_namespaceObject.__)('The relationship of the linked URL as space-separated link types.')
38301        })
38302      })]
38303    });
38304  }
38305  function NavigationLinkEdit({
38306    attributes,
38307    isSelected,
38308    setAttributes,
38309    insertBlocksAfter,
38310    mergeBlocks,
38311    onReplace,
38312    context,
38313    clientId
38314  }) {
38315    const {
38316      id,
38317      label,
38318      type,
38319      url,
38320      description,
38321      kind
38322    } = attributes;
38323    const [isInvalid, isDraft] = useIsInvalidLink(kind, type, id);
38324    const {
38325      maxNestingLevel
38326    } = context;
38327    const {
38328      replaceBlock,
38329      __unstableMarkNextChangeAsNotPersistent,
38330      selectBlock,
38331      selectPreviousBlock
38332    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
38333    // Have the link editing ui open on mount when lacking a url and selected.
38334    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(isSelected && !url);
38335    // Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)
38336    const [openedBy, setOpenedBy] = (0,external_wp_element_namespaceObject.useState)(null);
38337    // Use internal state instead of a ref to make sure that the component
38338    // re-renders when the popover's anchor updates.
38339    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
38340    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
38341    const isDraggingWithin = useIsDraggingWithin(listItemRef);
38342    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add label…');
38343    const ref = (0,external_wp_element_namespaceObject.useRef)();
38344    const linkUIref = (0,external_wp_element_namespaceObject.useRef)();
38345    const prevUrl = (0,external_wp_compose_namespaceObject.usePrevious)(url);
38346  
38347    // Change the label using inspector causes rich text to change focus on firefox.
38348    // This is a workaround to keep the focus on the label field when label filed is focused we don't render the rich text.
38349    const [isLabelFieldFocused, setIsLabelFieldFocused] = (0,external_wp_element_namespaceObject.useState)(false);
38350    const {
38351      isAtMaxNesting,
38352      isTopLevelLink,
38353      isParentOfSelectedBlock,
38354      hasChildren
38355    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
38356      const {
38357        getBlockCount,
38358        getBlockName,
38359        getBlockRootClientId,
38360        hasSelectedInnerBlock,
38361        getBlockParentsByBlockName
38362      } = select(external_wp_blockEditor_namespaceObject.store);
38363      return {
38364        isAtMaxNesting: getBlockParentsByBlockName(clientId, ['core/navigation-link', 'core/navigation-submenu']).length >= maxNestingLevel,
38365        isTopLevelLink: getBlockName(getBlockRootClientId(clientId)) === 'core/navigation',
38366        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
38367        hasChildren: !!getBlockCount(clientId)
38368      };
38369    }, [clientId, maxNestingLevel]);
38370    const {
38371      getBlocks
38372    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
38373  
38374    /**
38375     * Transform to submenu block.
38376     */
38377    const transformToSubmenu = () => {
38378      let innerBlocks = getBlocks(clientId);
38379      if (innerBlocks.length === 0) {
38380        innerBlocks = [(0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')];
38381        selectBlock(innerBlocks[0].clientId);
38382      }
38383      const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
38384      replaceBlock(clientId, newSubmenu);
38385    };
38386    (0,external_wp_element_namespaceObject.useEffect)(() => {
38387      // If block has inner blocks, transform to Submenu.
38388      if (hasChildren) {
38389        // This side-effect should not create an undo level as those should
38390        // only be created via user interactions.
38391        __unstableMarkNextChangeAsNotPersistent();
38392        transformToSubmenu();
38393      }
38394    }, [hasChildren]);
38395  
38396    // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
38397    (0,external_wp_element_namespaceObject.useEffect)(() => {
38398      // We only want to do this when the URL has gone from nothing to a new URL AND the label looks like a URL
38399      if (!prevUrl && url && isLinkOpen && (0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
38400        // Focus and select the label text.
38401        selectLabelText();
38402      }
38403    }, [prevUrl, url, isLinkOpen, label]);
38404  
38405    /**
38406     * Focus the Link label text and select it.
38407     */
38408    function selectLabelText() {
38409      ref.current.focus();
38410      const {
38411        ownerDocument
38412      } = ref.current;
38413      const {
38414        defaultView
38415      } = ownerDocument;
38416      const selection = defaultView.getSelection();
38417      const range = ownerDocument.createRange();
38418      // Get the range of the current ref contents so we can add this range to the selection.
38419      range.selectNodeContents(ref.current);
38420      selection.removeAllRanges();
38421      selection.addRange(range);
38422    }
38423  
38424    /**
38425     * Removes the current link if set.
38426     */
38427    function removeLink() {
38428      // Reset all attributes that comprise the link.
38429      // It is critical that all attributes are reset
38430      // to their default values otherwise this may
38431      // in advertently trigger side effects because
38432      // the values will have "changed".
38433      setAttributes({
38434        url: undefined,
38435        label: undefined,
38436        id: undefined,
38437        kind: undefined,
38438        type: undefined,
38439        opensInNewTab: false
38440      });
38441  
38442      // Close the link editing UI.
38443      setIsLinkOpen(false);
38444    }
38445    const {
38446      textColor,
38447      customTextColor,
38448      backgroundColor,
38449      customBackgroundColor
38450    } = getColors(context, !isTopLevelLink);
38451    function onKeyDown(event) {
38452      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
38453        // Required to prevent the command center from opening,
38454        // as it shares the CMD+K shortcut.
38455        // See https://github.com/WordPress/gutenberg/pull/59845.
38456        event.preventDefault();
38457        // If this link is a child of a parent submenu item, the parent submenu item event will also open, closing this popover
38458        event.stopPropagation();
38459        setIsLinkOpen(true);
38460        setOpenedBy(ref.current);
38461      }
38462    }
38463    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
38464      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, listItemRef]),
38465      className: dist_clsx('wp-block-navigation-item', {
38466        'is-editing': isSelected || isParentOfSelectedBlock,
38467        'is-dragging-within': isDraggingWithin,
38468        'has-link': !!url,
38469        'has-child': hasChildren,
38470        'has-text-color': !!textColor || !!customTextColor,
38471        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
38472        'has-background': !!backgroundColor || customBackgroundColor,
38473        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor
38474      }),
38475      style: {
38476        color: !textColor && customTextColor,
38477        backgroundColor: !backgroundColor && customBackgroundColor
38478      },
38479      onKeyDown
38480    });
38481    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
38482      ...blockProps,
38483      className: 'remove-outline' // Remove the outline from the inner blocks container.
38484    }, {
38485      defaultBlock: navigation_link_edit_DEFAULT_BLOCK,
38486      directInsert: true,
38487      renderAppender: false
38488    });
38489    if (!url || isInvalid || isDraft) {
38490      blockProps.onClick = () => {
38491        setIsLinkOpen(true);
38492        setOpenedBy(ref.current);
38493      };
38494    }
38495    const classes = dist_clsx('wp-block-navigation-item__content', {
38496      'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft
38497    });
38498    const missingText = getMissingText(type);
38499    /* translators: Whether the navigation link is Invalid or a Draft. */
38500    const placeholderText = `($isInvalid ? (0,external_wp_i18n_namespaceObject.__)('Invalid') : (0,external_wp_i18n_namespaceObject.__)('Draft')})`;
38501    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38502      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
38503        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
38504          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
38505            name: "link",
38506            icon: library_link,
38507            title: (0,external_wp_i18n_namespaceObject.__)('Link'),
38508            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
38509            onClick: event => {
38510              setIsLinkOpen(true);
38511              setOpenedBy(event.currentTarget);
38512            }
38513          }), !isAtMaxNesting && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
38514            name: "submenu",
38515            icon: add_submenu,
38516            title: (0,external_wp_i18n_namespaceObject.__)('Add submenu'),
38517            onClick: transformToSubmenu
38518          })]
38519        })
38520      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
38521        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Controls, {
38522          attributes: attributes,
38523          setAttributes: setAttributes,
38524          setIsLabelFieldFocused: setIsLabelFieldFocused
38525        })
38526      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
38527        ...blockProps,
38528        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
38529          className: classes,
38530          children: [!url ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38531            className: "wp-block-navigation-link__placeholder-text",
38532            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38533              children: missingText
38534            })
38535          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38536            children: [!isInvalid && !isDraft && !isLabelFieldFocused && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38537              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
38538                ref: ref,
38539                identifier: "label",
38540                className: "wp-block-navigation-item__label",
38541                value: label,
38542                onChange: labelValue => setAttributes({
38543                  label: labelValue
38544                }),
38545                onMerge: mergeBlocks,
38546                onReplace: onReplace,
38547                __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')),
38548                "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
38549                placeholder: itemLabelPlaceholder,
38550                withoutInteractiveFormatting: true
38551              }), description && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38552                className: "wp-block-navigation-item__description",
38553                children: description
38554              })]
38555            }), (isInvalid || isDraft || isLabelFieldFocused) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38556              className: dist_clsx('wp-block-navigation-link__placeholder-text', 'wp-block-navigation-link__label', {
38557                'is-invalid': isInvalid,
38558                'is-draft': isDraft
38559              }),
38560              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38561                children:
38562                // Some attributes are stored in an escaped form. It's a legacy issue.
38563                // Ideally they would be stored in a raw, unescaped form.
38564                // Unescape is used here to "recover" the escaped characters
38565                // so they display without encoding.
38566                // See `updateAttributes` for more details.
38567                `${(0,external_wp_htmlEntities_namespaceObject.decodeEntities)(label)} $isInvalid || isDraft ? placeholderText : ''}`.trim()
38568              })
38569            })]
38570          }), isLinkOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
38571            ref: linkUIref,
38572            clientId: clientId,
38573            link: attributes,
38574            onClose: () => {
38575              // If there is no link then remove the auto-inserted block.
38576              // This avoids empty blocks which can provided a poor UX.
38577              if (!url) {
38578                // Fixes https://github.com/WordPress/gutenberg/issues/61361
38579                // There's a chance we're closing due to the user selecting the browse all button.
38580                // Only move focus if the focus is still within the popover ui. If it's not within
38581                // the popover, it's because something has taken the focus from the popover, and
38582                // we don't want to steal it back.
38583                if (linkUIref.current.contains(window.document.activeElement)) {
38584                  // Select the previous block to keep focus nearby
38585                  selectPreviousBlock(clientId, true);
38586                }
38587  
38588                // Remove the link.
38589                onReplace([]);
38590                return;
38591              }
38592              setIsLinkOpen(false);
38593              if (openedBy) {
38594                openedBy.focus();
38595                setOpenedBy(null);
38596              } else if (ref.current) {
38597                // select the ref when adding a new link
38598                ref.current.focus();
38599              } else {
38600                // Fallback
38601                selectPreviousBlock(clientId, true);
38602              }
38603            },
38604            anchor: popoverAnchor,
38605            onRemove: removeLink,
38606            onChange: updatedValue => {
38607              updateAttributes(updatedValue, setAttributes, attributes);
38608            }
38609          })]
38610        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38611          ...innerBlocksProps
38612        })]
38613      })]
38614    });
38615  }
38616  
38617  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/save.js
38618  /**
38619   * WordPress dependencies
38620   */
38621  
38622  
38623  function navigation_link_save_save() {
38624    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
38625  }
38626  
38627  ;// ./node_modules/@wordpress/icons/build-module/library/page.js
38628  /**
38629   * WordPress dependencies
38630   */
38631  
38632  
38633  const page = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
38634    xmlns: "http://www.w3.org/2000/svg",
38635    viewBox: "0 0 24 24",
38636    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38637      d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"
38638    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38639      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"
38640    })]
38641  });
38642  /* harmony default export */ const library_page = (page);
38643  
38644  ;// ./node_modules/@wordpress/icons/build-module/library/tag.js
38645  /**
38646   * WordPress dependencies
38647   */
38648  
38649  
38650  const tag = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
38651    xmlns: "http://www.w3.org/2000/svg",
38652    viewBox: "0 0 24 24",
38653    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38654      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"
38655    })
38656  });
38657  /* harmony default export */ const library_tag = (tag);
38658  
38659  ;// ./node_modules/@wordpress/icons/build-module/library/custom-post-type.js
38660  /**
38661   * WordPress dependencies
38662   */
38663  
38664  
38665  const customPostType = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
38666    xmlns: "http://www.w3.org/2000/svg",
38667    viewBox: "0 0 24 24",
38668    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38669      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"
38670    })
38671  });
38672  /* harmony default export */ const custom_post_type = (customPostType);
38673  
38674  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/hooks.js
38675  /**
38676   * WordPress dependencies
38677   */
38678  
38679  function getIcon(variationName) {
38680    switch (variationName) {
38681      case 'post':
38682        return post_list;
38683      case 'page':
38684        return library_page;
38685      case 'tag':
38686        return library_tag;
38687      case 'category':
38688        return library_category;
38689      default:
38690        return custom_post_type;
38691    }
38692  }
38693  function enhanceNavigationLinkVariations(settings, name) {
38694    if (name !== 'core/navigation-link') {
38695      return settings;
38696    }
38697  
38698    // Otherwise decorate server passed variations with an icon and isActive function.
38699    if (settings.variations) {
38700      const isActive = (blockAttributes, variationAttributes) => {
38701        return blockAttributes.type === variationAttributes.type;
38702      };
38703      const variations = settings.variations.map(variation => {
38704        return {
38705          ...variation,
38706          ...(!variation.icon && {
38707            icon: getIcon(variation.name)
38708          }),
38709          ...(!variation.isActive && {
38710            isActive
38711          })
38712        };
38713      });
38714      return {
38715        ...settings,
38716        variations
38717      };
38718    }
38719    return settings;
38720  }
38721  
38722  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/transforms.js
38723  /**
38724   * WordPress dependencies
38725   */
38726  
38727  const navigation_link_transforms_transforms = {
38728    from: [{
38729      type: 'block',
38730      blocks: ['core/site-logo'],
38731      transform: () => {
38732        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38733      }
38734    }, {
38735      type: 'block',
38736      blocks: ['core/spacer'],
38737      transform: () => {
38738        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38739      }
38740    }, {
38741      type: 'block',
38742      blocks: ['core/home-link'],
38743      transform: () => {
38744        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38745      }
38746    }, {
38747      type: 'block',
38748      blocks: ['core/social-links'],
38749      transform: () => {
38750        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38751      }
38752    }, {
38753      type: 'block',
38754      blocks: ['core/search'],
38755      transform: () => {
38756        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38757      }
38758    }, {
38759      type: 'block',
38760      blocks: ['core/page-list'],
38761      transform: () => {
38762        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38763      }
38764    }, {
38765      type: 'block',
38766      blocks: ['core/buttons'],
38767      transform: () => {
38768        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38769      }
38770    }],
38771    to: [{
38772      type: 'block',
38773      blocks: ['core/navigation-submenu'],
38774      transform: (attributes, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks)
38775    }, {
38776      type: 'block',
38777      blocks: ['core/spacer'],
38778      transform: () => {
38779        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
38780      }
38781    }, {
38782      type: 'block',
38783      blocks: ['core/site-logo'],
38784      transform: () => {
38785        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
38786      }
38787    }, {
38788      type: 'block',
38789      blocks: ['core/home-link'],
38790      transform: () => {
38791        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
38792      }
38793    }, {
38794      type: 'block',
38795      blocks: ['core/social-links'],
38796      transform: () => {
38797        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
38798      }
38799    }, {
38800      type: 'block',
38801      blocks: ['core/search'],
38802      transform: () => {
38803        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search', {
38804          showLabel: false,
38805          buttonUseIcon: true,
38806          buttonPosition: 'button-inside'
38807        });
38808      }
38809    }, {
38810      type: 'block',
38811      blocks: ['core/page-list'],
38812      transform: () => {
38813        return (0,external_wp_blocks_namespaceObject.createBlock)('core/page-list');
38814      }
38815    }, {
38816      type: 'block',
38817      blocks: ['core/buttons'],
38818      transform: ({
38819        label,
38820        url,
38821        rel,
38822        title,
38823        opensInNewTab
38824      }) => {
38825        return (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
38826          text: label,
38827          url,
38828          rel,
38829          title,
38830          linkTarget: opensInNewTab ? '_blank' : undefined
38831        })]);
38832      }
38833    }]
38834  };
38835  /* harmony default export */ const navigation_link_transforms = (navigation_link_transforms_transforms);
38836  
38837  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
38838  /**
38839   * WordPress dependencies
38840   */
38841  
38842  
38843  
38844  
38845  
38846  /**
38847   * Internal dependencies
38848   */
38849  
38850  const navigation_link_metadata = {
38851    $schema: "https://schemas.wp.org/trunk/block.json",
38852    apiVersion: 3,
38853    name: "core/navigation-link",
38854    title: "Custom Link",
38855    category: "design",
38856    parent: ["core/navigation"],
38857    allowedBlocks: ["core/navigation-link", "core/navigation-submenu", "core/page-list"],
38858    description: "Add a page, link, or another item to your navigation.",
38859    textdomain: "default",
38860    attributes: {
38861      label: {
38862        type: "string"
38863      },
38864      type: {
38865        type: "string"
38866      },
38867      description: {
38868        type: "string"
38869      },
38870      rel: {
38871        type: "string"
38872      },
38873      id: {
38874        type: "number"
38875      },
38876      opensInNewTab: {
38877        type: "boolean",
38878        "default": false
38879      },
38880      url: {
38881        type: "string"
38882      },
38883      title: {
38884        type: "string"
38885      },
38886      kind: {
38887        type: "string"
38888      },
38889      isTopLevelLink: {
38890        type: "boolean"
38891      }
38892    },
38893    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
38894    supports: {
38895      reusable: false,
38896      html: false,
38897      __experimentalSlashInserter: true,
38898      typography: {
38899        fontSize: true,
38900        lineHeight: true,
38901        __experimentalFontFamily: true,
38902        __experimentalFontWeight: true,
38903        __experimentalFontStyle: true,
38904        __experimentalTextTransform: true,
38905        __experimentalTextDecoration: true,
38906        __experimentalLetterSpacing: true,
38907        __experimentalDefaultControls: {
38908          fontSize: true
38909        }
38910      },
38911      renaming: false,
38912      interactivity: {
38913        clientNavigation: true
38914      }
38915    },
38916    editorStyle: "wp-block-navigation-link-editor",
38917    style: "wp-block-navigation-link"
38918  };
38919  
38920  
38921  
38922  
38923  
38924  const {
38925    name: navigation_link_name
38926  } = navigation_link_metadata;
38927  
38928  const navigation_link_settings = {
38929    icon: custom_link,
38930    __experimentalLabel: ({
38931      label
38932    }) => label,
38933    merge(leftAttributes, {
38934      label: rightLabel = ''
38935    }) {
38936      return {
38937        ...leftAttributes,
38938        label: leftAttributes.label + rightLabel
38939      };
38940    },
38941    edit: NavigationLinkEdit,
38942    save: navigation_link_save_save,
38943    example: {
38944      attributes: {
38945        label: (0,external_wp_i18n_namespaceObject._x)('Example Link', 'navigation link preview example'),
38946        url: 'https://example.com'
38947      }
38948    },
38949    deprecated: [{
38950      isEligible(attributes) {
38951        return attributes.nofollow;
38952      },
38953      attributes: {
38954        label: {
38955          type: 'string'
38956        },
38957        type: {
38958          type: 'string'
38959        },
38960        nofollow: {
38961          type: 'boolean'
38962        },
38963        description: {
38964          type: 'string'
38965        },
38966        id: {
38967          type: 'number'
38968        },
38969        opensInNewTab: {
38970          type: 'boolean',
38971          default: false
38972        },
38973        url: {
38974          type: 'string'
38975        }
38976      },
38977      migrate({
38978        nofollow,
38979        ...rest
38980      }) {
38981        return {
38982          rel: nofollow ? 'nofollow' : '',
38983          ...rest
38984        };
38985      },
38986      save() {
38987        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
38988      }
38989    }],
38990    transforms: navigation_link_transforms
38991  };
38992  const navigation_link_init = () => {
38993    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);
38994    return initBlock({
38995      name: navigation_link_name,
38996      metadata: navigation_link_metadata,
38997      settings: navigation_link_settings
38998    });
38999  };
39000  
39001  ;// ./node_modules/@wordpress/icons/build-module/library/remove-submenu.js
39002  /**
39003   * WordPress dependencies
39004   */
39005  
39006  
39007  const removeSubmenu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
39008    xmlns: "http://www.w3.org/2000/svg",
39009    viewBox: "0 0 24 24",
39010    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39011      fillRule: "evenodd",
39012      clipRule: "evenodd",
39013      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"
39014    })
39015  });
39016  /* harmony default export */ const remove_submenu = (removeSubmenu);
39017  
39018  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/icons.js
39019  /**
39020   * WordPress dependencies
39021   */
39022  
39023  
39024  const ItemSubmenuIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
39025    xmlns: "http://www.w3.org/2000/svg",
39026    width: "12",
39027    height: "12",
39028    viewBox: "0 0 12 12",
39029    fill: "none",
39030    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
39031      d: "M1.50002 4L6.00002 8L10.5 4",
39032      strokeWidth: "1.5"
39033    })
39034  });
39035  
39036  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/edit.js
39037  /**
39038   * External dependencies
39039   */
39040  
39041  
39042  /**
39043   * WordPress dependencies
39044   */
39045  
39046  
39047  
39048  
39049  
39050  
39051  
39052  
39053  
39054  
39055  
39056  
39057  /**
39058   * Internal dependencies
39059   */
39060  
39061  
39062  
39063  
39064  
39065  
39066  const ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu', 'core/page-list'];
39067  const navigation_submenu_edit_DEFAULT_BLOCK = {
39068    name: 'core/navigation-link'
39069  };
39070  
39071  /**
39072   * A React hook to determine if it's dragging within the target element.
39073   *
39074   * @typedef {import('@wordpress/element').RefObject} RefObject
39075   *
39076   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
39077   *
39078   * @return {boolean} Is dragging within the target element.
39079   */
39080  const edit_useIsDraggingWithin = elementRef => {
39081    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
39082    (0,external_wp_element_namespaceObject.useEffect)(() => {
39083      const {
39084        ownerDocument
39085      } = elementRef.current;
39086      function handleDragStart(event) {
39087        // Check the first time when the dragging starts.
39088        handleDragEnter(event);
39089      }
39090  
39091      // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
39092      function handleDragEnd() {
39093        setIsDraggingWithin(false);
39094      }
39095      function handleDragEnter(event) {
39096        // Check if the current target is inside the item element.
39097        if (elementRef.current.contains(event.target)) {
39098          setIsDraggingWithin(true);
39099        } else {
39100          setIsDraggingWithin(false);
39101        }
39102      }
39103  
39104      // Bind these events to the document to catch all drag events.
39105      // Ideally, we can also use `event.relatedTarget`, but sadly that
39106      // doesn't work in Safari.
39107      ownerDocument.addEventListener('dragstart', handleDragStart);
39108      ownerDocument.addEventListener('dragend', handleDragEnd);
39109      ownerDocument.addEventListener('dragenter', handleDragEnter);
39110      return () => {
39111        ownerDocument.removeEventListener('dragstart', handleDragStart);
39112        ownerDocument.removeEventListener('dragend', handleDragEnd);
39113        ownerDocument.removeEventListener('dragenter', handleDragEnter);
39114      };
39115    }, []);
39116    return isDraggingWithin;
39117  };
39118  
39119  /**
39120   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
39121   */
39122  
39123  /**
39124   * Navigation Link Block Attributes
39125   *
39126   * @typedef {Object} WPNavigationLinkBlockAttributes
39127   *
39128   * @property {string}               [label]         Link text.
39129   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
39130   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
39131   * @property {string}               [rel]           The relationship of the linked URL.
39132   * @property {number}               [id]            A post or term id.
39133   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
39134   * @property {string}               [url]           Link href.
39135   * @property {string}               [title]         Link title attribute.
39136   */
39137  
39138  function NavigationSubmenuEdit({
39139    attributes,
39140    isSelected,
39141    setAttributes,
39142    mergeBlocks,
39143    onReplace,
39144    context,
39145    clientId
39146  }) {
39147    const {
39148      label,
39149      url,
39150      description,
39151      rel,
39152      title
39153    } = attributes;
39154    const {
39155      showSubmenuIcon,
39156      maxNestingLevel,
39157      openSubmenusOnClick
39158    } = context;
39159    const {
39160      __unstableMarkNextChangeAsNotPersistent,
39161      replaceBlock,
39162      selectBlock
39163    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
39164    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
39165    // Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)
39166    const [openedBy, setOpenedBy] = (0,external_wp_element_namespaceObject.useState)(null);
39167    // Use internal state instead of a ref to make sure that the component
39168    // re-renders when the popover's anchor updates.
39169    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
39170    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
39171    const isDraggingWithin = edit_useIsDraggingWithin(listItemRef);
39172    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add text…');
39173    const ref = (0,external_wp_element_namespaceObject.useRef)();
39174    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
39175    const {
39176      parentCount,
39177      isParentOfSelectedBlock,
39178      isImmediateParentOfSelectedBlock,
39179      hasChildren,
39180      selectedBlockHasChildren,
39181      onlyDescendantIsEmptyLink
39182    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
39183      const {
39184        hasSelectedInnerBlock,
39185        getSelectedBlockClientId,
39186        getBlockParentsByBlockName,
39187        getBlock,
39188        getBlockCount,
39189        getBlockOrder
39190      } = select(external_wp_blockEditor_namespaceObject.store);
39191      let _onlyDescendantIsEmptyLink;
39192      const selectedBlockId = getSelectedBlockClientId();
39193      const selectedBlockChildren = getBlockOrder(selectedBlockId);
39194  
39195      // Check for a single descendant in the submenu. If that block
39196      // is a link block in a "placeholder" state with no label then
39197      // we can consider as an "empty" link.
39198      if (selectedBlockChildren?.length === 1) {
39199        const singleBlock = getBlock(selectedBlockChildren[0]);
39200        _onlyDescendantIsEmptyLink = singleBlock?.name === 'core/navigation-link' && !singleBlock?.attributes?.label;
39201      }
39202      return {
39203        parentCount: getBlockParentsByBlockName(clientId, 'core/navigation-submenu').length,
39204        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
39205        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
39206        hasChildren: !!getBlockCount(clientId),
39207        selectedBlockHasChildren: !!selectedBlockChildren?.length,
39208        onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink
39209      };
39210    }, [clientId]);
39211    const prevHasChildren = (0,external_wp_compose_namespaceObject.usePrevious)(hasChildren);
39212  
39213    // Show the LinkControl on mount if the URL is empty
39214    // ( When adding a new menu item)
39215    // This can't be done in the useState call because it conflicts
39216    // with the autofocus behavior of the BlockListBlock component.
39217    (0,external_wp_element_namespaceObject.useEffect)(() => {
39218      if (!openSubmenusOnClick && !url) {
39219        setIsLinkOpen(true);
39220      }
39221    }, []);
39222  
39223    /**
39224     * The hook shouldn't be necessary but due to a focus loss happening
39225     * when selecting a suggestion in the link popover, we force close on block unselection.
39226     */
39227    (0,external_wp_element_namespaceObject.useEffect)(() => {
39228      if (!isSelected) {
39229        setIsLinkOpen(false);
39230      }
39231    }, [isSelected]);
39232  
39233    // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
39234    (0,external_wp_element_namespaceObject.useEffect)(() => {
39235      if (isLinkOpen && url) {
39236        // Does this look like a URL and have something TLD-ish?
39237        if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
39238          // Focus and select the label text.
39239          selectLabelText();
39240        }
39241      }
39242    }, [url]);
39243  
39244    /**
39245     * Focus the Link label text and select it.
39246     */
39247    function selectLabelText() {
39248      ref.current.focus();
39249      const {
39250        ownerDocument
39251      } = ref.current;
39252      const {
39253        defaultView
39254      } = ownerDocument;
39255      const selection = defaultView.getSelection();
39256      const range = ownerDocument.createRange();
39257      // Get the range of the current ref contents so we can add this range to the selection.
39258      range.selectNodeContents(ref.current);
39259      selection.removeAllRanges();
39260      selection.addRange(range);
39261    }
39262    const {
39263      textColor,
39264      customTextColor,
39265      backgroundColor,
39266      customBackgroundColor
39267    } = getColors(context, parentCount > 0);
39268    function onKeyDown(event) {
39269      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
39270        // Required to prevent the command center from opening,
39271        // as it shares the CMD+K shortcut.
39272        // See https://github.com/WordPress/gutenberg/pull/59845.
39273        event.preventDefault();
39274        // If we don't stop propagation, this event bubbles up to the parent submenu item
39275        event.stopPropagation();
39276        setIsLinkOpen(true);
39277        setOpenedBy(ref.current);
39278      }
39279    }
39280    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
39281      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, listItemRef]),
39282      className: dist_clsx('wp-block-navigation-item', {
39283        'is-editing': isSelected || isParentOfSelectedBlock,
39284        'is-dragging-within': isDraggingWithin,
39285        'has-link': !!url,
39286        'has-child': hasChildren,
39287        'has-text-color': !!textColor || !!customTextColor,
39288        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
39289        'has-background': !!backgroundColor || customBackgroundColor,
39290        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor,
39291        'open-on-click': openSubmenusOnClick
39292      }),
39293      style: {
39294        color: !textColor && customTextColor,
39295        backgroundColor: !backgroundColor && customBackgroundColor
39296      },
39297      onKeyDown
39298    });
39299  
39300    // Always use overlay colors for submenus.
39301    const innerBlocksColors = getColors(context, true);
39302    const allowedBlocks = parentCount >= maxNestingLevel ? ALLOWED_BLOCKS.filter(blockName => blockName !== 'core/navigation-submenu') : ALLOWED_BLOCKS;
39303    const navigationChildBlockProps = getNavigationChildBlockProps(innerBlocksColors);
39304    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(navigationChildBlockProps, {
39305      allowedBlocks,
39306      defaultBlock: navigation_submenu_edit_DEFAULT_BLOCK,
39307      directInsert: true,
39308      // Ensure block toolbar is not too far removed from item
39309      // being edited.
39310      // see: https://github.com/WordPress/gutenberg/pull/34615.
39311      __experimentalCaptureToolbars: true,
39312      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren ||
39313      // Show the appender while dragging to allow inserting element between item and the appender.
39314      hasChildren ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false
39315    });
39316    const ParentElement = openSubmenusOnClick ? 'button' : 'a';
39317    function transformToLink() {
39318      const newLinkBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes);
39319      replaceBlock(clientId, newLinkBlock);
39320    }
39321    (0,external_wp_element_namespaceObject.useEffect)(() => {
39322      // If block becomes empty, transform to Navigation Link.
39323      if (!hasChildren && prevHasChildren) {
39324        // This side-effect should not create an undo level as those should
39325        // only be created via user interactions.
39326        __unstableMarkNextChangeAsNotPersistent();
39327        transformToLink();
39328      }
39329    }, [hasChildren, prevHasChildren]);
39330    const canConvertToLink = !selectedBlockHasChildren || onlyDescendantIsEmptyLink;
39331    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
39332      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
39333        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
39334          children: [!openSubmenusOnClick && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
39335            name: "link",
39336            icon: library_link,
39337            title: (0,external_wp_i18n_namespaceObject.__)('Link'),
39338            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
39339            onClick: event => {
39340              setIsLinkOpen(true);
39341              setOpenedBy(event.currentTarget);
39342            }
39343          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
39344            name: "revert",
39345            icon: remove_submenu,
39346            title: (0,external_wp_i18n_namespaceObject.__)('Convert to Link'),
39347            onClick: transformToLink,
39348            className: "wp-block-navigation__submenu__revert",
39349            disabled: !canConvertToLink
39350          })]
39351        })
39352      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
39353        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
39354          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
39355          resetAll: () => {
39356            setAttributes({
39357              label: '',
39358              url: '',
39359              description: '',
39360              title: '',
39361              rel: ''
39362            });
39363          },
39364          dropdownMenuProps: dropdownMenuProps,
39365          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39366            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
39367            isShownByDefault: true,
39368            hasValue: () => !!label,
39369            onDeselect: () => setAttributes({
39370              label: ''
39371            }),
39372            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39373              __nextHasNoMarginBottom: true,
39374              __next40pxDefaultSize: true,
39375              value: label || '',
39376              onChange: labelValue => {
39377                setAttributes({
39378                  label: labelValue
39379                });
39380              },
39381              label: (0,external_wp_i18n_namespaceObject.__)('Text'),
39382              autoComplete: "off"
39383            })
39384          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39385            label: (0,external_wp_i18n_namespaceObject.__)('Link'),
39386            isShownByDefault: true,
39387            hasValue: () => !!url,
39388            onDeselect: () => setAttributes({
39389              url: ''
39390            }),
39391            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39392              __nextHasNoMarginBottom: true,
39393              __next40pxDefaultSize: true,
39394              value: url || '',
39395              onChange: urlValue => {
39396                setAttributes({
39397                  url: urlValue
39398                });
39399              },
39400              label: (0,external_wp_i18n_namespaceObject.__)('Link'),
39401              autoComplete: "off",
39402              type: "url"
39403            })
39404          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39405            label: (0,external_wp_i18n_namespaceObject.__)('Description'),
39406            isShownByDefault: true,
39407            hasValue: () => !!description,
39408            onDeselect: () => setAttributes({
39409              description: ''
39410            }),
39411            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
39412              __nextHasNoMarginBottom: true,
39413              value: description || '',
39414              onChange: descriptionValue => {
39415                setAttributes({
39416                  description: descriptionValue
39417                });
39418              },
39419              label: (0,external_wp_i18n_namespaceObject.__)('Description'),
39420              help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
39421            })
39422          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39423            label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
39424            isShownByDefault: true,
39425            hasValue: () => !!title,
39426            onDeselect: () => setAttributes({
39427              title: ''
39428            }),
39429            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39430              __nextHasNoMarginBottom: true,
39431              __next40pxDefaultSize: true,
39432              value: title || '',
39433              onChange: titleValue => {
39434                setAttributes({
39435                  title: titleValue
39436                });
39437              },
39438              label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
39439              autoComplete: "off",
39440              help: (0,external_wp_i18n_namespaceObject.__)('Additional information to help clarify the purpose of the link.')
39441            })
39442          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39443            label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
39444            isShownByDefault: true,
39445            hasValue: () => !!rel,
39446            onDeselect: () => setAttributes({
39447              rel: ''
39448            }),
39449            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39450              __nextHasNoMarginBottom: true,
39451              __next40pxDefaultSize: true,
39452              value: rel || '',
39453              onChange: relValue => {
39454                setAttributes({
39455                  rel: relValue
39456                });
39457              },
39458              label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
39459              autoComplete: "off",
39460              help: (0,external_wp_i18n_namespaceObject.__)('The relationship of the linked URL as space-separated link types.')
39461            })
39462          })]
39463        })
39464      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
39465        ...blockProps,
39466        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ParentElement, {
39467          className: "wp-block-navigation-item__content",
39468          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
39469            ref: ref,
39470            identifier: "label",
39471            className: "wp-block-navigation-item__label",
39472            value: label,
39473            onChange: labelValue => setAttributes({
39474              label: labelValue
39475            }),
39476            onMerge: mergeBlocks,
39477            onReplace: onReplace,
39478            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
39479            placeholder: itemLabelPlaceholder,
39480            withoutInteractiveFormatting: true,
39481            onClick: () => {
39482              if (!openSubmenusOnClick && !url) {
39483                setIsLinkOpen(true);
39484                setOpenedBy(ref.current);
39485              }
39486            }
39487          }), description && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39488            className: "wp-block-navigation-item__description",
39489            children: description
39490          }), !openSubmenusOnClick && isLinkOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
39491            clientId: clientId,
39492            link: attributes,
39493            onClose: () => {
39494              setIsLinkOpen(false);
39495              if (openedBy) {
39496                openedBy.focus();
39497                setOpenedBy(null);
39498              } else {
39499                selectBlock(clientId);
39500              }
39501            },
39502            anchor: popoverAnchor,
39503            onRemove: () => {
39504              setAttributes({
39505                url: ''
39506              });
39507              (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
39508            },
39509            onChange: updatedValue => {
39510              updateAttributes(updatedValue, setAttributes, attributes);
39511            }
39512          })]
39513        }), (showSubmenuIcon || openSubmenusOnClick) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39514          className: "wp-block-navigation__submenu-icon",
39515          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ItemSubmenuIcon, {})
39516        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39517          ...innerBlocksProps
39518        })]
39519      })]
39520    });
39521  }
39522  
39523  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/save.js
39524  /**
39525   * WordPress dependencies
39526   */
39527  
39528  
39529  function navigation_submenu_save_save() {
39530    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
39531  }
39532  
39533  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/transforms.js
39534  /**
39535   * WordPress dependencies
39536   */
39537  
39538  const navigation_submenu_transforms_transforms = {
39539    to: [{
39540      type: 'block',
39541      blocks: ['core/navigation-link'],
39542      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39543      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes)
39544    }, {
39545      type: 'block',
39546      blocks: ['core/spacer'],
39547      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39548      transform: () => {
39549        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
39550      }
39551    }, {
39552      type: 'block',
39553      blocks: ['core/site-logo'],
39554      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39555      transform: () => {
39556        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
39557      }
39558    }, {
39559      type: 'block',
39560      blocks: ['core/home-link'],
39561      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39562      transform: () => {
39563        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
39564      }
39565    }, {
39566      type: 'block',
39567      blocks: ['core/social-links'],
39568      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39569      transform: () => {
39570        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
39571      }
39572    }, {
39573      type: 'block',
39574      blocks: ['core/search'],
39575      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39576      transform: () => {
39577        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search');
39578      }
39579    }]
39580  };
39581  /* harmony default export */ const navigation_submenu_transforms = (navigation_submenu_transforms_transforms);
39582  
39583  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
39584  /**
39585   * WordPress dependencies
39586   */
39587  
39588  
39589  
39590  /**
39591   * Internal dependencies
39592   */
39593  
39594  const navigation_submenu_metadata = {
39595    $schema: "https://schemas.wp.org/trunk/block.json",
39596    apiVersion: 3,
39597    name: "core/navigation-submenu",
39598    title: "Submenu",
39599    category: "design",
39600    parent: ["core/navigation"],
39601    description: "Add a submenu to your navigation.",
39602    textdomain: "default",
39603    attributes: {
39604      label: {
39605        type: "string"
39606      },
39607      type: {
39608        type: "string"
39609      },
39610      description: {
39611        type: "string"
39612      },
39613      rel: {
39614        type: "string"
39615      },
39616      id: {
39617        type: "number"
39618      },
39619      opensInNewTab: {
39620        type: "boolean",
39621        "default": false
39622      },
39623      url: {
39624        type: "string"
39625      },
39626      title: {
39627        type: "string"
39628      },
39629      kind: {
39630        type: "string"
39631      },
39632      isTopLevelItem: {
39633        type: "boolean"
39634      }
39635    },
39636    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
39637    supports: {
39638      reusable: false,
39639      html: false,
39640      typography: {
39641        fontSize: true,
39642        lineHeight: true,
39643        __experimentalFontFamily: true,
39644        __experimentalFontWeight: true,
39645        __experimentalFontStyle: true,
39646        __experimentalTextTransform: true,
39647        __experimentalTextDecoration: true,
39648        __experimentalLetterSpacing: true,
39649        __experimentalDefaultControls: {
39650          fontSize: true
39651        }
39652      },
39653      interactivity: {
39654        clientNavigation: true
39655      }
39656    },
39657    editorStyle: "wp-block-navigation-submenu-editor",
39658    style: "wp-block-navigation-submenu"
39659  };
39660  
39661  
39662  
39663  const {
39664    name: navigation_submenu_name
39665  } = navigation_submenu_metadata;
39666  
39667  const navigation_submenu_settings = {
39668    icon: ({
39669      context
39670    }) => {
39671      if (context === 'list-view') {
39672        return library_page;
39673      }
39674      return add_submenu;
39675    },
39676    __experimentalLabel(attributes, {
39677      context
39678    }) {
39679      const {
39680        label
39681      } = attributes;
39682      const customName = attributes?.metadata?.name;
39683  
39684      // In the list view, use the block's menu label as the label.
39685      // If the menu label is empty, fall back to the default label.
39686      if (context === 'list-view' && (customName || label)) {
39687        return attributes?.metadata?.name || label;
39688      }
39689      return label;
39690    },
39691    edit: NavigationSubmenuEdit,
39692    example: {
39693      attributes: {
39694        label: (0,external_wp_i18n_namespaceObject._x)('About', 'Example link text for Navigation Submenu'),
39695        type: 'page'
39696      }
39697    },
39698    save: navigation_submenu_save_save,
39699    transforms: navigation_submenu_transforms
39700  };
39701  const navigation_submenu_init = () => initBlock({
39702    name: navigation_submenu_name,
39703    metadata: navigation_submenu_metadata,
39704    settings: navigation_submenu_settings
39705  });
39706  
39707  ;// ./node_modules/@wordpress/icons/build-module/library/page-break.js
39708  /**
39709   * WordPress dependencies
39710   */
39711  
39712  
39713  const pageBreak = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
39714    xmlns: "http://www.w3.org/2000/svg",
39715    viewBox: "0 0 24 24",
39716    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39717      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"
39718    })
39719  });
39720  /* harmony default export */ const page_break = (pageBreak);
39721  
39722  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js
39723  /**
39724   * WordPress dependencies
39725   */
39726  
39727  
39728  
39729  function NextPageEdit() {
39730    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39731      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
39732      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39733        children: (0,external_wp_i18n_namespaceObject.__)('Page break')
39734      })
39735    });
39736  }
39737  
39738  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/save.js
39739  /**
39740   * WordPress dependencies
39741   */
39742  
39743  
39744  function nextpage_save_save() {
39745    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
39746      children: '<!--nextpage-->'
39747    });
39748  }
39749  
39750  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js
39751  /**
39752   * WordPress dependencies
39753   */
39754  
39755  const nextpage_transforms_transforms = {
39756    from: [{
39757      type: 'raw',
39758      schema: {
39759        'wp-block': {
39760          attributes: ['data-block']
39761        }
39762      },
39763      isMatch: node => node.dataset && node.dataset.block === 'core/nextpage',
39764      transform() {
39765        return (0,external_wp_blocks_namespaceObject.createBlock)('core/nextpage', {});
39766      }
39767    }]
39768  };
39769  /* harmony default export */ const nextpage_transforms = (nextpage_transforms_transforms);
39770  
39771  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
39772  /**
39773   * WordPress dependencies
39774   */
39775  
39776  
39777  /**
39778   * Internal dependencies
39779   */
39780  
39781  
39782  const nextpage_metadata = {
39783    $schema: "https://schemas.wp.org/trunk/block.json",
39784    apiVersion: 3,
39785    name: "core/nextpage",
39786    title: "Page Break",
39787    category: "design",
39788    description: "Separate your content into a multi-page experience.",
39789    keywords: ["next page", "pagination"],
39790    parent: ["core/post-content"],
39791    textdomain: "default",
39792    supports: {
39793      customClassName: false,
39794      className: false,
39795      html: false,
39796      interactivity: {
39797        clientNavigation: true
39798      }
39799    },
39800    editorStyle: "wp-block-nextpage-editor"
39801  };
39802  
39803  
39804  const {
39805    name: nextpage_name
39806  } = nextpage_metadata;
39807  
39808  const nextpage_settings = {
39809    icon: page_break,
39810    example: {},
39811    transforms: nextpage_transforms,
39812    edit: NextPageEdit,
39813    save: nextpage_save_save
39814  };
39815  const nextpage_init = () => initBlock({
39816    name: nextpage_name,
39817    metadata: nextpage_metadata,
39818    settings: nextpage_settings
39819  });
39820  
39821  ;// ./node_modules/@wordpress/block-library/build-module/pattern/recursion-detector.js
39822  /**
39823   * THIS MODULE IS INTENTIONALLY KEPT WITHIN THE PATTERN BLOCK'S SOURCE.
39824   *
39825   * This is because this approach for preventing infinite loops due to
39826   * recursively rendering blocks is specific to the way that the `core/pattern`
39827   * block behaves in the editor. Any other block types that deal with recursion
39828   * SHOULD USE THE STANDARD METHOD for avoiding loops:
39829   *
39830   * @see https://github.com/WordPress/gutenberg/pull/31455
39831   * @see packages/block-editor/src/components/recursion-provider/README.md
39832   */
39833  
39834  /**
39835   * WordPress dependencies
39836   */
39837  
39838  
39839  /**
39840   * Naming is hard.
39841   *
39842   * @see useParsePatternDependencies
39843   *
39844   * @type {WeakMap<Object, Function>}
39845   */
39846  const cachedParsers = new WeakMap();
39847  
39848  /**
39849   * Hook used by PatternEdit to parse block patterns. It returns a function that
39850   * takes a pattern and returns nothing but throws an error if the pattern is
39851   * recursive.
39852   *
39853   * @example
39854   * ```js
39855   * const parsePatternDependencies = useParsePatternDependencies();
39856   * parsePatternDependencies( selectedPattern );
39857   * ```
39858   *
39859   * @see parsePatternDependencies
39860   *
39861   * @return {Function} A function to parse block patterns.
39862   */
39863  function useParsePatternDependencies() {
39864    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
39865  
39866    // Instead of caching maps, go straight to the point and cache bound
39867    // functions. Each of those functions is bound to a different Map that will
39868    // keep track of patterns in the context of the given registry.
39869    if (!cachedParsers.has(registry)) {
39870      const deps = new Map();
39871      cachedParsers.set(registry, parsePatternDependencies.bind(null, deps));
39872    }
39873    return cachedParsers.get(registry);
39874  }
39875  
39876  /**
39877   * Parse a given pattern and traverse its contents to detect any subsequent
39878   * patterns on which it may depend. Such occurrences will be added to an
39879   * internal dependency graph. If a circular dependency is detected, an
39880   * error will be thrown.
39881   *
39882   * EXPORTED FOR TESTING PURPOSES ONLY.
39883   *
39884   * @param {Map<string, Set<string>>} deps           Map of pattern dependencies.
39885   * @param {Object}                   pattern        Pattern.
39886   * @param {string}                   pattern.name   Pattern name.
39887   * @param {Array}                    pattern.blocks Pattern's block list.
39888   *
39889   * @throws {Error} If a circular dependency is detected.
39890   */
39891  function parsePatternDependencies(deps, {
39892    name,
39893    blocks
39894  }) {
39895    const queue = [...blocks];
39896    while (queue.length) {
39897      const block = queue.shift();
39898      for (const innerBlock of (_block$innerBlocks = block.innerBlocks) !== null && _block$innerBlocks !== void 0 ? _block$innerBlocks : []) {
39899        var _block$innerBlocks;
39900        queue.unshift(innerBlock);
39901      }
39902      if (block.name === 'core/pattern') {
39903        registerDependency(deps, name, block.attributes.slug);
39904      }
39905    }
39906  }
39907  
39908  /**
39909   * Declare that pattern `a` depends on pattern `b`. If a circular
39910   * dependency is detected, an error will be thrown.
39911   *
39912   * EXPORTED FOR TESTING PURPOSES ONLY.
39913   *
39914   * @param {Map<string, Set<string>>} deps Map of pattern dependencies.
39915   * @param {string}                   a    Slug for pattern A.
39916   * @param {string}                   b    Slug for pattern B.
39917   *
39918   * @throws {Error} If a circular dependency is detected.
39919   */
39920  function registerDependency(deps, a, b) {
39921    if (!deps.has(a)) {
39922      deps.set(a, new Set());
39923    }
39924    deps.get(a).add(b);
39925    if (hasCycle(deps, a)) {
39926      throw new TypeError(`Pattern $a} has a circular dependency and cannot be rendered.`);
39927    }
39928  }
39929  
39930  /**
39931   * Determine if a given pattern has circular dependencies on other patterns.
39932   * This will be determined by running a depth-first search on the current state
39933   * of the graph represented by `patternDependencies`.
39934   *
39935   * @param {Map<string, Set<string>>} deps           Map of pattern dependencies.
39936   * @param {string}                   slug           Pattern slug.
39937   * @param {Set<string>}              [visitedNodes] Set to track visited nodes in the graph.
39938   * @param {Set<string>}              [currentPath]  Set to track and backtrack graph paths.
39939   * @return {boolean} Whether any cycle was found.
39940   */
39941  function hasCycle(deps, slug, visitedNodes = new Set(), currentPath = new Set()) {
39942    var _deps$get;
39943    visitedNodes.add(slug);
39944    currentPath.add(slug);
39945    const dependencies = (_deps$get = deps.get(slug)) !== null && _deps$get !== void 0 ? _deps$get : new Set();
39946    for (const dependency of dependencies) {
39947      if (!visitedNodes.has(dependency)) {
39948        if (hasCycle(deps, dependency, visitedNodes, currentPath)) {
39949          return true;
39950        }
39951      } else if (currentPath.has(dependency)) {
39952        return true;
39953      }
39954    }
39955  
39956    // Remove the current node from the current path when backtracking
39957    currentPath.delete(slug);
39958    return false;
39959  }
39960  
39961  ;// ./node_modules/@wordpress/block-library/build-module/pattern/edit.js
39962  /**
39963   * WordPress dependencies
39964   */
39965  
39966  
39967  
39968  
39969  
39970  
39971  
39972  /**
39973   * Internal dependencies
39974   */
39975  
39976  
39977  const PatternEdit = ({
39978    attributes,
39979    clientId
39980  }) => {
39981    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
39982    const selectedPattern = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
39983    const currentThemeStylesheet = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet, []);
39984    const {
39985      replaceBlocks,
39986      setBlockEditingMode,
39987      __unstableMarkNextChangeAsNotPersistent
39988    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
39989    const {
39990      getBlockRootClientId,
39991      getBlockEditingMode
39992    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
39993    const [hasRecursionError, setHasRecursionError] = (0,external_wp_element_namespaceObject.useState)(false);
39994    const parsePatternDependencies = useParsePatternDependencies();
39995  
39996    // Duplicated in packages/editor/src/components/start-template-options/index.js.
39997    function injectThemeAttributeInBlockTemplateContent(block) {
39998      if (block.innerBlocks.find(innerBlock => innerBlock.name === 'core/template-part')) {
39999        block.innerBlocks = block.innerBlocks.map(innerBlock => {
40000          if (innerBlock.name === 'core/template-part' && innerBlock.attributes.theme === undefined) {
40001            innerBlock.attributes.theme = currentThemeStylesheet;
40002          }
40003          return innerBlock;
40004        });
40005      }
40006      if (block.name === 'core/template-part' && block.attributes.theme === undefined) {
40007        block.attributes.theme = currentThemeStylesheet;
40008      }
40009      return block;
40010    }
40011  
40012    // Run this effect when the component loads.
40013    // This adds the Pattern's contents to the post.
40014    // This change won't be saved.
40015    // It will continue to pull from the pattern file unless changes are made to its respective template part.
40016    (0,external_wp_element_namespaceObject.useEffect)(() => {
40017      if (!hasRecursionError && selectedPattern?.blocks) {
40018        try {
40019          parsePatternDependencies(selectedPattern);
40020        } catch (error) {
40021          setHasRecursionError(true);
40022          return;
40023        }
40024  
40025        // We batch updates to block list settings to avoid triggering cascading renders
40026        // for each container block included in a tree and optimize initial render.
40027        // Since the above uses microtasks, we need to use a microtask here as well,
40028        // because nested pattern blocks cannot be inserted if the parent block supports
40029        // inner blocks but doesn't have blockSettings in the state.
40030        window.queueMicrotask(() => {
40031          const rootClientId = getBlockRootClientId(clientId);
40032          // Clone blocks from the pattern before insertion to ensure they receive
40033          // distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.
40034          const clonedBlocks = selectedPattern.blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(injectThemeAttributeInBlockTemplateContent(block)));
40035          // If the pattern has a single block and categories, we should add the
40036          // categories of the pattern to the block's metadata.
40037          if (clonedBlocks.length === 1 && selectedPattern.categories?.length > 0) {
40038            clonedBlocks[0].attributes = {
40039              ...clonedBlocks[0].attributes,
40040              metadata: {
40041                ...clonedBlocks[0].attributes.metadata,
40042                categories: selectedPattern.categories,
40043                patternName: selectedPattern.name,
40044                name: clonedBlocks[0].attributes.metadata.name || selectedPattern.title
40045              }
40046            };
40047          }
40048          const rootEditingMode = getBlockEditingMode(rootClientId);
40049          registry.batch(() => {
40050            // Temporarily set the root block to default mode to allow replacing the pattern.
40051            // This could happen when the page is disabling edits of non-content blocks.
40052            __unstableMarkNextChangeAsNotPersistent();
40053            setBlockEditingMode(rootClientId, 'default');
40054            __unstableMarkNextChangeAsNotPersistent();
40055            replaceBlocks(clientId, clonedBlocks);
40056            // Restore the root block's original mode.
40057            __unstableMarkNextChangeAsNotPersistent();
40058            setBlockEditingMode(rootClientId, rootEditingMode);
40059          });
40060        });
40061      }
40062    }, [clientId, hasRecursionError, selectedPattern, __unstableMarkNextChangeAsNotPersistent, replaceBlocks, getBlockEditingMode, setBlockEditingMode, getBlockRootClientId]);
40063    const props = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
40064    if (hasRecursionError) {
40065      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40066        ...props,
40067        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
40068          children: (0,external_wp_i18n_namespaceObject.sprintf)(
40069          // translators: A warning in which %s is the name of a pattern.
40070          (0,external_wp_i18n_namespaceObject.__)('Pattern "%s" cannot be rendered inside itself.'), selectedPattern?.name)
40071        })
40072      });
40073    }
40074    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40075      ...props
40076    });
40077  };
40078  /* harmony default export */ const pattern_edit = (PatternEdit);
40079  
40080  ;// ./node_modules/@wordpress/block-library/build-module/pattern/index.js
40081  /**
40082   * Internal dependencies
40083   */
40084  
40085  const pattern_metadata = {
40086    $schema: "https://schemas.wp.org/trunk/block.json",
40087    apiVersion: 3,
40088    name: "core/pattern",
40089    title: "Pattern Placeholder",
40090    category: "theme",
40091    description: "Show a block pattern.",
40092    supports: {
40093      html: false,
40094      inserter: false,
40095      renaming: false,
40096      interactivity: {
40097        clientNavigation: true
40098      }
40099    },
40100    textdomain: "default",
40101    attributes: {
40102      slug: {
40103        type: "string"
40104      }
40105    }
40106  };
40107  
40108  const {
40109    name: pattern_name
40110  } = pattern_metadata;
40111  
40112  const pattern_settings = {
40113    edit: pattern_edit
40114  };
40115  const pattern_init = () => initBlock({
40116    name: pattern_name,
40117    metadata: pattern_metadata,
40118    settings: pattern_settings
40119  });
40120  
40121  ;// ./node_modules/@wordpress/icons/build-module/library/pages.js
40122  /**
40123   * WordPress dependencies
40124   */
40125  
40126  
40127  const pages = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
40128    xmlns: "http://www.w3.org/2000/svg",
40129    viewBox: "0 0 24 24",
40130    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40131      d: "M14.5 5.5h-7V7h7V5.5ZM7.5 9h7v1.5h-7V9Zm7 3.5h-7V14h7v-1.5Z"
40132    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40133      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"
40134    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40135      d: "M20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z"
40136    })]
40137  });
40138  /* harmony default export */ const library_pages = (pages);
40139  
40140  ;// ./node_modules/@wordpress/block-library/build-module/page-list/use-convert-to-navigation-links.js
40141  /**
40142   * WordPress dependencies
40143   */
40144  
40145  
40146  
40147  
40148  /**
40149   * Converts an array of pages into a nested array of navigation link blocks.
40150   *
40151   * @param {Array} pages An array of pages.
40152   *
40153   * @return {Array} A nested array of navigation link blocks.
40154   */
40155  function createNavigationLinks(pages = []) {
40156    const linkMap = {};
40157    const navigationLinks = [];
40158    pages.forEach(({
40159      id,
40160      title,
40161      link: url,
40162      type,
40163      parent
40164    }) => {
40165      var _linkMap$id$innerBloc;
40166      // See if a placeholder exists. This is created if children appear before parents in list.
40167      const innerBlocks = (_linkMap$id$innerBloc = linkMap[id]?.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
40168      linkMap[id] = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', {
40169        id,
40170        label: title.rendered,
40171        url,
40172        type,
40173        kind: 'post-type'
40174      }, innerBlocks);
40175      if (!parent) {
40176        navigationLinks.push(linkMap[id]);
40177      } else {
40178        if (!linkMap[parent]) {
40179          // Use a placeholder if the child appears before parent in list.
40180          linkMap[parent] = {
40181            innerBlocks: []
40182          };
40183        }
40184        // Although these variables are not referenced, they are needed to store the innerBlocks in memory.
40185        const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
40186        parentLinkInnerBlocks.push(linkMap[id]);
40187      }
40188    });
40189    return navigationLinks;
40190  }
40191  
40192  /**
40193   * Finds a navigation link block by id, recursively.
40194   * It might be possible to make this a more generic helper function.
40195   *
40196   * @param {Array}  navigationLinks An array of navigation link blocks.
40197   * @param {number} id              The id of the navigation link to find.
40198   *
40199   * @return {Object|null} The navigation link block with the given id.
40200   */
40201  function findNavigationLinkById(navigationLinks, id) {
40202    for (const navigationLink of navigationLinks) {
40203      // Is this the link we're looking for?
40204      if (navigationLink.attributes.id === id) {
40205        return navigationLink;
40206      }
40207  
40208      // If not does it have innerBlocks?
40209      if (navigationLink.innerBlocks && navigationLink.innerBlocks.length) {
40210        const foundNavigationLink = findNavigationLinkById(navigationLink.innerBlocks, id);
40211        if (foundNavigationLink) {
40212          return foundNavigationLink;
40213        }
40214      }
40215    }
40216    return null;
40217  }
40218  function convertToNavigationLinks(pages = [], parentPageID = null) {
40219    let navigationLinks = createNavigationLinks(pages);
40220  
40221    // If a parent page ID is provided, only return the children of that page.
40222    if (parentPageID) {
40223      const parentPage = findNavigationLinkById(navigationLinks, parentPageID);
40224      if (parentPage && parentPage.innerBlocks) {
40225        navigationLinks = parentPage.innerBlocks;
40226      }
40227    }
40228  
40229    // Transform all links with innerBlocks into Submenus. This can't be done
40230    // sooner because page objects have no information on their children.
40231    const transformSubmenus = listOfLinks => {
40232      listOfLinks.forEach((block, index, listOfLinksArray) => {
40233        const {
40234          attributes,
40235          innerBlocks
40236        } = block;
40237        if (innerBlocks.length !== 0) {
40238          transformSubmenus(innerBlocks);
40239          const transformedBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
40240          listOfLinksArray[index] = transformedBlock;
40241        }
40242      });
40243    };
40244    transformSubmenus(navigationLinks);
40245    return navigationLinks;
40246  }
40247  function useConvertToNavigationLinks({
40248    clientId,
40249    pages,
40250    parentClientId,
40251    parentPageID
40252  }) {
40253    const {
40254      replaceBlock,
40255      selectBlock
40256    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
40257    return () => {
40258      const navigationLinks = convertToNavigationLinks(pages, parentPageID);
40259  
40260      // Replace the Page List block with the Navigation Links.
40261      replaceBlock(clientId, navigationLinks);
40262  
40263      // Select the Navigation block to reveal the changes.
40264      selectBlock(parentClientId);
40265    };
40266  }
40267  
40268  ;// ./node_modules/@wordpress/block-library/build-module/page-list/convert-to-links-modal.js
40269  /**
40270   * WordPress dependencies
40271   */
40272  
40273  
40274  
40275  
40276  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.");
40277  function ConvertToLinksModal({
40278    onClick,
40279    onClose,
40280    disabled
40281  }) {
40282    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
40283      onRequestClose: onClose,
40284      title: (0,external_wp_i18n_namespaceObject.__)('Edit Page List'),
40285      className: "wp-block-page-list-modal",
40286      aria: {
40287        describedby: (0,external_wp_compose_namespaceObject.useInstanceId)(ConvertToLinksModal, 'wp-block-page-list-modal__description')
40288      },
40289      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40290        id: (0,external_wp_compose_namespaceObject.useInstanceId)(ConvertToLinksModal, 'wp-block-page-list-modal__description'),
40291        children: convertDescription
40292      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
40293        className: "wp-block-page-list-modal-buttons",
40294        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
40295          __next40pxDefaultSize: true,
40296          variant: "tertiary",
40297          onClick: onClose,
40298          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
40299        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
40300          __next40pxDefaultSize: true,
40301          variant: "primary",
40302          accessibleWhenDisabled: true,
40303          disabled: disabled,
40304          onClick: onClick,
40305          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
40306        })]
40307      })]
40308    });
40309  }
40310  
40311  ;// ./node_modules/@wordpress/block-library/build-module/page-list/edit.js
40312  /**
40313   * External dependencies
40314   */
40315  
40316  
40317  /**
40318   * WordPress dependencies
40319   */
40320  
40321  
40322  
40323  
40324  
40325  
40326  
40327  
40328  /**
40329   * Internal dependencies
40330   */
40331  
40332  
40333  
40334  
40335  // We only show the edit option when page count is <= MAX_PAGE_COUNT
40336  // Performance of Navigation Links is not good past this value.
40337  
40338  const MAX_PAGE_COUNT = 100;
40339  const NOOP = () => {};
40340  function BlockContent({
40341    blockProps,
40342    innerBlocksProps,
40343    hasResolvedPages,
40344    blockList,
40345    pages,
40346    parentPageID
40347  }) {
40348    if (!hasResolvedPages) {
40349      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40350        ...blockProps,
40351        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40352          className: "wp-block-page-list__loading-indicator-container",
40353          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {
40354            className: "wp-block-page-list__loading-indicator"
40355          })
40356        })
40357      });
40358    }
40359    if (pages === null) {
40360      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40361        ...blockProps,
40362        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
40363          status: "warning",
40364          isDismissible: false,
40365          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
40366        })
40367      });
40368    }
40369    if (pages.length === 0) {
40370      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40371        ...blockProps,
40372        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
40373          status: "info",
40374          isDismissible: false,
40375          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
40376        })
40377      });
40378    }
40379    if (blockList.length === 0) {
40380      const parentPageDetails = pages.find(page => page.id === parentPageID);
40381      if (parentPageDetails?.title?.rendered) {
40382        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40383          ...blockProps,
40384          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
40385            children: (0,external_wp_i18n_namespaceObject.sprintf)(
40386            // translators: %s: Page title.
40387            (0,external_wp_i18n_namespaceObject.__)('Page List: "%s" page has no children.'), parentPageDetails.title.rendered)
40388          })
40389        });
40390      }
40391      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40392        ...blockProps,
40393        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
40394          status: "warning",
40395          isDismissible: false,
40396          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
40397        })
40398      });
40399    }
40400    if (pages.length > 0) {
40401      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
40402        ...innerBlocksProps
40403      });
40404    }
40405  }
40406  function PageListEdit({
40407    context,
40408    clientId,
40409    attributes,
40410    setAttributes
40411  }) {
40412    const {
40413      parentPageID
40414    } = attributes;
40415    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
40416    const openModal = (0,external_wp_element_namespaceObject.useCallback)(() => setOpen(true), []);
40417    const closeModal = () => setOpen(false);
40418    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
40419    const {
40420      records: pages,
40421      hasResolved: hasResolvedPages
40422    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', 'page', {
40423      per_page: MAX_PAGE_COUNT,
40424      _fields: ['id', 'link', 'menu_order', 'parent', 'title', 'type'],
40425      // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
40426      // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
40427      // sort.
40428      orderby: 'menu_order',
40429      order: 'asc'
40430    });
40431    const allowConvertToLinks = 'showSubmenuIcon' in context && pages?.length > 0 && pages?.length <= MAX_PAGE_COUNT;
40432    const pagesByParentId = (0,external_wp_element_namespaceObject.useMemo)(() => {
40433      if (pages === null) {
40434        return new Map();
40435      }
40436  
40437      // TODO: Once the REST API supports passing multiple values to
40438      // 'orderby', this can be removed.
40439      // https://core.trac.wordpress.org/ticket/39037
40440      const sortedPages = pages.sort((a, b) => {
40441        if (a.menu_order === b.menu_order) {
40442          return a.title.rendered.localeCompare(b.title.rendered);
40443        }
40444        return a.menu_order - b.menu_order;
40445      });
40446      return sortedPages.reduce((accumulator, page) => {
40447        const {
40448          parent
40449        } = page;
40450        if (accumulator.has(parent)) {
40451          accumulator.get(parent).push(page);
40452        } else {
40453          accumulator.set(parent, [page]);
40454        }
40455        return accumulator;
40456      }, new Map());
40457    }, [pages]);
40458    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
40459      className: dist_clsx('wp-block-page-list', {
40460        'has-text-color': !!context.textColor,
40461        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', context.textColor)]: !!context.textColor,
40462        'has-background': !!context.backgroundColor,
40463        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', context.backgroundColor)]: !!context.backgroundColor
40464      }),
40465      style: {
40466        ...context.style?.color
40467      }
40468    });
40469    const pagesTree = (0,external_wp_element_namespaceObject.useMemo)(function makePagesTree(parentId = 0, level = 0) {
40470      const childPages = pagesByParentId.get(parentId);
40471      if (!childPages?.length) {
40472        return [];
40473      }
40474      return childPages.reduce((tree, page) => {
40475        const hasChildren = pagesByParentId.has(page.id);
40476        const item = {
40477          value: page.id,
40478          label: '— '.repeat(level) + page.title.rendered,
40479          rawName: page.title.rendered
40480        };
40481        tree.push(item);
40482        if (hasChildren) {
40483          tree.push(...makePagesTree(page.id, level + 1));
40484        }
40485        return tree;
40486      }, []);
40487    }, [pagesByParentId]);
40488    const blockList = (0,external_wp_element_namespaceObject.useMemo)(function getBlockList(parentId = parentPageID) {
40489      const childPages = pagesByParentId.get(parentId);
40490      if (!childPages?.length) {
40491        return [];
40492      }
40493      return childPages.reduce((template, page) => {
40494        const hasChildren = pagesByParentId.has(page.id);
40495        const pageProps = {
40496          id: page.id,
40497          label:
40498          // translators: displayed when a page has an empty title.
40499          page.title?.rendered?.trim() !== '' ? page.title?.rendered : (0,external_wp_i18n_namespaceObject.__)('(no title)'),
40500          title:
40501          // translators: displayed when a page has an empty title.
40502          page.title?.rendered?.trim() !== '' ? page.title?.rendered : (0,external_wp_i18n_namespaceObject.__)('(no title)'),
40503          link: page.url,
40504          hasChildren
40505        };
40506        let item = null;
40507        const children = getBlockList(page.id);
40508        item = (0,external_wp_blocks_namespaceObject.createBlock)('core/page-list-item', pageProps, children);
40509        template.push(item);
40510        return template;
40511      }, []);
40512    }, [pagesByParentId, parentPageID]);
40513    const {
40514      isNested,
40515      hasSelectedChild,
40516      parentClientId,
40517      hasDraggedChild,
40518      isChildOfNavigation
40519    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
40520      const {
40521        getBlockParentsByBlockName,
40522        hasSelectedInnerBlock,
40523        hasDraggedInnerBlock
40524      } = select(external_wp_blockEditor_namespaceObject.store);
40525      const blockParents = getBlockParentsByBlockName(clientId, 'core/navigation-submenu', true);
40526      const navigationBlockParents = getBlockParentsByBlockName(clientId, 'core/navigation', true);
40527      return {
40528        isNested: blockParents.length > 0,
40529        isChildOfNavigation: navigationBlockParents.length > 0,
40530        hasSelectedChild: hasSelectedInnerBlock(clientId, true),
40531        hasDraggedChild: hasDraggedInnerBlock(clientId, true),
40532        parentClientId: navigationBlockParents[0]
40533      };
40534    }, [clientId]);
40535    const convertToNavigationLinks = useConvertToNavigationLinks({
40536      clientId,
40537      pages,
40538      parentClientId,
40539      parentPageID
40540    });
40541    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
40542      renderAppender: false,
40543      __unstableDisableDropZone: true,
40544      templateLock: isChildOfNavigation ? false : 'all',
40545      onInput: NOOP,
40546      onChange: NOOP,
40547      value: blockList
40548    });
40549    const {
40550      selectBlock
40551    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
40552    (0,external_wp_element_namespaceObject.useEffect)(() => {
40553      if (hasSelectedChild || hasDraggedChild) {
40554        openModal();
40555        selectBlock(parentClientId);
40556      }
40557    }, [hasSelectedChild, hasDraggedChild, parentClientId, selectBlock, openModal]);
40558    (0,external_wp_element_namespaceObject.useEffect)(() => {
40559      setAttributes({
40560        isNested
40561      });
40562    }, [isNested, setAttributes]);
40563    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40564      children: [(pagesTree.length > 0 || allowConvertToLinks) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
40565        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
40566          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
40567          resetAll: () => {
40568            setAttributes({
40569              parentPageID: 0
40570            });
40571          },
40572          dropdownMenuProps: dropdownMenuProps,
40573          children: [pagesTree.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
40574            label: (0,external_wp_i18n_namespaceObject.__)('Parent Page'),
40575            hasValue: () => parentPageID !== 0,
40576            onDeselect: () => setAttributes({
40577              parentPageID: 0
40578            }),
40579            isShownByDefault: true,
40580            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
40581              __nextHasNoMarginBottom: true,
40582              __next40pxDefaultSize: true,
40583              className: "editor-page-attributes__parent",
40584              label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
40585              value: parentPageID,
40586              options: pagesTree,
40587              onChange: value => setAttributes({
40588                parentPageID: value !== null && value !== void 0 ? value : 0
40589              }),
40590              help: (0,external_wp_i18n_namespaceObject.__)('Choose a page to show only its subpages.')
40591            })
40592          }), allowConvertToLinks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
40593            style: {
40594              gridColumn: '1 / -1'
40595            },
40596            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40597              children: convertDescription
40598            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
40599              __next40pxDefaultSize: true,
40600              variant: "primary",
40601              accessibleWhenDisabled: true,
40602              disabled: !hasResolvedPages,
40603              onClick: convertToNavigationLinks,
40604              children: (0,external_wp_i18n_namespaceObject.__)('Edit')
40605            })]
40606          })]
40607        })
40608      }), allowConvertToLinks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40609        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
40610          group: "other",
40611          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
40612            title: (0,external_wp_i18n_namespaceObject.__)('Edit'),
40613            onClick: openModal,
40614            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
40615          })
40616        }), isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ConvertToLinksModal, {
40617          onClick: convertToNavigationLinks,
40618          onClose: closeModal,
40619          disabled: !hasResolvedPages
40620        })]
40621      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockContent, {
40622        blockProps: blockProps,
40623        innerBlocksProps: innerBlocksProps,
40624        hasResolvedPages: hasResolvedPages,
40625        blockList: blockList,
40626        pages: pages,
40627        parentPageID: parentPageID
40628      })]
40629    });
40630  }
40631  
40632  ;// ./node_modules/@wordpress/block-library/build-module/page-list/index.js
40633  /**
40634   * WordPress dependencies
40635   */
40636  
40637  
40638  /**
40639   * Internal dependencies
40640   */
40641  
40642  const page_list_metadata = {
40643    $schema: "https://schemas.wp.org/trunk/block.json",
40644    apiVersion: 3,
40645    name: "core/page-list",
40646    title: "Page List",
40647    category: "widgets",
40648    allowedBlocks: ["core/page-list-item"],
40649    description: "Display a list of all pages.",
40650    keywords: ["menu", "navigation"],
40651    textdomain: "default",
40652    attributes: {
40653      parentPageID: {
40654        type: "integer",
40655        "default": 0
40656      },
40657      isNested: {
40658        type: "boolean",
40659        "default": false
40660      }
40661    },
40662    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
40663    supports: {
40664      reusable: false,
40665      html: false,
40666      typography: {
40667        fontSize: true,
40668        lineHeight: true,
40669        __experimentalFontFamily: true,
40670        __experimentalFontWeight: true,
40671        __experimentalFontStyle: true,
40672        __experimentalTextTransform: true,
40673        __experimentalTextDecoration: true,
40674        __experimentalLetterSpacing: true,
40675        __experimentalDefaultControls: {
40676          fontSize: true
40677        }
40678      },
40679      interactivity: {
40680        clientNavigation: true
40681      },
40682      color: {
40683        text: true,
40684        background: true,
40685        link: true,
40686        gradients: true,
40687        __experimentalDefaultControls: {
40688          background: true,
40689          text: true,
40690          link: true
40691        }
40692      },
40693      __experimentalBorder: {
40694        radius: true,
40695        color: true,
40696        width: true,
40697        style: true
40698      },
40699      spacing: {
40700        padding: true,
40701        margin: true,
40702        __experimentalDefaultControls: {
40703          padding: false,
40704          margin: false
40705        }
40706      }
40707    },
40708    editorStyle: "wp-block-page-list-editor",
40709    style: "wp-block-page-list"
40710  };
40711  
40712  const {
40713    name: page_list_name
40714  } = page_list_metadata;
40715  
40716  const page_list_settings = {
40717    icon: library_pages,
40718    example: {},
40719    edit: PageListEdit
40720  };
40721  const page_list_init = () => initBlock({
40722    name: page_list_name,
40723    metadata: page_list_metadata,
40724    settings: page_list_settings
40725  });
40726  
40727  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/icons.js
40728  /**
40729   * WordPress dependencies
40730   */
40731  
40732  
40733  const icons_ItemSubmenuIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
40734    xmlns: "http://www.w3.org/2000/svg",
40735    width: "12",
40736    height: "12",
40737    viewBox: "0 0 12 12",
40738    fill: "none",
40739    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
40740      d: "M1.50002 4L6.00002 8L10.5 4",
40741      strokeWidth: "1.5"
40742    })
40743  });
40744  
40745  ;// ./node_modules/@wordpress/block-library/build-module/page-list-item/edit.js
40746  /**
40747   * External dependencies
40748   */
40749  
40750  /**
40751   * WordPress dependencies
40752   */
40753  
40754  
40755  
40756  
40757  
40758  /**
40759   * Internal dependencies
40760   */
40761  
40762  
40763  
40764  function useFrontPageId() {
40765    return (0,external_wp_data_namespaceObject.useSelect)(select => {
40766      const canReadSettings = select(external_wp_coreData_namespaceObject.store).canUser('read', {
40767        kind: 'root',
40768        name: 'site'
40769      });
40770      if (!canReadSettings) {
40771        return undefined;
40772      }
40773      const site = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'site');
40774      return site?.show_on_front === 'page' && site?.page_on_front;
40775    }, []);
40776  }
40777  function PageListItemEdit({
40778    context,
40779    attributes
40780  }) {
40781    const {
40782      id,
40783      label,
40784      link,
40785      hasChildren,
40786      title
40787    } = attributes;
40788    const isNavigationChild = 'showSubmenuIcon' in context;
40789    const frontPageId = useFrontPageId();
40790    const innerBlocksColors = getColors(context, true);
40791    const navigationChildBlockProps = getNavigationChildBlockProps(innerBlocksColors);
40792    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(navigationChildBlockProps, {
40793      className: 'wp-block-pages-list__item'
40794    });
40795    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps);
40796    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
40797      className: dist_clsx('wp-block-pages-list__item', {
40798        'has-child': hasChildren,
40799        'wp-block-navigation-item': isNavigationChild,
40800        'open-on-click': context.openSubmenusOnClick,
40801        'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
40802        'menu-item-home': id === frontPageId
40803      }),
40804      children: [hasChildren && context.openSubmenusOnClick ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40805        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
40806          type: "button",
40807          className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
40808          "aria-expanded": "false",
40809          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(label)
40810        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
40811          className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
40812          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icons_ItemSubmenuIcon, {})
40813        })]
40814      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
40815        className: dist_clsx('wp-block-pages-list__item__link', {
40816          'wp-block-navigation-item__content': isNavigationChild
40817        }),
40818        href: link,
40819        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title)
40820      }), hasChildren && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40821        children: [!context.openSubmenusOnClick && context.showSubmenuIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
40822          className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
40823          "aria-expanded": "false",
40824          type: "button",
40825          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icons_ItemSubmenuIcon, {})
40826        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
40827          ...innerBlocksProps
40828        })]
40829      })]
40830    }, id);
40831  }
40832  
40833  ;// ./node_modules/@wordpress/block-library/build-module/page-list-item/index.js
40834  /**
40835   * WordPress dependencies
40836   */
40837  
40838  
40839  /**
40840   * Internal dependencies
40841   */
40842  
40843  const page_list_item_metadata = {
40844    $schema: "https://schemas.wp.org/trunk/block.json",
40845    apiVersion: 3,
40846    name: "core/page-list-item",
40847    title: "Page List Item",
40848    category: "widgets",
40849    parent: ["core/page-list"],
40850    description: "Displays a page inside a list of all pages.",
40851    keywords: ["page", "menu", "navigation"],
40852    textdomain: "default",
40853    attributes: {
40854      id: {
40855        type: "number"
40856      },
40857      label: {
40858        type: "string"
40859      },
40860      title: {
40861        type: "string"
40862      },
40863      link: {
40864        type: "string"
40865      },
40866      hasChildren: {
40867        type: "boolean"
40868      }
40869    },
40870    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
40871    supports: {
40872      reusable: false,
40873      html: false,
40874      lock: false,
40875      inserter: false,
40876      __experimentalToolbar: false,
40877      interactivity: {
40878        clientNavigation: true
40879      }
40880    },
40881    editorStyle: "wp-block-page-list-editor",
40882    style: "wp-block-page-list"
40883  };
40884  
40885  const {
40886    name: page_list_item_name
40887  } = page_list_item_metadata;
40888  
40889  const page_list_item_settings = {
40890    __experimentalLabel: ({
40891      label
40892    }) => label,
40893    icon: library_page,
40894    example: {},
40895    edit: PageListItemEdit
40896  };
40897  const page_list_item_init = () => initBlock({
40898    name: page_list_item_name,
40899    metadata: page_list_item_metadata,
40900    settings: page_list_item_settings
40901  });
40902  
40903  ;// ./node_modules/@wordpress/icons/build-module/library/paragraph.js
40904  /**
40905   * WordPress dependencies
40906   */
40907  
40908  
40909  const paragraph = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
40910    xmlns: "http://www.w3.org/2000/svg",
40911    viewBox: "0 0 24 24",
40912    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40913      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"
40914    })
40915  });
40916  /* harmony default export */ const library_paragraph = (paragraph);
40917  
40918  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js
40919  /**
40920   * External dependencies
40921   */
40922  
40923  
40924  /**
40925   * WordPress dependencies
40926   */
40927  
40928  
40929  
40930  
40931  const deprecated_supports = {
40932    className: false
40933  };
40934  const paragraph_deprecated_blockAttributes = {
40935    align: {
40936      type: 'string'
40937    },
40938    content: {
40939      type: 'string',
40940      source: 'html',
40941      selector: 'p',
40942      default: ''
40943    },
40944    dropCap: {
40945      type: 'boolean',
40946      default: false
40947    },
40948    placeholder: {
40949      type: 'string'
40950    },
40951    textColor: {
40952      type: 'string'
40953    },
40954    backgroundColor: {
40955      type: 'string'
40956    },
40957    fontSize: {
40958      type: 'string'
40959    },
40960    direction: {
40961      type: 'string',
40962      enum: ['ltr', 'rtl']
40963    },
40964    style: {
40965      type: 'object'
40966    }
40967  };
40968  const migrateCustomColorsAndFontSizes = attributes => {
40969    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) {
40970      return attributes;
40971    }
40972    const style = {};
40973    if (attributes.customTextColor || attributes.customBackgroundColor) {
40974      style.color = {};
40975    }
40976    if (attributes.customTextColor) {
40977      style.color.text = attributes.customTextColor;
40978    }
40979    if (attributes.customBackgroundColor) {
40980      style.color.background = attributes.customBackgroundColor;
40981    }
40982    if (attributes.customFontSize) {
40983      style.typography = {
40984        fontSize: attributes.customFontSize
40985      };
40986    }
40987    const {
40988      customTextColor,
40989      customBackgroundColor,
40990      customFontSize,
40991      ...restAttributes
40992    } = attributes;
40993    return {
40994      ...restAttributes,
40995      style
40996    };
40997  };
40998  const {
40999    style,
41000    ...restBlockAttributes
41001  } = paragraph_deprecated_blockAttributes;
41002  const paragraph_deprecated_deprecated = [
41003  // Version without drop cap on aligned text.
41004  {
41005    supports: deprecated_supports,
41006    attributes: {
41007      ...restBlockAttributes,
41008      customTextColor: {
41009        type: 'string'
41010      },
41011      customBackgroundColor: {
41012        type: 'string'
41013      },
41014      customFontSize: {
41015        type: 'number'
41016      }
41017    },
41018    save({
41019      attributes
41020    }) {
41021      const {
41022        align,
41023        content,
41024        dropCap,
41025        direction
41026      } = attributes;
41027      const className = dist_clsx({
41028        'has-drop-cap': align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center' ? false : dropCap,
41029        [`has-text-align-$align}`]: align
41030      });
41031      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
41032        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
41033          className,
41034          dir: direction
41035        }),
41036        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41037          value: content
41038        })
41039      });
41040    }
41041  }, {
41042    supports: deprecated_supports,
41043    attributes: {
41044      ...restBlockAttributes,
41045      customTextColor: {
41046        type: 'string'
41047      },
41048      customBackgroundColor: {
41049        type: 'string'
41050      },
41051      customFontSize: {
41052        type: 'number'
41053      }
41054    },
41055    migrate: migrateCustomColorsAndFontSizes,
41056    save({
41057      attributes
41058    }) {
41059      const {
41060        align,
41061        content,
41062        dropCap,
41063        backgroundColor,
41064        textColor,
41065        customBackgroundColor,
41066        customTextColor,
41067        fontSize,
41068        customFontSize,
41069        direction
41070      } = attributes;
41071      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
41072      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
41073      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
41074      const className = dist_clsx({
41075        'has-text-color': textColor || customTextColor,
41076        'has-background': backgroundColor || customBackgroundColor,
41077        'has-drop-cap': dropCap,
41078        [`has-text-align-$align}`]: align,
41079        [fontSizeClass]: fontSizeClass,
41080        [textClass]: textClass,
41081        [backgroundClass]: backgroundClass
41082      });
41083      const styles = {
41084        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
41085        color: textClass ? undefined : customTextColor,
41086        fontSize: fontSizeClass ? undefined : customFontSize
41087      };
41088      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41089        tagName: "p",
41090        style: styles,
41091        className: className ? className : undefined,
41092        value: content,
41093        dir: direction
41094      });
41095    }
41096  }, {
41097    supports: deprecated_supports,
41098    attributes: {
41099      ...restBlockAttributes,
41100      customTextColor: {
41101        type: 'string'
41102      },
41103      customBackgroundColor: {
41104        type: 'string'
41105      },
41106      customFontSize: {
41107        type: 'number'
41108      }
41109    },
41110    migrate: migrateCustomColorsAndFontSizes,
41111    save({
41112      attributes
41113    }) {
41114      const {
41115        align,
41116        content,
41117        dropCap,
41118        backgroundColor,
41119        textColor,
41120        customBackgroundColor,
41121        customTextColor,
41122        fontSize,
41123        customFontSize,
41124        direction
41125      } = attributes;
41126      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
41127      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
41128      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
41129      const className = dist_clsx({
41130        'has-text-color': textColor || customTextColor,
41131        'has-background': backgroundColor || customBackgroundColor,
41132        'has-drop-cap': dropCap,
41133        [fontSizeClass]: fontSizeClass,
41134        [textClass]: textClass,
41135        [backgroundClass]: backgroundClass
41136      });
41137      const styles = {
41138        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
41139        color: textClass ? undefined : customTextColor,
41140        fontSize: fontSizeClass ? undefined : customFontSize,
41141        textAlign: align
41142      };
41143      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41144        tagName: "p",
41145        style: styles,
41146        className: className ? className : undefined,
41147        value: content,
41148        dir: direction
41149      });
41150    }
41151  }, {
41152    supports: deprecated_supports,
41153    attributes: {
41154      ...restBlockAttributes,
41155      customTextColor: {
41156        type: 'string'
41157      },
41158      customBackgroundColor: {
41159        type: 'string'
41160      },
41161      customFontSize: {
41162        type: 'number'
41163      },
41164      width: {
41165        type: 'string'
41166      }
41167    },
41168    migrate: migrateCustomColorsAndFontSizes,
41169    save({
41170      attributes
41171    }) {
41172      const {
41173        width,
41174        align,
41175        content,
41176        dropCap,
41177        backgroundColor,
41178        textColor,
41179        customBackgroundColor,
41180        customTextColor,
41181        fontSize,
41182        customFontSize
41183      } = attributes;
41184      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
41185      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
41186      const fontSizeClass = fontSize && `is-$fontSize}-text`;
41187      const className = dist_clsx({
41188        [`align$width}`]: width,
41189        'has-background': backgroundColor || customBackgroundColor,
41190        'has-drop-cap': dropCap,
41191        [fontSizeClass]: fontSizeClass,
41192        [textClass]: textClass,
41193        [backgroundClass]: backgroundClass
41194      });
41195      const styles = {
41196        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
41197        color: textClass ? undefined : customTextColor,
41198        fontSize: fontSizeClass ? undefined : customFontSize,
41199        textAlign: align
41200      };
41201      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41202        tagName: "p",
41203        style: styles,
41204        className: className ? className : undefined,
41205        value: content
41206      });
41207    }
41208  }, {
41209    supports: deprecated_supports,
41210    attributes: {
41211      ...restBlockAttributes,
41212      fontSize: {
41213        type: 'number'
41214      }
41215    },
41216    save({
41217      attributes
41218    }) {
41219      const {
41220        width,
41221        align,
41222        content,
41223        dropCap,
41224        backgroundColor,
41225        textColor,
41226        fontSize
41227      } = attributes;
41228      const className = dist_clsx({
41229        [`align$width}`]: width,
41230        'has-background': backgroundColor,
41231        'has-drop-cap': dropCap
41232      });
41233      const styles = {
41234        backgroundColor,
41235        color: textColor,
41236        fontSize,
41237        textAlign: align
41238      };
41239      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
41240        style: styles,
41241        className: className ? className : undefined,
41242        children: content
41243      });
41244    },
41245    migrate(attributes) {
41246      return migrateCustomColorsAndFontSizes({
41247        ...attributes,
41248        customFontSize: Number.isFinite(attributes.fontSize) ? attributes.fontSize : undefined,
41249        customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
41250        customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined
41251      });
41252    }
41253  }, {
41254    supports: deprecated_supports,
41255    attributes: {
41256      ...paragraph_deprecated_blockAttributes,
41257      content: {
41258        type: 'string',
41259        source: 'html',
41260        default: ''
41261      }
41262    },
41263    save({
41264      attributes
41265    }) {
41266      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
41267        children: attributes.content
41268      });
41269    },
41270    migrate(attributes) {
41271      return attributes;
41272    }
41273  }];
41274  /* harmony default export */ const paragraph_deprecated = (paragraph_deprecated_deprecated);
41275  
41276  ;// ./node_modules/@wordpress/icons/build-module/library/format-ltr.js
41277  /**
41278   * WordPress dependencies
41279   */
41280  
41281  
41282  const formatLtr = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41283    xmlns: "http://www.w3.org/2000/svg",
41284    viewBox: "-2 -2 24 24",
41285    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41286      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"
41287    })
41288  });
41289  /* harmony default export */ const format_ltr = (formatLtr);
41290  
41291  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/use-enter.js
41292  /**
41293   * WordPress dependencies
41294   */
41295  
41296  
41297  
41298  
41299  
41300  
41301  function useOnEnter(props) {
41302    const {
41303      batch
41304    } = (0,external_wp_data_namespaceObject.useRegistry)();
41305    const {
41306      moveBlocksToPosition,
41307      replaceInnerBlocks,
41308      duplicateBlocks,
41309      insertBlock
41310    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
41311    const {
41312      getBlockRootClientId,
41313      getBlockIndex,
41314      getBlockOrder,
41315      getBlockName,
41316      getBlock,
41317      getNextBlockClientId,
41318      canInsertBlockType
41319    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
41320    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
41321    propsRef.current = props;
41322    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
41323      function onKeyDown(event) {
41324        if (event.defaultPrevented) {
41325          return;
41326        }
41327        if (event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
41328          return;
41329        }
41330        const {
41331          content,
41332          clientId
41333        } = propsRef.current;
41334  
41335        // The paragraph should be empty.
41336        if (content.length) {
41337          return;
41338        }
41339        const wrapperClientId = getBlockRootClientId(clientId);
41340        if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(getBlockName(wrapperClientId), '__experimentalOnEnter', false)) {
41341          return;
41342        }
41343        const order = getBlockOrder(wrapperClientId);
41344        const position = order.indexOf(clientId);
41345  
41346        // If it is the last block, exit.
41347        if (position === order.length - 1) {
41348          let newWrapperClientId = wrapperClientId;
41349          while (!canInsertBlockType(getBlockName(clientId), getBlockRootClientId(newWrapperClientId))) {
41350            newWrapperClientId = getBlockRootClientId(newWrapperClientId);
41351          }
41352          if (typeof newWrapperClientId === 'string') {
41353            event.preventDefault();
41354            moveBlocksToPosition([clientId], wrapperClientId, getBlockRootClientId(newWrapperClientId), getBlockIndex(newWrapperClientId) + 1);
41355          }
41356          return;
41357        }
41358        const defaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)();
41359        if (!canInsertBlockType(defaultBlockName, getBlockRootClientId(wrapperClientId))) {
41360          return;
41361        }
41362        event.preventDefault();
41363  
41364        // If it is in the middle, split the block in two.
41365        const wrapperBlock = getBlock(wrapperClientId);
41366        batch(() => {
41367          duplicateBlocks([wrapperClientId]);
41368          const blockIndex = getBlockIndex(wrapperClientId);
41369          replaceInnerBlocks(wrapperClientId, wrapperBlock.innerBlocks.slice(0, position));
41370          replaceInnerBlocks(getNextBlockClientId(wrapperClientId), wrapperBlock.innerBlocks.slice(position + 1));
41371          insertBlock((0,external_wp_blocks_namespaceObject.createBlock)(defaultBlockName), blockIndex + 1, getBlockRootClientId(wrapperClientId), true);
41372        });
41373      }
41374      element.addEventListener('keydown', onKeyDown);
41375      return () => {
41376        element.removeEventListener('keydown', onKeyDown);
41377      };
41378    }, []);
41379  }
41380  
41381  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js
41382  /**
41383   * External dependencies
41384   */
41385  
41386  
41387  /**
41388   * WordPress dependencies
41389   */
41390  
41391  
41392  
41393  
41394  
41395  /**
41396   * Internal dependencies
41397   */
41398  
41399  
41400  function ParagraphRTLControl({
41401    direction,
41402    setDirection
41403  }) {
41404    return (0,external_wp_i18n_namespaceObject.isRTL)() && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
41405      icon: format_ltr,
41406      title: (0,external_wp_i18n_namespaceObject._x)('Left to right', 'editor button'),
41407      isActive: direction === 'ltr',
41408      onClick: () => {
41409        setDirection(direction === 'ltr' ? undefined : 'ltr');
41410      }
41411    });
41412  }
41413  function hasDropCapDisabled(align) {
41414    return align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center';
41415  }
41416  function DropCapControl({
41417    clientId,
41418    attributes,
41419    setAttributes,
41420    name
41421  }) {
41422    // Please do not add a useSelect call to the paragraph block unconditionally.
41423    // Every useSelect added to a (frequently used) block will degrade load
41424    // and type performance. By moving it within InspectorControls, the subscription is
41425    // now only added for the selected block(s).
41426    const [isDropCapFeatureEnabled] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.dropCap');
41427    if (!isDropCapFeatureEnabled) {
41428      return null;
41429    }
41430    const {
41431      align,
41432      dropCap
41433    } = attributes;
41434    let helpText;
41435    if (hasDropCapDisabled(align)) {
41436      helpText = (0,external_wp_i18n_namespaceObject.__)('Not available for aligned text.');
41437    } else if (dropCap) {
41438      helpText = (0,external_wp_i18n_namespaceObject.__)('Showing large initial letter.');
41439    } else {
41440      helpText = (0,external_wp_i18n_namespaceObject.__)('Show a large initial letter.');
41441    }
41442    const isDropCapControlEnabledByDefault = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'typography.defaultControls.dropCap', false);
41443    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
41444      group: "typography",
41445      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
41446        hasValue: () => !!dropCap,
41447        label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
41448        isShownByDefault: isDropCapControlEnabledByDefault,
41449        onDeselect: () => setAttributes({
41450          dropCap: undefined
41451        }),
41452        resetAllFilter: () => ({
41453          dropCap: undefined
41454        }),
41455        panelId: clientId,
41456        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
41457          __nextHasNoMarginBottom: true,
41458          label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
41459          checked: !!dropCap,
41460          onChange: () => setAttributes({
41461            dropCap: !dropCap
41462          }),
41463          help: helpText,
41464          disabled: hasDropCapDisabled(align)
41465        })
41466      })
41467    });
41468  }
41469  function ParagraphBlock({
41470    attributes,
41471    mergeBlocks,
41472    onReplace,
41473    onRemove,
41474    setAttributes,
41475    clientId,
41476    isSelected: isSingleSelected,
41477    name
41478  }) {
41479    const {
41480      align,
41481      content,
41482      direction,
41483      dropCap,
41484      placeholder
41485    } = attributes;
41486    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41487      ref: useOnEnter({
41488        clientId,
41489        content
41490      }),
41491      className: dist_clsx({
41492        'has-drop-cap': hasDropCapDisabled(align) ? false : dropCap,
41493        [`has-text-align-$align}`]: align
41494      }),
41495      style: {
41496        direction
41497      }
41498    });
41499    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
41500    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41501      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
41502        group: "block",
41503        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41504          value: align,
41505          onChange: newAlign => setAttributes({
41506            align: newAlign,
41507            dropCap: hasDropCapDisabled(newAlign) ? false : dropCap
41508          })
41509        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ParagraphRTLControl, {
41510          direction: direction,
41511          setDirection: newDirection => setAttributes({
41512            direction: newDirection
41513          })
41514        })]
41515      }), isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DropCapControl, {
41516        name: name,
41517        clientId: clientId,
41518        attributes: attributes,
41519        setAttributes: setAttributes
41520      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
41521        identifier: "content",
41522        tagName: "p",
41523        ...blockProps,
41524        value: content,
41525        onChange: newContent => setAttributes({
41526          content: newContent
41527        }),
41528        onMerge: mergeBlocks,
41529        onReplace: onReplace,
41530        onRemove: onRemove,
41531        "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'),
41532        "data-empty": external_wp_blockEditor_namespaceObject.RichText.isEmpty(content),
41533        placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'),
41534        "data-custom-placeholder": placeholder ? true : undefined,
41535        __unstableEmbedURLOnPaste: true,
41536        __unstableAllowPrefixTransformations: true
41537      })]
41538    });
41539  }
41540  /* harmony default export */ const paragraph_edit = (ParagraphBlock);
41541  
41542  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/save.js
41543  /**
41544   * External dependencies
41545   */
41546  
41547  
41548  /**
41549   * WordPress dependencies
41550   */
41551  
41552  
41553  
41554  function paragraph_save_save({
41555    attributes
41556  }) {
41557    const {
41558      align,
41559      content,
41560      dropCap,
41561      direction
41562    } = attributes;
41563    const className = dist_clsx({
41564      'has-drop-cap': align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center' ? false : dropCap,
41565      [`has-text-align-$align}`]: align
41566    });
41567    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
41568      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
41569        className,
41570        dir: direction
41571      }),
41572      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41573        value: content
41574      })
41575    });
41576  }
41577  
41578  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js
41579  /**
41580   * WordPress dependencies
41581   */
41582  
41583  
41584  /**
41585   * Internal dependencies
41586   */
41587  const {
41588    name: transforms_name
41589  } = {
41590    $schema: "https://schemas.wp.org/trunk/block.json",
41591    apiVersion: 3,
41592    name: "core/paragraph",
41593    title: "Paragraph",
41594    category: "text",
41595    description: "Start with the basic building block of all narrative.",
41596    keywords: ["text"],
41597    textdomain: "default",
41598    attributes: {
41599      align: {
41600        type: "string"
41601      },
41602      content: {
41603        type: "rich-text",
41604        source: "rich-text",
41605        selector: "p",
41606        role: "content"
41607      },
41608      dropCap: {
41609        type: "boolean",
41610        "default": false
41611      },
41612      placeholder: {
41613        type: "string"
41614      },
41615      direction: {
41616        type: "string",
41617        "enum": ["ltr", "rtl"]
41618      }
41619    },
41620    supports: {
41621      splitting: true,
41622      anchor: true,
41623      className: false,
41624      __experimentalBorder: {
41625        color: true,
41626        radius: true,
41627        style: true,
41628        width: true
41629      },
41630      color: {
41631        gradients: true,
41632        link: true,
41633        __experimentalDefaultControls: {
41634          background: true,
41635          text: true
41636        }
41637      },
41638      spacing: {
41639        margin: true,
41640        padding: true,
41641        __experimentalDefaultControls: {
41642          margin: false,
41643          padding: false
41644        }
41645      },
41646      typography: {
41647        fontSize: true,
41648        lineHeight: true,
41649        __experimentalFontFamily: true,
41650        __experimentalTextDecoration: true,
41651        __experimentalFontStyle: true,
41652        __experimentalFontWeight: true,
41653        __experimentalLetterSpacing: true,
41654        __experimentalTextTransform: true,
41655        __experimentalWritingMode: true,
41656        __experimentalDefaultControls: {
41657          fontSize: true
41658        }
41659      },
41660      __experimentalSelector: "p",
41661      __unstablePasteTextInline: true,
41662      interactivity: {
41663        clientNavigation: true
41664      }
41665    },
41666    editorStyle: "wp-block-paragraph-editor",
41667    style: "wp-block-paragraph"
41668  };
41669  const paragraph_transforms_transforms = {
41670    from: [{
41671      type: 'raw',
41672      // Paragraph is a fallback and should be matched last.
41673      priority: 20,
41674      selector: 'p',
41675      schema: ({
41676        phrasingContentSchema,
41677        isPaste
41678      }) => ({
41679        p: {
41680          children: phrasingContentSchema,
41681          attributes: isPaste ? [] : ['style', 'id']
41682        }
41683      }),
41684      transform(node) {
41685        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(transforms_name, node.outerHTML);
41686        const {
41687          textAlign
41688        } = node.style || {};
41689        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
41690          attributes.align = textAlign;
41691        }
41692        return (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, attributes);
41693      }
41694    }]
41695  };
41696  /* harmony default export */ const paragraph_transforms = (paragraph_transforms_transforms);
41697  
41698  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
41699  /**
41700   * WordPress dependencies
41701   */
41702  
41703  
41704  
41705  /**
41706   * Internal dependencies
41707   */
41708  
41709  
41710  
41711  const paragraph_metadata = {
41712    $schema: "https://schemas.wp.org/trunk/block.json",
41713    apiVersion: 3,
41714    name: "core/paragraph",
41715    title: "Paragraph",
41716    category: "text",
41717    description: "Start with the basic building block of all narrative.",
41718    keywords: ["text"],
41719    textdomain: "default",
41720    attributes: {
41721      align: {
41722        type: "string"
41723      },
41724      content: {
41725        type: "rich-text",
41726        source: "rich-text",
41727        selector: "p",
41728        role: "content"
41729      },
41730      dropCap: {
41731        type: "boolean",
41732        "default": false
41733      },
41734      placeholder: {
41735        type: "string"
41736      },
41737      direction: {
41738        type: "string",
41739        "enum": ["ltr", "rtl"]
41740      }
41741    },
41742    supports: {
41743      splitting: true,
41744      anchor: true,
41745      className: false,
41746      __experimentalBorder: {
41747        color: true,
41748        radius: true,
41749        style: true,
41750        width: true
41751      },
41752      color: {
41753        gradients: true,
41754        link: true,
41755        __experimentalDefaultControls: {
41756          background: true,
41757          text: true
41758        }
41759      },
41760      spacing: {
41761        margin: true,
41762        padding: true,
41763        __experimentalDefaultControls: {
41764          margin: false,
41765          padding: false
41766        }
41767      },
41768      typography: {
41769        fontSize: true,
41770        lineHeight: true,
41771        __experimentalFontFamily: true,
41772        __experimentalTextDecoration: true,
41773        __experimentalFontStyle: true,
41774        __experimentalFontWeight: true,
41775        __experimentalLetterSpacing: true,
41776        __experimentalTextTransform: true,
41777        __experimentalWritingMode: true,
41778        __experimentalDefaultControls: {
41779          fontSize: true
41780        }
41781      },
41782      __experimentalSelector: "p",
41783      __unstablePasteTextInline: true,
41784      interactivity: {
41785        clientNavigation: true
41786      }
41787    },
41788    editorStyle: "wp-block-paragraph-editor",
41789    style: "wp-block-paragraph"
41790  };
41791  
41792  
41793  const {
41794    name: paragraph_name
41795  } = paragraph_metadata;
41796  
41797  const paragraph_settings = {
41798    icon: library_paragraph,
41799    example: {
41800      attributes: {
41801        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.')
41802      }
41803    },
41804    __experimentalLabel(attributes, {
41805      context
41806    }) {
41807      const customName = attributes?.metadata?.name;
41808      if (context === 'list-view' && customName) {
41809        return customName;
41810      }
41811      if (context === 'accessibility') {
41812        if (customName) {
41813          return customName;
41814        }
41815        const {
41816          content
41817        } = attributes;
41818        return !content || content.length === 0 ? (0,external_wp_i18n_namespaceObject.__)('Empty') : content;
41819      }
41820    },
41821    transforms: paragraph_transforms,
41822    deprecated: paragraph_deprecated,
41823    merge(attributes, attributesToMerge) {
41824      return {
41825        content: (attributes.content || '') + (attributesToMerge.content || '')
41826      };
41827    },
41828    edit: paragraph_edit,
41829    save: paragraph_save_save
41830  };
41831  const paragraph_init = () => initBlock({
41832    name: paragraph_name,
41833    metadata: paragraph_metadata,
41834    settings: paragraph_settings
41835  });
41836  
41837  ;// ./node_modules/@wordpress/icons/build-module/library/post-author.js
41838  /**
41839   * WordPress dependencies
41840   */
41841  
41842  
41843  const postAuthor = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41844    viewBox: "0 0 24 24",
41845    xmlns: "http://www.w3.org/2000/svg",
41846    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41847      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",
41848      fillRule: "evenodd",
41849      clipRule: "evenodd"
41850    })
41851  });
41852  /* harmony default export */ const post_author = (postAuthor);
41853  
41854  ;// ./node_modules/@wordpress/block-library/build-module/post-author/edit.js
41855  /**
41856   * External dependencies
41857   */
41858  
41859  
41860  /**
41861   * WordPress dependencies
41862   */
41863  
41864  
41865  
41866  
41867  
41868  
41869  const minimumUsersForCombobox = 25;
41870  const edit_AUTHORS_QUERY = {
41871    who: 'authors',
41872    per_page: 100
41873  };
41874  function PostAuthorEdit({
41875    isSelected,
41876    context: {
41877      postType,
41878      postId,
41879      queryId
41880    },
41881    attributes,
41882    setAttributes
41883  }) {
41884    const isDescendentOfQueryLoop = Number.isFinite(queryId);
41885    const {
41886      authorId,
41887      authorDetails,
41888      authors,
41889      supportsAuthor
41890    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
41891      var _getPostType$supports;
41892      const {
41893        getEditedEntityRecord,
41894        getUser,
41895        getUsers,
41896        getPostType
41897      } = select(external_wp_coreData_namespaceObject.store);
41898      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
41899      return {
41900        authorId: _authorId,
41901        authorDetails: _authorId ? getUser(_authorId) : null,
41902        authors: getUsers(edit_AUTHORS_QUERY),
41903        supportsAuthor: (_getPostType$supports = getPostType(postType)?.supports?.author) !== null && _getPostType$supports !== void 0 ? _getPostType$supports : false
41904      };
41905    }, [postType, postId]);
41906    const {
41907      editEntityRecord
41908    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
41909    const {
41910      textAlign,
41911      showAvatar,
41912      showBio,
41913      byline,
41914      isLink,
41915      linkTarget
41916    } = attributes;
41917    const avatarSizes = [];
41918    const authorName = authorDetails?.name || (0,external_wp_i18n_namespaceObject.__)('Post Author');
41919    if (authorDetails?.avatar_urls) {
41920      Object.keys(authorDetails.avatar_urls).forEach(size => {
41921        avatarSizes.push({
41922          value: size,
41923          label: `$size} x $size}`
41924        });
41925      });
41926    }
41927    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41928      className: dist_clsx({
41929        [`has-text-align-$textAlign}`]: textAlign
41930      })
41931    });
41932    const authorOptions = authors?.length ? authors.map(({
41933      id,
41934      name
41935    }) => {
41936      return {
41937        value: id,
41938        label: name
41939      };
41940    }) : [];
41941    const handleSelect = nextAuthorId => {
41942      editEntityRecord('postType', postType, postId, {
41943        author: nextAuthorId
41944      });
41945    };
41946    const showCombobox = authorOptions.length >= minimumUsersForCombobox;
41947    const showAuthorControl = !!postId && !isDescendentOfQueryLoop && authorOptions.length > 0;
41948    if (!supportsAuthor && postType !== undefined) {
41949      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41950        ...blockProps,
41951        children: (0,external_wp_i18n_namespaceObject.sprintf)(
41952        // translators: %s: Name of the post type e.g: "post".
41953        (0,external_wp_i18n_namespaceObject.__)('This post type (%s) does not support the author.'), postType)
41954      });
41955    }
41956    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41957      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
41958        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
41959          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
41960          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
41961            spacing: 4,
41962            className: "wp-block-post-author__inspector-settings",
41963            children: [showAuthorControl && (showCombobox && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
41964              __next40pxDefaultSize: true,
41965              __nextHasNoMarginBottom: true,
41966              label: (0,external_wp_i18n_namespaceObject.__)('Author'),
41967              options: authorOptions,
41968              value: authorId,
41969              onChange: handleSelect,
41970              allowReset: false
41971            }) || /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
41972              __next40pxDefaultSize: true,
41973              __nextHasNoMarginBottom: true,
41974              label: (0,external_wp_i18n_namespaceObject.__)('Author'),
41975              value: authorId,
41976              options: authorOptions,
41977              onChange: handleSelect
41978            })), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
41979              __nextHasNoMarginBottom: true,
41980              label: (0,external_wp_i18n_namespaceObject.__)('Show avatar'),
41981              checked: showAvatar,
41982              onChange: () => setAttributes({
41983                showAvatar: !showAvatar
41984              })
41985            }), showAvatar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
41986              __next40pxDefaultSize: true,
41987              __nextHasNoMarginBottom: true,
41988              label: (0,external_wp_i18n_namespaceObject.__)('Avatar size'),
41989              value: attributes.avatarSize,
41990              options: avatarSizes,
41991              onChange: size => {
41992                setAttributes({
41993                  avatarSize: Number(size)
41994                });
41995              }
41996            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
41997              __nextHasNoMarginBottom: true,
41998              label: (0,external_wp_i18n_namespaceObject.__)('Show bio'),
41999              checked: showBio,
42000              onChange: () => setAttributes({
42001                showBio: !showBio
42002              })
42003            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42004              __nextHasNoMarginBottom: true,
42005              label: (0,external_wp_i18n_namespaceObject.__)('Link author name to author page'),
42006              checked: isLink,
42007              onChange: () => setAttributes({
42008                isLink: !isLink
42009              })
42010            }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42011              __nextHasNoMarginBottom: true,
42012              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
42013              onChange: value => setAttributes({
42014                linkTarget: value ? '_blank' : '_self'
42015              }),
42016              checked: linkTarget === '_blank'
42017            })]
42018          })
42019        })
42020      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42021        group: "block",
42022        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42023          value: textAlign,
42024          onChange: nextAlign => {
42025            setAttributes({
42026              textAlign: nextAlign
42027            });
42028          }
42029        })
42030      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42031        ...blockProps,
42032        children: [showAvatar && authorDetails?.avatar_urls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42033          className: "wp-block-post-author__avatar",
42034          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
42035            width: attributes.avatarSize,
42036            src: authorDetails.avatar_urls[attributes.avatarSize],
42037            alt: authorDetails.name
42038          })
42039        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42040          className: "wp-block-post-author__content",
42041          children: [(!external_wp_blockEditor_namespaceObject.RichText.isEmpty(byline) || isSelected) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
42042            identifier: "byline",
42043            className: "wp-block-post-author__byline",
42044            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post author byline text'),
42045            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write byline…'),
42046            value: byline,
42047            onChange: value => setAttributes({
42048              byline: value
42049            })
42050          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42051            className: "wp-block-post-author__name",
42052            children: isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
42053              href: "#post-author-pseudo-link",
42054              onClick: event => event.preventDefault(),
42055              children: authorName
42056            }) : authorName
42057          }), showBio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42058            className: "wp-block-post-author__bio",
42059            dangerouslySetInnerHTML: {
42060              __html: authorDetails?.description
42061            }
42062          })]
42063        })]
42064      })]
42065    });
42066  }
42067  /* harmony default export */ const post_author_edit = (PostAuthorEdit);
42068  
42069  ;// ./node_modules/@wordpress/block-library/build-module/post-author/index.js
42070  /**
42071   * WordPress dependencies
42072   */
42073  
42074  
42075  
42076  /**
42077   * Internal dependencies
42078   */
42079  
42080  const post_author_metadata = {
42081    $schema: "https://schemas.wp.org/trunk/block.json",
42082    apiVersion: 3,
42083    name: "core/post-author",
42084    title: "Author",
42085    category: "theme",
42086    description: "Display post author details such as name, avatar, and bio.",
42087    textdomain: "default",
42088    attributes: {
42089      textAlign: {
42090        type: "string"
42091      },
42092      avatarSize: {
42093        type: "number",
42094        "default": 48
42095      },
42096      showAvatar: {
42097        type: "boolean",
42098        "default": true
42099      },
42100      showBio: {
42101        type: "boolean"
42102      },
42103      byline: {
42104        type: "string"
42105      },
42106      isLink: {
42107        type: "boolean",
42108        "default": false,
42109        role: "content"
42110      },
42111      linkTarget: {
42112        type: "string",
42113        "default": "_self",
42114        role: "content"
42115      }
42116    },
42117    usesContext: ["postType", "postId", "queryId"],
42118    supports: {
42119      html: false,
42120      spacing: {
42121        margin: true,
42122        padding: true
42123      },
42124      typography: {
42125        fontSize: true,
42126        lineHeight: true,
42127        __experimentalFontFamily: true,
42128        __experimentalFontWeight: true,
42129        __experimentalFontStyle: true,
42130        __experimentalTextTransform: true,
42131        __experimentalTextDecoration: true,
42132        __experimentalLetterSpacing: true,
42133        __experimentalDefaultControls: {
42134          fontSize: true
42135        }
42136      },
42137      color: {
42138        gradients: true,
42139        link: true,
42140        __experimentalDuotone: ".wp-block-post-author__avatar img",
42141        __experimentalDefaultControls: {
42142          background: true,
42143          text: true
42144        }
42145      },
42146      interactivity: {
42147        clientNavigation: true
42148      },
42149      __experimentalBorder: {
42150        radius: true,
42151        color: true,
42152        width: true,
42153        style: true,
42154        __experimentalDefaultControls: {
42155          radius: true,
42156          color: true,
42157          width: true,
42158          style: true
42159        }
42160      }
42161    },
42162    editorStyle: "wp-block-post-author-editor",
42163    style: "wp-block-post-author"
42164  };
42165  
42166  const {
42167    name: post_author_name
42168  } = post_author_metadata;
42169  
42170  const post_author_settings = {
42171    icon: post_author,
42172    example: {
42173      viewportWidth: 350,
42174      attributes: {
42175        showBio: true,
42176        byline: (0,external_wp_i18n_namespaceObject.__)('Posted by')
42177      }
42178    },
42179    edit: post_author_edit
42180  };
42181  const post_author_init = () => initBlock({
42182    name: post_author_name,
42183    metadata: post_author_metadata,
42184    settings: post_author_settings
42185  });
42186  
42187  ;// ./node_modules/@wordpress/block-library/build-module/post-author-name/edit.js
42188  /**
42189   * External dependencies
42190   */
42191  
42192  
42193  /**
42194   * WordPress dependencies
42195   */
42196  
42197  
42198  
42199  
42200  
42201  
42202  /**
42203   * Internal dependencies
42204   */
42205  
42206  
42207  function PostAuthorNameEdit({
42208    context: {
42209      postType,
42210      postId
42211    },
42212    attributes: {
42213      textAlign,
42214      isLink,
42215      linkTarget
42216    },
42217    setAttributes
42218  }) {
42219    const {
42220      authorName,
42221      supportsAuthor
42222    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
42223      var _getPostType$supports;
42224      const {
42225        getEditedEntityRecord,
42226        getUser,
42227        getPostType
42228      } = select(external_wp_coreData_namespaceObject.store);
42229      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
42230      return {
42231        authorName: _authorId ? getUser(_authorId) : null,
42232        supportsAuthor: (_getPostType$supports = getPostType(postType)?.supports?.author) !== null && _getPostType$supports !== void 0 ? _getPostType$supports : false
42233      };
42234    }, [postType, postId]);
42235    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42236      className: dist_clsx({
42237        [`has-text-align-$textAlign}`]: textAlign
42238      })
42239    });
42240    const displayName = authorName?.name || (0,external_wp_i18n_namespaceObject.__)('Author Name');
42241    const displayAuthor = isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
42242      href: "#author-pseudo-link",
42243      onClick: event => event.preventDefault(),
42244      className: "wp-block-post-author-name__link",
42245      children: displayName
42246    }) : displayName;
42247    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
42248    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42249      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42250        group: "block",
42251        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42252          value: textAlign,
42253          onChange: nextAlign => {
42254            setAttributes({
42255              textAlign: nextAlign
42256            });
42257          }
42258        })
42259      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
42260        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
42261          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
42262          resetAll: () => {
42263            setAttributes({
42264              isLink: false,
42265              linkTarget: '_self'
42266            });
42267          },
42268          dropdownMenuProps: dropdownMenuProps,
42269          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
42270            label: (0,external_wp_i18n_namespaceObject.__)('Link to author archive'),
42271            isShownByDefault: true,
42272            hasValue: () => isLink,
42273            onDeselect: () => setAttributes({
42274              isLink: false
42275            }),
42276            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42277              __nextHasNoMarginBottom: true,
42278              label: (0,external_wp_i18n_namespaceObject.__)('Link to author archive'),
42279              onChange: () => setAttributes({
42280                isLink: !isLink
42281              }),
42282              checked: isLink
42283            })
42284          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
42285            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
42286            isShownByDefault: true,
42287            hasValue: () => linkTarget !== '_self',
42288            onDeselect: () => setAttributes({
42289              linkTarget: '_self'
42290            }),
42291            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42292              __nextHasNoMarginBottom: true,
42293              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
42294              onChange: value => setAttributes({
42295                linkTarget: value ? '_blank' : '_self'
42296              }),
42297              checked: linkTarget === '_blank'
42298            })
42299          })]
42300        })
42301      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42302        ...blockProps,
42303        children: !supportsAuthor && postType !== undefined ? (0,external_wp_i18n_namespaceObject.sprintf)(
42304        // translators: %s: Name of the post type e.g: "post".
42305        (0,external_wp_i18n_namespaceObject.__)('This post type (%s) does not support the author.'), postType) : displayAuthor
42306      })]
42307    });
42308  }
42309  /* harmony default export */ const post_author_name_edit = (PostAuthorNameEdit);
42310  
42311  ;// ./node_modules/@wordpress/block-library/build-module/post-author-name/transforms.js
42312  /**
42313   * WordPress dependencies
42314   */
42315  
42316  const post_author_name_transforms_transforms = {
42317    from: [{
42318      type: 'block',
42319      blocks: ['core/post-author'],
42320      transform: ({
42321        textAlign
42322      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-author-name', {
42323        textAlign
42324      })
42325    }],
42326    to: [{
42327      type: 'block',
42328      blocks: ['core/post-author'],
42329      transform: ({
42330        textAlign
42331      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-author', {
42332        textAlign
42333      })
42334    }]
42335  };
42336  /* harmony default export */ const post_author_name_transforms = (post_author_name_transforms_transforms);
42337  
42338  ;// ./node_modules/@wordpress/block-library/build-module/post-author-name/index.js
42339  /**
42340   * WordPress dependencies
42341   */
42342  
42343  
42344  /**
42345   * Internal dependencies
42346   */
42347  
42348  const post_author_name_metadata = {
42349    $schema: "https://schemas.wp.org/trunk/block.json",
42350    apiVersion: 3,
42351    name: "core/post-author-name",
42352    title: "Author Name",
42353    category: "theme",
42354    description: "The author name.",
42355    textdomain: "default",
42356    attributes: {
42357      textAlign: {
42358        type: "string"
42359      },
42360      isLink: {
42361        type: "boolean",
42362        "default": false,
42363        role: "content"
42364      },
42365      linkTarget: {
42366        type: "string",
42367        "default": "_self",
42368        role: "content"
42369      }
42370    },
42371    usesContext: ["postType", "postId"],
42372    example: {
42373      viewportWidth: 350
42374    },
42375    supports: {
42376      html: false,
42377      spacing: {
42378        margin: true,
42379        padding: true
42380      },
42381      color: {
42382        gradients: true,
42383        link: true,
42384        __experimentalDefaultControls: {
42385          background: true,
42386          text: true,
42387          link: true
42388        }
42389      },
42390      typography: {
42391        fontSize: true,
42392        lineHeight: true,
42393        __experimentalFontFamily: true,
42394        __experimentalFontWeight: true,
42395        __experimentalFontStyle: true,
42396        __experimentalTextTransform: true,
42397        __experimentalTextDecoration: true,
42398        __experimentalLetterSpacing: true,
42399        __experimentalDefaultControls: {
42400          fontSize: true
42401        }
42402      },
42403      interactivity: {
42404        clientNavigation: true
42405      },
42406      __experimentalBorder: {
42407        radius: true,
42408        color: true,
42409        width: true,
42410        style: true,
42411        __experimentalDefaultControls: {
42412          radius: true,
42413          color: true,
42414          width: true,
42415          style: true
42416        }
42417      }
42418    },
42419    style: "wp-block-post-author-name"
42420  };
42421  
42422  
42423  const {
42424    name: post_author_name_name
42425  } = post_author_name_metadata;
42426  
42427  const post_author_name_settings = {
42428    icon: post_author,
42429    transforms: post_author_name_transforms,
42430    edit: post_author_name_edit
42431  };
42432  const post_author_name_init = () => initBlock({
42433    name: post_author_name_name,
42434    metadata: post_author_name_metadata,
42435    settings: post_author_name_settings
42436  });
42437  
42438  ;// ./node_modules/@wordpress/block-library/build-module/post-author-biography/edit.js
42439  /**
42440   * External dependencies
42441   */
42442  
42443  
42444  /**
42445   * WordPress dependencies
42446   */
42447  
42448  
42449  
42450  
42451  
42452  function PostAuthorBiographyEdit({
42453    context: {
42454      postType,
42455      postId
42456    },
42457    attributes: {
42458      textAlign
42459    },
42460    setAttributes
42461  }) {
42462    const {
42463      authorDetails
42464    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
42465      const {
42466        getEditedEntityRecord,
42467        getUser
42468      } = select(external_wp_coreData_namespaceObject.store);
42469      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
42470      return {
42471        authorDetails: _authorId ? getUser(_authorId) : null
42472      };
42473    }, [postType, postId]);
42474    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42475      className: dist_clsx({
42476        [`has-text-align-$textAlign}`]: textAlign
42477      })
42478    });
42479    const displayAuthorBiography = authorDetails?.description || (0,external_wp_i18n_namespaceObject.__)('Author Biography');
42480    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42481      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42482        group: "block",
42483        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42484          value: textAlign,
42485          onChange: nextAlign => {
42486            setAttributes({
42487              textAlign: nextAlign
42488            });
42489          }
42490        })
42491      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42492        ...blockProps,
42493        dangerouslySetInnerHTML: {
42494          __html: displayAuthorBiography
42495        }
42496      })]
42497    });
42498  }
42499  /* harmony default export */ const post_author_biography_edit = (PostAuthorBiographyEdit);
42500  
42501  ;// ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
42502  /**
42503   * WordPress dependencies
42504   */
42505  
42506  
42507  /**
42508   * Internal dependencies
42509   */
42510  
42511  const post_author_biography_metadata = {
42512    $schema: "https://schemas.wp.org/trunk/block.json",
42513    apiVersion: 3,
42514    name: "core/post-author-biography",
42515    title: "Author Biography",
42516    category: "theme",
42517    description: "The author biography.",
42518    textdomain: "default",
42519    attributes: {
42520      textAlign: {
42521        type: "string"
42522      }
42523    },
42524    usesContext: ["postType", "postId"],
42525    example: {
42526      viewportWidth: 350
42527    },
42528    supports: {
42529      spacing: {
42530        margin: true,
42531        padding: true
42532      },
42533      color: {
42534        gradients: true,
42535        link: true,
42536        __experimentalDefaultControls: {
42537          background: true,
42538          text: true
42539        }
42540      },
42541      typography: {
42542        fontSize: true,
42543        lineHeight: true,
42544        __experimentalFontFamily: true,
42545        __experimentalFontWeight: true,
42546        __experimentalFontStyle: true,
42547        __experimentalTextTransform: true,
42548        __experimentalTextDecoration: true,
42549        __experimentalLetterSpacing: true,
42550        __experimentalDefaultControls: {
42551          fontSize: true
42552        }
42553      },
42554      interactivity: {
42555        clientNavigation: true
42556      },
42557      __experimentalBorder: {
42558        radius: true,
42559        color: true,
42560        width: true,
42561        style: true,
42562        __experimentalDefaultControls: {
42563          radius: true,
42564          color: true,
42565          width: true,
42566          style: true
42567        }
42568      }
42569    },
42570    style: "wp-block-post-author-biography"
42571  };
42572  
42573  const {
42574    name: post_author_biography_name
42575  } = post_author_biography_metadata;
42576  
42577  const post_author_biography_settings = {
42578    icon: post_author,
42579    edit: post_author_biography_edit
42580  };
42581  const post_author_biography_init = () => initBlock({
42582    name: post_author_biography_name,
42583    metadata: post_author_biography_metadata,
42584    settings: post_author_biography_settings
42585  });
42586  
42587  ;// ./node_modules/@wordpress/icons/build-module/library/block-default.js
42588  /**
42589   * WordPress dependencies
42590   */
42591  
42592  
42593  const blockDefault = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42594    xmlns: "http://www.w3.org/2000/svg",
42595    viewBox: "0 0 24 24",
42596    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42597      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"
42598    })
42599  });
42600  /* harmony default export */ const block_default = (blockDefault);
42601  
42602  ;// ./node_modules/@wordpress/block-library/build-module/post-comment/edit.js
42603  /**
42604   * WordPress dependencies
42605   */
42606  
42607  
42608  
42609  
42610  
42611  
42612  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']];
42613  function post_comment_edit_Edit({
42614    attributes: {
42615      commentId
42616    },
42617    setAttributes
42618  }) {
42619    const [commentIdInput, setCommentIdInput] = (0,external_wp_element_namespaceObject.useState)(commentId);
42620    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
42621    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
42622      template: post_comment_edit_TEMPLATE
42623    });
42624    if (!commentId) {
42625      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42626        ...blockProps,
42627        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
42628          icon: block_default,
42629          label: (0,external_wp_i18n_namespaceObject._x)('Post Comment', 'block title'),
42630          instructions: (0,external_wp_i18n_namespaceObject.__)('To show a comment, input the comment ID.'),
42631          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
42632            __next40pxDefaultSize: true,
42633            __nextHasNoMarginBottom: true,
42634            value: commentId,
42635            onChange: val => setCommentIdInput(parseInt(val))
42636          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
42637            __next40pxDefaultSize: true,
42638            variant: "primary",
42639            onClick: () => {
42640              setAttributes({
42641                commentId: commentIdInput
42642              });
42643            },
42644            children: (0,external_wp_i18n_namespaceObject.__)('Save')
42645          })]
42646        })
42647      });
42648    }
42649    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42650      ...innerBlocksProps
42651    });
42652  }
42653  
42654  ;// ./node_modules/@wordpress/block-library/build-module/post-comment/save.js
42655  /**
42656   * WordPress dependencies
42657   */
42658  
42659  
42660  function post_comment_save_save() {
42661    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
42662    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
42663    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42664      ...innerBlocksProps
42665    });
42666  }
42667  
42668  ;// ./node_modules/@wordpress/block-library/build-module/post-comment/index.js
42669  /**
42670   * WordPress dependencies
42671   */
42672  
42673  
42674  /**
42675   * Internal dependencies
42676   */
42677  
42678  const post_comment_metadata = {
42679    $schema: "https://schemas.wp.org/trunk/block.json",
42680    apiVersion: 3,
42681    __experimental: "fse",
42682    name: "core/post-comment",
42683    title: "Comment (deprecated)",
42684    category: "theme",
42685    allowedBlocks: ["core/avatar", "core/comment-author-name", "core/comment-content", "core/comment-date", "core/comment-edit-link", "core/comment-reply-link"],
42686    description: "This block is deprecated. Please use the Comments block instead.",
42687    textdomain: "default",
42688    attributes: {
42689      commentId: {
42690        type: "number"
42691      }
42692    },
42693    providesContext: {
42694      commentId: "commentId"
42695    },
42696    supports: {
42697      html: false,
42698      inserter: false,
42699      interactivity: {
42700        clientNavigation: true
42701      }
42702    }
42703  };
42704  
42705  
42706  const {
42707    name: post_comment_name
42708  } = post_comment_metadata;
42709  
42710  const post_comment_settings = {
42711    icon: library_comment,
42712    edit: post_comment_edit_Edit,
42713    save: post_comment_save_save
42714  };
42715  const post_comment_init = () => initBlock({
42716    name: post_comment_name,
42717    metadata: post_comment_metadata,
42718    settings: post_comment_settings
42719  });
42720  
42721  ;// ./node_modules/@wordpress/icons/build-module/library/post-comments-count.js
42722  /**
42723   * WordPress dependencies
42724   */
42725  
42726  
42727  const postCommentsCount = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42728    xmlns: "http://www.w3.org/2000/svg",
42729    viewBox: "0 0 24 24",
42730    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42731      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"
42732    })
42733  });
42734  /* harmony default export */ const post_comments_count = (postCommentsCount);
42735  
42736  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-count/edit.js
42737  /**
42738   * External dependencies
42739   */
42740  
42741  
42742  /**
42743   * WordPress dependencies
42744   */
42745  
42746  
42747  
42748  
42749  
42750  
42751  function PostCommentsCountEdit({
42752    attributes,
42753    context,
42754    setAttributes
42755  }) {
42756    const {
42757      textAlign
42758    } = attributes;
42759    const {
42760      postId
42761    } = context;
42762    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
42763    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42764      className: dist_clsx({
42765        [`has-text-align-$textAlign}`]: textAlign
42766      })
42767    });
42768    (0,external_wp_element_namespaceObject.useEffect)(() => {
42769      if (!postId) {
42770        return;
42771      }
42772      const currentPostId = postId;
42773      external_wp_apiFetch_default()({
42774        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
42775          post: postId
42776        }),
42777        parse: false
42778      }).then(res => {
42779        // Stale requests will have the `currentPostId` of an older closure.
42780        if (currentPostId === postId) {
42781          setCommentsCount(res.headers.get('X-WP-Total'));
42782        }
42783      });
42784    }, [postId]);
42785    const hasPostAndComments = postId && commentsCount !== undefined;
42786    const blockStyles = {
42787      ...blockProps.style,
42788      textDecoration: hasPostAndComments ? blockProps.style?.textDecoration : undefined
42789    };
42790    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42791      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42792        group: "block",
42793        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42794          value: textAlign,
42795          onChange: nextAlign => {
42796            setAttributes({
42797              textAlign: nextAlign
42798            });
42799          }
42800        })
42801      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42802        ...blockProps,
42803        style: blockStyles,
42804        children: hasPostAndComments ? commentsCount : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
42805          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Count block: post not found.')
42806        })
42807      })]
42808    });
42809  }
42810  
42811  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-count/index.js
42812  /**
42813   * WordPress dependencies
42814   */
42815  
42816  
42817  /**
42818   * Internal dependencies
42819   */
42820  
42821  const post_comments_count_metadata = {
42822    $schema: "https://schemas.wp.org/trunk/block.json",
42823    apiVersion: 3,
42824    __experimental: "fse",
42825    name: "core/post-comments-count",
42826    title: "Comments Count",
42827    category: "theme",
42828    description: "Display a post's comments count.",
42829    textdomain: "default",
42830    attributes: {
42831      textAlign: {
42832        type: "string"
42833      }
42834    },
42835    usesContext: ["postId"],
42836    supports: {
42837      html: false,
42838      color: {
42839        gradients: true,
42840        __experimentalDefaultControls: {
42841          background: true,
42842          text: true
42843        }
42844      },
42845      spacing: {
42846        margin: true,
42847        padding: true
42848      },
42849      typography: {
42850        fontSize: true,
42851        lineHeight: true,
42852        __experimentalFontFamily: true,
42853        __experimentalFontWeight: true,
42854        __experimentalFontStyle: true,
42855        __experimentalTextTransform: true,
42856        __experimentalTextDecoration: true,
42857        __experimentalLetterSpacing: true,
42858        __experimentalDefaultControls: {
42859          fontSize: true
42860        }
42861      },
42862      __experimentalBorder: {
42863        radius: true,
42864        color: true,
42865        width: true,
42866        style: true
42867      },
42868      interactivity: {
42869        clientNavigation: true
42870      }
42871    },
42872    style: "wp-block-post-comments-count"
42873  };
42874  
42875  const {
42876    name: post_comments_count_name
42877  } = post_comments_count_metadata;
42878  
42879  const post_comments_count_settings = {
42880    icon: post_comments_count,
42881    edit: PostCommentsCountEdit
42882  };
42883  const post_comments_count_init = () => initBlock({
42884    name: post_comments_count_name,
42885    metadata: post_comments_count_metadata,
42886    settings: post_comments_count_settings
42887  });
42888  
42889  ;// ./node_modules/@wordpress/icons/build-module/library/post-comments-form.js
42890  /**
42891   * WordPress dependencies
42892   */
42893  
42894  
42895  const postCommentsForm = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42896    xmlns: "http://www.w3.org/2000/svg",
42897    viewBox: "0 0 24 24",
42898    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42899      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"
42900    })
42901  });
42902  /* harmony default export */ const post_comments_form = (postCommentsForm);
42903  
42904  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-form/edit.js
42905  /**
42906   * External dependencies
42907   */
42908  
42909  
42910  /**
42911   * WordPress dependencies
42912   */
42913  
42914  
42915  
42916  
42917  
42918  /**
42919   * Internal dependencies
42920   */
42921  
42922  
42923  function PostCommentsFormEdit({
42924    attributes,
42925    context,
42926    setAttributes
42927  }) {
42928    const {
42929      textAlign
42930    } = attributes;
42931    const {
42932      postId,
42933      postType
42934    } = context;
42935    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsFormEdit);
42936    const instanceIdDesc = (0,external_wp_i18n_namespaceObject.sprintf)('comments-form-edit-%d-desc', instanceId);
42937    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42938      className: dist_clsx({
42939        [`has-text-align-$textAlign}`]: textAlign
42940      }),
42941      'aria-describedby': instanceIdDesc
42942    });
42943    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42944      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42945        group: "block",
42946        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42947          value: textAlign,
42948          onChange: nextAlign => {
42949            setAttributes({
42950              textAlign: nextAlign
42951            });
42952          }
42953        })
42954      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42955        ...blockProps,
42956        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_comments_form_form, {
42957          postId: postId,
42958          postType: postType
42959        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
42960          id: instanceIdDesc,
42961          children: (0,external_wp_i18n_namespaceObject.__)('Comments form disabled in editor.')
42962        })]
42963      })]
42964    });
42965  }
42966  
42967  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
42968  /**
42969   * WordPress dependencies
42970   */
42971  
42972  
42973  /**
42974   * Internal dependencies
42975   */
42976  
42977  const post_comments_form_metadata = {
42978    $schema: "https://schemas.wp.org/trunk/block.json",
42979    apiVersion: 3,
42980    name: "core/post-comments-form",
42981    title: "Comments Form",
42982    category: "theme",
42983    description: "Display a post's comments form.",
42984    textdomain: "default",
42985    attributes: {
42986      textAlign: {
42987        type: "string"
42988      }
42989    },
42990    usesContext: ["postId", "postType"],
42991    supports: {
42992      html: false,
42993      color: {
42994        gradients: true,
42995        heading: true,
42996        link: true,
42997        __experimentalDefaultControls: {
42998          background: true,
42999          text: true
43000        }
43001      },
43002      spacing: {
43003        margin: true,
43004        padding: true
43005      },
43006      typography: {
43007        fontSize: true,
43008        lineHeight: true,
43009        __experimentalFontStyle: true,
43010        __experimentalFontWeight: true,
43011        __experimentalLetterSpacing: true,
43012        __experimentalTextTransform: true,
43013        __experimentalDefaultControls: {
43014          fontSize: true
43015        }
43016      },
43017      __experimentalBorder: {
43018        radius: true,
43019        color: true,
43020        width: true,
43021        style: true,
43022        __experimentalDefaultControls: {
43023          radius: true,
43024          color: true,
43025          width: true,
43026          style: true
43027        }
43028      }
43029    },
43030    editorStyle: "wp-block-post-comments-form-editor",
43031    style: ["wp-block-post-comments-form", "wp-block-buttons", "wp-block-button"],
43032    example: {
43033      attributes: {
43034        textAlign: "center"
43035      }
43036    }
43037  };
43038  
43039  const {
43040    name: post_comments_form_name
43041  } = post_comments_form_metadata;
43042  
43043  const post_comments_form_settings = {
43044    icon: post_comments_form,
43045    edit: PostCommentsFormEdit
43046  };
43047  const post_comments_form_init = () => initBlock({
43048    name: post_comments_form_name,
43049    metadata: post_comments_form_metadata,
43050    settings: post_comments_form_settings
43051  });
43052  
43053  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-link/edit.js
43054  /**
43055   * External dependencies
43056   */
43057  
43058  
43059  /**
43060   * WordPress dependencies
43061   */
43062  
43063  
43064  
43065  
43066  
43067  
43068  
43069  
43070  function PostCommentsLinkEdit({
43071    context,
43072    attributes,
43073    setAttributes
43074  }) {
43075    const {
43076      textAlign
43077    } = attributes;
43078    const {
43079      postType,
43080      postId
43081    } = context;
43082    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
43083    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43084      className: dist_clsx({
43085        [`has-text-align-$textAlign}`]: textAlign
43086      })
43087    });
43088    (0,external_wp_element_namespaceObject.useEffect)(() => {
43089      if (!postId) {
43090        return;
43091      }
43092      const currentPostId = postId;
43093      external_wp_apiFetch_default()({
43094        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
43095          post: postId
43096        }),
43097        parse: false
43098      }).then(res => {
43099        // Stale requests will have the `currentPostId` of an older closure.
43100        if (currentPostId === postId) {
43101          setCommentsCount(res.headers.get('X-WP-Total'));
43102        }
43103      });
43104    }, [postId]);
43105    const post = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', postType, postId), [postType, postId]);
43106    if (!post) {
43107      return null;
43108    }
43109    const {
43110      link
43111    } = post;
43112    let commentsText;
43113    if (commentsCount !== undefined) {
43114      const commentsNumber = parseInt(commentsCount);
43115      if (commentsNumber === 0) {
43116        commentsText = (0,external_wp_i18n_namespaceObject.__)('No comments');
43117      } else {
43118        commentsText = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Number of comments */
43119        (0,external_wp_i18n_namespaceObject._n)('%s comment', '%s comments', commentsNumber), commentsNumber.toLocaleString());
43120      }
43121    }
43122    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43123      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
43124        group: "block",
43125        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
43126          value: textAlign,
43127          onChange: nextAlign => {
43128            setAttributes({
43129              textAlign: nextAlign
43130            });
43131          }
43132        })
43133      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43134        ...blockProps,
43135        children: link && commentsText !== undefined ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43136          href: link + '#comments',
43137          onClick: event => event.preventDefault(),
43138          children: commentsText
43139        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
43140          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Link block: post not found.')
43141        })
43142      })]
43143    });
43144  }
43145  /* harmony default export */ const post_comments_link_edit = (PostCommentsLinkEdit);
43146  
43147  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-link/index.js
43148  /**
43149   * WordPress dependencies
43150   */
43151  
43152  
43153  /**
43154   * Internal dependencies
43155   */
43156  
43157  const post_comments_link_metadata = {
43158    $schema: "https://schemas.wp.org/trunk/block.json",
43159    apiVersion: 3,
43160    __experimental: "fse",
43161    name: "core/post-comments-link",
43162    title: "Comments Link",
43163    category: "theme",
43164    description: "Displays the link to the current post comments.",
43165    textdomain: "default",
43166    usesContext: ["postType", "postId"],
43167    attributes: {
43168      textAlign: {
43169        type: "string"
43170      }
43171    },
43172    supports: {
43173      html: false,
43174      color: {
43175        link: true,
43176        text: false,
43177        __experimentalDefaultControls: {
43178          background: true,
43179          link: true
43180        }
43181      },
43182      spacing: {
43183        margin: true,
43184        padding: true
43185      },
43186      typography: {
43187        fontSize: true,
43188        lineHeight: true,
43189        __experimentalFontFamily: true,
43190        __experimentalFontWeight: true,
43191        __experimentalFontStyle: true,
43192        __experimentalTextTransform: true,
43193        __experimentalTextDecoration: true,
43194        __experimentalLetterSpacing: true,
43195        __experimentalDefaultControls: {
43196          fontSize: true
43197        }
43198      },
43199      interactivity: {
43200        clientNavigation: true
43201      },
43202      __experimentalBorder: {
43203        radius: true,
43204        color: true,
43205        width: true,
43206        style: true,
43207        __experimentalDefaultControls: {
43208          radius: true,
43209          color: true,
43210          width: true,
43211          style: true
43212        }
43213      }
43214    },
43215    style: "wp-block-post-comments-link"
43216  };
43217  
43218  const {
43219    name: post_comments_link_name
43220  } = post_comments_link_metadata;
43221  
43222  const post_comments_link_settings = {
43223    edit: post_comments_link_edit,
43224    icon: post_comments_count
43225  };
43226  const post_comments_link_init = () => initBlock({
43227    name: post_comments_link_name,
43228    metadata: post_comments_link_metadata,
43229    settings: post_comments_link_settings
43230  });
43231  
43232  ;// ./node_modules/@wordpress/icons/build-module/library/post-content.js
43233  /**
43234   * WordPress dependencies
43235   */
43236  
43237  
43238  const postContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
43239    xmlns: "http://www.w3.org/2000/svg",
43240    viewBox: "0 0 24 24",
43241    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
43242      d: "M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z"
43243    })
43244  });
43245  /* harmony default export */ const post_content = (postContent);
43246  
43247  ;// ./node_modules/@wordpress/block-library/build-module/post-content/edit.js
43248  /**
43249   * WordPress dependencies
43250   */
43251  
43252  
43253  
43254  
43255  
43256  
43257  
43258  /**
43259   * Internal dependencies
43260   */
43261  
43262  
43263  function ReadOnlyContent({
43264    parentLayout,
43265    layoutClassNames,
43266    userCanEdit,
43267    postType,
43268    postId
43269  }) {
43270    const [,, content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
43271    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43272      className: layoutClassNames
43273    });
43274    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
43275      return content?.raw ? (0,external_wp_blocks_namespaceObject.parse)(content.raw) : [];
43276    }, [content?.raw]);
43277    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
43278      blocks,
43279      props: blockProps,
43280      layout: parentLayout
43281    });
43282    if (userCanEdit) {
43283      /*
43284       * Rendering the block preview using the raw content blocks allows for
43285       * block support styles to be generated and applied by the editor.
43286       *
43287       * The preview using the raw blocks can only be presented to users with
43288       * edit permissions for the post to prevent potential exposure of private
43289       * block content.
43290       */
43291      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43292        ...blockPreviewProps
43293      });
43294    }
43295    return content?.protected ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43296      ...blockProps,
43297      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
43298        children: (0,external_wp_i18n_namespaceObject.__)('This content is password protected.')
43299      })
43300    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43301      ...blockProps,
43302      dangerouslySetInnerHTML: {
43303        __html: content?.rendered
43304      }
43305    });
43306  }
43307  function EditableContent({
43308    context = {}
43309  }) {
43310    const {
43311      postType,
43312      postId
43313    } = context;
43314    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
43315      id: postId
43316    });
43317    const entityRecord = (0,external_wp_data_namespaceObject.useSelect)(select => {
43318      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, postId);
43319    }, [postType, postId]);
43320    const hasInnerBlocks = !!entityRecord?.content?.raw || blocks?.length;
43321    const initialInnerBlocks = [['core/paragraph']];
43322    const props = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)((0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43323      className: 'entry-content'
43324    }), {
43325      value: blocks,
43326      onInput,
43327      onChange,
43328      template: !hasInnerBlocks ? initialInnerBlocks : undefined
43329    });
43330    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43331      ...props
43332    });
43333  }
43334  function Content(props) {
43335    const {
43336      context: {
43337        queryId,
43338        postType,
43339        postId
43340      } = {},
43341      layoutClassNames
43342    } = props;
43343    const userCanEdit = useCanEditEntity('postType', postType, postId);
43344    if (userCanEdit === undefined) {
43345      return null;
43346    }
43347    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43348    const isEditable = userCanEdit && !isDescendentOfQueryLoop;
43349    return isEditable ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditableContent, {
43350      ...props
43351    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReadOnlyContent, {
43352      parentLayout: props.parentLayout,
43353      layoutClassNames: layoutClassNames,
43354      userCanEdit: userCanEdit,
43355      postType: postType,
43356      postId: postId
43357    });
43358  }
43359  function edit_Placeholder({
43360    layoutClassNames
43361  }) {
43362    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43363      className: layoutClassNames
43364    });
43365    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
43366      ...blockProps,
43367      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43368        children: (0,external_wp_i18n_namespaceObject.__)('This is the Content block, it will display all the blocks in any single post or page.')
43369      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43370        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.')
43371      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43372        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.')
43373      })]
43374    });
43375  }
43376  function RecursionError() {
43377    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
43378    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43379      ...blockProps,
43380      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
43381        children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
43382      })
43383    });
43384  }
43385  function PostContentEdit({
43386    context,
43387    __unstableLayoutClassNames: layoutClassNames,
43388    __unstableParentLayout: parentLayout
43389  }) {
43390    const {
43391      postId: contextPostId,
43392      postType: contextPostType
43393    } = context;
43394    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(contextPostId);
43395    if (contextPostId && contextPostType && hasAlreadyRendered) {
43396      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionError, {});
43397    }
43398    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
43399      uniqueId: contextPostId,
43400      children: contextPostId && contextPostType ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Content, {
43401        context: context,
43402        parentLayout: parentLayout,
43403        layoutClassNames: layoutClassNames
43404      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_Placeholder, {
43405        layoutClassNames: layoutClassNames
43406      })
43407    });
43408  }
43409  
43410  ;// ./node_modules/@wordpress/block-library/build-module/post-content/index.js
43411  /**
43412   * WordPress dependencies
43413   */
43414  
43415  
43416  /**
43417   * Internal dependencies
43418   */
43419  
43420  const post_content_metadata = {
43421    $schema: "https://schemas.wp.org/trunk/block.json",
43422    apiVersion: 3,
43423    name: "core/post-content",
43424    title: "Content",
43425    category: "theme",
43426    description: "Displays the contents of a post or page.",
43427    textdomain: "default",
43428    usesContext: ["postId", "postType", "queryId"],
43429    example: {
43430      viewportWidth: 350
43431    },
43432    supports: {
43433      align: ["wide", "full"],
43434      html: false,
43435      layout: true,
43436      background: {
43437        backgroundImage: true,
43438        backgroundSize: true,
43439        __experimentalDefaultControls: {
43440          backgroundImage: true
43441        }
43442      },
43443      dimensions: {
43444        minHeight: true
43445      },
43446      spacing: {
43447        blockGap: true,
43448        padding: true,
43449        margin: true,
43450        __experimentalDefaultControls: {
43451          margin: false,
43452          padding: false
43453        }
43454      },
43455      color: {
43456        gradients: true,
43457        heading: true,
43458        link: true,
43459        __experimentalDefaultControls: {
43460          background: false,
43461          text: false
43462        }
43463      },
43464      typography: {
43465        fontSize: true,
43466        lineHeight: true,
43467        __experimentalFontFamily: true,
43468        __experimentalFontWeight: true,
43469        __experimentalFontStyle: true,
43470        __experimentalTextTransform: true,
43471        __experimentalTextDecoration: true,
43472        __experimentalLetterSpacing: true,
43473        __experimentalDefaultControls: {
43474          fontSize: true
43475        }
43476      },
43477      __experimentalBorder: {
43478        radius: true,
43479        color: true,
43480        width: true,
43481        style: true,
43482        __experimentalDefaultControls: {
43483          radius: true,
43484          color: true,
43485          width: true,
43486          style: true
43487        }
43488      }
43489    },
43490    style: "wp-block-post-content",
43491    editorStyle: "wp-block-post-content-editor"
43492  };
43493  
43494  const {
43495    name: post_content_name
43496  } = post_content_metadata;
43497  
43498  const post_content_settings = {
43499    icon: post_content,
43500    edit: PostContentEdit
43501  };
43502  const post_content_init = () => initBlock({
43503    name: post_content_name,
43504    metadata: post_content_metadata,
43505    settings: post_content_settings
43506  });
43507  
43508  ;// ./node_modules/@wordpress/block-library/build-module/post-date/edit.js
43509  /**
43510   * External dependencies
43511   */
43512  
43513  
43514  /**
43515   * WordPress dependencies
43516   */
43517  
43518  
43519  
43520  
43521  
43522  
43523  
43524  
43525  
43526  
43527  /**
43528   * Internal dependencies
43529   */
43530  
43531  
43532  function PostDateEdit({
43533    attributes: {
43534      textAlign,
43535      format,
43536      isLink,
43537      displayType
43538    },
43539    context: {
43540      postId,
43541      postType: postTypeSlug,
43542      queryId
43543    },
43544    setAttributes
43545  }) {
43546    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43547      className: dist_clsx({
43548        [`has-text-align-$textAlign}`]: textAlign,
43549        [`wp-block-post-date__modified-date`]: displayType === 'modified'
43550      })
43551    });
43552    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
43553  
43554    // Use internal state instead of a ref to make sure that the component
43555    // re-renders when the popover's anchor updates.
43556    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
43557    // Memoize popoverProps to avoid returning a new object every time.
43558    const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
43559      anchor: popoverAnchor
43560    }), [popoverAnchor]);
43561    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43562    const dateSettings = (0,external_wp_date_namespaceObject.getSettings)();
43563    const [siteFormat = dateSettings.formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
43564    const [siteTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format');
43565    const [date, setDate] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, displayType, postId);
43566    const postType = (0,external_wp_data_namespaceObject.useSelect)(select => postTypeSlug ? select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug) : null, [postTypeSlug]);
43567    const dateLabel = displayType === 'date' ? (0,external_wp_i18n_namespaceObject.__)('Post Date') : (0,external_wp_i18n_namespaceObject.__)('Post Modified Date');
43568    let postDate = date ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
43569      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
43570      ref: setPopoverAnchor,
43571      children: format === 'human-diff' ? (0,external_wp_date_namespaceObject.humanTimeDiff)(date) : (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)
43572    }) : dateLabel;
43573    if (isLink && date) {
43574      postDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43575        href: "#post-date-pseudo-link",
43576        onClick: event => event.preventDefault(),
43577        children: postDate
43578      });
43579    }
43580    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43581      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
43582        group: "block",
43583        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
43584          value: textAlign,
43585          onChange: nextAlign => {
43586            setAttributes({
43587              textAlign: nextAlign
43588            });
43589          }
43590        }), date && displayType === 'date' && !isDescendentOfQueryLoop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
43591          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
43592            popoverProps: popoverProps,
43593            renderContent: ({
43594              onClose
43595            }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalPublishDateTimePicker, {
43596              currentDate: date,
43597              onChange: setDate,
43598              is12Hour: is12HourFormat(siteTimeFormat),
43599              onClose: onClose,
43600              dateOrder: /* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
43601              (0,external_wp_i18n_namespaceObject._x)('dmy', 'date order')
43602            }),
43603            renderToggle: ({
43604              isOpen,
43605              onToggle
43606            }) => {
43607              const openOnArrowDown = event => {
43608                if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
43609                  event.preventDefault();
43610                  onToggle();
43611                }
43612              };
43613              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
43614                "aria-expanded": isOpen,
43615                icon: library_edit,
43616                title: (0,external_wp_i18n_namespaceObject.__)('Change Date'),
43617                onClick: onToggle,
43618                onKeyDown: openOnArrowDown
43619              });
43620            }
43621          })
43622        })]
43623      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43624        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
43625          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
43626          resetAll: () => {
43627            setAttributes({
43628              format: undefined,
43629              isLink: false,
43630              displayType: 'date'
43631            });
43632          },
43633          dropdownMenuProps: dropdownMenuProps,
43634          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43635            hasValue: () => !!format,
43636            label: (0,external_wp_i18n_namespaceObject.__)('Date Format'),
43637            onDeselect: () => setAttributes({
43638              format: undefined
43639            }),
43640            isShownByDefault: true,
43641            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
43642              format: format,
43643              defaultFormat: siteFormat,
43644              onChange: nextFormat => setAttributes({
43645                format: nextFormat
43646              })
43647            })
43648          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43649            hasValue: () => isLink !== false,
43650            label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
43651            // translators: %s: Name of the post type e.g: "post".
43652            (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
43653            onDeselect: () => setAttributes({
43654              isLink: false
43655            }),
43656            isShownByDefault: true,
43657            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43658              __nextHasNoMarginBottom: true,
43659              label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
43660              // translators: %s: Name of the post type e.g: "post".
43661              (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
43662              onChange: () => setAttributes({
43663                isLink: !isLink
43664              }),
43665              checked: isLink
43666            })
43667          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43668            hasValue: () => displayType !== 'date',
43669            label: (0,external_wp_i18n_namespaceObject.__)('Display last modified date'),
43670            onDeselect: () => setAttributes({
43671              displayType: 'date'
43672            }),
43673            isShownByDefault: true,
43674            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43675              __nextHasNoMarginBottom: true,
43676              label: (0,external_wp_i18n_namespaceObject.__)('Display last modified date'),
43677              onChange: value => setAttributes({
43678                displayType: value ? 'modified' : 'date'
43679              }),
43680              checked: displayType === 'modified',
43681              help: (0,external_wp_i18n_namespaceObject.__)('Only shows if the post has been modified')
43682            })
43683          })]
43684        })
43685      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43686        ...blockProps,
43687        children: postDate
43688      })]
43689    });
43690  }
43691  function is12HourFormat(format) {
43692    // To know if the time format is a 12 hour time, look for any of the 12 hour
43693    // format characters: 'a', 'A', 'g', and 'h'. The character must be
43694    // unescaped, i.e. not preceded by a '\'. Coincidentally, 'aAgh' is how I
43695    // feel when working with regular expressions.
43696    // https://www.php.net/manual/en/datetime.format.php
43697    return /(?:^|[^\\])[aAgh]/.test(format);
43698  }
43699  
43700  ;// ./node_modules/@wordpress/block-library/build-module/post-date/deprecated.js
43701  /**
43702   * Internal dependencies
43703   */
43704  
43705  const post_date_deprecated_v1 = {
43706    attributes: {
43707      textAlign: {
43708        type: 'string'
43709      },
43710      format: {
43711        type: 'string'
43712      },
43713      isLink: {
43714        type: 'boolean',
43715        default: false
43716      }
43717    },
43718    supports: {
43719      html: false,
43720      color: {
43721        gradients: true,
43722        link: true
43723      },
43724      typography: {
43725        fontSize: true,
43726        lineHeight: true,
43727        __experimentalFontFamily: true,
43728        __experimentalFontWeight: true,
43729        __experimentalFontStyle: true,
43730        __experimentalTextTransform: true,
43731        __experimentalLetterSpacing: true
43732      }
43733    },
43734    save() {
43735      return null;
43736    },
43737    migrate: migrate_font_family,
43738    isEligible({
43739      style
43740    }) {
43741      return style?.typography?.fontFamily;
43742    }
43743  };
43744  
43745  /**
43746   * New deprecations need to be placed first
43747   * for them to have higher priority.
43748   *
43749   * Old deprecations may need to be updated as well.
43750   *
43751   * See block-deprecation.md
43752   */
43753  /* harmony default export */ const post_date_deprecated = ([post_date_deprecated_v1]);
43754  
43755  ;// ./node_modules/@wordpress/block-library/build-module/post-date/variations.js
43756  /**
43757   * WordPress dependencies
43758   */
43759  
43760  
43761  const post_date_variations_variations = [{
43762    name: 'post-date-modified',
43763    title: (0,external_wp_i18n_namespaceObject.__)('Modified Date'),
43764    description: (0,external_wp_i18n_namespaceObject.__)("Display a post's last updated date."),
43765    attributes: {
43766      displayType: 'modified'
43767    },
43768    scope: ['block', 'inserter'],
43769    isActive: blockAttributes => blockAttributes.displayType === 'modified',
43770    icon: post_date
43771  }];
43772  /* harmony default export */ const post_date_variations = (post_date_variations_variations);
43773  
43774  ;// ./node_modules/@wordpress/block-library/build-module/post-date/index.js
43775  /**
43776   * WordPress dependencies
43777   */
43778  
43779  
43780  /**
43781   * Internal dependencies
43782   */
43783  
43784  const post_date_metadata = {
43785    $schema: "https://schemas.wp.org/trunk/block.json",
43786    apiVersion: 3,
43787    name: "core/post-date",
43788    title: "Date",
43789    category: "theme",
43790    description: "Display the publish date for an entry such as a post or page.",
43791    textdomain: "default",
43792    attributes: {
43793      textAlign: {
43794        type: "string"
43795      },
43796      format: {
43797        type: "string"
43798      },
43799      isLink: {
43800        type: "boolean",
43801        "default": false,
43802        role: "content"
43803      },
43804      displayType: {
43805        type: "string",
43806        "default": "date"
43807      }
43808    },
43809    usesContext: ["postId", "postType", "queryId"],
43810    example: {
43811      viewportWidth: 350
43812    },
43813    supports: {
43814      html: false,
43815      color: {
43816        gradients: true,
43817        link: true,
43818        __experimentalDefaultControls: {
43819          background: true,
43820          text: true,
43821          link: true
43822        }
43823      },
43824      spacing: {
43825        margin: true,
43826        padding: true
43827      },
43828      typography: {
43829        fontSize: true,
43830        lineHeight: true,
43831        __experimentalFontFamily: true,
43832        __experimentalFontWeight: true,
43833        __experimentalFontStyle: true,
43834        __experimentalTextTransform: true,
43835        __experimentalTextDecoration: true,
43836        __experimentalLetterSpacing: true,
43837        __experimentalDefaultControls: {
43838          fontSize: true
43839        }
43840      },
43841      interactivity: {
43842        clientNavigation: true
43843      },
43844      __experimentalBorder: {
43845        radius: true,
43846        color: true,
43847        width: true,
43848        style: true,
43849        __experimentalDefaultControls: {
43850          radius: true,
43851          color: true,
43852          width: true,
43853          style: true
43854        }
43855      }
43856    }
43857  };
43858  
43859  
43860  
43861  const {
43862    name: post_date_name
43863  } = post_date_metadata;
43864  
43865  const post_date_settings = {
43866    icon: post_date,
43867    edit: PostDateEdit,
43868    deprecated: post_date_deprecated,
43869    variations: post_date_variations
43870  };
43871  const post_date_init = () => initBlock({
43872    name: post_date_name,
43873    metadata: post_date_metadata,
43874    settings: post_date_settings
43875  });
43876  
43877  ;// ./node_modules/@wordpress/icons/build-module/library/post-excerpt.js
43878  /**
43879   * WordPress dependencies
43880   */
43881  
43882  
43883  const postExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
43884    xmlns: "http://www.w3.org/2000/svg",
43885    viewBox: "0 0 24 24",
43886    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
43887      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"
43888    })
43889  });
43890  /* harmony default export */ const post_excerpt = (postExcerpt);
43891  
43892  ;// ./node_modules/@wordpress/block-library/build-module/post-excerpt/edit.js
43893  /**
43894   * External dependencies
43895   */
43896  
43897  
43898  /**
43899   * WordPress dependencies
43900   */
43901  
43902  
43903  
43904  
43905  
43906  
43907  
43908  /**
43909   * Internal dependencies
43910   */
43911  
43912  
43913  const ELLIPSIS = '…';
43914  function PostExcerptEditor({
43915    attributes: {
43916      textAlign,
43917      moreText,
43918      showMoreOnNewLine,
43919      excerptLength
43920    },
43921    setAttributes,
43922    isSelected,
43923    context: {
43924      postId,
43925      postType,
43926      queryId
43927    }
43928  }) {
43929    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43930    const userCanEdit = useCanEditEntity('postType', postType, postId);
43931    const [rawExcerpt, setExcerpt, {
43932      rendered: renderedExcerpt,
43933      protected: isProtected
43934    } = {}] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'excerpt', postId);
43935    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
43936  
43937    /**
43938     * Check if the post type supports excerpts.
43939     * Add an exception and return early for the "page" post type,
43940     * which is registered without support for the excerpt UI,
43941     * but supports saving the excerpt to the database.
43942     * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65
43943     * Without this exception, users that have excerpts saved to the database will
43944     * not be able to edit the excerpts.
43945     */
43946    const postTypeSupportsExcerpts = (0,external_wp_data_namespaceObject.useSelect)(select => {
43947      if (postType === 'page') {
43948        return true;
43949      }
43950      return !!select(external_wp_coreData_namespaceObject.store).getPostType(postType)?.supports?.excerpt;
43951    }, [postType]);
43952  
43953    /**
43954     * The excerpt is editable if:
43955     * - The user can edit the post
43956     * - It is not a descendent of a Query Loop block
43957     * - The post type supports excerpts
43958     */
43959    const isEditable = userCanEdit && !isDescendentOfQueryLoop && postTypeSupportsExcerpts;
43960    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43961      className: dist_clsx({
43962        [`has-text-align-$textAlign}`]: textAlign
43963      })
43964    });
43965  
43966    /**
43967     * translators: If your word count is based on single characters (e.g. East Asian characters),
43968     * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
43969     * Do not translate into your own language.
43970     */
43971    const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
43972  
43973    /**
43974     * When excerpt is editable, strip the html tags from
43975     * rendered excerpt. This will be used if the entity's
43976     * excerpt has been produced from the content.
43977     */
43978    const strippedRenderedExcerpt = (0,external_wp_element_namespaceObject.useMemo)(() => {
43979      if (!renderedExcerpt) {
43980        return '';
43981      }
43982      const document = new window.DOMParser().parseFromString(renderedExcerpt, 'text/html');
43983      return document.body.textContent || document.body.innerText || '';
43984    }, [renderedExcerpt]);
43985    if (!postType || !postId) {
43986      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43987        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
43988          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
43989            value: textAlign,
43990            onChange: newAlign => setAttributes({
43991              textAlign: newAlign
43992            })
43993          })
43994        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43995          ...blockProps,
43996          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43997            children: (0,external_wp_i18n_namespaceObject.__)('This block will display the excerpt.')
43998          })
43999        })]
44000      });
44001    }
44002    if (isProtected && !userCanEdit) {
44003      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
44004        ...blockProps,
44005        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
44006          children: (0,external_wp_i18n_namespaceObject.__)('The content is currently protected and does not have the available excerpt.')
44007        })
44008      });
44009    }
44010    const readMoreLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
44011      identifier: "moreText",
44012      className: "wp-block-post-excerpt__more-link",
44013      tagName: "a",
44014      "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
44015      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add "read more" link text'),
44016      value: moreText,
44017      onChange: newMoreText => setAttributes({
44018        moreText: newMoreText
44019      }),
44020      withoutInteractiveFormatting: true
44021    });
44022    const excerptClassName = dist_clsx('wp-block-post-excerpt__excerpt', {
44023      'is-inline': !showMoreOnNewLine
44024    });
44025  
44026    /**
44027     * The excerpt length setting needs to be applied to both
44028     * the raw and the rendered excerpt depending on which is being used.
44029     */
44030    const rawOrRenderedExcerpt = (rawExcerpt || strippedRenderedExcerpt).trim();
44031    let trimmedExcerpt = '';
44032    if (wordCountType === 'words') {
44033      trimmedExcerpt = rawOrRenderedExcerpt.split(' ', excerptLength).join(' ');
44034    } else if (wordCountType === 'characters_excluding_spaces') {
44035      /*
44036       * 1. Split the excerpt at the character limit,
44037       * then join the substrings back into one string.
44038       * 2. Count the number of spaces in the excerpt
44039       * by comparing the lengths of the string with and without spaces.
44040       * 3. Add the number to the length of the visible excerpt,
44041       * so that the spaces are excluded from the word count.
44042       */
44043      const excerptWithSpaces = rawOrRenderedExcerpt.split('', excerptLength).join('');
44044      const numberOfSpaces = excerptWithSpaces.length - excerptWithSpaces.replaceAll(' ', '').length;
44045      trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength + numberOfSpaces).join('');
44046    } else if (wordCountType === 'characters_including_spaces') {
44047      trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength).join('');
44048    }
44049    const isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;
44050    const excerptContent = isEditable ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
44051      className: excerptClassName,
44052      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Excerpt text'),
44053      value: isSelected ? rawOrRenderedExcerpt : (!isTrimmed ? rawOrRenderedExcerpt : trimmedExcerpt + ELLIPSIS) || (0,external_wp_i18n_namespaceObject.__)('No excerpt found'),
44054      onChange: setExcerpt,
44055      tagName: "p"
44056    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
44057      className: excerptClassName,
44058      children: !isTrimmed ? rawOrRenderedExcerpt || (0,external_wp_i18n_namespaceObject.__)('No excerpt found') : trimmedExcerpt + ELLIPSIS
44059    });
44060    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44061      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44062        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
44063          value: textAlign,
44064          onChange: newAlign => setAttributes({
44065            textAlign: newAlign
44066          })
44067        })
44068      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44069        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
44070          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
44071          resetAll: () => {
44072            setAttributes({
44073              showMoreOnNewLine: true,
44074              excerptLength: 55
44075            });
44076          },
44077          dropdownMenuProps: dropdownMenuProps,
44078          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44079            hasValue: () => showMoreOnNewLine !== true,
44080            label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
44081            onDeselect: () => setAttributes({
44082              showMoreOnNewLine: true
44083            }),
44084            isShownByDefault: true,
44085            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
44086              __nextHasNoMarginBottom: true,
44087              label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
44088              checked: showMoreOnNewLine,
44089              onChange: newShowMoreOnNewLine => setAttributes({
44090                showMoreOnNewLine: newShowMoreOnNewLine
44091              })
44092            })
44093          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44094            hasValue: () => excerptLength !== 55,
44095            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
44096            onDeselect: () => setAttributes({
44097              excerptLength: 55
44098            }),
44099            isShownByDefault: true,
44100            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
44101              __next40pxDefaultSize: true,
44102              __nextHasNoMarginBottom: true,
44103              label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
44104              value: excerptLength,
44105              onChange: value => {
44106                setAttributes({
44107                  excerptLength: value
44108                });
44109              },
44110              min: "10",
44111              max: "100"
44112            })
44113          })]
44114        })
44115      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
44116        ...blockProps,
44117        children: [excerptContent, !showMoreOnNewLine && ' ', showMoreOnNewLine ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
44118          className: "wp-block-post-excerpt__more-text",
44119          children: readMoreLink
44120        }) : readMoreLink]
44121      })]
44122    });
44123  }
44124  
44125  ;// ./node_modules/@wordpress/block-library/build-module/post-excerpt/transforms.js
44126  /**
44127   * WordPress dependencies
44128   */
44129  
44130  const post_excerpt_transforms_transforms = {
44131    from: [{
44132      type: 'block',
44133      blocks: ['core/post-content'],
44134      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-excerpt')
44135    }],
44136    to: [{
44137      type: 'block',
44138      blocks: ['core/post-content'],
44139      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content')
44140    }]
44141  };
44142  /* harmony default export */ const post_excerpt_transforms = (post_excerpt_transforms_transforms);
44143  
44144  ;// ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
44145  /**
44146   * WordPress dependencies
44147   */
44148  
44149  
44150  /**
44151   * Internal dependencies
44152   */
44153  
44154  const post_excerpt_metadata = {
44155    $schema: "https://schemas.wp.org/trunk/block.json",
44156    apiVersion: 3,
44157    name: "core/post-excerpt",
44158    title: "Excerpt",
44159    category: "theme",
44160    description: "Display the excerpt.",
44161    textdomain: "default",
44162    attributes: {
44163      textAlign: {
44164        type: "string"
44165      },
44166      moreText: {
44167        type: "string"
44168      },
44169      showMoreOnNewLine: {
44170        type: "boolean",
44171        "default": true
44172      },
44173      excerptLength: {
44174        type: "number",
44175        "default": 55
44176      }
44177    },
44178    usesContext: ["postId", "postType", "queryId"],
44179    example: {
44180      viewportWidth: 350
44181    },
44182    supports: {
44183      html: false,
44184      color: {
44185        gradients: true,
44186        link: true,
44187        __experimentalDefaultControls: {
44188          background: true,
44189          text: true,
44190          link: true
44191        }
44192      },
44193      spacing: {
44194        margin: true,
44195        padding: true
44196      },
44197      typography: {
44198        fontSize: true,
44199        lineHeight: true,
44200        __experimentalFontFamily: true,
44201        __experimentalFontWeight: true,
44202        __experimentalFontStyle: true,
44203        __experimentalTextTransform: true,
44204        __experimentalTextDecoration: true,
44205        __experimentalLetterSpacing: true,
44206        __experimentalDefaultControls: {
44207          fontSize: true
44208        }
44209      },
44210      interactivity: {
44211        clientNavigation: true
44212      },
44213      __experimentalBorder: {
44214        radius: true,
44215        color: true,
44216        width: true,
44217        style: true,
44218        __experimentalDefaultControls: {
44219          radius: true,
44220          color: true,
44221          width: true,
44222          style: true
44223        }
44224      }
44225    },
44226    editorStyle: "wp-block-post-excerpt-editor",
44227    style: "wp-block-post-excerpt"
44228  };
44229  
44230  
44231  const {
44232    name: post_excerpt_name
44233  } = post_excerpt_metadata;
44234  
44235  const post_excerpt_settings = {
44236    icon: post_excerpt,
44237    transforms: post_excerpt_transforms,
44238    edit: PostExcerptEditor
44239  };
44240  const post_excerpt_init = () => initBlock({
44241    name: post_excerpt_name,
44242    metadata: post_excerpt_metadata,
44243    settings: post_excerpt_settings
44244  });
44245  
44246  ;// ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js
44247  /**
44248   * WordPress dependencies
44249   */
44250  
44251  
44252  const postFeaturedImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
44253    xmlns: "http://www.w3.org/2000/svg",
44254    viewBox: "0 0 24 24",
44255    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
44256      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"
44257    })
44258  });
44259  /* harmony default export */ const post_featured_image = (postFeaturedImage);
44260  
44261  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/dimension-controls.js
44262  /**
44263   * WordPress dependencies
44264   */
44265  
44266  
44267  
44268  
44269  const SCALE_OPTIONS = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44270    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
44271      value: "cover",
44272      label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for Image dimension control')
44273    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
44274      value: "contain",
44275      label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for Image dimension control')
44276    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
44277      value: "fill",
44278      label: (0,external_wp_i18n_namespaceObject._x)('Fill', 'Scale option for Image dimension control')
44279    })]
44280  });
44281  const DEFAULT_SCALE = 'cover';
44282  const scaleHelp = {
44283    cover: (0,external_wp_i18n_namespaceObject.__)('Image is scaled and cropped to fill the entire space without being distorted.'),
44284    contain: (0,external_wp_i18n_namespaceObject.__)('Image is scaled to fill the space without clipping nor distorting.'),
44285    fill: (0,external_wp_i18n_namespaceObject.__)('Image will be stretched and distorted to completely fill the space.')
44286  };
44287  const DimensionControls = ({
44288    clientId,
44289    attributes: {
44290      aspectRatio,
44291      width,
44292      height,
44293      scale
44294    },
44295    setAttributes
44296  }) => {
44297    const [availableUnits, defaultRatios, themeRatios, showDefaultRatios] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units', 'dimensions.aspectRatios.default', 'dimensions.aspectRatios.theme', 'dimensions.defaultAspectRatios');
44298    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
44299      availableUnits: availableUnits || ['px', '%', 'vw', 'em', 'rem']
44300    });
44301    const onDimensionChange = (dimension, nextValue) => {
44302      const parsedValue = parseFloat(nextValue);
44303      /**
44304       * If we have no value set and we change the unit,
44305       * we don't want to set the attribute, as it would
44306       * end up having the unit as value without any number.
44307       */
44308      if (isNaN(parsedValue) && nextValue) {
44309        return;
44310      }
44311      setAttributes({
44312        [dimension]: parsedValue < 0 ? '0' : nextValue
44313      });
44314    };
44315    const scaleLabel = (0,external_wp_i18n_namespaceObject._x)('Scale', 'Image scaling options');
44316    const showScaleControl = height || aspectRatio && aspectRatio !== 'auto';
44317    const themeOptions = themeRatios?.map(({
44318      name,
44319      ratio
44320    }) => ({
44321      label: name,
44322      value: ratio
44323    }));
44324    const defaultOptions = defaultRatios?.map(({
44325      name,
44326      ratio
44327    }) => ({
44328      label: name,
44329      value: ratio
44330    }));
44331    const aspectRatioOptions = [{
44332      label: (0,external_wp_i18n_namespaceObject._x)('Original', 'Aspect ratio option for dimensions control'),
44333      value: 'auto'
44334    }, ...(showDefaultRatios ? defaultOptions : []), ...(themeOptions ? themeOptions : [])];
44335    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44336      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44337        hasValue: () => !!aspectRatio,
44338        label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'),
44339        onDeselect: () => setAttributes({
44340          aspectRatio: undefined
44341        }),
44342        resetAllFilter: () => ({
44343          aspectRatio: undefined
44344        }),
44345        isShownByDefault: true,
44346        panelId: clientId,
44347        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
44348          __next40pxDefaultSize: true,
44349          __nextHasNoMarginBottom: true,
44350          label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'),
44351          value: aspectRatio,
44352          options: aspectRatioOptions,
44353          onChange: nextAspectRatio => setAttributes({
44354            aspectRatio: nextAspectRatio
44355          })
44356        })
44357      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44358        className: "single-column",
44359        hasValue: () => !!height,
44360        label: (0,external_wp_i18n_namespaceObject.__)('Height'),
44361        onDeselect: () => setAttributes({
44362          height: undefined
44363        }),
44364        resetAllFilter: () => ({
44365          height: undefined
44366        }),
44367        isShownByDefault: true,
44368        panelId: clientId,
44369        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
44370          __next40pxDefaultSize: true,
44371          label: (0,external_wp_i18n_namespaceObject.__)('Height'),
44372          labelPosition: "top",
44373          value: height || '',
44374          min: 0,
44375          onChange: nextHeight => onDimensionChange('height', nextHeight),
44376          units: units
44377        })
44378      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44379        className: "single-column",
44380        hasValue: () => !!width,
44381        label: (0,external_wp_i18n_namespaceObject.__)('Width'),
44382        onDeselect: () => setAttributes({
44383          width: undefined
44384        }),
44385        resetAllFilter: () => ({
44386          width: undefined
44387        }),
44388        isShownByDefault: true,
44389        panelId: clientId,
44390        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
44391          __next40pxDefaultSize: true,
44392          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
44393          labelPosition: "top",
44394          value: width || '',
44395          min: 0,
44396          onChange: nextWidth => onDimensionChange('width', nextWidth),
44397          units: units
44398        })
44399      }), showScaleControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44400        hasValue: () => !!scale && scale !== DEFAULT_SCALE,
44401        label: scaleLabel,
44402        onDeselect: () => setAttributes({
44403          scale: DEFAULT_SCALE
44404        }),
44405        resetAllFilter: () => ({
44406          scale: DEFAULT_SCALE
44407        }),
44408        isShownByDefault: true,
44409        panelId: clientId,
44410        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
44411          __next40pxDefaultSize: true,
44412          __nextHasNoMarginBottom: true,
44413          label: scaleLabel,
44414          value: scale,
44415          help: scaleHelp[scale],
44416          onChange: value => setAttributes({
44417            scale: value
44418          }),
44419          isBlock: true,
44420          children: SCALE_OPTIONS
44421        })
44422      })]
44423    });
44424  };
44425  /* harmony default export */ const dimension_controls = (DimensionControls);
44426  
44427  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/overlay-controls.js
44428  /**
44429   * WordPress dependencies
44430   */
44431  
44432  
44433  
44434  
44435  
44436  const Overlay = ({
44437    clientId,
44438    attributes,
44439    setAttributes,
44440    overlayColor,
44441    setOverlayColor
44442  }) => {
44443    const {
44444      dimRatio
44445    } = attributes;
44446    const {
44447      gradientValue,
44448      setGradient
44449    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
44450    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
44451    if (!colorGradientSettings.hasColorsOrGradients) {
44452      return null;
44453    }
44454    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44455      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
44456        __experimentalIsRenderedInSidebar: true,
44457        settings: [{
44458          colorValue: overlayColor.color,
44459          gradientValue,
44460          label: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
44461          onColorChange: setOverlayColor,
44462          onGradientChange: setGradient,
44463          isShownByDefault: true,
44464          resetAllFilter: () => ({
44465            overlayColor: undefined,
44466            customOverlayColor: undefined,
44467            gradient: undefined,
44468            customGradient: undefined
44469          }),
44470          clearable: true
44471        }],
44472        panelId: clientId,
44473        ...colorGradientSettings
44474      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44475        hasValue: () => dimRatio !== undefined,
44476        label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
44477        onDeselect: () => setAttributes({
44478          dimRatio: 0
44479        }),
44480        resetAllFilter: () => ({
44481          dimRatio: 0
44482        }),
44483        isShownByDefault: true,
44484        panelId: clientId,
44485        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
44486          __nextHasNoMarginBottom: true,
44487          label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
44488          value: dimRatio,
44489          onChange: newDimRatio => setAttributes({
44490            dimRatio: newDimRatio
44491          }),
44492          min: 0,
44493          max: 100,
44494          step: 10,
44495          required: true,
44496          __next40pxDefaultSize: true
44497        })
44498      })]
44499    });
44500  };
44501  /* harmony default export */ const overlay_controls = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
44502    overlayColor: 'background-color'
44503  })])(Overlay));
44504  
44505  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/utils.js
44506  /**
44507   * Generates the opacity/dim class based on given number.
44508   *
44509   * @param {number} ratio Dim/opacity number.
44510   *
44511   * @return {string} Generated class.
44512   */
44513  function utils_dimRatioToClass(ratio) {
44514    return ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
44515  }
44516  
44517  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/overlay.js
44518  /**
44519   * External dependencies
44520   */
44521  
44522  
44523  /**
44524   * WordPress dependencies
44525   */
44526  
44527  
44528  
44529  /**
44530   * Internal dependencies
44531   */
44532  
44533  
44534  const overlay_Overlay = ({
44535    attributes,
44536    overlayColor
44537  }) => {
44538    const {
44539      dimRatio
44540    } = attributes;
44541    const {
44542      gradientClass,
44543      gradientValue
44544    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
44545    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
44546    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
44547    const overlayStyles = {
44548      backgroundColor: overlayColor.color,
44549      backgroundImage: gradientValue,
44550      ...borderProps.style
44551    };
44552    if (!colorGradientSettings.hasColorsOrGradients || !dimRatio) {
44553      return null;
44554    }
44555    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
44556      "aria-hidden": "true",
44557      className: dist_clsx('wp-block-post-featured-image__overlay', utils_dimRatioToClass(dimRatio), {
44558        [overlayColor.class]: overlayColor.class,
44559        'has-background-dim': dimRatio !== undefined,
44560        'has-background-gradient': gradientValue,
44561        [gradientClass]: gradientClass
44562      }, borderProps.className),
44563      style: overlayStyles
44564    });
44565  };
44566  /* harmony default export */ const overlay = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
44567    overlayColor: 'background-color'
44568  })])(overlay_Overlay));
44569  
44570  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/edit.js
44571  /**
44572   * External dependencies
44573   */
44574  
44575  
44576  /**
44577   * WordPress dependencies
44578   */
44579  
44580  
44581  
44582  
44583  
44584  
44585  
44586  
44587  
44588  
44589  /**
44590   * Internal dependencies
44591   */
44592  
44593  
44594  
44595  
44596  
44597  
44598  const post_featured_image_edit_ALLOWED_MEDIA_TYPES = ['image'];
44599  const {
44600    ResolutionTool: post_featured_image_edit_ResolutionTool
44601  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
44602  const edit_DEFAULT_MEDIA_SIZE_SLUG = 'full';
44603  function FeaturedImageResolutionTool({
44604    image,
44605    value,
44606    onChange
44607  }) {
44608    const {
44609      imageSizes
44610    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44611      const {
44612        getSettings
44613      } = select(external_wp_blockEditor_namespaceObject.store);
44614      return {
44615        imageSizes: getSettings().imageSizes
44616      };
44617    }, []);
44618    if (!imageSizes?.length) {
44619      return null;
44620    }
44621    const imageSizeOptions = imageSizes.filter(({
44622      slug
44623    }) => image?.media_details?.sizes?.[slug]?.source_url).map(({
44624      name,
44625      slug
44626    }) => ({
44627      value: slug,
44628      label: name
44629    }));
44630    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image_edit_ResolutionTool, {
44631      value: value,
44632      defaultValue: edit_DEFAULT_MEDIA_SIZE_SLUG,
44633      options: imageSizeOptions,
44634      onChange: onChange
44635    });
44636  }
44637  function PostFeaturedImageEdit({
44638    clientId,
44639    attributes,
44640    setAttributes,
44641    context: {
44642      postId,
44643      postType: postTypeSlug,
44644      queryId
44645    }
44646  }) {
44647    const isDescendentOfQueryLoop = Number.isFinite(queryId);
44648    const {
44649      isLink,
44650      aspectRatio,
44651      height,
44652      width,
44653      scale,
44654      sizeSlug,
44655      rel,
44656      linkTarget,
44657      useFirstImageFromPost
44658    } = attributes;
44659    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
44660    const [storedFeaturedImage, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'featured_media', postId);
44661  
44662    // Fallback to post content if no featured image is set.
44663    // This is needed for the "Use first image from post" option.
44664    const [postContent] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'content', postId);
44665    const featuredImage = (0,external_wp_element_namespaceObject.useMemo)(() => {
44666      if (storedFeaturedImage) {
44667        return storedFeaturedImage;
44668      }
44669      if (!useFirstImageFromPost) {
44670        return;
44671      }
44672      const imageOpener = /<!--\s+wp:(?:core\/)?image\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\s+\/?-->).)*)?}\s+)?-->/.exec(postContent);
44673      const imageId = imageOpener?.groups?.attrs && JSON.parse(imageOpener.groups.attrs)?.id;
44674      return imageId;
44675    }, [storedFeaturedImage, useFirstImageFromPost, postContent]);
44676    const {
44677      media,
44678      postType,
44679      postPermalink
44680    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44681      const {
44682        getMedia,
44683        getPostType,
44684        getEditedEntityRecord
44685      } = select(external_wp_coreData_namespaceObject.store);
44686      return {
44687        media: featuredImage && getMedia(featuredImage, {
44688          context: 'view'
44689        }),
44690        postType: postTypeSlug && getPostType(postTypeSlug),
44691        postPermalink: getEditedEntityRecord('postType', postTypeSlug, postId)?.link
44692      };
44693    }, [featuredImage, postTypeSlug, postId]);
44694    const mediaUrl = media?.media_details?.sizes?.[sizeSlug]?.source_url || media?.source_url;
44695    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
44696      style: {
44697        width,
44698        height,
44699        aspectRatio
44700      },
44701      className: dist_clsx({
44702        'is-transient': temporaryURL
44703      })
44704    });
44705    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
44706    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
44707    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
44708    const placeholder = content => {
44709      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
44710        className: dist_clsx('block-editor-media-placeholder', borderProps.className),
44711        withIllustration: true,
44712        style: {
44713          height: !!aspectRatio && '100%',
44714          width: !!aspectRatio && '100%',
44715          ...borderProps.style,
44716          ...shadowProps.style
44717        },
44718        children: content
44719      });
44720    };
44721    const onSelectImage = value => {
44722      if (value?.id) {
44723        setFeaturedImage(value.id);
44724      }
44725      if (value?.url && (0,external_wp_blob_namespaceObject.isBlobURL)(value.url)) {
44726        setTemporaryURL(value.url);
44727      }
44728    };
44729  
44730    // Reset temporary url when media is available.
44731    (0,external_wp_element_namespaceObject.useEffect)(() => {
44732      if (mediaUrl && temporaryURL) {
44733        setTemporaryURL();
44734      }
44735    }, [mediaUrl, temporaryURL]);
44736    const {
44737      createErrorNotice
44738    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
44739    const onUploadError = message => {
44740      createErrorNotice(message, {
44741        type: 'snackbar'
44742      });
44743      setTemporaryURL();
44744    };
44745    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
44746    const controls = blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44747      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44748        group: "color",
44749        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay_controls, {
44750          attributes: attributes,
44751          setAttributes: setAttributes,
44752          clientId: clientId
44753        })
44754      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44755        group: "dimensions",
44756        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(dimension_controls, {
44757          clientId: clientId,
44758          attributes: attributes,
44759          setAttributes: setAttributes,
44760          media: media
44761        })
44762      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44763        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
44764          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
44765          resetAll: () => {
44766            setAttributes({
44767              isLink: false,
44768              linkTarget: '_self',
44769              rel: ''
44770            });
44771          },
44772          dropdownMenuProps: dropdownMenuProps,
44773          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44774            label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
44775            // translators: %s: Name of the post type e.g: "post".
44776            (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
44777            isShownByDefault: true,
44778            hasValue: () => !!isLink,
44779            onDeselect: () => setAttributes({
44780              isLink: false
44781            }),
44782            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
44783              __nextHasNoMarginBottom: true,
44784              label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
44785              // translators: %s: Name of the post type e.g: "post".
44786              (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
44787              onChange: () => setAttributes({
44788                isLink: !isLink
44789              }),
44790              checked: isLink
44791            })
44792          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44793            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
44794            isShownByDefault: true,
44795            hasValue: () => '_self' !== linkTarget,
44796            onDeselect: () => setAttributes({
44797              linkTarget: '_self'
44798            }),
44799            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
44800              __nextHasNoMarginBottom: true,
44801              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
44802              onChange: value => setAttributes({
44803                linkTarget: value ? '_blank' : '_self'
44804              }),
44805              checked: linkTarget === '_blank'
44806            })
44807          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44808            label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
44809            isShownByDefault: true,
44810            hasValue: () => !!rel,
44811            onDeselect: () => setAttributes({
44812              rel: ''
44813            }),
44814            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
44815              __next40pxDefaultSize: true,
44816              __nextHasNoMarginBottom: true,
44817              label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
44818              value: rel,
44819              onChange: newRel => setAttributes({
44820                rel: newRel
44821              })
44822            })
44823          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FeaturedImageResolutionTool, {
44824            image: media,
44825            value: sizeSlug,
44826            onChange: nextSizeSlug => setAttributes({
44827              sizeSlug: nextSizeSlug
44828            })
44829          })]
44830        })
44831      })]
44832    });
44833    let image;
44834  
44835    /**
44836     * A Post Featured Image block should not have image replacement
44837     * or upload options in the following cases:
44838     * - Is placed in a Query Loop. This is a conscious decision to
44839     * prevent content editing of different posts in Query Loop, and
44840     * this could change in the future.
44841     * - Is in a context where it does not have a postId (for example
44842     * in a template or template part).
44843     */
44844    if (!featuredImage && (isDescendentOfQueryLoop || !postId)) {
44845      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44846        children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
44847          ...blockProps,
44848          children: [!!isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
44849            href: postPermalink,
44850            target: linkTarget,
44851            children: placeholder()
44852          }) : placeholder(), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay, {
44853            attributes: attributes,
44854            setAttributes: setAttributes,
44855            clientId: clientId
44856          })]
44857        })]
44858      });
44859    }
44860    const label = (0,external_wp_i18n_namespaceObject.__)('Add a featured image');
44861    const imageStyles = {
44862      ...borderProps.style,
44863      ...shadowProps.style,
44864      height: aspectRatio ? '100%' : height,
44865      width: !!aspectRatio && '100%',
44866      objectFit: !!(height || aspectRatio) && scale
44867    };
44868  
44869    /**
44870     * When the post featured image block is placed in a context where:
44871     * - It has a postId (for example in a single post)
44872     * - It is not inside a query loop
44873     * - It has no image assigned yet
44874     * Then display the placeholder with the image upload option.
44875     */
44876    if (!featuredImage && !temporaryURL) {
44877      image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
44878        onSelect: onSelectImage,
44879        accept: "image/*",
44880        allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
44881        onError: onUploadError,
44882        placeholder: placeholder,
44883        mediaLibraryButton: ({
44884          open
44885        }) => {
44886          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
44887            __next40pxDefaultSize: true,
44888            icon: library_upload,
44889            variant: "primary",
44890            label: label,
44891            showTooltip: true,
44892            tooltipPosition: "top center",
44893            onClick: e => {
44894              e.preventDefault();
44895              open();
44896            }
44897          });
44898        }
44899      });
44900    } else {
44901      // We have a Featured image so show a Placeholder if is loading.
44902      image = !media && !temporaryURL ? placeholder() : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44903        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
44904          className: borderProps.className,
44905          src: temporaryURL || mediaUrl,
44906          alt: media && media?.alt_text ? (0,external_wp_i18n_namespaceObject.sprintf)(
44907          // translators: %s: The image's alt text.
44908          (0,external_wp_i18n_namespaceObject.__)('Featured image: %s'), media.alt_text) : (0,external_wp_i18n_namespaceObject.__)('Featured image'),
44909          style: imageStyles
44910        }), temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
44911      });
44912    }
44913  
44914    /**
44915     * When the post featured image block:
44916     * - Has an image assigned
44917     * - Is not inside a query loop
44918     * Then display the image and the image replacement option.
44919     */
44920    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44921      children: [!temporaryURL && controls, !!media && !isDescendentOfQueryLoop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44922        group: "other",
44923        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
44924          mediaId: featuredImage,
44925          mediaURL: mediaUrl,
44926          allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
44927          accept: "image/*",
44928          onSelect: onSelectImage,
44929          onError: onUploadError,
44930          onReset: () => setFeaturedImage(0)
44931        })
44932      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
44933        ...blockProps,
44934        children: [!!isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
44935          href: postPermalink,
44936          target: linkTarget,
44937          children: image
44938        }) : image, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay, {
44939          attributes: attributes,
44940          setAttributes: setAttributes,
44941          clientId: clientId
44942        })]
44943      })]
44944    });
44945  }
44946  
44947  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
44948  /**
44949   * WordPress dependencies
44950   */
44951  
44952  
44953  /**
44954   * Internal dependencies
44955   */
44956  
44957  const post_featured_image_metadata = {
44958    $schema: "https://schemas.wp.org/trunk/block.json",
44959    apiVersion: 3,
44960    name: "core/post-featured-image",
44961    title: "Featured Image",
44962    category: "theme",
44963    description: "Display a post's featured image.",
44964    textdomain: "default",
44965    attributes: {
44966      isLink: {
44967        type: "boolean",
44968        "default": false,
44969        role: "content"
44970      },
44971      aspectRatio: {
44972        type: "string"
44973      },
44974      width: {
44975        type: "string"
44976      },
44977      height: {
44978        type: "string"
44979      },
44980      scale: {
44981        type: "string",
44982        "default": "cover"
44983      },
44984      sizeSlug: {
44985        type: "string"
44986      },
44987      rel: {
44988        type: "string",
44989        attribute: "rel",
44990        "default": "",
44991        role: "content"
44992      },
44993      linkTarget: {
44994        type: "string",
44995        "default": "_self",
44996        role: "content"
44997      },
44998      overlayColor: {
44999        type: "string"
45000      },
45001      customOverlayColor: {
45002        type: "string"
45003      },
45004      dimRatio: {
45005        type: "number",
45006        "default": 0
45007      },
45008      gradient: {
45009        type: "string"
45010      },
45011      customGradient: {
45012        type: "string"
45013      },
45014      useFirstImageFromPost: {
45015        type: "boolean",
45016        "default": false
45017      }
45018    },
45019    usesContext: ["postId", "postType", "queryId"],
45020    example: {
45021      viewportWidth: 350
45022    },
45023    supports: {
45024      align: ["left", "right", "center", "wide", "full"],
45025      color: {
45026        text: false,
45027        background: false
45028      },
45029      __experimentalBorder: {
45030        color: true,
45031        radius: true,
45032        width: true,
45033        __experimentalSkipSerialization: true,
45034        __experimentalDefaultControls: {
45035          color: true,
45036          radius: true,
45037          width: true
45038        }
45039      },
45040      filter: {
45041        duotone: true
45042      },
45043      shadow: {
45044        __experimentalSkipSerialization: true
45045      },
45046      html: false,
45047      spacing: {
45048        margin: true,
45049        padding: true
45050      },
45051      interactivity: {
45052        clientNavigation: true
45053      }
45054    },
45055    selectors: {
45056      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",
45057      shadow: ".wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder",
45058      filter: {
45059        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"
45060      }
45061    },
45062    editorStyle: "wp-block-post-featured-image-editor",
45063    style: "wp-block-post-featured-image"
45064  };
45065  
45066  const {
45067    name: post_featured_image_name
45068  } = post_featured_image_metadata;
45069  
45070  const post_featured_image_settings = {
45071    icon: post_featured_image,
45072    edit: PostFeaturedImageEdit
45073  };
45074  const post_featured_image_init = () => initBlock({
45075    name: post_featured_image_name,
45076    metadata: post_featured_image_metadata,
45077    settings: post_featured_image_settings
45078  });
45079  
45080  ;// ./node_modules/@wordpress/block-library/build-module/post-navigation-link/edit.js
45081  /**
45082   * External dependencies
45083   */
45084  
45085  
45086  /**
45087   * WordPress dependencies
45088   */
45089  
45090  
45091  
45092  
45093  
45094  
45095  function PostNavigationLinkEdit({
45096    context: {
45097      postType
45098    },
45099    attributes: {
45100      type,
45101      label,
45102      showTitle,
45103      textAlign,
45104      linkLabel,
45105      arrow,
45106      taxonomy
45107    },
45108    setAttributes
45109  }) {
45110    const isNext = type === 'next';
45111    let placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next') : (0,external_wp_i18n_namespaceObject.__)('Previous');
45112    const arrowMap = {
45113      none: '',
45114      arrow: isNext ? '→' : '←',
45115      chevron: isNext ? '»' : '«'
45116    };
45117    const displayArrow = arrowMap[arrow];
45118    if (showTitle) {
45119      placeholder = isNext ? /* translators: Label before for next and previous post. There is a space after the colon. */
45120      (0,external_wp_i18n_namespaceObject.__)('Next: ') // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
45121      : /* translators: Label before for next and previous post. There is a space after the colon. */
45122      (0,external_wp_i18n_namespaceObject.__)('Previous: '); // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
45123    }
45124    const ariaLabel = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next post') : (0,external_wp_i18n_namespaceObject.__)('Previous post');
45125    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45126      className: dist_clsx({
45127        [`has-text-align-$textAlign}`]: textAlign
45128      })
45129    });
45130    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
45131      const {
45132        getTaxonomies
45133      } = select(external_wp_coreData_namespaceObject.store);
45134      const filteredTaxonomies = getTaxonomies({
45135        type: postType,
45136        per_page: -1
45137      });
45138      return filteredTaxonomies;
45139    }, [postType]);
45140    const getTaxonomyOptions = () => {
45141      const selectOption = {
45142        label: (0,external_wp_i18n_namespaceObject.__)('Unfiltered'),
45143        value: ''
45144      };
45145      const taxonomyOptions = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(({
45146        visibility
45147      }) => !!visibility?.publicly_queryable).map(item => {
45148        return {
45149          value: item.slug,
45150          label: item.name
45151        };
45152      });
45153      return [selectOption, ...taxonomyOptions];
45154    };
45155    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45156      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45157        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
45158          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
45159            __nextHasNoMarginBottom: true,
45160            label: (0,external_wp_i18n_namespaceObject.__)('Display the title as a link'),
45161            help: (0,external_wp_i18n_namespaceObject.__)('If you have entered a custom label, it will be prepended before the title.'),
45162            checked: !!showTitle,
45163            onChange: () => setAttributes({
45164              showTitle: !showTitle
45165            })
45166          }), showTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
45167            __nextHasNoMarginBottom: true,
45168            label: (0,external_wp_i18n_namespaceObject.__)('Include the label as part of the link'),
45169            checked: !!linkLabel,
45170            onChange: () => setAttributes({
45171              linkLabel: !linkLabel
45172            })
45173          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
45174            __next40pxDefaultSize: true,
45175            __nextHasNoMarginBottom: true,
45176            label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
45177            value: arrow,
45178            onChange: value => {
45179              setAttributes({
45180                arrow: value
45181              });
45182            },
45183            help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow for the next and previous link.'),
45184            isBlock: true,
45185            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
45186              value: "none",
45187              label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Next/Previous link')
45188            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
45189              value: "arrow",
45190              label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Next/Previous link')
45191            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
45192              value: "chevron",
45193              label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Next/Previous link')
45194            })]
45195          })]
45196        })
45197      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45198        group: "advanced",
45199        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
45200          __next40pxDefaultSize: true,
45201          __nextHasNoMarginBottom: true,
45202          label: (0,external_wp_i18n_namespaceObject.__)('Filter by taxonomy'),
45203          value: taxonomy,
45204          options: getTaxonomyOptions(),
45205          onChange: value => setAttributes({
45206            taxonomy: value
45207          }),
45208          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.')
45209        })
45210      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
45211        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
45212          value: textAlign,
45213          onChange: nextAlign => {
45214            setAttributes({
45215              textAlign: nextAlign
45216            });
45217          }
45218        })
45219      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
45220        ...blockProps,
45221        children: [!isNext && displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45222          className: `wp-block-post-navigation-link__arrow-previous is-arrow-$arrow}`,
45223          children: displayArrow
45224        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
45225          tagName: "a",
45226          identifier: "label",
45227          "aria-label": ariaLabel,
45228          placeholder: placeholder,
45229          value: label,
45230          withoutInteractiveFormatting: true,
45231          onChange: newLabel => setAttributes({
45232            label: newLabel
45233          })
45234        }), showTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
45235          href: "#post-navigation-pseudo-link",
45236          onClick: event => event.preventDefault(),
45237          children: (0,external_wp_i18n_namespaceObject.__)('An example title')
45238        }), isNext && displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45239          className: `wp-block-post-navigation-link__arrow-next is-arrow-$arrow}`,
45240          "aria-hidden": true,
45241          children: displayArrow
45242        })]
45243      })]
45244    });
45245  }
45246  
45247  ;// ./node_modules/@wordpress/icons/build-module/library/next.js
45248  /**
45249   * WordPress dependencies
45250   */
45251  
45252  
45253  const next = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45254    xmlns: "http://www.w3.org/2000/svg",
45255    viewBox: "0 0 24 24",
45256    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45257      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"
45258    })
45259  });
45260  /* harmony default export */ const library_next = (next);
45261  
45262  ;// ./node_modules/@wordpress/icons/build-module/library/previous.js
45263  /**
45264   * WordPress dependencies
45265   */
45266  
45267  
45268  const previous = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45269    xmlns: "http://www.w3.org/2000/svg",
45270    viewBox: "0 0 24 24",
45271    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45272      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"
45273    })
45274  });
45275  /* harmony default export */ const library_previous = (previous);
45276  
45277  ;// ./node_modules/@wordpress/block-library/build-module/post-navigation-link/variations.js
45278  /**
45279   * WordPress dependencies
45280   */
45281  
45282  
45283  const post_navigation_link_variations_variations = [{
45284    isDefault: true,
45285    name: 'post-next',
45286    title: (0,external_wp_i18n_namespaceObject.__)('Next Post'),
45287    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that follows the current post.'),
45288    icon: library_next,
45289    attributes: {
45290      type: 'next'
45291    },
45292    scope: ['inserter', 'transform'],
45293    example: {
45294      attributes: {
45295        label: (0,external_wp_i18n_namespaceObject.__)('Next post'),
45296        arrow: 'arrow'
45297      }
45298    }
45299  }, {
45300    name: 'post-previous',
45301    title: (0,external_wp_i18n_namespaceObject.__)('Previous Post'),
45302    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that precedes the current post.'),
45303    icon: library_previous,
45304    attributes: {
45305      type: 'previous'
45306    },
45307    scope: ['inserter', 'transform'],
45308    example: {
45309      attributes: {
45310        label: (0,external_wp_i18n_namespaceObject.__)('Previous post'),
45311        arrow: 'arrow'
45312      }
45313    }
45314  }];
45315  
45316  /**
45317   * Add `isActive` function to all `post-navigation-link` variations, if not defined.
45318   * `isActive` function is used to find a variation match from a created
45319   *  Block by providing its attributes.
45320   */
45321  post_navigation_link_variations_variations.forEach(variation => {
45322    if (variation.isActive) {
45323      return;
45324    }
45325    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
45326  });
45327  /* harmony default export */ const post_navigation_link_variations = (post_navigation_link_variations_variations);
45328  
45329  ;// ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
45330  /**
45331   * WordPress dependencies
45332   */
45333  
45334  
45335  /**
45336   * Internal dependencies
45337   */
45338  
45339  const post_navigation_link_metadata = {
45340    $schema: "https://schemas.wp.org/trunk/block.json",
45341    apiVersion: 3,
45342    name: "core/post-navigation-link",
45343    title: "Post Navigation Link",
45344    category: "theme",
45345    description: "Displays the next or previous post link that is adjacent to the current post.",
45346    textdomain: "default",
45347    attributes: {
45348      textAlign: {
45349        type: "string"
45350      },
45351      type: {
45352        type: "string",
45353        "default": "next"
45354      },
45355      label: {
45356        type: "string"
45357      },
45358      showTitle: {
45359        type: "boolean",
45360        "default": false
45361      },
45362      linkLabel: {
45363        type: "boolean",
45364        "default": false
45365      },
45366      arrow: {
45367        type: "string",
45368        "default": "none"
45369      },
45370      taxonomy: {
45371        type: "string",
45372        "default": ""
45373      }
45374    },
45375    usesContext: ["postType"],
45376    supports: {
45377      reusable: false,
45378      html: false,
45379      color: {
45380        link: true
45381      },
45382      typography: {
45383        fontSize: true,
45384        lineHeight: true,
45385        __experimentalFontFamily: true,
45386        __experimentalFontWeight: true,
45387        __experimentalFontStyle: true,
45388        __experimentalTextTransform: true,
45389        __experimentalTextDecoration: true,
45390        __experimentalLetterSpacing: true,
45391        __experimentalWritingMode: true,
45392        __experimentalDefaultControls: {
45393          fontSize: true
45394        }
45395      },
45396      interactivity: {
45397        clientNavigation: true
45398      }
45399    },
45400    style: "wp-block-post-navigation-link"
45401  };
45402  
45403  
45404  const {
45405    name: post_navigation_link_name
45406  } = post_navigation_link_metadata;
45407  
45408  const post_navigation_link_settings = {
45409    edit: PostNavigationLinkEdit,
45410    variations: post_navigation_link_variations,
45411    example: {
45412      attributes: {
45413        label: (0,external_wp_i18n_namespaceObject.__)('Next post'),
45414        arrow: 'arrow'
45415      }
45416    }
45417  };
45418  const post_navigation_link_init = () => initBlock({
45419    name: post_navigation_link_name,
45420    metadata: post_navigation_link_metadata,
45421    settings: post_navigation_link_settings
45422  });
45423  
45424  ;// ./node_modules/@wordpress/block-library/build-module/post-template/edit.js
45425  /**
45426   * External dependencies
45427   */
45428  
45429  
45430  /**
45431   * WordPress dependencies
45432   */
45433  
45434  
45435  
45436  
45437  
45438  
45439  
45440  
45441  const post_template_edit_TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];
45442  function PostTemplateInnerBlocks({
45443    classList
45444  }) {
45445    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
45446      className: dist_clsx('wp-block-post', classList)
45447    }, {
45448      template: post_template_edit_TEMPLATE,
45449      __unstableDisableLayoutClassNames: true
45450    });
45451    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
45452      ...innerBlocksProps
45453    });
45454  }
45455  function PostTemplateBlockPreview({
45456    blocks,
45457    blockContextId,
45458    classList,
45459    isHidden,
45460    setActiveBlockContextId
45461  }) {
45462    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
45463      blocks,
45464      props: {
45465        className: dist_clsx('wp-block-post', classList)
45466      }
45467    });
45468    const handleOnClick = () => {
45469      setActiveBlockContextId(blockContextId);
45470    };
45471    const style = {
45472      display: isHidden ? 'none' : undefined
45473    };
45474    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
45475      ...blockPreviewProps,
45476      tabIndex: 0
45477      // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
45478      ,
45479      role: "button",
45480      onClick: handleOnClick,
45481      onKeyPress: handleOnClick,
45482      style: style
45483    });
45484  }
45485  const MemoizedPostTemplateBlockPreview = (0,external_wp_element_namespaceObject.memo)(PostTemplateBlockPreview);
45486  function PostTemplateEdit({
45487    setAttributes,
45488    clientId,
45489    context: {
45490      query: {
45491        perPage,
45492        offset = 0,
45493        postType,
45494        order,
45495        orderBy,
45496        author,
45497        search,
45498        exclude,
45499        sticky,
45500        inherit,
45501        taxQuery,
45502        parents,
45503        pages,
45504        format,
45505        // We gather extra query args to pass to the REST API call.
45506        // This way extenders of Query Loop can add their own query args,
45507        // and have accurate previews in the editor.
45508        // Noting though that these args should either be supported by the
45509        // REST API or be handled by custom REST filters like `rest_{$this->post_type}_query`.
45510        ...restQueryArgs
45511      } = {},
45512      templateSlug,
45513      previewPostType
45514    },
45515    attributes: {
45516      layout
45517    },
45518    __unstableLayoutClassNames
45519  }) {
45520    const {
45521      type: layoutType,
45522      columnCount = 3
45523    } = layout || {};
45524    const [activeBlockContextId, setActiveBlockContextId] = (0,external_wp_element_namespaceObject.useState)();
45525    const {
45526      posts,
45527      blocks
45528    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
45529      const {
45530        getEntityRecords,
45531        getTaxonomies
45532      } = select(external_wp_coreData_namespaceObject.store);
45533      const {
45534        getBlocks
45535      } = select(external_wp_blockEditor_namespaceObject.store);
45536      const templateCategory = inherit && templateSlug?.startsWith('category-') && getEntityRecords('taxonomy', 'category', {
45537        context: 'view',
45538        per_page: 1,
45539        _fields: ['id'],
45540        slug: templateSlug.replace('category-', '')
45541      });
45542      const templateTag = inherit && templateSlug?.startsWith('tag-') && getEntityRecords('taxonomy', 'post_tag', {
45543        context: 'view',
45544        per_page: 1,
45545        _fields: ['id'],
45546        slug: templateSlug.replace('tag-', '')
45547      });
45548      const query = {
45549        offset: offset || 0,
45550        order,
45551        orderby: orderBy
45552      };
45553      // There is no need to build the taxQuery if we inherit.
45554      if (taxQuery && !inherit) {
45555        const taxonomies = getTaxonomies({
45556          type: postType,
45557          per_page: -1,
45558          context: 'view'
45559        });
45560        // We have to build the tax query for the REST API and use as
45561        // keys the taxonomies `rest_base` with the `term ids` as values.
45562        const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, [taxonomySlug, terms]) => {
45563          const taxonomy = taxonomies?.find(({
45564            slug
45565          }) => slug === taxonomySlug);
45566          if (taxonomy?.rest_base) {
45567            accumulator[taxonomy?.rest_base] = terms;
45568          }
45569          return accumulator;
45570        }, {});
45571        if (!!Object.keys(builtTaxQuery).length) {
45572          Object.assign(query, builtTaxQuery);
45573        }
45574      }
45575      if (perPage) {
45576        query.per_page = perPage;
45577      }
45578      if (author) {
45579        query.author = author;
45580      }
45581      if (search) {
45582        query.search = search;
45583      }
45584      if (exclude?.length) {
45585        query.exclude = exclude;
45586      }
45587      if (parents?.length) {
45588        query.parent = parents;
45589      }
45590      if (format?.length) {
45591        query.format = format;
45592      }
45593  
45594      /*
45595       * Handle cases where sticky is set to `exclude` or `only`.
45596       * Which works as a `post__in/post__not_in` query for sticky posts.
45597       */
45598      if (sticky && sticky !== 'ignore') {
45599        query.sticky = sticky === 'only';
45600      }
45601      if (sticky === 'ignore') {
45602        // Remove any leftover sticky query parameter.
45603        delete query.sticky;
45604        query.ignore_sticky = true;
45605      }
45606  
45607      // If `inherit` is truthy, adjust conditionally the query to create a better preview.
45608      let currentPostType = postType;
45609      if (inherit) {
45610        // Change the post-type if needed.
45611        if (templateSlug?.startsWith('archive-')) {
45612          query.postType = templateSlug.replace('archive-', '');
45613          currentPostType = query.postType;
45614        } else if (templateCategory) {
45615          query.categories = templateCategory[0]?.id;
45616        } else if (templateTag) {
45617          query.tags = templateTag[0]?.id;
45618        } else if (templateSlug?.startsWith('taxonomy-post_format')) {
45619          // Get the post format slug from the template slug by removing the prefix.
45620          query.format = templateSlug.replace('taxonomy-post_format-post-format-', '');
45621        }
45622      }
45623      // When we preview Query Loop blocks we should prefer the current
45624      // block's postType, which is passed through block context.
45625      const usedPostType = previewPostType || currentPostType;
45626      return {
45627        posts: getEntityRecords('postType', usedPostType, {
45628          ...query,
45629          ...restQueryArgs
45630        }),
45631        blocks: getBlocks(clientId)
45632      };
45633    }, [perPage, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery, parents, format, restQueryArgs, previewPostType]);
45634    const blockContexts = (0,external_wp_element_namespaceObject.useMemo)(() => posts?.map(post => {
45635      var _post$class_list;
45636      return {
45637        postType: post.type,
45638        postId: post.id,
45639        classList: (_post$class_list = post.class_list) !== null && _post$class_list !== void 0 ? _post$class_list : ''
45640      };
45641    }), [posts]);
45642    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45643      className: dist_clsx(__unstableLayoutClassNames, {
45644        [`columns-$columnCount}`]: layoutType === 'grid' && columnCount // Ensure column count is flagged via classname for backwards compatibility.
45645      })
45646    });
45647    if (!posts) {
45648      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
45649        ...blockProps,
45650        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
45651      });
45652    }
45653    if (!posts.length) {
45654      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
45655        ...blockProps,
45656        children: [" ", (0,external_wp_i18n_namespaceObject.__)('No results found.')]
45657      });
45658    }
45659    const setDisplayLayout = newDisplayLayout => setAttributes({
45660      layout: {
45661        ...layout,
45662        ...newDisplayLayout
45663      }
45664    });
45665    const displayLayoutControls = [{
45666      icon: library_list,
45667      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'Post template block display setting'),
45668      onClick: () => setDisplayLayout({
45669        type: 'default'
45670      }),
45671      isActive: layoutType === 'default' || layoutType === 'constrained'
45672    }, {
45673      icon: library_grid,
45674      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'Post template block display setting'),
45675      onClick: () => setDisplayLayout({
45676        type: 'grid',
45677        columnCount
45678      }),
45679      isActive: layoutType === 'grid'
45680    }];
45681  
45682    // To avoid flicker when switching active block contexts, a preview is rendered
45683    // for each block context, but the preview for the active block context is hidden.
45684    // This ensures that when it is displayed again, the cached rendering of the
45685    // block preview is used, instead of having to re-render the preview from scratch.
45686    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45687      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
45688        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
45689          controls: displayLayoutControls
45690        })
45691      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
45692        ...blockProps,
45693        children: blockContexts && blockContexts.map(blockContext => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
45694          value: blockContext,
45695          children: [blockContext.postId === (activeBlockContextId || blockContexts[0]?.postId) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTemplateInnerBlocks, {
45696            classList: blockContext.classList
45697          }) : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MemoizedPostTemplateBlockPreview, {
45698            blocks: blocks,
45699            blockContextId: blockContext.postId,
45700            classList: blockContext.classList,
45701            setActiveBlockContextId: setActiveBlockContextId,
45702            isHidden: blockContext.postId === (activeBlockContextId || blockContexts[0]?.postId)
45703          })]
45704        }, blockContext.postId))
45705      })]
45706    });
45707  }
45708  
45709  ;// ./node_modules/@wordpress/block-library/build-module/post-template/save.js
45710  /**
45711   * WordPress dependencies
45712   */
45713  
45714  
45715  function PostTemplateSave() {
45716    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
45717  }
45718  
45719  ;// ./node_modules/@wordpress/block-library/build-module/post-template/index.js
45720  /**
45721   * WordPress dependencies
45722   */
45723  
45724  
45725  /**
45726   * Internal dependencies
45727   */
45728  
45729  const post_template_metadata = {
45730    $schema: "https://schemas.wp.org/trunk/block.json",
45731    apiVersion: 3,
45732    name: "core/post-template",
45733    title: "Post Template",
45734    category: "theme",
45735    ancestor: ["core/query"],
45736    description: "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.",
45737    textdomain: "default",
45738    usesContext: ["queryId", "query", "displayLayout", "templateSlug", "previewPostType", "enhancedPagination", "postType"],
45739    supports: {
45740      reusable: false,
45741      html: false,
45742      align: ["wide", "full"],
45743      layout: true,
45744      color: {
45745        gradients: true,
45746        link: true,
45747        __experimentalDefaultControls: {
45748          background: true,
45749          text: true
45750        }
45751      },
45752      typography: {
45753        fontSize: true,
45754        lineHeight: true,
45755        __experimentalFontFamily: true,
45756        __experimentalFontWeight: true,
45757        __experimentalFontStyle: true,
45758        __experimentalTextTransform: true,
45759        __experimentalTextDecoration: true,
45760        __experimentalLetterSpacing: true,
45761        __experimentalDefaultControls: {
45762          fontSize: true
45763        }
45764      },
45765      spacing: {
45766        margin: true,
45767        padding: true,
45768        blockGap: {
45769          __experimentalDefault: "1.25em"
45770        },
45771        __experimentalDefaultControls: {
45772          blockGap: true,
45773          padding: false,
45774          margin: false
45775        }
45776      },
45777      interactivity: {
45778        clientNavigation: true
45779      },
45780      __experimentalBorder: {
45781        radius: true,
45782        color: true,
45783        width: true,
45784        style: true
45785      }
45786    },
45787    style: "wp-block-post-template",
45788    editorStyle: "wp-block-post-template-editor"
45789  };
45790  
45791  
45792  const {
45793    name: post_template_name
45794  } = post_template_metadata;
45795  
45796  const post_template_settings = {
45797    icon: library_layout,
45798    edit: PostTemplateEdit,
45799    save: PostTemplateSave
45800  };
45801  const post_template_init = () => initBlock({
45802    name: post_template_name,
45803    metadata: post_template_metadata,
45804    settings: post_template_settings
45805  });
45806  
45807  ;// ./node_modules/@wordpress/icons/build-module/library/post-categories.js
45808  /**
45809   * WordPress dependencies
45810   */
45811  
45812  
45813  const postCategories = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45814    viewBox: "0 0 24 24",
45815    xmlns: "http://www.w3.org/2000/svg",
45816    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45817      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",
45818      fillRule: "evenodd",
45819      clipRule: "evenodd"
45820    })
45821  });
45822  /* harmony default export */ const post_categories = (postCategories);
45823  
45824  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/use-post-terms.js
45825  /**
45826   * WordPress dependencies
45827   */
45828  
45829  
45830  const use_post_terms_EMPTY_ARRAY = [];
45831  function usePostTerms({
45832    postId,
45833    term
45834  }) {
45835    const {
45836      slug
45837    } = term;
45838    return (0,external_wp_data_namespaceObject.useSelect)(select => {
45839      const visible = term?.visibility?.publicly_queryable;
45840      if (!visible) {
45841        return {
45842          postTerms: use_post_terms_EMPTY_ARRAY,
45843          isLoading: false,
45844          hasPostTerms: false
45845        };
45846      }
45847      const {
45848        getEntityRecords,
45849        isResolving
45850      } = select(external_wp_coreData_namespaceObject.store);
45851      const taxonomyArgs = ['taxonomy', slug, {
45852        post: postId,
45853        per_page: -1,
45854        context: 'view'
45855      }];
45856      const terms = getEntityRecords(...taxonomyArgs);
45857      return {
45858        postTerms: terms,
45859        isLoading: isResolving('getEntityRecords', taxonomyArgs),
45860        hasPostTerms: !!terms?.length
45861      };
45862    }, [postId, term?.visibility?.publicly_queryable, slug]);
45863  }
45864  
45865  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/edit.js
45866  /**
45867   * External dependencies
45868   */
45869  
45870  
45871  /**
45872   * WordPress dependencies
45873   */
45874  
45875  
45876  
45877  
45878  
45879  
45880  
45881  
45882  /**
45883   * Internal dependencies
45884   */
45885  
45886  
45887  // Allowed formats for the prefix and suffix fields.
45888  
45889  const ALLOWED_FORMATS = ['core/bold', 'core/image', 'core/italic', 'core/link', 'core/strikethrough', 'core/text-color'];
45890  function PostTermsEdit({
45891    attributes,
45892    clientId,
45893    context,
45894    isSelected,
45895    setAttributes,
45896    insertBlocksAfter
45897  }) {
45898    const {
45899      term,
45900      textAlign,
45901      separator,
45902      prefix,
45903      suffix
45904    } = attributes;
45905    const {
45906      postId,
45907      postType
45908    } = context;
45909    const selectedTerm = (0,external_wp_data_namespaceObject.useSelect)(select => {
45910      if (!term) {
45911        return {};
45912      }
45913      const {
45914        getTaxonomy
45915      } = select(external_wp_coreData_namespaceObject.store);
45916      const taxonomy = getTaxonomy(term);
45917      return taxonomy?.visibility?.publicly_queryable ? taxonomy : {};
45918    }, [term]);
45919    const {
45920      postTerms,
45921      hasPostTerms,
45922      isLoading
45923    } = usePostTerms({
45924      postId,
45925      term: selectedTerm
45926    });
45927    const hasPost = postId && postType;
45928    const blockInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(clientId);
45929    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45930      className: dist_clsx({
45931        [`has-text-align-$textAlign}`]: textAlign,
45932        [`taxonomy-$term}`]: term
45933      })
45934    });
45935    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45936      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
45937        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
45938          value: textAlign,
45939          onChange: nextAlign => {
45940            setAttributes({
45941              textAlign: nextAlign
45942            });
45943          }
45944        })
45945      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45946        group: "advanced",
45947        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
45948          __next40pxDefaultSize: true,
45949          __nextHasNoMarginBottom: true,
45950          autoComplete: "off",
45951          label: (0,external_wp_i18n_namespaceObject.__)('Separator'),
45952          value: separator || '',
45953          onChange: nextValue => {
45954            setAttributes({
45955              separator: nextValue
45956            });
45957          },
45958          help: (0,external_wp_i18n_namespaceObject.__)('Enter character(s) used to separate terms.')
45959        })
45960      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
45961        ...blockProps,
45962        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, {
45963          identifier: "prefix",
45964          allowedFormats: ALLOWED_FORMATS,
45965          className: "wp-block-post-terms__prefix",
45966          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Prefix'),
45967          placeholder: (0,external_wp_i18n_namespaceObject.__)('Prefix') + ' ',
45968          value: prefix,
45969          onChange: value => setAttributes({
45970            prefix: value
45971          }),
45972          tagName: "span"
45973        }), (!hasPost || !term) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45974          children: blockInformation.title
45975        }), hasPost && !isLoading && hasPostTerms && postTerms.map(postTerm => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
45976          href: postTerm.link,
45977          onClick: event => event.preventDefault(),
45978          rel: "tag",
45979          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postTerm.name)
45980        }, postTerm.id)).reduce((prev, curr) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45981          children: [prev, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45982            className: "wp-block-post-terms__separator",
45983            children: separator || ' '
45984          }), curr]
45985        })), 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, {
45986          identifier: "suffix",
45987          allowedFormats: ALLOWED_FORMATS,
45988          className: "wp-block-post-terms__suffix",
45989          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Suffix'),
45990          placeholder: ' ' + (0,external_wp_i18n_namespaceObject.__)('Suffix'),
45991          value: suffix,
45992          onChange: value => setAttributes({
45993            suffix: value
45994          }),
45995          tagName: "span",
45996          __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
45997        })]
45998      })]
45999    });
46000  }
46001  
46002  ;// ./node_modules/@wordpress/icons/build-module/library/post-terms.js
46003  /**
46004   * WordPress dependencies
46005   */
46006  
46007  
46008  const postTerms = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46009    viewBox: "0 0 24 24",
46010    xmlns: "http://www.w3.org/2000/svg",
46011    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46012      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"
46013    })
46014  });
46015  /* harmony default export */ const post_terms = (postTerms);
46016  
46017  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/hooks.js
46018  /**
46019   * WordPress dependencies
46020   */
46021  
46022  const variationIconMap = {
46023    category: post_categories,
46024    post_tag: post_terms
46025  };
46026  
46027  // We add `icons` to categories and tags. The remaining ones use
46028  // the block's default icon.
46029  function enhanceVariations(settings, name) {
46030    if (name !== 'core/post-terms') {
46031      return settings;
46032    }
46033    const variations = settings.variations.map(variation => {
46034      var _variationIconMap$var;
46035      return {
46036        ...variation,
46037        ...{
46038          icon: (_variationIconMap$var = variationIconMap[variation.name]) !== null && _variationIconMap$var !== void 0 ? _variationIconMap$var : post_categories
46039        }
46040      };
46041    });
46042    return {
46043      ...settings,
46044      variations
46045    };
46046  }
46047  
46048  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
46049  /**
46050   * WordPress dependencies
46051   */
46052  
46053  
46054  
46055  /**
46056   * Internal dependencies
46057   */
46058  
46059  const post_terms_metadata = {
46060    $schema: "https://schemas.wp.org/trunk/block.json",
46061    apiVersion: 3,
46062    name: "core/post-terms",
46063    title: "Post Terms",
46064    category: "theme",
46065    description: "Post terms.",
46066    textdomain: "default",
46067    attributes: {
46068      term: {
46069        type: "string"
46070      },
46071      textAlign: {
46072        type: "string"
46073      },
46074      separator: {
46075        type: "string",
46076        "default": ", "
46077      },
46078      prefix: {
46079        type: "string",
46080        "default": ""
46081      },
46082      suffix: {
46083        type: "string",
46084        "default": ""
46085      }
46086    },
46087    usesContext: ["postId", "postType"],
46088    example: {
46089      viewportWidth: 350
46090    },
46091    supports: {
46092      html: false,
46093      color: {
46094        gradients: true,
46095        link: true,
46096        __experimentalDefaultControls: {
46097          background: true,
46098          text: true,
46099          link: true
46100        }
46101      },
46102      spacing: {
46103        margin: true,
46104        padding: true
46105      },
46106      typography: {
46107        fontSize: true,
46108        lineHeight: true,
46109        __experimentalFontFamily: true,
46110        __experimentalFontWeight: true,
46111        __experimentalFontStyle: true,
46112        __experimentalTextTransform: true,
46113        __experimentalTextDecoration: true,
46114        __experimentalLetterSpacing: true,
46115        __experimentalDefaultControls: {
46116          fontSize: true
46117        }
46118      },
46119      interactivity: {
46120        clientNavigation: true
46121      },
46122      __experimentalBorder: {
46123        radius: true,
46124        color: true,
46125        width: true,
46126        style: true,
46127        __experimentalDefaultControls: {
46128          radius: true,
46129          color: true,
46130          width: true,
46131          style: true
46132        }
46133      }
46134    },
46135    style: "wp-block-post-terms"
46136  };
46137  
46138  
46139  const {
46140    name: post_terms_name
46141  } = post_terms_metadata;
46142  
46143  const post_terms_settings = {
46144    icon: post_categories,
46145    edit: PostTermsEdit
46146  };
46147  const post_terms_init = () => {
46148    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceVariations);
46149    return initBlock({
46150      name: post_terms_name,
46151      metadata: post_terms_metadata,
46152      settings: post_terms_settings
46153    });
46154  };
46155  
46156  ;// external ["wp","wordcount"]
46157  const external_wp_wordcount_namespaceObject = window["wp"]["wordcount"];
46158  ;// ./node_modules/@wordpress/block-library/build-module/post-time-to-read/edit.js
46159  /**
46160   * External dependencies
46161   */
46162  
46163  
46164  /**
46165   * WordPress dependencies
46166   */
46167  
46168  
46169  
46170  
46171  
46172  
46173  
46174  /**
46175   * Average reading rate - based on average taken from
46176   * https://irisreading.com/average-reading-speed-in-various-languages/
46177   * (Characters/minute used for Chinese rather than words).
46178   */
46179  
46180  const AVERAGE_READING_RATE = 189;
46181  function PostTimeToReadEdit({
46182    attributes,
46183    setAttributes,
46184    context
46185  }) {
46186    const {
46187      textAlign
46188    } = attributes;
46189    const {
46190      postId,
46191      postType
46192    } = context;
46193    const [contentStructure] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
46194    const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
46195      id: postId
46196    });
46197    const minutesToReadString = (0,external_wp_element_namespaceObject.useMemo)(() => {
46198      // Replicates the logic found in getEditedPostContent().
46199      let content;
46200      if (contentStructure instanceof Function) {
46201        content = contentStructure({
46202          blocks
46203        });
46204      } else if (blocks) {
46205        // If we have parsed blocks already, they should be our source of truth.
46206        // Parsing applies block deprecations and legacy block conversions that
46207        // unparsed content will not have.
46208        content = (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocks);
46209      } else {
46210        content = contentStructure;
46211      }
46212  
46213      /*
46214       * translators: If your word count is based on single characters (e.g. East Asian characters),
46215       * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
46216       * Do not translate into your own language.
46217       */
46218      const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
46219      const minutesToRead = Math.max(1, Math.round((0,external_wp_wordcount_namespaceObject.count)(content || '', wordCountType) / AVERAGE_READING_RATE));
46220      return (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: the number of minutes to read the post. */
46221      (0,external_wp_i18n_namespaceObject._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
46222    }, [contentStructure, blocks]);
46223    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46224      className: dist_clsx({
46225        [`has-text-align-$textAlign}`]: textAlign
46226      })
46227    });
46228    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46229      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
46230        group: "block",
46231        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
46232          value: textAlign,
46233          onChange: nextAlign => {
46234            setAttributes({
46235              textAlign: nextAlign
46236            });
46237          }
46238        })
46239      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
46240        ...blockProps,
46241        children: minutesToReadString
46242      })]
46243    });
46244  }
46245  /* harmony default export */ const post_time_to_read_edit = (PostTimeToReadEdit);
46246  
46247  ;// ./node_modules/@wordpress/block-library/build-module/post-time-to-read/icon.js
46248  /**
46249   * WordPress dependencies
46250   */
46251  
46252  
46253  /* harmony default export */ const icon = (/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
46254    xmlns: "http://www.w3.org/2000/svg",
46255    width: "24",
46256    height: "24",
46257    viewBox: "0 0 24 24",
46258    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
46259      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"
46260    })
46261  }));
46262  
46263  ;// ./node_modules/@wordpress/block-library/build-module/post-time-to-read/index.js
46264  /**
46265   * Internal dependencies
46266   */
46267  
46268  const post_time_to_read_metadata = {
46269    $schema: "https://schemas.wp.org/trunk/block.json",
46270    apiVersion: 3,
46271    __experimental: true,
46272    name: "core/post-time-to-read",
46273    title: "Time to Read",
46274    category: "theme",
46275    description: "Show minutes required to finish reading the post.",
46276    textdomain: "default",
46277    usesContext: ["postId", "postType"],
46278    attributes: {
46279      textAlign: {
46280        type: "string"
46281      }
46282    },
46283    supports: {
46284      color: {
46285        gradients: true,
46286        __experimentalDefaultControls: {
46287          background: true,
46288          text: true
46289        }
46290      },
46291      html: false,
46292      spacing: {
46293        margin: true,
46294        padding: true,
46295        __experimentalDefaultControls: {
46296          margin: false,
46297          padding: false
46298        }
46299      },
46300      typography: {
46301        fontSize: true,
46302        lineHeight: true,
46303        __experimentalFontFamily: true,
46304        __experimentalFontWeight: true,
46305        __experimentalFontStyle: true,
46306        __experimentalTextTransform: true,
46307        __experimentalTextDecoration: true,
46308        __experimentalLetterSpacing: true,
46309        __experimentalDefaultControls: {
46310          fontSize: true
46311        }
46312      },
46313      interactivity: {
46314        clientNavigation: true
46315      },
46316      __experimentalBorder: {
46317        radius: true,
46318        color: true,
46319        width: true,
46320        style: true
46321      }
46322    }
46323  };
46324  
46325  
46326  const {
46327    name: post_time_to_read_name
46328  } = post_time_to_read_metadata;
46329  
46330  const post_time_to_read_settings = {
46331    icon: icon,
46332    edit: post_time_to_read_edit,
46333    example: {}
46334  };
46335  const post_time_to_read_init = () => initBlock({
46336    name: post_time_to_read_name,
46337    metadata: post_time_to_read_metadata,
46338    settings: post_time_to_read_settings
46339  });
46340  
46341  ;// ./node_modules/@wordpress/block-library/build-module/post-title/edit.js
46342  /**
46343   * External dependencies
46344   */
46345  
46346  
46347  /**
46348   * WordPress dependencies
46349   */
46350  
46351  
46352  
46353  
46354  
46355  
46356  
46357  function PostTitleEdit({
46358    attributes: {
46359      level,
46360      levelOptions,
46361      textAlign,
46362      isLink,
46363      rel,
46364      linkTarget
46365    },
46366    setAttributes,
46367    context: {
46368      postType,
46369      postId,
46370      queryId
46371    },
46372    insertBlocksAfter
46373  }) {
46374    const TagName = level === 0 ? 'p' : `h$level}`;
46375    const isDescendentOfQueryLoop = Number.isFinite(queryId);
46376    const userCanEdit = (0,external_wp_data_namespaceObject.useSelect)(select => {
46377      /**
46378       * useCanEditEntity may trigger an OPTIONS request to the REST API
46379       * via the canUser resolver. However, when the Post Title is a
46380       * descendant of a Query Loop block, the title cannot be edited. In
46381       * order to avoid these unnecessary requests, we call the hook
46382       * without the proper data, resulting in returning early without
46383       * making them.
46384       */
46385      if (isDescendentOfQueryLoop) {
46386        return false;
46387      }
46388      return select(external_wp_coreData_namespaceObject.store).canUser('update', {
46389        kind: 'postType',
46390        name: postType,
46391        id: postId
46392      });
46393    }, [isDescendentOfQueryLoop, postType, postId]);
46394    const [rawTitle = '', setTitle, fullTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
46395    const [link] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'link', postId);
46396    const onSplitAtEnd = () => {
46397      insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()));
46398    };
46399    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46400      className: dist_clsx({
46401        [`has-text-align-$textAlign}`]: textAlign
46402      })
46403    });
46404    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
46405    let titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46406      ...blockProps,
46407      children: (0,external_wp_i18n_namespaceObject.__)('Title')
46408    });
46409    if (postType && postId) {
46410      titleElement = userCanEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
46411        tagName: TagName,
46412        placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
46413        value: rawTitle,
46414        onChange: setTitle,
46415        __experimentalVersion: 2,
46416        __unstableOnSplitAtEnd: onSplitAtEnd,
46417        ...blockProps
46418      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46419        ...blockProps,
46420        dangerouslySetInnerHTML: {
46421          __html: fullTitle?.rendered
46422        }
46423      });
46424    }
46425    if (isLink && postType && postId) {
46426      titleElement = userCanEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46427        ...blockProps,
46428        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
46429          tagName: "a",
46430          href: link,
46431          target: linkTarget,
46432          rel: rel,
46433          placeholder: !rawTitle.length ? (0,external_wp_i18n_namespaceObject.__)('No title') : null,
46434          value: rawTitle,
46435          onChange: setTitle,
46436          __experimentalVersion: 2,
46437          __unstableOnSplitAtEnd: onSplitAtEnd
46438        })
46439      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46440        ...blockProps,
46441        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
46442          href: link,
46443          target: linkTarget,
46444          rel: rel,
46445          onClick: event => event.preventDefault(),
46446          dangerouslySetInnerHTML: {
46447            __html: fullTitle?.rendered
46448          }
46449        })
46450      });
46451    }
46452    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46453      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46454        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
46455          group: "block",
46456          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
46457            value: level,
46458            options: levelOptions,
46459            onChange: newLevel => setAttributes({
46460              level: newLevel
46461            })
46462          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
46463            value: textAlign,
46464            onChange: nextAlign => {
46465              setAttributes({
46466                textAlign: nextAlign
46467              });
46468            }
46469          })]
46470        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
46471          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
46472            title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
46473            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
46474              __nextHasNoMarginBottom: true,
46475              label: (0,external_wp_i18n_namespaceObject.__)('Make title a link'),
46476              onChange: () => setAttributes({
46477                isLink: !isLink
46478              }),
46479              checked: isLink
46480            }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46481              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
46482                __nextHasNoMarginBottom: true,
46483                label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
46484                onChange: value => setAttributes({
46485                  linkTarget: value ? '_blank' : '_self'
46486                }),
46487                checked: linkTarget === '_blank'
46488              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
46489                __next40pxDefaultSize: true,
46490                __nextHasNoMarginBottom: true,
46491                label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
46492                value: rel,
46493                onChange: newRel => setAttributes({
46494                  rel: newRel
46495                })
46496              })]
46497            })]
46498          })
46499        })]
46500      }), titleElement]
46501    });
46502  }
46503  
46504  ;// ./node_modules/@wordpress/block-library/build-module/post-title/deprecated.js
46505  /**
46506   * Internal dependencies
46507   */
46508  
46509  const post_title_deprecated_v1 = {
46510    attributes: {
46511      textAlign: {
46512        type: 'string'
46513      },
46514      level: {
46515        type: 'number',
46516        default: 2
46517      },
46518      isLink: {
46519        type: 'boolean',
46520        default: false
46521      },
46522      rel: {
46523        type: 'string',
46524        attribute: 'rel',
46525        default: ''
46526      },
46527      linkTarget: {
46528        type: 'string',
46529        default: '_self'
46530      }
46531    },
46532    supports: {
46533      align: ['wide', 'full'],
46534      html: false,
46535      color: {
46536        gradients: true,
46537        link: true
46538      },
46539      spacing: {
46540        margin: true
46541      },
46542      typography: {
46543        fontSize: true,
46544        lineHeight: true,
46545        __experimentalFontFamily: true,
46546        __experimentalFontWeight: true,
46547        __experimentalFontStyle: true,
46548        __experimentalTextTransform: true
46549      }
46550    },
46551    save() {
46552      return null;
46553    },
46554    migrate: migrate_font_family,
46555    isEligible({
46556      style
46557    }) {
46558      return style?.typography?.fontFamily;
46559    }
46560  };
46561  
46562  /**
46563   * New deprecations need to be placed first
46564   * for them to have higher priority.
46565   *
46566   * Old deprecations may need to be updated as well.
46567   *
46568   * See block-deprecation.md
46569   */
46570  /* harmony default export */ const post_title_deprecated = ([post_title_deprecated_v1]);
46571  
46572  ;// ./node_modules/@wordpress/block-library/build-module/post-title/index.js
46573  /**
46574   * WordPress dependencies
46575   */
46576  
46577  
46578  /**
46579   * Internal dependencies
46580   */
46581  
46582  const post_title_metadata = {
46583    $schema: "https://schemas.wp.org/trunk/block.json",
46584    apiVersion: 3,
46585    name: "core/post-title",
46586    title: "Title",
46587    category: "theme",
46588    description: "Displays the title of a post, page, or any other content-type.",
46589    textdomain: "default",
46590    usesContext: ["postId", "postType", "queryId"],
46591    attributes: {
46592      textAlign: {
46593        type: "string"
46594      },
46595      level: {
46596        type: "number",
46597        "default": 2
46598      },
46599      levelOptions: {
46600        type: "array"
46601      },
46602      isLink: {
46603        type: "boolean",
46604        "default": false,
46605        role: "content"
46606      },
46607      rel: {
46608        type: "string",
46609        attribute: "rel",
46610        "default": "",
46611        role: "content"
46612      },
46613      linkTarget: {
46614        type: "string",
46615        "default": "_self",
46616        role: "content"
46617      }
46618    },
46619    example: {
46620      viewportWidth: 350
46621    },
46622    supports: {
46623      align: ["wide", "full"],
46624      html: false,
46625      color: {
46626        gradients: true,
46627        link: true,
46628        __experimentalDefaultControls: {
46629          background: true,
46630          text: true,
46631          link: true
46632        }
46633      },
46634      spacing: {
46635        margin: true,
46636        padding: true
46637      },
46638      typography: {
46639        fontSize: true,
46640        lineHeight: true,
46641        __experimentalFontFamily: true,
46642        __experimentalFontWeight: true,
46643        __experimentalFontStyle: true,
46644        __experimentalTextTransform: true,
46645        __experimentalTextDecoration: true,
46646        __experimentalLetterSpacing: true,
46647        __experimentalDefaultControls: {
46648          fontSize: true
46649        }
46650      },
46651      interactivity: {
46652        clientNavigation: true
46653      },
46654      __experimentalBorder: {
46655        radius: true,
46656        color: true,
46657        width: true,
46658        style: true,
46659        __experimentalDefaultControls: {
46660          radius: true,
46661          color: true,
46662          width: true,
46663          style: true
46664        }
46665      }
46666    },
46667    style: "wp-block-post-title"
46668  };
46669  
46670  
46671  const {
46672    name: post_title_name
46673  } = post_title_metadata;
46674  
46675  const post_title_settings = {
46676    icon: library_title,
46677    edit: PostTitleEdit,
46678    deprecated: post_title_deprecated
46679  };
46680  const post_title_init = () => initBlock({
46681    name: post_title_name,
46682    metadata: post_title_metadata,
46683    settings: post_title_settings
46684  });
46685  
46686  ;// ./node_modules/@wordpress/icons/build-module/library/preformatted.js
46687  /**
46688   * WordPress dependencies
46689   */
46690  
46691  
46692  const preformatted = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46693    viewBox: "0 0 24 24",
46694    xmlns: "http://www.w3.org/2000/svg",
46695    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46696      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"
46697    })
46698  });
46699  /* harmony default export */ const library_preformatted = (preformatted);
46700  
46701  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js
46702  /**
46703   * WordPress dependencies
46704   */
46705  
46706  
46707  
46708  
46709  function PreformattedEdit({
46710    attributes,
46711    mergeBlocks,
46712    setAttributes,
46713    onRemove,
46714    insertBlocksAfter,
46715    style
46716  }) {
46717    const {
46718      content
46719    } = attributes;
46720    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46721      style
46722    });
46723    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
46724      tagName: "pre",
46725      identifier: "content",
46726      preserveWhiteSpace: true,
46727      value: content,
46728      onChange: nextContent => {
46729        setAttributes({
46730          content: nextContent
46731        });
46732      },
46733      onRemove: onRemove,
46734      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preformatted text'),
46735      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write preformatted text…'),
46736      onMerge: mergeBlocks,
46737      ...blockProps,
46738      __unstablePastePlainText: true,
46739      __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
46740    });
46741  }
46742  
46743  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/save.js
46744  /**
46745   * WordPress dependencies
46746   */
46747  
46748  
46749  function preformatted_save_save({
46750    attributes
46751  }) {
46752    const {
46753      content
46754    } = attributes;
46755    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
46756      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
46757      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46758        value: content
46759      })
46760    });
46761  }
46762  
46763  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js
46764  /**
46765   * WordPress dependencies
46766   */
46767  
46768  const preformatted_transforms_transforms = {
46769    from: [{
46770      type: 'block',
46771      blocks: ['core/code', 'core/paragraph'],
46772      transform: ({
46773        content,
46774        anchor
46775      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/preformatted', {
46776        content,
46777        anchor
46778      })
46779    }, {
46780      type: 'raw',
46781      isMatch: node => node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE'),
46782      schema: ({
46783        phrasingContentSchema
46784      }) => ({
46785        pre: {
46786          children: phrasingContentSchema
46787        }
46788      })
46789    }],
46790    to: [{
46791      type: 'block',
46792      blocks: ['core/paragraph'],
46793      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
46794    }, {
46795      type: 'block',
46796      blocks: ['core/code'],
46797      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', attributes)
46798    }]
46799  };
46800  /* harmony default export */ const preformatted_transforms = (preformatted_transforms_transforms);
46801  
46802  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
46803  /**
46804   * WordPress dependencies
46805   */
46806  
46807  
46808  
46809  /**
46810   * Internal dependencies
46811   */
46812  
46813  
46814  const preformatted_metadata = {
46815    $schema: "https://schemas.wp.org/trunk/block.json",
46816    apiVersion: 3,
46817    name: "core/preformatted",
46818    title: "Preformatted",
46819    category: "text",
46820    description: "Add text that respects your spacing and tabs, and also allows styling.",
46821    textdomain: "default",
46822    attributes: {
46823      content: {
46824        type: "rich-text",
46825        source: "rich-text",
46826        selector: "pre",
46827        __unstablePreserveWhiteSpace: true,
46828        role: "content"
46829      }
46830    },
46831    supports: {
46832      anchor: true,
46833      color: {
46834        gradients: true,
46835        __experimentalDefaultControls: {
46836          background: true,
46837          text: true
46838        }
46839      },
46840      spacing: {
46841        padding: true,
46842        margin: true
46843      },
46844      typography: {
46845        fontSize: true,
46846        lineHeight: true,
46847        __experimentalFontFamily: true,
46848        __experimentalFontWeight: true,
46849        __experimentalFontStyle: true,
46850        __experimentalTextTransform: true,
46851        __experimentalTextDecoration: true,
46852        __experimentalLetterSpacing: true,
46853        __experimentalDefaultControls: {
46854          fontSize: true
46855        }
46856      },
46857      interactivity: {
46858        clientNavigation: true
46859      },
46860      __experimentalBorder: {
46861        radius: true,
46862        color: true,
46863        width: true,
46864        style: true,
46865        __experimentalDefaultControls: {
46866          radius: true,
46867          color: true,
46868          width: true,
46869          style: true
46870        }
46871      }
46872    },
46873    style: "wp-block-preformatted"
46874  };
46875  
46876  
46877  const {
46878    name: preformatted_name
46879  } = preformatted_metadata;
46880  
46881  const preformatted_settings = {
46882    icon: library_preformatted,
46883    example: {
46884      attributes: {
46885        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
46886        // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.
46887        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;')
46888        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
46889      }
46890    },
46891    transforms: preformatted_transforms,
46892    edit: PreformattedEdit,
46893    save: preformatted_save_save,
46894    merge(attributes, attributesToMerge) {
46895      return {
46896        content: attributes.content + '\n\n' + attributesToMerge.content
46897      };
46898    }
46899  };
46900  const preformatted_init = () => initBlock({
46901    name: preformatted_name,
46902    metadata: preformatted_metadata,
46903    settings: preformatted_settings
46904  });
46905  
46906  ;// ./node_modules/@wordpress/icons/build-module/library/pullquote.js
46907  /**
46908   * WordPress dependencies
46909   */
46910  
46911  
46912  const pullquote = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46913    viewBox: "0 0 24 24",
46914    xmlns: "http://www.w3.org/2000/svg",
46915    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46916      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"
46917    })
46918  });
46919  /* harmony default export */ const library_pullquote = (pullquote);
46920  
46921  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js
46922  const SOLID_COLOR_CLASS = `is-style-solid-color`;
46923  
46924  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js
46925  /**
46926   * External dependencies
46927   */
46928  
46929  
46930  /**
46931   * WordPress dependencies
46932   */
46933  
46934  
46935  
46936  /**
46937   * Internal dependencies
46938   */
46939  
46940  
46941  const pullquote_deprecated_blockAttributes = {
46942    value: {
46943      type: 'string',
46944      source: 'html',
46945      selector: 'blockquote',
46946      multiline: 'p'
46947    },
46948    citation: {
46949      type: 'string',
46950      source: 'html',
46951      selector: 'cite',
46952      default: ''
46953    },
46954    mainColor: {
46955      type: 'string'
46956    },
46957    customMainColor: {
46958      type: 'string'
46959    },
46960    textColor: {
46961      type: 'string'
46962    },
46963    customTextColor: {
46964      type: 'string'
46965    }
46966  };
46967  function parseBorderColor(styleString) {
46968    if (!styleString) {
46969      return;
46970    }
46971    const matches = styleString.match(/border-color:([^;]+)[;]?/);
46972    if (matches && matches[1]) {
46973      return matches[1];
46974    }
46975  }
46976  function multilineToInline(value) {
46977    value = value || `<p></p>`;
46978    const padded = `</p>$value}<p>`;
46979    const values = padded.split(`</p><p>`);
46980    values.shift();
46981    values.pop();
46982    return values.join('<br>');
46983  }
46984  const pullquote_deprecated_v5 = {
46985    attributes: {
46986      value: {
46987        type: 'string',
46988        source: 'html',
46989        selector: 'blockquote',
46990        multiline: 'p',
46991        role: 'content'
46992      },
46993      citation: {
46994        type: 'string',
46995        source: 'html',
46996        selector: 'cite',
46997        default: '',
46998        role: 'content'
46999      },
47000      textAlign: {
47001        type: 'string'
47002      }
47003    },
47004    save({
47005      attributes
47006    }) {
47007      const {
47008        textAlign,
47009        citation,
47010        value
47011      } = attributes;
47012      const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
47013      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47014        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
47015          className: dist_clsx({
47016            [`has-text-align-$textAlign}`]: textAlign
47017          })
47018        }),
47019        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47020          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47021            value: value,
47022            multiline: true
47023          }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47024            tagName: "cite",
47025            value: citation
47026          })]
47027        })
47028      });
47029    },
47030    migrate({
47031      value,
47032      ...attributes
47033    }) {
47034      return {
47035        value: multilineToInline(value),
47036        ...attributes
47037      };
47038    }
47039  };
47040  
47041  // 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
47042  
47043  const pullquote_deprecated_v4 = {
47044    attributes: {
47045      ...pullquote_deprecated_blockAttributes
47046    },
47047    save({
47048      attributes
47049    }) {
47050      const {
47051        mainColor,
47052        customMainColor,
47053        customTextColor,
47054        textColor,
47055        value,
47056        citation,
47057        className
47058      } = attributes;
47059      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47060      let figureClasses, figureStyles;
47061  
47062      // Is solid color style
47063      if (isSolidColorStyle) {
47064        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
47065        figureClasses = dist_clsx({
47066          'has-background': backgroundClass || customMainColor,
47067          [backgroundClass]: backgroundClass
47068        });
47069        figureStyles = {
47070          backgroundColor: backgroundClass ? undefined : customMainColor
47071        };
47072        // Is normal style and a custom color is being used ( we can set a style directly with its value)
47073      } else if (customMainColor) {
47074        figureStyles = {
47075          borderColor: customMainColor
47076        };
47077      }
47078      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
47079      const blockquoteClasses = dist_clsx({
47080        'has-text-color': textColor || customTextColor,
47081        [blockquoteTextColorClass]: blockquoteTextColorClass
47082      });
47083      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
47084        color: customTextColor
47085      };
47086      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47087        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
47088          className: figureClasses,
47089          style: figureStyles
47090        }),
47091        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47092          className: blockquoteClasses,
47093          style: blockquoteStyles,
47094          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47095            value: value,
47096            multiline: true
47097          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47098            tagName: "cite",
47099            value: citation
47100          })]
47101        })
47102      });
47103    },
47104    migrate({
47105      value,
47106      className,
47107      mainColor,
47108      customMainColor,
47109      customTextColor,
47110      ...attributes
47111    }) {
47112      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47113      let style;
47114      if (customMainColor) {
47115        if (!isSolidColorStyle) {
47116          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
47117          style = {
47118            border: {
47119              color: customMainColor
47120            }
47121          };
47122        } else {
47123          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
47124          style = {
47125            color: {
47126              background: customMainColor
47127            }
47128          };
47129        }
47130      }
47131  
47132      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
47133      if (customTextColor && style) {
47134        style.color = {
47135          ...style.color,
47136          text: customTextColor
47137        };
47138      }
47139      return {
47140        value: multilineToInline(value),
47141        className,
47142        backgroundColor: isSolidColorStyle ? mainColor : undefined,
47143        borderColor: isSolidColorStyle ? undefined : mainColor,
47144        textAlign: isSolidColorStyle ? 'left' : undefined,
47145        style,
47146        ...attributes
47147      };
47148    }
47149  };
47150  const pullquote_deprecated_v3 = {
47151    attributes: {
47152      ...pullquote_deprecated_blockAttributes,
47153      // figureStyle is an attribute that never existed.
47154      // We are using it as a way to access the styles previously applied to the figure.
47155      figureStyle: {
47156        source: 'attribute',
47157        selector: 'figure',
47158        attribute: 'style'
47159      }
47160    },
47161    save({
47162      attributes
47163    }) {
47164      const {
47165        mainColor,
47166        customMainColor,
47167        textColor,
47168        customTextColor,
47169        value,
47170        citation,
47171        className,
47172        figureStyle
47173      } = attributes;
47174      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47175      let figureClasses, figureStyles;
47176  
47177      // Is solid color style
47178      if (isSolidColorStyle) {
47179        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
47180        figureClasses = dist_clsx({
47181          'has-background': backgroundClass || customMainColor,
47182          [backgroundClass]: backgroundClass
47183        });
47184        figureStyles = {
47185          backgroundColor: backgroundClass ? undefined : customMainColor
47186        };
47187        // Is normal style and a custom color is being used ( we can set a style directly with its value)
47188      } else if (customMainColor) {
47189        figureStyles = {
47190          borderColor: customMainColor
47191        };
47192        // If normal style and a named color are being used, we need to retrieve the color value to set the style,
47193        // as there is no expectation that themes create classes that set border colors.
47194      } else if (mainColor) {
47195        // Previously here we queried the color settings to know the color value
47196        // of a named color. This made the save function impure and the block was refactored,
47197        // because meanwhile a change in the editor made it impossible to query color settings in the save function.
47198        // Here instead of querying the color settings to know the color value, we retrieve the value
47199        // directly from the style previously serialized.
47200        const borderColor = parseBorderColor(figureStyle);
47201        figureStyles = {
47202          borderColor
47203        };
47204      }
47205      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
47206      const blockquoteClasses = (textColor || customTextColor) && dist_clsx('has-text-color', {
47207        [blockquoteTextColorClass]: blockquoteTextColorClass
47208      });
47209      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
47210        color: customTextColor
47211      };
47212      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47213        className: figureClasses,
47214        style: figureStyles,
47215        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47216          className: blockquoteClasses,
47217          style: blockquoteStyles,
47218          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47219            value: value,
47220            multiline: true
47221          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47222            tagName: "cite",
47223            value: citation
47224          })]
47225        })
47226      });
47227    },
47228    migrate({
47229      value,
47230      className,
47231      figureStyle,
47232      mainColor,
47233      customMainColor,
47234      customTextColor,
47235      ...attributes
47236    }) {
47237      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47238      let style;
47239      if (customMainColor) {
47240        if (!isSolidColorStyle) {
47241          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
47242          style = {
47243            border: {
47244              color: customMainColor
47245            }
47246          };
47247        } else {
47248          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
47249          style = {
47250            color: {
47251              background: customMainColor
47252            }
47253          };
47254        }
47255      }
47256  
47257      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
47258      if (customTextColor && style) {
47259        style.color = {
47260          ...style.color,
47261          text: customTextColor
47262        };
47263      }
47264      // If is the default style, and a main color is set,
47265      // migrate the main color value into a custom border color.
47266      // The custom border color value is retrieved by parsing the figure styles.
47267      if (!isSolidColorStyle && mainColor && figureStyle) {
47268        const borderColor = parseBorderColor(figureStyle);
47269        if (borderColor) {
47270          return {
47271            value: multilineToInline(value),
47272            ...attributes,
47273            className,
47274            // Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style.
47275            style: {
47276              border: {
47277                color: borderColor
47278              }
47279            }
47280          };
47281        }
47282      }
47283      return {
47284        value: multilineToInline(value),
47285        className,
47286        backgroundColor: isSolidColorStyle ? mainColor : undefined,
47287        borderColor: isSolidColorStyle ? undefined : mainColor,
47288        textAlign: isSolidColorStyle ? 'left' : undefined,
47289        style,
47290        ...attributes
47291      };
47292    }
47293  };
47294  const pullquote_deprecated_v2 = {
47295    attributes: pullquote_deprecated_blockAttributes,
47296    save({
47297      attributes
47298    }) {
47299      const {
47300        mainColor,
47301        customMainColor,
47302        textColor,
47303        customTextColor,
47304        value,
47305        citation,
47306        className
47307      } = attributes;
47308      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47309      let figureClass, figureStyles;
47310      // Is solid color style
47311      if (isSolidColorStyle) {
47312        figureClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
47313        if (!figureClass) {
47314          figureStyles = {
47315            backgroundColor: customMainColor
47316          };
47317        }
47318        // Is normal style and a custom color is being used ( we can set a style directly with its value)
47319      } else if (customMainColor) {
47320        figureStyles = {
47321          borderColor: customMainColor
47322        };
47323        // Is normal style and a named color is being used, we need to retrieve the color value to set the style,
47324        // as there is no expectation that themes create classes that set border colors.
47325      } else if (mainColor) {
47326        var _select$getSettings$c;
47327        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 : [];
47328        const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colors, mainColor);
47329        figureStyles = {
47330          borderColor: colorObject.color
47331        };
47332      }
47333      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
47334      const blockquoteClasses = textColor || customTextColor ? dist_clsx('has-text-color', {
47335        [blockquoteTextColorClass]: blockquoteTextColorClass
47336      }) : undefined;
47337      const blockquoteStyle = blockquoteTextColorClass ? undefined : {
47338        color: customTextColor
47339      };
47340      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47341        className: figureClass,
47342        style: figureStyles,
47343        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47344          className: blockquoteClasses,
47345          style: blockquoteStyle,
47346          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47347            value: value,
47348            multiline: true
47349          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47350            tagName: "cite",
47351            value: citation
47352          })]
47353        })
47354      });
47355    },
47356    migrate({
47357      value,
47358      className,
47359      mainColor,
47360      customMainColor,
47361      customTextColor,
47362      ...attributes
47363    }) {
47364      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47365      let style = {};
47366      if (customMainColor) {
47367        if (!isSolidColorStyle) {
47368          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
47369          style = {
47370            border: {
47371              color: customMainColor
47372            }
47373          };
47374        } else {
47375          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
47376          style = {
47377            color: {
47378              background: customMainColor
47379            }
47380          };
47381        }
47382      }
47383  
47384      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
47385      if (customTextColor && style) {
47386        style.color = {
47387          ...style.color,
47388          text: customTextColor
47389        };
47390      }
47391      return {
47392        value: multilineToInline(value),
47393        className,
47394        backgroundColor: isSolidColorStyle ? mainColor : undefined,
47395        borderColor: isSolidColorStyle ? undefined : mainColor,
47396        textAlign: isSolidColorStyle ? 'left' : undefined,
47397        style,
47398        ...attributes
47399      };
47400    }
47401  };
47402  const pullquote_deprecated_v1 = {
47403    attributes: {
47404      ...pullquote_deprecated_blockAttributes
47405    },
47406    save({
47407      attributes
47408    }) {
47409      const {
47410        value,
47411        citation
47412      } = attributes;
47413      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47414        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47415          value: value,
47416          multiline: true
47417        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47418          tagName: "cite",
47419          value: citation
47420        })]
47421      });
47422    },
47423    migrate({
47424      value,
47425      ...attributes
47426    }) {
47427      return {
47428        value: multilineToInline(value),
47429        ...attributes
47430      };
47431    }
47432  };
47433  const deprecated_v0 = {
47434    attributes: {
47435      ...pullquote_deprecated_blockAttributes,
47436      citation: {
47437        type: 'string',
47438        source: 'html',
47439        selector: 'footer'
47440      },
47441      align: {
47442        type: 'string',
47443        default: 'none'
47444      }
47445    },
47446    save({
47447      attributes
47448    }) {
47449      const {
47450        value,
47451        citation,
47452        align
47453      } = attributes;
47454      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47455        className: `align$align}`,
47456        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47457          value: value,
47458          multiline: true
47459        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47460          tagName: "footer",
47461          value: citation
47462        })]
47463      });
47464    },
47465    migrate({
47466      value,
47467      ...attributes
47468    }) {
47469      return {
47470        value: multilineToInline(value),
47471        ...attributes
47472      };
47473    }
47474  };
47475  
47476  /**
47477   * New deprecations need to be placed first
47478   * for them to have higher priority.
47479   *
47480   * Old deprecations may need to be updated as well.
47481   *
47482   * See block-deprecation.md
47483   */
47484  /* harmony default export */ const pullquote_deprecated = ([pullquote_deprecated_v5, pullquote_deprecated_v4, pullquote_deprecated_v3, pullquote_deprecated_v2, pullquote_deprecated_v1, deprecated_v0]);
47485  
47486  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js
47487  const Figure = 'figure';
47488  
47489  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js
47490  const BlockQuote = 'blockquote';
47491  
47492  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js
47493  /**
47494   * External dependencies
47495   */
47496  
47497  
47498  /**
47499   * WordPress dependencies
47500   */
47501  
47502  
47503  
47504  
47505  
47506  /**
47507   * Internal dependencies
47508   */
47509  
47510  
47511  
47512  const isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
47513  function PullQuoteEdit({
47514    attributes,
47515    setAttributes,
47516    isSelected,
47517    insertBlocksAfter
47518  }) {
47519    const {
47520      textAlign,
47521      citation,
47522      value
47523    } = attributes;
47524    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
47525      className: dist_clsx({
47526        [`has-text-align-$textAlign}`]: textAlign
47527      })
47528    });
47529    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected;
47530    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
47531      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
47532        group: "block",
47533        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
47534          value: textAlign,
47535          onChange: nextAlign => {
47536            setAttributes({
47537              textAlign: nextAlign
47538            });
47539          }
47540        })
47541      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Figure, {
47542        ...blockProps,
47543        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(BlockQuote, {
47544          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
47545            identifier: "value",
47546            tagName: "p",
47547            value: value,
47548            onChange: nextValue => setAttributes({
47549              value: nextValue
47550            }),
47551            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote text'),
47552            placeholder:
47553            // translators: placeholder text used for the quote
47554            (0,external_wp_i18n_namespaceObject.__)('Add quote'),
47555            textAlign: "center"
47556          }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
47557            identifier: "citation",
47558            tagName: isWebPlatform ? 'cite' : undefined,
47559            style: {
47560              display: 'block'
47561            },
47562            value: citation,
47563            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote citation text'),
47564            placeholder:
47565            // translators: placeholder text used for the citation
47566            (0,external_wp_i18n_namespaceObject.__)('Add citation'),
47567            onChange: nextCitation => setAttributes({
47568              citation: nextCitation
47569            }),
47570            className: "wp-block-pullquote__citation",
47571            __unstableMobileNoFocusOnMount: true,
47572            textAlign: "center",
47573            __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
47574          })]
47575        })
47576      })]
47577    });
47578  }
47579  /* harmony default export */ const pullquote_edit = (PullQuoteEdit);
47580  
47581  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/save.js
47582  /**
47583   * External dependencies
47584   */
47585  
47586  
47587  /**
47588   * WordPress dependencies
47589   */
47590  
47591  
47592  function pullquote_save_save({
47593    attributes
47594  }) {
47595    const {
47596      textAlign,
47597      citation,
47598      value
47599    } = attributes;
47600    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
47601    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47602      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
47603        className: dist_clsx({
47604          [`has-text-align-$textAlign}`]: textAlign
47605        })
47606      }),
47607      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47608        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47609          tagName: "p",
47610          value: value
47611        }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47612          tagName: "cite",
47613          value: citation
47614        })]
47615      })
47616    });
47617  }
47618  
47619  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js
47620  /**
47621   * WordPress dependencies
47622   */
47623  
47624  
47625  const pullquote_transforms_transforms = {
47626    from: [{
47627      type: 'block',
47628      isMultiBlock: true,
47629      blocks: ['core/paragraph'],
47630      transform: attributes => {
47631        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
47632          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
47633            value: (0,external_wp_richText_namespaceObject.join)(attributes.map(({
47634              content
47635            }) => (0,external_wp_richText_namespaceObject.create)({
47636              html: content
47637            })), '\n')
47638          }),
47639          anchor: attributes.anchor
47640        });
47641      }
47642    }, {
47643      type: 'block',
47644      blocks: ['core/heading'],
47645      transform: ({
47646        content,
47647        anchor
47648      }) => {
47649        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
47650          value: content,
47651          anchor
47652        });
47653      }
47654    }],
47655    to: [{
47656      type: 'block',
47657      blocks: ['core/paragraph'],
47658      transform: ({
47659        value,
47660        citation
47661      }) => {
47662        const paragraphs = [];
47663        if (value) {
47664          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
47665            content: value
47666          }));
47667        }
47668        if (citation) {
47669          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
47670            content: citation
47671          }));
47672        }
47673        if (paragraphs.length === 0) {
47674          return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
47675            content: ''
47676          });
47677        }
47678        return paragraphs;
47679      }
47680    }, {
47681      type: 'block',
47682      blocks: ['core/heading'],
47683      transform: ({
47684        value,
47685        citation
47686      }) => {
47687        // If there is no pullquote content, use the citation as the
47688        // content of the resulting heading. A nonexistent citation
47689        // will result in an empty heading.
47690        if (!value) {
47691          return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
47692            content: citation
47693          });
47694        }
47695        const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
47696          content: value
47697        });
47698        if (!citation) {
47699          return headingBlock;
47700        }
47701        return [headingBlock, (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
47702          content: citation
47703        })];
47704      }
47705    }]
47706  };
47707  /* harmony default export */ const pullquote_transforms = (pullquote_transforms_transforms);
47708  
47709  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
47710  /**
47711   * WordPress dependencies
47712   */
47713  
47714  
47715  
47716  /**
47717   * Internal dependencies
47718   */
47719  
47720  
47721  
47722  const pullquote_metadata = {
47723    $schema: "https://schemas.wp.org/trunk/block.json",
47724    apiVersion: 3,
47725    name: "core/pullquote",
47726    title: "Pullquote",
47727    category: "text",
47728    description: "Give special visual emphasis to a quote from your text.",
47729    textdomain: "default",
47730    attributes: {
47731      value: {
47732        type: "rich-text",
47733        source: "rich-text",
47734        selector: "p",
47735        role: "content"
47736      },
47737      citation: {
47738        type: "rich-text",
47739        source: "rich-text",
47740        selector: "cite",
47741        role: "content"
47742      },
47743      textAlign: {
47744        type: "string"
47745      }
47746    },
47747    supports: {
47748      anchor: true,
47749      align: ["left", "right", "wide", "full"],
47750      background: {
47751        backgroundImage: true,
47752        backgroundSize: true,
47753        __experimentalDefaultControls: {
47754          backgroundImage: true
47755        }
47756      },
47757      color: {
47758        gradients: true,
47759        background: true,
47760        link: true,
47761        __experimentalDefaultControls: {
47762          background: true,
47763          text: true
47764        }
47765      },
47766      dimensions: {
47767        minHeight: true,
47768        __experimentalDefaultControls: {
47769          minHeight: false
47770        }
47771      },
47772      spacing: {
47773        margin: true,
47774        padding: true
47775      },
47776      typography: {
47777        fontSize: true,
47778        lineHeight: true,
47779        __experimentalFontFamily: true,
47780        __experimentalFontWeight: true,
47781        __experimentalFontStyle: true,
47782        __experimentalTextTransform: true,
47783        __experimentalTextDecoration: true,
47784        __experimentalLetterSpacing: true,
47785        __experimentalDefaultControls: {
47786          fontSize: true
47787        }
47788      },
47789      __experimentalBorder: {
47790        color: true,
47791        radius: true,
47792        style: true,
47793        width: true,
47794        __experimentalDefaultControls: {
47795          color: true,
47796          radius: true,
47797          style: true,
47798          width: true
47799        }
47800      },
47801      __experimentalStyle: {
47802        typography: {
47803          fontSize: "1.5em",
47804          lineHeight: "1.6"
47805        }
47806      },
47807      interactivity: {
47808        clientNavigation: true
47809      }
47810    },
47811    editorStyle: "wp-block-pullquote-editor",
47812    style: "wp-block-pullquote"
47813  };
47814  
47815  
47816  const {
47817    name: pullquote_name
47818  } = pullquote_metadata;
47819  
47820  const pullquote_settings = {
47821    icon: library_pullquote,
47822    example: {
47823      attributes: {
47824        value:
47825        // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.
47826        (0,external_wp_i18n_namespaceObject.__)('One of the hardest things to do in technology is disrupt yourself.'),
47827        citation: (0,external_wp_i18n_namespaceObject.__)('Matt Mullenweg')
47828      }
47829    },
47830    transforms: pullquote_transforms,
47831    edit: pullquote_edit,
47832    save: pullquote_save_save,
47833    deprecated: pullquote_deprecated
47834  };
47835  const pullquote_init = () => initBlock({
47836    name: pullquote_name,
47837    metadata: pullquote_metadata,
47838    settings: pullquote_settings
47839  });
47840  
47841  ;// ./node_modules/@wordpress/icons/build-module/library/loop.js
47842  /**
47843   * WordPress dependencies
47844   */
47845  
47846  
47847  const loop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
47848    viewBox: "0 0 24 24",
47849    xmlns: "http://www.w3.org/2000/svg",
47850    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
47851      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"
47852    })
47853  });
47854  /* harmony default export */ const library_loop = (loop);
47855  
47856  ;// ./node_modules/@wordpress/block-library/build-module/query/utils.js
47857  /**
47858   * WordPress dependencies
47859   */
47860  
47861  
47862  
47863  
47864  
47865  
47866  
47867  
47868  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
47869  /** @typedef {import('@wordpress/components/build-types/query-controls/types').OrderByOption} OrderByOption */
47870  
47871  /**
47872   * @typedef IHasNameAndId
47873   * @property {string|number} id   The entity's id.
47874   * @property {string}        name The entity's name.
47875   */
47876  
47877  /**
47878   * The object used in Query block that contains info and helper mappings
47879   * from an array of IHasNameAndId objects.
47880   *
47881   * @typedef {Object} QueryEntitiesInfo
47882   * @property {IHasNameAndId[]}               entities  The array of entities.
47883   * @property {Object<string, IHasNameAndId>} mapById   Object mapping with the id as key and the entity as value.
47884   * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.
47885   * @property {string[]}                      names     Array with the entities' names.
47886   */
47887  
47888  /**
47889   * Returns a helper object with mapping from Objects that implement
47890   * the `IHasNameAndId` interface. The returned object is used for
47891   * integration with `FormTokenField` component.
47892   *
47893   * @param {IHasNameAndId[]} entities The entities to extract of helper object.
47894   * @return {QueryEntitiesInfo} The object with the entities information.
47895   */
47896  const getEntitiesInfo = entities => {
47897    const mapping = entities?.reduce((accumulator, entity) => {
47898      const {
47899        mapById,
47900        mapByName,
47901        names
47902      } = accumulator;
47903      mapById[entity.id] = entity;
47904      mapByName[entity.name] = entity;
47905      names.push(entity.name);
47906      return accumulator;
47907    }, {
47908      mapById: {},
47909      mapByName: {},
47910      names: []
47911    });
47912    return {
47913      entities,
47914      ...mapping
47915    };
47916  };
47917  
47918  /**
47919   * Helper util to return a value from a certain path of the object.
47920   * Path is specified as a string of properties, separated by dots,
47921   * for example: "parent.child".
47922   *
47923   * @param {Object} object Input object.
47924   * @param {string} path   Path to the object property.
47925   * @return {*} Value of the object property at the specified path.
47926   */
47927  const getValueFromObjectPath = (object, path) => {
47928    const normalizedPath = path.split('.');
47929    let value = object;
47930    normalizedPath.forEach(fieldName => {
47931      value = value?.[fieldName];
47932    });
47933    return value;
47934  };
47935  
47936  /**
47937   * Helper util to map records to add a `name` prop from a
47938   * provided path, in order to handle all entities in the same
47939   * fashion(implementing`IHasNameAndId` interface).
47940   *
47941   * @param {Object[]} entities The array of entities.
47942   * @param {string}   path     The path to map a `name` property from the entity.
47943   * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.
47944   */
47945  const mapToIHasNameAndId = (entities, path) => {
47946    return (entities || []).map(entity => ({
47947      ...entity,
47948      name: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(getValueFromObjectPath(entity, path))
47949    }));
47950  };
47951  
47952  /**
47953   * Returns a helper object that contains:
47954   * 1. An `options` object from the available post types, to be passed to a `SelectControl`.
47955   * 2. A helper map with available taxonomies per post type.
47956   * 3. A helper map with post format support per post type.
47957   *
47958   * @return {Object} The helper object related to post types.
47959   */
47960  const usePostTypes = () => {
47961    const postTypes = (0,external_wp_data_namespaceObject.useSelect)(select => {
47962      const {
47963        getPostTypes
47964      } = select(external_wp_coreData_namespaceObject.store);
47965      const excludedPostTypes = ['attachment'];
47966      const filteredPostTypes = getPostTypes({
47967        per_page: -1
47968      })?.filter(({
47969        viewable,
47970        slug
47971      }) => viewable && !excludedPostTypes.includes(slug));
47972      return filteredPostTypes;
47973    }, []);
47974    const postTypesTaxonomiesMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
47975      if (!postTypes?.length) {
47976        return;
47977      }
47978      return postTypes.reduce((accumulator, type) => {
47979        accumulator[type.slug] = type.taxonomies;
47980        return accumulator;
47981      }, {});
47982    }, [postTypes]);
47983    const postTypesSelectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => (postTypes || []).map(({
47984      labels,
47985      slug
47986    }) => ({
47987      label: labels.singular_name,
47988      value: slug
47989    })), [postTypes]);
47990    const postTypeFormatSupportMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
47991      if (!postTypes?.length) {
47992        return {};
47993      }
47994      return postTypes.reduce((accumulator, type) => {
47995        accumulator[type.slug] = type.supports?.['post-formats'] || false;
47996        return accumulator;
47997      }, {});
47998    }, [postTypes]);
47999    return {
48000      postTypesTaxonomiesMap,
48001      postTypesSelectOptions,
48002      postTypeFormatSupportMap
48003    };
48004  };
48005  
48006  /**
48007   * Hook that returns the taxonomies associated with a specific post type.
48008   *
48009   * @param {string} postType The post type from which to retrieve the associated taxonomies.
48010   * @return {Object[]} An array of the associated taxonomies.
48011   */
48012  const useTaxonomies = postType => {
48013    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
48014      const {
48015        getTaxonomies,
48016        getPostType
48017      } = select(external_wp_coreData_namespaceObject.store);
48018      // Does the post type have taxonomies?
48019      if (getPostType(postType)?.taxonomies?.length > 0) {
48020        return getTaxonomies({
48021          type: postType,
48022          per_page: -1
48023        });
48024      }
48025      return [];
48026    }, [postType]);
48027    return (0,external_wp_element_namespaceObject.useMemo)(() => {
48028      return taxonomies?.filter(({
48029        visibility
48030      }) => !!visibility?.publicly_queryable);
48031    }, [taxonomies]);
48032  };
48033  
48034  /**
48035   * Hook that returns whether a specific post type is hierarchical.
48036   *
48037   * @param {string} postType The post type to check.
48038   * @return {boolean} Whether a specific post type is hierarchical.
48039   */
48040  function useIsPostTypeHierarchical(postType) {
48041    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48042      const type = select(external_wp_coreData_namespaceObject.store).getPostType(postType);
48043      return type?.viewable && type?.hierarchical;
48044    }, [postType]);
48045  }
48046  
48047  /**
48048   * List of avaiable options to order by.
48049   *
48050   * @param {string} postType The post type to check.
48051   * @return {OrderByOption[]} List of order options.
48052   */
48053  function useOrderByOptions(postType) {
48054    const supportsCustomOrder = (0,external_wp_data_namespaceObject.useSelect)(select => {
48055      const type = select(external_wp_coreData_namespaceObject.store).getPostType(postType);
48056      return !!type?.supports?.['page-attributes'];
48057    }, [postType]);
48058    return (0,external_wp_element_namespaceObject.useMemo)(() => {
48059      const orderByOptions = [{
48060        label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
48061        value: 'date/desc'
48062      }, {
48063        label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
48064        value: 'date/asc'
48065      }, {
48066        /* translators: Label for ordering posts by title in ascending order. */
48067        label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
48068        value: 'title/asc'
48069      }, {
48070        /* translators: Label for ordering posts by title in descending order. */
48071        label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
48072        value: 'title/desc'
48073      }];
48074      if (supportsCustomOrder) {
48075        orderByOptions.push({
48076          /* translators: Label for ordering posts by ascending menu order. */
48077          label: (0,external_wp_i18n_namespaceObject.__)('Ascending by order'),
48078          value: 'menu_order/asc'
48079        }, {
48080          /* translators: Label for ordering posts by descending menu order. */
48081          label: (0,external_wp_i18n_namespaceObject.__)('Descending by order'),
48082          value: 'menu_order/desc'
48083        });
48084      }
48085      return orderByOptions;
48086    }, [supportsCustomOrder]);
48087  }
48088  
48089  /**
48090   * Hook that returns the query properties' names defined by the active
48091   * block variation, to determine which block's filters to show.
48092   *
48093   * @param {Object} attributes Block attributes.
48094   * @return {string[]} An array of the query attributes.
48095   */
48096  function useAllowedControls(attributes) {
48097    return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getActiveBlockVariation('core/query', attributes)?.allowedControls, [attributes]);
48098  }
48099  function isControlAllowed(allowedControls, key) {
48100    // Every controls is allowed if the list is not defined.
48101    if (!allowedControls) {
48102      return true;
48103    }
48104    return allowedControls.includes(key);
48105  }
48106  
48107  /**
48108   * Clones a pattern's blocks and then recurses over that list of blocks,
48109   * transforming them to retain some `query` attribute properties.
48110   * For now we retain the `postType` and `inherit` properties as they are
48111   * fundamental for the expected functionality of the block and don't affect
48112   * its design and presentation.
48113   *
48114   * Returns the cloned/transformed blocks and array of existing Query Loop
48115   * client ids for further manipulation, in order to avoid multiple recursions.
48116   *
48117   * @param {WPBlock[]}        blocks               The list of blocks to look through and transform(mutate).
48118   * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.
48119   * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.
48120   */
48121  const getTransformedBlocksFromPattern = (blocks, queryBlockAttributes) => {
48122    const {
48123      query: {
48124        postType,
48125        inherit
48126      },
48127      namespace
48128    } = queryBlockAttributes;
48129    const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block));
48130    const queryClientIds = [];
48131    const blocksQueue = [...clonedBlocks];
48132    while (blocksQueue.length > 0) {
48133      const block = blocksQueue.shift();
48134      if (block.name === 'core/query') {
48135        block.attributes.query = {
48136          ...block.attributes.query,
48137          postType,
48138          inherit
48139        };
48140        if (namespace) {
48141          block.attributes.namespace = namespace;
48142        }
48143        queryClientIds.push(block.clientId);
48144      }
48145      block.innerBlocks?.forEach(innerBlock => {
48146        blocksQueue.push(innerBlock);
48147      });
48148    }
48149    return {
48150      newBlocks: clonedBlocks,
48151      queryClientIds
48152    };
48153  };
48154  
48155  /**
48156   * Helper hook that determines if there is an active variation of the block
48157   * and if there are available specific patterns for this variation.
48158   * If there are, these patterns are going to be the only ones suggested to
48159   * the user in setup and replace flow, without including the default ones
48160   * for Query Loop.
48161   *
48162   * If there are no such patterns, the default ones for Query Loop are going
48163   * to be suggested.
48164   *
48165   * @param {string} clientId   The block's client ID.
48166   * @param {Object} attributes The block's attributes.
48167   * @return {string} The block name to be used in the patterns suggestions.
48168   */
48169  function useBlockNameForPatterns(clientId, attributes) {
48170    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48171      const activeVariationName = select(external_wp_blocks_namespaceObject.store).getActiveBlockVariation('core/query', attributes)?.name;
48172      if (!activeVariationName) {
48173        return 'core/query';
48174      }
48175      const {
48176        getBlockRootClientId,
48177        getPatternsByBlockTypes
48178      } = select(external_wp_blockEditor_namespaceObject.store);
48179      const rootClientId = getBlockRootClientId(clientId);
48180      const activePatterns = getPatternsByBlockTypes(`core/query/$activeVariationName}`, rootClientId);
48181      return activePatterns.length > 0 ? `core/query/$activeVariationName}` : 'core/query';
48182    }, [clientId, attributes]);
48183  }
48184  
48185  /**
48186   * Helper hook that determines if there is an active variation of the block
48187   * and if there are available specific scoped `block` variations connected with
48188   * this variation.
48189   *
48190   * If there are, these variations are going to be the only ones suggested
48191   * to the user in setup flow when clicking to `start blank`, without including
48192   * the default ones for Query Loop.
48193   *
48194   * If there are no such scoped `block` variations, the default ones for Query
48195   * Loop are going to be suggested.
48196   *
48197   * The way we determine such variations is with the convention that they have the `namespace`
48198   * attribute defined as an array. This array should contain the names(`name` property) of any
48199   * variations they want to be connected to.
48200   * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,
48201   * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.
48202   * If the user selects this variation, the `namespace` attribute will be overridden by the
48203   * main `inserter` variation.
48204   *
48205   * @param {Object} attributes The block's attributes.
48206   * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.
48207   */
48208  function useScopedBlockVariations(attributes) {
48209    const {
48210      activeVariationName,
48211      blockVariations
48212    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48213      const {
48214        getActiveBlockVariation,
48215        getBlockVariations
48216      } = select(external_wp_blocks_namespaceObject.store);
48217      return {
48218        activeVariationName: getActiveBlockVariation('core/query', attributes)?.name,
48219        blockVariations: getBlockVariations('core/query', 'block')
48220      };
48221    }, [attributes]);
48222    const variations = (0,external_wp_element_namespaceObject.useMemo)(() => {
48223      // Filter out the variations that have defined a `namespace` attribute,
48224      // which means they are 'connected' to specific variations of the block.
48225      const isNotConnected = variation => !variation.attributes?.namespace;
48226      if (!activeVariationName) {
48227        return blockVariations.filter(isNotConnected);
48228      }
48229      const connectedVariations = blockVariations.filter(variation => variation.attributes?.namespace?.includes(activeVariationName));
48230      if (!!connectedVariations.length) {
48231        return connectedVariations;
48232      }
48233      return blockVariations.filter(isNotConnected);
48234    }, [activeVariationName, blockVariations]);
48235    return variations;
48236  }
48237  
48238  /**
48239   * Hook that returns the block patterns for a specific block type.
48240   *
48241   * @param {string} clientId The block's client ID.
48242   * @param {string} name     The block type name.
48243   * @return {Object[]} An array of valid block patterns.
48244   */
48245  const usePatterns = (clientId, name) => {
48246    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48247      const {
48248        getBlockRootClientId,
48249        getPatternsByBlockTypes
48250      } = select(external_wp_blockEditor_namespaceObject.store);
48251      const rootClientId = getBlockRootClientId(clientId);
48252      return getPatternsByBlockTypes(name, rootClientId);
48253    }, [name, clientId]);
48254  };
48255  
48256  /**
48257   * The object returned by useUnsupportedBlocks with info about the type of
48258   * unsupported blocks present inside the Query block.
48259   *
48260   * @typedef  {Object}  UnsupportedBlocksInfo
48261   * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.
48262   * @property {boolean} hasPostContentBlock  True if a 'core/post-content' block is present.
48263   * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.
48264   */
48265  
48266  /**
48267   * Hook that returns an object with information about the unsupported blocks
48268   * present inside a Query Loop with the given `clientId`. The returned object
48269   * contains props that are true when a certain type of unsupported block is
48270   * present.
48271   *
48272   * @param {string} clientId The block's client ID.
48273   * @return {UnsupportedBlocksInfo} The object containing the information.
48274   */
48275  const useUnsupportedBlocks = clientId => {
48276    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48277      const {
48278        getClientIdsOfDescendants,
48279        getBlockName
48280      } = select(external_wp_blockEditor_namespaceObject.store);
48281      const blocks = {};
48282      getClientIdsOfDescendants(clientId).forEach(descendantClientId => {
48283        const blockName = getBlockName(descendantClientId);
48284        /*
48285         * Client side navigation can be true in two states:
48286         *  - supports.interactivity = true;
48287         *  - supports.interactivity.clientNavigation = true;
48288         */
48289        const blockSupportsInteractivity = Object.is((0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'interactivity'), true);
48290        const blockSupportsInteractivityClientNavigation = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'interactivity.clientNavigation');
48291        const blockInteractivity = blockSupportsInteractivity || blockSupportsInteractivityClientNavigation;
48292        if (!blockInteractivity) {
48293          blocks.hasBlocksFromPlugins = true;
48294        } else if (blockName === 'core/post-content') {
48295          blocks.hasPostContentBlock = true;
48296        }
48297      });
48298      blocks.hasUnsupportedBlocks = blocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;
48299      return blocks;
48300    }, [clientId]);
48301  };
48302  
48303  /**
48304   * Helper function that returns the query context from the editor based on the
48305   * available template slug.
48306   *
48307   * @param {string} templateSlug Current template slug based on context.
48308   * @return {Object} An object with isSingular and templateType properties.
48309   */
48310  function getQueryContextFromTemplate(templateSlug) {
48311    // In the Post Editor, the template slug is not available.
48312    if (!templateSlug) {
48313      return {
48314        isSingular: true
48315      };
48316    }
48317    let isSingular = false;
48318    let templateType = templateSlug === 'wp' ? 'custom' : templateSlug;
48319    const singularTemplates = ['404', 'blank', 'single', 'page', 'custom'];
48320    const templateTypeFromSlug = templateSlug.includes('-') ? templateSlug.split('-', 1)[0] : templateSlug;
48321    const queryFromTemplateSlug = templateSlug.includes('-') ? templateSlug.split('-').slice(1).join('-') : '';
48322    if (queryFromTemplateSlug) {
48323      templateType = templateTypeFromSlug;
48324    }
48325    isSingular = singularTemplates.includes(templateType);
48326    return {
48327      isSingular,
48328      templateType
48329    };
48330  }
48331  
48332  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/enhanced-pagination-control.js
48333  /**
48334   * WordPress dependencies
48335   */
48336  
48337  
48338  
48339  /**
48340   * Internal dependencies
48341   */
48342  
48343  
48344  function EnhancedPaginationControl({
48345    enhancedPagination,
48346    setAttributes,
48347    clientId
48348  }) {
48349    const {
48350      hasUnsupportedBlocks
48351    } = useUnsupportedBlocks(clientId);
48352    const fullPageClientSideNavigation = window.__experimentalFullPageClientSideNavigation;
48353    let help = (0,external_wp_i18n_namespaceObject.__)('Reload the full page—instead of just the posts list—when visitors navigate between pages.');
48354    if (fullPageClientSideNavigation) {
48355      help = (0,external_wp_i18n_namespaceObject.__)('Experimental full-page client-side navigation setting enabled.');
48356    } else if (hasUnsupportedBlocks) {
48357      help = (0,external_wp_i18n_namespaceObject.__)('Enhancement disabled because there are non-compatible blocks inside the Query block.');
48358    }
48359    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
48360      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
48361        __nextHasNoMarginBottom: true,
48362        label: (0,external_wp_i18n_namespaceObject.__)('Reload full page'),
48363        help: help,
48364        checked: !enhancedPagination && !fullPageClientSideNavigation,
48365        disabled: hasUnsupportedBlocks || fullPageClientSideNavigation,
48366        onChange: value => {
48367          setAttributes({
48368            enhancedPagination: !value
48369          });
48370        }
48371      })
48372    });
48373  }
48374  
48375  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/order-control.js
48376  /**
48377   * WordPress dependencies
48378   */
48379  
48380  
48381  
48382  const defaultOrderByOptions = [{
48383    label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
48384    value: 'date/desc'
48385  }, {
48386    label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
48387    value: 'date/asc'
48388  }, {
48389    /* translators: Label for ordering posts by title in ascending order. */
48390    label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
48391    value: 'title/asc'
48392  }, {
48393    /* translators: Label for ordering posts by title in descending order. */
48394    label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
48395    value: 'title/desc'
48396  }];
48397  function OrderControl({
48398    order,
48399    orderBy,
48400    orderByOptions = defaultOrderByOptions,
48401    onChange
48402  }) {
48403    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
48404      __nextHasNoMarginBottom: true,
48405      __next40pxDefaultSize: true,
48406      label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
48407      value: `$orderBy}/$order}`,
48408      options: orderByOptions,
48409      onChange: value => {
48410        const [newOrderBy, newOrder] = value.split('/');
48411        onChange({
48412          order: newOrder,
48413          orderBy: newOrderBy
48414        });
48415      }
48416    });
48417  }
48418  /* harmony default export */ const order_control = (OrderControl);
48419  
48420  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/author-control.js
48421  /**
48422   * WordPress dependencies
48423   */
48424  
48425  
48426  
48427  
48428  
48429  /**
48430   * Internal dependencies
48431   */
48432  
48433  
48434  const author_control_AUTHORS_QUERY = {
48435    who: 'authors',
48436    per_page: -1,
48437    _fields: 'id,name',
48438    context: 'view'
48439  };
48440  function AuthorControl({
48441    value,
48442    onChange
48443  }) {
48444    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
48445      const {
48446        getUsers
48447      } = select(external_wp_coreData_namespaceObject.store);
48448      return getUsers(author_control_AUTHORS_QUERY);
48449    }, []);
48450    if (!authorsList) {
48451      return null;
48452    }
48453    const authorsInfo = getEntitiesInfo(authorsList);
48454    /**
48455     * We need to normalize the value because the block operates on a
48456     * comma(`,`) separated string value and `FormTokenField` needs an
48457     * array.
48458     */
48459    const normalizedValue = !value ? [] : value.toString().split(',');
48460    // Returns only the existing authors ids. This prevents the component
48461    // from crashing in the editor, when non existing ids are provided.
48462    const sanitizedValue = normalizedValue.reduce((accumulator, authorId) => {
48463      const author = authorsInfo.mapById[authorId];
48464      if (author) {
48465        accumulator.push({
48466          id: authorId,
48467          value: author.name
48468        });
48469      }
48470      return accumulator;
48471    }, []);
48472    const getIdByValue = (entitiesMappedByName, authorValue) => {
48473      const id = authorValue?.id || entitiesMappedByName[authorValue]?.id;
48474      if (id) {
48475        return id;
48476      }
48477    };
48478    const onAuthorChange = newValue => {
48479      const ids = Array.from(newValue.reduce((accumulator, author) => {
48480        // Verify that new values point to existing entities.
48481        const id = getIdByValue(authorsInfo.mapByName, author);
48482        if (id) {
48483          accumulator.add(id);
48484        }
48485        return accumulator;
48486      }, new Set()));
48487      onChange({
48488        author: ids.join(',')
48489      });
48490    };
48491    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48492      label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
48493      value: sanitizedValue,
48494      suggestions: authorsInfo.names,
48495      onChange: onAuthorChange,
48496      __experimentalShowHowTo: false,
48497      __nextHasNoMarginBottom: true,
48498      __next40pxDefaultSize: true
48499    });
48500  }
48501  /* harmony default export */ const author_control = (AuthorControl);
48502  
48503  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/parent-control.js
48504  /**
48505   * WordPress dependencies
48506   */
48507  
48508  
48509  
48510  
48511  
48512  
48513  
48514  /**
48515   * Internal dependencies
48516   */
48517  
48518  
48519  const parent_control_EMPTY_ARRAY = [];
48520  const BASE_QUERY = {
48521    order: 'asc',
48522    _fields: 'id,title',
48523    context: 'view'
48524  };
48525  function ParentControl({
48526    parents,
48527    postType,
48528    onChange
48529  }) {
48530    const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
48531    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(parent_control_EMPTY_ARRAY);
48532    const [suggestions, setSuggestions] = (0,external_wp_element_namespaceObject.useState)(parent_control_EMPTY_ARRAY);
48533    const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 250);
48534    const {
48535      searchResults,
48536      searchHasResolved
48537    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48538      if (!search) {
48539        return {
48540          searchResults: parent_control_EMPTY_ARRAY,
48541          searchHasResolved: true
48542        };
48543      }
48544      const {
48545        getEntityRecords,
48546        hasFinishedResolution
48547      } = select(external_wp_coreData_namespaceObject.store);
48548      const selectorArgs = ['postType', postType, {
48549        ...BASE_QUERY,
48550        search,
48551        orderby: 'relevance',
48552        exclude: parents,
48553        per_page: 20
48554      }];
48555      return {
48556        searchResults: getEntityRecords(...selectorArgs),
48557        searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
48558      };
48559    }, [search, parents]);
48560    const currentParents = (0,external_wp_data_namespaceObject.useSelect)(select => {
48561      if (!parents?.length) {
48562        return parent_control_EMPTY_ARRAY;
48563      }
48564      const {
48565        getEntityRecords
48566      } = select(external_wp_coreData_namespaceObject.store);
48567      return getEntityRecords('postType', postType, {
48568        ...BASE_QUERY,
48569        include: parents,
48570        per_page: parents.length
48571      });
48572    }, [parents]);
48573    // Update the `value` state only after the selectors are resolved
48574    // to avoid emptying the input when we're changing parents.
48575    (0,external_wp_element_namespaceObject.useEffect)(() => {
48576      if (!parents?.length) {
48577        setValue(parent_control_EMPTY_ARRAY);
48578      }
48579      if (!currentParents?.length) {
48580        return;
48581      }
48582      const currentParentsInfo = getEntitiesInfo(mapToIHasNameAndId(currentParents, 'title.rendered'));
48583      // Returns only the existing entity ids. This prevents the component
48584      // from crashing in the editor, when non existing ids are provided.
48585      const sanitizedValue = parents.reduce((accumulator, id) => {
48586        const entity = currentParentsInfo.mapById[id];
48587        if (entity) {
48588          accumulator.push({
48589            id,
48590            value: entity.name
48591          });
48592        }
48593        return accumulator;
48594      }, []);
48595      setValue(sanitizedValue);
48596    }, [parents, currentParents]);
48597    const entitiesInfo = (0,external_wp_element_namespaceObject.useMemo)(() => {
48598      if (!searchResults?.length) {
48599        return parent_control_EMPTY_ARRAY;
48600      }
48601      return getEntitiesInfo(mapToIHasNameAndId(searchResults, 'title.rendered'));
48602    }, [searchResults]);
48603    // Update suggestions only when the query has resolved.
48604    (0,external_wp_element_namespaceObject.useEffect)(() => {
48605      if (!searchHasResolved) {
48606        return;
48607      }
48608      setSuggestions(entitiesInfo.names);
48609    }, [entitiesInfo.names, searchHasResolved]);
48610    const getIdByValue = (entitiesMappedByName, entity) => {
48611      const id = entity?.id || entitiesMappedByName?.[entity]?.id;
48612      if (id) {
48613        return id;
48614      }
48615    };
48616    const onParentChange = newValue => {
48617      const ids = Array.from(newValue.reduce((accumulator, entity) => {
48618        // Verify that new values point to existing entities.
48619        const id = getIdByValue(entitiesInfo.mapByName, entity);
48620        if (id) {
48621          accumulator.add(id);
48622        }
48623        return accumulator;
48624      }, new Set()));
48625      setSuggestions(parent_control_EMPTY_ARRAY);
48626      onChange({
48627        parents: ids
48628      });
48629    };
48630    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48631      __next40pxDefaultSize: true,
48632      label: (0,external_wp_i18n_namespaceObject.__)('Parents'),
48633      value: value,
48634      onInputChange: debouncedSearch,
48635      suggestions: suggestions,
48636      onChange: onParentChange,
48637      __experimentalShowHowTo: false,
48638      __nextHasNoMarginBottom: true
48639    });
48640  }
48641  /* harmony default export */ const parent_control = (ParentControl);
48642  
48643  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/taxonomy-controls.js
48644  /**
48645   * WordPress dependencies
48646   */
48647  
48648  
48649  
48650  
48651  
48652  
48653  
48654  /**
48655   * Internal dependencies
48656   */
48657  
48658  
48659  const taxonomy_controls_EMPTY_ARRAY = [];
48660  const taxonomy_controls_BASE_QUERY = {
48661    order: 'asc',
48662    _fields: 'id,name',
48663    context: 'view'
48664  };
48665  
48666  // Helper function to get the term id based on user input in terms `FormTokenField`.
48667  const getTermIdByTermValue = (terms, termValue) => {
48668    // First we check for exact match by `term.id` or case sensitive `term.name` match.
48669    const termId = termValue?.id || terms?.find(term => term.name === termValue)?.id;
48670    if (termId) {
48671      return termId;
48672    }
48673  
48674    /**
48675     * Here we make an extra check for entered terms in a non case sensitive way,
48676     * to match user expectations, due to `FormTokenField` behaviour that shows
48677     * suggestions which are case insensitive.
48678     *
48679     * Although WP tries to discourage users to add terms with the same name (case insensitive),
48680     * it's still possible if you manually change the name, as long as the terms have different slugs.
48681     * In this edge case we always apply the first match from the terms list.
48682     */
48683    const termValueLower = termValue.toLocaleLowerCase();
48684    return terms?.find(term => term.name.toLocaleLowerCase() === termValueLower)?.id;
48685  };
48686  function TaxonomyControls({
48687    onChange,
48688    query
48689  }) {
48690    const {
48691      postType,
48692      taxQuery
48693    } = query;
48694    const taxonomies = useTaxonomies(postType);
48695    if (!taxonomies || taxonomies.length === 0) {
48696      return null;
48697    }
48698    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
48699      spacing: 4,
48700      children: taxonomies.map(taxonomy => {
48701        const termIds = taxQuery?.[taxonomy.slug] || [];
48702        const handleChange = newTermIds => onChange({
48703          taxQuery: {
48704            ...taxQuery,
48705            [taxonomy.slug]: newTermIds
48706          }
48707        });
48708        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyItem, {
48709          taxonomy: taxonomy,
48710          termIds: termIds,
48711          onChange: handleChange
48712        }, taxonomy.slug);
48713      })
48714    });
48715  }
48716  
48717  /**
48718   * Renders a `FormTokenField` for a given taxonomy.
48719   *
48720   * @param {Object}   props          The props for the component.
48721   * @param {Object}   props.taxonomy The taxonomy object.
48722   * @param {number[]} props.termIds  An array with the block's term ids for the given taxonomy.
48723   * @param {Function} props.onChange Callback `onChange` function.
48724   * @return {JSX.Element} The rendered component.
48725   */
48726  function TaxonomyItem({
48727    taxonomy,
48728    termIds,
48729    onChange
48730  }) {
48731    const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
48732    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(taxonomy_controls_EMPTY_ARRAY);
48733    const [suggestions, setSuggestions] = (0,external_wp_element_namespaceObject.useState)(taxonomy_controls_EMPTY_ARRAY);
48734    const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 250);
48735    const {
48736      searchResults,
48737      searchHasResolved
48738    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48739      if (!search) {
48740        return {
48741          searchResults: taxonomy_controls_EMPTY_ARRAY,
48742          searchHasResolved: true
48743        };
48744      }
48745      const {
48746        getEntityRecords,
48747        hasFinishedResolution
48748      } = select(external_wp_coreData_namespaceObject.store);
48749      const selectorArgs = ['taxonomy', taxonomy.slug, {
48750        ...taxonomy_controls_BASE_QUERY,
48751        search,
48752        orderby: 'name',
48753        exclude: termIds,
48754        per_page: 20
48755      }];
48756      return {
48757        searchResults: getEntityRecords(...selectorArgs),
48758        searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
48759      };
48760    }, [search, termIds]);
48761    // `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.
48762    // They are used to extract the terms' names to populate the `FormTokenField` properly
48763    // and to sanitize the provided `termIds`, by setting only the ones that exist.
48764    const existingTerms = (0,external_wp_data_namespaceObject.useSelect)(select => {
48765      if (!termIds?.length) {
48766        return taxonomy_controls_EMPTY_ARRAY;
48767      }
48768      const {
48769        getEntityRecords
48770      } = select(external_wp_coreData_namespaceObject.store);
48771      return getEntityRecords('taxonomy', taxonomy.slug, {
48772        ...taxonomy_controls_BASE_QUERY,
48773        include: termIds,
48774        per_page: termIds.length
48775      });
48776    }, [termIds]);
48777    // Update the `value` state only after the selectors are resolved
48778    // to avoid emptying the input when we're changing terms.
48779    (0,external_wp_element_namespaceObject.useEffect)(() => {
48780      if (!termIds?.length) {
48781        setValue(taxonomy_controls_EMPTY_ARRAY);
48782      }
48783      if (!existingTerms?.length) {
48784        return;
48785      }
48786      // Returns only the existing entity ids. This prevents the component
48787      // from crashing in the editor, when non existing ids are provided.
48788      const sanitizedValue = termIds.reduce((accumulator, id) => {
48789        const entity = existingTerms.find(term => term.id === id);
48790        if (entity) {
48791          accumulator.push({
48792            id,
48793            value: entity.name
48794          });
48795        }
48796        return accumulator;
48797      }, []);
48798      setValue(sanitizedValue);
48799    }, [termIds, existingTerms]);
48800    // Update suggestions only when the query has resolved.
48801    (0,external_wp_element_namespaceObject.useEffect)(() => {
48802      if (!searchHasResolved) {
48803        return;
48804      }
48805      setSuggestions(searchResults.map(result => result.name));
48806    }, [searchResults, searchHasResolved]);
48807    const onTermsChange = newTermValues => {
48808      const newTermIds = new Set();
48809      for (const termValue of newTermValues) {
48810        const termId = getTermIdByTermValue(searchResults, termValue);
48811        if (termId) {
48812          newTermIds.add(termId);
48813        }
48814      }
48815      setSuggestions(taxonomy_controls_EMPTY_ARRAY);
48816      onChange(Array.from(newTermIds));
48817    };
48818    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
48819      className: "block-library-query-inspector__taxonomy-control",
48820      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48821        label: taxonomy.name,
48822        value: value,
48823        onInputChange: debouncedSearch,
48824        suggestions: suggestions,
48825        displayTransform: external_wp_htmlEntities_namespaceObject.decodeEntities,
48826        onChange: onTermsChange,
48827        __experimentalShowHowTo: false,
48828        __nextHasNoMarginBottom: true,
48829        __next40pxDefaultSize: true
48830      })
48831    });
48832  }
48833  
48834  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/format-controls.js
48835  /**
48836   * WordPress dependencies
48837   */
48838  
48839  
48840  
48841  
48842  
48843  // All WP post formats, sorted alphabetically by translated name.
48844  // Value is the post format slug. Label is the name.
48845  
48846  const POST_FORMATS = [{
48847    value: 'aside',
48848    label: (0,external_wp_i18n_namespaceObject.__)('Aside')
48849  }, {
48850    value: 'audio',
48851    label: (0,external_wp_i18n_namespaceObject.__)('Audio')
48852  }, {
48853    value: 'chat',
48854    label: (0,external_wp_i18n_namespaceObject.__)('Chat')
48855  }, {
48856    value: 'gallery',
48857    label: (0,external_wp_i18n_namespaceObject.__)('Gallery')
48858  }, {
48859    value: 'image',
48860    label: (0,external_wp_i18n_namespaceObject.__)('Image')
48861  }, {
48862    value: 'link',
48863    label: (0,external_wp_i18n_namespaceObject.__)('Link')
48864  }, {
48865    value: 'quote',
48866    label: (0,external_wp_i18n_namespaceObject.__)('Quote')
48867  }, {
48868    value: 'standard',
48869    label: (0,external_wp_i18n_namespaceObject.__)('Standard')
48870  }, {
48871    value: 'status',
48872    label: (0,external_wp_i18n_namespaceObject.__)('Status')
48873  }, {
48874    value: 'video',
48875    label: (0,external_wp_i18n_namespaceObject.__)('Video')
48876  }].sort((a, b) => {
48877    const normalizedA = a.label.toUpperCase();
48878    const normalizedB = b.label.toUpperCase();
48879    if (normalizedA < normalizedB) {
48880      return -1;
48881    }
48882    if (normalizedA > normalizedB) {
48883      return 1;
48884    }
48885    return 0;
48886  });
48887  
48888  // A helper function to convert translatable post format names into their static values.
48889  function formatNamesToValues(names, formats) {
48890    return names.map(name => {
48891      return formats.find(item => item.label.toLocaleLowerCase() === name.toLocaleLowerCase())?.value;
48892    }).filter(Boolean);
48893  }
48894  function FormatControls({
48895    onChange,
48896    query: {
48897      format
48898    }
48899  }) {
48900    // 'format' is expected to be an array. If it is not an array, for example
48901    // if a user has manually entered an invalid value in the block markup,
48902    // convert it to an array to prevent JavaScript errors.
48903    const normalizedFormats = Array.isArray(format) ? format : [format];
48904    const {
48905      supportedFormats
48906    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48907      const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
48908      return {
48909        supportedFormats: themeSupports.formats
48910      };
48911    }, []);
48912    const formats = POST_FORMATS.filter(item => supportedFormats.includes(item.value));
48913    const values = normalizedFormats.map(name => formats.find(item => item.value === name)?.label).filter(Boolean);
48914    const suggestions = formats.filter(item => !normalizedFormats.includes(item.value)).map(item => item.label);
48915    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48916      label: (0,external_wp_i18n_namespaceObject.__)('Formats'),
48917      value: values,
48918      suggestions: suggestions,
48919      onChange: newValues => {
48920        onChange({
48921          format: formatNamesToValues(newValues, formats)
48922        });
48923      },
48924      __experimentalShowHowTo: false,
48925      __experimentalExpandOnFocus: true,
48926      __nextHasNoMarginBottom: true,
48927      __next40pxDefaultSize: true
48928    });
48929  }
48930  
48931  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/sticky-control.js
48932  /**
48933   * WordPress dependencies
48934   */
48935  
48936  
48937  
48938  const stickyOptions = [{
48939    label: (0,external_wp_i18n_namespaceObject.__)('Include'),
48940    value: ''
48941  }, {
48942    label: (0,external_wp_i18n_namespaceObject.__)('Ignore'),
48943    value: 'ignore'
48944  }, {
48945    label: (0,external_wp_i18n_namespaceObject.__)('Exclude'),
48946    value: 'exclude'
48947  }, {
48948    label: (0,external_wp_i18n_namespaceObject.__)('Only'),
48949    value: 'only'
48950  }];
48951  function StickyControl({
48952    value,
48953    onChange
48954  }) {
48955    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
48956      __nextHasNoMarginBottom: true,
48957      __next40pxDefaultSize: true,
48958      label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
48959      options: stickyOptions,
48960      value: value,
48961      onChange: onChange,
48962      help: (0,external_wp_i18n_namespaceObject.__)('Sticky posts always appear first, regardless of their publish date.')
48963    });
48964  }
48965  
48966  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/per-page-control.js
48967  /**
48968   * WordPress dependencies
48969   */
48970  
48971  
48972  
48973  const MIN_POSTS_PER_PAGE = 1;
48974  const MAX_POSTS_PER_PAGE = 100;
48975  const PerPageControl = ({
48976    perPage,
48977    offset = 0,
48978    onChange
48979  }) => {
48980    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
48981      __next40pxDefaultSize: true,
48982      __nextHasNoMarginBottom: true,
48983      label: (0,external_wp_i18n_namespaceObject.__)('Items per page'),
48984      min: MIN_POSTS_PER_PAGE,
48985      max: MAX_POSTS_PER_PAGE,
48986      onChange: newPerPage => {
48987        if (isNaN(newPerPage) || newPerPage < MIN_POSTS_PER_PAGE || newPerPage > MAX_POSTS_PER_PAGE) {
48988          return;
48989        }
48990        onChange({
48991          perPage: newPerPage,
48992          offset
48993        });
48994      },
48995      value: parseInt(perPage, 10)
48996    });
48997  };
48998  /* harmony default export */ const per_page_control = (PerPageControl);
48999  
49000  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/offset-controls.js
49001  /**
49002   * WordPress dependencies
49003   */
49004  
49005  
49006  
49007  const MIN_OFFSET = 0;
49008  const MAX_OFFSET = 100;
49009  const OffsetControl = ({
49010    offset = 0,
49011    onChange
49012  }) => {
49013    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
49014      __next40pxDefaultSize: true,
49015      label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
49016      value: offset,
49017      min: MIN_OFFSET,
49018      onChange: newOffset => {
49019        if (isNaN(newOffset) || newOffset < MIN_OFFSET || newOffset > MAX_OFFSET) {
49020          return;
49021        }
49022        onChange({
49023          offset: newOffset
49024        });
49025      }
49026    });
49027  };
49028  /* harmony default export */ const offset_controls = (OffsetControl);
49029  
49030  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/pages-control.js
49031  /**
49032   * WordPress dependencies
49033   */
49034  
49035  
49036  
49037  const PagesControl = ({
49038    pages,
49039    onChange
49040  }) => {
49041    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
49042      __next40pxDefaultSize: true,
49043      label: (0,external_wp_i18n_namespaceObject.__)('Max pages to show'),
49044      value: pages,
49045      min: 0,
49046      onChange: newPages => {
49047        if (isNaN(newPages) || newPages < 0) {
49048          return;
49049        }
49050        onChange({
49051          pages: newPages
49052        });
49053      },
49054      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).')
49055    });
49056  };
49057  /* harmony default export */ const pages_control = (PagesControl);
49058  
49059  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/index.js
49060  /**
49061   * WordPress dependencies
49062   */
49063  
49064  
49065  
49066  
49067  
49068  
49069  
49070  /**
49071   * Internal dependencies
49072   */
49073  
49074  
49075  
49076  
49077  
49078  
49079  
49080  
49081  
49082  
49083  
49084  
49085  function QueryInspectorControls(props) {
49086    const {
49087      attributes,
49088      setQuery,
49089      setDisplayLayout,
49090      isSingular
49091    } = props;
49092    const {
49093      query,
49094      displayLayout
49095    } = attributes;
49096    const {
49097      order,
49098      orderBy,
49099      author: authorIds,
49100      pages,
49101      postType,
49102      perPage,
49103      offset,
49104      sticky,
49105      inherit,
49106      taxQuery,
49107      parents,
49108      format
49109    } = query;
49110    const allowedControls = useAllowedControls(attributes);
49111    const showSticky = postType === 'post';
49112    const {
49113      postTypesTaxonomiesMap,
49114      postTypesSelectOptions,
49115      postTypeFormatSupportMap
49116    } = usePostTypes();
49117    const taxonomies = useTaxonomies(postType);
49118    const isPostTypeHierarchical = useIsPostTypeHierarchical(postType);
49119    const onPostTypeChange = newValue => {
49120      const updateQuery = {
49121        postType: newValue
49122      };
49123      // We need to dynamically update the `taxQuery` property,
49124      // by removing any not supported taxonomy from the query.
49125      const supportedTaxonomies = postTypesTaxonomiesMap[newValue];
49126      const updatedTaxQuery = Object.entries(taxQuery || {}).reduce((accumulator, [taxonomySlug, terms]) => {
49127        if (supportedTaxonomies.includes(taxonomySlug)) {
49128          accumulator[taxonomySlug] = terms;
49129        }
49130        return accumulator;
49131      }, {});
49132      updateQuery.taxQuery = !!Object.keys(updatedTaxQuery).length ? updatedTaxQuery : undefined;
49133      if (newValue !== 'post') {
49134        updateQuery.sticky = '';
49135      }
49136      // We need to reset `parents` because they are tied to each post type.
49137      updateQuery.parents = [];
49138      // Post types can register post format support with `add_post_type_support`.
49139      // But we need to reset the `format` property when switching to post types
49140      // that do not support post formats.
49141      const hasFormatSupport = postTypeFormatSupportMap[newValue];
49142      if (!hasFormatSupport) {
49143        updateQuery.format = [];
49144      }
49145      setQuery(updateQuery);
49146    };
49147    const [querySearch, setQuerySearch] = (0,external_wp_element_namespaceObject.useState)(query.search);
49148    const onChangeDebounced = (0,external_wp_element_namespaceObject.useCallback)((0,external_wp_compose_namespaceObject.debounce)(() => {
49149      if (query.search !== querySearch) {
49150        setQuery({
49151          search: querySearch
49152        });
49153      }
49154    }, 250), [querySearch, query.search]);
49155    (0,external_wp_element_namespaceObject.useEffect)(() => {
49156      onChangeDebounced();
49157      return onChangeDebounced.cancel;
49158    }, [querySearch, onChangeDebounced]);
49159    const orderByOptions = useOrderByOptions(postType);
49160    const showInheritControl = !isSingular && isControlAllowed(allowedControls, 'inherit');
49161    const showPostTypeControl = !inherit && isControlAllowed(allowedControls, 'postType');
49162    const postTypeControlLabel = (0,external_wp_i18n_namespaceObject.__)('Post type');
49163    const postTypeControlHelp = (0,external_wp_i18n_namespaceObject.__)('Select the type of content to display: posts, pages, or custom post types.');
49164    const showColumnsControl = false;
49165    const showOrderControl = !inherit && isControlAllowed(allowedControls, 'order');
49166    const showStickyControl = !inherit && showSticky && isControlAllowed(allowedControls, 'sticky');
49167    const showSettingsPanel = showInheritControl || showPostTypeControl || showColumnsControl || showOrderControl || showStickyControl;
49168    const showTaxControl = !!taxonomies?.length && isControlAllowed(allowedControls, 'taxQuery');
49169    const showAuthorControl = isControlAllowed(allowedControls, 'author');
49170    const showSearchControl = isControlAllowed(allowedControls, 'search');
49171    const showParentControl = isControlAllowed(allowedControls, 'parents') && isPostTypeHierarchical;
49172    const postTypeHasFormatSupport = postTypeFormatSupportMap[postType];
49173    const showFormatControl = (0,external_wp_data_namespaceObject.useSelect)(select => {
49174      // Check if the post type supports post formats and if the control is allowed.
49175      if (!postTypeHasFormatSupport || !isControlAllowed(allowedControls, 'format')) {
49176        return false;
49177      }
49178      const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
49179  
49180      // If there are no supported formats, getThemeSupports still includes the default 'standard' format,
49181      // and in this case the control should not be shown since the user has no other formats to choose from.
49182      return themeSupports.formats && themeSupports.formats.length > 0 && themeSupports.formats.some(type => type !== 'standard');
49183    }, [allowedControls, postTypeHasFormatSupport]);
49184    const showFiltersPanel = showTaxControl || showAuthorControl || showSearchControl || showParentControl || showFormatControl;
49185    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
49186    const showPostCountControl = isControlAllowed(allowedControls, 'postCount');
49187    const showOffSetControl = isControlAllowed(allowedControls, 'offset');
49188    const showPagesControl = isControlAllowed(allowedControls, 'pages');
49189    const showDisplayPanel = showPostCountControl || showOffSetControl || showPagesControl;
49190    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49191      children: [showSettingsPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
49192        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
49193        resetAll: () => {
49194          setQuery({
49195            postType: 'post',
49196            order: 'desc',
49197            orderBy: 'date',
49198            sticky: '',
49199            inherit: true
49200          });
49201        },
49202        dropdownMenuProps: dropdownMenuProps,
49203        children: [showInheritControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49204          hasValue: () => !inherit,
49205          label: (0,external_wp_i18n_namespaceObject.__)('Query type'),
49206          onDeselect: () => setQuery({
49207            inherit: true
49208          }),
49209          isShownByDefault: true,
49210          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
49211            __next40pxDefaultSize: true,
49212            __nextHasNoMarginBottom: true,
49213            label: (0,external_wp_i18n_namespaceObject.__)('Query type'),
49214            isBlock: true,
49215            onChange: value => {
49216              setQuery({
49217                inherit: value === 'default'
49218              });
49219            },
49220            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.'),
49221            value: !!inherit ? 'default' : 'custom',
49222            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49223              value: "default",
49224              label: (0,external_wp_i18n_namespaceObject.__)('Default')
49225            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49226              value: "custom",
49227              label: (0,external_wp_i18n_namespaceObject.__)('Custom')
49228            })]
49229          })
49230        }), showPostTypeControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49231          hasValue: () => postType !== 'post',
49232          label: postTypeControlLabel,
49233          onDeselect: () => onPostTypeChange('post'),
49234          isShownByDefault: true,
49235          children: postTypesSelectOptions.length > 2 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
49236            __nextHasNoMarginBottom: true,
49237            __next40pxDefaultSize: true,
49238            options: postTypesSelectOptions,
49239            value: postType,
49240            label: postTypeControlLabel,
49241            onChange: onPostTypeChange,
49242            help: postTypeControlHelp
49243          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
49244            __nextHasNoMarginBottom: true,
49245            __next40pxDefaultSize: true,
49246            isBlock: true,
49247            value: postType,
49248            label: postTypeControlLabel,
49249            onChange: onPostTypeChange,
49250            help: postTypeControlHelp,
49251            children: postTypesSelectOptions.map(option => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49252              value: option.value,
49253              label: option.label
49254            }, option.value))
49255          })
49256        }), showColumnsControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49257          hasValue: () => displayLayout?.columns !== 2,
49258          label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
49259          onDeselect: () => setDisplayLayout({
49260            columns: 2
49261          }),
49262          isShownByDefault: true,
49263          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49264            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
49265              __nextHasNoMarginBottom: true,
49266              __next40pxDefaultSize: true,
49267              label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
49268              value: displayLayout.columns,
49269              onChange: value => setDisplayLayout({
49270                columns: value
49271              }),
49272              min: 2,
49273              max: Math.max(6, displayLayout.columns)
49274            }), displayLayout.columns > 6 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
49275              status: "warning",
49276              isDismissible: false,
49277              children: (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')
49278            })]
49279          })
49280        }), showOrderControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49281          hasValue: () => order !== 'desc' || orderBy !== 'date',
49282          label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
49283          onDeselect: () => setQuery({
49284            order: 'desc',
49285            orderBy: 'date'
49286          }),
49287          isShownByDefault: true,
49288          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(order_control, {
49289            order,
49290            orderBy,
49291            orderByOptions,
49292            onChange: setQuery
49293          })
49294        }), showStickyControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49295          hasValue: () => !!sticky,
49296          label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
49297          onDeselect: () => setQuery({
49298            sticky: ''
49299          }),
49300          isShownByDefault: true,
49301          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StickyControl, {
49302            value: sticky,
49303            onChange: value => setQuery({
49304              sticky: value
49305            })
49306          })
49307        })]
49308      }), !inherit && showDisplayPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
49309        className: "block-library-query-toolspanel__display",
49310        label: (0,external_wp_i18n_namespaceObject.__)('Display'),
49311        resetAll: () => {
49312          setQuery({
49313            offset: 0,
49314            pages: 0
49315          });
49316        },
49317        dropdownMenuProps: dropdownMenuProps,
49318        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49319          label: (0,external_wp_i18n_namespaceObject.__)('Items per page'),
49320          hasValue: () => perPage > 0,
49321          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(per_page_control, {
49322            perPage: perPage,
49323            offset: offset,
49324            onChange: setQuery
49325          })
49326        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49327          label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
49328          hasValue: () => offset > 0,
49329          onDeselect: () => setQuery({
49330            offset: 0
49331          }),
49332          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(offset_controls, {
49333            offset: offset,
49334            onChange: setQuery
49335          })
49336        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49337          label: (0,external_wp_i18n_namespaceObject.__)('Max pages to show'),
49338          hasValue: () => pages > 0,
49339          onDeselect: () => setQuery({
49340            pages: 0
49341          }),
49342          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(pages_control, {
49343            pages: pages,
49344            onChange: setQuery
49345          })
49346        })]
49347      }), !inherit && showFiltersPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
49348        className: "block-library-query-toolspanel__filters" // unused but kept for backward compatibility
49349        ,
49350        label: (0,external_wp_i18n_namespaceObject.__)('Filters'),
49351        resetAll: () => {
49352          setQuery({
49353            author: '',
49354            parents: [],
49355            search: '',
49356            taxQuery: null,
49357            format: []
49358          });
49359          setQuerySearch('');
49360        },
49361        dropdownMenuProps: dropdownMenuProps,
49362        children: [showTaxControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49363          label: (0,external_wp_i18n_namespaceObject.__)('Taxonomies'),
49364          hasValue: () => Object.values(taxQuery || {}).some(terms => !!terms.length),
49365          onDeselect: () => setQuery({
49366            taxQuery: null
49367          }),
49368          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyControls, {
49369            onChange: setQuery,
49370            query: query
49371          })
49372        }), showAuthorControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49373          hasValue: () => !!authorIds,
49374          label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
49375          onDeselect: () => setQuery({
49376            author: ''
49377          }),
49378          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(author_control, {
49379            value: authorIds,
49380            onChange: setQuery
49381          })
49382        }), showSearchControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49383          hasValue: () => !!querySearch,
49384          label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
49385          onDeselect: () => setQuerySearch(''),
49386          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
49387            __nextHasNoMarginBottom: true,
49388            __next40pxDefaultSize: true,
49389            label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
49390            value: querySearch,
49391            onChange: setQuerySearch
49392          })
49393        }), showParentControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49394          hasValue: () => !!parents?.length,
49395          label: (0,external_wp_i18n_namespaceObject.__)('Parents'),
49396          onDeselect: () => setQuery({
49397            parents: []
49398          }),
49399          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(parent_control, {
49400            parents: parents,
49401            postType: postType,
49402            onChange: setQuery
49403          })
49404        }), showFormatControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49405          hasValue: () => !!format?.length,
49406          label: (0,external_wp_i18n_namespaceObject.__)('Formats'),
49407          onDeselect: () => setQuery({
49408            format: []
49409          }),
49410          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FormatControls, {
49411            onChange: setQuery,
49412            query: query
49413          })
49414        })]
49415      })]
49416    });
49417  }
49418  
49419  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/enhanced-pagination-modal.js
49420  /**
49421   * WordPress dependencies
49422   */
49423  
49424  
49425  
49426  
49427  /**
49428   * Internal dependencies
49429   */
49430  
49431  
49432  const modalDescriptionId = 'wp-block-query-enhanced-pagination-modal__description';
49433  function EnhancedPaginationModal({
49434    clientId,
49435    attributes: {
49436      enhancedPagination
49437    },
49438    setAttributes
49439  }) {
49440    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
49441    const {
49442      hasBlocksFromPlugins,
49443      hasPostContentBlock,
49444      hasUnsupportedBlocks
49445    } = useUnsupportedBlocks(clientId);
49446    (0,external_wp_element_namespaceObject.useEffect)(() => {
49447      if (enhancedPagination && hasUnsupportedBlocks && !window.__experimentalFullPageClientSideNavigation) {
49448        setAttributes({
49449          enhancedPagination: false
49450        });
49451        setOpen(true);
49452      }
49453    }, [enhancedPagination, hasUnsupportedBlocks, setAttributes]);
49454    const closeModal = () => {
49455      setOpen(false);
49456    };
49457    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.');
49458    if (hasBlocksFromPlugins) {
49459      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;
49460    } else if (hasPostContentBlock) {
49461      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;
49462    }
49463    return isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
49464      title: (0,external_wp_i18n_namespaceObject.__)('Query block: Reload full page enabled'),
49465      className: "wp-block-query__enhanced-pagination-modal",
49466      aria: {
49467        describedby: modalDescriptionId
49468      },
49469      role: "alertdialog",
49470      focusOnMount: "firstElement",
49471      isDismissible: false,
49472      onRequestClose: closeModal,
49473      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
49474        alignment: "right",
49475        spacing: 5,
49476        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
49477          id: modalDescriptionId,
49478          children: notice
49479        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
49480          __next40pxDefaultSize: true,
49481          variant: "primary",
49482          onClick: closeModal,
49483          children: (0,external_wp_i18n_namespaceObject.__)('OK')
49484        })]
49485      })
49486    });
49487  }
49488  
49489  ;// ./node_modules/@wordpress/block-library/build-module/utils/search-patterns.js
49490  /**
49491   * External dependencies
49492   */
49493  
49494  
49495  /**
49496   * Sanitizes the search input string.
49497   *
49498   * @param {string} input The search input to normalize.
49499   *
49500   * @return {string} The normalized search input.
49501   */
49502  function normalizeSearchInput(input = '') {
49503    // Disregard diacritics.
49504    input = remove_accents_default()(input);
49505  
49506    // Trim & Lowercase.
49507    input = input.trim().toLowerCase();
49508    return input;
49509  }
49510  
49511  /**
49512   * Get the search rank for a given pattern and a specific search term.
49513   *
49514   * @param {Object} pattern     Pattern to rank
49515   * @param {string} searchValue Search term
49516   * @return {number} A pattern search rank
49517   */
49518  function getPatternSearchRank(pattern, searchValue) {
49519    const normalizedSearchValue = normalizeSearchInput(searchValue);
49520    const normalizedTitle = normalizeSearchInput(pattern.title);
49521    let rank = 0;
49522    if (normalizedSearchValue === normalizedTitle) {
49523      rank += 30;
49524    } else if (normalizedTitle.startsWith(normalizedSearchValue)) {
49525      rank += 20;
49526    } else {
49527      const searchTerms = normalizedSearchValue.split(' ');
49528      const hasMatchedTerms = searchTerms.every(searchTerm => normalizedTitle.includes(searchTerm));
49529  
49530      // Prefer pattern with every search word in the title.
49531      if (hasMatchedTerms) {
49532        rank += 10;
49533      }
49534    }
49535    return rank;
49536  }
49537  
49538  /**
49539   * Filters an pattern list given a search term.
49540   *
49541   * @param {Array}  patterns    Item list
49542   * @param {string} searchValue Search input.
49543   *
49544   * @return {Array} Filtered pattern list.
49545   */
49546  function searchPatterns(patterns = [], searchValue = '') {
49547    if (!searchValue) {
49548      return patterns;
49549    }
49550    const rankedPatterns = patterns.map(pattern => {
49551      return [pattern, getPatternSearchRank(pattern, searchValue)];
49552    }).filter(([, rank]) => rank > 0);
49553    rankedPatterns.sort(([, rank1], [, rank2]) => rank2 - rank1);
49554    return rankedPatterns.map(([pattern]) => pattern);
49555  }
49556  
49557  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/pattern-selection.js
49558  /**
49559   * WordPress dependencies
49560   */
49561  
49562  
49563  
49564  
49565  
49566  
49567  /**
49568   * Internal dependencies
49569   */
49570  
49571  
49572  
49573  function PatternSelectionModal({
49574    clientId,
49575    attributes,
49576    setIsPatternSelectionModalOpen
49577  }) {
49578    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
49579      overlayClassName: "block-library-query-pattern__selection-modal",
49580      title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
49581      onRequestClose: () => setIsPatternSelectionModalOpen(false),
49582      isFullScreen: true,
49583      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelection, {
49584        clientId: clientId,
49585        attributes: attributes
49586      })
49587    });
49588  }
49589  function useBlockPatterns(clientId, attributes) {
49590    const blockNameForPatterns = useBlockNameForPatterns(clientId, attributes);
49591    return usePatterns(clientId, blockNameForPatterns);
49592  }
49593  function PatternSelection({
49594    clientId,
49595    attributes,
49596    showTitlesAsTooltip = false,
49597    showSearch = true
49598  }) {
49599    const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)('');
49600    const {
49601      replaceBlock,
49602      selectBlock
49603    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
49604    const blockPatterns = useBlockPatterns(clientId, attributes);
49605    /*
49606     * When we preview Query Loop blocks we should prefer the current
49607     * block's postType, which is passed through block context.
49608     */
49609    const blockPreviewContext = (0,external_wp_element_namespaceObject.useMemo)(() => ({
49610      previewPostType: attributes.query.postType
49611    }), [attributes.query.postType]);
49612    const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
49613      return searchPatterns(blockPatterns, searchValue);
49614    }, [blockPatterns, searchValue]);
49615    const onBlockPatternSelect = (pattern, blocks) => {
49616      const {
49617        newBlocks,
49618        queryClientIds
49619      } = getTransformedBlocksFromPattern(blocks, attributes);
49620      replaceBlock(clientId, newBlocks);
49621      if (queryClientIds[0]) {
49622        selectBlock(queryClientIds[0]);
49623      }
49624    };
49625    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
49626      className: "block-library-query-pattern__selection-content",
49627      children: [showSearch && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49628        className: "block-library-query-pattern__selection-search",
49629        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
49630          __nextHasNoMarginBottom: true,
49631          onChange: setSearchValue,
49632          value: searchValue,
49633          label: (0,external_wp_i18n_namespaceObject.__)('Search'),
49634          placeholder: (0,external_wp_i18n_namespaceObject.__)('Search')
49635        })
49636      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
49637        value: blockPreviewContext,
49638        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
49639          blockPatterns: filteredBlockPatterns,
49640          onClickPattern: onBlockPatternSelect,
49641          showTitlesAsTooltip: showTitlesAsTooltip
49642        })
49643      })]
49644    });
49645  }
49646  
49647  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/query-toolbar.js
49648  /**
49649   * WordPress dependencies
49650   */
49651  
49652  
49653  
49654  /**
49655   * Internal dependencies
49656   */
49657  
49658  
49659  function QueryToolbar({
49660    clientId,
49661    attributes
49662  }) {
49663    const hasPatterns = useBlockPatterns(clientId, attributes).length;
49664    if (!hasPatterns) {
49665      return null;
49666    }
49667    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
49668      className: "wp-block-template-part__block-control-group",
49669      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, {
49670        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
49671          contentClassName: "block-editor-block-settings-menu__popover",
49672          focusOnMount: "firstElement",
49673          expandOnMobile: true,
49674          renderToggle: ({
49675            isOpen,
49676            onToggle
49677          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
49678            "aria-haspopup": "true",
49679            "aria-expanded": isOpen,
49680            onClick: onToggle,
49681            children: (0,external_wp_i18n_namespaceObject.__)('Change design')
49682          }),
49683          renderContent: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelection, {
49684            clientId: clientId,
49685            attributes: attributes,
49686            showSearch: false,
49687            showTitlesAsTooltip: true
49688          })
49689        })
49690      })
49691    });
49692  }
49693  
49694  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/query-content.js
49695  /**
49696   * WordPress dependencies
49697   */
49698  
49699  
49700  
49701  
49702  
49703  
49704  
49705  
49706  /**
49707   * Internal dependencies
49708   */
49709  
49710  
49711  
49712  
49713  
49714  
49715  
49716  const DEFAULTS_POSTS_PER_PAGE = 3;
49717  const query_content_TEMPLATE = [['core/post-template']];
49718  function QueryContent({
49719    attributes,
49720    setAttributes,
49721    clientId,
49722    context,
49723    name
49724  }) {
49725    const {
49726      queryId,
49727      query,
49728      displayLayout,
49729      enhancedPagination,
49730      tagName: TagName = 'div',
49731      query: {
49732        inherit
49733      } = {}
49734    } = attributes;
49735    const {
49736      templateSlug
49737    } = context;
49738    const {
49739      isSingular
49740    } = getQueryContextFromTemplate(templateSlug);
49741    const {
49742      __unstableMarkNextChangeAsNotPersistent
49743    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
49744    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryContent);
49745    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49746    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
49747      template: query_content_TEMPLATE
49748    });
49749    const {
49750      postsPerPage
49751    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
49752      const {
49753        getSettings
49754      } = select(external_wp_blockEditor_namespaceObject.store);
49755      const {
49756        getEntityRecord,
49757        getEntityRecordEdits,
49758        canUser
49759      } = select(external_wp_coreData_namespaceObject.store);
49760      const settingPerPage = canUser('read', {
49761        kind: 'root',
49762        name: 'site'
49763      }) ? +getEntityRecord('root', 'site')?.posts_per_page : +getSettings().postsPerPage;
49764  
49765      // Gets changes made via the template area posts per page setting. These won't be saved
49766      // until the page is saved, but we should reflect this setting within the query loops
49767      // that inherit it.
49768      const editedSettingPerPage = +getEntityRecordEdits('root', 'site')?.posts_per_page;
49769      return {
49770        postsPerPage: editedSettingPerPage || settingPerPage || DEFAULTS_POSTS_PER_PAGE
49771      };
49772    }, []);
49773    // There are some effects running where some initialization logic is
49774    // happening and setting some values to some attributes (ex. queryId).
49775    // These updates can cause an `undo trap` where undoing will result in
49776    // resetting again, so we need to mark these changes as not persistent
49777    // with `__unstableMarkNextChangeAsNotPersistent`.
49778  
49779    // Changes in query property (which is an object) need to be in the same callback,
49780    // because updates are batched after the render and changes in different query properties
49781    // would cause to override previous wanted changes.
49782    const updateQuery = (0,external_wp_element_namespaceObject.useCallback)(newQuery => setAttributes({
49783      query: {
49784        ...query,
49785        ...newQuery
49786      }
49787    }), [query, setAttributes]);
49788    (0,external_wp_element_namespaceObject.useEffect)(() => {
49789      const newQuery = {};
49790      // When we inherit from global query always need to set the `perPage`
49791      // based on the reading settings.
49792      if (inherit && query.perPage !== postsPerPage) {
49793        newQuery.perPage = postsPerPage;
49794      } else if (!query.perPage && postsPerPage) {
49795        newQuery.perPage = postsPerPage;
49796      }
49797      // We need to reset the `inherit` value if in a singular template, as queries
49798      // are not inherited when in singular content (e.g. post, page, 404, blank).
49799      if (isSingular && query.inherit) {
49800        newQuery.inherit = false;
49801      }
49802      if (!!Object.keys(newQuery).length) {
49803        __unstableMarkNextChangeAsNotPersistent();
49804        updateQuery(newQuery);
49805      }
49806    }, [query.perPage, query.inherit, postsPerPage, inherit, isSingular, __unstableMarkNextChangeAsNotPersistent, updateQuery]);
49807    // We need this for multi-query block pagination.
49808    // Query parameters for each block are scoped to their ID.
49809    (0,external_wp_element_namespaceObject.useEffect)(() => {
49810      if (!Number.isFinite(queryId)) {
49811        __unstableMarkNextChangeAsNotPersistent();
49812        setAttributes({
49813          queryId: instanceId
49814        });
49815      }
49816    }, [queryId, instanceId, __unstableMarkNextChangeAsNotPersistent, setAttributes]);
49817    const updateDisplayLayout = newDisplayLayout => setAttributes({
49818      displayLayout: {
49819        ...displayLayout,
49820        ...newDisplayLayout
49821      }
49822    });
49823    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49824      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnhancedPaginationModal, {
49825        attributes: attributes,
49826        setAttributes: setAttributes,
49827        clientId: clientId
49828      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
49829        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryInspectorControls, {
49830          name: name,
49831          attributes: attributes,
49832          setQuery: updateQuery,
49833          setDisplayLayout: updateDisplayLayout,
49834          setAttributes: setAttributes,
49835          clientId: clientId,
49836          isSingular: isSingular
49837        })
49838      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
49839        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryToolbar, {
49840          attributes: attributes,
49841          clientId: clientId
49842        })
49843      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
49844        group: "advanced",
49845        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
49846          __nextHasNoMarginBottom: true,
49847          __next40pxDefaultSize: true,
49848          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
49849          options: [{
49850            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
49851            value: 'div'
49852          }, {
49853            label: '<main>',
49854            value: 'main'
49855          }, {
49856            label: '<section>',
49857            value: 'section'
49858          }, {
49859            label: '<aside>',
49860            value: 'aside'
49861          }],
49862          value: TagName,
49863          onChange: value => setAttributes({
49864            tagName: value
49865          }),
49866          help: htmlElementMessages[TagName]
49867        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnhancedPaginationControl, {
49868          enhancedPagination: enhancedPagination,
49869          setAttributes: setAttributes,
49870          clientId: clientId
49871        })]
49872      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
49873        ...innerBlocksProps
49874      })]
49875    });
49876  }
49877  
49878  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/query-placeholder.js
49879  /**
49880   * WordPress dependencies
49881   */
49882  
49883  
49884  
49885  
49886  
49887  
49888  
49889  /**
49890   * Internal dependencies
49891   */
49892  
49893  
49894  
49895  function QueryPlaceholder({
49896    attributes,
49897    clientId,
49898    name,
49899    openPatternSelectionModal
49900  }) {
49901    const [isStartingBlank, setIsStartingBlank] = (0,external_wp_element_namespaceObject.useState)(false);
49902    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49903    const {
49904      blockType,
49905      activeBlockVariation
49906    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
49907      const {
49908        getActiveBlockVariation,
49909        getBlockType
49910      } = select(external_wp_blocks_namespaceObject.store);
49911      return {
49912        blockType: getBlockType(name),
49913        activeBlockVariation: getActiveBlockVariation(name, attributes)
49914      };
49915    }, [name, attributes]);
49916    const hasPatterns = !!useBlockPatterns(clientId, attributes).length;
49917    const icon = activeBlockVariation?.icon?.src || activeBlockVariation?.icon || blockType?.icon?.src;
49918    const label = activeBlockVariation?.title || blockType?.title;
49919    if (isStartingBlank) {
49920      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryVariationPicker, {
49921        clientId: clientId,
49922        attributes: attributes,
49923        icon: icon,
49924        label: label
49925      });
49926    }
49927    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49928      ...blockProps,
49929      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
49930        icon: icon,
49931        label: label,
49932        instructions: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern for the query loop or start blank.'),
49933        children: [!!hasPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
49934          __next40pxDefaultSize: true,
49935          variant: "primary",
49936          onClick: openPatternSelectionModal,
49937          children: (0,external_wp_i18n_namespaceObject.__)('Choose')
49938        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
49939          __next40pxDefaultSize: true,
49940          variant: "secondary",
49941          onClick: () => {
49942            setIsStartingBlank(true);
49943          },
49944          children: (0,external_wp_i18n_namespaceObject.__)('Start blank')
49945        })]
49946      })
49947    });
49948  }
49949  function QueryVariationPicker({
49950    clientId,
49951    attributes,
49952    icon,
49953    label
49954  }) {
49955    const scopeVariations = useScopedBlockVariations(attributes);
49956    const {
49957      replaceInnerBlocks
49958    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
49959    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49960    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49961      ...blockProps,
49962      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
49963        icon: icon,
49964        label: label,
49965        variations: scopeVariations,
49966        onSelect: variation => {
49967          if (variation.innerBlocks) {
49968            replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(variation.innerBlocks), false);
49969          }
49970        }
49971      })
49972    });
49973  }
49974  
49975  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/index.js
49976  /**
49977   * WordPress dependencies
49978   */
49979  
49980  
49981  
49982  
49983  /**
49984   * Internal dependencies
49985   */
49986  
49987  
49988  
49989  
49990  const QueryEdit = props => {
49991    const {
49992      clientId,
49993      attributes
49994    } = props;
49995    const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
49996    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length, [clientId]);
49997    const Component = hasInnerBlocks ? QueryContent : QueryPlaceholder;
49998    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49999      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
50000        ...props,
50001        openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
50002      }), isPatternSelectionModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelectionModal, {
50003        clientId: clientId,
50004        attributes: attributes,
50005        setIsPatternSelectionModalOpen: setIsPatternSelectionModalOpen
50006      })]
50007    });
50008  };
50009  /* harmony default export */ const query_edit = (QueryEdit);
50010  
50011  ;// ./node_modules/@wordpress/block-library/build-module/query/save.js
50012  /**
50013   * WordPress dependencies
50014   */
50015  
50016  
50017  function query_save_save({
50018    attributes: {
50019      tagName: Tag = 'div'
50020    }
50021  }) {
50022    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50023    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50024    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50025      ...innerBlocksProps
50026    });
50027  }
50028  
50029  ;// ./node_modules/@wordpress/block-library/build-module/query/icons.js
50030  /**
50031   * WordPress dependencies
50032   */
50033  
50034  
50035  const titleDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50036    xmlns: "http://www.w3.org/2000/svg",
50037    viewBox: "0 0 48 48",
50038    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50039      d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z"
50040    })
50041  });
50042  const titleExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50043    xmlns: "http://www.w3.org/2000/svg",
50044    viewBox: "0 0 48 48",
50045    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50046      d: "M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z"
50047    })
50048  });
50049  const titleDateExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50050    xmlns: "http://www.w3.org/2000/svg",
50051    viewBox: "0 0 48 48",
50052    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50053      d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z"
50054    })
50055  });
50056  const imageDateTitle = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50057    xmlns: "http://www.w3.org/2000/svg",
50058    viewBox: "0 0 48 48",
50059    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50060      d: "M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z"
50061    })
50062  });
50063  
50064  ;// ./node_modules/@wordpress/block-library/build-module/query/variations.js
50065  /**
50066   * WordPress dependencies
50067   */
50068  
50069  
50070  /**
50071   * Internal dependencies
50072   */
50073  
50074  const query_variations_variations = [{
50075    name: 'title-date',
50076    title: (0,external_wp_i18n_namespaceObject.__)('Title & Date'),
50077    icon: titleDate,
50078    attributes: {},
50079    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date']]], ['core/query-pagination'], ['core/query-no-results']],
50080    scope: ['block']
50081  }, {
50082    name: 'title-excerpt',
50083    title: (0,external_wp_i18n_namespaceObject.__)('Title & Excerpt'),
50084    icon: titleExcerpt,
50085    attributes: {},
50086    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
50087    scope: ['block']
50088  }, {
50089    name: 'title-date-excerpt',
50090    title: (0,external_wp_i18n_namespaceObject.__)('Title, Date, & Excerpt'),
50091    icon: titleDateExcerpt,
50092    attributes: {},
50093    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
50094    scope: ['block']
50095  }, {
50096    name: 'image-date-title',
50097    title: (0,external_wp_i18n_namespaceObject.__)('Image, Date, & Title'),
50098    icon: imageDateTitle,
50099    attributes: {},
50100    innerBlocks: [['core/post-template', {}, [['core/post-featured-image'], ['core/post-date'], ['core/post-title']]], ['core/query-pagination'], ['core/query-no-results']],
50101    scope: ['block']
50102  }];
50103  /* harmony default export */ const query_variations = (query_variations_variations);
50104  
50105  ;// ./node_modules/@wordpress/block-library/build-module/query/deprecated.js
50106  /**
50107   * WordPress dependencies
50108   */
50109  
50110  
50111  
50112  /**
50113   * Internal dependencies
50114   */
50115  
50116  
50117  const {
50118    cleanEmptyObject: deprecated_cleanEmptyObject
50119  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
50120  const migrateToTaxQuery = attributes => {
50121    const {
50122      query
50123    } = attributes;
50124    const {
50125      categoryIds,
50126      tagIds,
50127      ...newQuery
50128    } = query;
50129    if (query.categoryIds?.length || query.tagIds?.length) {
50130      newQuery.taxQuery = {
50131        category: !!query.categoryIds?.length ? query.categoryIds : undefined,
50132        post_tag: !!query.tagIds?.length ? query.tagIds : undefined
50133      };
50134    }
50135    return {
50136      ...attributes,
50137      query: newQuery
50138    };
50139  };
50140  const migrateColors = (attributes, innerBlocks) => {
50141    // Remove color style attributes from the Query block.
50142    const {
50143      style,
50144      backgroundColor,
50145      gradient,
50146      textColor,
50147      ...newAttributes
50148    } = attributes;
50149    const hasColorStyles = backgroundColor || gradient || textColor || style?.color || style?.elements?.link;
50150  
50151    // If the query block doesn't currently have any color styles,
50152    // nothing needs migrating.
50153    if (!hasColorStyles) {
50154      return [attributes, innerBlocks];
50155    }
50156  
50157    // Clean color values from style attribute object.
50158    if (style) {
50159      newAttributes.style = deprecated_cleanEmptyObject({
50160        ...style,
50161        color: undefined,
50162        elements: {
50163          ...style.elements,
50164          link: undefined
50165        }
50166      });
50167    }
50168  
50169    // If the inner blocks are already wrapped in a single group
50170    // block, add the color support styles to that group block.
50171    if (hasSingleInnerGroupBlock(innerBlocks)) {
50172      const groupBlock = innerBlocks[0];
50173  
50174      // Create new styles for the group block.
50175      const hasStyles = style?.color || style?.elements?.link || groupBlock.attributes.style;
50176      const newStyles = hasStyles ? deprecated_cleanEmptyObject({
50177        ...groupBlock.attributes.style,
50178        color: style?.color,
50179        elements: style?.elements?.link ? {
50180          link: style?.elements?.link
50181        } : undefined
50182      }) : undefined;
50183  
50184      // Create a new Group block from the original.
50185      const updatedGroupBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
50186        ...groupBlock.attributes,
50187        backgroundColor,
50188        gradient,
50189        textColor,
50190        style: newStyles
50191      }, groupBlock.innerBlocks);
50192      return [newAttributes, [updatedGroupBlock]];
50193    }
50194  
50195    // When we don't have a single wrapping group block for the inner
50196    // blocks, wrap the current inner blocks in a group applying the
50197    // color styles to that.
50198    const newGroupBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
50199      backgroundColor,
50200      gradient,
50201      textColor,
50202      style: deprecated_cleanEmptyObject({
50203        color: style?.color,
50204        elements: style?.elements?.link ? {
50205          link: style?.elements?.link
50206        } : undefined
50207      })
50208    }, innerBlocks);
50209    return [newAttributes, [newGroupBlock]];
50210  };
50211  const hasSingleInnerGroupBlock = (innerBlocks = []) => innerBlocks.length === 1 && innerBlocks[0].name === 'core/group';
50212  const migrateToConstrainedLayout = attributes => {
50213    const {
50214      layout = null
50215    } = attributes;
50216    if (!layout) {
50217      return attributes;
50218    }
50219    const {
50220      inherit = null,
50221      contentSize = null,
50222      ...newLayout
50223    } = layout;
50224    if (inherit || contentSize) {
50225      return {
50226        ...attributes,
50227        layout: {
50228          ...newLayout,
50229          contentSize,
50230          type: 'constrained'
50231        }
50232      };
50233    }
50234    return attributes;
50235  };
50236  const findPostTemplateBlock = (innerBlocks = []) => {
50237    let foundBlock = null;
50238    for (const block of innerBlocks) {
50239      if (block.name === 'core/post-template') {
50240        foundBlock = block;
50241        break;
50242      } else if (block.innerBlocks.length) {
50243        foundBlock = findPostTemplateBlock(block.innerBlocks);
50244      }
50245    }
50246    return foundBlock;
50247  };
50248  const replacePostTemplateBlock = (innerBlocks = [], replacementBlock) => {
50249    innerBlocks.forEach((block, index) => {
50250      if (block.name === 'core/post-template') {
50251        innerBlocks.splice(index, 1, replacementBlock);
50252      } else if (block.innerBlocks.length) {
50253        block.innerBlocks = replacePostTemplateBlock(block.innerBlocks, replacementBlock);
50254      }
50255    });
50256    return innerBlocks;
50257  };
50258  const migrateDisplayLayout = (attributes, innerBlocks) => {
50259    const {
50260      displayLayout = null,
50261      ...newAttributes
50262    } = attributes;
50263    if (!displayLayout) {
50264      return [attributes, innerBlocks];
50265    }
50266    const postTemplateBlock = findPostTemplateBlock(innerBlocks);
50267    if (!postTemplateBlock) {
50268      return [attributes, innerBlocks];
50269    }
50270    const {
50271      type,
50272      columns
50273    } = displayLayout;
50274  
50275    // Convert custom displayLayout values to canonical layout types.
50276    const updatedLayoutType = type === 'flex' ? 'grid' : 'default';
50277    const newPostTemplateBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/post-template', {
50278      ...postTemplateBlock.attributes,
50279      layout: {
50280        type: updatedLayoutType,
50281        ...(columns && {
50282          columnCount: columns
50283        })
50284      }
50285    }, postTemplateBlock.innerBlocks);
50286    return [newAttributes, replacePostTemplateBlock(innerBlocks, newPostTemplateBlock)];
50287  };
50288  
50289  // Version with NO wrapper `div` element.
50290  const query_deprecated_v1 = {
50291    attributes: {
50292      queryId: {
50293        type: 'number'
50294      },
50295      query: {
50296        type: 'object',
50297        default: {
50298          perPage: null,
50299          pages: 0,
50300          offset: 0,
50301          postType: 'post',
50302          categoryIds: [],
50303          tagIds: [],
50304          order: 'desc',
50305          orderBy: 'date',
50306          author: '',
50307          search: '',
50308          exclude: [],
50309          sticky: '',
50310          inherit: true
50311        }
50312      },
50313      layout: {
50314        type: 'object',
50315        default: {
50316          type: 'list'
50317        }
50318      }
50319    },
50320    supports: {
50321      html: false
50322    },
50323    migrate(attributes, innerBlocks) {
50324      const withTaxQuery = migrateToTaxQuery(attributes);
50325      const {
50326        layout,
50327        ...restWithTaxQuery
50328      } = withTaxQuery;
50329      const newAttributes = {
50330        ...restWithTaxQuery,
50331        displayLayout: withTaxQuery.layout
50332      };
50333      return migrateDisplayLayout(newAttributes, innerBlocks);
50334    },
50335    save() {
50336      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
50337    }
50338  };
50339  
50340  // Version with `categoryIds and tagIds`.
50341  const query_deprecated_v2 = {
50342    attributes: {
50343      queryId: {
50344        type: 'number'
50345      },
50346      query: {
50347        type: 'object',
50348        default: {
50349          perPage: null,
50350          pages: 0,
50351          offset: 0,
50352          postType: 'post',
50353          categoryIds: [],
50354          tagIds: [],
50355          order: 'desc',
50356          orderBy: 'date',
50357          author: '',
50358          search: '',
50359          exclude: [],
50360          sticky: '',
50361          inherit: true
50362        }
50363      },
50364      tagName: {
50365        type: 'string',
50366        default: 'div'
50367      },
50368      displayLayout: {
50369        type: 'object',
50370        default: {
50371          type: 'list'
50372        }
50373      }
50374    },
50375    supports: {
50376      align: ['wide', 'full'],
50377      html: false,
50378      color: {
50379        gradients: true,
50380        link: true
50381      },
50382      layout: true
50383    },
50384    isEligible: ({
50385      query: {
50386        categoryIds,
50387        tagIds
50388      } = {}
50389    }) => categoryIds || tagIds,
50390    migrate(attributes, innerBlocks) {
50391      const withTaxQuery = migrateToTaxQuery(attributes);
50392      const [withColorAttributes, withColorInnerBlocks] = migrateColors(withTaxQuery, innerBlocks);
50393      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(withColorAttributes);
50394      return migrateDisplayLayout(withConstrainedLayoutAttributes, withColorInnerBlocks);
50395    },
50396    save({
50397      attributes: {
50398        tagName: Tag = 'div'
50399      }
50400    }) {
50401      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50402      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50403      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50404        ...innerBlocksProps
50405      });
50406    }
50407  };
50408  
50409  // Version with color support prior to moving it to the PostTemplate block.
50410  const query_deprecated_v3 = {
50411    attributes: {
50412      queryId: {
50413        type: 'number'
50414      },
50415      query: {
50416        type: 'object',
50417        default: {
50418          perPage: null,
50419          pages: 0,
50420          offset: 0,
50421          postType: 'post',
50422          order: 'desc',
50423          orderBy: 'date',
50424          author: '',
50425          search: '',
50426          exclude: [],
50427          sticky: '',
50428          inherit: true,
50429          taxQuery: null,
50430          parents: []
50431        }
50432      },
50433      tagName: {
50434        type: 'string',
50435        default: 'div'
50436      },
50437      displayLayout: {
50438        type: 'object',
50439        default: {
50440          type: 'list'
50441        }
50442      },
50443      namespace: {
50444        type: 'string'
50445      }
50446    },
50447    supports: {
50448      align: ['wide', 'full'],
50449      html: false,
50450      color: {
50451        gradients: true,
50452        link: true,
50453        __experimentalDefaultControls: {
50454          background: true,
50455          text: true
50456        }
50457      },
50458      layout: true
50459    },
50460    isEligible(attributes) {
50461      const {
50462        style,
50463        backgroundColor,
50464        gradient,
50465        textColor
50466      } = attributes;
50467      return backgroundColor || gradient || textColor || style?.color || style?.elements?.link;
50468    },
50469    migrate(attributes, innerBlocks) {
50470      const [withColorAttributes, withColorInnerBlocks] = migrateColors(attributes, innerBlocks);
50471      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(withColorAttributes);
50472      return migrateDisplayLayout(withConstrainedLayoutAttributes, withColorInnerBlocks);
50473    },
50474    save({
50475      attributes: {
50476        tagName: Tag = 'div'
50477      }
50478    }) {
50479      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50480      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50481      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50482        ...innerBlocksProps
50483      });
50484    }
50485  };
50486  const query_deprecated_v4 = {
50487    attributes: {
50488      queryId: {
50489        type: 'number'
50490      },
50491      query: {
50492        type: 'object',
50493        default: {
50494          perPage: null,
50495          pages: 0,
50496          offset: 0,
50497          postType: 'post',
50498          order: 'desc',
50499          orderBy: 'date',
50500          author: '',
50501          search: '',
50502          exclude: [],
50503          sticky: '',
50504          inherit: true,
50505          taxQuery: null,
50506          parents: []
50507        }
50508      },
50509      tagName: {
50510        type: 'string',
50511        default: 'div'
50512      },
50513      displayLayout: {
50514        type: 'object',
50515        default: {
50516          type: 'list'
50517        }
50518      },
50519      namespace: {
50520        type: 'string'
50521      }
50522    },
50523    supports: {
50524      align: ['wide', 'full'],
50525      html: false,
50526      color: {
50527        gradients: true,
50528        link: true,
50529        __experimentalDefaultControls: {
50530          background: true,
50531          text: true
50532        }
50533      },
50534      layout: true
50535    },
50536    save({
50537      attributes: {
50538        tagName: Tag = 'div'
50539      }
50540    }) {
50541      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50542      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50543      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50544        ...innerBlocksProps
50545      });
50546    },
50547    isEligible: ({
50548      layout
50549    }) => layout?.inherit || layout?.contentSize && layout?.type !== 'constrained',
50550    migrate(attributes, innerBlocks) {
50551      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(attributes);
50552      return migrateDisplayLayout(withConstrainedLayoutAttributes, innerBlocks);
50553    }
50554  };
50555  const query_deprecated_v5 = {
50556    attributes: {
50557      queryId: {
50558        type: 'number'
50559      },
50560      query: {
50561        type: 'object',
50562        default: {
50563          perPage: null,
50564          pages: 0,
50565          offset: 0,
50566          postType: 'post',
50567          order: 'desc',
50568          orderBy: 'date',
50569          author: '',
50570          search: '',
50571          exclude: [],
50572          sticky: '',
50573          inherit: true,
50574          taxQuery: null,
50575          parents: []
50576        }
50577      },
50578      tagName: {
50579        type: 'string',
50580        default: 'div'
50581      },
50582      displayLayout: {
50583        type: 'object',
50584        default: {
50585          type: 'list'
50586        }
50587      },
50588      namespace: {
50589        type: 'string'
50590      }
50591    },
50592    supports: {
50593      align: ['wide', 'full'],
50594      anchor: true,
50595      html: false,
50596      layout: true
50597    },
50598    save({
50599      attributes: {
50600        tagName: Tag = 'div'
50601      }
50602    }) {
50603      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50604      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50605      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50606        ...innerBlocksProps
50607      });
50608    },
50609    isEligible: ({
50610      displayLayout
50611    }) => {
50612      return !!displayLayout;
50613    },
50614    migrate: migrateDisplayLayout
50615  };
50616  const query_deprecated_deprecated = [query_deprecated_v5, query_deprecated_v4, query_deprecated_v3, query_deprecated_v2, query_deprecated_v1];
50617  /* harmony default export */ const query_deprecated = (query_deprecated_deprecated);
50618  
50619  ;// ./node_modules/@wordpress/block-library/build-module/query/index.js
50620  /**
50621   * WordPress dependencies
50622   */
50623  
50624  
50625  /**
50626   * Internal dependencies
50627   */
50628  
50629  const query_metadata = {
50630    $schema: "https://schemas.wp.org/trunk/block.json",
50631    apiVersion: 3,
50632    name: "core/query",
50633    title: "Query Loop",
50634    category: "theme",
50635    description: "An advanced block that allows displaying post types based on different query parameters and visual configurations.",
50636    keywords: ["posts", "list", "blog", "blogs", "custom post types"],
50637    textdomain: "default",
50638    attributes: {
50639      queryId: {
50640        type: "number"
50641      },
50642      query: {
50643        type: "object",
50644        "default": {
50645          perPage: null,
50646          pages: 0,
50647          offset: 0,
50648          postType: "post",
50649          order: "desc",
50650          orderBy: "date",
50651          author: "",
50652          search: "",
50653          exclude: [],
50654          sticky: "",
50655          inherit: true,
50656          taxQuery: null,
50657          parents: [],
50658          format: []
50659        }
50660      },
50661      tagName: {
50662        type: "string",
50663        "default": "div"
50664      },
50665      namespace: {
50666        type: "string"
50667      },
50668      enhancedPagination: {
50669        type: "boolean",
50670        "default": false
50671      }
50672    },
50673    usesContext: ["templateSlug"],
50674    providesContext: {
50675      queryId: "queryId",
50676      query: "query",
50677      displayLayout: "displayLayout",
50678      enhancedPagination: "enhancedPagination"
50679    },
50680    supports: {
50681      align: ["wide", "full"],
50682      html: false,
50683      layout: true,
50684      interactivity: true
50685    },
50686    editorStyle: "wp-block-query-editor"
50687  };
50688  
50689  
50690  
50691  
50692  const {
50693    name: query_name
50694  } = query_metadata;
50695  
50696  const query_settings = {
50697    icon: library_loop,
50698    edit: query_edit,
50699    example: {
50700      viewportWidth: 650,
50701      attributes: {
50702        namespace: 'core/posts-list',
50703        query: {
50704          perPage: 4,
50705          pages: 1,
50706          offset: 0,
50707          postType: 'post',
50708          order: 'desc',
50709          orderBy: 'date',
50710          author: '',
50711          search: '',
50712          sticky: 'exclude',
50713          inherit: false
50714        }
50715      },
50716      innerBlocks: [{
50717        name: 'core/post-template',
50718        attributes: {
50719          layout: {
50720            type: 'grid',
50721            columnCount: 2
50722          }
50723        },
50724        innerBlocks: [{
50725          name: 'core/post-title'
50726        }, {
50727          name: 'core/post-date'
50728        }, {
50729          name: 'core/post-excerpt'
50730        }]
50731      }]
50732    },
50733    save: query_save_save,
50734    variations: query_variations,
50735    deprecated: query_deprecated
50736  };
50737  const query_init = () => initBlock({
50738    name: query_name,
50739    metadata: query_metadata,
50740    settings: query_settings
50741  });
50742  
50743  ;// ./node_modules/@wordpress/block-library/build-module/query-no-results/edit.js
50744  /**
50745   * WordPress dependencies
50746   */
50747  
50748  
50749  
50750  const query_no_results_edit_TEMPLATE = [['core/paragraph', {
50751    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text or blocks that will display when a query returns no results.')
50752  }]];
50753  function QueryNoResultsEdit() {
50754    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
50755    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
50756      template: query_no_results_edit_TEMPLATE
50757    });
50758    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
50759      ...innerBlocksProps
50760    });
50761  }
50762  
50763  ;// ./node_modules/@wordpress/block-library/build-module/query-no-results/save.js
50764  /**
50765   * WordPress dependencies
50766   */
50767  
50768  
50769  function query_no_results_save_save() {
50770    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
50771  }
50772  
50773  ;// ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
50774  /**
50775   * WordPress dependencies
50776   */
50777  
50778  
50779  
50780  /**
50781   * Internal dependencies
50782   */
50783  
50784  const query_no_results_metadata = {
50785    $schema: "https://schemas.wp.org/trunk/block.json",
50786    apiVersion: 3,
50787    name: "core/query-no-results",
50788    title: "No Results",
50789    category: "theme",
50790    description: "Contains the block elements used to render content when no query results are found.",
50791    ancestor: ["core/query"],
50792    textdomain: "default",
50793    usesContext: ["queryId", "query"],
50794    supports: {
50795      align: true,
50796      reusable: false,
50797      html: false,
50798      color: {
50799        gradients: true,
50800        link: true
50801      },
50802      typography: {
50803        fontSize: true,
50804        lineHeight: true,
50805        __experimentalFontFamily: true,
50806        __experimentalFontWeight: true,
50807        __experimentalFontStyle: true,
50808        __experimentalTextTransform: true,
50809        __experimentalTextDecoration: true,
50810        __experimentalLetterSpacing: true,
50811        __experimentalDefaultControls: {
50812          fontSize: true
50813        }
50814      },
50815      interactivity: {
50816        clientNavigation: true
50817      }
50818    }
50819  };
50820  
50821  
50822  const {
50823    name: query_no_results_name
50824  } = query_no_results_metadata;
50825  
50826  const query_no_results_settings = {
50827    icon: library_loop,
50828    edit: QueryNoResultsEdit,
50829    save: query_no_results_save_save,
50830    example: {
50831      innerBlocks: [{
50832        name: 'core/paragraph',
50833        attributes: {
50834          content: (0,external_wp_i18n_namespaceObject.__)('No posts were found.')
50835        }
50836      }]
50837    }
50838  };
50839  const query_no_results_init = () => initBlock({
50840    name: query_no_results_name,
50841    metadata: query_no_results_metadata,
50842    settings: query_no_results_settings
50843  });
50844  
50845  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-arrow-controls.js
50846  /**
50847   * WordPress dependencies
50848   */
50849  
50850  
50851  
50852  function QueryPaginationArrowControls({
50853    value,
50854    onChange
50855  }) {
50856    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
50857      __next40pxDefaultSize: true,
50858      __nextHasNoMarginBottom: true,
50859      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
50860      value: value,
50861      onChange: onChange,
50862      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous page link.'),
50863      isBlock: true,
50864      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
50865        value: "none",
50866        label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Query Pagination Next/Previous blocks')
50867      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
50868        value: "arrow",
50869        label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Query Pagination Next/Previous blocks')
50870      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
50871        value: "chevron",
50872        label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Query Pagination Next/Previous blocks')
50873      })]
50874    });
50875  }
50876  
50877  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-label-control.js
50878  /**
50879   * WordPress dependencies
50880   */
50881  
50882  
50883  
50884  function QueryPaginationLabelControl({
50885    value,
50886    onChange
50887  }) {
50888    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
50889      __nextHasNoMarginBottom: true,
50890      label: (0,external_wp_i18n_namespaceObject.__)('Show label text'),
50891      help: (0,external_wp_i18n_namespaceObject.__)('Make label text visible, e.g. "Next Page".'),
50892      onChange: onChange,
50893      checked: value === true
50894    });
50895  }
50896  
50897  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/edit.js
50898  /**
50899   * WordPress dependencies
50900   */
50901  
50902  
50903  
50904  
50905  
50906  
50907  /**
50908   * Internal dependencies
50909   */
50910  
50911  
50912  
50913  
50914  const query_pagination_edit_TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']];
50915  function edit_QueryPaginationEdit({
50916    attributes: {
50917      paginationArrow,
50918      showLabel
50919    },
50920    setAttributes,
50921    clientId
50922  }) {
50923    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
50924      const {
50925        getBlocks
50926      } = select(external_wp_blockEditor_namespaceObject.store);
50927      const innerBlocks = getBlocks(clientId);
50928      /**
50929       * Show the `paginationArrow` and `showLabel` controls only if a
50930       * `QueryPaginationNext/Previous` block exists.
50931       */
50932      return innerBlocks?.find(innerBlock => {
50933        return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name);
50934      });
50935    }, [clientId]);
50936    const {
50937      __unstableMarkNextChangeAsNotPersistent
50938    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
50939    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
50940    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
50941    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
50942      template: query_pagination_edit_TEMPLATE
50943    });
50944  
50945    // Always show label text if paginationArrow is set to 'none'.
50946    (0,external_wp_element_namespaceObject.useEffect)(() => {
50947      if (paginationArrow === 'none' && !showLabel) {
50948        __unstableMarkNextChangeAsNotPersistent();
50949        setAttributes({
50950          showLabel: true
50951        });
50952      }
50953    }, [paginationArrow, setAttributes, showLabel, __unstableMarkNextChangeAsNotPersistent]);
50954    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50955      children: [hasNextPreviousBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
50956        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
50957          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
50958          resetAll: () => {
50959            setAttributes({
50960              paginationArrow: 'none',
50961              showLabel: true
50962            });
50963          },
50964          dropdownMenuProps: dropdownMenuProps,
50965          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
50966            hasValue: () => paginationArrow !== 'none',
50967            label: (0,external_wp_i18n_namespaceObject.__)('Pagination arrow'),
50968            onDeselect: () => setAttributes({
50969              paginationArrow: 'none'
50970            }),
50971            isShownByDefault: true,
50972            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryPaginationArrowControls, {
50973              value: paginationArrow,
50974              onChange: value => {
50975                setAttributes({
50976                  paginationArrow: value
50977                });
50978              }
50979            })
50980          }), paginationArrow !== 'none' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
50981            hasValue: () => !showLabel,
50982            label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
50983            onDeselect: () => setAttributes({
50984              showLabel: true
50985            }),
50986            isShownByDefault: true,
50987            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryPaginationLabelControl, {
50988              value: showLabel,
50989              onChange: value => {
50990                setAttributes({
50991                  showLabel: value
50992                });
50993              }
50994            })
50995          })]
50996        })
50997      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
50998        ...innerBlocksProps
50999      })]
51000    });
51001  }
51002  
51003  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/save.js
51004  /**
51005   * WordPress dependencies
51006   */
51007  
51008  
51009  function query_pagination_save_save() {
51010    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
51011  }
51012  
51013  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/deprecated.js
51014  /**
51015   * WordPress dependencies
51016   */
51017  
51018  
51019  const query_pagination_deprecated_deprecated = [
51020  // Version with wrapper `div` element.
51021  {
51022    save() {
51023      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51024        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
51025        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
51026      });
51027    }
51028  }];
51029  /* harmony default export */ const query_pagination_deprecated = (query_pagination_deprecated_deprecated);
51030  
51031  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
51032  /**
51033   * WordPress dependencies
51034   */
51035  
51036  
51037  /**
51038   * Internal dependencies
51039   */
51040  
51041  const query_pagination_metadata = {
51042    $schema: "https://schemas.wp.org/trunk/block.json",
51043    apiVersion: 3,
51044    name: "core/query-pagination",
51045    title: "Pagination",
51046    category: "theme",
51047    ancestor: ["core/query"],
51048    allowedBlocks: ["core/query-pagination-previous", "core/query-pagination-numbers", "core/query-pagination-next"],
51049    description: "Displays a paginated navigation to next/previous set of posts, when applicable.",
51050    textdomain: "default",
51051    attributes: {
51052      paginationArrow: {
51053        type: "string",
51054        "default": "none"
51055      },
51056      showLabel: {
51057        type: "boolean",
51058        "default": true
51059      }
51060    },
51061    usesContext: ["queryId", "query"],
51062    providesContext: {
51063      paginationArrow: "paginationArrow",
51064      showLabel: "showLabel"
51065    },
51066    supports: {
51067      align: true,
51068      reusable: false,
51069      html: false,
51070      color: {
51071        gradients: true,
51072        link: true,
51073        __experimentalDefaultControls: {
51074          background: true,
51075          text: true,
51076          link: true
51077        }
51078      },
51079      layout: {
51080        allowSwitching: false,
51081        allowInheriting: false,
51082        "default": {
51083          type: "flex"
51084        }
51085      },
51086      typography: {
51087        fontSize: true,
51088        lineHeight: true,
51089        __experimentalFontFamily: true,
51090        __experimentalFontWeight: true,
51091        __experimentalFontStyle: true,
51092        __experimentalTextTransform: true,
51093        __experimentalTextDecoration: true,
51094        __experimentalLetterSpacing: true,
51095        __experimentalDefaultControls: {
51096          fontSize: true
51097        }
51098      },
51099      interactivity: {
51100        clientNavigation: true
51101      }
51102    },
51103    editorStyle: "wp-block-query-pagination-editor",
51104    style: "wp-block-query-pagination"
51105  };
51106  
51107  
51108  
51109  const {
51110    name: query_pagination_name
51111  } = query_pagination_metadata;
51112  
51113  const query_pagination_settings = {
51114    icon: query_pagination,
51115    edit: edit_QueryPaginationEdit,
51116    save: query_pagination_save_save,
51117    deprecated: query_pagination_deprecated
51118  };
51119  const query_pagination_init = () => initBlock({
51120    name: query_pagination_name,
51121    metadata: query_pagination_metadata,
51122    settings: query_pagination_settings
51123  });
51124  
51125  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-next/edit.js
51126  /**
51127   * WordPress dependencies
51128   */
51129  
51130  
51131  
51132  const query_pagination_next_edit_arrowMap = {
51133    none: '',
51134    arrow: '→',
51135    chevron: '»'
51136  };
51137  function QueryPaginationNextEdit({
51138    attributes: {
51139      label
51140    },
51141    setAttributes,
51142    context: {
51143      paginationArrow,
51144      showLabel
51145    }
51146  }) {
51147    const displayArrow = query_pagination_next_edit_arrowMap[paginationArrow];
51148    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
51149      href: "#pagination-next-pseudo-link",
51150      onClick: event => event.preventDefault(),
51151      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
51152      children: [showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
51153        __experimentalVersion: 2,
51154        tagName: "span",
51155        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page link'),
51156        placeholder: (0,external_wp_i18n_namespaceObject.__)('Next Page'),
51157        value: label,
51158        onChange: newLabel => setAttributes({
51159          label: newLabel
51160        })
51161      }), displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
51162        className: `wp-block-query-pagination-next-arrow is-arrow-$paginationArrow}`,
51163        "aria-hidden": true,
51164        children: displayArrow
51165      })]
51166    });
51167  }
51168  
51169  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
51170  /**
51171   * WordPress dependencies
51172   */
51173  
51174  
51175  /**
51176   * Internal dependencies
51177   */
51178  
51179  const query_pagination_next_metadata = {
51180    $schema: "https://schemas.wp.org/trunk/block.json",
51181    apiVersion: 3,
51182    name: "core/query-pagination-next",
51183    title: "Next Page",
51184    category: "theme",
51185    parent: ["core/query-pagination"],
51186    description: "Displays the next posts page link.",
51187    textdomain: "default",
51188    attributes: {
51189      label: {
51190        type: "string"
51191      }
51192    },
51193    usesContext: ["queryId", "query", "paginationArrow", "showLabel", "enhancedPagination"],
51194    supports: {
51195      reusable: false,
51196      html: false,
51197      color: {
51198        gradients: true,
51199        text: false,
51200        __experimentalDefaultControls: {
51201          background: true
51202        }
51203      },
51204      typography: {
51205        fontSize: true,
51206        lineHeight: true,
51207        __experimentalFontFamily: true,
51208        __experimentalFontWeight: true,
51209        __experimentalFontStyle: true,
51210        __experimentalTextTransform: true,
51211        __experimentalTextDecoration: true,
51212        __experimentalLetterSpacing: true,
51213        __experimentalDefaultControls: {
51214          fontSize: true
51215        }
51216      },
51217      interactivity: {
51218        clientNavigation: true
51219      }
51220    }
51221  };
51222  
51223  const {
51224    name: query_pagination_next_name
51225  } = query_pagination_next_metadata;
51226  
51227  const query_pagination_next_settings = {
51228    icon: query_pagination_next,
51229    edit: QueryPaginationNextEdit
51230  };
51231  const query_pagination_next_init = () => initBlock({
51232    name: query_pagination_next_name,
51233    metadata: query_pagination_next_metadata,
51234    settings: query_pagination_next_settings
51235  });
51236  
51237  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/edit.js
51238  /**
51239   * WordPress dependencies
51240   */
51241  
51242  
51243  
51244  
51245  /**
51246   * Internal dependencies
51247   */
51248  
51249  
51250  const createPaginationItem = (content, Tag = 'a', extraClass = '') => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
51251    className: `page-numbers $extraClass}`,
51252    children: content
51253  }, content);
51254  const previewPaginationNumbers = midSize => {
51255    const paginationItems = [];
51256  
51257    // First set of pagination items.
51258    for (let i = 1; i <= midSize; i++) {
51259      paginationItems.push(createPaginationItem(i));
51260    }
51261  
51262    // Current pagination item.
51263    paginationItems.push(createPaginationItem(midSize + 1, 'span', 'current'));
51264  
51265    // Second set of pagination items.
51266    for (let i = 1; i <= midSize; i++) {
51267      paginationItems.push(createPaginationItem(midSize + 1 + i));
51268    }
51269  
51270    // Dots.
51271    paginationItems.push(createPaginationItem('...', 'span', 'dots'));
51272  
51273    // Last pagination item.
51274    paginationItems.push(createPaginationItem(midSize * 2 + 3));
51275    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51276      children: paginationItems
51277    });
51278  };
51279  function QueryPaginationNumbersEdit({
51280    attributes,
51281    setAttributes
51282  }) {
51283    const {
51284      midSize
51285    } = attributes;
51286    const paginationNumbers = previewPaginationNumbers(parseInt(midSize, 10));
51287    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
51288    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51289      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51290        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
51291          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51292          resetAll: () => setAttributes({
51293            midSize: 2
51294          }),
51295          dropdownMenuProps: dropdownMenuProps,
51296          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51297            label: (0,external_wp_i18n_namespaceObject.__)('Number of links'),
51298            hasValue: () => midSize !== 2,
51299            onDeselect: () => setAttributes({
51300              midSize: 2
51301            }),
51302            isShownByDefault: true,
51303            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
51304              __next40pxDefaultSize: true,
51305              __nextHasNoMarginBottom: true,
51306              label: (0,external_wp_i18n_namespaceObject.__)('Number of links'),
51307              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.'),
51308              value: midSize,
51309              onChange: value => {
51310                setAttributes({
51311                  midSize: parseInt(value, 10)
51312                });
51313              },
51314              min: 0,
51315              max: 5,
51316              withInputField: false
51317            })
51318          })
51319        })
51320      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51321        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
51322        children: paginationNumbers
51323      })]
51324    });
51325  }
51326  
51327  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
51328  /**
51329   * WordPress dependencies
51330   */
51331  
51332  
51333  /**
51334   * Internal dependencies
51335   */
51336  
51337  const query_pagination_numbers_metadata = {
51338    $schema: "https://schemas.wp.org/trunk/block.json",
51339    apiVersion: 3,
51340    name: "core/query-pagination-numbers",
51341    title: "Page Numbers",
51342    category: "theme",
51343    parent: ["core/query-pagination"],
51344    description: "Displays a list of page numbers for pagination.",
51345    textdomain: "default",
51346    attributes: {
51347      midSize: {
51348        type: "number",
51349        "default": 2
51350      }
51351    },
51352    usesContext: ["queryId", "query", "enhancedPagination"],
51353    supports: {
51354      reusable: false,
51355      html: false,
51356      color: {
51357        gradients: true,
51358        text: false,
51359        __experimentalDefaultControls: {
51360          background: true
51361        }
51362      },
51363      typography: {
51364        fontSize: true,
51365        lineHeight: true,
51366        __experimentalFontFamily: true,
51367        __experimentalFontWeight: true,
51368        __experimentalFontStyle: true,
51369        __experimentalTextTransform: true,
51370        __experimentalTextDecoration: true,
51371        __experimentalLetterSpacing: true,
51372        __experimentalDefaultControls: {
51373          fontSize: true
51374        }
51375      },
51376      interactivity: {
51377        clientNavigation: true
51378      }
51379    },
51380    editorStyle: "wp-block-query-pagination-numbers-editor"
51381  };
51382  
51383  const {
51384    name: query_pagination_numbers_name
51385  } = query_pagination_numbers_metadata;
51386  
51387  const query_pagination_numbers_settings = {
51388    icon: query_pagination_numbers,
51389    edit: QueryPaginationNumbersEdit,
51390    example: {}
51391  };
51392  const query_pagination_numbers_init = () => initBlock({
51393    name: query_pagination_numbers_name,
51394    metadata: query_pagination_numbers_metadata,
51395    settings: query_pagination_numbers_settings
51396  });
51397  
51398  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/edit.js
51399  /**
51400   * WordPress dependencies
51401   */
51402  
51403  
51404  
51405  const query_pagination_previous_edit_arrowMap = {
51406    none: '',
51407    arrow: '←',
51408    chevron: '«'
51409  };
51410  function QueryPaginationPreviousEdit({
51411    attributes: {
51412      label
51413    },
51414    setAttributes,
51415    context: {
51416      paginationArrow,
51417      showLabel
51418    }
51419  }) {
51420    const displayArrow = query_pagination_previous_edit_arrowMap[paginationArrow];
51421    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
51422      href: "#pagination-previous-pseudo-link",
51423      onClick: event => event.preventDefault(),
51424      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
51425      children: [displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
51426        className: `wp-block-query-pagination-previous-arrow is-arrow-$paginationArrow}`,
51427        "aria-hidden": true,
51428        children: displayArrow
51429      }), showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
51430        __experimentalVersion: 2,
51431        tagName: "span",
51432        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page link'),
51433        placeholder: (0,external_wp_i18n_namespaceObject.__)('Previous Page'),
51434        value: label,
51435        onChange: newLabel => setAttributes({
51436          label: newLabel
51437        })
51438      })]
51439    });
51440  }
51441  
51442  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
51443  /**
51444   * WordPress dependencies
51445   */
51446  
51447  
51448  /**
51449   * Internal dependencies
51450   */
51451  
51452  const query_pagination_previous_metadata = {
51453    $schema: "https://schemas.wp.org/trunk/block.json",
51454    apiVersion: 3,
51455    name: "core/query-pagination-previous",
51456    title: "Previous Page",
51457    category: "theme",
51458    parent: ["core/query-pagination"],
51459    description: "Displays the previous posts page link.",
51460    textdomain: "default",
51461    attributes: {
51462      label: {
51463        type: "string"
51464      }
51465    },
51466    usesContext: ["queryId", "query", "paginationArrow", "showLabel", "enhancedPagination"],
51467    supports: {
51468      reusable: false,
51469      html: false,
51470      color: {
51471        gradients: true,
51472        text: false,
51473        __experimentalDefaultControls: {
51474          background: true
51475        }
51476      },
51477      typography: {
51478        fontSize: true,
51479        lineHeight: true,
51480        __experimentalFontFamily: true,
51481        __experimentalFontWeight: true,
51482        __experimentalFontStyle: true,
51483        __experimentalTextTransform: true,
51484        __experimentalTextDecoration: true,
51485        __experimentalLetterSpacing: true,
51486        __experimentalDefaultControls: {
51487          fontSize: true
51488        }
51489      },
51490      interactivity: {
51491        clientNavigation: true
51492      }
51493    }
51494  };
51495  
51496  const {
51497    name: query_pagination_previous_name
51498  } = query_pagination_previous_metadata;
51499  
51500  const query_pagination_previous_settings = {
51501    icon: query_pagination_previous,
51502    edit: QueryPaginationPreviousEdit
51503  };
51504  const query_pagination_previous_init = () => initBlock({
51505    name: query_pagination_previous_name,
51506    metadata: query_pagination_previous_metadata,
51507    settings: query_pagination_previous_settings
51508  });
51509  
51510  ;// ./node_modules/@wordpress/block-library/build-module/query-title/use-archive-label.js
51511  /**
51512   * WordPress dependencies
51513   */
51514  
51515  
51516  function useArchiveLabel() {
51517    const templateSlug = (0,external_wp_data_namespaceObject.useSelect)(select => {
51518      // @wordpress/block-library should not depend on @wordpress/editor.
51519      // Blocks can be loaded into a *non-post* block editor, so to avoid
51520      // declaring @wordpress/editor as a dependency, we must access its
51521      // store by string.
51522      // The solution here is to split WP specific blocks from generic blocks.
51523      // eslint-disable-next-line @wordpress/data-no-store-string-literals
51524      const {
51525        getCurrentPostId,
51526        getCurrentPostType,
51527        getCurrentTemplateId
51528      } = select('core/editor');
51529      const currentPostType = getCurrentPostType();
51530      const templateId = getCurrentTemplateId() || (currentPostType === 'wp_template' ? getCurrentPostId() : null);
51531      return templateId ? select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_template', templateId)?.slug : null;
51532    }, []);
51533    const taxonomyMatches = templateSlug?.match(/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/);
51534    let taxonomy;
51535    let term;
51536    let isAuthor = false;
51537    let authorSlug;
51538    if (taxonomyMatches) {
51539      // If is for a all taxonomies of a type
51540      if (taxonomyMatches[1]) {
51541        taxonomy = taxonomyMatches[2] ? taxonomyMatches[2] : taxonomyMatches[1];
51542      }
51543      // If is for a all taxonomies of a type
51544      else if (taxonomyMatches[3]) {
51545        taxonomy = taxonomyMatches[6] ? taxonomyMatches[6] : taxonomyMatches[4];
51546        term = taxonomyMatches[7];
51547      }
51548      taxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;
51549  
51550      //getTaxonomy( 'category' );
51551      //wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );
51552    } else {
51553      const authorMatches = templateSlug?.match(/^(author)$|^author-(.+)$/);
51554      if (authorMatches) {
51555        isAuthor = true;
51556        if (authorMatches[2]) {
51557          authorSlug = authorMatches[2];
51558        }
51559      }
51560    }
51561    return (0,external_wp_data_namespaceObject.useSelect)(select => {
51562      const {
51563        getEntityRecords,
51564        getTaxonomy,
51565        getAuthors
51566      } = select(external_wp_coreData_namespaceObject.store);
51567      let archiveTypeLabel;
51568      let archiveNameLabel;
51569      if (taxonomy) {
51570        archiveTypeLabel = getTaxonomy(taxonomy)?.labels?.singular_name;
51571      }
51572      if (term) {
51573        const records = getEntityRecords('taxonomy', taxonomy, {
51574          slug: term,
51575          per_page: 1
51576        });
51577        if (records && records[0]) {
51578          archiveNameLabel = records[0].name;
51579        }
51580      }
51581      if (isAuthor) {
51582        archiveTypeLabel = 'Author';
51583        if (authorSlug) {
51584          const authorRecords = getAuthors({
51585            slug: authorSlug
51586          });
51587          if (authorRecords && authorRecords[0]) {
51588            archiveNameLabel = authorRecords[0].name;
51589          }
51590        }
51591      }
51592      return {
51593        archiveTypeLabel,
51594        archiveNameLabel
51595      };
51596    }, [authorSlug, isAuthor, taxonomy, term]);
51597  }
51598  
51599  ;// ./node_modules/@wordpress/block-library/build-module/query-title/edit.js
51600  /**
51601   * External dependencies
51602   */
51603  
51604  
51605  /**
51606   * WordPress dependencies
51607   */
51608  
51609  
51610  
51611  
51612  /**
51613   * Internal dependencies
51614   */
51615  
51616  
51617  
51618  const SUPPORTED_TYPES = ['archive', 'search'];
51619  function QueryTitleEdit({
51620    attributes: {
51621      type,
51622      level,
51623      levelOptions,
51624      textAlign,
51625      showPrefix,
51626      showSearchTerm
51627    },
51628    setAttributes
51629  }) {
51630    const {
51631      archiveTypeLabel,
51632      archiveNameLabel
51633    } = useArchiveLabel();
51634    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
51635    const TagName = `h$level}`;
51636    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
51637      className: dist_clsx('wp-block-query-title__placeholder', {
51638        [`has-text-align-$textAlign}`]: textAlign
51639      })
51640    });
51641    if (!SUPPORTED_TYPES.includes(type)) {
51642      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51643        ...blockProps,
51644        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
51645          children: (0,external_wp_i18n_namespaceObject.__)('Provided type is not supported.')
51646        })
51647      });
51648    }
51649    let titleElement;
51650    if (type === 'archive') {
51651      let title;
51652      if (archiveTypeLabel) {
51653        if (showPrefix) {
51654          if (archiveNameLabel) {
51655            title = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: 1: Archive type title e.g: "Category", 2: Label of the archive e.g: "Shoes" */
51656            (0,external_wp_i18n_namespaceObject._x)('%1$s: %2$s', 'archive label'), archiveTypeLabel, archiveNameLabel);
51657          } else {
51658            title = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Archive type title e.g: "Category", "Tag"... */
51659            (0,external_wp_i18n_namespaceObject.__)('%s: Name'), archiveTypeLabel);
51660          }
51661        } else if (archiveNameLabel) {
51662          title = archiveNameLabel;
51663        } else {
51664          title = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Archive type title e.g: "Category", "Tag"... */
51665          (0,external_wp_i18n_namespaceObject.__)('%s name'), archiveTypeLabel);
51666        }
51667      } else {
51668        title = showPrefix ? (0,external_wp_i18n_namespaceObject.__)('Archive type: Name') : (0,external_wp_i18n_namespaceObject.__)('Archive title');
51669      }
51670      titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51671        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51672          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
51673            label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51674            resetAll: () => setAttributes({
51675              showPrefix: true
51676            }),
51677            dropdownMenuProps: dropdownMenuProps,
51678            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51679              hasValue: () => !showPrefix,
51680              label: (0,external_wp_i18n_namespaceObject.__)('Show archive type in title'),
51681              onDeselect: () => setAttributes({
51682                showPrefix: true
51683              }),
51684              isShownByDefault: true,
51685              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
51686                __nextHasNoMarginBottom: true,
51687                label: (0,external_wp_i18n_namespaceObject.__)('Show archive type in title'),
51688                onChange: () => setAttributes({
51689                  showPrefix: !showPrefix
51690                }),
51691                checked: showPrefix
51692              })
51693            })
51694          })
51695        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
51696          ...blockProps,
51697          children: title
51698        })]
51699      });
51700    }
51701    if (type === 'search') {
51702      titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51703        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51704          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
51705            label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51706            resetAll: () => setAttributes({
51707              showSearchTerm: true
51708            }),
51709            dropdownMenuProps: dropdownMenuProps,
51710            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51711              hasValue: () => !showSearchTerm,
51712              label: (0,external_wp_i18n_namespaceObject.__)('Show search term in title'),
51713              onDeselect: () => setAttributes({
51714                showSearchTerm: true
51715              }),
51716              isShownByDefault: true,
51717              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
51718                __nextHasNoMarginBottom: true,
51719                label: (0,external_wp_i18n_namespaceObject.__)('Show search term in title'),
51720                onChange: () => setAttributes({
51721                  showSearchTerm: !showSearchTerm
51722                }),
51723                checked: showSearchTerm
51724              })
51725            })
51726          })
51727        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
51728          ...blockProps,
51729          children: showSearchTerm ? (0,external_wp_i18n_namespaceObject.__)('Search results for: “search term”') : (0,external_wp_i18n_namespaceObject.__)('Search results')
51730        })]
51731      });
51732    }
51733    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51734      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
51735        group: "block",
51736        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
51737          value: level,
51738          options: levelOptions,
51739          onChange: newLevel => setAttributes({
51740            level: newLevel
51741          })
51742        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
51743          value: textAlign,
51744          onChange: nextAlign => {
51745            setAttributes({
51746              textAlign: nextAlign
51747            });
51748          }
51749        })]
51750      }), titleElement]
51751    });
51752  }
51753  
51754  ;// ./node_modules/@wordpress/block-library/build-module/query-title/variations.js
51755  /**
51756   * WordPress dependencies
51757   */
51758  
51759  
51760  const query_title_variations_variations = [{
51761    isDefault: true,
51762    name: 'archive-title',
51763    title: (0,external_wp_i18n_namespaceObject.__)('Archive Title'),
51764    description: (0,external_wp_i18n_namespaceObject.__)('Display the archive title based on the queried object.'),
51765    icon: library_title,
51766    attributes: {
51767      type: 'archive'
51768    },
51769    scope: ['inserter']
51770  }, {
51771    isDefault: false,
51772    name: 'search-title',
51773    title: (0,external_wp_i18n_namespaceObject.__)('Search Results Title'),
51774    description: (0,external_wp_i18n_namespaceObject.__)('Display the search results title based on the queried object.'),
51775    icon: library_title,
51776    attributes: {
51777      type: 'search'
51778    },
51779    scope: ['inserter']
51780  }];
51781  
51782  /**
51783   * Add `isActive` function to all `query-title` variations, if not defined.
51784   * `isActive` function is used to find a variation match from a created
51785   *  Block by providing its attributes.
51786   */
51787  query_title_variations_variations.forEach(variation => {
51788    if (variation.isActive) {
51789      return;
51790    }
51791    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
51792  });
51793  /* harmony default export */ const query_title_variations = (query_title_variations_variations);
51794  
51795  ;// ./node_modules/@wordpress/block-library/build-module/query-title/deprecated.js
51796  /**
51797   * Internal dependencies
51798   */
51799  
51800  const query_title_deprecated_v1 = {
51801    attributes: {
51802      type: {
51803        type: 'string'
51804      },
51805      textAlign: {
51806        type: 'string'
51807      },
51808      level: {
51809        type: 'number',
51810        default: 1
51811      }
51812    },
51813    supports: {
51814      align: ['wide', 'full'],
51815      html: false,
51816      color: {
51817        gradients: true
51818      },
51819      spacing: {
51820        margin: true
51821      },
51822      typography: {
51823        fontSize: true,
51824        lineHeight: true,
51825        __experimentalFontFamily: true
51826      }
51827    },
51828    save() {
51829      return null;
51830    },
51831    migrate: migrate_font_family,
51832    isEligible({
51833      style
51834    }) {
51835      return style?.typography?.fontFamily;
51836    }
51837  };
51838  
51839  /**
51840   * New deprecations need to be placed first
51841   * for them to have higher priority.
51842   *
51843   * Old deprecations may need to be updated as well.
51844   *
51845   * See block-deprecation.md
51846   */
51847  /* harmony default export */ const query_title_deprecated = ([query_title_deprecated_v1]);
51848  
51849  ;// ./node_modules/@wordpress/block-library/build-module/query-title/index.js
51850  /**
51851   * WordPress dependencies
51852   */
51853  
51854  
51855  /**
51856   * Internal dependencies
51857   */
51858  
51859  const query_title_metadata = {
51860    $schema: "https://schemas.wp.org/trunk/block.json",
51861    apiVersion: 3,
51862    name: "core/query-title",
51863    title: "Query Title",
51864    category: "theme",
51865    description: "Display the query title.",
51866    textdomain: "default",
51867    attributes: {
51868      type: {
51869        type: "string"
51870      },
51871      textAlign: {
51872        type: "string"
51873      },
51874      level: {
51875        type: "number",
51876        "default": 1
51877      },
51878      levelOptions: {
51879        type: "array"
51880      },
51881      showPrefix: {
51882        type: "boolean",
51883        "default": true
51884      },
51885      showSearchTerm: {
51886        type: "boolean",
51887        "default": true
51888      }
51889    },
51890    example: {
51891      attributes: {
51892        type: "search"
51893      }
51894    },
51895    supports: {
51896      align: ["wide", "full"],
51897      html: false,
51898      color: {
51899        gradients: true,
51900        __experimentalDefaultControls: {
51901          background: true,
51902          text: true
51903        }
51904      },
51905      spacing: {
51906        margin: true,
51907        padding: true
51908      },
51909      typography: {
51910        fontSize: true,
51911        lineHeight: true,
51912        __experimentalFontFamily: true,
51913        __experimentalFontStyle: true,
51914        __experimentalFontWeight: true,
51915        __experimentalLetterSpacing: true,
51916        __experimentalTextTransform: true,
51917        __experimentalTextDecoration: true,
51918        __experimentalDefaultControls: {
51919          fontSize: true
51920        }
51921      },
51922      interactivity: {
51923        clientNavigation: true
51924      },
51925      __experimentalBorder: {
51926        radius: true,
51927        color: true,
51928        width: true,
51929        style: true,
51930        __experimentalDefaultControls: {
51931          radius: true,
51932          color: true,
51933          width: true,
51934          style: true
51935        }
51936      }
51937    },
51938    style: "wp-block-query-title"
51939  };
51940  
51941  
51942  
51943  const {
51944    name: query_title_name
51945  } = query_title_metadata;
51946  
51947  const query_title_settings = {
51948    icon: library_title,
51949    edit: QueryTitleEdit,
51950    variations: query_title_variations,
51951    deprecated: query_title_deprecated
51952  };
51953  const query_title_init = () => initBlock({
51954    name: query_title_name,
51955    metadata: query_title_metadata,
51956    settings: query_title_settings
51957  });
51958  
51959  ;// ./node_modules/@wordpress/block-library/build-module/query-total/icons.js
51960  /**
51961   * WordPress dependencies
51962   */
51963  
51964  
51965  const resultsFound = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
51966    xmlns: "http://www.w3.org/2000/svg",
51967    viewBox: "0 0 24 24",
51968    width: "24",
51969    height: "24",
51970    "aria-hidden": "true",
51971    focusable: "false",
51972    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
51973      d: "M4 11h4v2H4v-2zm6 0h6v2h-6v-2zm8 0h2v2h-2v-2z"
51974    })
51975  });
51976  const displayingResults = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
51977    xmlns: "http://www.w3.org/2000/svg",
51978    viewBox: "0 0 24 24",
51979    width: "24",
51980    height: "24",
51981    "aria-hidden": "true",
51982    focusable: "false",
51983    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
51984      d: "M4 13h2v-2H4v2zm4 0h10v-2H8v2zm12 0h2v-2h-2v2z"
51985    })
51986  });
51987  const queryTotal = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
51988    xmlns: "http://www.w3.org/2000/svg",
51989    viewBox: "0 0 24 24",
51990    width: "24",
51991    height: "24",
51992    "aria-hidden": "true",
51993    focusable: "false",
51994    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
51995      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.5v12Zm-7-6-4.1 5h8.8v-3h-1.5v1.5h-4.2l2.9-3.5-2.9-3.5h4.2V10h1.5V7H7.4l4.1 5Z"
51996    })
51997  });
51998  
51999  ;// ./node_modules/@wordpress/block-library/build-module/query-total/edit.js
52000  /**
52001   * WordPress dependencies
52002   */
52003  
52004  
52005  
52006  
52007  /**
52008   * Internal dependencies
52009   */
52010  
52011  
52012  function QueryTotalEdit({
52013    attributes,
52014    setAttributes
52015  }) {
52016    const {
52017      displayType
52018    } = attributes;
52019  
52020    // Block properties and classes.
52021    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
52022    const getButtonPositionIcon = () => {
52023      switch (displayType) {
52024        case 'total-results':
52025          return resultsFound;
52026        case 'range-display':
52027          return displayingResults;
52028      }
52029    };
52030    const buttonPositionControls = [{
52031      role: 'menuitemradio',
52032      title: (0,external_wp_i18n_namespaceObject.__)('Total results'),
52033      isActive: displayType === 'total-results',
52034      icon: resultsFound,
52035      onClick: () => {
52036        setAttributes({
52037          displayType: 'total-results'
52038        });
52039      }
52040    }, {
52041      role: 'menuitemradio',
52042      title: (0,external_wp_i18n_namespaceObject.__)('Range display'),
52043      isActive: displayType === 'range-display',
52044      icon: displayingResults,
52045      onClick: () => {
52046        setAttributes({
52047          displayType: 'range-display'
52048        });
52049      }
52050    }];
52051  
52052    // Controls for the block.
52053    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
52054      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
52055        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
52056          icon: getButtonPositionIcon(),
52057          label: (0,external_wp_i18n_namespaceObject.__)('Change display type'),
52058          controls: buttonPositionControls
52059        })
52060      })
52061    });
52062  
52063    // Render output based on the selected display type.
52064    const renderDisplay = () => {
52065      if (displayType === 'total-results') {
52066        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52067          children: (0,external_wp_i18n_namespaceObject.__)('12 results found')
52068        });
52069      }
52070      if (displayType === 'range-display') {
52071        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52072          children: (0,external_wp_i18n_namespaceObject.__)('Displaying 1 – 10 of 12')
52073        });
52074      }
52075      return null;
52076    };
52077    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
52078      ...blockProps,
52079      children: [controls, renderDisplay()]
52080    });
52081  }
52082  
52083  ;// ./node_modules/@wordpress/block-library/build-module/query-total/index.js
52084  /**
52085   * Internal dependencies
52086   */
52087  const query_total_metadata = {
52088    $schema: "https://schemas.wp.org/trunk/block.json",
52089    apiVersion: 3,
52090    name: "core/query-total",
52091    title: "Query Total",
52092    category: "theme",
52093    ancestor: ["core/query"],
52094    description: "Display the total number of results in a query.",
52095    textdomain: "default",
52096    attributes: {
52097      displayType: {
52098        type: "string",
52099        "default": "total-results"
52100      }
52101    },
52102    usesContext: ["queryId", "query"],
52103    supports: {
52104      align: ["wide", "full"],
52105      html: false,
52106      spacing: {
52107        margin: true,
52108        padding: true
52109      },
52110      color: {
52111        gradients: true,
52112        __experimentalDefaultControls: {
52113          background: true,
52114          text: true
52115        }
52116      },
52117      typography: {
52118        fontSize: true,
52119        lineHeight: true,
52120        __experimentalFontFamily: true,
52121        __experimentalFontWeight: true,
52122        __experimentalFontStyle: true,
52123        __experimentalTextTransform: true,
52124        __experimentalTextDecoration: true,
52125        __experimentalLetterSpacing: true,
52126        __experimentalDefaultControls: {
52127          fontSize: true
52128        }
52129      },
52130      __experimentalBorder: {
52131        radius: true,
52132        color: true,
52133        width: true,
52134        style: true,
52135        __experimentalDefaultControls: {
52136          radius: true,
52137          color: true,
52138          width: true,
52139          style: true
52140        }
52141      },
52142      interactivity: {
52143        clientNavigation: true
52144      }
52145    },
52146    style: "wp-block-query-total"
52147  };
52148  
52149  
52150  
52151  
52152  /* Block settings */
52153  const {
52154    name: query_total_name
52155  } = query_total_metadata;
52156  
52157  const query_total_settings = {
52158    icon: queryTotal,
52159    edit: QueryTotalEdit
52160  };
52161  const query_total_init = () => initBlock({
52162    name: query_total_name,
52163    metadata: query_total_metadata,
52164    settings: query_total_settings
52165  });
52166  
52167  ;// ./node_modules/@wordpress/icons/build-module/library/quote.js
52168  /**
52169   * WordPress dependencies
52170   */
52171  
52172  
52173  const quote = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
52174    viewBox: "0 0 24 24",
52175    xmlns: "http://www.w3.org/2000/svg",
52176    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
52177      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"
52178    })
52179  });
52180  /* harmony default export */ const library_quote = (quote);
52181  
52182  ;// ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js
52183  /**
52184   * External dependencies
52185   */
52186  
52187  
52188  /**
52189   * WordPress dependencies
52190   */
52191  
52192  
52193  
52194  const migrateToQuoteV2 = attributes => {
52195    const {
52196      value,
52197      ...restAttributes
52198    } = attributes;
52199    return [{
52200      ...restAttributes
52201    }, value ? (0,external_wp_blocks_namespaceObject.parseWithAttributeSchema)(value, {
52202      type: 'array',
52203      source: 'query',
52204      selector: 'p',
52205      query: {
52206        content: {
52207          type: 'string',
52208          source: 'html'
52209        }
52210      }
52211    }).map(({
52212      content
52213    }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52214      content
52215    })) : (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')];
52216  };
52217  const deprecated_TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
52218  
52219  // Migrate existing text alignment settings to the renamed attribute.
52220  const deprecated_migrateTextAlign = (attributes, innerBlocks) => {
52221    const {
52222      align,
52223      ...rest
52224    } = attributes;
52225    // Check if there are valid alignments stored in the old attribute
52226    // and assign them to the new attribute name.
52227    const migratedAttributes = deprecated_TEXT_ALIGN_OPTIONS.includes(align) ? {
52228      ...rest,
52229      textAlign: align
52230    } : attributes;
52231    return [migratedAttributes, innerBlocks];
52232  };
52233  
52234  // Migrate the v2 blocks with style === `2`;
52235  const migrateLargeStyle = (attributes, innerBlocks) => {
52236    return [{
52237      ...attributes,
52238      className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large'
52239    }, innerBlocks];
52240  };
52241  
52242  // Version before the 'align' attribute was replaced with 'textAlign'.
52243  const quote_deprecated_v4 = {
52244    attributes: {
52245      value: {
52246        type: 'string',
52247        source: 'html',
52248        selector: 'blockquote',
52249        multiline: 'p',
52250        default: '',
52251        role: 'content'
52252      },
52253      citation: {
52254        type: 'string',
52255        source: 'html',
52256        selector: 'cite',
52257        default: '',
52258        role: 'content'
52259      },
52260      align: {
52261        type: 'string'
52262      }
52263    },
52264    supports: {
52265      anchor: true,
52266      html: false,
52267      __experimentalOnEnter: true,
52268      __experimentalOnMerge: true,
52269      typography: {
52270        fontSize: true,
52271        lineHeight: true,
52272        __experimentalFontFamily: true,
52273        __experimentalFontWeight: true,
52274        __experimentalFontStyle: true,
52275        __experimentalTextTransform: true,
52276        __experimentalTextDecoration: true,
52277        __experimentalLetterSpacing: true,
52278        __experimentalDefaultControls: {
52279          fontSize: true,
52280          fontAppearance: true
52281        }
52282      },
52283      color: {
52284        gradients: true,
52285        heading: true,
52286        link: true,
52287        __experimentalDefaultControls: {
52288          background: true,
52289          text: true
52290        }
52291      }
52292    },
52293    isEligible: ({
52294      align
52295    }) => deprecated_TEXT_ALIGN_OPTIONS.includes(align),
52296    save({
52297      attributes
52298    }) {
52299      const {
52300        align,
52301        citation
52302      } = attributes;
52303      const className = dist_clsx({
52304        [`has-text-align-$align}`]: align
52305      });
52306      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52307        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
52308          className
52309        }),
52310        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, {
52311          tagName: "cite",
52312          value: citation
52313        })]
52314      });
52315    },
52316    migrate: deprecated_migrateTextAlign
52317  };
52318  const quote_deprecated_v3 = {
52319    attributes: {
52320      value: {
52321        type: 'string',
52322        source: 'html',
52323        selector: 'blockquote',
52324        multiline: 'p',
52325        default: '',
52326        role: 'content'
52327      },
52328      citation: {
52329        type: 'string',
52330        source: 'html',
52331        selector: 'cite',
52332        default: '',
52333        role: 'content'
52334      },
52335      align: {
52336        type: 'string'
52337      }
52338    },
52339    supports: {
52340      anchor: true,
52341      __experimentalSlashInserter: true,
52342      typography: {
52343        fontSize: true,
52344        lineHeight: true,
52345        __experimentalFontStyle: true,
52346        __experimentalFontWeight: true,
52347        __experimentalLetterSpacing: true,
52348        __experimentalTextTransform: true,
52349        __experimentalDefaultControls: {
52350          fontSize: true,
52351          fontAppearance: true
52352        }
52353      }
52354    },
52355    save({
52356      attributes
52357    }) {
52358      const {
52359        align,
52360        value,
52361        citation
52362      } = attributes;
52363      const className = dist_clsx({
52364        [`has-text-align-$align}`]: align
52365      });
52366      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52367        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
52368          className
52369        }),
52370        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52371          multiline: true,
52372          value: value
52373        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52374          tagName: "cite",
52375          value: citation
52376        })]
52377      });
52378    },
52379    migrate(attributes) {
52380      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52381    }
52382  };
52383  const quote_deprecated_v2 = {
52384    attributes: {
52385      value: {
52386        type: 'string',
52387        source: 'html',
52388        selector: 'blockquote',
52389        multiline: 'p',
52390        default: ''
52391      },
52392      citation: {
52393        type: 'string',
52394        source: 'html',
52395        selector: 'cite',
52396        default: ''
52397      },
52398      align: {
52399        type: 'string'
52400      }
52401    },
52402    migrate(attributes) {
52403      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52404    },
52405    save({
52406      attributes
52407    }) {
52408      const {
52409        align,
52410        value,
52411        citation
52412      } = attributes;
52413      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52414        style: {
52415          textAlign: align ? align : null
52416        },
52417        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52418          multiline: true,
52419          value: value
52420        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52421          tagName: "cite",
52422          value: citation
52423        })]
52424      });
52425    }
52426  };
52427  const quote_deprecated_v1 = {
52428    attributes: {
52429      value: {
52430        type: 'string',
52431        source: 'html',
52432        selector: 'blockquote',
52433        multiline: 'p',
52434        default: ''
52435      },
52436      citation: {
52437        type: 'string',
52438        source: 'html',
52439        selector: 'cite',
52440        default: ''
52441      },
52442      align: {
52443        type: 'string'
52444      },
52445      style: {
52446        type: 'number',
52447        default: 1
52448      }
52449    },
52450    migrate(attributes) {
52451      if (attributes.style === 2) {
52452        const {
52453          style,
52454          ...restAttributes
52455        } = attributes;
52456        return deprecated_migrateTextAlign(...migrateLargeStyle(...migrateToQuoteV2(restAttributes)));
52457      }
52458      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52459    },
52460    save({
52461      attributes
52462    }) {
52463      const {
52464        align,
52465        value,
52466        citation,
52467        style
52468      } = attributes;
52469      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52470        className: style === 2 ? 'is-large' : '',
52471        style: {
52472          textAlign: align ? align : null
52473        },
52474        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52475          multiline: true,
52476          value: value
52477        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52478          tagName: "cite",
52479          value: citation
52480        })]
52481      });
52482    }
52483  };
52484  const quote_deprecated_v0 = {
52485    attributes: {
52486      value: {
52487        type: 'string',
52488        source: 'html',
52489        selector: 'blockquote',
52490        multiline: 'p',
52491        default: ''
52492      },
52493      citation: {
52494        type: 'string',
52495        source: 'html',
52496        selector: 'footer',
52497        default: ''
52498      },
52499      align: {
52500        type: 'string'
52501      },
52502      style: {
52503        type: 'number',
52504        default: 1
52505      }
52506    },
52507    migrate(attributes) {
52508      if (!isNaN(parseInt(attributes.style))) {
52509        const {
52510          style,
52511          ...restAttributes
52512        } = attributes;
52513        return deprecated_migrateTextAlign(...migrateToQuoteV2(restAttributes));
52514      }
52515      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52516    },
52517    save({
52518      attributes
52519    }) {
52520      const {
52521        align,
52522        value,
52523        citation,
52524        style
52525      } = attributes;
52526      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52527        className: `blocks-quote-style-$style}`,
52528        style: {
52529          textAlign: align ? align : null
52530        },
52531        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52532          multiline: true,
52533          value: value
52534        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52535          tagName: "footer",
52536          value: citation
52537        })]
52538      });
52539    }
52540  };
52541  
52542  /**
52543   * New deprecations need to be placed first
52544   * for them to have higher priority.
52545   *
52546   * Old deprecations may need to be updated as well.
52547   *
52548   * See block-deprecation.md
52549   */
52550  /* harmony default export */ const quote_deprecated = ([quote_deprecated_v4, quote_deprecated_v3, quote_deprecated_v2, quote_deprecated_v1, quote_deprecated_v0]);
52551  
52552  ;// ./node_modules/@wordpress/icons/build-module/library/verse.js
52553  /**
52554   * WordPress dependencies
52555   */
52556  
52557  
52558  const verse = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
52559    viewBox: "0 0 24 24",
52560    xmlns: "http://www.w3.org/2000/svg",
52561    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
52562      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"
52563    })
52564  });
52565  /* harmony default export */ const library_verse = (verse);
52566  
52567  ;// ./node_modules/@wordpress/block-library/build-module/quote/edit.js
52568  /**
52569   * External dependencies
52570   */
52571  
52572  
52573  /**
52574   * WordPress dependencies
52575   */
52576  
52577  
52578  
52579  
52580  
52581  
52582  
52583  
52584  /**
52585   * Internal dependencies
52586   */
52587  
52588  
52589  
52590  const edit_isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
52591  const quote_edit_TEMPLATE = [['core/paragraph', {}]];
52592  
52593  /**
52594   * At the moment, deprecations don't handle create blocks from attributes
52595   * (like when using CPT templates). For this reason, this hook is necessary
52596   * to avoid breaking templates using the old quote block format.
52597   *
52598   * @param {Object} attributes Block attributes.
52599   * @param {string} clientId   Block client ID.
52600   */
52601  const edit_useMigrateOnLoad = (attributes, clientId) => {
52602    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
52603    const {
52604      updateBlockAttributes,
52605      replaceInnerBlocks
52606    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
52607    (0,external_wp_element_namespaceObject.useEffect)(() => {
52608      // As soon as the block is loaded, migrate it to the new version.
52609  
52610      if (!attributes.value) {
52611        // No need to migrate if it doesn't have the value attribute.
52612        return;
52613      }
52614      const [newAttributes, newInnerBlocks] = migrateToQuoteV2(attributes);
52615      external_wp_deprecated_default()('Value attribute on the quote block', {
52616        since: '6.0',
52617        version: '6.5',
52618        alternative: 'inner blocks'
52619      });
52620      registry.batch(() => {
52621        updateBlockAttributes(clientId, newAttributes);
52622        replaceInnerBlocks(clientId, newInnerBlocks);
52623      });
52624    }, [attributes.value]);
52625  };
52626  function QuoteEdit({
52627    attributes,
52628    setAttributes,
52629    insertBlocksAfter,
52630    clientId,
52631    className,
52632    style,
52633    isSelected
52634  }) {
52635    const {
52636      textAlign
52637    } = attributes;
52638    edit_useMigrateOnLoad(attributes, clientId);
52639    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
52640      className: dist_clsx(className, {
52641        [`has-text-align-$textAlign}`]: textAlign
52642      }),
52643      ...(!edit_isWebPlatform && {
52644        style
52645      })
52646    });
52647    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
52648      template: quote_edit_TEMPLATE,
52649      templateInsertUpdatesSelection: true,
52650      __experimentalCaptureToolbars: true,
52651      renderAppender: false
52652    });
52653    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52654      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
52655        group: "block",
52656        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
52657          value: textAlign,
52658          onChange: nextAlign => {
52659            setAttributes({
52660              textAlign: nextAlign
52661            });
52662          }
52663        })
52664      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.BlockQuotation, {
52665        ...innerBlocksProps,
52666        children: [innerBlocksProps.children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
52667          attributeKey: "citation",
52668          tagName: edit_isWebPlatform ? 'cite' : 'p',
52669          style: edit_isWebPlatform && {
52670            display: 'block'
52671          },
52672          isSelected: isSelected,
52673          attributes: attributes,
52674          setAttributes: setAttributes,
52675          __unstableMobileNoFocusOnMount: true,
52676          icon: library_verse,
52677          label: (0,external_wp_i18n_namespaceObject.__)('Quote citation'),
52678          placeholder:
52679          // translators: placeholder text used for the
52680          // citation
52681          (0,external_wp_i18n_namespaceObject.__)('Add citation'),
52682          addLabel: (0,external_wp_i18n_namespaceObject.__)('Add citation'),
52683          removeLabel: (0,external_wp_i18n_namespaceObject.__)('Remove citation'),
52684          excludeElementClassName: true,
52685          className: "wp-block-quote__citation",
52686          insertBlocksAfter: insertBlocksAfter,
52687          ...(!edit_isWebPlatform ? {
52688            textAlign
52689          } : {})
52690        })]
52691      })]
52692    });
52693  }
52694  
52695  ;// ./node_modules/@wordpress/block-library/build-module/quote/save.js
52696  /**
52697   * External dependencies
52698   */
52699  
52700  
52701  /**
52702   * WordPress dependencies
52703   */
52704  
52705  
52706  function quote_save_save({
52707    attributes
52708  }) {
52709    const {
52710      textAlign,
52711      citation
52712    } = attributes;
52713    const className = dist_clsx({
52714      [`has-text-align-$textAlign}`]: textAlign
52715    });
52716    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52717      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
52718        className
52719      }),
52720      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, {
52721        tagName: "cite",
52722        value: citation
52723      })]
52724    });
52725  }
52726  
52727  ;// ./node_modules/@wordpress/block-library/build-module/quote/transforms.js
52728  /**
52729   * WordPress dependencies
52730   */
52731  
52732  
52733  const quote_transforms_transforms = {
52734    from: [{
52735      type: 'block',
52736      blocks: ['core/pullquote'],
52737      transform: ({
52738        value,
52739        align,
52740        citation,
52741        anchor,
52742        fontSize,
52743        style
52744      }) => {
52745        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
52746          align,
52747          citation,
52748          anchor,
52749          fontSize,
52750          style
52751        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52752          content: value
52753        })]);
52754      }
52755    }, {
52756      type: 'prefix',
52757      prefix: '>',
52758      transform: content => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52759        content
52760      })])
52761    }, {
52762      type: 'raw',
52763      schema: () => ({
52764        blockquote: {
52765          children: '*'
52766        }
52767      }),
52768      selector: 'blockquote',
52769      transform: (node, handler) => {
52770        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote',
52771        // Don't try to parse any `cite` out of this content.
52772        // * There may be more than one cite.
52773        // * There may be more attribution text than just the cite.
52774        // * If the cite is nested in the quoted text, it's wrong to
52775        //   remove it.
52776        {}, handler({
52777          HTML: node.innerHTML,
52778          mode: 'BLOCKS'
52779        }));
52780      }
52781    }, {
52782      type: 'block',
52783      isMultiBlock: true,
52784      blocks: ['*'],
52785      isMatch: ({}, blocks) => {
52786        // When a single block is selected make the transformation
52787        // available only to specific blocks that make sense.
52788        if (blocks.length === 1) {
52789          return ['core/paragraph', 'core/heading', 'core/list', 'core/pullquote'].includes(blocks[0].name);
52790        }
52791        return !blocks.some(({
52792          name
52793        }) => name === 'core/quote');
52794      },
52795      __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)))
52796    }],
52797    to: [{
52798      type: 'block',
52799      blocks: ['core/pullquote'],
52800      isMatch: ({}, block) => {
52801        return block.innerBlocks.every(({
52802          name
52803        }) => name === 'core/paragraph');
52804      },
52805      transform: ({
52806        align,
52807        citation,
52808        anchor,
52809        fontSize,
52810        style
52811      }, innerBlocks) => {
52812        const value = innerBlocks.map(({
52813          attributes
52814        }) => `$attributes.content}`).join('<br>');
52815        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
52816          value,
52817          align,
52818          citation,
52819          anchor,
52820          fontSize,
52821          style
52822        });
52823      }
52824    }, {
52825      type: 'block',
52826      blocks: ['core/paragraph'],
52827      transform: ({
52828        citation
52829      }, innerBlocks) => external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52830        content: citation
52831      })]
52832    }, {
52833      type: 'block',
52834      blocks: ['core/group'],
52835      transform: ({
52836        citation,
52837        anchor
52838      }, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
52839        anchor
52840      }, external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52841        content: citation
52842      })])
52843    }],
52844    ungroup: ({
52845      citation
52846    }, innerBlocks) => external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52847      content: citation
52848    })]
52849  };
52850  /* harmony default export */ const quote_transforms = (quote_transforms_transforms);
52851  
52852  ;// ./node_modules/@wordpress/block-library/build-module/quote/index.js
52853  /**
52854   * WordPress dependencies
52855   */
52856  
52857  
52858  
52859  /**
52860   * Internal dependencies
52861   */
52862  
52863  
52864  
52865  const quote_metadata = {
52866    $schema: "https://schemas.wp.org/trunk/block.json",
52867    apiVersion: 3,
52868    name: "core/quote",
52869    title: "Quote",
52870    category: "text",
52871    description: "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" \u2014 Julio Cort\xE1zar",
52872    keywords: ["blockquote", "cite"],
52873    textdomain: "default",
52874    attributes: {
52875      value: {
52876        type: "string",
52877        source: "html",
52878        selector: "blockquote",
52879        multiline: "p",
52880        "default": "",
52881        role: "content"
52882      },
52883      citation: {
52884        type: "rich-text",
52885        source: "rich-text",
52886        selector: "cite",
52887        role: "content"
52888      },
52889      textAlign: {
52890        type: "string"
52891      }
52892    },
52893    supports: {
52894      anchor: true,
52895      align: ["left", "right", "wide", "full"],
52896      html: false,
52897      background: {
52898        backgroundImage: true,
52899        backgroundSize: true,
52900        __experimentalDefaultControls: {
52901          backgroundImage: true
52902        }
52903      },
52904      __experimentalBorder: {
52905        color: true,
52906        radius: true,
52907        style: true,
52908        width: true,
52909        __experimentalDefaultControls: {
52910          color: true,
52911          radius: true,
52912          style: true,
52913          width: true
52914        }
52915      },
52916      dimensions: {
52917        minHeight: true,
52918        __experimentalDefaultControls: {
52919          minHeight: false
52920        }
52921      },
52922      __experimentalOnEnter: true,
52923      __experimentalOnMerge: true,
52924      typography: {
52925        fontSize: true,
52926        lineHeight: true,
52927        __experimentalFontFamily: true,
52928        __experimentalFontWeight: true,
52929        __experimentalFontStyle: true,
52930        __experimentalTextTransform: true,
52931        __experimentalTextDecoration: true,
52932        __experimentalLetterSpacing: true,
52933        __experimentalDefaultControls: {
52934          fontSize: true
52935        }
52936      },
52937      color: {
52938        gradients: true,
52939        heading: true,
52940        link: true,
52941        __experimentalDefaultControls: {
52942          background: true,
52943          text: true
52944        }
52945      },
52946      layout: {
52947        allowEditing: false
52948      },
52949      spacing: {
52950        blockGap: true,
52951        padding: true,
52952        margin: true
52953      },
52954      interactivity: {
52955        clientNavigation: true
52956      }
52957    },
52958    styles: [{
52959      name: "default",
52960      label: "Default",
52961      isDefault: true
52962    }, {
52963      name: "plain",
52964      label: "Plain"
52965    }],
52966    editorStyle: "wp-block-quote-editor",
52967    style: "wp-block-quote"
52968  };
52969  
52970  
52971  const {
52972    name: quote_name
52973  } = quote_metadata;
52974  
52975  const quote_settings = {
52976    icon: library_quote,
52977    example: {
52978      attributes: {
52979        citation: 'Julio Cortázar'
52980      },
52981      innerBlocks: [{
52982        name: 'core/paragraph',
52983        attributes: {
52984          content: (0,external_wp_i18n_namespaceObject.__)('In quoting others, we cite ourselves.')
52985        }
52986      }]
52987    },
52988    transforms: quote_transforms,
52989    edit: QuoteEdit,
52990    save: quote_save_save,
52991    deprecated: quote_deprecated
52992  };
52993  const quote_init = () => initBlock({
52994    name: quote_name,
52995    metadata: quote_metadata,
52996    settings: quote_settings
52997  });
52998  
52999  ;// ./node_modules/@wordpress/icons/build-module/library/symbol.js
53000  /**
53001   * WordPress dependencies
53002   */
53003  
53004  
53005  const symbol = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53006    xmlns: "http://www.w3.org/2000/svg",
53007    viewBox: "0 0 24 24",
53008    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53009      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"
53010    })
53011  });
53012  /* harmony default export */ const library_symbol = (symbol);
53013  
53014  ;// external ["wp","patterns"]
53015  const external_wp_patterns_namespaceObject = window["wp"]["patterns"];
53016  ;// ./node_modules/@wordpress/block-library/build-module/block/edit.js
53017  /**
53018   * External dependencies
53019   */
53020  
53021  
53022  /**
53023   * WordPress dependencies
53024   */
53025  
53026  
53027  
53028  
53029  
53030  
53031  
53032  
53033  
53034  /**
53035   * Internal dependencies
53036   */
53037  
53038  
53039  const {
53040    useLayoutClasses
53041  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
53042  const {
53043    hasOverridableBlocks
53044  } = unlock(external_wp_patterns_namespaceObject.privateApis);
53045  const fullAlignments = ['full', 'wide', 'left', 'right'];
53046  const useInferredLayout = (blocks, parentLayout) => {
53047    const initialInferredAlignmentRef = (0,external_wp_element_namespaceObject.useRef)();
53048    return (0,external_wp_element_namespaceObject.useMemo)(() => {
53049      // Exit early if the pattern's blocks haven't loaded yet.
53050      if (!blocks?.length) {
53051        return {};
53052      }
53053      let alignment = initialInferredAlignmentRef.current;
53054  
53055      // Only track the initial alignment so that temporarily removed
53056      // alignments can be reapplied.
53057      if (alignment === undefined) {
53058        const isConstrained = parentLayout?.type === 'constrained';
53059        const hasFullAlignment = blocks.some(block => fullAlignments.includes(block.attributes.align));
53060        alignment = isConstrained && hasFullAlignment ? 'full' : null;
53061        initialInferredAlignmentRef.current = alignment;
53062      }
53063      const layout = alignment ? parentLayout : undefined;
53064      return {
53065        alignment,
53066        layout
53067      };
53068    }, [blocks, parentLayout]);
53069  };
53070  function RecursionWarning() {
53071    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
53072    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53073      ...blockProps,
53074      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
53075        children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
53076      })
53077    });
53078  }
53079  const edit_NOOP = () => {};
53080  
53081  // Wrap the main Edit function for the pattern block with a recursion wrapper
53082  // that allows short-circuiting rendering as early as possible, before any
53083  // of the other effects in the block edit have run.
53084  function ReusableBlockEditRecursionWrapper(props) {
53085    const {
53086      ref
53087    } = props.attributes;
53088    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(ref);
53089    if (hasAlreadyRendered) {
53090      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionWarning, {});
53091    }
53092    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
53093      uniqueId: ref,
53094      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReusableBlockEdit, {
53095        ...props
53096      })
53097    });
53098  }
53099  function ReusableBlockControl({
53100    recordId,
53101    canOverrideBlocks,
53102    hasContent,
53103    handleEditOriginal,
53104    resetContent
53105  }) {
53106    const canUserEdit = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_coreData_namespaceObject.store).canUser('update', {
53107      kind: 'postType',
53108      name: 'wp_block',
53109      id: recordId
53110    }), [recordId]);
53111    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53112      children: [canUserEdit && !!handleEditOriginal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53113        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
53114          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
53115            onClick: handleEditOriginal,
53116            children: (0,external_wp_i18n_namespaceObject.__)('Edit original')
53117          })
53118        })
53119      }), canOverrideBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53120        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
53121          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
53122            onClick: resetContent,
53123            disabled: !hasContent,
53124            children: (0,external_wp_i18n_namespaceObject.__)('Reset')
53125          })
53126        })
53127      })]
53128    });
53129  }
53130  function ReusableBlockEdit({
53131    name,
53132    attributes: {
53133      ref,
53134      content
53135    },
53136    __unstableParentLayout: parentLayout,
53137    setAttributes
53138  }) {
53139    const {
53140      record,
53141      hasResolved
53142    } = (0,external_wp_coreData_namespaceObject.useEntityRecord)('postType', 'wp_block', ref);
53143    const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_block', {
53144      id: ref
53145    });
53146    const isMissing = hasResolved && !record;
53147    const {
53148      __unstableMarkLastChangeAsPersistent
53149    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
53150    const {
53151      onNavigateToEntityRecord,
53152      hasPatternOverridesSource
53153    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
53154      const {
53155        getSettings
53156      } = select(external_wp_blockEditor_namespaceObject.store);
53157      // For editing link to the site editor if the theme and user permissions support it.
53158      return {
53159        onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
53160        hasPatternOverridesSource: !!(0,external_wp_blocks_namespaceObject.getBlockBindingsSource)('core/pattern-overrides')
53161      };
53162    }, []);
53163    const canOverrideBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => hasPatternOverridesSource && hasOverridableBlocks(blocks), [hasPatternOverridesSource, blocks]);
53164    const {
53165      alignment,
53166      layout
53167    } = useInferredLayout(blocks, parentLayout);
53168    const layoutClasses = useLayoutClasses({
53169      layout
53170    }, name);
53171    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
53172      className: dist_clsx('block-library-block__reusable-block-container', layout && layoutClasses, {
53173        [`align$alignment}`]: alignment
53174      })
53175    });
53176    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
53177      layout,
53178      value: blocks,
53179      onInput: edit_NOOP,
53180      onChange: edit_NOOP,
53181      renderAppender: blocks?.length ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
53182    });
53183    const handleEditOriginal = () => {
53184      onNavigateToEntityRecord({
53185        postId: ref,
53186        postType: 'wp_block'
53187      });
53188    };
53189    const resetContent = () => {
53190      if (content) {
53191        // Make sure any previous changes are persisted before resetting.
53192        __unstableMarkLastChangeAsPersistent();
53193        setAttributes({
53194          content: undefined
53195        });
53196      }
53197    };
53198    let children = null;
53199    if (isMissing) {
53200      children = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
53201        children: (0,external_wp_i18n_namespaceObject.__)('Block has been deleted or is unavailable.')
53202      });
53203    }
53204    if (!hasResolved) {
53205      children = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53206        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
53207      });
53208    }
53209    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53210      children: [hasResolved && !isMissing && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReusableBlockControl, {
53211        recordId: ref,
53212        canOverrideBlocks: canOverrideBlocks,
53213        hasContent: !!content,
53214        handleEditOriginal: onNavigateToEntityRecord ? handleEditOriginal : undefined,
53215        resetContent: resetContent
53216      }), children === null ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53217        ...innerBlocksProps
53218      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53219        ...blockProps,
53220        children: children
53221      })]
53222    });
53223  }
53224  
53225  ;// ./node_modules/@wordpress/block-library/build-module/block/deprecated.js
53226  const isObject = obj => typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
53227  
53228  // v2: Migrate to a more condensed version of the 'content' attribute attribute.
53229  const block_deprecated_v2 = {
53230    attributes: {
53231      ref: {
53232        type: 'number'
53233      },
53234      content: {
53235        type: 'object'
53236      }
53237    },
53238    supports: {
53239      customClassName: false,
53240      html: false,
53241      inserter: false,
53242      renaming: false
53243    },
53244    // Force this deprecation to run whenever there's a values sub-property that's an object.
53245    //
53246    // This could fail in the future if a block ever has binding to a `values` attribute.
53247    // Some extra protection is added to ensure `values` is an object, but this only reduces
53248    // the likelihood, it doesn't solve it completely.
53249    isEligible({
53250      content
53251    }) {
53252      return !!content && Object.keys(content).every(contentKey => content[contentKey].values && isObject(content[contentKey].values));
53253    },
53254    /*
53255     * Old attribute format:
53256     * content: {
53257     *     "V98q_x": {
53258     *                // The attribute values are now stored as a 'values' sub-property.
53259     *         values: { content: 'My content value' },
53260     *            // ... additional metadata, like the block name can be stored here.
53261     *     }
53262     * }
53263     *
53264     * New attribute format:
53265     * content: {
53266     *     "V98q_x": {
53267     *         content: 'My content value',
53268     *     }
53269     * }
53270     */
53271    migrate(attributes) {
53272      const {
53273        content,
53274        ...retainedAttributes
53275      } = attributes;
53276      if (content && Object.keys(content).length) {
53277        const updatedContent = {
53278          ...content
53279        };
53280        for (const contentKey in content) {
53281          updatedContent[contentKey] = content[contentKey].values;
53282        }
53283        return {
53284          ...retainedAttributes,
53285          content: updatedContent
53286        };
53287      }
53288      return attributes;
53289    }
53290  };
53291  
53292  // v1: Rename the `overrides` attribute to the `content` attribute.
53293  const block_deprecated_v1 = {
53294    attributes: {
53295      ref: {
53296        type: 'number'
53297      },
53298      overrides: {
53299        type: 'object'
53300      }
53301    },
53302    supports: {
53303      customClassName: false,
53304      html: false,
53305      inserter: false,
53306      renaming: false
53307    },
53308    // Force this deprecation to run whenever there's an `overrides` object.
53309    isEligible({
53310      overrides
53311    }) {
53312      return !!overrides;
53313    },
53314    /*
53315     * Old attribute format:
53316     * overrides: {
53317     *     // An key is an id that represents a block.
53318     *     // The values are the attribute values of the block.
53319     *     "V98q_x": { content: 'My content value' }
53320     * }
53321     *
53322     * New attribute format:
53323     * content: {
53324     *     "V98q_x": { content: 'My content value' }
53325     * }
53326     *
53327     */
53328    migrate(attributes) {
53329      const {
53330        overrides,
53331        ...retainedAttributes
53332      } = attributes;
53333      const content = {};
53334      Object.keys(overrides).forEach(id => {
53335        content[id] = overrides[id];
53336      });
53337      return {
53338        ...retainedAttributes,
53339        content
53340      };
53341    }
53342  };
53343  /* harmony default export */ const block_deprecated = ([block_deprecated_v2, block_deprecated_v1]);
53344  
53345  ;// ./node_modules/@wordpress/block-library/build-module/block/index.js
53346  /**
53347   * WordPress dependencies
53348   */
53349  
53350  
53351  
53352  
53353  
53354  /**
53355   * Internal dependencies
53356   */
53357  
53358  const block_metadata = {
53359    $schema: "https://schemas.wp.org/trunk/block.json",
53360    apiVersion: 3,
53361    name: "core/block",
53362    title: "Pattern",
53363    category: "reusable",
53364    description: "Reuse this design across your site.",
53365    keywords: ["reusable"],
53366    textdomain: "default",
53367    attributes: {
53368      ref: {
53369        type: "number"
53370      },
53371      content: {
53372        type: "object",
53373        "default": {}
53374      }
53375    },
53376    providesContext: {
53377      "pattern/overrides": "content"
53378    },
53379    supports: {
53380      customClassName: false,
53381      html: false,
53382      inserter: false,
53383      renaming: false,
53384      interactivity: {
53385        clientNavigation: true
53386      }
53387    }
53388  };
53389  
53390  
53391  const {
53392    name: block_name
53393  } = block_metadata;
53394  
53395  const block_settings = {
53396    deprecated: block_deprecated,
53397    edit: ReusableBlockEditRecursionWrapper,
53398    icon: library_symbol,
53399    __experimentalLabel: ({
53400      ref
53401    }) => {
53402      if (!ref) {
53403        return;
53404      }
53405      const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_block', ref);
53406      if (!entity?.title) {
53407        return;
53408      }
53409      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entity.title);
53410    }
53411  };
53412  const block_init = () => initBlock({
53413    name: block_name,
53414    metadata: block_metadata,
53415    settings: block_settings
53416  });
53417  
53418  ;// ./node_modules/@wordpress/block-library/build-module/read-more/edit.js
53419  /**
53420   * WordPress dependencies
53421   */
53422  
53423  
53424  
53425  
53426  
53427  /**
53428   * Internal dependencies
53429   */
53430  
53431  
53432  function ReadMore({
53433    attributes: {
53434      content,
53435      linkTarget
53436    },
53437    setAttributes,
53438    insertBlocksAfter
53439  }) {
53440    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
53441    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
53442    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53443      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
53444        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
53445          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
53446          resetAll: () => setAttributes({
53447            linkTarget: '_self'
53448          }),
53449          dropdownMenuProps: dropdownMenuProps,
53450          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
53451            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
53452            isShownByDefault: true,
53453            hasValue: () => linkTarget !== '_self',
53454            onDeselect: () => setAttributes({
53455              linkTarget: '_self'
53456            }),
53457            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53458              __nextHasNoMarginBottom: true,
53459              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
53460              onChange: value => setAttributes({
53461                linkTarget: value ? '_blank' : '_self'
53462              }),
53463              checked: linkTarget === '_blank'
53464            })
53465          })
53466        })
53467      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
53468        identifier: "content",
53469        tagName: "a",
53470        "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
53471        placeholder: (0,external_wp_i18n_namespaceObject.__)('Read more'),
53472        value: content,
53473        onChange: newValue => setAttributes({
53474          content: newValue
53475        }),
53476        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
53477        withoutInteractiveFormatting: true,
53478        ...blockProps
53479      })]
53480    });
53481  }
53482  
53483  ;// ./node_modules/@wordpress/block-library/build-module/read-more/index.js
53484  /**
53485   * WordPress dependencies
53486   */
53487  
53488  
53489  
53490  /**
53491   * Internal dependencies
53492   */
53493  
53494  const read_more_metadata = {
53495    $schema: "https://schemas.wp.org/trunk/block.json",
53496    apiVersion: 3,
53497    name: "core/read-more",
53498    title: "Read More",
53499    category: "theme",
53500    description: "Displays the link of a post, page, or any other content-type.",
53501    textdomain: "default",
53502    attributes: {
53503      content: {
53504        type: "string"
53505      },
53506      linkTarget: {
53507        type: "string",
53508        "default": "_self"
53509      }
53510    },
53511    usesContext: ["postId"],
53512    supports: {
53513      html: false,
53514      color: {
53515        gradients: true,
53516        text: true
53517      },
53518      typography: {
53519        fontSize: true,
53520        lineHeight: true,
53521        __experimentalFontFamily: true,
53522        __experimentalFontWeight: true,
53523        __experimentalFontStyle: true,
53524        __experimentalTextTransform: true,
53525        __experimentalLetterSpacing: true,
53526        __experimentalTextDecoration: true,
53527        __experimentalDefaultControls: {
53528          fontSize: true,
53529          textDecoration: true
53530        }
53531      },
53532      spacing: {
53533        margin: ["top", "bottom"],
53534        padding: true,
53535        __experimentalDefaultControls: {
53536          padding: true
53537        }
53538      },
53539      __experimentalBorder: {
53540        color: true,
53541        radius: true,
53542        width: true,
53543        __experimentalDefaultControls: {
53544          width: true
53545        }
53546      },
53547      interactivity: {
53548        clientNavigation: true
53549      }
53550    },
53551    style: "wp-block-read-more"
53552  };
53553  
53554  const {
53555    name: read_more_name
53556  } = read_more_metadata;
53557  
53558  const read_more_settings = {
53559    icon: library_link,
53560    edit: ReadMore,
53561    example: {
53562      attributes: {
53563        content: (0,external_wp_i18n_namespaceObject.__)('Read more')
53564      }
53565    }
53566  };
53567  const read_more_init = () => initBlock({
53568    name: read_more_name,
53569    metadata: read_more_metadata,
53570    settings: read_more_settings
53571  });
53572  
53573  ;// ./node_modules/@wordpress/icons/build-module/library/rss.js
53574  /**
53575   * WordPress dependencies
53576   */
53577  
53578  
53579  const rss = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53580    xmlns: "http://www.w3.org/2000/svg",
53581    viewBox: "0 0 24 24",
53582    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53583      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"
53584    })
53585  });
53586  /* harmony default export */ const library_rss = (rss);
53587  
53588  ;// ./node_modules/@wordpress/block-library/build-module/rss/edit.js
53589  /**
53590   * WordPress dependencies
53591   */
53592  
53593  
53594  
53595  
53596  
53597  
53598  
53599  
53600  const DEFAULT_MIN_ITEMS = 1;
53601  const DEFAULT_MAX_ITEMS = 20;
53602  function RSSEdit({
53603    attributes,
53604    setAttributes
53605  }) {
53606    const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(!attributes.feedURL);
53607    const {
53608      blockLayout,
53609      columns,
53610      displayAuthor,
53611      displayDate,
53612      displayExcerpt,
53613      excerptLength,
53614      feedURL,
53615      itemsToShow
53616    } = attributes;
53617    function toggleAttribute(propName) {
53618      return () => {
53619        const value = attributes[propName];
53620        setAttributes({
53621          [propName]: !value
53622        });
53623      };
53624    }
53625    function onSubmitURL(event) {
53626      event.preventDefault();
53627      if (feedURL) {
53628        setAttributes({
53629          feedURL: (0,external_wp_url_namespaceObject.prependHTTP)(feedURL)
53630        });
53631        setIsEditing(false);
53632      }
53633    }
53634    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
53635    const label = (0,external_wp_i18n_namespaceObject.__)('RSS URL');
53636    if (isEditing) {
53637      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53638        ...blockProps,
53639        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53640          icon: library_rss,
53641          label: label,
53642          instructions: (0,external_wp_i18n_namespaceObject.__)('Display entries from any RSS or Atom feed.'),
53643          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
53644            onSubmit: onSubmitURL,
53645            className: "wp-block-rss__placeholder-form",
53646            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
53647              __next40pxDefaultSize: true,
53648              label: label,
53649              type: "url",
53650              hideLabelFromVision: true,
53651              placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL here…'),
53652              value: feedURL,
53653              onChange: value => setAttributes({
53654                feedURL: value
53655              }),
53656              className: "wp-block-rss__placeholder-input"
53657            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
53658              __next40pxDefaultSize: true,
53659              variant: "primary",
53660              type: "submit",
53661              children: (0,external_wp_i18n_namespaceObject.__)('Apply')
53662            })]
53663          })
53664        })
53665      });
53666    }
53667    const toolbarControls = [{
53668      icon: library_edit,
53669      title: (0,external_wp_i18n_namespaceObject.__)('Edit RSS URL'),
53670      onClick: () => setIsEditing(true)
53671    }, {
53672      icon: library_list,
53673      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'RSS block display setting'),
53674      onClick: () => setAttributes({
53675        blockLayout: 'list'
53676      }),
53677      isActive: blockLayout === 'list'
53678    }, {
53679      icon: library_grid,
53680      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'RSS block display setting'),
53681      onClick: () => setAttributes({
53682        blockLayout: 'grid'
53683      }),
53684      isActive: blockLayout === 'grid'
53685    }];
53686  
53687    /*
53688     * This function merges the existing attributes with additional style properties.
53689     * The `border` and `spacing` properties are set to `undefined` to ensure that
53690     * these styles are reset and not applied on the server side.
53691     */
53692    const serverSideAttributes = {
53693      ...attributes,
53694      style: {
53695        ...attributes?.style,
53696        border: undefined,
53697        spacing: undefined
53698      }
53699    };
53700    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53701      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53702        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
53703          controls: toolbarControls
53704        })
53705      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
53706        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
53707          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
53708          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53709            __nextHasNoMarginBottom: true,
53710            __next40pxDefaultSize: true,
53711            label: (0,external_wp_i18n_namespaceObject.__)('Number of items'),
53712            value: itemsToShow,
53713            onChange: value => setAttributes({
53714              itemsToShow: value
53715            }),
53716            min: DEFAULT_MIN_ITEMS,
53717            max: DEFAULT_MAX_ITEMS,
53718            required: true
53719          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53720            __nextHasNoMarginBottom: true,
53721            label: (0,external_wp_i18n_namespaceObject.__)('Display author'),
53722            checked: displayAuthor,
53723            onChange: toggleAttribute('displayAuthor')
53724          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53725            __nextHasNoMarginBottom: true,
53726            label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
53727            checked: displayDate,
53728            onChange: toggleAttribute('displayDate')
53729          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53730            __nextHasNoMarginBottom: true,
53731            label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
53732            checked: displayExcerpt,
53733            onChange: toggleAttribute('displayExcerpt')
53734          }), displayExcerpt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53735            __nextHasNoMarginBottom: true,
53736            __next40pxDefaultSize: true,
53737            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
53738            value: excerptLength,
53739            onChange: value => setAttributes({
53740              excerptLength: value
53741            }),
53742            min: 10,
53743            max: 100,
53744            required: true
53745          }), blockLayout === 'grid' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53746            __nextHasNoMarginBottom: true,
53747            __next40pxDefaultSize: true,
53748            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
53749            value: columns,
53750            onChange: value => setAttributes({
53751              columns: value
53752            }),
53753            min: 2,
53754            max: 6,
53755            required: true
53756          })]
53757        })
53758      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53759        ...blockProps,
53760        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
53761          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
53762            block: "core/rss",
53763            attributes: serverSideAttributes
53764          })
53765        })
53766      })]
53767    });
53768  }
53769  
53770  ;// ./node_modules/@wordpress/block-library/build-module/rss/index.js
53771  /**
53772   * WordPress dependencies
53773   */
53774  
53775  
53776  /**
53777   * Internal dependencies
53778   */
53779  
53780  const rss_metadata = {
53781    $schema: "https://schemas.wp.org/trunk/block.json",
53782    apiVersion: 3,
53783    name: "core/rss",
53784    title: "RSS",
53785    category: "widgets",
53786    description: "Display entries from any RSS or Atom feed.",
53787    keywords: ["atom", "feed"],
53788    textdomain: "default",
53789    attributes: {
53790      columns: {
53791        type: "number",
53792        "default": 2
53793      },
53794      blockLayout: {
53795        type: "string",
53796        "default": "list"
53797      },
53798      feedURL: {
53799        type: "string",
53800        "default": ""
53801      },
53802      itemsToShow: {
53803        type: "number",
53804        "default": 5
53805      },
53806      displayExcerpt: {
53807        type: "boolean",
53808        "default": false
53809      },
53810      displayAuthor: {
53811        type: "boolean",
53812        "default": false
53813      },
53814      displayDate: {
53815        type: "boolean",
53816        "default": false
53817      },
53818      excerptLength: {
53819        type: "number",
53820        "default": 55
53821      }
53822    },
53823    supports: {
53824      align: true,
53825      html: false,
53826      interactivity: {
53827        clientNavigation: true
53828      },
53829      __experimentalBorder: {
53830        radius: true,
53831        color: true,
53832        width: true,
53833        style: true
53834      },
53835      spacing: {
53836        margin: true,
53837        padding: true,
53838        __experimentalDefaultControls: {
53839          padding: false,
53840          margin: false
53841        }
53842      },
53843      color: {
53844        background: true,
53845        text: true,
53846        gradients: true,
53847        link: true
53848      }
53849    },
53850    editorStyle: "wp-block-rss-editor",
53851    style: "wp-block-rss"
53852  };
53853  
53854  const {
53855    name: rss_name
53856  } = rss_metadata;
53857  
53858  const rss_settings = {
53859    icon: library_rss,
53860    example: {
53861      attributes: {
53862        feedURL: 'https://wordpress.org'
53863      }
53864    },
53865    edit: RSSEdit
53866  };
53867  const rss_init = () => initBlock({
53868    name: rss_name,
53869    metadata: rss_metadata,
53870    settings: rss_settings
53871  });
53872  
53873  ;// ./node_modules/@wordpress/icons/build-module/library/search.js
53874  /**
53875   * WordPress dependencies
53876   */
53877  
53878  
53879  const search = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53880    xmlns: "http://www.w3.org/2000/svg",
53881    viewBox: "0 0 24 24",
53882    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53883      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"
53884    })
53885  });
53886  /* harmony default export */ const library_search = (search);
53887  
53888  ;// ./node_modules/@wordpress/block-library/build-module/search/icons.js
53889  /**
53890   * WordPress dependencies
53891   */
53892  
53893  
53894  const buttonOnly = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
53895    xmlns: "http://www.w3.org/2000/svg",
53896    viewBox: "0 0 24 24",
53897    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53898      x: "7",
53899      y: "10",
53900      width: "10",
53901      height: "4",
53902      rx: "1",
53903      fill: "currentColor"
53904    })
53905  });
53906  const buttonOutside = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53907    xmlns: "http://www.w3.org/2000/svg",
53908    viewBox: "0 0 24 24",
53909    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53910      x: "4.75",
53911      y: "15.25",
53912      width: "6.5",
53913      height: "9.5",
53914      transform: "rotate(-90 4.75 15.25)",
53915      stroke: "currentColor",
53916      strokeWidth: "1.5",
53917      fill: "none"
53918    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53919      x: "16",
53920      y: "10",
53921      width: "4",
53922      height: "4",
53923      rx: "1",
53924      fill: "currentColor"
53925    })]
53926  });
53927  const buttonInside = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53928    xmlns: "http://www.w3.org/2000/svg",
53929    viewBox: "0 0 24 24",
53930    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53931      x: "4.75",
53932      y: "15.25",
53933      width: "6.5",
53934      height: "14.5",
53935      transform: "rotate(-90 4.75 15.25)",
53936      stroke: "currentColor",
53937      strokeWidth: "1.5",
53938      fill: "none"
53939    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53940      x: "14",
53941      y: "10",
53942      width: "4",
53943      height: "4",
53944      rx: "1",
53945      fill: "currentColor"
53946    })]
53947  });
53948  const noButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
53949    xmlns: "http://www.w3.org/2000/svg",
53950    viewBox: "0 0 24 24",
53951    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53952      x: "4.75",
53953      y: "15.25",
53954      width: "6.5",
53955      height: "14.5",
53956      transform: "rotate(-90 4.75 15.25)",
53957      stroke: "currentColor",
53958      fill: "none",
53959      strokeWidth: "1.5"
53960    })
53961  });
53962  const buttonWithIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53963    xmlns: "http://www.w3.org/2000/svg",
53964    viewBox: "0 0 24 24",
53965    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53966      x: "4.75",
53967      y: "7.75",
53968      width: "14.5",
53969      height: "8.5",
53970      rx: "1.25",
53971      stroke: "currentColor",
53972      fill: "none",
53973      strokeWidth: "1.5"
53974    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53975      x: "8",
53976      y: "11",
53977      width: "8",
53978      height: "2",
53979      fill: "currentColor"
53980    })]
53981  });
53982  const toggleLabel = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53983    xmlns: "http://www.w3.org/2000/svg",
53984    viewBox: "0 0 24 24",
53985    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53986      x: "4.75",
53987      y: "17.25",
53988      width: "5.5",
53989      height: "14.5",
53990      transform: "rotate(-90 4.75 17.25)",
53991      stroke: "currentColor",
53992      fill: "none",
53993      strokeWidth: "1.5"
53994    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53995      x: "4",
53996      y: "7",
53997      width: "10",
53998      height: "2",
53999      fill: "currentColor"
54000    })]
54001  });
54002  
54003  ;// ./node_modules/@wordpress/block-library/build-module/search/utils.js
54004  /**
54005   * Constants
54006   */
54007  const PC_WIDTH_DEFAULT = 50;
54008  const PX_WIDTH_DEFAULT = 350;
54009  const MIN_WIDTH = 220;
54010  
54011  /**
54012   * Returns a boolean whether passed unit is percentage
54013   *
54014   * @param {string} unit Block width unit.
54015   *
54016   * @return {boolean}     Whether unit is '%'.
54017   */
54018  function utils_isPercentageUnit(unit) {
54019    return unit === '%';
54020  }
54021  
54022  ;// ./node_modules/@wordpress/block-library/build-module/search/edit.js
54023  /**
54024   * External dependencies
54025   */
54026  
54027  
54028  /**
54029   * WordPress dependencies
54030   */
54031  
54032  
54033  
54034  
54035  
54036  
54037  
54038  
54039  
54040  /**
54041   * Internal dependencies
54042   */
54043  
54044  
54045  
54046  
54047  // Used to calculate border radius adjustment to avoid "fat" corners when
54048  // button is placed inside wrapper.
54049  
54050  const DEFAULT_INNER_PADDING = '4px';
54051  const PERCENTAGE_WIDTHS = [25, 50, 75, 100];
54052  function SearchEdit({
54053    className,
54054    attributes,
54055    setAttributes,
54056    toggleSelection,
54057    isSelected,
54058    clientId
54059  }) {
54060    const {
54061      label,
54062      showLabel,
54063      placeholder,
54064      width,
54065      widthUnit,
54066      align,
54067      buttonText,
54068      buttonPosition,
54069      buttonUseIcon,
54070      isSearchFieldHidden,
54071      style
54072    } = attributes;
54073    const wasJustInsertedIntoNavigationBlock = (0,external_wp_data_namespaceObject.useSelect)(select => {
54074      const {
54075        getBlockParentsByBlockName,
54076        wasBlockJustInserted
54077      } = select(external_wp_blockEditor_namespaceObject.store);
54078      return !!getBlockParentsByBlockName(clientId, 'core/navigation')?.length && wasBlockJustInserted(clientId);
54079    }, [clientId]);
54080    const {
54081      __unstableMarkNextChangeAsNotPersistent
54082    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
54083    (0,external_wp_element_namespaceObject.useEffect)(() => {
54084      if (wasJustInsertedIntoNavigationBlock) {
54085        // This side-effect should not create an undo level.
54086        __unstableMarkNextChangeAsNotPersistent();
54087        setAttributes({
54088          showLabel: false,
54089          buttonUseIcon: true,
54090          buttonPosition: 'button-inside'
54091        });
54092      }
54093    }, [__unstableMarkNextChangeAsNotPersistent, wasJustInsertedIntoNavigationBlock, setAttributes]);
54094    const borderRadius = style?.border?.radius;
54095    let borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
54096  
54097    // Check for old deprecated numerical border radius. Done as a separate
54098    // check so that a borderRadius style won't overwrite the longhand
54099    // per-corner styles.
54100    if (typeof borderRadius === 'number') {
54101      borderProps = {
54102        ...borderProps,
54103        style: {
54104          ...borderProps.style,
54105          borderRadius: `$borderRadius}px`
54106        }
54107      };
54108    }
54109    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
54110    const [fluidTypographySettings, layout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.fluid', 'layout');
54111    const typographyProps = (0,external_wp_blockEditor_namespaceObject.getTypographyClassesAndStyles)(attributes, {
54112      typography: {
54113        fluid: fluidTypographySettings
54114      },
54115      layout: {
54116        wideSize: layout?.wideSize
54117      }
54118    });
54119    const unitControlInstanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
54120    const unitControlInputId = `wp-block-search__width-$unitControlInstanceId}`;
54121    const isButtonPositionInside = 'button-inside' === buttonPosition;
54122    const isButtonPositionOutside = 'button-outside' === buttonPosition;
54123    const hasNoButton = 'no-button' === buttonPosition;
54124    const hasOnlyButton = 'button-only' === buttonPosition;
54125    const searchFieldRef = (0,external_wp_element_namespaceObject.useRef)();
54126    const buttonRef = (0,external_wp_element_namespaceObject.useRef)();
54127    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
54128      availableUnits: ['%', 'px'],
54129      defaultValues: {
54130        '%': PC_WIDTH_DEFAULT,
54131        px: PX_WIDTH_DEFAULT
54132      }
54133    });
54134    (0,external_wp_element_namespaceObject.useEffect)(() => {
54135      if (hasOnlyButton && !isSelected) {
54136        setAttributes({
54137          isSearchFieldHidden: true
54138        });
54139      }
54140    }, [hasOnlyButton, isSelected, setAttributes]);
54141  
54142    // Show the search field when width changes.
54143    (0,external_wp_element_namespaceObject.useEffect)(() => {
54144      if (!hasOnlyButton || !isSelected) {
54145        return;
54146      }
54147      setAttributes({
54148        isSearchFieldHidden: false
54149      });
54150    }, [hasOnlyButton, isSelected, setAttributes, width]);
54151    const getBlockClassNames = () => {
54152      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);
54153    };
54154    const buttonPositionControls = [{
54155      role: 'menuitemradio',
54156      title: (0,external_wp_i18n_namespaceObject.__)('Button outside'),
54157      isActive: buttonPosition === 'button-outside',
54158      icon: buttonOutside,
54159      onClick: () => {
54160        setAttributes({
54161          buttonPosition: 'button-outside',
54162          isSearchFieldHidden: false
54163        });
54164      }
54165    }, {
54166      role: 'menuitemradio',
54167      title: (0,external_wp_i18n_namespaceObject.__)('Button inside'),
54168      isActive: buttonPosition === 'button-inside',
54169      icon: buttonInside,
54170      onClick: () => {
54171        setAttributes({
54172          buttonPosition: 'button-inside',
54173          isSearchFieldHidden: false
54174        });
54175      }
54176    }, {
54177      role: 'menuitemradio',
54178      title: (0,external_wp_i18n_namespaceObject.__)('No button'),
54179      isActive: buttonPosition === 'no-button',
54180      icon: noButton,
54181      onClick: () => {
54182        setAttributes({
54183          buttonPosition: 'no-button',
54184          isSearchFieldHidden: false
54185        });
54186      }
54187    }, {
54188      role: 'menuitemradio',
54189      title: (0,external_wp_i18n_namespaceObject.__)('Button only'),
54190      isActive: buttonPosition === 'button-only',
54191      icon: buttonOnly,
54192      onClick: () => {
54193        setAttributes({
54194          buttonPosition: 'button-only',
54195          isSearchFieldHidden: true
54196        });
54197      }
54198    }];
54199    const getButtonPositionIcon = () => {
54200      switch (buttonPosition) {
54201        case 'button-inside':
54202          return buttonInside;
54203        case 'button-outside':
54204          return buttonOutside;
54205        case 'no-button':
54206          return noButton;
54207        case 'button-only':
54208          return buttonOnly;
54209      }
54210    };
54211    const getResizableSides = () => {
54212      if (hasOnlyButton) {
54213        return {};
54214      }
54215      return {
54216        right: align !== 'right',
54217        left: align === 'right'
54218      };
54219    };
54220    const renderTextField = () => {
54221      // If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.
54222      const textFieldClasses = dist_clsx('wp-block-search__input', isButtonPositionInside ? undefined : borderProps.className, typographyProps.className);
54223      const textFieldStyles = {
54224        ...(isButtonPositionInside ? {
54225          borderRadius
54226        } : borderProps.style),
54227        ...typographyProps.style,
54228        textDecoration: undefined
54229      };
54230      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
54231        type: "search",
54232        className: textFieldClasses,
54233        style: textFieldStyles,
54234        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text')
54235        // We hide the placeholder field's placeholder when there is a value. This
54236        // stops screen readers from reading the placeholder field's placeholder
54237        // which is confusing.
54238        ,
54239        placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
54240        value: placeholder,
54241        onChange: event => setAttributes({
54242          placeholder: event.target.value
54243        }),
54244        ref: searchFieldRef
54245      });
54246    };
54247    const renderButton = () => {
54248      // If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.
54249      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'));
54250      const buttonStyles = {
54251        ...colorProps.style,
54252        ...typographyProps.style,
54253        ...(isButtonPositionInside ? {
54254          borderRadius
54255        } : borderProps.style)
54256      };
54257      const handleButtonClick = () => {
54258        if (hasOnlyButton) {
54259          setAttributes({
54260            isSearchFieldHidden: !isSearchFieldHidden
54261          });
54262        }
54263      };
54264      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54265        children: [buttonUseIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
54266          type: "button",
54267          className: buttonClasses,
54268          style: buttonStyles,
54269          "aria-label": buttonText ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(buttonText) : (0,external_wp_i18n_namespaceObject.__)('Search'),
54270          onClick: handleButtonClick,
54271          ref: buttonRef,
54272          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
54273            icon: library_search
54274          })
54275        }), !buttonUseIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
54276          identifier: "buttonText",
54277          className: buttonClasses,
54278          style: buttonStyles,
54279          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
54280          placeholder: (0,external_wp_i18n_namespaceObject.__)('Add button text…'),
54281          withoutInteractiveFormatting: true,
54282          value: buttonText,
54283          onChange: html => setAttributes({
54284            buttonText: html
54285          }),
54286          onClick: handleButtonClick
54287        })]
54288      });
54289    };
54290    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
54291    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54292      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
54293        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
54294          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
54295            title: (0,external_wp_i18n_namespaceObject.__)('Show search label'),
54296            icon: toggleLabel,
54297            onClick: () => {
54298              setAttributes({
54299                showLabel: !showLabel
54300              });
54301            },
54302            className: showLabel ? 'is-pressed' : undefined
54303          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
54304            icon: getButtonPositionIcon(),
54305            label: (0,external_wp_i18n_namespaceObject.__)('Change button position'),
54306            controls: buttonPositionControls
54307          }), !hasNoButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
54308            title: (0,external_wp_i18n_namespaceObject.__)('Use button with icon'),
54309            icon: buttonWithIcon,
54310            onClick: () => {
54311              setAttributes({
54312                buttonUseIcon: !buttonUseIcon
54313              });
54314            },
54315            className: buttonUseIcon ? 'is-pressed' : undefined
54316          })]
54317        })
54318      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
54319        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
54320          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
54321          resetAll: () => {
54322            setAttributes({
54323              width: undefined,
54324              widthUnit: undefined
54325            });
54326          },
54327          dropdownMenuProps: dropdownMenuProps,
54328          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
54329            hasValue: () => !!width,
54330            label: (0,external_wp_i18n_namespaceObject.__)('Width'),
54331            onDeselect: () => {
54332              setAttributes({
54333                width: undefined,
54334                widthUnit: undefined
54335              });
54336            },
54337            isShownByDefault: true,
54338            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
54339              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
54340                __next40pxDefaultSize: true,
54341                label: (0,external_wp_i18n_namespaceObject.__)('Width'),
54342                id: unitControlInputId // Unused, kept for backwards compatibility
54343                ,
54344                min: utils_isPercentageUnit(widthUnit) ? 0 : MIN_WIDTH,
54345                max: utils_isPercentageUnit(widthUnit) ? 100 : undefined,
54346                step: 1,
54347                onChange: newWidth => {
54348                  const parsedNewWidth = newWidth === '' ? undefined : parseInt(newWidth, 10);
54349                  setAttributes({
54350                    width: parsedNewWidth
54351                  });
54352                },
54353                onUnitChange: newUnit => {
54354                  setAttributes({
54355                    width: '%' === newUnit ? PC_WIDTH_DEFAULT : PX_WIDTH_DEFAULT,
54356                    widthUnit: newUnit
54357                  });
54358                },
54359                __unstableInputWidth: "80px",
54360                value: `$width}$widthUnit}`,
54361                units: units
54362              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
54363                label: (0,external_wp_i18n_namespaceObject.__)('Percentage Width'),
54364                value: PERCENTAGE_WIDTHS.includes(width) && widthUnit === '%' ? width : undefined,
54365                hideLabelFromVision: true,
54366                onChange: newWidth => {
54367                  setAttributes({
54368                    width: newWidth,
54369                    widthUnit: '%'
54370                  });
54371                },
54372                isBlock: true,
54373                __next40pxDefaultSize: true,
54374                __nextHasNoMarginBottom: true,
54375                children: PERCENTAGE_WIDTHS.map(widthValue => {
54376                  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
54377                    value: widthValue,
54378                    label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: Percentage value. */
54379                    (0,external_wp_i18n_namespaceObject.__)('%d%%'), widthValue)
54380                  }, widthValue);
54381                })
54382              })]
54383            })
54384          })
54385        })
54386      })]
54387    });
54388    const padBorderRadius = radius => radius ? `calc($radius} + $DEFAULT_INNER_PADDING})` : undefined;
54389    const getWrapperStyles = () => {
54390      const styles = isButtonPositionInside ? borderProps.style : {
54391        borderRadius: borderProps.style?.borderRadius,
54392        borderTopLeftRadius: borderProps.style?.borderTopLeftRadius,
54393        borderTopRightRadius: borderProps.style?.borderTopRightRadius,
54394        borderBottomLeftRadius: borderProps.style?.borderBottomLeftRadius,
54395        borderBottomRightRadius: borderProps.style?.borderBottomRightRadius
54396      };
54397      const isNonZeroBorderRadius = borderRadius !== undefined && parseInt(borderRadius, 10) !== 0;
54398      if (isButtonPositionInside && isNonZeroBorderRadius) {
54399        // We have button inside wrapper and a border radius value to apply.
54400        // Add default padding so we don't get "fat" corners.
54401        //
54402        // CSS calc() is used here to support non-pixel units. The inline
54403        // style using calc() will only apply if both values have units.
54404  
54405        if (typeof borderRadius === 'object') {
54406          // Individual corner border radii present.
54407          const {
54408            topLeft,
54409            topRight,
54410            bottomLeft,
54411            bottomRight
54412          } = borderRadius;
54413          return {
54414            ...styles,
54415            borderTopLeftRadius: padBorderRadius(topLeft),
54416            borderTopRightRadius: padBorderRadius(topRight),
54417            borderBottomLeftRadius: padBorderRadius(bottomLeft),
54418            borderBottomRightRadius: padBorderRadius(bottomRight)
54419          };
54420        }
54421  
54422        // The inline style using calc() will only apply if both values
54423        // supplied to calc() have units. Deprecated block's may have
54424        // unitless integer.
54425        const radius = Number.isInteger(borderRadius) ? `$borderRadius}px` : borderRadius;
54426        styles.borderRadius = `calc($radius} + $DEFAULT_INNER_PADDING})`;
54427      }
54428      return styles;
54429    };
54430    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
54431      className: getBlockClassNames(),
54432      style: {
54433        ...typographyProps.style,
54434        // Input opts out of text decoration.
54435        textDecoration: undefined
54436      }
54437    });
54438    const labelClassnames = dist_clsx('wp-block-search__label', typographyProps.className);
54439    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
54440      ...blockProps,
54441      children: [controls, showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
54442        identifier: "label",
54443        className: labelClassnames,
54444        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
54445        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add label…'),
54446        withoutInteractiveFormatting: true,
54447        value: label,
54448        onChange: html => setAttributes({
54449          label: html
54450        }),
54451        style: typographyProps.style
54452      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ResizableBox, {
54453        size: {
54454          width: width === undefined ? 'auto' : `$width}$widthUnit}`,
54455          height: 'auto'
54456        },
54457        className: dist_clsx('wp-block-search__inside-wrapper', isButtonPositionInside ? borderProps.className : undefined),
54458        style: getWrapperStyles(),
54459        minWidth: MIN_WIDTH,
54460        enable: getResizableSides(),
54461        onResizeStart: (event, direction, elt) => {
54462          setAttributes({
54463            width: parseInt(elt.offsetWidth, 10),
54464            widthUnit: 'px'
54465          });
54466          toggleSelection(false);
54467        },
54468        onResizeStop: (event, direction, elt, delta) => {
54469          setAttributes({
54470            width: parseInt(width + delta.width, 10)
54471          });
54472          toggleSelection(true);
54473        },
54474        showHandle: isSelected,
54475        children: [(isButtonPositionInside || isButtonPositionOutside || hasOnlyButton) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54476          children: [renderTextField(), renderButton()]
54477        }), hasNoButton && renderTextField()]
54478      })]
54479    });
54480  }
54481  
54482  ;// ./node_modules/@wordpress/block-library/build-module/search/variations.js
54483  /**
54484   * WordPress dependencies
54485   */
54486  
54487  const search_variations_variations = [{
54488    name: 'default',
54489    isDefault: true,
54490    attributes: {
54491      buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
54492      label: (0,external_wp_i18n_namespaceObject.__)('Search')
54493    }
54494  }];
54495  /* harmony default export */ const search_variations = (search_variations_variations);
54496  
54497  ;// ./node_modules/@wordpress/block-library/build-module/search/index.js
54498  /**
54499   * WordPress dependencies
54500   */
54501  
54502  
54503  
54504  /**
54505   * Internal dependencies
54506   */
54507  
54508  const search_metadata = {
54509    $schema: "https://schemas.wp.org/trunk/block.json",
54510    apiVersion: 3,
54511    name: "core/search",
54512    title: "Search",
54513    category: "widgets",
54514    description: "Help visitors find your content.",
54515    keywords: ["find"],
54516    textdomain: "default",
54517    attributes: {
54518      label: {
54519        type: "string",
54520        role: "content"
54521      },
54522      showLabel: {
54523        type: "boolean",
54524        "default": true
54525      },
54526      placeholder: {
54527        type: "string",
54528        "default": "",
54529        role: "content"
54530      },
54531      width: {
54532        type: "number"
54533      },
54534      widthUnit: {
54535        type: "string"
54536      },
54537      buttonText: {
54538        type: "string",
54539        role: "content"
54540      },
54541      buttonPosition: {
54542        type: "string",
54543        "default": "button-outside"
54544      },
54545      buttonUseIcon: {
54546        type: "boolean",
54547        "default": false
54548      },
54549      query: {
54550        type: "object",
54551        "default": {}
54552      },
54553      isSearchFieldHidden: {
54554        type: "boolean",
54555        "default": false
54556      }
54557    },
54558    supports: {
54559      align: ["left", "center", "right"],
54560      color: {
54561        gradients: true,
54562        __experimentalSkipSerialization: true,
54563        __experimentalDefaultControls: {
54564          background: true,
54565          text: true
54566        }
54567      },
54568      interactivity: true,
54569      typography: {
54570        __experimentalSkipSerialization: true,
54571        __experimentalSelector: ".wp-block-search__label, .wp-block-search__input, .wp-block-search__button",
54572        fontSize: true,
54573        lineHeight: true,
54574        __experimentalFontFamily: true,
54575        __experimentalFontWeight: true,
54576        __experimentalFontStyle: true,
54577        __experimentalTextTransform: true,
54578        __experimentalTextDecoration: true,
54579        __experimentalLetterSpacing: true,
54580        __experimentalDefaultControls: {
54581          fontSize: true
54582        }
54583      },
54584      __experimentalBorder: {
54585        color: true,
54586        radius: true,
54587        width: true,
54588        __experimentalSkipSerialization: true,
54589        __experimentalDefaultControls: {
54590          color: true,
54591          radius: true,
54592          width: true
54593        }
54594      },
54595      spacing: {
54596        margin: true
54597      },
54598      html: false
54599    },
54600    editorStyle: "wp-block-search-editor",
54601    style: "wp-block-search"
54602  };
54603  
54604  
54605  const {
54606    name: search_name
54607  } = search_metadata;
54608  
54609  const search_settings = {
54610    icon: library_search,
54611    example: {
54612      attributes: {
54613        buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
54614        label: (0,external_wp_i18n_namespaceObject.__)('Search')
54615      },
54616      viewportWidth: 400
54617    },
54618    variations: search_variations,
54619    edit: SearchEdit
54620  };
54621  const search_init = () => initBlock({
54622    name: search_name,
54623    metadata: search_metadata,
54624    settings: search_settings
54625  });
54626  
54627  ;// ./node_modules/@wordpress/icons/build-module/library/separator.js
54628  /**
54629   * WordPress dependencies
54630   */
54631  
54632  
54633  const separator = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54634    viewBox: "0 0 24 24",
54635    xmlns: "http://www.w3.org/2000/svg",
54636    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54637      d: "M4.5 12.5v4H3V7h1.5v3.987h15V7H21v9.5h-1.5v-4h-15Z"
54638    })
54639  });
54640  /* harmony default export */ const library_separator = (separator);
54641  
54642  ;// ./node_modules/@wordpress/block-library/build-module/separator/use-deprecated-opacity.js
54643  /**
54644   * WordPress dependencies
54645   */
54646  
54647  
54648  function useDeprecatedOpacity(opacity, currentColor, setAttributes) {
54649    const [deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor] = (0,external_wp_element_namespaceObject.useState)(false);
54650    const previousColor = (0,external_wp_compose_namespaceObject.usePrevious)(currentColor);
54651  
54652    // A separator with no color set will always have previousColor set to undefined,
54653    // and we need to differentiate these from those with color set that will return
54654    // previousColor as undefined on the first render.
54655    (0,external_wp_element_namespaceObject.useEffect)(() => {
54656      if (opacity === 'css' && !currentColor && !previousColor) {
54657        setDeprecatedOpacityWithNoColor(true);
54658      }
54659    }, [currentColor, previousColor, opacity]);
54660  
54661    // For deprecated blocks, that have a default 0.4 css opacity set, we
54662    // need to remove this if the current color is changed, or a color is added.
54663    // In these instances the opacity attribute is set back to the default of
54664    // alpha-channel which allows a new custom opacity to be set via the color picker.
54665    (0,external_wp_element_namespaceObject.useEffect)(() => {
54666      if (opacity === 'css' && (deprecatedOpacityWithNoColor && currentColor || previousColor && currentColor !== previousColor)) {
54667        setAttributes({
54668          opacity: 'alpha-channel'
54669        });
54670        setDeprecatedOpacityWithNoColor(false);
54671      }
54672    }, [deprecatedOpacityWithNoColor, currentColor, previousColor]);
54673  }
54674  
54675  ;// ./node_modules/@wordpress/block-library/build-module/separator/edit.js
54676  /**
54677   * External dependencies
54678   */
54679  
54680  
54681  /**
54682   * WordPress dependencies
54683   */
54684  
54685  
54686  
54687  
54688  /**
54689   * Internal dependencies
54690   */
54691  
54692  
54693  
54694  function SeparatorEdit({
54695    attributes,
54696    setAttributes
54697  }) {
54698    const {
54699      backgroundColor,
54700      opacity,
54701      style,
54702      tagName
54703    } = attributes;
54704    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
54705    const currentColor = colorProps?.style?.backgroundColor;
54706    const hasCustomColor = !!style?.color?.background;
54707    useDeprecatedOpacity(opacity, currentColor, setAttributes);
54708  
54709    // The dots styles uses text for the dots, to change those dots color is
54710    // using color, not backgroundColor.
54711    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
54712    const className = dist_clsx({
54713      'has-text-color': backgroundColor || currentColor,
54714      [colorClass]: colorClass,
54715      'has-css-opacity': opacity === 'css',
54716      'has-alpha-channel-opacity': opacity === 'alpha-channel'
54717    }, colorProps.className);
54718    const styles = {
54719      color: currentColor,
54720      backgroundColor: currentColor
54721    };
54722    const Wrapper = tagName === 'hr' ? external_wp_components_namespaceObject.HorizontalRule : tagName;
54723    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54724      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
54725        group: "advanced",
54726        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
54727          __nextHasNoMarginBottom: true,
54728          __next40pxDefaultSize: true,
54729          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
54730          options: [{
54731            label: (0,external_wp_i18n_namespaceObject.__)('Default (<hr>)'),
54732            value: 'hr'
54733          }, {
54734            label: '<div>',
54735            value: 'div'
54736          }],
54737          value: tagName,
54738          onChange: value => setAttributes({
54739            tagName: value
54740          }),
54741          help: htmlElementMessages[tagName]
54742        })
54743      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wrapper, {
54744        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
54745          className,
54746          style: hasCustomColor ? styles : undefined
54747        })
54748      })]
54749    });
54750  }
54751  
54752  ;// ./node_modules/@wordpress/block-library/build-module/separator/save.js
54753  /**
54754   * External dependencies
54755   */
54756  
54757  
54758  /**
54759   * WordPress dependencies
54760   */
54761  
54762  
54763  function separatorSave({
54764    attributes
54765  }) {
54766    const {
54767      backgroundColor,
54768      style,
54769      opacity,
54770      tagName: Tag
54771    } = attributes;
54772    const customColor = style?.color?.background;
54773    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
54774    // The hr support changing color using border-color, since border-color
54775    // is not yet supported in the color palette, we use background-color.
54776  
54777    // The dots styles uses text for the dots, to change those dots color is
54778    // using color, not backgroundColor.
54779    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
54780    const className = dist_clsx({
54781      'has-text-color': backgroundColor || customColor,
54782      [colorClass]: colorClass,
54783      'has-css-opacity': opacity === 'css',
54784      'has-alpha-channel-opacity': opacity === 'alpha-channel'
54785    }, colorProps.className);
54786    const styles = {
54787      backgroundColor: colorProps?.style?.backgroundColor,
54788      color: colorClass ? undefined : customColor
54789    };
54790    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
54791      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
54792        className,
54793        style: styles
54794      })
54795    });
54796  }
54797  
54798  ;// ./node_modules/@wordpress/block-library/build-module/separator/transforms.js
54799  /**
54800   * WordPress dependencies
54801   */
54802  
54803  const separator_transforms_transforms = {
54804    from: [{
54805      type: 'enter',
54806      regExp: /^-{3,}$/,
54807      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/separator')
54808    }, {
54809      type: 'raw',
54810      selector: 'hr',
54811      schema: {
54812        hr: {}
54813      }
54814    }],
54815    to: [{
54816      type: 'block',
54817      blocks: ['core/spacer'],
54818      // Transform to Spacer.
54819      transform: ({
54820        anchor
54821      }) => {
54822        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer', {
54823          anchor: anchor || ''
54824        });
54825      }
54826    }]
54827  };
54828  /* harmony default export */ const separator_transforms = (separator_transforms_transforms);
54829  
54830  ;// ./node_modules/@wordpress/block-library/build-module/separator/deprecated.js
54831  /**
54832   * External dependencies
54833   */
54834  
54835  
54836  /**
54837   * WordPress dependencies
54838   */
54839  
54840  
54841  const separator_deprecated_v1 = {
54842    attributes: {
54843      color: {
54844        type: 'string'
54845      },
54846      customColor: {
54847        type: 'string'
54848      }
54849    },
54850    save({
54851      attributes
54852    }) {
54853      const {
54854        color,
54855        customColor
54856      } = attributes;
54857  
54858      // the hr support changing color using border-color, since border-color
54859      // is not yet supported in the color palette, we use background-color
54860      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', color);
54861      // the dots styles uses text for the dots, to change those dots color is
54862      // using color, not backgroundColor
54863      const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', color);
54864      const className = dist_clsx({
54865        'has-text-color has-background': color || customColor,
54866        [backgroundClass]: backgroundClass,
54867        [colorClass]: colorClass
54868      });
54869      const style = {
54870        backgroundColor: backgroundClass ? undefined : customColor,
54871        color: colorClass ? undefined : customColor
54872      };
54873      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {
54874        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
54875          className,
54876          style
54877        })
54878      });
54879    },
54880    migrate(attributes) {
54881      const {
54882        color,
54883        customColor,
54884        ...restAttributes
54885      } = attributes;
54886      return {
54887        ...restAttributes,
54888        backgroundColor: color ? color : undefined,
54889        opacity: 'css',
54890        style: customColor ? {
54891          color: {
54892            background: customColor
54893          }
54894        } : undefined,
54895        tagName: 'hr'
54896      };
54897    }
54898  };
54899  /* harmony default export */ const separator_deprecated = ([separator_deprecated_v1]);
54900  
54901  ;// ./node_modules/@wordpress/block-library/build-module/separator/index.js
54902  /**
54903   * WordPress dependencies
54904   */
54905  
54906  
54907  /**
54908   * Internal dependencies
54909   */
54910  
54911  
54912  const separator_metadata = {
54913    $schema: "https://schemas.wp.org/trunk/block.json",
54914    apiVersion: 3,
54915    name: "core/separator",
54916    title: "Separator",
54917    category: "design",
54918    description: "Create a break between ideas or sections with a horizontal separator.",
54919    keywords: ["horizontal-line", "hr", "divider"],
54920    textdomain: "default",
54921    attributes: {
54922      opacity: {
54923        type: "string",
54924        "default": "alpha-channel"
54925      },
54926      tagName: {
54927        type: "string",
54928        "enum": ["hr", "div"],
54929        "default": "hr"
54930      }
54931    },
54932    supports: {
54933      anchor: true,
54934      align: ["center", "wide", "full"],
54935      color: {
54936        enableContrastChecker: false,
54937        __experimentalSkipSerialization: true,
54938        gradients: true,
54939        background: true,
54940        text: false,
54941        __experimentalDefaultControls: {
54942          background: true
54943        }
54944      },
54945      spacing: {
54946        margin: ["top", "bottom"]
54947      },
54948      interactivity: {
54949        clientNavigation: true
54950      }
54951    },
54952    styles: [{
54953      name: "default",
54954      label: "Default",
54955      isDefault: true
54956    }, {
54957      name: "wide",
54958      label: "Wide Line"
54959    }, {
54960      name: "dots",
54961      label: "Dots"
54962    }],
54963    editorStyle: "wp-block-separator-editor",
54964    style: "wp-block-separator"
54965  };
54966  
54967  
54968  
54969  const {
54970    name: separator_name
54971  } = separator_metadata;
54972  
54973  const separator_settings = {
54974    icon: library_separator,
54975    example: {
54976      attributes: {
54977        customColor: '#065174',
54978        className: 'is-style-wide'
54979      }
54980    },
54981    transforms: separator_transforms,
54982    edit: SeparatorEdit,
54983    save: separatorSave,
54984    deprecated: separator_deprecated
54985  };
54986  const separator_init = () => initBlock({
54987    name: separator_name,
54988    metadata: separator_metadata,
54989    settings: separator_settings
54990  });
54991  
54992  ;// ./node_modules/@wordpress/icons/build-module/library/shortcode.js
54993  /**
54994   * WordPress dependencies
54995   */
54996  
54997  
54998  const shortcode = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54999    viewBox: "0 0 24 24",
55000    xmlns: "http://www.w3.org/2000/svg",
55001    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55002      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"
55003    })
55004  });
55005  /* harmony default export */ const library_shortcode = (shortcode);
55006  
55007  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js
55008  /**
55009   * WordPress dependencies
55010   */
55011  
55012  
55013  
55014  
55015  
55016  
55017  function ShortcodeEdit({
55018    attributes,
55019    setAttributes
55020  }) {
55021    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ShortcodeEdit);
55022    const inputId = `blocks-shortcode-input-$instanceId}`;
55023    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55024      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
55025      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
55026        icon: library_shortcode,
55027        label: (0,external_wp_i18n_namespaceObject.__)('Shortcode'),
55028        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
55029          className: "blocks-shortcode__textarea",
55030          id: inputId,
55031          value: attributes.text,
55032          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Shortcode text'),
55033          placeholder: (0,external_wp_i18n_namespaceObject.__)('Write shortcode here…'),
55034          onChange: text => setAttributes({
55035            text
55036          })
55037        })
55038      })
55039    });
55040  }
55041  
55042  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/save.js
55043  /**
55044   * WordPress dependencies
55045   */
55046  
55047  
55048  function shortcode_save_save({
55049    attributes
55050  }) {
55051    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
55052      children: attributes.text
55053    });
55054  }
55055  
55056  ;// external ["wp","autop"]
55057  const external_wp_autop_namespaceObject = window["wp"]["autop"];
55058  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js
55059  /**
55060   * WordPress dependencies
55061   */
55062  
55063  const shortcode_transforms_transforms = {
55064    from: [{
55065      type: 'shortcode',
55066      // Per "Shortcode names should be all lowercase and use all
55067      // letters, but numbers and underscores should work fine too.
55068      // Be wary of using hyphens (dashes), you'll be better off not
55069      // using them." in https://codex.wordpress.org/Shortcode_API
55070      // Require that the first character be a letter. This notably
55071      // prevents footnote markings ([1]) from being caught as
55072      // shortcodes.
55073      tag: '[a-z][a-z0-9_-]*',
55074      attributes: {
55075        text: {
55076          type: 'string',
55077          shortcode: (attrs, {
55078            content
55079          }) => {
55080            return (0,external_wp_autop_namespaceObject.removep)((0,external_wp_autop_namespaceObject.autop)(content));
55081          }
55082        }
55083      },
55084      priority: 20
55085    }]
55086  };
55087  /* harmony default export */ const shortcode_transforms = (shortcode_transforms_transforms);
55088  
55089  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
55090  /**
55091   * WordPress dependencies
55092   */
55093  
55094  
55095  /**
55096   * Internal dependencies
55097   */
55098  
55099  
55100  
55101  
55102  const shortcode_metadata = {
55103    $schema: "https://schemas.wp.org/trunk/block.json",
55104    apiVersion: 3,
55105    name: "core/shortcode",
55106    title: "Shortcode",
55107    category: "widgets",
55108    description: "Insert additional custom elements with a WordPress shortcode.",
55109    textdomain: "default",
55110    attributes: {
55111      text: {
55112        type: "string",
55113        source: "raw"
55114      }
55115    },
55116    supports: {
55117      className: false,
55118      customClassName: false,
55119      html: false
55120    },
55121    editorStyle: "wp-block-shortcode-editor"
55122  };
55123  const {
55124    name: shortcode_name
55125  } = shortcode_metadata;
55126  
55127  const shortcode_settings = {
55128    icon: library_shortcode,
55129    transforms: shortcode_transforms,
55130    edit: ShortcodeEdit,
55131    save: shortcode_save_save
55132  };
55133  const shortcode_init = () => initBlock({
55134    name: shortcode_name,
55135    metadata: shortcode_metadata,
55136    settings: shortcode_settings
55137  });
55138  
55139  ;// ./node_modules/@wordpress/icons/build-module/library/site-logo.js
55140  /**
55141   * WordPress dependencies
55142   */
55143  
55144  
55145  const siteLogo = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55146    xmlns: "http://www.w3.org/2000/svg",
55147    viewBox: "0 0 24 24",
55148    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55149      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"
55150    })
55151  });
55152  /* harmony default export */ const site_logo = (siteLogo);
55153  
55154  ;// ./node_modules/@wordpress/block-library/build-module/site-logo/edit.js
55155  /**
55156   * External dependencies
55157   */
55158  
55159  
55160  /**
55161   * WordPress dependencies
55162   */
55163  
55164  
55165  
55166  
55167  
55168  
55169  
55170  
55171  
55172  
55173  
55174  /**
55175   * Internal dependencies
55176   */
55177  
55178  
55179  const site_logo_edit_ALLOWED_MEDIA_TYPES = ['image'];
55180  const ACCEPT_MEDIA_STRING = 'image/*';
55181  const SiteLogo = ({
55182    alt,
55183    attributes: {
55184      align,
55185      width,
55186      height,
55187      isLink,
55188      linkTarget,
55189      shouldSyncIcon
55190    },
55191    isSelected,
55192    setAttributes,
55193    setLogo,
55194    logoUrl,
55195    siteUrl,
55196    logoId,
55197    iconId,
55198    setIcon,
55199    canUserEdit
55200  }) => {
55201    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
55202    const isWideAligned = ['wide', 'full'].includes(align);
55203    const isResizable = !isWideAligned && isLargeViewport;
55204    const [{
55205      naturalWidth,
55206      naturalHeight
55207    }, setNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
55208    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
55209    const {
55210      toggleSelection
55211    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
55212    const {
55213      imageEditing,
55214      maxWidth,
55215      title
55216    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
55217      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
55218      const siteEntities = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase');
55219      return {
55220        title: siteEntities?.name,
55221        imageEditing: settings.imageEditing,
55222        maxWidth: settings.maxWidth
55223      };
55224    }, []);
55225    (0,external_wp_element_namespaceObject.useEffect)(() => {
55226      // Turn the `Use as site icon` toggle off if it is on but the logo and icon have
55227      // fallen out of sync. This can happen if the toggle is saved in the `on` position,
55228      // but changes are later made to the site icon in the Customizer.
55229      if (shouldSyncIcon && logoId !== iconId) {
55230        setAttributes({
55231          shouldSyncIcon: false
55232        });
55233      }
55234    }, []);
55235    (0,external_wp_element_namespaceObject.useEffect)(() => {
55236      if (!isSelected) {
55237        setIsEditingImage(false);
55238      }
55239    }, [isSelected]);
55240    function onResizeStart() {
55241      toggleSelection(false);
55242    }
55243    function onResizeStop() {
55244      toggleSelection(true);
55245    }
55246    const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55247      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
55248        className: "custom-logo",
55249        src: logoUrl,
55250        alt: alt,
55251        onLoad: event => {
55252          setNaturalSize({
55253            naturalWidth: event.target.naturalWidth,
55254            naturalHeight: event.target.naturalHeight
55255          });
55256        }
55257      }), (0,external_wp_blob_namespaceObject.isBlobURL)(logoUrl) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
55258    });
55259    let imgWrapper = img;
55260  
55261    // Disable reason: Image itself is not meant to be interactive, but
55262    // should direct focus to block.
55263    if (isLink) {
55264      imgWrapper =
55265      /*#__PURE__*/
55266      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
55267      (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
55268        href: siteUrl,
55269        className: "custom-logo-link",
55270        rel: "home",
55271        title: title,
55272        onClick: event => event.preventDefault(),
55273        children: img
55274      })
55275      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
55276    }
55277    if (!isResizable || !naturalWidth || !naturalHeight) {
55278      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55279        style: {
55280          width,
55281          height
55282        },
55283        children: imgWrapper
55284      });
55285    }
55286  
55287    // Set the default width to a responsible size.
55288    // Note that this width is also set in the attached frontend CSS file.
55289    const defaultWidth = 120;
55290    const currentWidth = width || defaultWidth;
55291    const ratio = naturalWidth / naturalHeight;
55292    const currentHeight = currentWidth / ratio;
55293    const minWidth = naturalWidth < naturalHeight ? constants_MIN_SIZE : Math.ceil(constants_MIN_SIZE * ratio);
55294    const minHeight = naturalHeight < naturalWidth ? constants_MIN_SIZE : Math.ceil(constants_MIN_SIZE / ratio);
55295  
55296    // With the current implementation of ResizableBox, an image needs an
55297    // explicit pixel value for the max-width. In absence of being able to
55298    // set the content-width, this max-width is currently dictated by the
55299    // vanilla editor style. The following variable adds a buffer to this
55300    // vanilla style, so 3rd party themes have some wiggleroom. This does,
55301    // in most cases, allow you to scale the image beyond the width of the
55302    // main column, though not infinitely.
55303    // @todo It would be good to revisit this once a content-width variable
55304    // becomes available.
55305    const maxWidthBuffer = maxWidth * 2.5;
55306    let showRightHandle = false;
55307    let showLeftHandle = false;
55308  
55309    /* eslint-disable no-lonely-if */
55310    // See https://github.com/WordPress/gutenberg/issues/7584.
55311    if (align === 'center') {
55312      // When the image is centered, show both handles.
55313      showRightHandle = true;
55314      showLeftHandle = true;
55315    } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
55316      // In RTL mode the image is on the right by default.
55317      // Show the right handle and hide the left handle only when it is
55318      // aligned left. Otherwise always show the left handle.
55319      if (align === 'left') {
55320        showRightHandle = true;
55321      } else {
55322        showLeftHandle = true;
55323      }
55324    } else {
55325      // Show the left handle and hide the right handle only when the
55326      // image is aligned right. Otherwise always show the right handle.
55327      if (align === 'right') {
55328        showLeftHandle = true;
55329      } else {
55330        showRightHandle = true;
55331      }
55332    }
55333    /* eslint-enable no-lonely-if */
55334  
55335    const canEditImage = logoId && naturalWidth && naturalHeight && imageEditing;
55336    const imgEdit = canEditImage && isEditingImage ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
55337      id: logoId,
55338      url: logoUrl,
55339      width: currentWidth,
55340      height: currentHeight,
55341      naturalHeight: naturalHeight,
55342      naturalWidth: naturalWidth,
55343      onSaveImage: imageAttributes => {
55344        setLogo(imageAttributes.id);
55345      },
55346      onFinishEditing: () => {
55347        setIsEditingImage(false);
55348      }
55349    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
55350      size: {
55351        width: currentWidth,
55352        height: currentHeight
55353      },
55354      showHandle: isSelected,
55355      minWidth: minWidth,
55356      maxWidth: maxWidthBuffer,
55357      minHeight: minHeight,
55358      maxHeight: maxWidthBuffer / ratio,
55359      lockAspectRatio: true,
55360      enable: {
55361        top: false,
55362        right: showRightHandle,
55363        bottom: true,
55364        left: showLeftHandle
55365      },
55366      onResizeStart: onResizeStart,
55367      onResizeStop: (event, direction, elt, delta) => {
55368        onResizeStop();
55369        setAttributes({
55370          width: parseInt(currentWidth + delta.width, 10),
55371          height: parseInt(currentHeight + delta.height, 10)
55372        });
55373      },
55374      children: imgWrapper
55375    });
55376  
55377    // Support the previous location for the Site Icon settings. To be removed
55378    // when the required WP core version for Gutenberg is >= 6.5.0.
55379    const shouldUseNewUrl = !window?.__experimentalUseCustomizerSiteLogoUrl;
55380    const siteIconSettingsUrl = shouldUseNewUrl ? siteUrl + '/wp-admin/options-general.php' : siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';
55381    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>.'), {
55382      a:
55383      /*#__PURE__*/
55384      // eslint-disable-next-line jsx-a11y/anchor-has-content
55385      (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
55386        href: siteIconSettingsUrl,
55387        target: "_blank",
55388        rel: "noopener noreferrer"
55389      })
55390    });
55391    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55392      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
55393        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
55394          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
55395          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
55396            __nextHasNoMarginBottom: true,
55397            __next40pxDefaultSize: true,
55398            label: (0,external_wp_i18n_namespaceObject.__)('Image width'),
55399            onChange: newWidth => setAttributes({
55400              width: newWidth
55401            }),
55402            min: minWidth,
55403            max: maxWidthBuffer,
55404            initialPosition: Math.min(defaultWidth, maxWidthBuffer),
55405            value: width || '',
55406            disabled: !isResizable
55407          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
55408            __nextHasNoMarginBottom: true,
55409            label: (0,external_wp_i18n_namespaceObject.__)('Link image to home'),
55410            onChange: () => setAttributes({
55411              isLink: !isLink
55412            }),
55413            checked: isLink
55414          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55415            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
55416              __nextHasNoMarginBottom: true,
55417              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
55418              onChange: value => setAttributes({
55419                linkTarget: value ? '_blank' : '_self'
55420              }),
55421              checked: linkTarget === '_blank'
55422            })
55423          }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55424            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
55425              __nextHasNoMarginBottom: true,
55426              label: (0,external_wp_i18n_namespaceObject.__)('Use as Site Icon'),
55427              onChange: value => {
55428                setAttributes({
55429                  shouldSyncIcon: value
55430                });
55431                setIcon(value ? logoId : undefined);
55432              },
55433              checked: !!shouldSyncIcon,
55434              help: syncSiteIconHelpText
55435            })
55436          })]
55437        })
55438      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
55439        group: "block",
55440        children: canEditImage && !isEditingImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
55441          onClick: () => setIsEditingImage(true),
55442          icon: library_crop,
55443          label: (0,external_wp_i18n_namespaceObject.__)('Crop')
55444        })
55445      }), imgEdit]
55446    });
55447  };
55448  
55449  // This is a light wrapper around MediaReplaceFlow because the block has two
55450  // different MediaReplaceFlows, one for the inspector and one for the toolbar.
55451  function SiteLogoReplaceFlow({
55452    mediaURL,
55453    ...mediaReplaceProps
55454  }) {
55455    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
55456      ...mediaReplaceProps,
55457      mediaURL: mediaURL,
55458      allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
55459      accept: ACCEPT_MEDIA_STRING
55460    });
55461  }
55462  const InspectorLogoPreview = ({
55463    media,
55464    itemGroupProps
55465  }) => {
55466    const {
55467      alt_text: alt,
55468      source_url: logoUrl,
55469      slug: logoSlug,
55470      media_details: logoMediaDetails
55471    } = media !== null && media !== void 0 ? media : {};
55472    const logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;
55473    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalItemGroup, {
55474      ...itemGroupProps,
55475      as: "span",
55476      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
55477        justify: "flex-start",
55478        as: "span",
55479        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
55480          src: logoUrl,
55481          alt: alt
55482        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
55483          as: "span",
55484          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalTruncate, {
55485            numberOfLines: 1,
55486            className: "block-library-site-logo__inspector-media-replace-title",
55487            children: logoLabel
55488          })
55489        })]
55490      })
55491    });
55492  };
55493  function LogoEdit({
55494    attributes,
55495    className,
55496    setAttributes,
55497    isSelected
55498  }) {
55499    const {
55500      width,
55501      shouldSyncIcon
55502    } = attributes;
55503    const {
55504      siteLogoId,
55505      canUserEdit,
55506      url,
55507      siteIconId,
55508      mediaItemData,
55509      isRequestingMediaItem
55510    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
55511      const {
55512        canUser,
55513        getEntityRecord,
55514        getEditedEntityRecord
55515      } = select(external_wp_coreData_namespaceObject.store);
55516      const _canUserEdit = canUser('update', {
55517        kind: 'root',
55518        name: 'site'
55519      });
55520      const siteSettings = _canUserEdit ? getEditedEntityRecord('root', 'site') : undefined;
55521      const siteData = getEntityRecord('root', '__unstableBase');
55522      const _siteLogoId = _canUserEdit ? siteSettings?.site_logo : siteData?.site_logo;
55523      const _siteIconId = siteSettings?.site_icon;
55524      const mediaItem = _siteLogoId && select(external_wp_coreData_namespaceObject.store).getMedia(_siteLogoId, {
55525        context: 'view'
55526      });
55527      const _isRequestingMediaItem = !!_siteLogoId && !select(external_wp_coreData_namespaceObject.store).hasFinishedResolution('getMedia', [_siteLogoId, {
55528        context: 'view'
55529      }]);
55530      return {
55531        siteLogoId: _siteLogoId,
55532        canUserEdit: _canUserEdit,
55533        url: siteData?.home,
55534        mediaItemData: mediaItem,
55535        isRequestingMediaItem: _isRequestingMediaItem,
55536        siteIconId: _siteIconId
55537      };
55538    }, []);
55539    const {
55540      getSettings
55541    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
55542    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
55543    const {
55544      editEntityRecord
55545    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
55546    const setLogo = (newValue, shouldForceSync = false) => {
55547      // `shouldForceSync` is used to force syncing when the attribute
55548      // may not have updated yet.
55549      if (shouldSyncIcon || shouldForceSync) {
55550        setIcon(newValue);
55551      }
55552      editEntityRecord('root', 'site', undefined, {
55553        site_logo: newValue
55554      });
55555    };
55556    const setIcon = newValue =>
55557    // The new value needs to be `null` to reset the Site Icon.
55558    editEntityRecord('root', 'site', undefined, {
55559      site_icon: newValue !== null && newValue !== void 0 ? newValue : null
55560    });
55561    const {
55562      alt_text: alt,
55563      source_url: logoUrl
55564    } = mediaItemData !== null && mediaItemData !== void 0 ? mediaItemData : {};
55565    const onInitialSelectLogo = media => {
55566      // Initialize the syncSiteIcon toggle. If we currently have no Site logo and no
55567      // site icon, automatically sync the logo to the icon.
55568      if (shouldSyncIcon === undefined) {
55569        const shouldForceSync = !siteIconId;
55570        setAttributes({
55571          shouldSyncIcon: shouldForceSync
55572        });
55573  
55574        // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by
55575        // the time `setLogo` is called, pass an argument to force the syncing.
55576        onSelectLogo(media, shouldForceSync);
55577        return;
55578      }
55579      onSelectLogo(media);
55580    };
55581    const onSelectLogo = (media, shouldForceSync = false) => {
55582      if (!media) {
55583        return;
55584      }
55585      if (!media.id && media.url) {
55586        // This is a temporary blob image.
55587        setTemporaryURL(media.url);
55588        setLogo(undefined);
55589        return;
55590      }
55591      setLogo(media.id, shouldForceSync);
55592    };
55593    const onRemoveLogo = () => {
55594      setLogo(null);
55595      setAttributes({
55596        width: undefined
55597      });
55598    };
55599    const {
55600      createErrorNotice
55601    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
55602    const onUploadError = message => {
55603      createErrorNotice(message, {
55604        type: 'snackbar'
55605      });
55606      setTemporaryURL();
55607    };
55608    const onFilesDrop = filesList => {
55609      getSettings().mediaUpload({
55610        allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
55611        filesList,
55612        onFileChange([image]) {
55613          if ((0,external_wp_blob_namespaceObject.isBlobURL)(image?.url)) {
55614            setTemporaryURL(image.url);
55615            return;
55616          }
55617          onInitialSelectLogo(image);
55618        },
55619        onError: onUploadError,
55620        multiple: false
55621      });
55622    };
55623    const mediaReplaceFlowProps = {
55624      mediaURL: logoUrl,
55625      name: !logoUrl ? (0,external_wp_i18n_namespaceObject.__)('Choose logo') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
55626      onSelect: onSelectLogo,
55627      onError: onUploadError,
55628      onReset: onRemoveLogo
55629    };
55630    const controls = canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
55631      group: "other",
55632      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogoReplaceFlow, {
55633        ...mediaReplaceFlowProps
55634      })
55635    });
55636    let logoImage;
55637    const isLoading = siteLogoId === undefined || isRequestingMediaItem;
55638    if (isLoading) {
55639      logoImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {});
55640    }
55641  
55642    // Reset temporary url when logoUrl is available.
55643    (0,external_wp_element_namespaceObject.useEffect)(() => {
55644      if (logoUrl && temporaryURL) {
55645        setTemporaryURL();
55646      }
55647    }, [logoUrl, temporaryURL]);
55648    if (!!logoUrl || !!temporaryURL) {
55649      logoImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55650        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogo, {
55651          alt: alt,
55652          attributes: attributes,
55653          className: className,
55654          isSelected: isSelected,
55655          setAttributes: setAttributes,
55656          logoUrl: temporaryURL || logoUrl,
55657          setLogo: setLogo,
55658          logoId: mediaItemData?.id || siteLogoId,
55659          siteUrl: url,
55660          setIcon: setIcon,
55661          iconId: siteIconId,
55662          canUserEdit: canUserEdit
55663        }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropZone, {
55664          onFilesDrop: onFilesDrop
55665        })]
55666      });
55667    }
55668    const placeholder = content => {
55669      const placeholderClassName = dist_clsx('block-editor-media-placeholder', className);
55670      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
55671        className: placeholderClassName,
55672        preview: logoImage,
55673        withIllustration: true,
55674        style: {
55675          width
55676        },
55677        children: content
55678      });
55679    };
55680    const classes = dist_clsx(className, {
55681      'is-default-size': !width,
55682      'is-transient': temporaryURL
55683    });
55684    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
55685      className: classes
55686    });
55687    const mediaInspectorPanel = (canUserEdit || logoUrl) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
55688      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
55689        title: (0,external_wp_i18n_namespaceObject.__)('Media'),
55690        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55691          className: "block-library-site-logo__inspector-media-replace-container",
55692          children: !canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorLogoPreview, {
55693            media: mediaItemData,
55694            itemGroupProps: {
55695              isBordered: true,
55696              className: 'block-library-site-logo__inspector-readonly-logo-preview'
55697            }
55698          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55699            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogoReplaceFlow, {
55700              ...mediaReplaceFlowProps,
55701              name: !!logoUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorLogoPreview, {
55702                media: mediaItemData
55703              }) : (0,external_wp_i18n_namespaceObject.__)('Choose logo'),
55704              renderToggle: props => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
55705                ...props,
55706                __next40pxDefaultSize: true,
55707                children: temporaryURL ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : props.children
55708              })
55709            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropZone, {
55710              onFilesDrop: onFilesDrop
55711            })]
55712          })
55713        })
55714      })
55715    });
55716    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
55717      ...blockProps,
55718      children: [controls, mediaInspectorPanel, (!!logoUrl || !!temporaryURL) && logoImage, (isLoading || !temporaryURL && !logoUrl && !canUserEdit) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
55719        className: "site-logo_placeholder",
55720        withIllustration: true,
55721        children: isLoading && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
55722          className: "components-placeholder__preview",
55723          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
55724        })
55725      }), !isLoading && !temporaryURL && !logoUrl && canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
55726        onSelect: onInitialSelectLogo,
55727        accept: ACCEPT_MEDIA_STRING,
55728        allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
55729        onError: onUploadError,
55730        placeholder: placeholder,
55731        mediaLibraryButton: ({
55732          open
55733        }) => {
55734          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
55735            __next40pxDefaultSize: true,
55736            icon: library_upload,
55737            variant: "primary",
55738            label: (0,external_wp_i18n_namespaceObject.__)('Choose logo'),
55739            showTooltip: true,
55740            tooltipPosition: "middle right",
55741            onClick: () => {
55742              open();
55743            }
55744          });
55745        }
55746      })]
55747    });
55748  }
55749  
55750  ;// ./node_modules/@wordpress/block-library/build-module/site-logo/transforms.js
55751  /**
55752   * WordPress dependencies
55753   */
55754  
55755  const site_logo_transforms_transforms = {
55756    to: [{
55757      type: 'block',
55758      blocks: ['core/site-title'],
55759      transform: ({
55760        isLink,
55761        linkTarget
55762      }) => {
55763        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-title', {
55764          isLink,
55765          linkTarget
55766        });
55767      }
55768    }]
55769  };
55770  /* harmony default export */ const site_logo_transforms = (site_logo_transforms_transforms);
55771  
55772  ;// ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
55773  /**
55774   * WordPress dependencies
55775   */
55776  
55777  
55778  /**
55779   * Internal dependencies
55780   */
55781  
55782  const site_logo_metadata = {
55783    $schema: "https://schemas.wp.org/trunk/block.json",
55784    apiVersion: 3,
55785    name: "core/site-logo",
55786    title: "Site Logo",
55787    category: "theme",
55788    description: "Display an image to represent this site. Update this block and the changes apply everywhere.",
55789    textdomain: "default",
55790    attributes: {
55791      width: {
55792        type: "number"
55793      },
55794      isLink: {
55795        type: "boolean",
55796        "default": true,
55797        role: "content"
55798      },
55799      linkTarget: {
55800        type: "string",
55801        "default": "_self",
55802        role: "content"
55803      },
55804      shouldSyncIcon: {
55805        type: "boolean"
55806      }
55807    },
55808    example: {
55809      viewportWidth: 500,
55810      attributes: {
55811        width: 350,
55812        className: "block-editor-block-types-list__site-logo-example"
55813      }
55814    },
55815    supports: {
55816      html: false,
55817      align: true,
55818      alignWide: false,
55819      color: {
55820        __experimentalDuotone: "img, .components-placeholder__illustration, .components-placeholder::before",
55821        text: false,
55822        background: false
55823      },
55824      spacing: {
55825        margin: true,
55826        padding: true,
55827        __experimentalDefaultControls: {
55828          margin: false,
55829          padding: false
55830        }
55831      },
55832      interactivity: {
55833        clientNavigation: true
55834      }
55835    },
55836    styles: [{
55837      name: "default",
55838      label: "Default",
55839      isDefault: true
55840    }, {
55841      name: "rounded",
55842      label: "Rounded"
55843    }],
55844    editorStyle: "wp-block-site-logo-editor",
55845    style: "wp-block-site-logo"
55846  };
55847  
55848  
55849  const {
55850    name: site_logo_name
55851  } = site_logo_metadata;
55852  
55853  const site_logo_settings = {
55854    icon: site_logo,
55855    example: {},
55856    edit: LogoEdit,
55857    transforms: site_logo_transforms
55858  };
55859  const site_logo_init = () => initBlock({
55860    name: site_logo_name,
55861    metadata: site_logo_metadata,
55862    settings: site_logo_settings
55863  });
55864  
55865  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/edit.js
55866  /**
55867   * External dependencies
55868   */
55869  
55870  
55871  /**
55872   * WordPress dependencies
55873   */
55874  
55875  
55876  
55877  
55878  
55879  
55880  function SiteTaglineEdit({
55881    attributes,
55882    setAttributes,
55883    insertBlocksAfter
55884  }) {
55885    const {
55886      textAlign,
55887      level,
55888      levelOptions
55889    } = attributes;
55890    const {
55891      canUserEdit,
55892      tagline
55893    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
55894      const {
55895        canUser,
55896        getEntityRecord,
55897        getEditedEntityRecord
55898      } = select(external_wp_coreData_namespaceObject.store);
55899      const canEdit = canUser('update', {
55900        kind: 'root',
55901        name: 'site'
55902      });
55903      const settings = canEdit ? getEditedEntityRecord('root', 'site') : {};
55904      const readOnlySettings = getEntityRecord('root', '__unstableBase');
55905      return {
55906        canUserEdit: canEdit,
55907        tagline: canEdit ? settings?.description : readOnlySettings?.description
55908      };
55909    }, []);
55910    const TagName = level === 0 ? 'p' : `h$level}`;
55911    const {
55912      editEntityRecord
55913    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
55914    function setTagline(newTagline) {
55915      editEntityRecord('root', 'site', undefined, {
55916        description: newTagline
55917      });
55918    }
55919    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
55920      className: dist_clsx({
55921        [`has-text-align-$textAlign}`]: textAlign,
55922        'wp-block-site-tagline__placeholder': !canUserEdit && !tagline
55923      })
55924    });
55925    const siteTaglineContent = canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
55926      allowedFormats: [],
55927      onChange: setTagline,
55928      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site tagline text'),
55929      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site tagline…'),
55930      tagName: TagName,
55931      value: tagline,
55932      disableLineBreaks: true,
55933      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
55934      ...blockProps
55935    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
55936      ...blockProps,
55937      children: tagline || (0,external_wp_i18n_namespaceObject.__)('Site Tagline placeholder')
55938    });
55939    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55940      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
55941        group: "block",
55942        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
55943          value: level,
55944          options: levelOptions,
55945          onChange: newLevel => setAttributes({
55946            level: newLevel
55947          })
55948        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
55949          onChange: newAlign => setAttributes({
55950            textAlign: newAlign
55951          }),
55952          value: textAlign
55953        })]
55954      }), siteTaglineContent]
55955    });
55956  }
55957  
55958  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/icon.js
55959  /**
55960   * WordPress dependencies
55961   */
55962  
55963  
55964  /* harmony default export */ const site_tagline_icon = (/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
55965    xmlns: "http://www.w3.org/2000/svg",
55966    width: "24",
55967    height: "24",
55968    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
55969      d: "M4 10.5h16V9H4v1.5ZM4 15h9v-1.5H4V15Z"
55970    })
55971  }));
55972  
55973  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/deprecated.js
55974  /**
55975   * Internal dependencies
55976   */
55977  
55978  const site_tagline_deprecated_v1 = {
55979    attributes: {
55980      textAlign: {
55981        type: 'string'
55982      }
55983    },
55984    supports: {
55985      align: ['wide', 'full'],
55986      html: false,
55987      color: {
55988        gradients: true
55989      },
55990      spacing: {
55991        margin: true,
55992        padding: true
55993      },
55994      typography: {
55995        fontSize: true,
55996        lineHeight: true,
55997        __experimentalFontFamily: true,
55998        __experimentalTextTransform: true,
55999        __experimentalFontStyle: true,
56000        __experimentalFontWeight: true,
56001        __experimentalLetterSpacing: true
56002      }
56003    },
56004    save() {
56005      return null;
56006    },
56007    migrate: migrate_font_family,
56008    isEligible({
56009      style
56010    }) {
56011      return style?.typography?.fontFamily;
56012    }
56013  };
56014  
56015  /**
56016   * New deprecations need to be placed first
56017   * for them to have higher priority.
56018   *
56019   * Old deprecations may need to be updated as well.
56020   *
56021   * See block-deprecation.md
56022   */
56023  /* harmony default export */ const site_tagline_deprecated = ([site_tagline_deprecated_v1]);
56024  
56025  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
56026  /**
56027   * Internal dependencies
56028   */
56029  
56030  const site_tagline_metadata = {
56031    $schema: "https://schemas.wp.org/trunk/block.json",
56032    apiVersion: 3,
56033    name: "core/site-tagline",
56034    title: "Site Tagline",
56035    category: "theme",
56036    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.",
56037    keywords: ["description"],
56038    textdomain: "default",
56039    attributes: {
56040      textAlign: {
56041        type: "string"
56042      },
56043      level: {
56044        type: "number",
56045        "default": 0
56046      },
56047      levelOptions: {
56048        type: "array",
56049        "default": [0, 1, 2, 3, 4, 5, 6]
56050      }
56051    },
56052    example: {
56053      viewportWidth: 350,
56054      attributes: {
56055        textAlign: "center"
56056      }
56057    },
56058    supports: {
56059      align: ["wide", "full"],
56060      html: false,
56061      color: {
56062        gradients: true,
56063        __experimentalDefaultControls: {
56064          background: true,
56065          text: true
56066        }
56067      },
56068      spacing: {
56069        margin: true,
56070        padding: true,
56071        __experimentalDefaultControls: {
56072          margin: false,
56073          padding: false
56074        }
56075      },
56076      typography: {
56077        fontSize: true,
56078        lineHeight: true,
56079        __experimentalFontFamily: true,
56080        __experimentalTextTransform: true,
56081        __experimentalTextDecoration: true,
56082        __experimentalFontStyle: true,
56083        __experimentalFontWeight: true,
56084        __experimentalLetterSpacing: true,
56085        __experimentalWritingMode: true,
56086        __experimentalDefaultControls: {
56087          fontSize: true
56088        }
56089      },
56090      interactivity: {
56091        clientNavigation: true
56092      },
56093      __experimentalBorder: {
56094        radius: true,
56095        color: true,
56096        width: true,
56097        style: true
56098      }
56099    },
56100    editorStyle: "wp-block-site-tagline-editor",
56101    style: "wp-block-site-tagline"
56102  };
56103  
56104  
56105  
56106  const {
56107    name: site_tagline_name
56108  } = site_tagline_metadata;
56109  
56110  const site_tagline_settings = {
56111    icon: site_tagline_icon,
56112    edit: SiteTaglineEdit,
56113    deprecated: site_tagline_deprecated
56114  };
56115  const site_tagline_init = () => initBlock({
56116    name: site_tagline_name,
56117    metadata: site_tagline_metadata,
56118    settings: site_tagline_settings
56119  });
56120  
56121  ;// ./node_modules/@wordpress/icons/build-module/library/map-marker.js
56122  /**
56123   * WordPress dependencies
56124   */
56125  
56126  
56127  const mapMarker = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56128    xmlns: "http://www.w3.org/2000/svg",
56129    viewBox: "0 0 24 24",
56130    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56131      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"
56132    })
56133  });
56134  /* harmony default export */ const map_marker = (mapMarker);
56135  
56136  ;// ./node_modules/@wordpress/block-library/build-module/site-title/edit.js
56137  /**
56138   * External dependencies
56139   */
56140  
56141  
56142  /**
56143   * WordPress dependencies
56144   */
56145  
56146  
56147  
56148  
56149  
56150  
56151  
56152  
56153  /**
56154   * Internal dependencies
56155   */
56156  
56157  
56158  function SiteTitleEdit({
56159    attributes,
56160    setAttributes,
56161    insertBlocksAfter
56162  }) {
56163    const {
56164      level,
56165      levelOptions,
56166      textAlign,
56167      isLink,
56168      linkTarget
56169    } = attributes;
56170    const {
56171      canUserEdit,
56172      title
56173    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
56174      const {
56175        canUser,
56176        getEntityRecord,
56177        getEditedEntityRecord
56178      } = select(external_wp_coreData_namespaceObject.store);
56179      const canEdit = canUser('update', {
56180        kind: 'root',
56181        name: 'site'
56182      });
56183      const settings = canEdit ? getEditedEntityRecord('root', 'site') : {};
56184      const readOnlySettings = getEntityRecord('root', '__unstableBase');
56185      return {
56186        canUserEdit: canEdit,
56187        title: canEdit ? settings?.title : readOnlySettings?.name
56188      };
56189    }, []);
56190    const {
56191      editEntityRecord
56192    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
56193    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
56194    function setTitle(newTitle) {
56195      editEntityRecord('root', 'site', undefined, {
56196        title: newTitle
56197      });
56198    }
56199    const TagName = level === 0 ? 'p' : `h$level}`;
56200    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
56201      className: dist_clsx({
56202        [`has-text-align-$textAlign}`]: textAlign,
56203        'wp-block-site-title__placeholder': !canUserEdit && !title
56204      })
56205    });
56206    const siteTitleContent = canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
56207      ...blockProps,
56208      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
56209        tagName: isLink ? 'a' : 'span',
56210        href: isLink ? '#site-title-pseudo-link' : undefined,
56211        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site title text'),
56212        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site title…'),
56213        value: title,
56214        onChange: setTitle,
56215        allowedFormats: [],
56216        disableLineBreaks: true,
56217        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
56218      })
56219    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
56220      ...blockProps,
56221      children: isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
56222        href: "#site-title-pseudo-link",
56223        onClick: event => event.preventDefault(),
56224        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title) || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')
56225      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
56226        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title) || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')
56227      })
56228    });
56229    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
56230      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
56231        group: "block",
56232        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
56233          value: level,
56234          options: levelOptions,
56235          onChange: newLevel => setAttributes({
56236            level: newLevel
56237          })
56238        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
56239          value: textAlign,
56240          onChange: nextAlign => {
56241            setAttributes({
56242              textAlign: nextAlign
56243            });
56244          }
56245        })]
56246      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
56247        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
56248          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
56249          resetAll: () => {
56250            setAttributes({
56251              isLink: true,
56252              linkTarget: '_self'
56253            });
56254          },
56255          dropdownMenuProps: dropdownMenuProps,
56256          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
56257            hasValue: () => !isLink,
56258            label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
56259            onDeselect: () => setAttributes({
56260              isLink: true
56261            }),
56262            isShownByDefault: true,
56263            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
56264              __nextHasNoMarginBottom: true,
56265              label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
56266              onChange: () => setAttributes({
56267                isLink: !isLink
56268              }),
56269              checked: isLink
56270            })
56271          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
56272            hasValue: () => linkTarget !== '_self',
56273            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
56274            onDeselect: () => setAttributes({
56275              linkTarget: '_self'
56276            }),
56277            isShownByDefault: true,
56278            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
56279              __nextHasNoMarginBottom: true,
56280              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
56281              onChange: value => setAttributes({
56282                linkTarget: value ? '_blank' : '_self'
56283              }),
56284              checked: linkTarget === '_blank'
56285            })
56286          })]
56287        })
56288      }), siteTitleContent]
56289    });
56290  }
56291  
56292  ;// ./node_modules/@wordpress/block-library/build-module/site-title/deprecated.js
56293  /**
56294   * Internal dependencies
56295   */
56296  
56297  const site_title_deprecated_v1 = {
56298    attributes: {
56299      level: {
56300        type: 'number',
56301        default: 1
56302      },
56303      textAlign: {
56304        type: 'string'
56305      },
56306      isLink: {
56307        type: 'boolean',
56308        default: true
56309      },
56310      linkTarget: {
56311        type: 'string',
56312        default: '_self'
56313      }
56314    },
56315    supports: {
56316      align: ['wide', 'full'],
56317      html: false,
56318      color: {
56319        gradients: true,
56320        link: true
56321      },
56322      spacing: {
56323        padding: true,
56324        margin: true
56325      },
56326      typography: {
56327        fontSize: true,
56328        lineHeight: true,
56329        __experimentalFontFamily: true,
56330        __experimentalTextTransform: true,
56331        __experimentalFontStyle: true,
56332        __experimentalFontWeight: true,
56333        __experimentalLetterSpacing: true
56334      }
56335    },
56336    save() {
56337      return null;
56338    },
56339    migrate: migrate_font_family,
56340    isEligible({
56341      style
56342    }) {
56343      return style?.typography?.fontFamily;
56344    }
56345  };
56346  
56347  /**
56348   * New deprecations need to be placed first
56349   * for them to have higher priority.
56350   *
56351   * Old deprecations may need to be updated as well.
56352   *
56353   * See block-deprecation.md
56354   */
56355  /* harmony default export */ const site_title_deprecated = ([site_title_deprecated_v1]);
56356  
56357  ;// ./node_modules/@wordpress/block-library/build-module/site-title/transforms.js
56358  /**
56359   * WordPress dependencies
56360   */
56361  
56362  const site_title_transforms_transforms = {
56363    to: [{
56364      type: 'block',
56365      blocks: ['core/site-logo'],
56366      transform: ({
56367        isLink,
56368        linkTarget
56369      }) => {
56370        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo', {
56371          isLink,
56372          linkTarget
56373        });
56374      }
56375    }]
56376  };
56377  /* harmony default export */ const site_title_transforms = (site_title_transforms_transforms);
56378  
56379  ;// ./node_modules/@wordpress/block-library/build-module/site-title/index.js
56380  /**
56381   * WordPress dependencies
56382   */
56383  
56384  
56385  /**
56386   * Internal dependencies
56387   */
56388  
56389  const site_title_metadata = {
56390    $schema: "https://schemas.wp.org/trunk/block.json",
56391    apiVersion: 3,
56392    name: "core/site-title",
56393    title: "Site Title",
56394    category: "theme",
56395    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.",
56396    textdomain: "default",
56397    attributes: {
56398      level: {
56399        type: "number",
56400        "default": 1
56401      },
56402      levelOptions: {
56403        type: "array",
56404        "default": [0, 1, 2, 3, 4, 5, 6]
56405      },
56406      textAlign: {
56407        type: "string"
56408      },
56409      isLink: {
56410        type: "boolean",
56411        "default": true,
56412        role: "content"
56413      },
56414      linkTarget: {
56415        type: "string",
56416        "default": "_self",
56417        role: "content"
56418      }
56419    },
56420    example: {
56421      viewportWidth: 500
56422    },
56423    supports: {
56424      align: ["wide", "full"],
56425      html: false,
56426      color: {
56427        gradients: true,
56428        link: true,
56429        __experimentalDefaultControls: {
56430          background: true,
56431          text: true,
56432          link: true
56433        }
56434      },
56435      spacing: {
56436        padding: true,
56437        margin: true,
56438        __experimentalDefaultControls: {
56439          margin: false,
56440          padding: false
56441        }
56442      },
56443      typography: {
56444        fontSize: true,
56445        lineHeight: true,
56446        __experimentalFontFamily: true,
56447        __experimentalTextTransform: true,
56448        __experimentalTextDecoration: true,
56449        __experimentalFontStyle: true,
56450        __experimentalFontWeight: true,
56451        __experimentalLetterSpacing: true,
56452        __experimentalWritingMode: true,
56453        __experimentalDefaultControls: {
56454          fontSize: true
56455        }
56456      },
56457      interactivity: {
56458        clientNavigation: true
56459      },
56460      __experimentalBorder: {
56461        radius: true,
56462        color: true,
56463        width: true,
56464        style: true
56465      }
56466    },
56467    editorStyle: "wp-block-site-title-editor",
56468    style: "wp-block-site-title"
56469  };
56470  
56471  
56472  
56473  const {
56474    name: site_title_name
56475  } = site_title_metadata;
56476  
56477  const site_title_settings = {
56478    icon: map_marker,
56479    example: {
56480      viewportWidth: 350,
56481      attributes: {
56482        textAlign: 'center'
56483      }
56484    },
56485    edit: SiteTitleEdit,
56486    transforms: site_title_transforms,
56487    deprecated: site_title_deprecated
56488  };
56489  const site_title_init = () => initBlock({
56490    name: site_title_name,
56491    metadata: site_title_metadata,
56492    settings: site_title_settings
56493  });
56494  
56495  ;// ./node_modules/@wordpress/icons/build-module/library/share.js
56496  /**
56497   * WordPress dependencies
56498   */
56499  
56500  
56501  const share = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56502    viewBox: "0 0 24 24",
56503    xmlns: "http://www.w3.org/2000/svg",
56504    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56505      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"
56506    })
56507  });
56508  /* harmony default export */ const library_share = (share);
56509  
56510  ;// ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js
56511  /**
56512   * WordPress dependencies
56513   */
56514  
56515  
56516  const keyboardReturn = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56517    xmlns: "http://www.w3.org/2000/svg",
56518    viewBox: "0 0 24 24",
56519    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56520      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"
56521    })
56522  });
56523  /* harmony default export */ const keyboard_return = (keyboardReturn);
56524  
56525  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js
56526  /**
56527   * WordPress dependencies
56528   */
56529  
56530  
56531  const WordPressIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56532    width: "24",
56533    height: "24",
56534    viewBox: "0 0 24 24",
56535    version: "1.1",
56536    xmlns: "http://www.w3.org/2000/svg",
56537    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56538      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"
56539    })
56540  });
56541  
56542  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js
56543  /**
56544   * WordPress dependencies
56545   */
56546  
56547  
56548  const FivehundredpxIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56549    width: "24",
56550    height: "24",
56551    viewBox: "0 0 24 24",
56552    version: "1.1",
56553    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56554      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"
56555    })
56556  });
56557  
56558  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js
56559  /**
56560   * WordPress dependencies
56561   */
56562  
56563  
56564  const AmazonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56565    width: "24",
56566    height: "24",
56567    viewBox: "0 0 24 24",
56568    version: "1.1",
56569    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56570      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"
56571    })
56572  });
56573  
56574  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js
56575  /**
56576   * WordPress dependencies
56577   */
56578  
56579  
56580  
56581  const BandcampIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56582    width: "24",
56583    height: "24",
56584    viewBox: "0 0 24 24",
56585    version: "1.1",
56586    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56587      d: "M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"
56588    })
56589  });
56590  
56591  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js
56592  /**
56593   * WordPress dependencies
56594   */
56595  
56596  
56597  const BehanceIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56598    width: "24",
56599    height: "24",
56600    viewBox: "0 0 24 24",
56601    version: "1.1",
56602    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56603      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"
56604    })
56605  });
56606  
56607  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/bluesky.js
56608  /**
56609   * WordPress dependencies
56610   */
56611  
56612  
56613  const BlueskyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56614    width: "24",
56615    height: "24",
56616    viewBox: "0 0 24 24",
56617    version: "1.1",
56618    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56619      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"
56620    })
56621  });
56622  
56623  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js
56624  /**
56625   * WordPress dependencies
56626   */
56627  
56628  
56629  const ChainIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56630    width: "24",
56631    height: "24",
56632    viewBox: "0 0 24 24",
56633    version: "1.1",
56634    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56635      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"
56636    })
56637  });
56638  
56639  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js
56640  /**
56641   * WordPress dependencies
56642   */
56643  
56644  
56645  const CodepenIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56646    width: "24",
56647    height: "24",
56648    viewBox: "0 0 24 24",
56649    version: "1.1",
56650    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56651      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"
56652    })
56653  });
56654  
56655  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js
56656  /**
56657   * WordPress dependencies
56658   */
56659  
56660  
56661  const DeviantArtIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56662    width: "24",
56663    height: "24",
56664    viewBox: "0 0 24 24",
56665    version: "1.1",
56666    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56667      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"
56668    })
56669  });
56670  
56671  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/discord.js
56672  /**
56673   * WordPress dependencies
56674   */
56675  
56676  
56677  const DiscordIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56678    width: "24",
56679    height: "24",
56680    viewBox: "0 0 24 24",
56681    version: "1.1",
56682    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56683      d: "M20.317 4.369A19.88 19.88 0 0 0 15.894 3a14.145 14.145 0 0 0-.719 1.518 19.205 19.205 0 0 0-5.351 0A14.183 14.183 0 0 0 9.104 3 19.896 19.896 0 0 0 4.682 4.369a18.921 18.921 0 0 0-3.012 12.52 19.929 19.929 0 0 0 6.081 3.097c.487-.65.922-1.339 1.3-2.061a12.445 12.445 0 0 1-1.958-.896c.165-.12.326-.246.483-.374a12.445 12.445 0 0 0 8.946 0c.157.128.318.253.483.374-.627.371-1.281.683-1.958.896.379.722.813 1.41 1.3 2.061a19.94 19.94 0 0 0 6.081-3.097 18.921 18.921 0 0 0-3.012-12.52ZM8.12 15.233c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Zm7.757 0c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Z"
56684    })
56685  });
56686  
56687  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js
56688  /**
56689   * WordPress dependencies
56690   */
56691  
56692  
56693  const DribbbleIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56694    width: "24",
56695    height: "24",
56696    viewBox: "0 0 24 24",
56697    version: "1.1",
56698    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56699      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"
56700    })
56701  });
56702  
56703  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js
56704  /**
56705   * WordPress dependencies
56706   */
56707  
56708  
56709  const DropboxIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56710    width: "24",
56711    height: "24",
56712    viewBox: "0 0 24 24",
56713    version: "1.1",
56714    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56715      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"
56716    })
56717  });
56718  
56719  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js
56720  /**
56721   * WordPress dependencies
56722   */
56723  
56724  
56725  const EtsyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56726    width: "24",
56727    height: "24",
56728    viewBox: "0 0 24 24",
56729    version: "1.1",
56730    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56731      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"
56732    })
56733  });
56734  
56735  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js
56736  /**
56737   * WordPress dependencies
56738   */
56739  
56740  
56741  const FacebookIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56742    width: "24",
56743    height: "24",
56744    viewBox: "0 0 24 24",
56745    version: "1.1",
56746    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56747      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"
56748    })
56749  });
56750  
56751  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js
56752  /**
56753   * WordPress dependencies
56754   */
56755  
56756  
56757  const FeedIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56758    width: "24",
56759    height: "24",
56760    viewBox: "0 0 24 24",
56761    version: "1.1",
56762    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56763      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"
56764    })
56765  });
56766  
56767  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js
56768  /**
56769   * WordPress dependencies
56770   */
56771  
56772  
56773  const FlickrIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56774    width: "24",
56775    height: "24",
56776    viewBox: "0 0 24 24",
56777    version: "1.1",
56778    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56779      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"
56780    })
56781  });
56782  
56783  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js
56784  /**
56785   * WordPress dependencies
56786   */
56787  
56788  
56789  const FoursquareIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56790    width: "24",
56791    height: "24",
56792    viewBox: "0 0 24 24",
56793    version: "1.1",
56794    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56795      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"
56796    })
56797  });
56798  
56799  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js
56800  /**
56801   * WordPress dependencies
56802   */
56803  
56804  
56805  const GoodreadsIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56806    width: "24",
56807    height: "24",
56808    viewBox: "0 0 24 24",
56809    version: "1.1",
56810    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56811      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"
56812    })
56813  });
56814  
56815  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js
56816  /**
56817   * WordPress dependencies
56818   */
56819  
56820  
56821  const GoogleIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56822    width: "24",
56823    height: "24",
56824    viewBox: "0 0 24 24",
56825    version: "1.1",
56826    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56827      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"
56828    })
56829  });
56830  
56831  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js
56832  /**
56833   * WordPress dependencies
56834   */
56835  
56836  
56837  const GitHubIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56838    width: "24",
56839    height: "24",
56840    viewBox: "0 0 24 24",
56841    version: "1.1",
56842    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56843      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"
56844    })
56845  });
56846  
56847  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/gravatar.js
56848  /**
56849   * WordPress dependencies
56850   */
56851  
56852  
56853  const GravatarIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56854    width: "24",
56855    height: "24",
56856    viewBox: "0 0 24 24",
56857    version: "1.1",
56858    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56859      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"
56860    })
56861  });
56862  
56863  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js
56864  /**
56865   * WordPress dependencies
56866   */
56867  
56868  
56869  const InstagramIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56870    width: "24",
56871    height: "24",
56872    viewBox: "0 0 24 24",
56873    version: "1.1",
56874    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56875      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"
56876    })
56877  });
56878  
56879  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js
56880  /**
56881   * WordPress dependencies
56882   */
56883  
56884  
56885  const LastfmIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56886    width: "24",
56887    height: "24",
56888    viewBox: "0 0 24 24",
56889    version: "1.1",
56890    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56891      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"
56892    })
56893  });
56894  
56895  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js
56896  /**
56897   * WordPress dependencies
56898   */
56899  
56900  
56901  const LinkedInIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56902    width: "24",
56903    height: "24",
56904    viewBox: "0 0 24 24",
56905    version: "1.1",
56906    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56907      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"
56908    })
56909  });
56910  
56911  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js
56912  /**
56913   * WordPress dependencies
56914   */
56915  
56916  
56917  const MailIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56918    width: "24",
56919    height: "24",
56920    viewBox: "0 0 24 24",
56921    version: "1.1",
56922    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56923      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"
56924    })
56925  });
56926  
56927  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js
56928  /**
56929   * WordPress dependencies
56930   */
56931  
56932  
56933  const MastodonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56934    width: "24",
56935    height: "24",
56936    viewBox: "0 0 24 24",
56937    version: "1.1",
56938    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56939      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"
56940    })
56941  });
56942  
56943  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js
56944  /**
56945   * WordPress dependencies
56946   */
56947  
56948  
56949  const MeetupIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56950    width: "24",
56951    height: "24",
56952    viewBox: "0 0 24 24",
56953    version: "1.1",
56954    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56955      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"
56956    })
56957  });
56958  
56959  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js
56960  /**
56961   * WordPress dependencies
56962   */
56963  
56964  
56965  const MediumIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56966    width: "24",
56967    height: "24",
56968    viewBox: "0 0 24 24",
56969    version: "1.1",
56970    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56971      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"
56972    })
56973  });
56974  
56975  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/patreon.js
56976  /**
56977   * WordPress dependencies
56978   */
56979  
56980  
56981  const PatreonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56982    width: "24",
56983    height: "24",
56984    viewBox: "0 0 24 24",
56985    version: "1.1",
56986    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56987      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"
56988    })
56989  });
56990  
56991  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js
56992  /**
56993   * WordPress dependencies
56994   */
56995  
56996  
56997  const PinterestIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56998    width: "24",
56999    height: "24",
57000    viewBox: "0 0 24 24",
57001    version: "1.1",
57002    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57003      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"
57004    })
57005  });
57006  
57007  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js
57008  /**
57009   * WordPress dependencies
57010   */
57011  
57012  
57013  const PocketIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57014    width: "24",
57015    height: "24",
57016    viewBox: "0 0 24 24",
57017    version: "1.1",
57018    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57019      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"
57020    })
57021  });
57022  
57023  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js
57024  /**
57025   * WordPress dependencies
57026   */
57027  
57028  
57029  const RedditIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57030    width: "24",
57031    height: "24",
57032    viewBox: "0 0 24 24",
57033    version: "1.1",
57034    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57035      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"
57036    })
57037  });
57038  
57039  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js
57040  /**
57041   * WordPress dependencies
57042   */
57043  
57044  
57045  const SkypeIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57046    width: "24",
57047    height: "24",
57048    viewBox: "0 0 24 24",
57049    version: "1.1",
57050    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57051      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"
57052    })
57053  });
57054  
57055  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js
57056  /**
57057   * WordPress dependencies
57058   */
57059  
57060  
57061  const SnapchatIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57062    width: "24",
57063    height: "24",
57064    viewBox: "0 0 24 24",
57065    version: "1.1",
57066    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57067      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"
57068    })
57069  });
57070  
57071  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js
57072  /**
57073   * WordPress dependencies
57074   */
57075  
57076  
57077  const SoundCloudIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57078    width: "24",
57079    height: "24",
57080    viewBox: "0 0 24 24",
57081    version: "1.1",
57082    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57083      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"
57084    })
57085  });
57086  
57087  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js
57088  /**
57089   * WordPress dependencies
57090   */
57091  
57092  
57093  const SpotifyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57094    width: "24",
57095    height: "24",
57096    viewBox: "0 0 24 24",
57097    version: "1.1",
57098    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57099      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"
57100    })
57101  });
57102  
57103  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/telegram.js
57104  /**
57105   * WordPress dependencies
57106   */
57107  
57108  
57109  const TelegramIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57110    width: "24",
57111    height: "24",
57112    viewBox: "0 0 128 128",
57113    version: "1.1",
57114    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57115      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"
57116    })
57117  });
57118  
57119  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/threads.js
57120  /**
57121   * WordPress dependencies
57122   */
57123  
57124  
57125  const ThreadsIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57126    width: "24",
57127    height: "24",
57128    viewBox: "0 0 24 24",
57129    version: "1.1",
57130    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57131      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"
57132    })
57133  });
57134  
57135  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/tiktok.js
57136  /**
57137   * WordPress dependencies
57138   */
57139  
57140  
57141  const TiktokIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57142    width: "24",
57143    height: "24",
57144    viewBox: "0 0 32 32",
57145    version: "1.1",
57146    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57147      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"
57148    })
57149  });
57150  
57151  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js
57152  /**
57153   * WordPress dependencies
57154   */
57155  
57156  
57157  const TumblrIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57158    width: "24",
57159    height: "24",
57160    viewBox: "0 0 24 24",
57161    version: "1.1",
57162    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57163      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"
57164    })
57165  });
57166  
57167  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js
57168  /**
57169   * WordPress dependencies
57170   */
57171  
57172  
57173  const TwitchIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57174    width: "24",
57175    height: "24",
57176    viewBox: "0 0 24 24",
57177    version: "1.1",
57178    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57179      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"
57180    })
57181  });
57182  
57183  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js
57184  /**
57185   * WordPress dependencies
57186   */
57187  
57188  
57189  const TwitterIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57190    width: "24",
57191    height: "24",
57192    viewBox: "0 0 24 24",
57193    version: "1.1",
57194    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57195      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"
57196    })
57197  });
57198  
57199  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js
57200  /**
57201   * WordPress dependencies
57202   */
57203  
57204  
57205  const VimeoIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57206    width: "24",
57207    height: "24",
57208    viewBox: "0 0 24 24",
57209    version: "1.1",
57210    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57211      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"
57212    })
57213  });
57214  
57215  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js
57216  /**
57217   * WordPress dependencies
57218   */
57219  
57220  
57221  const VkIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57222    width: "24",
57223    height: "24",
57224    viewBox: "0 0 24 24",
57225    version: "1.1",
57226    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57227      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"
57228    })
57229  });
57230  
57231  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/whatsapp.js
57232  /**
57233   * WordPress dependencies
57234   */
57235  
57236  
57237  const WhatsAppIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57238    width: "24",
57239    height: "24",
57240    viewBox: "0 0 24 24",
57241    version: "1.1",
57242    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57243      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"
57244    })
57245  });
57246  
57247  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/x.js
57248  /**
57249   * WordPress dependencies
57250   */
57251  
57252  
57253  const XIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57254    width: "24",
57255    height: "24",
57256    viewBox: "0 0 24 24",
57257    version: "1.1",
57258    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57259      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"
57260    })
57261  });
57262  
57263  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js
57264  /**
57265   * WordPress dependencies
57266   */
57267  
57268  
57269  const YelpIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57270    width: "24",
57271    height: "24",
57272    viewBox: "0 0 24 24",
57273    version: "1.1",
57274    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57275      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"
57276    })
57277  });
57278  
57279  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js
57280  /**
57281   * WordPress dependencies
57282   */
57283  
57284  
57285  const YouTubeIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57286    width: "24",
57287    height: "24",
57288    viewBox: "0 0 24 24",
57289    version: "1.1",
57290    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57291      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"
57292    })
57293  });
57294  
57295  ;// ./node_modules/@wordpress/block-library/build-module/social-link/variations.js
57296  /**
57297   * Internal dependencies
57298   */
57299  
57300  const social_link_variations_variations = [{
57301    isDefault: true,
57302    name: 'wordpress',
57303    attributes: {
57304      service: 'wordpress'
57305    },
57306    title: 'WordPress',
57307    icon: WordPressIcon
57308  }, {
57309    name: 'fivehundredpx',
57310    attributes: {
57311      service: 'fivehundredpx'
57312    },
57313    title: '500px',
57314    icon: FivehundredpxIcon
57315  }, {
57316    name: 'amazon',
57317    attributes: {
57318      service: 'amazon'
57319    },
57320    title: 'Amazon',
57321    icon: AmazonIcon
57322  }, {
57323    name: 'bandcamp',
57324    attributes: {
57325      service: 'bandcamp'
57326    },
57327    title: 'Bandcamp',
57328    icon: BandcampIcon
57329  }, {
57330    name: 'behance',
57331    attributes: {
57332      service: 'behance'
57333    },
57334    title: 'Behance',
57335    icon: BehanceIcon
57336  }, {
57337    name: 'bluesky',
57338    attributes: {
57339      service: 'bluesky'
57340    },
57341    title: 'Bluesky',
57342    icon: BlueskyIcon
57343  }, {
57344    name: 'chain',
57345    attributes: {
57346      service: 'chain'
57347    },
57348    title: 'Link',
57349    icon: ChainIcon
57350  }, {
57351    name: 'codepen',
57352    attributes: {
57353      service: 'codepen'
57354    },
57355    title: 'CodePen',
57356    icon: CodepenIcon
57357  }, {
57358    name: 'deviantart',
57359    attributes: {
57360      service: 'deviantart'
57361    },
57362    title: 'DeviantArt',
57363    icon: DeviantArtIcon
57364  }, {
57365    name: 'discord',
57366    attributes: {
57367      service: 'discord'
57368    },
57369    title: 'Discord',
57370    icon: DiscordIcon
57371  }, {
57372    name: 'dribbble',
57373    attributes: {
57374      service: 'dribbble'
57375    },
57376    title: 'Dribbble',
57377    icon: DribbbleIcon
57378  }, {
57379    name: 'dropbox',
57380    attributes: {
57381      service: 'dropbox'
57382    },
57383    title: 'Dropbox',
57384    icon: DropboxIcon
57385  }, {
57386    name: 'etsy',
57387    attributes: {
57388      service: 'etsy'
57389    },
57390    title: 'Etsy',
57391    icon: EtsyIcon
57392  }, {
57393    name: 'facebook',
57394    attributes: {
57395      service: 'facebook'
57396    },
57397    title: 'Facebook',
57398    icon: FacebookIcon
57399  }, {
57400    name: 'feed',
57401    attributes: {
57402      service: 'feed'
57403    },
57404    title: 'RSS Feed',
57405    icon: FeedIcon
57406  }, {
57407    name: 'flickr',
57408    attributes: {
57409      service: 'flickr'
57410    },
57411    title: 'Flickr',
57412    icon: FlickrIcon
57413  }, {
57414    name: 'foursquare',
57415    attributes: {
57416      service: 'foursquare'
57417    },
57418    title: 'Foursquare',
57419    icon: FoursquareIcon
57420  }, {
57421    name: 'goodreads',
57422    attributes: {
57423      service: 'goodreads'
57424    },
57425    title: 'Goodreads',
57426    icon: GoodreadsIcon
57427  }, {
57428    name: 'google',
57429    attributes: {
57430      service: 'google'
57431    },
57432    title: 'Google',
57433    icon: GoogleIcon
57434  }, {
57435    name: 'github',
57436    attributes: {
57437      service: 'github'
57438    },
57439    title: 'GitHub',
57440    icon: GitHubIcon
57441  }, {
57442    name: 'gravatar',
57443    attributes: {
57444      service: 'gravatar'
57445    },
57446    title: 'Gravatar',
57447    icon: GravatarIcon
57448  }, {
57449    name: 'instagram',
57450    attributes: {
57451      service: 'instagram'
57452    },
57453    title: 'Instagram',
57454    icon: InstagramIcon
57455  }, {
57456    name: 'lastfm',
57457    attributes: {
57458      service: 'lastfm'
57459    },
57460    title: 'Last.fm',
57461    icon: LastfmIcon
57462  }, {
57463    name: 'linkedin',
57464    attributes: {
57465      service: 'linkedin'
57466    },
57467    title: 'LinkedIn',
57468    icon: LinkedInIcon
57469  }, {
57470    name: 'mail',
57471    attributes: {
57472      service: 'mail'
57473    },
57474    title: 'Mail',
57475    keywords: ['email', 'e-mail'],
57476    icon: MailIcon
57477  }, {
57478    name: 'mastodon',
57479    attributes: {
57480      service: 'mastodon'
57481    },
57482    title: 'Mastodon',
57483    icon: MastodonIcon
57484  }, {
57485    name: 'meetup',
57486    attributes: {
57487      service: 'meetup'
57488    },
57489    title: 'Meetup',
57490    icon: MeetupIcon
57491  }, {
57492    name: 'medium',
57493    attributes: {
57494      service: 'medium'
57495    },
57496    title: 'Medium',
57497    icon: MediumIcon
57498  }, {
57499    name: 'patreon',
57500    attributes: {
57501      service: 'patreon'
57502    },
57503    title: 'Patreon',
57504    icon: PatreonIcon
57505  }, {
57506    name: 'pinterest',
57507    attributes: {
57508      service: 'pinterest'
57509    },
57510    title: 'Pinterest',
57511    icon: PinterestIcon
57512  }, {
57513    name: 'pocket',
57514    attributes: {
57515      service: 'pocket'
57516    },
57517    title: 'Pocket',
57518    icon: PocketIcon
57519  }, {
57520    name: 'reddit',
57521    attributes: {
57522      service: 'reddit'
57523    },
57524    title: 'Reddit',
57525    icon: RedditIcon
57526  }, {
57527    name: 'skype',
57528    attributes: {
57529      service: 'skype'
57530    },
57531    title: 'Skype',
57532    icon: SkypeIcon
57533  }, {
57534    name: 'snapchat',
57535    attributes: {
57536      service: 'snapchat'
57537    },
57538    title: 'Snapchat',
57539    icon: SnapchatIcon
57540  }, {
57541    name: 'soundcloud',
57542    attributes: {
57543      service: 'soundcloud'
57544    },
57545    title: 'SoundCloud',
57546    icon: SoundCloudIcon
57547  }, {
57548    name: 'spotify',
57549    attributes: {
57550      service: 'spotify'
57551    },
57552    title: 'Spotify',
57553    icon: SpotifyIcon
57554  }, {
57555    name: 'telegram',
57556    attributes: {
57557      service: 'telegram'
57558    },
57559    title: 'Telegram',
57560    icon: TelegramIcon
57561  }, {
57562    name: 'threads',
57563    attributes: {
57564      service: 'threads'
57565    },
57566    title: 'Threads',
57567    icon: ThreadsIcon
57568  }, {
57569    name: 'tiktok',
57570    attributes: {
57571      service: 'tiktok'
57572    },
57573    title: 'TikTok',
57574    icon: TiktokIcon
57575  }, {
57576    name: 'tumblr',
57577    attributes: {
57578      service: 'tumblr'
57579    },
57580    title: 'Tumblr',
57581    icon: TumblrIcon
57582  }, {
57583    name: 'twitch',
57584    attributes: {
57585      service: 'twitch'
57586    },
57587    title: 'Twitch',
57588    icon: TwitchIcon
57589  }, {
57590    name: 'twitter',
57591    attributes: {
57592      service: 'twitter'
57593    },
57594    title: 'Twitter',
57595    icon: TwitterIcon
57596  }, {
57597    name: 'vimeo',
57598    attributes: {
57599      service: 'vimeo'
57600    },
57601    title: 'Vimeo',
57602    icon: VimeoIcon
57603  }, {
57604    name: 'vk',
57605    attributes: {
57606      service: 'vk'
57607    },
57608    title: 'VK',
57609    icon: VkIcon
57610  }, {
57611    name: 'whatsapp',
57612    attributes: {
57613      service: 'whatsapp'
57614    },
57615    title: 'WhatsApp',
57616    icon: WhatsAppIcon
57617  }, {
57618    name: 'x',
57619    attributes: {
57620      service: 'x'
57621    },
57622    keywords: ['twitter'],
57623    title: 'X',
57624    icon: XIcon
57625  }, {
57626    name: 'yelp',
57627    attributes: {
57628      service: 'yelp'
57629    },
57630    title: 'Yelp',
57631    icon: YelpIcon
57632  }, {
57633    name: 'youtube',
57634    attributes: {
57635      service: 'youtube'
57636    },
57637    title: 'YouTube',
57638    icon: YouTubeIcon
57639  }];
57640  
57641  /**
57642   * Add `isActive` function to all `social link` variations, if not defined.
57643   * `isActive` function is used to find a variation match from a created
57644   *  Block by providing its attributes.
57645   */
57646  social_link_variations_variations.forEach(variation => {
57647    if (variation.isActive) {
57648      return;
57649    }
57650    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service;
57651  });
57652  /* harmony default export */ const social_link_variations = (social_link_variations_variations);
57653  
57654  ;// ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js
57655  /**
57656   * WordPress dependencies
57657   */
57658  
57659  
57660  /**
57661   * Internal dependencies
57662   */
57663  
57664  
57665  
57666  /**
57667   * Retrieves the social service's icon component.
57668   *
57669   * @param {string} name key for a social service (lowercase slug)
57670   *
57671   * @return {Component} Icon component for social service.
57672   */
57673  const getIconBySite = name => {
57674    const variation = social_link_variations.find(v => v.name === name);
57675    return variation ? variation.icon : ChainIcon;
57676  };
57677  
57678  /**
57679   * Retrieves the display name for the social service.
57680   *
57681   * @param {string} name key for a social service (lowercase slug)
57682   *
57683   * @return {string} Display name for social service
57684   */
57685  const getNameBySite = name => {
57686    const variation = social_link_variations.find(v => v.name === name);
57687    return variation ? variation.title : (0,external_wp_i18n_namespaceObject.__)('Social Icon');
57688  };
57689  
57690  ;// ./node_modules/@wordpress/block-library/build-module/social-link/edit.js
57691  /**
57692   * External dependencies
57693   */
57694  
57695  
57696  /**
57697   * WordPress dependencies
57698   */
57699  
57700  
57701  
57702  
57703  
57704  
57705  
57706  
57707  
57708  /**
57709   * Internal dependencies
57710   */
57711  
57712  
57713  
57714  const SocialLinkURLPopover = ({
57715    url,
57716    setAttributes,
57717    setPopover,
57718    popoverAnchor,
57719    clientId
57720  }) => {
57721    const {
57722      removeBlock
57723    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
57724    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.URLPopover, {
57725      anchor: popoverAnchor,
57726      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Edit social link'),
57727      onClose: () => {
57728        setPopover(false);
57729        popoverAnchor?.focus();
57730      },
57731      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
57732        className: "block-editor-url-popover__link-editor",
57733        onSubmit: event => {
57734          event.preventDefault();
57735          setPopover(false);
57736          popoverAnchor?.focus();
57737        },
57738        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
57739          className: "block-editor-url-input",
57740          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.URLInput, {
57741            value: url,
57742            onChange: nextURL => setAttributes({
57743              url: nextURL
57744            }),
57745            placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter social link'),
57746            label: (0,external_wp_i18n_namespaceObject.__)('Enter social link'),
57747            hideLabelFromVision: true,
57748            disableSuggestions: true,
57749            onKeyDown: event => {
57750              if (!!url || event.defaultPrevented || ![external_wp_keycodes_namespaceObject.BACKSPACE, external_wp_keycodes_namespaceObject.DELETE].includes(event.keyCode)) {
57751                return;
57752              }
57753              removeBlock(clientId);
57754            },
57755            suffix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControlSuffixWrapper, {
57756              variant: "control",
57757              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
57758                icon: keyboard_return,
57759                label: (0,external_wp_i18n_namespaceObject.__)('Apply'),
57760                type: "submit",
57761                size: "small"
57762              })
57763            })
57764          })
57765        })
57766      })
57767    });
57768  };
57769  const SocialLinkEdit = ({
57770    attributes,
57771    context,
57772    isSelected,
57773    setAttributes,
57774    clientId
57775  }) => {
57776    const {
57777      url,
57778      service,
57779      label = '',
57780      rel
57781    } = attributes;
57782    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
57783    const {
57784      showLabels,
57785      iconColor,
57786      iconColorValue,
57787      iconBackgroundColor,
57788      iconBackgroundColorValue
57789    } = context;
57790    const [showURLPopover, setPopover] = (0,external_wp_element_namespaceObject.useState)(false);
57791    const wrapperClasses = dist_clsx('wp-social-link',
57792    // Manually adding this class for backwards compatibility of CSS when moving the
57793    // blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883
57794    'wp-block-social-link', 'wp-social-link-' + service, {
57795      'wp-social-link__is-incomplete': !url,
57796      [`has-$iconColor}-color`]: iconColor,
57797      [`has-$iconBackgroundColor}-background-color`]: iconBackgroundColor
57798    });
57799  
57800    // Use internal state instead of a ref to make sure that the component
57801    // re-renders when the popover's anchor updates.
57802    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
57803    const isContentOnlyMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)() === 'contentOnly';
57804    const IconComponent = getIconBySite(service);
57805    const socialLinkName = getNameBySite(service);
57806    // The initial label (ie. the link text) is an empty string.
57807    // We want to prevent empty links so that the link text always fallbacks to
57808    // the social name, even when users enter and save an empty string or only
57809    // spaces. The PHP render callback fallbacks to the social name as well.
57810    const socialLinkText = label.trim() === '' ? socialLinkName : label;
57811    const ref = (0,external_wp_element_namespaceObject.useRef)();
57812    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
57813      className: 'wp-block-social-link-anchor',
57814      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, ref]),
57815      onClick: () => setPopover(true),
57816      onKeyDown: event => {
57817        if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER) {
57818          event.preventDefault();
57819          setPopover(true);
57820        }
57821      }
57822    });
57823    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
57824      children: [isContentOnlyMode && showLabels &&
57825      /*#__PURE__*/
57826      // Add an extra control to modify the label attribute when content only mode is active.
57827      // With content only mode active, the inspector is hidden, so users need another way
57828      // to edit this attribute.
57829      (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
57830        group: "other",
57831        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
57832          popoverProps: {
57833            position: 'bottom right'
57834          },
57835          renderToggle: ({
57836            isOpen,
57837            onToggle
57838          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
57839            onClick: onToggle,
57840            "aria-haspopup": "true",
57841            "aria-expanded": isOpen,
57842            children: (0,external_wp_i18n_namespaceObject.__)('Text')
57843          }),
57844          renderContent: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
57845            __next40pxDefaultSize: true,
57846            __nextHasNoMarginBottom: true,
57847            className: "wp-block-social-link__toolbar_content_text",
57848            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
57849            help: (0,external_wp_i18n_namespaceObject.__)('Provide a text label or use the default.'),
57850            value: label,
57851            onChange: value => setAttributes({
57852              label: value
57853            }),
57854            placeholder: socialLinkName
57855          })
57856        })
57857      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
57858        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
57859          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
57860          resetAll: () => {
57861            setAttributes({
57862              label: undefined
57863            });
57864          },
57865          dropdownMenuProps: dropdownMenuProps,
57866          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
57867            isShownByDefault: true,
57868            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
57869            hasValue: () => !!label,
57870            onDeselect: () => {
57871              setAttributes({
57872                label: undefined
57873              });
57874            },
57875            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
57876              __next40pxDefaultSize: true,
57877              __nextHasNoMarginBottom: true,
57878              label: (0,external_wp_i18n_namespaceObject.__)('Text'),
57879              help: (0,external_wp_i18n_namespaceObject.__)('The text is visible when enabled from the parent Social Icons block.'),
57880              value: label,
57881              onChange: value => setAttributes({
57882                label: value
57883              }),
57884              placeholder: socialLinkName
57885            })
57886          })
57887        })
57888      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
57889        group: "advanced",
57890        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
57891          __next40pxDefaultSize: true,
57892          __nextHasNoMarginBottom: true,
57893          label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
57894          value: rel || '',
57895          onChange: value => setAttributes({
57896            rel: value
57897          })
57898        })
57899      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
57900        role: "presentation",
57901        className: wrapperClasses,
57902        style: {
57903          color: iconColorValue,
57904          backgroundColor: iconBackgroundColorValue
57905        },
57906        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("button", {
57907          "aria-haspopup": "dialog",
57908          ...blockProps,
57909          role: "button",
57910          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(IconComponent, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
57911            className: dist_clsx('wp-block-social-link-label', {
57912              'screen-reader-text': !showLabels
57913            }),
57914            children: socialLinkText
57915          })]
57916        }), isSelected && showURLPopover && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SocialLinkURLPopover, {
57917          url: url,
57918          setAttributes: setAttributes,
57919          setPopover: setPopover,
57920          popoverAnchor: popoverAnchor,
57921          clientId: clientId
57922        })]
57923      })]
57924    });
57925  };
57926  /* harmony default export */ const social_link_edit = (SocialLinkEdit);
57927  
57928  ;// ./node_modules/@wordpress/block-library/build-module/social-link/index.js
57929  /**
57930   * WordPress dependencies
57931   */
57932  
57933  
57934  /**
57935   * Internal dependencies
57936   */
57937  
57938  
57939  const social_link_metadata = {
57940    $schema: "https://schemas.wp.org/trunk/block.json",
57941    apiVersion: 3,
57942    name: "core/social-link",
57943    title: "Social Icon",
57944    category: "widgets",
57945    parent: ["core/social-links"],
57946    description: "Display an icon linking to a social profile or site.",
57947    textdomain: "default",
57948    attributes: {
57949      url: {
57950        type: "string",
57951        role: "content"
57952      },
57953      service: {
57954        type: "string"
57955      },
57956      label: {
57957        type: "string",
57958        role: "content"
57959      },
57960      rel: {
57961        type: "string"
57962      }
57963    },
57964    usesContext: ["openInNewTab", "showLabels", "iconColor", "iconColorValue", "iconBackgroundColor", "iconBackgroundColorValue"],
57965    supports: {
57966      reusable: false,
57967      html: false,
57968      interactivity: {
57969        clientNavigation: true
57970      }
57971    },
57972    editorStyle: "wp-block-social-link-editor"
57973  };
57974  
57975  const {
57976    name: social_link_name
57977  } = social_link_metadata;
57978  
57979  const social_link_settings = {
57980    icon: library_share,
57981    edit: social_link_edit,
57982    variations: social_link_variations
57983  };
57984  const social_link_init = () => initBlock({
57985    name: social_link_name,
57986    metadata: social_link_metadata,
57987    settings: social_link_settings
57988  });
57989  
57990  ;// ./node_modules/@wordpress/block-library/build-module/social-links/deprecated.js
57991  /**
57992   * External dependencies
57993   */
57994  
57995  
57996  /**
57997   * WordPress dependencies
57998   */
57999  
58000  
58001  /**
58002   * The specific handling by `className` below is needed because `itemsJustification`
58003   * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't
58004   * declared in block.json.
58005   *
58006   * @param {Object} attributes Block's attributes.
58007   */
58008  
58009  const social_links_deprecated_migrateWithLayout = attributes => {
58010    if (!!attributes.layout) {
58011      return attributes;
58012    }
58013    const {
58014      className
58015    } = attributes;
58016    // Matches classes with `items-justified-` prefix.
58017    const prefix = `items-justified-`;
58018    const justifiedItemsRegex = new RegExp(`\\b$prefix}[^ ]*[ ]?\\b`, 'g');
58019    const newAttributes = {
58020      ...attributes,
58021      className: className?.replace(justifiedItemsRegex, '').trim()
58022    };
58023    /**
58024     * Add `layout` prop only if `justifyContent` is defined, for backwards
58025     * compatibility. In other cases the block's default layout will be used.
58026     * Also noting that due to the missing attribute, it's possible for a block
58027     * to have more than one of `justified` classes.
58028     */
58029    const justifyContent = className?.match(justifiedItemsRegex)?.[0]?.trim();
58030    if (justifyContent) {
58031      Object.assign(newAttributes, {
58032        layout: {
58033          type: 'flex',
58034          justifyContent: justifyContent.slice(prefix.length)
58035        }
58036      });
58037    }
58038    return newAttributes;
58039  };
58040  
58041  // Social Links block deprecations.
58042  const social_links_deprecated_deprecated = [
58043  // V1. Remove CSS variable use for colors.
58044  {
58045    attributes: {
58046      iconColor: {
58047        type: 'string'
58048      },
58049      customIconColor: {
58050        type: 'string'
58051      },
58052      iconColorValue: {
58053        type: 'string'
58054      },
58055      iconBackgroundColor: {
58056        type: 'string'
58057      },
58058      customIconBackgroundColor: {
58059        type: 'string'
58060      },
58061      iconBackgroundColorValue: {
58062        type: 'string'
58063      },
58064      openInNewTab: {
58065        type: 'boolean',
58066        default: false
58067      },
58068      size: {
58069        type: 'string'
58070      }
58071    },
58072    providesContext: {
58073      openInNewTab: 'openInNewTab'
58074    },
58075    supports: {
58076      align: ['left', 'center', 'right'],
58077      anchor: true
58078    },
58079    migrate: social_links_deprecated_migrateWithLayout,
58080    save: props => {
58081      const {
58082        attributes: {
58083          iconBackgroundColorValue,
58084          iconColorValue,
58085          itemsJustification,
58086          size
58087        }
58088      } = props;
58089      const className = dist_clsx(size, {
58090        'has-icon-color': iconColorValue,
58091        'has-icon-background-color': iconBackgroundColorValue,
58092        [`items-justified-$itemsJustification}`]: itemsJustification
58093      });
58094      const style = {
58095        '--wp--social-links--icon-color': iconColorValue,
58096        '--wp--social-links--icon-background-color': iconBackgroundColorValue
58097      };
58098      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
58099        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
58100          className,
58101          style
58102        }),
58103        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
58104      });
58105    }
58106  }];
58107  /* harmony default export */ const social_links_deprecated = (social_links_deprecated_deprecated);
58108  
58109  ;// ./node_modules/@wordpress/icons/build-module/library/check.js
58110  /**
58111   * WordPress dependencies
58112   */
58113  
58114  
58115  const check = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58116    xmlns: "http://www.w3.org/2000/svg",
58117    viewBox: "0 0 24 24",
58118    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58119      d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
58120    })
58121  });
58122  /* harmony default export */ const library_check = (check);
58123  
58124  ;// ./node_modules/@wordpress/block-library/build-module/social-links/edit.js
58125  /**
58126   * External dependencies
58127   */
58128  
58129  
58130  /**
58131   * WordPress dependencies
58132   */
58133  
58134  
58135  
58136  
58137  
58138  
58139  
58140  /**
58141   * Internal dependencies
58142   */
58143  
58144  
58145  const sizeOptions = [{
58146    name: (0,external_wp_i18n_namespaceObject.__)('Small'),
58147    value: 'has-small-icon-size'
58148  }, {
58149    name: (0,external_wp_i18n_namespaceObject.__)('Normal'),
58150    value: 'has-normal-icon-size'
58151  }, {
58152    name: (0,external_wp_i18n_namespaceObject.__)('Large'),
58153    value: 'has-large-icon-size'
58154  }, {
58155    name: (0,external_wp_i18n_namespaceObject.__)('Huge'),
58156    value: 'has-huge-icon-size'
58157  }];
58158  function SocialLinksEdit(props) {
58159    var _attributes$layout$or;
58160    const {
58161      clientId,
58162      attributes,
58163      iconBackgroundColor,
58164      iconColor,
58165      isSelected,
58166      setAttributes,
58167      setIconBackgroundColor,
58168      setIconColor
58169    } = props;
58170    const {
58171      iconBackgroundColorValue,
58172      customIconBackgroundColor,
58173      iconColorValue,
58174      openInNewTab,
58175      showLabels,
58176      size
58177    } = attributes;
58178    const hasSelectedChild = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).hasSelectedInnerBlock(clientId), [clientId]);
58179    const hasAnySelected = isSelected || hasSelectedChild;
58180    const logosOnly = attributes.className?.includes('is-style-logos-only');
58181    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
58182  
58183    // Remove icon background color when logos only style is selected or
58184    // restore it when any other style is selected.
58185    const backgroundBackupRef = (0,external_wp_element_namespaceObject.useRef)({});
58186    (0,external_wp_element_namespaceObject.useEffect)(() => {
58187      if (logosOnly) {
58188        backgroundBackupRef.current = {
58189          iconBackgroundColor,
58190          iconBackgroundColorValue,
58191          customIconBackgroundColor
58192        };
58193        setAttributes({
58194          iconBackgroundColor: undefined,
58195          customIconBackgroundColor: undefined,
58196          iconBackgroundColorValue: undefined
58197        });
58198      } else {
58199        setAttributes({
58200          ...backgroundBackupRef.current
58201        });
58202      }
58203    }, [logosOnly]);
58204    const SocialPlaceholder = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
58205      className: "wp-block-social-links__social-placeholder",
58206      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
58207        className: "wp-block-social-links__social-placeholder-icons",
58208        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58209          className: "wp-social-link wp-social-link-twitter"
58210        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58211          className: "wp-social-link wp-social-link-facebook"
58212        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58213          className: "wp-social-link wp-social-link-instagram"
58214        })]
58215      })
58216    });
58217  
58218    // Fallback color values are used maintain selections in case switching
58219    // themes and named colors in palette do not match.
58220    const className = dist_clsx(size, {
58221      'has-visible-labels': showLabels,
58222      'has-icon-color': iconColor.color || iconColorValue,
58223      'has-icon-background-color': iconBackgroundColor.color || iconBackgroundColorValue
58224    });
58225    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
58226      className
58227    });
58228    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
58229      placeholder: !isSelected && SocialPlaceholder,
58230      templateLock: false,
58231      orientation: (_attributes$layout$or = attributes.layout?.orientation) !== null && _attributes$layout$or !== void 0 ? _attributes$layout$or : 'horizontal',
58232      __experimentalAppenderTagName: 'li',
58233      renderAppender: hasAnySelected && external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
58234    });
58235    const POPOVER_PROPS = {
58236      position: 'bottom right'
58237    };
58238    const colorSettings = [{
58239      // Use custom attribute as fallback to prevent loss of named color selection when
58240      // switching themes to a new theme that does not have a matching named color.
58241      value: iconColor.color || iconColorValue,
58242      onChange: colorValue => {
58243        setIconColor(colorValue);
58244        setAttributes({
58245          iconColorValue: colorValue
58246        });
58247      },
58248      label: (0,external_wp_i18n_namespaceObject.__)('Icon color'),
58249      resetAllFilter: () => {
58250        setIconColor(undefined);
58251        setAttributes({
58252          iconColorValue: undefined
58253        });
58254      }
58255    }];
58256    if (!logosOnly) {
58257      colorSettings.push({
58258        // Use custom attribute as fallback to prevent loss of named color selection when
58259        // switching themes to a new theme that does not have a matching named color.
58260        value: iconBackgroundColor.color || iconBackgroundColorValue,
58261        onChange: colorValue => {
58262          setIconBackgroundColor(colorValue);
58263          setAttributes({
58264            iconBackgroundColorValue: colorValue
58265          });
58266        },
58267        label: (0,external_wp_i18n_namespaceObject.__)('Icon background'),
58268        resetAllFilter: () => {
58269          setIconBackgroundColor(undefined);
58270          setAttributes({
58271            iconBackgroundColorValue: undefined
58272          });
58273        }
58274      });
58275    }
58276    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
58277    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58278      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
58279        group: "other",
58280        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
58281          label: (0,external_wp_i18n_namespaceObject.__)('Size'),
58282          text: (0,external_wp_i18n_namespaceObject.__)('Size'),
58283          icon: null,
58284          popoverProps: POPOVER_PROPS,
58285          children: ({
58286            onClose
58287          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
58288            children: sizeOptions.map(entry => {
58289              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
58290                icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && library_check,
58291                isSelected: size === entry.value,
58292                onClick: () => {
58293                  setAttributes({
58294                    size: entry.value
58295                  });
58296                },
58297                onClose: onClose,
58298                role: "menuitemradio",
58299                children: entry.name
58300              }, entry.value);
58301            })
58302          })
58303        })
58304      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58305        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
58306          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
58307          resetAll: () => {
58308            setAttributes({
58309              openInNewTab: false,
58310              showLabels: false
58311            });
58312          },
58313          dropdownMenuProps: dropdownMenuProps,
58314          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58315            isShownByDefault: true,
58316            label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
58317            hasValue: () => !!openInNewTab,
58318            onDeselect: () => setAttributes({
58319              openInNewTab: false
58320            }),
58321            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58322              __nextHasNoMarginBottom: true,
58323              label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
58324              checked: openInNewTab,
58325              onChange: () => setAttributes({
58326                openInNewTab: !openInNewTab
58327              })
58328            })
58329          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58330            isShownByDefault: true,
58331            label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
58332            hasValue: () => !!showLabels,
58333            onDeselect: () => setAttributes({
58334              showLabels: false
58335            }),
58336            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58337              __nextHasNoMarginBottom: true,
58338              label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
58339              checked: showLabels,
58340              onChange: () => setAttributes({
58341                showLabels: !showLabels
58342              })
58343            })
58344          })]
58345        })
58346      }), colorGradientSettings.hasColorsOrGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58347        group: "color",
58348        children: [colorSettings.map(({
58349          onChange,
58350          label,
58351          value,
58352          resetAllFilter
58353        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
58354          __experimentalIsRenderedInSidebar: true,
58355          settings: [{
58356            colorValue: value,
58357            label,
58358            onColorChange: onChange,
58359            isShownByDefault: true,
58360            resetAllFilter,
58361            enableAlpha: true,
58362            clearable: true
58363          }],
58364          panelId: clientId,
58365          ...colorGradientSettings
58366        }, `social-links-color-$label}`)), !logosOnly && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
58367          textColor: iconColorValue,
58368          backgroundColor: iconBackgroundColorValue,
58369          isLargeText: false
58370        })]
58371      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
58372        ...innerBlocksProps
58373      })]
58374    });
58375  }
58376  const iconColorAttributes = {
58377    iconColor: 'icon-color',
58378    iconBackgroundColor: 'icon-background-color'
58379  };
58380  /* harmony default export */ const social_links_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)(iconColorAttributes)(SocialLinksEdit));
58381  
58382  ;// ./node_modules/@wordpress/block-library/build-module/social-links/save.js
58383  /**
58384   * External dependencies
58385   */
58386  
58387  
58388  /**
58389   * WordPress dependencies
58390   */
58391  
58392  
58393  function social_links_save_save(props) {
58394    const {
58395      attributes: {
58396        iconBackgroundColorValue,
58397        iconColorValue,
58398        showLabels,
58399        size
58400      }
58401    } = props;
58402    const className = dist_clsx(size, {
58403      'has-visible-labels': showLabels,
58404      'has-icon-color': iconColorValue,
58405      'has-icon-background-color': iconBackgroundColorValue
58406    });
58407    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
58408      className
58409    });
58410    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
58411    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
58412      ...innerBlocksProps
58413    });
58414  }
58415  
58416  ;// ./node_modules/@wordpress/block-library/build-module/social-links/index.js
58417  /**
58418   * WordPress dependencies
58419   */
58420  
58421  
58422  /**
58423   * Internal dependencies
58424   */
58425  
58426  
58427  
58428  const social_links_metadata = {
58429    $schema: "https://schemas.wp.org/trunk/block.json",
58430    apiVersion: 3,
58431    name: "core/social-links",
58432    title: "Social Icons",
58433    category: "widgets",
58434    allowedBlocks: ["core/social-link"],
58435    description: "Display icons linking to your social profiles or sites.",
58436    keywords: ["links"],
58437    textdomain: "default",
58438    attributes: {
58439      iconColor: {
58440        type: "string"
58441      },
58442      customIconColor: {
58443        type: "string"
58444      },
58445      iconColorValue: {
58446        type: "string"
58447      },
58448      iconBackgroundColor: {
58449        type: "string"
58450      },
58451      customIconBackgroundColor: {
58452        type: "string"
58453      },
58454      iconBackgroundColorValue: {
58455        type: "string"
58456      },
58457      openInNewTab: {
58458        type: "boolean",
58459        "default": false
58460      },
58461      showLabels: {
58462        type: "boolean",
58463        "default": false
58464      },
58465      size: {
58466        type: "string"
58467      }
58468    },
58469    providesContext: {
58470      openInNewTab: "openInNewTab",
58471      showLabels: "showLabels",
58472      iconColor: "iconColor",
58473      iconColorValue: "iconColorValue",
58474      iconBackgroundColor: "iconBackgroundColor",
58475      iconBackgroundColorValue: "iconBackgroundColorValue"
58476    },
58477    supports: {
58478      align: ["left", "center", "right"],
58479      anchor: true,
58480      __experimentalExposeControlsToChildren: true,
58481      layout: {
58482        allowSwitching: false,
58483        allowInheriting: false,
58484        allowVerticalAlignment: false,
58485        "default": {
58486          type: "flex"
58487        }
58488      },
58489      color: {
58490        enableContrastChecker: false,
58491        background: true,
58492        gradients: true,
58493        text: false,
58494        __experimentalDefaultControls: {
58495          background: false
58496        }
58497      },
58498      spacing: {
58499        blockGap: ["horizontal", "vertical"],
58500        margin: true,
58501        padding: true,
58502        units: ["px", "em", "rem", "vh", "vw"],
58503        __experimentalDefaultControls: {
58504          blockGap: true,
58505          margin: true,
58506          padding: false
58507        }
58508      },
58509      interactivity: {
58510        clientNavigation: true
58511      },
58512      __experimentalBorder: {
58513        radius: true,
58514        color: true,
58515        width: true,
58516        style: true,
58517        __experimentalDefaultControls: {
58518          radius: true,
58519          color: true,
58520          width: true,
58521          style: true
58522        }
58523      }
58524    },
58525    styles: [{
58526      name: "default",
58527      label: "Default",
58528      isDefault: true
58529    }, {
58530      name: "logos-only",
58531      label: "Logos Only"
58532    }, {
58533      name: "pill-shape",
58534      label: "Pill Shape"
58535    }],
58536    editorStyle: "wp-block-social-links-editor",
58537    style: "wp-block-social-links"
58538  };
58539  
58540  const {
58541    name: social_links_name
58542  } = social_links_metadata;
58543  
58544  const social_links_settings = {
58545    example: {
58546      innerBlocks: [{
58547        name: 'core/social-link',
58548        attributes: {
58549          service: 'wordpress',
58550          url: 'https://wordpress.org'
58551        }
58552      }, {
58553        name: 'core/social-link',
58554        attributes: {
58555          service: 'facebook',
58556          url: 'https://www.facebook.com/WordPress/'
58557        }
58558      }, {
58559        name: 'core/social-link',
58560        attributes: {
58561          service: 'twitter',
58562          url: 'https://twitter.com/WordPress'
58563        }
58564      }]
58565    },
58566    icon: library_share,
58567    edit: social_links_edit,
58568    save: social_links_save_save,
58569    deprecated: social_links_deprecated
58570  };
58571  const social_links_init = () => initBlock({
58572    name: social_links_name,
58573    metadata: social_links_metadata,
58574    settings: social_links_settings
58575  });
58576  
58577  ;// ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js
58578  /**
58579   * WordPress dependencies
58580   */
58581  
58582  
58583  const resizeCornerNE = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58584    viewBox: "0 0 24 24",
58585    xmlns: "http://www.w3.org/2000/svg",
58586    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58587      d: "M7 18h4.5v1.5h-7v-7H6V17L17 6h-4.5V4.5h7v7H18V7L7 18Z"
58588    })
58589  });
58590  /* harmony default export */ const resize_corner_n_e = (resizeCornerNE);
58591  
58592  ;// ./node_modules/@wordpress/block-library/build-module/spacer/deprecated.js
58593  /**
58594   * WordPress dependencies
58595   */
58596  
58597  
58598  const spacer_deprecated_deprecated = [{
58599    attributes: {
58600      height: {
58601        type: 'number',
58602        default: 100
58603      },
58604      width: {
58605        type: 'number'
58606      }
58607    },
58608    migrate(attributes) {
58609      const {
58610        height,
58611        width
58612      } = attributes;
58613      return {
58614        ...attributes,
58615        width: width !== undefined ? `$width}px` : undefined,
58616        height: height !== undefined ? `$height}px` : undefined
58617      };
58618    },
58619    save({
58620      attributes
58621    }) {
58622      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58623        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
58624          style: {
58625            height: attributes.height,
58626            width: attributes.width
58627          },
58628          'aria-hidden': true
58629        })
58630      });
58631    }
58632  }];
58633  /* harmony default export */ const spacer_deprecated = (spacer_deprecated_deprecated);
58634  
58635  ;// ./node_modules/@wordpress/block-library/build-module/spacer/constants.js
58636  const MIN_SPACER_SIZE = 0;
58637  
58638  ;// ./node_modules/@wordpress/block-library/build-module/spacer/controls.js
58639  /**
58640   * WordPress dependencies
58641   */
58642  
58643  
58644  
58645  
58646  
58647  
58648  /**
58649   * Internal dependencies
58650   */
58651  
58652  
58653  
58654  
58655  const {
58656    useSpacingSizes
58657  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
58658  function DimensionInput({
58659    label,
58660    onChange,
58661    isResizing,
58662    value = ''
58663  }) {
58664    const inputId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl, 'block-spacer-height-input');
58665    const spacingSizes = useSpacingSizes();
58666    const [spacingUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
58667    // In most contexts the spacer size cannot meaningfully be set to a
58668    // percentage, since this is relative to the parent container. This
58669    // unit is disabled from the UI.
58670    const availableUnits = spacingUnits ? spacingUnits.filter(unit => unit !== '%') : ['px', 'em', 'rem', 'vw', 'vh'];
58671    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
58672      availableUnits,
58673      defaultValues: {
58674        px: 100,
58675        em: 10,
58676        rem: 10,
58677        vw: 10,
58678        vh: 25
58679      }
58680    });
58681  
58682    // Force the unit to update to `px` when the Spacer is being resized.
58683    const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
58684    const computedValue = (0,external_wp_blockEditor_namespaceObject.isValueSpacingPreset)(value) ? value : [parsedQuantity, isResizing ? 'px' : parsedUnit].join('');
58685    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58686      children: spacingSizes?.length < 2 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
58687        id: inputId,
58688        isResetValueOnUnitChange: true,
58689        min: MIN_SPACER_SIZE,
58690        onChange: onChange,
58691        value: computedValue,
58692        units: units,
58693        label: label,
58694        __next40pxDefaultSize: true
58695      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
58696        className: "tools-panel-item-spacing",
58697        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalSpacingSizesControl, {
58698          values: {
58699            all: computedValue
58700          },
58701          onChange: ({
58702            all
58703          }) => {
58704            onChange(all);
58705          },
58706          label: label,
58707          sides: ['all'],
58708          units: units,
58709          allowReset: false,
58710          splitOnAxis: false,
58711          showSideInLabel: false
58712        })
58713      })
58714    });
58715  }
58716  function SpacerControls({
58717    setAttributes,
58718    orientation,
58719    height,
58720    width,
58721    isResizing
58722  }) {
58723    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
58724    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58725      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
58726        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
58727        resetAll: () => {
58728          setAttributes({
58729            width: undefined,
58730            height: '100px'
58731          });
58732        },
58733        dropdownMenuProps: dropdownMenuProps,
58734        children: [orientation === 'horizontal' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58735          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
58736          isShownByDefault: true,
58737          hasValue: () => width !== undefined,
58738          onDeselect: () => setAttributes({
58739            width: undefined
58740          }),
58741          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionInput, {
58742            label: (0,external_wp_i18n_namespaceObject.__)('Width'),
58743            value: width,
58744            onChange: nextWidth => setAttributes({
58745              width: nextWidth
58746            }),
58747            isResizing: isResizing
58748          })
58749        }), orientation !== 'horizontal' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58750          label: (0,external_wp_i18n_namespaceObject.__)('Height'),
58751          isShownByDefault: true,
58752          hasValue: () => height !== '100px',
58753          onDeselect: () => setAttributes({
58754            height: '100px'
58755          }),
58756          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionInput, {
58757            label: (0,external_wp_i18n_namespaceObject.__)('Height'),
58758            value: height,
58759            onChange: nextHeight => setAttributes({
58760              height: nextHeight
58761            }),
58762            isResizing: isResizing
58763          })
58764        })]
58765      })
58766    });
58767  }
58768  
58769  ;// ./node_modules/@wordpress/block-library/build-module/spacer/edit.js
58770  /**
58771   * External dependencies
58772   */
58773  
58774  
58775  /**
58776   * WordPress dependencies
58777   */
58778  
58779  
58780  
58781  
58782  
58783  
58784  /**
58785   * Internal dependencies
58786   */
58787  
58788  
58789  
58790  
58791  const {
58792    useSpacingSizes: edit_useSpacingSizes
58793  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
58794  const ResizableSpacer = ({
58795    orientation,
58796    onResizeStart,
58797    onResize,
58798    onResizeStop,
58799    isSelected,
58800    isResizing,
58801    setIsResizing,
58802    ...props
58803  }) => {
58804    const getCurrentSize = elt => {
58805      return orientation === 'horizontal' ? elt.clientWidth : elt.clientHeight;
58806    };
58807    const getNextVal = elt => {
58808      return `$getCurrentSize(elt)}px`;
58809    };
58810    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
58811      className: dist_clsx('block-library-spacer__resize-container', {
58812        'resize-horizontal': orientation === 'horizontal',
58813        'is-resizing': isResizing,
58814        'is-selected': isSelected
58815      }),
58816      onResizeStart: (_event, _direction, elt) => {
58817        const nextVal = getNextVal(elt);
58818        onResizeStart(nextVal);
58819        onResize(nextVal);
58820      },
58821      onResize: (_event, _direction, elt) => {
58822        onResize(getNextVal(elt));
58823        if (!isResizing) {
58824          setIsResizing(true);
58825        }
58826      },
58827      onResizeStop: (_event, _direction, elt) => {
58828        const nextVal = getCurrentSize(elt);
58829        onResizeStop(`$nextVal}px`);
58830        setIsResizing(false);
58831      },
58832      __experimentalShowTooltip: true,
58833      __experimentalTooltipProps: {
58834        axis: orientation === 'horizontal' ? 'x' : 'y',
58835        position: 'corner',
58836        isVisible: isResizing
58837      },
58838      showHandle: isSelected,
58839      ...props
58840    });
58841  };
58842  const SpacerEdit = ({
58843    attributes,
58844    isSelected,
58845    setAttributes,
58846    toggleSelection,
58847    context,
58848    __unstableParentLayout: parentLayout,
58849    className
58850  }) => {
58851    const disableCustomSpacingSizes = (0,external_wp_data_namespaceObject.useSelect)(select => {
58852      const editorSettings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
58853      return editorSettings?.disableCustomSpacingSizes;
58854    });
58855    const {
58856      orientation
58857    } = context;
58858    const {
58859      orientation: parentOrientation,
58860      type,
58861      default: {
58862        type: defaultType
58863      } = {}
58864    } = parentLayout || {};
58865    // Check if the spacer is inside a flex container.
58866    const isFlexLayout = type === 'flex' || !type && defaultType === 'flex';
58867    // If the spacer is inside a flex container, it should either inherit the orientation
58868    // of the parent or use the flex default orientation.
58869    const inheritedOrientation = !parentOrientation && isFlexLayout ? 'horizontal' : parentOrientation || orientation;
58870    const {
58871      height,
58872      width,
58873      style: blockStyle = {}
58874    } = attributes;
58875    const {
58876      layout = {}
58877    } = blockStyle;
58878    const {
58879      selfStretch,
58880      flexSize
58881    } = layout;
58882    const spacingSizes = edit_useSpacingSizes();
58883    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
58884    const [temporaryHeight, setTemporaryHeight] = (0,external_wp_element_namespaceObject.useState)(null);
58885    const [temporaryWidth, setTemporaryWidth] = (0,external_wp_element_namespaceObject.useState)(null);
58886    const onResizeStart = () => toggleSelection(false);
58887    const onResizeStop = () => toggleSelection(true);
58888    const {
58889      __unstableMarkNextChangeAsNotPersistent
58890    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
58891    const handleOnVerticalResizeStop = newHeight => {
58892      onResizeStop();
58893      if (isFlexLayout) {
58894        setAttributes({
58895          style: {
58896            ...blockStyle,
58897            layout: {
58898              ...layout,
58899              flexSize: newHeight,
58900              selfStretch: 'fixed'
58901            }
58902          }
58903        });
58904      }
58905      setAttributes({
58906        height: newHeight
58907      });
58908      setTemporaryHeight(null);
58909    };
58910    const handleOnHorizontalResizeStop = newWidth => {
58911      onResizeStop();
58912      if (isFlexLayout) {
58913        setAttributes({
58914          style: {
58915            ...blockStyle,
58916            layout: {
58917              ...layout,
58918              flexSize: newWidth,
58919              selfStretch: 'fixed'
58920            }
58921          }
58922        });
58923      }
58924      setAttributes({
58925        width: newWidth
58926      });
58927      setTemporaryWidth(null);
58928    };
58929    const getHeightForVerticalBlocks = () => {
58930      if (isFlexLayout) {
58931        return undefined;
58932      }
58933      return temporaryHeight || (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(height) || undefined;
58934    };
58935    const getWidthForHorizontalBlocks = () => {
58936      if (isFlexLayout) {
58937        return undefined;
58938      }
58939      return temporaryWidth || (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(width) || undefined;
58940    };
58941    const sizeConditionalOnOrientation = inheritedOrientation === 'horizontal' ? temporaryWidth || flexSize : temporaryHeight || flexSize;
58942    const style = {
58943      height: inheritedOrientation === 'horizontal' ? 24 : getHeightForVerticalBlocks(),
58944      width: inheritedOrientation === 'horizontal' ? getWidthForHorizontalBlocks() : undefined,
58945      // In vertical flex containers, the spacer shrinks to nothing without a minimum width.
58946      minWidth: inheritedOrientation === 'vertical' && isFlexLayout ? 48 : undefined,
58947      // Add flex-basis so temporary sizes are respected.
58948      flexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,
58949      // Remove flex-grow when resizing.
58950      flexGrow: isFlexLayout && isResizing ? 0 : undefined
58951    };
58952    const resizableBoxWithOrientation = blockOrientation => {
58953      if (blockOrientation === 'horizontal') {
58954        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableSpacer, {
58955          minWidth: MIN_SPACER_SIZE,
58956          enable: {
58957            top: false,
58958            right: true,
58959            bottom: false,
58960            left: false,
58961            topRight: false,
58962            bottomRight: false,
58963            bottomLeft: false,
58964            topLeft: false
58965          },
58966          orientation: blockOrientation,
58967          onResizeStart: onResizeStart,
58968          onResize: setTemporaryWidth,
58969          onResizeStop: handleOnHorizontalResizeStop,
58970          isSelected: isSelected,
58971          isResizing: isResizing,
58972          setIsResizing: setIsResizing
58973        });
58974      }
58975      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58976        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableSpacer, {
58977          minHeight: MIN_SPACER_SIZE,
58978          enable: {
58979            top: false,
58980            right: false,
58981            bottom: true,
58982            left: false,
58983            topRight: false,
58984            bottomRight: false,
58985            bottomLeft: false,
58986            topLeft: false
58987          },
58988          orientation: blockOrientation,
58989          onResizeStart: onResizeStart,
58990          onResize: setTemporaryHeight,
58991          onResizeStop: handleOnVerticalResizeStop,
58992          isSelected: isSelected,
58993          isResizing: isResizing,
58994          setIsResizing: setIsResizing
58995        })
58996      });
58997    };
58998    (0,external_wp_element_namespaceObject.useEffect)(() => {
58999      // To avoid interfering with undo/redo operations any changes in this
59000      // effect must not make history and should be preceded by
59001      // `__unstableMarkNextChangeAsNotPersistent()`.
59002      const setAttributesCovertly = nextAttributes => {
59003        __unstableMarkNextChangeAsNotPersistent();
59004        setAttributes(nextAttributes);
59005      };
59006      if (isFlexLayout && selfStretch !== 'fill' && selfStretch !== 'fit' && flexSize === undefined) {
59007        if (inheritedOrientation === 'horizontal') {
59008          // If spacer is moving from a vertical container to a horizontal container,
59009          // it might not have width but have height instead.
59010          const newSize = (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(width, spacingSizes) || (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(height, spacingSizes) || '100px';
59011          setAttributesCovertly({
59012            width: '0px',
59013            style: {
59014              ...blockStyle,
59015              layout: {
59016                ...layout,
59017                flexSize: newSize,
59018                selfStretch: 'fixed'
59019              }
59020            }
59021          });
59022        } else {
59023          const newSize = (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(height, spacingSizes) || (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(width, spacingSizes) || '100px';
59024          setAttributesCovertly({
59025            height: '0px',
59026            style: {
59027              ...blockStyle,
59028              layout: {
59029                ...layout,
59030                flexSize: newSize,
59031                selfStretch: 'fixed'
59032              }
59033            }
59034          });
59035        }
59036      } else if (isFlexLayout && (selfStretch === 'fill' || selfStretch === 'fit')) {
59037        setAttributesCovertly(inheritedOrientation === 'horizontal' ? {
59038          width: undefined
59039        } : {
59040          height: undefined
59041        });
59042      } else if (!isFlexLayout && (selfStretch || flexSize)) {
59043        setAttributesCovertly({
59044          ...(inheritedOrientation === 'horizontal' ? {
59045            width: flexSize
59046          } : {
59047            height: flexSize
59048          }),
59049          style: {
59050            ...blockStyle,
59051            layout: {
59052              ...layout,
59053              flexSize: undefined,
59054              selfStretch: undefined
59055            }
59056          }
59057        });
59058      }
59059    }, [blockStyle, flexSize, height, inheritedOrientation, isFlexLayout, layout, selfStretch, setAttributes, spacingSizes, width, __unstableMarkNextChangeAsNotPersistent]);
59060    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
59061      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
59062        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
59063          style,
59064          className: dist_clsx(className, {
59065            'custom-sizes-disabled': disableCustomSpacingSizes
59066          })
59067        }),
59068        children: resizableBoxWithOrientation(inheritedOrientation)
59069      }), !isFlexLayout && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SpacerControls, {
59070        setAttributes: setAttributes,
59071        height: temporaryHeight || height,
59072        width: temporaryWidth || width,
59073        orientation: inheritedOrientation,
59074        isResizing: isResizing
59075      })]
59076    });
59077  };
59078  /* harmony default export */ const spacer_edit = (SpacerEdit);
59079  
59080  ;// ./node_modules/@wordpress/block-library/build-module/spacer/transforms.js
59081  /**
59082   * WordPress dependencies
59083   */
59084  
59085  const spacer_transforms_transforms = {
59086    to: [{
59087      type: 'block',
59088      blocks: ['core/separator'],
59089      // Transform to Separator.
59090      transform: ({
59091        anchor
59092      }) => {
59093        return (0,external_wp_blocks_namespaceObject.createBlock)('core/separator', {
59094          anchor: anchor || ''
59095        });
59096      }
59097    }]
59098  };
59099  /* harmony default export */ const spacer_transforms = (spacer_transforms_transforms);
59100  
59101  ;// ./node_modules/@wordpress/block-library/build-module/spacer/save.js
59102  /**
59103   * WordPress dependencies
59104   */
59105  
59106  
59107  function spacer_save_save({
59108    attributes
59109  }) {
59110    const {
59111      height,
59112      width,
59113      style
59114    } = attributes;
59115    const {
59116      layout: {
59117        selfStretch
59118      } = {}
59119    } = style || {};
59120    // If selfStretch is set to 'fill' or 'fit', don't set default height.
59121    const finalHeight = selfStretch === 'fill' || selfStretch === 'fit' ? undefined : height;
59122    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
59123      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
59124        style: {
59125          height: (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(finalHeight),
59126          width: (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(width)
59127        },
59128        'aria-hidden': true
59129      })
59130    });
59131  }
59132  
59133  ;// ./node_modules/@wordpress/block-library/build-module/spacer/index.js
59134  /**
59135   * WordPress dependencies
59136   */
59137  
59138  
59139  /**
59140   * Internal dependencies
59141   */
59142  
59143  
59144  
59145  const spacer_metadata = {
59146    $schema: "https://schemas.wp.org/trunk/block.json",
59147    apiVersion: 3,
59148    name: "core/spacer",
59149    title: "Spacer",
59150    category: "design",
59151    description: "Add white space between blocks and customize its height.",
59152    textdomain: "default",
59153    attributes: {
59154      height: {
59155        type: "string",
59156        "default": "100px"
59157      },
59158      width: {
59159        type: "string"
59160      }
59161    },
59162    usesContext: ["orientation"],
59163    supports: {
59164      anchor: true,
59165      spacing: {
59166        margin: ["top", "bottom"],
59167        __experimentalDefaultControls: {
59168          margin: true
59169        }
59170      },
59171      interactivity: {
59172        clientNavigation: true
59173      }
59174    },
59175    editorStyle: "wp-block-spacer-editor",
59176    style: "wp-block-spacer"
59177  };
59178  
59179  
59180  const {
59181    name: spacer_name
59182  } = spacer_metadata;
59183  
59184  const spacer_settings = {
59185    icon: resize_corner_n_e,
59186    transforms: spacer_transforms,
59187    edit: spacer_edit,
59188    save: spacer_save_save,
59189    deprecated: spacer_deprecated
59190  };
59191  const spacer_init = () => initBlock({
59192    name: spacer_name,
59193    metadata: spacer_metadata,
59194    settings: spacer_settings
59195  });
59196  
59197  ;// ./node_modules/@wordpress/icons/build-module/library/block-table.js
59198  /**
59199   * WordPress dependencies
59200   */
59201  
59202  
59203  const blockTable = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
59204    viewBox: "0 0 24 24",
59205    xmlns: "http://www.w3.org/2000/svg",
59206    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
59207      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"
59208    })
59209  });
59210  /* harmony default export */ const block_table = (blockTable);
59211  
59212  ;// ./node_modules/@wordpress/block-library/build-module/table/deprecated.js
59213  /**
59214   * External dependencies
59215   */
59216  
59217  
59218  /**
59219   * WordPress dependencies
59220   */
59221  
59222  
59223  // As the previous arbitrary colors won't match theme color palettes, the hex
59224  // value will be mapped to the style.color.background attribute as if it was
59225  // a custom color selection.
59226  
59227  const oldColors = {
59228    'subtle-light-gray': '#f3f4f5',
59229    'subtle-pale-green': '#e9fbe5',
59230    'subtle-pale-blue': '#e7f5fe',
59231    'subtle-pale-pink': '#fcf0ef'
59232  };
59233  
59234  // Fixed width table cells on by default.
59235  const v4Query = {
59236    content: {
59237      type: 'rich-text',
59238      source: 'rich-text'
59239    },
59240    tag: {
59241      type: 'string',
59242      default: 'td',
59243      source: 'tag'
59244    },
59245    scope: {
59246      type: 'string',
59247      source: 'attribute',
59248      attribute: 'scope'
59249    },
59250    align: {
59251      type: 'string',
59252      source: 'attribute',
59253      attribute: 'data-align'
59254    },
59255    colspan: {
59256      type: 'string',
59257      source: 'attribute',
59258      attribute: 'colspan'
59259    },
59260    rowspan: {
59261      type: 'string',
59262      source: 'attribute',
59263      attribute: 'rowspan'
59264    }
59265  };
59266  const table_deprecated_v4 = {
59267    attributes: {
59268      hasFixedLayout: {
59269        type: 'boolean',
59270        default: false
59271      },
59272      caption: {
59273        type: 'rich-text',
59274        source: 'rich-text',
59275        selector: 'figcaption'
59276      },
59277      head: {
59278        type: 'array',
59279        default: [],
59280        source: 'query',
59281        selector: 'thead tr',
59282        query: {
59283          cells: {
59284            type: 'array',
59285            default: [],
59286            source: 'query',
59287            selector: 'td,th',
59288            query: v4Query
59289          }
59290        }
59291      },
59292      body: {
59293        type: 'array',
59294        default: [],
59295        source: 'query',
59296        selector: 'tbody tr',
59297        query: {
59298          cells: {
59299            type: 'array',
59300            default: [],
59301            source: 'query',
59302            selector: 'td,th',
59303            query: v4Query
59304          }
59305        }
59306      },
59307      foot: {
59308        type: 'array',
59309        default: [],
59310        source: 'query',
59311        selector: 'tfoot tr',
59312        query: {
59313          cells: {
59314            type: 'array',
59315            default: [],
59316            source: 'query',
59317            selector: 'td,th',
59318            query: v4Query
59319          }
59320        }
59321      }
59322    },
59323    supports: {
59324      anchor: true,
59325      align: true,
59326      color: {
59327        __experimentalSkipSerialization: true,
59328        gradients: true,
59329        __experimentalDefaultControls: {
59330          background: true,
59331          text: true
59332        }
59333      },
59334      spacing: {
59335        margin: true,
59336        padding: true,
59337        __experimentalDefaultControls: {
59338          margin: false,
59339          padding: false
59340        }
59341      },
59342      typography: {
59343        fontSize: true,
59344        lineHeight: true,
59345        __experimentalFontFamily: true,
59346        __experimentalFontStyle: true,
59347        __experimentalFontWeight: true,
59348        __experimentalLetterSpacing: true,
59349        __experimentalTextTransform: true,
59350        __experimentalTextDecoration: true,
59351        __experimentalDefaultControls: {
59352          fontSize: true
59353        }
59354      },
59355      __experimentalBorder: {
59356        __experimentalSkipSerialization: true,
59357        color: true,
59358        style: true,
59359        width: true,
59360        __experimentalDefaultControls: {
59361          color: true,
59362          style: true,
59363          width: true
59364        }
59365      },
59366      __experimentalSelector: '.wp-block-table > table',
59367      interactivity: {
59368        clientNavigation: true
59369      }
59370    },
59371    save({
59372      attributes
59373    }) {
59374      const {
59375        hasFixedLayout,
59376        head,
59377        body,
59378        foot,
59379        caption
59380      } = attributes;
59381      const isEmpty = !head.length && !body.length && !foot.length;
59382      if (isEmpty) {
59383        return null;
59384      }
59385      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
59386      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
59387      const classes = dist_clsx(colorProps.className, borderProps.className, {
59388        'has-fixed-layout': hasFixedLayout
59389      });
59390      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
59391      const Section = ({
59392        type,
59393        rows
59394      }) => {
59395        if (!rows.length) {
59396          return null;
59397        }
59398        const Tag = `t$type}`;
59399        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59400          children: rows.map(({
59401            cells
59402          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59403            children: cells.map(({
59404              content,
59405              tag,
59406              scope,
59407              align,
59408              colspan,
59409              rowspan
59410            }, cellIndex) => {
59411              const cellClasses = dist_clsx({
59412                [`has-text-align-$align}`]: align
59413              });
59414              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59415                className: cellClasses ? cellClasses : undefined,
59416                "data-align": align,
59417                tagName: tag,
59418                value: content,
59419                scope: tag === 'th' ? scope : undefined,
59420                colSpan: colspan,
59421                rowSpan: rowspan
59422              }, cellIndex);
59423            })
59424          }, rowIndex))
59425        });
59426      };
59427      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59428        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59429        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59430          className: classes === '' ? undefined : classes,
59431          style: {
59432            ...colorProps.style,
59433            ...borderProps.style
59434          },
59435          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59436            type: "head",
59437            rows: head
59438          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59439            type: "body",
59440            rows: body
59441          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59442            type: "foot",
59443            rows: foot
59444          })]
59445        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59446          tagName: "figcaption",
59447          value: caption,
59448          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
59449        })]
59450      });
59451    }
59452  };
59453  
59454  // In #41140 support was added to global styles for caption elements which
59455  // added a `wp-element-caption` classname to the embed figcaption element.
59456  const v3Query = {
59457    content: {
59458      type: 'string',
59459      source: 'html'
59460    },
59461    tag: {
59462      type: 'string',
59463      default: 'td',
59464      source: 'tag'
59465    },
59466    scope: {
59467      type: 'string',
59468      source: 'attribute',
59469      attribute: 'scope'
59470    },
59471    align: {
59472      type: 'string',
59473      source: 'attribute',
59474      attribute: 'data-align'
59475    }
59476  };
59477  const table_deprecated_v3 = {
59478    attributes: {
59479      hasFixedLayout: {
59480        type: 'boolean',
59481        default: false
59482      },
59483      caption: {
59484        type: 'string',
59485        source: 'html',
59486        selector: 'figcaption',
59487        default: ''
59488      },
59489      head: {
59490        type: 'array',
59491        default: [],
59492        source: 'query',
59493        selector: 'thead tr',
59494        query: {
59495          cells: {
59496            type: 'array',
59497            default: [],
59498            source: 'query',
59499            selector: 'td,th',
59500            query: v3Query
59501          }
59502        }
59503      },
59504      body: {
59505        type: 'array',
59506        default: [],
59507        source: 'query',
59508        selector: 'tbody tr',
59509        query: {
59510          cells: {
59511            type: 'array',
59512            default: [],
59513            source: 'query',
59514            selector: 'td,th',
59515            query: v3Query
59516          }
59517        }
59518      },
59519      foot: {
59520        type: 'array',
59521        default: [],
59522        source: 'query',
59523        selector: 'tfoot tr',
59524        query: {
59525          cells: {
59526            type: 'array',
59527            default: [],
59528            source: 'query',
59529            selector: 'td,th',
59530            query: v3Query
59531          }
59532        }
59533      }
59534    },
59535    supports: {
59536      anchor: true,
59537      align: true,
59538      color: {
59539        __experimentalSkipSerialization: true,
59540        gradients: true,
59541        __experimentalDefaultControls: {
59542          background: true,
59543          text: true
59544        }
59545      },
59546      spacing: {
59547        margin: true,
59548        padding: true
59549      },
59550      typography: {
59551        fontSize: true,
59552        lineHeight: true,
59553        __experimentalFontFamily: true,
59554        __experimentalFontStyle: true,
59555        __experimentalFontWeight: true,
59556        __experimentalLetterSpacing: true,
59557        __experimentalTextTransform: true,
59558        __experimentalTextDecoration: true,
59559        __experimentalDefaultControls: {
59560          fontSize: true
59561        }
59562      },
59563      __experimentalBorder: {
59564        __experimentalSkipSerialization: true,
59565        color: true,
59566        style: true,
59567        width: true,
59568        __experimentalDefaultControls: {
59569          color: true,
59570          style: true,
59571          width: true
59572        }
59573      },
59574      __experimentalSelector: '.wp-block-table > table'
59575    },
59576    save({
59577      attributes
59578    }) {
59579      const {
59580        hasFixedLayout,
59581        head,
59582        body,
59583        foot,
59584        caption
59585      } = attributes;
59586      const isEmpty = !head.length && !body.length && !foot.length;
59587      if (isEmpty) {
59588        return null;
59589      }
59590      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
59591      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
59592      const classes = dist_clsx(colorProps.className, borderProps.className, {
59593        'has-fixed-layout': hasFixedLayout
59594      });
59595      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
59596      const Section = ({
59597        type,
59598        rows
59599      }) => {
59600        if (!rows.length) {
59601          return null;
59602        }
59603        const Tag = `t$type}`;
59604        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59605          children: rows.map(({
59606            cells
59607          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59608            children: cells.map(({
59609              content,
59610              tag,
59611              scope,
59612              align
59613            }, cellIndex) => {
59614              const cellClasses = dist_clsx({
59615                [`has-text-align-$align}`]: align
59616              });
59617              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59618                className: cellClasses ? cellClasses : undefined,
59619                "data-align": align,
59620                tagName: tag,
59621                value: content,
59622                scope: tag === 'th' ? scope : undefined
59623              }, cellIndex);
59624            })
59625          }, rowIndex))
59626        });
59627      };
59628      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59629        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59630        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59631          className: classes === '' ? undefined : classes,
59632          style: {
59633            ...colorProps.style,
59634            ...borderProps.style
59635          },
59636          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59637            type: "head",
59638            rows: head
59639          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59640            type: "body",
59641            rows: body
59642          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59643            type: "foot",
59644            rows: foot
59645          })]
59646        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59647          tagName: "figcaption",
59648          value: caption
59649        })]
59650      });
59651    }
59652  };
59653  
59654  // Deprecation migrating table block to use colors block support feature.
59655  const v2Query = {
59656    content: {
59657      type: 'string',
59658      source: 'html'
59659    },
59660    tag: {
59661      type: 'string',
59662      default: 'td',
59663      source: 'tag'
59664    },
59665    scope: {
59666      type: 'string',
59667      source: 'attribute',
59668      attribute: 'scope'
59669    },
59670    align: {
59671      type: 'string',
59672      source: 'attribute',
59673      attribute: 'data-align'
59674    }
59675  };
59676  const table_deprecated_v2 = {
59677    attributes: {
59678      hasFixedLayout: {
59679        type: 'boolean',
59680        default: false
59681      },
59682      backgroundColor: {
59683        type: 'string'
59684      },
59685      caption: {
59686        type: 'string',
59687        source: 'html',
59688        selector: 'figcaption',
59689        default: ''
59690      },
59691      head: {
59692        type: 'array',
59693        default: [],
59694        source: 'query',
59695        selector: 'thead tr',
59696        query: {
59697          cells: {
59698            type: 'array',
59699            default: [],
59700            source: 'query',
59701            selector: 'td,th',
59702            query: v2Query
59703          }
59704        }
59705      },
59706      body: {
59707        type: 'array',
59708        default: [],
59709        source: 'query',
59710        selector: 'tbody tr',
59711        query: {
59712          cells: {
59713            type: 'array',
59714            default: [],
59715            source: 'query',
59716            selector: 'td,th',
59717            query: v2Query
59718          }
59719        }
59720      },
59721      foot: {
59722        type: 'array',
59723        default: [],
59724        source: 'query',
59725        selector: 'tfoot tr',
59726        query: {
59727          cells: {
59728            type: 'array',
59729            default: [],
59730            source: 'query',
59731            selector: 'td,th',
59732            query: v2Query
59733          }
59734        }
59735      }
59736    },
59737    supports: {
59738      anchor: true,
59739      align: true,
59740      __experimentalSelector: '.wp-block-table > table'
59741    },
59742    save: ({
59743      attributes
59744    }) => {
59745      const {
59746        hasFixedLayout,
59747        head,
59748        body,
59749        foot,
59750        backgroundColor,
59751        caption
59752      } = attributes;
59753      const isEmpty = !head.length && !body.length && !foot.length;
59754      if (isEmpty) {
59755        return null;
59756      }
59757      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
59758      const classes = dist_clsx(backgroundClass, {
59759        'has-fixed-layout': hasFixedLayout,
59760        'has-background': !!backgroundClass
59761      });
59762      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
59763      const Section = ({
59764        type,
59765        rows
59766      }) => {
59767        if (!rows.length) {
59768          return null;
59769        }
59770        const Tag = `t$type}`;
59771        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59772          children: rows.map(({
59773            cells
59774          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59775            children: cells.map(({
59776              content,
59777              tag,
59778              scope,
59779              align
59780            }, cellIndex) => {
59781              const cellClasses = dist_clsx({
59782                [`has-text-align-$align}`]: align
59783              });
59784              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59785                className: cellClasses ? cellClasses : undefined,
59786                "data-align": align,
59787                tagName: tag,
59788                value: content,
59789                scope: tag === 'th' ? scope : undefined
59790              }, cellIndex);
59791            })
59792          }, rowIndex))
59793        });
59794      };
59795      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59796        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59797        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59798          className: classes === '' ? undefined : classes,
59799          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59800            type: "head",
59801            rows: head
59802          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59803            type: "body",
59804            rows: body
59805          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59806            type: "foot",
59807            rows: foot
59808          })]
59809        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59810          tagName: "figcaption",
59811          value: caption
59812        })]
59813      });
59814    },
59815    isEligible: attributes => {
59816      return attributes.backgroundColor && attributes.backgroundColor in oldColors && !attributes.style;
59817    },
59818    // This version is the first to introduce the style attribute to the
59819    // table block. As a result, we'll explicitly override that.
59820    migrate: attributes => {
59821      return {
59822        ...attributes,
59823        backgroundColor: undefined,
59824        style: {
59825          color: {
59826            background: oldColors[attributes.backgroundColor]
59827          }
59828        }
59829      };
59830    }
59831  };
59832  const v1Query = {
59833    content: {
59834      type: 'string',
59835      source: 'html'
59836    },
59837    tag: {
59838      type: 'string',
59839      default: 'td',
59840      source: 'tag'
59841    },
59842    scope: {
59843      type: 'string',
59844      source: 'attribute',
59845      attribute: 'scope'
59846    }
59847  };
59848  const table_deprecated_v1 = {
59849    attributes: {
59850      hasFixedLayout: {
59851        type: 'boolean',
59852        default: false
59853      },
59854      backgroundColor: {
59855        type: 'string'
59856      },
59857      head: {
59858        type: 'array',
59859        default: [],
59860        source: 'query',
59861        selector: 'thead tr',
59862        query: {
59863          cells: {
59864            type: 'array',
59865            default: [],
59866            source: 'query',
59867            selector: 'td,th',
59868            query: v1Query
59869          }
59870        }
59871      },
59872      body: {
59873        type: 'array',
59874        default: [],
59875        source: 'query',
59876        selector: 'tbody tr',
59877        query: {
59878          cells: {
59879            type: 'array',
59880            default: [],
59881            source: 'query',
59882            selector: 'td,th',
59883            query: v1Query
59884          }
59885        }
59886      },
59887      foot: {
59888        type: 'array',
59889        default: [],
59890        source: 'query',
59891        selector: 'tfoot tr',
59892        query: {
59893          cells: {
59894            type: 'array',
59895            default: [],
59896            source: 'query',
59897            selector: 'td,th',
59898            query: v1Query
59899          }
59900        }
59901      }
59902    },
59903    supports: {
59904      align: true
59905    },
59906    save({
59907      attributes
59908    }) {
59909      const {
59910        hasFixedLayout,
59911        head,
59912        body,
59913        foot,
59914        backgroundColor
59915      } = attributes;
59916      const isEmpty = !head.length && !body.length && !foot.length;
59917      if (isEmpty) {
59918        return null;
59919      }
59920      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
59921      const classes = dist_clsx(backgroundClass, {
59922        'has-fixed-layout': hasFixedLayout,
59923        'has-background': !!backgroundClass
59924      });
59925      const Section = ({
59926        type,
59927        rows
59928      }) => {
59929        if (!rows.length) {
59930          return null;
59931        }
59932        const Tag = `t$type}`;
59933        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59934          children: rows.map(({
59935            cells
59936          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59937            children: cells.map(({
59938              content,
59939              tag,
59940              scope
59941            }, cellIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59942              tagName: tag,
59943              value: content,
59944              scope: tag === 'th' ? scope : undefined
59945            }, cellIndex))
59946          }, rowIndex))
59947        });
59948      };
59949      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59950        className: classes,
59951        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59952          type: "head",
59953          rows: head
59954        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59955          type: "body",
59956          rows: body
59957        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59958          type: "foot",
59959          rows: foot
59960        })]
59961      });
59962    }
59963  };
59964  
59965  /**
59966   * New deprecations need to be placed first
59967   * for them to have higher priority.
59968   *
59969   * Old deprecations may need to be updated as well.
59970   *
59971   * See block-deprecation.md
59972   */
59973  /* harmony default export */ const table_deprecated = ([table_deprecated_v4, table_deprecated_v3, table_deprecated_v2, table_deprecated_v1]);
59974  
59975  ;// ./node_modules/@wordpress/icons/build-module/library/align-left.js
59976  /**
59977   * WordPress dependencies
59978   */
59979  
59980  
59981  const alignLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
59982    xmlns: "http://www.w3.org/2000/svg",
59983    viewBox: "0 0 24 24",
59984    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
59985      d: "M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z"
59986    })
59987  });
59988  /* harmony default export */ const align_left = (alignLeft);
59989  
59990  ;// ./node_modules/@wordpress/icons/build-module/library/align-center.js
59991  /**
59992   * WordPress dependencies
59993   */
59994  
59995  
59996  const alignCenter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
59997    xmlns: "http://www.w3.org/2000/svg",
59998    viewBox: "0 0 24 24",
59999    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60000      d: "M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z"
60001    })
60002  });
60003  /* harmony default export */ const align_center = (alignCenter);
60004  
60005  ;// ./node_modules/@wordpress/icons/build-module/library/align-right.js
60006  /**
60007   * WordPress dependencies
60008   */
60009  
60010  
60011  const alignRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60012    xmlns: "http://www.w3.org/2000/svg",
60013    viewBox: "0 0 24 24",
60014    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60015      d: "M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z"
60016    })
60017  });
60018  /* harmony default export */ const align_right = (alignRight);
60019  
60020  ;// ./node_modules/@wordpress/icons/build-module/library/table-row-before.js
60021  /**
60022   * WordPress dependencies
60023   */
60024  
60025  
60026  const tableRowBefore = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60027    xmlns: "http://www.w3.org/2000/svg",
60028    viewBox: "-2 -2 24 24",
60029    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60030      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"
60031    })
60032  });
60033  /* harmony default export */ const table_row_before = (tableRowBefore);
60034  
60035  ;// ./node_modules/@wordpress/icons/build-module/library/table-row-after.js
60036  /**
60037   * WordPress dependencies
60038   */
60039  
60040  
60041  const tableRowAfter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60042    xmlns: "http://www.w3.org/2000/svg",
60043    viewBox: "-2 -2 24 24",
60044    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60045      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"
60046    })
60047  });
60048  /* harmony default export */ const table_row_after = (tableRowAfter);
60049  
60050  ;// ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js
60051  /**
60052   * WordPress dependencies
60053   */
60054  
60055  
60056  const tableRowDelete = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60057    xmlns: "http://www.w3.org/2000/svg",
60058    viewBox: "-2 -2 24 24",
60059    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60060      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"
60061    })
60062  });
60063  /* harmony default export */ const table_row_delete = (tableRowDelete);
60064  
60065  ;// ./node_modules/@wordpress/icons/build-module/library/table-column-before.js
60066  /**
60067   * WordPress dependencies
60068   */
60069  
60070  
60071  const tableColumnBefore = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60072    xmlns: "http://www.w3.org/2000/svg",
60073    viewBox: "-2 -2 24 24",
60074    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60075      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"
60076    })
60077  });
60078  /* harmony default export */ const table_column_before = (tableColumnBefore);
60079  
60080  ;// ./node_modules/@wordpress/icons/build-module/library/table-column-after.js
60081  /**
60082   * WordPress dependencies
60083   */
60084  
60085  
60086  const tableColumnAfter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60087    xmlns: "http://www.w3.org/2000/svg",
60088    viewBox: "-2 -2 24 24",
60089    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60090      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"
60091    })
60092  });
60093  /* harmony default export */ const table_column_after = (tableColumnAfter);
60094  
60095  ;// ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js
60096  /**
60097   * WordPress dependencies
60098   */
60099  
60100  
60101  const tableColumnDelete = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60102    xmlns: "http://www.w3.org/2000/svg",
60103    viewBox: "-2 -2 24 24",
60104    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60105      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"
60106    })
60107  });
60108  /* harmony default export */ const table_column_delete = (tableColumnDelete);
60109  
60110  ;// ./node_modules/@wordpress/icons/build-module/library/table.js
60111  /**
60112   * WordPress dependencies
60113   */
60114  
60115  
60116  const table = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60117    xmlns: "http://www.w3.org/2000/svg",
60118    viewBox: "0 0 24 24",
60119    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60120      d: "M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z"
60121    })
60122  });
60123  /* harmony default export */ const library_table = (table);
60124  
60125  ;// ./node_modules/@wordpress/block-library/build-module/table/state.js
60126  const INHERITED_COLUMN_ATTRIBUTES = ['align'];
60127  
60128  /**
60129   * Creates a table state.
60130   *
60131   * @param {Object} options
60132   * @param {number} options.rowCount    Row count for the table to create.
60133   * @param {number} options.columnCount Column count for the table to create.
60134   *
60135   * @return {Object} New table state.
60136   */
60137  function createTable({
60138    rowCount,
60139    columnCount
60140  }) {
60141    return {
60142      body: Array.from({
60143        length: rowCount
60144      }).map(() => ({
60145        cells: Array.from({
60146          length: columnCount
60147        }).map(() => ({
60148          content: '',
60149          tag: 'td'
60150        }))
60151      }))
60152    };
60153  }
60154  
60155  /**
60156   * Returns the first row in the table.
60157   *
60158   * @param {Object} state Current table state.
60159   *
60160   * @return {Object | undefined} The first table row.
60161   */
60162  function getFirstRow(state) {
60163    if (!isEmptyTableSection(state.head)) {
60164      return state.head[0];
60165    }
60166    if (!isEmptyTableSection(state.body)) {
60167      return state.body[0];
60168    }
60169    if (!isEmptyTableSection(state.foot)) {
60170      return state.foot[0];
60171    }
60172  }
60173  
60174  /**
60175   * Gets an attribute for a cell.
60176   *
60177   * @param {Object} state         Current table state.
60178   * @param {Object} cellLocation  The location of the cell
60179   * @param {string} attributeName The name of the attribute to get the value of.
60180   *
60181   * @return {*} The attribute value.
60182   */
60183  function getCellAttribute(state, cellLocation, attributeName) {
60184    const {
60185      sectionName,
60186      rowIndex,
60187      columnIndex
60188    } = cellLocation;
60189    return state[sectionName]?.[rowIndex]?.cells?.[columnIndex]?.[attributeName];
60190  }
60191  
60192  /**
60193   * Returns updated cell attributes after applying the `updateCell` function to the selection.
60194   *
60195   * @param {Object}   state      The block attributes.
60196   * @param {Object}   selection  The selection of cells to update.
60197   * @param {Function} updateCell A function to update the selected cell attributes.
60198   *
60199   * @return {Object} New table state including the updated cells.
60200   */
60201  function updateSelectedCell(state, selection, updateCell) {
60202    if (!selection) {
60203      return state;
60204    }
60205    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
60206    const {
60207      sectionName: selectionSectionName,
60208      rowIndex: selectionRowIndex
60209    } = selection;
60210    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
60211      if (selectionSectionName && selectionSectionName !== sectionName) {
60212        return [sectionName, section];
60213      }
60214      return [sectionName, section.map((row, rowIndex) => {
60215        if (selectionRowIndex && selectionRowIndex !== rowIndex) {
60216          return row;
60217        }
60218        return {
60219          cells: row.cells.map((cellAttributes, columnIndex) => {
60220            const cellLocation = {
60221              sectionName,
60222              columnIndex,
60223              rowIndex
60224            };
60225            if (!isCellSelected(cellLocation, selection)) {
60226              return cellAttributes;
60227            }
60228            return updateCell(cellAttributes);
60229          })
60230        };
60231      })];
60232    }));
60233  }
60234  
60235  /**
60236   * Returns whether the cell at `cellLocation` is included in the selection `selection`.
60237   *
60238   * @param {Object} cellLocation An object containing cell location properties.
60239   * @param {Object} selection    An object containing selection properties.
60240   *
60241   * @return {boolean} True if the cell is selected, false otherwise.
60242   */
60243  function isCellSelected(cellLocation, selection) {
60244    if (!cellLocation || !selection) {
60245      return false;
60246    }
60247    switch (selection.type) {
60248      case 'column':
60249        return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex;
60250      case 'cell':
60251        return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex;
60252    }
60253  }
60254  
60255  /**
60256   * Inserts a row in the table state.
60257   *
60258   * @param {Object} state               Current table state.
60259   * @param {Object} options
60260   * @param {string} options.sectionName Section in which to insert the row.
60261   * @param {number} options.rowIndex    Row index at which to insert the row.
60262   * @param {number} options.columnCount Column count for the table to create.
60263   *
60264   * @return {Object} New table state.
60265   */
60266  function insertRow(state, {
60267    sectionName,
60268    rowIndex,
60269    columnCount
60270  }) {
60271    const firstRow = getFirstRow(state);
60272    const cellCount = columnCount === undefined ? firstRow?.cells?.length : columnCount;
60273  
60274    // Bail early if the function cannot determine how many cells to add.
60275    if (!cellCount) {
60276      return state;
60277    }
60278    return {
60279      [sectionName]: [...state[sectionName].slice(0, rowIndex), {
60280        cells: Array.from({
60281          length: cellCount
60282        }).map((_, index) => {
60283          var _firstRow$cells$index;
60284          const firstCellInColumn = (_firstRow$cells$index = firstRow?.cells?.[index]) !== null && _firstRow$cells$index !== void 0 ? _firstRow$cells$index : {};
60285          const inheritedAttributes = Object.fromEntries(Object.entries(firstCellInColumn).filter(([key]) => INHERITED_COLUMN_ATTRIBUTES.includes(key)));
60286          return {
60287            ...inheritedAttributes,
60288            content: '',
60289            tag: sectionName === 'head' ? 'th' : 'td'
60290          };
60291        })
60292      }, ...state[sectionName].slice(rowIndex)]
60293    };
60294  }
60295  
60296  /**
60297   * Deletes a row from the table state.
60298   *
60299   * @param {Object} state               Current table state.
60300   * @param {Object} options
60301   * @param {string} options.sectionName Section in which to delete the row.
60302   * @param {number} options.rowIndex    Row index to delete.
60303   *
60304   * @return {Object} New table state.
60305   */
60306  function deleteRow(state, {
60307    sectionName,
60308    rowIndex
60309  }) {
60310    return {
60311      [sectionName]: state[sectionName].filter((row, index) => index !== rowIndex)
60312    };
60313  }
60314  
60315  /**
60316   * Inserts a column in the table state.
60317   *
60318   * @param {Object} state               Current table state.
60319   * @param {Object} options
60320   * @param {number} options.columnIndex Column index at which to insert the column.
60321   *
60322   * @return {Object} New table state.
60323   */
60324  function insertColumn(state, {
60325    columnIndex
60326  }) {
60327    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
60328    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
60329      // Bail early if the table section is empty.
60330      if (isEmptyTableSection(section)) {
60331        return [sectionName, section];
60332      }
60333      return [sectionName, section.map(row => {
60334        // Bail early if the row is empty or it's an attempt to insert past
60335        // the last possible index of the array.
60336        if (isEmptyRow(row) || row.cells.length < columnIndex) {
60337          return row;
60338        }
60339        return {
60340          cells: [...row.cells.slice(0, columnIndex), {
60341            content: '',
60342            tag: sectionName === 'head' ? 'th' : 'td'
60343          }, ...row.cells.slice(columnIndex)]
60344        };
60345      })];
60346    }));
60347  }
60348  
60349  /**
60350   * Deletes a column from the table state.
60351   *
60352   * @param {Object} state               Current table state.
60353   * @param {Object} options
60354   * @param {number} options.columnIndex Column index to delete.
60355   *
60356   * @return {Object} New table state.
60357   */
60358  function deleteColumn(state, {
60359    columnIndex
60360  }) {
60361    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
60362    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
60363      // Bail early if the table section is empty.
60364      if (isEmptyTableSection(section)) {
60365        return [sectionName, section];
60366      }
60367      return [sectionName, section.map(row => ({
60368        cells: row.cells.length >= columnIndex ? row.cells.filter((cell, index) => index !== columnIndex) : row.cells
60369      })).filter(row => row.cells.length)];
60370    }));
60371  }
60372  
60373  /**
60374   * Toggles the existence of a section.
60375   *
60376   * @param {Object} state       Current table state.
60377   * @param {string} sectionName Name of the section to toggle.
60378   *
60379   * @return {Object} New table state.
60380   */
60381  function toggleSection(state, sectionName) {
60382    var _state$body$0$cells$l;
60383    // Section exists, replace it with an empty row to remove it.
60384    if (!isEmptyTableSection(state[sectionName])) {
60385      return {
60386        [sectionName]: []
60387      };
60388    }
60389  
60390    // Get the length of the first row of the body to use when creating the header.
60391    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;
60392  
60393    // Section doesn't exist, insert an empty row to create the section.
60394    return insertRow(state, {
60395      sectionName,
60396      rowIndex: 0,
60397      columnCount
60398    });
60399  }
60400  
60401  /**
60402   * Determines whether a table section is empty.
60403   *
60404   * @param {Object} section Table section state.
60405   *
60406   * @return {boolean} True if the table section is empty, false otherwise.
60407   */
60408  function isEmptyTableSection(section) {
60409    return !section || !section.length || section.every(isEmptyRow);
60410  }
60411  
60412  /**
60413   * Determines whether a table row is empty.
60414   *
60415   * @param {Object} row Table row state.
60416   *
60417   * @return {boolean} True if the table section is empty, false otherwise.
60418   */
60419  function isEmptyRow(row) {
60420    return !(row.cells && row.cells.length);
60421  }
60422  
60423  ;// ./node_modules/@wordpress/block-library/build-module/table/edit.js
60424  /**
60425   * External dependencies
60426   */
60427  
60428  
60429  /**
60430   * WordPress dependencies
60431   */
60432  
60433  
60434  
60435  
60436  
60437  
60438  /**
60439   * Internal dependencies
60440   */
60441  
60442  
60443  
60444  
60445  const ALIGNMENT_CONTROLS = [{
60446    icon: align_left,
60447    title: (0,external_wp_i18n_namespaceObject.__)('Align column left'),
60448    align: 'left'
60449  }, {
60450    icon: align_center,
60451    title: (0,external_wp_i18n_namespaceObject.__)('Align column center'),
60452    align: 'center'
60453  }, {
60454    icon: align_right,
60455    title: (0,external_wp_i18n_namespaceObject.__)('Align column right'),
60456    align: 'right'
60457  }];
60458  const cellAriaLabel = {
60459    head: (0,external_wp_i18n_namespaceObject.__)('Header cell text'),
60460    body: (0,external_wp_i18n_namespaceObject.__)('Body cell text'),
60461    foot: (0,external_wp_i18n_namespaceObject.__)('Footer cell text')
60462  };
60463  const edit_placeholder = {
60464    head: (0,external_wp_i18n_namespaceObject.__)('Header label'),
60465    foot: (0,external_wp_i18n_namespaceObject.__)('Footer label')
60466  };
60467  function TSection({
60468    name,
60469    ...props
60470  }) {
60471    const TagName = `t$name}`;
60472    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
60473      ...props
60474    });
60475  }
60476  function TableEdit({
60477    attributes,
60478    setAttributes,
60479    insertBlocksAfter,
60480    isSelected: isSingleSelected
60481  }) {
60482    const {
60483      hasFixedLayout,
60484      head,
60485      foot
60486    } = attributes;
60487    const [initialRowCount, setInitialRowCount] = (0,external_wp_element_namespaceObject.useState)(2);
60488    const [initialColumnCount, setInitialColumnCount] = (0,external_wp_element_namespaceObject.useState)(2);
60489    const [selectedCell, setSelectedCell] = (0,external_wp_element_namespaceObject.useState)();
60490    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
60491    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
60492    const tableRef = (0,external_wp_element_namespaceObject.useRef)();
60493    const [hasTableCreated, setHasTableCreated] = (0,external_wp_element_namespaceObject.useState)(false);
60494    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
60495  
60496    /**
60497     * Updates the initial column count used for table creation.
60498     *
60499     * @param {number} count New initial column count.
60500     */
60501    function onChangeInitialColumnCount(count) {
60502      setInitialColumnCount(count);
60503    }
60504  
60505    /**
60506     * Updates the initial row count used for table creation.
60507     *
60508     * @param {number} count New initial row count.
60509     */
60510    function onChangeInitialRowCount(count) {
60511      setInitialRowCount(count);
60512    }
60513  
60514    /**
60515     * Creates a table based on dimensions in local state.
60516     *
60517     * @param {Object} event Form submit event.
60518     */
60519    function onCreateTable(event) {
60520      event.preventDefault();
60521      setAttributes(createTable({
60522        rowCount: parseInt(initialRowCount, 10) || 2,
60523        columnCount: parseInt(initialColumnCount, 10) || 2
60524      }));
60525      setHasTableCreated(true);
60526    }
60527  
60528    /**
60529     * Toggles whether the table has a fixed layout or not.
60530     */
60531    function onChangeFixedLayout() {
60532      setAttributes({
60533        hasFixedLayout: !hasFixedLayout
60534      });
60535    }
60536  
60537    /**
60538     * Changes the content of the currently selected cell.
60539     *
60540     * @param {Array} content A RichText content value.
60541     */
60542    function onChange(content) {
60543      if (!selectedCell) {
60544        return;
60545      }
60546      setAttributes(updateSelectedCell(attributes, selectedCell, cellAttributes => ({
60547        ...cellAttributes,
60548        content
60549      })));
60550    }
60551  
60552    /**
60553     * Align text within the a column.
60554     *
60555     * @param {string} align The new alignment to apply to the column.
60556     */
60557    function onChangeColumnAlignment(align) {
60558      if (!selectedCell) {
60559        return;
60560      }
60561  
60562      // Convert the cell selection to a column selection so that alignment
60563      // is applied to the entire column.
60564      const columnSelection = {
60565        type: 'column',
60566        columnIndex: selectedCell.columnIndex
60567      };
60568      const newAttributes = updateSelectedCell(attributes, columnSelection, cellAttributes => ({
60569        ...cellAttributes,
60570        align
60571      }));
60572      setAttributes(newAttributes);
60573    }
60574  
60575    /**
60576     * Get the alignment of the currently selected cell.
60577     *
60578     * @return {string | undefined} The new alignment to apply to the column.
60579     */
60580    function getCellAlignment() {
60581      if (!selectedCell) {
60582        return;
60583      }
60584      return getCellAttribute(attributes, selectedCell, 'align');
60585    }
60586  
60587    /**
60588     * Add or remove a `head` table section.
60589     */
60590    function onToggleHeaderSection() {
60591      setAttributes(toggleSection(attributes, 'head'));
60592    }
60593  
60594    /**
60595     * Add or remove a `foot` table section.
60596     */
60597    function onToggleFooterSection() {
60598      setAttributes(toggleSection(attributes, 'foot'));
60599    }
60600  
60601    /**
60602     * Inserts a row at the currently selected row index, plus `delta`.
60603     *
60604     * @param {number} delta Offset for selected row index at which to insert.
60605     */
60606    function onInsertRow(delta) {
60607      if (!selectedCell) {
60608        return;
60609      }
60610      const {
60611        sectionName,
60612        rowIndex
60613      } = selectedCell;
60614      const newRowIndex = rowIndex + delta;
60615      setAttributes(insertRow(attributes, {
60616        sectionName,
60617        rowIndex: newRowIndex
60618      }));
60619      // Select the first cell of the new row.
60620      setSelectedCell({
60621        sectionName,
60622        rowIndex: newRowIndex,
60623        columnIndex: 0,
60624        type: 'cell'
60625      });
60626    }
60627  
60628    /**
60629     * Inserts a row before the currently selected row.
60630     */
60631    function onInsertRowBefore() {
60632      onInsertRow(0);
60633    }
60634  
60635    /**
60636     * Inserts a row after the currently selected row.
60637     */
60638    function onInsertRowAfter() {
60639      onInsertRow(1);
60640    }
60641  
60642    /**
60643     * Deletes the currently selected row.
60644     */
60645    function onDeleteRow() {
60646      if (!selectedCell) {
60647        return;
60648      }
60649      const {
60650        sectionName,
60651        rowIndex
60652      } = selectedCell;
60653      setSelectedCell();
60654      setAttributes(deleteRow(attributes, {
60655        sectionName,
60656        rowIndex
60657      }));
60658    }
60659  
60660    /**
60661     * Inserts a column at the currently selected column index, plus `delta`.
60662     *
60663     * @param {number} delta Offset for selected column index at which to insert.
60664     */
60665    function onInsertColumn(delta = 0) {
60666      if (!selectedCell) {
60667        return;
60668      }
60669      const {
60670        columnIndex
60671      } = selectedCell;
60672      const newColumnIndex = columnIndex + delta;
60673      setAttributes(insertColumn(attributes, {
60674        columnIndex: newColumnIndex
60675      }));
60676      // Select the first cell of the new column.
60677      setSelectedCell({
60678        rowIndex: 0,
60679        columnIndex: newColumnIndex,
60680        type: 'cell'
60681      });
60682    }
60683  
60684    /**
60685     * Inserts a column before the currently selected column.
60686     */
60687    function onInsertColumnBefore() {
60688      onInsertColumn(0);
60689    }
60690  
60691    /**
60692     * Inserts a column after the currently selected column.
60693     */
60694    function onInsertColumnAfter() {
60695      onInsertColumn(1);
60696    }
60697  
60698    /**
60699     * Deletes the currently selected column.
60700     */
60701    function onDeleteColumn() {
60702      if (!selectedCell) {
60703        return;
60704      }
60705      const {
60706        sectionName,
60707        columnIndex
60708      } = selectedCell;
60709      setSelectedCell();
60710      setAttributes(deleteColumn(attributes, {
60711        sectionName,
60712        columnIndex
60713      }));
60714    }
60715    (0,external_wp_element_namespaceObject.useEffect)(() => {
60716      if (!isSingleSelected) {
60717        setSelectedCell();
60718      }
60719    }, [isSingleSelected]);
60720    (0,external_wp_element_namespaceObject.useEffect)(() => {
60721      if (hasTableCreated) {
60722        tableRef?.current?.querySelector('td div[contentEditable="true"]')?.focus();
60723        setHasTableCreated(false);
60724      }
60725    }, [hasTableCreated]);
60726    const sections = ['head', 'body', 'foot'].filter(name => !isEmptyTableSection(attributes[name]));
60727    const tableControls = [{
60728      icon: table_row_before,
60729      title: (0,external_wp_i18n_namespaceObject.__)('Insert row before'),
60730      isDisabled: !selectedCell,
60731      onClick: onInsertRowBefore
60732    }, {
60733      icon: table_row_after,
60734      title: (0,external_wp_i18n_namespaceObject.__)('Insert row after'),
60735      isDisabled: !selectedCell,
60736      onClick: onInsertRowAfter
60737    }, {
60738      icon: table_row_delete,
60739      title: (0,external_wp_i18n_namespaceObject.__)('Delete row'),
60740      isDisabled: !selectedCell,
60741      onClick: onDeleteRow
60742    }, {
60743      icon: table_column_before,
60744      title: (0,external_wp_i18n_namespaceObject.__)('Insert column before'),
60745      isDisabled: !selectedCell,
60746      onClick: onInsertColumnBefore
60747    }, {
60748      icon: table_column_after,
60749      title: (0,external_wp_i18n_namespaceObject.__)('Insert column after'),
60750      isDisabled: !selectedCell,
60751      onClick: onInsertColumnAfter
60752    }, {
60753      icon: table_column_delete,
60754      title: (0,external_wp_i18n_namespaceObject.__)('Delete column'),
60755      isDisabled: !selectedCell,
60756      onClick: onDeleteColumn
60757    }];
60758    const renderedSections = sections.map(name => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TSection, {
60759      name: name,
60760      children: attributes[name].map(({
60761        cells
60762      }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
60763        children: cells.map(({
60764          content,
60765          tag: CellTag,
60766          scope,
60767          align,
60768          colspan,
60769          rowspan
60770        }, columnIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CellTag, {
60771          scope: CellTag === 'th' ? scope : undefined,
60772          colSpan: colspan,
60773          rowSpan: rowspan,
60774          className: dist_clsx({
60775            [`has-text-align-$align}`]: align
60776          }, 'wp-block-table__cell-content'),
60777          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
60778            value: content,
60779            onChange: onChange,
60780            onFocus: () => {
60781              setSelectedCell({
60782                sectionName: name,
60783                rowIndex,
60784                columnIndex,
60785                type: 'cell'
60786              });
60787            },
60788            "aria-label": cellAriaLabel[name],
60789            placeholder: edit_placeholder[name]
60790          })
60791        }, columnIndex))
60792      }, rowIndex))
60793    }, name));
60794    const isEmpty = !sections.length;
60795    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
60796      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
60797        ref: tableRef
60798      }),
60799      children: [!isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
60800        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
60801          group: "block",
60802          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
60803            label: (0,external_wp_i18n_namespaceObject.__)('Change column alignment'),
60804            alignmentControls: ALIGNMENT_CONTROLS,
60805            value: getCellAlignment(),
60806            onChange: nextAlign => onChangeColumnAlignment(nextAlign)
60807          })
60808        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
60809          group: "other",
60810          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
60811            icon: library_table,
60812            label: (0,external_wp_i18n_namespaceObject.__)('Edit table'),
60813            controls: tableControls
60814          })
60815        })]
60816      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
60817        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
60818          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
60819          resetAll: () => {
60820            setAttributes({
60821              hasFixedLayout: true,
60822              head: [],
60823              foot: []
60824            });
60825          },
60826          dropdownMenuProps: dropdownMenuProps,
60827          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
60828            hasValue: () => hasFixedLayout !== true,
60829            label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
60830            onDeselect: () => setAttributes({
60831              hasFixedLayout: true
60832            }),
60833            isShownByDefault: true,
60834            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60835              __nextHasNoMarginBottom: true,
60836              label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
60837              checked: !!hasFixedLayout,
60838              onChange: onChangeFixedLayout
60839            })
60840          }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
60841            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
60842              hasValue: () => head && head.length,
60843              label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
60844              onDeselect: () => setAttributes({
60845                head: []
60846              }),
60847              isShownByDefault: true,
60848              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60849                __nextHasNoMarginBottom: true,
60850                label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
60851                checked: !!(head && head.length),
60852                onChange: onToggleHeaderSection
60853              })
60854            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
60855              hasValue: () => foot && foot.length,
60856              label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
60857              onDeselect: () => setAttributes({
60858                foot: []
60859              }),
60860              isShownByDefault: true,
60861              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60862                __nextHasNoMarginBottom: true,
60863                label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
60864                checked: !!(foot && foot.length),
60865                onChange: onToggleFooterSection
60866              })
60867            })]
60868          })]
60869        })
60870      }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("table", {
60871        className: dist_clsx(colorProps.className, borderProps.className, {
60872          'has-fixed-layout': hasFixedLayout,
60873          // This is required in the editor only to overcome
60874          // the fact the editor rewrites individual border
60875          // widths into a shorthand format.
60876          'has-individual-borders': (0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(attributes?.style?.border)
60877        }),
60878        style: {
60879          ...colorProps.style,
60880          ...borderProps.style
60881        },
60882        children: renderedSections
60883      }), isEmpty ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
60884        label: (0,external_wp_i18n_namespaceObject.__)('Table'),
60885        icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
60886          icon: block_table,
60887          showColors: true
60888        }),
60889        instructions: (0,external_wp_i18n_namespaceObject.__)('Insert a table for sharing data.'),
60890        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
60891          className: "blocks-table__placeholder-form",
60892          onSubmit: onCreateTable,
60893          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
60894            __nextHasNoMarginBottom: true,
60895            __next40pxDefaultSize: true,
60896            type: "number",
60897            label: (0,external_wp_i18n_namespaceObject.__)('Column count'),
60898            value: initialColumnCount,
60899            onChange: onChangeInitialColumnCount,
60900            min: "1",
60901            className: "blocks-table__placeholder-input"
60902          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
60903            __nextHasNoMarginBottom: true,
60904            __next40pxDefaultSize: true,
60905            type: "number",
60906            label: (0,external_wp_i18n_namespaceObject.__)('Row count'),
60907            value: initialRowCount,
60908            onChange: onChangeInitialRowCount,
60909            min: "1",
60910            className: "blocks-table__placeholder-input"
60911          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
60912            __next40pxDefaultSize: true,
60913            variant: "primary",
60914            type: "submit",
60915            children: (0,external_wp_i18n_namespaceObject.__)('Create Table')
60916          })]
60917        })
60918      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
60919        attributes: attributes,
60920        setAttributes: setAttributes,
60921        isSelected: isSingleSelected,
60922        insertBlocksAfter: insertBlocksAfter,
60923        label: (0,external_wp_i18n_namespaceObject.__)('Table caption text'),
60924        showToolbarButton: isSingleSelected
60925      })]
60926    });
60927  }
60928  /* harmony default export */ const table_edit = (TableEdit);
60929  
60930  ;// ./node_modules/@wordpress/block-library/build-module/table/save.js
60931  /**
60932   * External dependencies
60933   */
60934  
60935  
60936  /**
60937   * WordPress dependencies
60938   */
60939  
60940  
60941  function table_save_save({
60942    attributes
60943  }) {
60944    const {
60945      hasFixedLayout,
60946      head,
60947      body,
60948      foot,
60949      caption
60950    } = attributes;
60951    const isEmpty = !head.length && !body.length && !foot.length;
60952    if (isEmpty) {
60953      return null;
60954    }
60955    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
60956    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
60957    const classes = dist_clsx(colorProps.className, borderProps.className, {
60958      'has-fixed-layout': hasFixedLayout
60959    });
60960    const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
60961    const Section = ({
60962      type,
60963      rows
60964    }) => {
60965      if (!rows.length) {
60966        return null;
60967      }
60968      const Tag = `t$type}`;
60969      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
60970        children: rows.map(({
60971          cells
60972        }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
60973          children: cells.map(({
60974            content,
60975            tag,
60976            scope,
60977            align,
60978            colspan,
60979            rowspan
60980          }, cellIndex) => {
60981            const cellClasses = dist_clsx({
60982              [`has-text-align-$align}`]: align
60983            });
60984            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
60985              className: cellClasses ? cellClasses : undefined,
60986              "data-align": align,
60987              tagName: tag,
60988              value: content,
60989              scope: tag === 'th' ? scope : undefined,
60990              colSpan: colspan,
60991              rowSpan: rowspan
60992            }, cellIndex);
60993          })
60994        }, rowIndex))
60995      });
60996    };
60997    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
60998      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
60999      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
61000        className: classes === '' ? undefined : classes,
61001        style: {
61002          ...colorProps.style,
61003          ...borderProps.style
61004        },
61005        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
61006          type: "head",
61007          rows: head
61008        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
61009          type: "body",
61010          rows: body
61011        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
61012          type: "foot",
61013          rows: foot
61014        })]
61015      }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
61016        tagName: "figcaption",
61017        value: caption,
61018        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
61019      })]
61020    });
61021  }
61022  
61023  ;// ./node_modules/@wordpress/block-library/build-module/table/utils.js
61024  /**
61025   * Normalize the rowspan/colspan value.
61026   * Returns undefined if the parameter is not a positive number
61027   * or the default value (1) for rowspan/colspan.
61028   *
61029   * @param {number|undefined} rowColSpan rowspan/colspan value.
61030   *
61031   * @return {string|undefined} normalized rowspan/colspan value.
61032   */
61033  function normalizeRowColSpan(rowColSpan) {
61034    const parsedValue = parseInt(rowColSpan, 10);
61035    if (!Number.isInteger(parsedValue)) {
61036      return undefined;
61037    }
61038    return parsedValue < 0 || parsedValue === 1 ? undefined : parsedValue.toString();
61039  }
61040  
61041  ;// ./node_modules/@wordpress/block-library/build-module/table/transforms.js
61042  /**
61043   * WordPress dependencies
61044   */
61045  
61046  
61047  /**
61048   * Internal dependencies
61049   */
61050  
61051  const tableContentPasteSchema = ({
61052    phrasingContentSchema
61053  }) => ({
61054    tr: {
61055      allowEmpty: true,
61056      children: {
61057        th: {
61058          allowEmpty: true,
61059          children: phrasingContentSchema,
61060          attributes: ['scope', 'colspan', 'rowspan']
61061        },
61062        td: {
61063          allowEmpty: true,
61064          children: phrasingContentSchema,
61065          attributes: ['colspan', 'rowspan']
61066        }
61067      }
61068    }
61069  });
61070  const tablePasteSchema = args => ({
61071    table: {
61072      children: {
61073        thead: {
61074          allowEmpty: true,
61075          children: tableContentPasteSchema(args)
61076        },
61077        tfoot: {
61078          allowEmpty: true,
61079          children: tableContentPasteSchema(args)
61080        },
61081        tbody: {
61082          allowEmpty: true,
61083          children: tableContentPasteSchema(args)
61084        }
61085      }
61086    }
61087  });
61088  const table_transforms_transforms = {
61089    from: [{
61090      type: 'raw',
61091      selector: 'table',
61092      schema: tablePasteSchema,
61093      transform: node => {
61094        const attributes = Array.from(node.children).reduce((sectionAcc, section) => {
61095          if (!section.children.length) {
61096            return sectionAcc;
61097          }
61098          const sectionName = section.nodeName.toLowerCase().slice(1);
61099          const sectionAttributes = Array.from(section.children).reduce((rowAcc, row) => {
61100            if (!row.children.length) {
61101              return rowAcc;
61102            }
61103            const rowAttributes = Array.from(row.children).reduce((colAcc, col) => {
61104              const rowspan = normalizeRowColSpan(col.getAttribute('rowspan'));
61105              const colspan = normalizeRowColSpan(col.getAttribute('colspan'));
61106              colAcc.push({
61107                tag: col.nodeName.toLowerCase(),
61108                content: col.innerHTML,
61109                rowspan,
61110                colspan
61111              });
61112              return colAcc;
61113            }, []);
61114            rowAcc.push({
61115              cells: rowAttributes
61116            });
61117            return rowAcc;
61118          }, []);
61119          sectionAcc[sectionName] = sectionAttributes;
61120          return sectionAcc;
61121        }, {});
61122        return (0,external_wp_blocks_namespaceObject.createBlock)('core/table', attributes);
61123      }
61124    }]
61125  };
61126  /* harmony default export */ const table_transforms = (table_transforms_transforms);
61127  
61128  ;// ./node_modules/@wordpress/block-library/build-module/table/index.js
61129  /**
61130   * WordPress dependencies
61131   */
61132  
61133  
61134  
61135  /**
61136   * Internal dependencies
61137   */
61138  
61139  
61140  
61141  const table_metadata = {
61142    $schema: "https://schemas.wp.org/trunk/block.json",
61143    apiVersion: 3,
61144    name: "core/table",
61145    title: "Table",
61146    category: "text",
61147    description: "Create structured content in rows and columns to display information.",
61148    textdomain: "default",
61149    attributes: {
61150      hasFixedLayout: {
61151        type: "boolean",
61152        "default": true
61153      },
61154      caption: {
61155        type: "rich-text",
61156        source: "rich-text",
61157        selector: "figcaption"
61158      },
61159      head: {
61160        type: "array",
61161        "default": [],
61162        source: "query",
61163        selector: "thead tr",
61164        query: {
61165          cells: {
61166            type: "array",
61167            "default": [],
61168            source: "query",
61169            selector: "td,th",
61170            query: {
61171              content: {
61172                type: "rich-text",
61173                source: "rich-text"
61174              },
61175              tag: {
61176                type: "string",
61177                "default": "td",
61178                source: "tag"
61179              },
61180              scope: {
61181                type: "string",
61182                source: "attribute",
61183                attribute: "scope"
61184              },
61185              align: {
61186                type: "string",
61187                source: "attribute",
61188                attribute: "data-align"
61189              },
61190              colspan: {
61191                type: "string",
61192                source: "attribute",
61193                attribute: "colspan"
61194              },
61195              rowspan: {
61196                type: "string",
61197                source: "attribute",
61198                attribute: "rowspan"
61199              }
61200            }
61201          }
61202        }
61203      },
61204      body: {
61205        type: "array",
61206        "default": [],
61207        source: "query",
61208        selector: "tbody tr",
61209        query: {
61210          cells: {
61211            type: "array",
61212            "default": [],
61213            source: "query",
61214            selector: "td,th",
61215            query: {
61216              content: {
61217                type: "rich-text",
61218                source: "rich-text"
61219              },
61220              tag: {
61221                type: "string",
61222                "default": "td",
61223                source: "tag"
61224              },
61225              scope: {
61226                type: "string",
61227                source: "attribute",
61228                attribute: "scope"
61229              },
61230              align: {
61231                type: "string",
61232                source: "attribute",
61233                attribute: "data-align"
61234              },
61235              colspan: {
61236                type: "string",
61237                source: "attribute",
61238                attribute: "colspan"
61239              },
61240              rowspan: {
61241                type: "string",
61242                source: "attribute",
61243                attribute: "rowspan"
61244              }
61245            }
61246          }
61247        }
61248      },
61249      foot: {
61250        type: "array",
61251        "default": [],
61252        source: "query",
61253        selector: "tfoot tr",
61254        query: {
61255          cells: {
61256            type: "array",
61257            "default": [],
61258            source: "query",
61259            selector: "td,th",
61260            query: {
61261              content: {
61262                type: "rich-text",
61263                source: "rich-text"
61264              },
61265              tag: {
61266                type: "string",
61267                "default": "td",
61268                source: "tag"
61269              },
61270              scope: {
61271                type: "string",
61272                source: "attribute",
61273                attribute: "scope"
61274              },
61275              align: {
61276                type: "string",
61277                source: "attribute",
61278                attribute: "data-align"
61279              },
61280              colspan: {
61281                type: "string",
61282                source: "attribute",
61283                attribute: "colspan"
61284              },
61285              rowspan: {
61286                type: "string",
61287                source: "attribute",
61288                attribute: "rowspan"
61289              }
61290            }
61291          }
61292        }
61293      }
61294    },
61295    supports: {
61296      anchor: true,
61297      align: true,
61298      color: {
61299        __experimentalSkipSerialization: true,
61300        gradients: true,
61301        __experimentalDefaultControls: {
61302          background: true,
61303          text: true
61304        }
61305      },
61306      spacing: {
61307        margin: true,
61308        padding: true,
61309        __experimentalDefaultControls: {
61310          margin: false,
61311          padding: false
61312        }
61313      },
61314      typography: {
61315        fontSize: true,
61316        lineHeight: true,
61317        __experimentalFontFamily: true,
61318        __experimentalFontStyle: true,
61319        __experimentalFontWeight: true,
61320        __experimentalLetterSpacing: true,
61321        __experimentalTextTransform: true,
61322        __experimentalTextDecoration: true,
61323        __experimentalDefaultControls: {
61324          fontSize: true
61325        }
61326      },
61327      __experimentalBorder: {
61328        __experimentalSkipSerialization: true,
61329        color: true,
61330        style: true,
61331        width: true,
61332        __experimentalDefaultControls: {
61333          color: true,
61334          style: true,
61335          width: true
61336        }
61337      },
61338      interactivity: {
61339        clientNavigation: true
61340      }
61341    },
61342    selectors: {
61343      root: ".wp-block-table > table",
61344      spacing: ".wp-block-table"
61345    },
61346    styles: [{
61347      name: "regular",
61348      label: "Default",
61349      isDefault: true
61350    }, {
61351      name: "stripes",
61352      label: "Stripes"
61353    }],
61354    editorStyle: "wp-block-table-editor",
61355    style: "wp-block-table"
61356  };
61357  
61358  
61359  const {
61360    name: table_name
61361  } = table_metadata;
61362  
61363  const table_settings = {
61364    icon: block_table,
61365    example: {
61366      attributes: {
61367        head: [{
61368          cells: [{
61369            content: (0,external_wp_i18n_namespaceObject.__)('Version'),
61370            tag: 'th'
61371          }, {
61372            content: (0,external_wp_i18n_namespaceObject.__)('Jazz Musician'),
61373            tag: 'th'
61374          }, {
61375            content: (0,external_wp_i18n_namespaceObject.__)('Release Date'),
61376            tag: 'th'
61377          }]
61378        }],
61379        body: [{
61380          cells: [{
61381            content: '5.2',
61382            tag: 'td'
61383          }, {
61384            content: 'Jaco Pastorius',
61385            tag: 'td'
61386          }, {
61387            content: (0,external_wp_i18n_namespaceObject.__)('May 7, 2019'),
61388            tag: 'td'
61389          }]
61390        }, {
61391          cells: [{
61392            content: '5.1',
61393            tag: 'td'
61394          }, {
61395            content: 'Betty Carter',
61396            tag: 'td'
61397          }, {
61398            content: (0,external_wp_i18n_namespaceObject.__)('February 21, 2019'),
61399            tag: 'td'
61400          }]
61401        }, {
61402          cells: [{
61403            content: '5.0',
61404            tag: 'td'
61405          }, {
61406            content: 'Bebo Valdés',
61407            tag: 'td'
61408          }, {
61409            content: (0,external_wp_i18n_namespaceObject.__)('December 6, 2018'),
61410            tag: 'td'
61411          }]
61412        }]
61413      },
61414      viewportWidth: 450
61415    },
61416    transforms: table_transforms,
61417    edit: table_edit,
61418    save: table_save_save,
61419    deprecated: table_deprecated
61420  };
61421  const table_init = () => initBlock({
61422    name: table_name,
61423    metadata: table_metadata,
61424    settings: table_settings
61425  });
61426  
61427  ;// ./node_modules/@wordpress/icons/build-module/library/table-of-contents.js
61428  /**
61429   * WordPress dependencies
61430   */
61431  
61432  
61433  const tableOfContents = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
61434    xmlns: "http://www.w3.org/2000/svg",
61435    viewBox: "0 0 24 24",
61436    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61437      fillRule: "evenodd",
61438      clipRule: "evenodd",
61439      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"
61440    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61441      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"
61442    })]
61443  });
61444  /* harmony default export */ const table_of_contents = (tableOfContents);
61445  
61446  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/list.js
61447  
61448  /**
61449   * External dependencies
61450   */
61451  
61452  /**
61453   * Internal dependencies
61454   */
61455  
61456  const ENTRY_CLASS_NAME = 'wp-block-table-of-contents__entry';
61457  function TableOfContentsList({
61458    nestedHeadingList,
61459    disableLinkActivation,
61460    onClick
61461  }) {
61462    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61463      children: nestedHeadingList.map((node, index) => {
61464        const {
61465          content,
61466          link
61467        } = node.heading;
61468        const entry = link ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
61469          className: ENTRY_CLASS_NAME,
61470          href: link,
61471          "aria-disabled": disableLinkActivation || undefined,
61472          onClick: disableLinkActivation && 'function' === typeof onClick ? onClick : undefined,
61473          children: content
61474        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
61475          className: ENTRY_CLASS_NAME,
61476          children: content
61477        });
61478        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
61479          children: [entry, node.children ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
61480            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61481              nestedHeadingList: node.children,
61482              disableLinkActivation: disableLinkActivation,
61483              onClick: disableLinkActivation && 'function' === typeof onClick ? onClick : undefined
61484            })
61485          }) : null]
61486        }, index);
61487      })
61488    });
61489  }
61490  
61491  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/utils.js
61492  /**
61493   * Takes a flat list of heading parameters and nests them based on each header's
61494   * immediate parent's level.
61495   *
61496   * @param headingList The flat list of headings to nest.
61497   *
61498   * @return The nested list of headings.
61499   */
61500  function linearToNestedHeadingList(headingList) {
61501    const nestedHeadingList = [];
61502    headingList.forEach((heading, key) => {
61503      if (heading.content === '') {
61504        return;
61505      }
61506  
61507      // Make sure we are only working with the same level as the first iteration in our set.
61508      if (heading.level === headingList[0].level) {
61509        // Check that the next iteration will return a value.
61510        // If it does and the next level is greater than the current level,
61511        // the next iteration becomes a child of the current iteration.
61512        if (headingList[key + 1]?.level > heading.level) {
61513          // We must calculate the last index before the next iteration that
61514          // has the same level (siblings). We then use this index to slice
61515          // the array for use in recursion. This prevents duplicate nodes.
61516          let endOfSlice = headingList.length;
61517          for (let i = key + 1; i < headingList.length; i++) {
61518            if (headingList[i].level === heading.level) {
61519              endOfSlice = i;
61520              break;
61521            }
61522          }
61523  
61524          // We found a child node: Push a new node onto the return array
61525          // with children.
61526          nestedHeadingList.push({
61527            heading,
61528            children: linearToNestedHeadingList(headingList.slice(key + 1, endOfSlice))
61529          });
61530        } else {
61531          // No child node: Push a new node onto the return array.
61532          nestedHeadingList.push({
61533            heading,
61534            children: null
61535          });
61536        }
61537      }
61538    });
61539    return nestedHeadingList;
61540  }
61541  
61542  // EXTERNAL MODULE: ./node_modules/fast-deep-equal/es6/index.js
61543  var es6 = __webpack_require__(7734);
61544  var es6_default = /*#__PURE__*/__webpack_require__.n(es6);
61545  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/hooks.js
61546  /**
61547   * External dependencies
61548   */
61549  
61550  
61551  /**
61552   * WordPress dependencies
61553   */
61554  
61555  
61556  
61557  
61558  
61559  function getLatestHeadings(select, clientId) {
61560    var _select$getPermalink, _getBlockAttributes;
61561    const {
61562      getBlockAttributes,
61563      getBlockName,
61564      getClientIdsWithDescendants,
61565      getBlocksByName
61566    } = select(external_wp_blockEditor_namespaceObject.store);
61567  
61568    // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
61569    // Blocks can be loaded into a *non-post* block editor, so to avoid
61570    // declaring @wordpress/editor as a dependency, we must access its
61571    // store by string. When the store is not available, editorSelectors
61572    // will be null, and the block's saved markup will lack permalinks.
61573    // eslint-disable-next-line @wordpress/data-no-store-string-literals
61574    const permalink = (_select$getPermalink = select('core/editor').getPermalink()) !== null && _select$getPermalink !== void 0 ? _select$getPermalink : null;
61575    const isPaginated = getBlocksByName('core/nextpage').length !== 0;
61576    const {
61577      onlyIncludeCurrentPage
61578    } = (_getBlockAttributes = getBlockAttributes(clientId)) !== null && _getBlockAttributes !== void 0 ? _getBlockAttributes : {};
61579  
61580    // Get the client ids of all blocks in the editor.
61581    const allBlockClientIds = getClientIdsWithDescendants();
61582  
61583    // 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.
61584    let tocPage = 1;
61585    if (isPaginated && onlyIncludeCurrentPage) {
61586      // We can't use getBlockIndex because it only returns the index
61587      // relative to sibling blocks.
61588      const tocIndex = allBlockClientIds.indexOf(clientId);
61589      for (const [blockIndex, blockClientId] of allBlockClientIds.entries()) {
61590        // If we've reached blocks after the Table of Contents, we've
61591        // finished calculating which page the block is on.
61592        if (blockIndex >= tocIndex) {
61593          break;
61594        }
61595        if (getBlockName(blockClientId) === 'core/nextpage') {
61596          tocPage++;
61597        }
61598      }
61599    }
61600    const latestHeadings = [];
61601  
61602    /** The page (of a paginated post) a heading will be part of. */
61603    let headingPage = 1;
61604    let headingPageLink = null;
61605  
61606    // If the core/editor store is available, we can add permalinks to the
61607    // generated table of contents.
61608    if (typeof permalink === 'string') {
61609      headingPageLink = isPaginated ? (0,external_wp_url_namespaceObject.addQueryArgs)(permalink, {
61610        page: headingPage
61611      }) : permalink;
61612    }
61613    for (const blockClientId of allBlockClientIds) {
61614      const blockName = getBlockName(blockClientId);
61615      if (blockName === 'core/nextpage') {
61616        headingPage++;
61617  
61618        // If we're only including headings from the current page (of
61619        // a paginated post), then exit the loop if we've reached the
61620        // pages after the one with the Table of Contents block.
61621        if (onlyIncludeCurrentPage && headingPage > tocPage) {
61622          break;
61623        }
61624        if (typeof permalink === 'string') {
61625          headingPageLink = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(permalink, ['page']), {
61626            page: headingPage
61627          });
61628        }
61629      }
61630      // If we're including all headings or we've reached headings on
61631      // the same page as the Table of Contents block, add them to the
61632      // list.
61633      else if (!onlyIncludeCurrentPage || headingPage === tocPage) {
61634        if (blockName === 'core/heading') {
61635          const headingAttributes = getBlockAttributes(blockClientId);
61636          const canBeLinked = typeof headingPageLink === 'string' && typeof headingAttributes.anchor === 'string' && headingAttributes.anchor !== '';
61637          latestHeadings.push({
61638            // Convert line breaks to spaces, and get rid of HTML tags in the headings.
61639            content: (0,external_wp_dom_namespaceObject.__unstableStripHTML)(headingAttributes.content.replace(/(<br *\/?>)+/g, ' ')),
61640            level: headingAttributes.level,
61641            link: canBeLinked ? `$headingPageLink}#${headingAttributes.anchor}` : null
61642          });
61643        }
61644      }
61645    }
61646    return latestHeadings;
61647  }
61648  function observeCallback(select, dispatch, clientId) {
61649    const {
61650      getBlockAttributes
61651    } = select(external_wp_blockEditor_namespaceObject.store);
61652    const {
61653      updateBlockAttributes,
61654      __unstableMarkNextChangeAsNotPersistent
61655    } = dispatch(external_wp_blockEditor_namespaceObject.store);
61656  
61657    /**
61658     * If the block no longer exists in the store, skip the update.
61659     * The "undo" action recreates the block and provides a new `clientId`.
61660     * The hook still might be observing the changes while the old block unmounts.
61661     */
61662    const attributes = getBlockAttributes(clientId);
61663    if (attributes === null) {
61664      return;
61665    }
61666    const headings = getLatestHeadings(select, clientId);
61667    if (!es6_default()(headings, attributes.headings)) {
61668      __unstableMarkNextChangeAsNotPersistent();
61669      updateBlockAttributes(clientId, {
61670        headings
61671      });
61672    }
61673  }
61674  function useObserveHeadings(clientId) {
61675    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
61676    (0,external_wp_element_namespaceObject.useEffect)(() => {
61677      // Todo: Limit subscription to block editor store when data no longer depends on `getPermalink`.
61678      // See: https://github.com/WordPress/gutenberg/pull/45513
61679      return registry.subscribe(() => observeCallback(registry.select, registry.dispatch, clientId));
61680    }, [registry, clientId]);
61681  }
61682  
61683  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/edit.js
61684  /**
61685   * WordPress dependencies
61686   */
61687  
61688  
61689  
61690  
61691  
61692  
61693  
61694  
61695  
61696  
61697  /**
61698   * Internal dependencies
61699   */
61700  
61701  
61702  
61703  
61704  
61705  /** @typedef {import('./utils').HeadingData} HeadingData */
61706  
61707  /**
61708   * Table of Contents block edit component.
61709   *
61710   * @param {Object}                       props                                   The props.
61711   * @param {Object}                       props.attributes                        The block attributes.
61712   * @param {HeadingData[]}                props.attributes.headings               A list of data for each heading in the post.
61713   * @param {boolean}                      props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).
61714   * @param {string}                       props.clientId
61715   * @param {(attributes: Object) => void} props.setAttributes
61716   *
61717   * @return {Component} The component.
61718   */
61719  
61720  function TableOfContentsEdit({
61721    attributes: {
61722      headings = [],
61723      onlyIncludeCurrentPage
61724    },
61725    clientId,
61726    setAttributes
61727  }) {
61728    useObserveHeadings(clientId);
61729    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
61730    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(TableOfContentsEdit, 'table-of-contents');
61731  
61732    // If a user clicks to a link prevent redirection and show a warning.
61733    const {
61734      createWarningNotice
61735    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
61736    const showRedirectionPreventedNotice = event => {
61737      event.preventDefault();
61738      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('Links are disabled in the editor.'), {
61739        id: `block-library/core/table-of-contents/redirection-prevented/$instanceId}`,
61740        type: 'snackbar'
61741      });
61742    };
61743    const canInsertList = (0,external_wp_data_namespaceObject.useSelect)(select => {
61744      const {
61745        getBlockRootClientId,
61746        canInsertBlockType
61747      } = select(external_wp_blockEditor_namespaceObject.store);
61748      const rootClientId = getBlockRootClientId(clientId);
61749      return canInsertBlockType('core/list', rootClientId);
61750    }, [clientId]);
61751    const {
61752      replaceBlocks
61753    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
61754    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
61755    const headingTree = linearToNestedHeadingList(headings);
61756    const toolbarControls = canInsertList && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
61757      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
61758        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
61759          onClick: () => replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
61760            ordered: true,
61761            values: (0,external_wp_element_namespaceObject.renderToString)(/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61762              nestedHeadingList: headingTree
61763            }))
61764          })),
61765          children: (0,external_wp_i18n_namespaceObject.__)('Convert to static list')
61766        })
61767      })
61768    });
61769    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
61770      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
61771        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
61772        resetAll: () => {
61773          setAttributes({
61774            onlyIncludeCurrentPage: false
61775          });
61776        },
61777        dropdownMenuProps: dropdownMenuProps,
61778        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
61779          hasValue: () => !!onlyIncludeCurrentPage,
61780          label: (0,external_wp_i18n_namespaceObject.__)('Only include current page'),
61781          onDeselect: () => setAttributes({
61782            onlyIncludeCurrentPage: false
61783          }),
61784          isShownByDefault: true,
61785          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
61786            __nextHasNoMarginBottom: true,
61787            label: (0,external_wp_i18n_namespaceObject.__)('Only include current page'),
61788            checked: onlyIncludeCurrentPage,
61789            onChange: value => setAttributes({
61790              onlyIncludeCurrentPage: value
61791            }),
61792            help: onlyIncludeCurrentPage ? (0,external_wp_i18n_namespaceObject.__)('Only including headings from the current page (if the post is paginated).') : (0,external_wp_i18n_namespaceObject.__)('Include headings from all pages (if the post is paginated).')
61793          })
61794        })
61795      })
61796    });
61797  
61798    // If there are no headings or the only heading is empty.
61799    // Note that the toolbar controls are intentionally omitted since the
61800    // "Convert to static list" option is useless to the placeholder state.
61801    if (headings.length === 0) {
61802      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61803        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
61804          ...blockProps,
61805          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
61806            icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
61807              icon: table_of_contents
61808            }),
61809            label: (0,external_wp_i18n_namespaceObject.__)('Table of Contents'),
61810            instructions: (0,external_wp_i18n_namespaceObject.__)('Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.')
61811          })
61812        }), inspectorControls]
61813      });
61814    }
61815    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61816      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
61817        ...blockProps,
61818        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
61819          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61820            nestedHeadingList: headingTree,
61821            disableLinkActivation: true,
61822            onClick: showRedirectionPreventedNotice
61823          })
61824        })
61825      }), toolbarControls, inspectorControls]
61826    });
61827  }
61828  
61829  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/save.js
61830  /**
61831   * WordPress dependencies
61832   */
61833  
61834  
61835  /**
61836   * Internal dependencies
61837   */
61838  
61839  
61840  
61841  function table_of_contents_save_save({
61842    attributes: {
61843      headings = []
61844    }
61845  }) {
61846    if (headings.length === 0) {
61847      return null;
61848    }
61849    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
61850      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
61851      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
61852        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61853          nestedHeadingList: linearToNestedHeadingList(headings)
61854        })
61855      })
61856    });
61857  }
61858  
61859  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/index.js
61860  /**
61861   * WordPress dependencies
61862   */
61863  
61864  
61865  
61866  /**
61867   * Internal dependencies
61868   */
61869  
61870  const table_of_contents_metadata = {
61871    $schema: "https://schemas.wp.org/trunk/block.json",
61872    apiVersion: 3,
61873    __experimental: true,
61874    name: "core/table-of-contents",
61875    title: "Table of Contents",
61876    category: "design",
61877    description: "Summarize your post with a list of headings. Add HTML anchors to Heading blocks to link them here.",
61878    keywords: ["document outline", "summary"],
61879    textdomain: "default",
61880    attributes: {
61881      headings: {
61882        type: "array",
61883        items: {
61884          type: "object"
61885        },
61886        "default": []
61887      },
61888      onlyIncludeCurrentPage: {
61889        type: "boolean",
61890        "default": false
61891      }
61892    },
61893    supports: {
61894      html: false,
61895      color: {
61896        text: true,
61897        background: true,
61898        gradients: true,
61899        link: true
61900      },
61901      spacing: {
61902        margin: true,
61903        padding: true
61904      },
61905      typography: {
61906        fontSize: true,
61907        lineHeight: true,
61908        __experimentalFontFamily: true,
61909        __experimentalFontWeight: true,
61910        __experimentalFontStyle: true,
61911        __experimentalTextTransform: true,
61912        __experimentalTextDecoration: true,
61913        __experimentalLetterSpacing: true,
61914        __experimentalDefaultControls: {
61915          fontSize: true
61916        }
61917      },
61918      interactivity: {
61919        clientNavigation: true
61920      },
61921      __experimentalBorder: {
61922        radius: true,
61923        color: true,
61924        width: true,
61925        style: true,
61926        __experimentalDefaultControls: {
61927          radius: true,
61928          color: true,
61929          width: true,
61930          style: true
61931        }
61932      }
61933    },
61934    style: "wp-block-table-of-contents"
61935  };
61936  
61937  
61938  const {
61939    name: table_of_contents_name
61940  } = table_of_contents_metadata;
61941  
61942  const table_of_contents_settings = {
61943    icon: table_of_contents,
61944    edit: TableOfContentsEdit,
61945    save: table_of_contents_save_save,
61946    example: {
61947      innerBlocks: [{
61948        name: 'core/heading',
61949        attributes: {
61950          level: 2,
61951          content: (0,external_wp_i18n_namespaceObject.__)('Heading')
61952        }
61953      }, {
61954        name: 'core/heading',
61955        attributes: {
61956          level: 3,
61957          content: (0,external_wp_i18n_namespaceObject.__)('Subheading')
61958        }
61959      }, {
61960        name: 'core/heading',
61961        attributes: {
61962          level: 2,
61963          content: (0,external_wp_i18n_namespaceObject.__)('Heading')
61964        }
61965      }, {
61966        name: 'core/heading',
61967        attributes: {
61968          level: 3,
61969          content: (0,external_wp_i18n_namespaceObject.__)('Subheading')
61970        }
61971      }],
61972      attributes: {
61973        headings: [{
61974          content: (0,external_wp_i18n_namespaceObject.__)('Heading'),
61975          level: 2
61976        }, {
61977          content: (0,external_wp_i18n_namespaceObject.__)('Subheading'),
61978          level: 3
61979        }, {
61980          content: (0,external_wp_i18n_namespaceObject.__)('Heading'),
61981          level: 2
61982        }, {
61983          content: (0,external_wp_i18n_namespaceObject.__)('Subheading'),
61984          level: 3
61985        }]
61986      }
61987    }
61988  };
61989  const table_of_contents_init = () => initBlock({
61990    name: table_of_contents_name,
61991    metadata: table_of_contents_metadata,
61992    settings: table_of_contents_settings
61993  });
61994  
61995  ;// ./node_modules/@wordpress/block-library/build-module/tag-cloud/transforms.js
61996  /**
61997   * WordPress dependencies
61998   */
61999  
62000  const tag_cloud_transforms_transforms = {
62001    from: [{
62002      type: 'block',
62003      blocks: ['core/categories'],
62004      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/tag-cloud')
62005    }],
62006    to: [{
62007      type: 'block',
62008      blocks: ['core/categories'],
62009      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/categories')
62010    }]
62011  };
62012  /* harmony default export */ const tag_cloud_transforms = (tag_cloud_transforms_transforms);
62013  
62014  ;// ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js
62015  /**
62016   * WordPress dependencies
62017   */
62018  
62019  
62020  
62021  
62022  
62023  
62024  
62025  /**
62026   * Internal dependencies
62027   */
62028  
62029  
62030  /**
62031   * Minimum number of tags a user can show using this block.
62032   *
62033   * @type {number}
62034   */
62035  
62036  const MIN_TAGS = 1;
62037  
62038  /**
62039   * Maximum number of tags a user can show using this block.
62040   *
62041   * @type {number}
62042   */
62043  const MAX_TAGS = 100;
62044  const MIN_FONT_SIZE = 0.1;
62045  const MAX_FONT_SIZE = 100;
62046  function TagCloudEdit({
62047    attributes,
62048    setAttributes
62049  }) {
62050    const {
62051      taxonomy,
62052      showTagCounts,
62053      numberOfTags,
62054      smallestFontSize,
62055      largestFontSize
62056    } = attributes;
62057    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
62058    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
62059  
62060    // The `pt` unit is used as the default value and is therefore
62061    // always considered an available unit.
62062    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
62063      availableUnits: availableUnits ? [...availableUnits, 'pt'] : ['%', 'px', 'em', 'rem', 'pt']
62064    });
62065    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getTaxonomies({
62066      per_page: -1
62067    }), []);
62068    const getTaxonomyOptions = () => {
62069      const selectOption = {
62070        label: (0,external_wp_i18n_namespaceObject.__)('- Select -'),
62071        value: '',
62072        disabled: true
62073      };
62074      const taxonomyOptions = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(tax => !!tax.show_cloud).map(item => {
62075        return {
62076          value: item.slug,
62077          label: item.name
62078        };
62079      });
62080      return [selectOption, ...taxonomyOptions];
62081    };
62082    const onFontSizeChange = (fontSizeLabel, newValue) => {
62083      // eslint-disable-next-line @wordpress/no-unused-vars-before-return
62084      const [quantity, newUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(newValue);
62085      if (!Number.isFinite(quantity)) {
62086        return;
62087      }
62088      const updateObj = {
62089        [fontSizeLabel]: newValue
62090      };
62091      // We need to keep in sync the `unit` changes to both `smallestFontSize`
62092      // and `largestFontSize` attributes.
62093      Object.entries({
62094        smallestFontSize,
62095        largestFontSize
62096      }).forEach(([attribute, currentValue]) => {
62097        const [currentQuantity, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue);
62098        // Only add an update if the other font size attribute has a different unit.
62099        if (attribute !== fontSizeLabel && currentUnit !== newUnit) {
62100          updateObj[attribute] = `$currentQuantity}$newUnit}`;
62101        }
62102      });
62103      setAttributes(updateObj);
62104    };
62105  
62106    // Remove border styles from the server-side attributes to prevent duplicate border.
62107    const serverSideAttributes = {
62108      ...attributes,
62109      style: {
62110        ...attributes?.style,
62111        border: undefined
62112      }
62113    };
62114    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
62115      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
62116        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
62117        resetAll: () => {
62118          setAttributes({
62119            taxonomy: 'post_tag',
62120            showTagCounts: false,
62121            numberOfTags: 45,
62122            smallestFontSize: '8pt',
62123            largestFontSize: '22pt'
62124          });
62125        },
62126        dropdownMenuProps: dropdownMenuProps,
62127        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62128          hasValue: () => taxonomy !== 'post_tag',
62129          label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
62130          onDeselect: () => setAttributes({
62131            taxonomy: 'post_tag'
62132          }),
62133          isShownByDefault: true,
62134          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
62135            __nextHasNoMarginBottom: true,
62136            __next40pxDefaultSize: true,
62137            label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
62138            options: getTaxonomyOptions(),
62139            value: taxonomy,
62140            onChange: selectedTaxonomy => setAttributes({
62141              taxonomy: selectedTaxonomy
62142            })
62143          })
62144        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62145          hasValue: () => smallestFontSize !== '8pt' || largestFontSize !== '22pt',
62146          label: (0,external_wp_i18n_namespaceObject.__)('Font size'),
62147          onDeselect: () => setAttributes({
62148            smallestFontSize: '8pt',
62149            largestFontSize: '22pt'
62150          }),
62151          isShownByDefault: true,
62152          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
62153            gap: 4,
62154            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
62155              isBlock: true,
62156              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
62157                label: (0,external_wp_i18n_namespaceObject.__)('Smallest size'),
62158                value: smallestFontSize,
62159                onChange: value => {
62160                  onFontSizeChange('smallestFontSize', value);
62161                },
62162                units: units,
62163                min: MIN_FONT_SIZE,
62164                max: MAX_FONT_SIZE,
62165                size: "__unstable-large"
62166              })
62167            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
62168              isBlock: true,
62169              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
62170                label: (0,external_wp_i18n_namespaceObject.__)('Largest size'),
62171                value: largestFontSize,
62172                onChange: value => {
62173                  onFontSizeChange('largestFontSize', value);
62174                },
62175                units: units,
62176                min: MIN_FONT_SIZE,
62177                max: MAX_FONT_SIZE,
62178                size: "__unstable-large"
62179              })
62180            })]
62181          })
62182        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62183          hasValue: () => numberOfTags !== 45,
62184          label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
62185          onDeselect: () => setAttributes({
62186            numberOfTags: 45
62187          }),
62188          isShownByDefault: true,
62189          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
62190            __nextHasNoMarginBottom: true,
62191            __next40pxDefaultSize: true,
62192            label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
62193            value: numberOfTags,
62194            onChange: value => setAttributes({
62195              numberOfTags: value
62196            }),
62197            min: MIN_TAGS,
62198            max: MAX_TAGS,
62199            required: true
62200          })
62201        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62202          hasValue: () => showTagCounts !== false,
62203          label: (0,external_wp_i18n_namespaceObject.__)('Show tag counts'),
62204          onDeselect: () => setAttributes({
62205            showTagCounts: false
62206          }),
62207          isShownByDefault: true,
62208          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
62209            __nextHasNoMarginBottom: true,
62210            label: (0,external_wp_i18n_namespaceObject.__)('Show tag counts'),
62211            checked: showTagCounts,
62212            onChange: () => setAttributes({
62213              showTagCounts: !showTagCounts
62214            })
62215          })
62216        })]
62217      })
62218    });
62219    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
62220      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62221        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
62222        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
62223          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
62224            skipBlockSupportAttributes: true,
62225            block: "core/tag-cloud",
62226            attributes: serverSideAttributes
62227          })
62228        })
62229      })]
62230    });
62231  }
62232  /* harmony default export */ const tag_cloud_edit = (TagCloudEdit);
62233  
62234  ;// ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
62235  /**
62236   * WordPress dependencies
62237   */
62238  
62239  
62240  /**
62241   * Internal dependencies
62242   */
62243  
62244  
62245  const tag_cloud_metadata = {
62246    $schema: "https://schemas.wp.org/trunk/block.json",
62247    apiVersion: 3,
62248    name: "core/tag-cloud",
62249    title: "Tag Cloud",
62250    category: "widgets",
62251    description: "A cloud of popular keywords, each sized by how often it appears.",
62252    textdomain: "default",
62253    attributes: {
62254      numberOfTags: {
62255        type: "number",
62256        "default": 45,
62257        minimum: 1,
62258        maximum: 100
62259      },
62260      taxonomy: {
62261        type: "string",
62262        "default": "post_tag"
62263      },
62264      showTagCounts: {
62265        type: "boolean",
62266        "default": false
62267      },
62268      smallestFontSize: {
62269        type: "string",
62270        "default": "8pt"
62271      },
62272      largestFontSize: {
62273        type: "string",
62274        "default": "22pt"
62275      }
62276    },
62277    styles: [{
62278      name: "default",
62279      label: "Default",
62280      isDefault: true
62281    }, {
62282      name: "outline",
62283      label: "Outline"
62284    }],
62285    supports: {
62286      html: false,
62287      align: true,
62288      spacing: {
62289        margin: true,
62290        padding: true
62291      },
62292      typography: {
62293        lineHeight: true,
62294        __experimentalFontFamily: true,
62295        __experimentalFontWeight: true,
62296        __experimentalFontStyle: true,
62297        __experimentalTextTransform: true,
62298        __experimentalLetterSpacing: true
62299      },
62300      interactivity: {
62301        clientNavigation: true
62302      },
62303      __experimentalBorder: {
62304        radius: true,
62305        color: true,
62306        width: true,
62307        style: true,
62308        __experimentalDefaultControls: {
62309          radius: true,
62310          color: true,
62311          width: true,
62312          style: true
62313        }
62314      }
62315    },
62316    editorStyle: "wp-block-tag-cloud-editor"
62317  };
62318  
62319  const {
62320    name: tag_cloud_name
62321  } = tag_cloud_metadata;
62322  
62323  const tag_cloud_settings = {
62324    icon: library_tag,
62325    example: {},
62326    edit: tag_cloud_edit,
62327    transforms: tag_cloud_transforms
62328  };
62329  const tag_cloud_init = () => initBlock({
62330    name: tag_cloud_name,
62331    metadata: tag_cloud_metadata,
62332    settings: tag_cloud_settings
62333  });
62334  
62335  ;// ./node_modules/tslib/tslib.es6.mjs
62336  /******************************************************************************
62337  Copyright (c) Microsoft Corporation.
62338  
62339  Permission to use, copy, modify, and/or distribute this software for any
62340  purpose with or without fee is hereby granted.
62341  
62342  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
62343  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
62344  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
62345  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
62346  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
62347  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
62348  PERFORMANCE OF THIS SOFTWARE.
62349  ***************************************************************************** */
62350  /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
62351  
62352  var extendStatics = function(d, b) {
62353    extendStatics = Object.setPrototypeOf ||
62354        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
62355        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
62356    return extendStatics(d, b);
62357  };
62358  
62359  function __extends(d, b) {
62360    if (typeof b !== "function" && b !== null)
62361        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
62362    extendStatics(d, b);
62363    function __() { this.constructor = d; }
62364    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
62365  }
62366  
62367  var __assign = function() {
62368    __assign = Object.assign || function __assign(t) {
62369        for (var s, i = 1, n = arguments.length; i < n; i++) {
62370            s = arguments[i];
62371            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
62372        }
62373        return t;
62374    }
62375    return __assign.apply(this, arguments);
62376  }
62377  
62378  function __rest(s, e) {
62379    var t = {};
62380    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
62381        t[p] = s[p];
62382    if (s != null && typeof Object.getOwnPropertySymbols === "function")
62383        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
62384            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
62385                t[p[i]] = s[p[i]];
62386        }
62387    return t;
62388  }
62389  
62390  function __decorate(decorators, target, key, desc) {
62391    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
62392    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
62393    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;
62394    return c > 3 && r && Object.defineProperty(target, key, r), r;
62395  }
62396  
62397  function __param(paramIndex, decorator) {
62398    return function (target, key) { decorator(target, key, paramIndex); }
62399  }
62400  
62401  function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
62402    function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
62403    var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
62404    var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
62405    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
62406    var _, done = false;
62407    for (var i = decorators.length - 1; i >= 0; i--) {
62408        var context = {};
62409        for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
62410        for (var p in contextIn.access) context.access[p] = contextIn.access[p];
62411        context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
62412        var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
62413        if (kind === "accessor") {
62414            if (result === void 0) continue;
62415            if (result === null || typeof result !== "object") throw new TypeError("Object expected");
62416            if (_ = accept(result.get)) descriptor.get = _;
62417            if (_ = accept(result.set)) descriptor.set = _;
62418            if (_ = accept(result.init)) initializers.unshift(_);
62419        }
62420        else if (_ = accept(result)) {
62421            if (kind === "field") initializers.unshift(_);
62422            else descriptor[key] = _;
62423        }
62424    }
62425    if (target) Object.defineProperty(target, contextIn.name, descriptor);
62426    done = true;
62427  };
62428  
62429  function __runInitializers(thisArg, initializers, value) {
62430    var useValue = arguments.length > 2;
62431    for (var i = 0; i < initializers.length; i++) {
62432        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
62433    }
62434    return useValue ? value : void 0;
62435  };
62436  
62437  function __propKey(x) {
62438    return typeof x === "symbol" ? x : "".concat(x);
62439  };
62440  
62441  function __setFunctionName(f, name, prefix) {
62442    if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
62443    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
62444  };
62445  
62446  function __metadata(metadataKey, metadataValue) {
62447    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
62448  }
62449  
62450  function __awaiter(thisArg, _arguments, P, generator) {
62451    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
62452    return new (P || (P = Promise))(function (resolve, reject) {
62453        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
62454        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
62455        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
62456        step((generator = generator.apply(thisArg, _arguments || [])).next());
62457    });
62458  }
62459  
62460  function __generator(thisArg, body) {
62461    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);
62462    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
62463    function verb(n) { return function (v) { return step([n, v]); }; }
62464    function step(op) {
62465        if (f) throw new TypeError("Generator is already executing.");
62466        while (g && (g = 0, op[0] && (_ = 0)), _) try {
62467            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;
62468            if (y = 0, t) op = [op[0] & 2, t.value];
62469            switch (op[0]) {
62470                case 0: case 1: t = op; break;
62471                case 4: _.label++; return { value: op[1], done: false };
62472                case 5: _.label++; y = op[1]; op = [0]; continue;
62473                case 7: op = _.ops.pop(); _.trys.pop(); continue;
62474                default:
62475                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
62476                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62477                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62478                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
62479                    if (t[2]) _.ops.pop();
62480                    _.trys.pop(); continue;
62481            }
62482            op = body.call(thisArg, _);
62483        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
62484        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62485    }
62486  }
62487  
62488  var __createBinding = Object.create ? (function(o, m, k, k2) {
62489    if (k2 === undefined) k2 = k;
62490    var desc = Object.getOwnPropertyDescriptor(m, k);
62491    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
62492        desc = { enumerable: true, get: function() { return m[k]; } };
62493    }
62494    Object.defineProperty(o, k2, desc);
62495  }) : (function(o, m, k, k2) {
62496    if (k2 === undefined) k2 = k;
62497    o[k2] = m[k];
62498  });
62499  
62500  function __exportStar(m, o) {
62501    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
62502  }
62503  
62504  function __values(o) {
62505    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
62506    if (m) return m.call(o);
62507    if (o && typeof o.length === "number") return {
62508        next: function () {
62509            if (o && i >= o.length) o = void 0;
62510            return { value: o && o[i++], done: !o };
62511        }
62512    };
62513    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
62514  }
62515  
62516  function __read(o, n) {
62517    var m = typeof Symbol === "function" && o[Symbol.iterator];
62518    if (!m) return o;
62519    var i = m.call(o), r, ar = [], e;
62520    try {
62521        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
62522    }
62523    catch (error) { e = { error: error }; }
62524    finally {
62525        try {
62526            if (r && !r.done && (m = i["return"])) m.call(i);
62527        }
62528        finally { if (e) throw e.error; }
62529    }
62530    return ar;
62531  }
62532  
62533  /** @deprecated */
62534  function __spread() {
62535    for (var ar = [], i = 0; i < arguments.length; i++)
62536        ar = ar.concat(__read(arguments[i]));
62537    return ar;
62538  }
62539  
62540  /** @deprecated */
62541  function __spreadArrays() {
62542    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
62543    for (var r = Array(s), k = 0, i = 0; i < il; i++)
62544        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
62545            r[k] = a[j];
62546    return r;
62547  }
62548  
62549  function __spreadArray(to, from, pack) {
62550    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62551        if (ar || !(i in from)) {
62552            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
62553            ar[i] = from[i];
62554        }
62555    }
62556    return to.concat(ar || Array.prototype.slice.call(from));
62557  }
62558  
62559  function __await(v) {
62560    return this instanceof __await ? (this.v = v, this) : new __await(v);
62561  }
62562  
62563  function __asyncGenerator(thisArg, _arguments, generator) {
62564    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
62565    var g = generator.apply(thisArg, _arguments || []), i, q = [];
62566    return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
62567    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
62568    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]); } }
62569    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
62570    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
62571    function fulfill(value) { resume("next", value); }
62572    function reject(value) { resume("throw", value); }
62573    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
62574  }
62575  
62576  function __asyncDelegator(o) {
62577    var i, p;
62578    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
62579    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; }
62580  }
62581  
62582  function __asyncValues(o) {
62583    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
62584    var m = o[Symbol.asyncIterator], i;
62585    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);
62586    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); }); }; }
62587    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
62588  }
62589  
62590  function __makeTemplateObject(cooked, raw) {
62591    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
62592    return cooked;
62593  };
62594  
62595  var __setModuleDefault = Object.create ? (function(o, v) {
62596    Object.defineProperty(o, "default", { enumerable: true, value: v });
62597  }) : function(o, v) {
62598    o["default"] = v;
62599  };
62600  
62601  var ownKeys = function(o) {
62602    ownKeys = Object.getOwnPropertyNames || function (o) {
62603      var ar = [];
62604      for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
62605      return ar;
62606    };
62607    return ownKeys(o);
62608  };
62609  
62610  function __importStar(mod) {
62611    if (mod && mod.__esModule) return mod;
62612    var result = {};
62613    if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
62614    __setModuleDefault(result, mod);
62615    return result;
62616  }
62617  
62618  function __importDefault(mod) {
62619    return (mod && mod.__esModule) ? mod : { default: mod };
62620  }
62621  
62622  function __classPrivateFieldGet(receiver, state, kind, f) {
62623    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
62624    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");
62625    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
62626  }
62627  
62628  function __classPrivateFieldSet(receiver, state, value, kind, f) {
62629    if (kind === "m") throw new TypeError("Private method is not writable");
62630    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
62631    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");
62632    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
62633  }
62634  
62635  function __classPrivateFieldIn(state, receiver) {
62636    if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
62637    return typeof state === "function" ? receiver === state : state.has(receiver);
62638  }
62639  
62640  function __addDisposableResource(env, value, async) {
62641    if (value !== null && value !== void 0) {
62642      if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
62643      var dispose, inner;
62644      if (async) {
62645        if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
62646        dispose = value[Symbol.asyncDispose];
62647      }
62648      if (dispose === void 0) {
62649        if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
62650        dispose = value[Symbol.dispose];
62651        if (async) inner = dispose;
62652      }
62653      if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
62654      if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
62655      env.stack.push({ value: value, dispose: dispose, async: async });
62656    }
62657    else if (async) {
62658      env.stack.push({ async: true });
62659    }
62660    return value;
62661  }
62662  
62663  var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
62664    var e = new Error(message);
62665    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
62666  };
62667  
62668  function __disposeResources(env) {
62669    function fail(e) {
62670      env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
62671      env.hasError = true;
62672    }
62673    var r, s = 0;
62674    function next() {
62675      while (r = env.stack.pop()) {
62676        try {
62677          if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
62678          if (r.dispose) {
62679            var result = r.dispose.call(r.value);
62680            if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
62681          }
62682          else s |= 1;
62683        }
62684        catch (e) {
62685          fail(e);
62686        }
62687      }
62688      if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
62689      if (env.hasError) throw env.error;
62690    }
62691    return next();
62692  }
62693  
62694  function __rewriteRelativeImportExtension(path, preserveJsx) {
62695    if (typeof path === "string" && /^\.\.?\//.test(path)) {
62696        return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
62697            return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
62698        });
62699    }
62700    return path;
62701  }
62702  
62703  /* harmony default export */ const tslib_es6 = ({
62704    __extends,
62705    __assign,
62706    __rest,
62707    __decorate,
62708    __param,
62709    __esDecorate,
62710    __runInitializers,
62711    __propKey,
62712    __setFunctionName,
62713    __metadata,
62714    __awaiter,
62715    __generator,
62716    __createBinding,
62717    __exportStar,
62718    __values,
62719    __read,
62720    __spread,
62721    __spreadArrays,
62722    __spreadArray,
62723    __await,
62724    __asyncGenerator,
62725    __asyncDelegator,
62726    __asyncValues,
62727    __makeTemplateObject,
62728    __importStar,
62729    __importDefault,
62730    __classPrivateFieldGet,
62731    __classPrivateFieldSet,
62732    __classPrivateFieldIn,
62733    __addDisposableResource,
62734    __disposeResources,
62735    __rewriteRelativeImportExtension,
62736  });
62737  
62738  ;// ./node_modules/lower-case/dist.es2015/index.js
62739  /**
62740   * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
62741   */
62742  var SUPPORTED_LOCALE = {
62743      tr: {
62744          regexp: /\u0130|\u0049|\u0049\u0307/g,
62745          map: {
62746              İ: "\u0069",
62747              I: "\u0131",
62748              İ: "\u0069",
62749          },
62750      },
62751      az: {
62752          regexp: /\u0130/g,
62753          map: {
62754              İ: "\u0069",
62755              I: "\u0131",
62756              İ: "\u0069",
62757          },
62758      },
62759      lt: {
62760          regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g,
62761          map: {
62762              I: "\u0069\u0307",
62763              J: "\u006A\u0307",
62764              Į: "\u012F\u0307",
62765              Ì: "\u0069\u0307\u0300",
62766              Í: "\u0069\u0307\u0301",
62767              Ĩ: "\u0069\u0307\u0303",
62768          },
62769      },
62770  };
62771  /**
62772   * Localized lower case.
62773   */
62774  function localeLowerCase(str, locale) {
62775      var lang = SUPPORTED_LOCALE[locale.toLowerCase()];
62776      if (lang)
62777          return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));
62778      return lowerCase(str);
62779  }
62780  /**
62781   * Lower case as a function.
62782   */
62783  function lowerCase(str) {
62784      return str.toLowerCase();
62785  }
62786  
62787  ;// ./node_modules/no-case/dist.es2015/index.js
62788  
62789  // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
62790  var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
62791  // Remove all non-word characters.
62792  var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
62793  /**
62794   * Normalize the string into something other libraries can manipulate easier.
62795   */
62796  function noCase(input, options) {
62797      if (options === void 0) { options = {}; }
62798      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;
62799      var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
62800      var start = 0;
62801      var end = result.length;
62802      // Trim the delimiter from around the output string.
62803      while (result.charAt(start) === "\0")
62804          start++;
62805      while (result.charAt(end - 1) === "\0")
62806          end--;
62807      // Transform each token independently.
62808      return result.slice(start, end).split("\0").map(transform).join(delimiter);
62809  }
62810  /**
62811   * Replace `re` in the input string with the replacement value.
62812   */
62813  function replace(input, re, value) {
62814      if (re instanceof RegExp)
62815          return input.replace(re, value);
62816      return re.reduce(function (input, re) { return input.replace(re, value); }, input);
62817  }
62818  
62819  ;// ./node_modules/upper-case-first/dist.es2015/index.js
62820  /**
62821   * Upper case the first character of an input string.
62822   */
62823  function upperCaseFirst(input) {
62824      return input.charAt(0).toUpperCase() + input.substr(1);
62825  }
62826  
62827  ;// ./node_modules/capital-case/dist.es2015/index.js
62828  
62829  
62830  
62831  function capitalCaseTransform(input) {
62832      return upperCaseFirst(input.toLowerCase());
62833  }
62834  function capitalCase(input, options) {
62835      if (options === void 0) { options = {}; }
62836      return noCase(input, __assign({ delimiter: " ", transform: capitalCaseTransform }, options));
62837  }
62838  
62839  ;// ./node_modules/dot-case/dist.es2015/index.js
62840  
62841  
62842  function dotCase(input, options) {
62843      if (options === void 0) { options = {}; }
62844      return noCase(input, __assign({ delimiter: "." }, options));
62845  }
62846  
62847  ;// ./node_modules/param-case/dist.es2015/index.js
62848  
62849  
62850  function paramCase(input, options) {
62851      if (options === void 0) { options = {}; }
62852      return dotCase(input, __assign({ delimiter: "-" }, options));
62853  }
62854  
62855  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/hooks.js
62856  /**
62857   * External dependencies
62858   */
62859  
62860  
62861  /**
62862   * WordPress dependencies
62863   */
62864  
62865  
62866  
62867  
62868  
62869  
62870  
62871  /**
62872   * Internal dependencies
62873   */
62874  
62875  
62876  /**
62877   * Retrieves the available template parts for the given area.
62878   *
62879   * @param {string} area       Template part area.
62880   * @param {string} excludedId Template part ID to exclude.
62881   *
62882   * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.
62883   */
62884  function useAlternativeTemplateParts(area, excludedId) {
62885    const {
62886      templateParts,
62887      isResolving
62888    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
62889      const {
62890        getEntityRecords,
62891        isResolving: _isResolving
62892      } = select(external_wp_coreData_namespaceObject.store);
62893      const query = {
62894        per_page: -1
62895      };
62896      return {
62897        templateParts: getEntityRecords('postType', 'wp_template_part', query),
62898        isResolving: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
62899      };
62900    }, []);
62901    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
62902      if (!templateParts) {
62903        return [];
62904      }
62905      return templateParts.filter(templatePart => createTemplatePartId(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || [];
62906    }, [templateParts, area, excludedId]);
62907    return {
62908      templateParts: filteredTemplateParts,
62909      isResolving
62910    };
62911  }
62912  
62913  /**
62914   * Retrieves the available block patterns for the given area.
62915   *
62916   * @param {string} area     Template part area.
62917   * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).
62918   *
62919   * @return {Array} array of block patterns.
62920   */
62921  function useAlternativeBlockPatterns(area, clientId) {
62922    return (0,external_wp_data_namespaceObject.useSelect)(select => {
62923      const blockNameWithArea = area ? `core/template-part/$area}` : 'core/template-part';
62924      const {
62925        getBlockRootClientId,
62926        getPatternsByBlockTypes
62927      } = select(external_wp_blockEditor_namespaceObject.store);
62928      const rootClientId = getBlockRootClientId(clientId);
62929      return getPatternsByBlockTypes(blockNameWithArea, rootClientId);
62930    }, [area, clientId]);
62931  }
62932  function useCreateTemplatePartFromBlocks(area, setAttributes) {
62933    const {
62934      saveEntityRecord
62935    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
62936    return async (blocks = [], title = (0,external_wp_i18n_namespaceObject.__)('Untitled Template Part')) => {
62937      // Currently template parts only allow latin chars.
62938      // Fallback slug will receive suffix by default.
62939      const cleanSlug = paramCase(title).replace(/[^\w-]+/g, '') || 'wp-custom-part';
62940  
62941      // If we have `area` set from block attributes, means an exposed
62942      // block variation was inserted. So add this prop to the template
62943      // part entity on creation. Afterwards remove `area` value from
62944      // block attributes.
62945      const record = {
62946        title,
62947        slug: cleanSlug,
62948        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
62949        // `area` is filterable on the server and defaults to `UNCATEGORIZED`
62950        // if provided value is not allowed.
62951        area
62952      };
62953      const templatePart = await saveEntityRecord('postType', 'wp_template_part', record);
62954      setAttributes({
62955        slug: templatePart.slug,
62956        theme: templatePart.theme,
62957        area: undefined
62958      });
62959    };
62960  }
62961  
62962  /**
62963   * Retrieves the template part area object.
62964   *
62965   * @param {string} area Template part area identifier.
62966   *
62967   * @return {{icon: Object, label: string, tagName: string}} Template Part area.
62968   */
62969  function useTemplatePartArea(area) {
62970    return (0,external_wp_data_namespaceObject.useSelect)(select => {
62971      var _selectedArea$area_ta;
62972      const definedAreas = select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas || [];
62973      const selectedArea = definedAreas.find(definedArea => definedArea.area === area);
62974      const defaultArea = definedAreas.find(definedArea => definedArea.area === 'uncategorized');
62975      return {
62976        icon: selectedArea?.icon || defaultArea?.icon,
62977        label: selectedArea?.label || (0,external_wp_i18n_namespaceObject.__)('Template Part'),
62978        tagName: (_selectedArea$area_ta = selectedArea?.area_tag) !== null && _selectedArea$area_ta !== void 0 ? _selectedArea$area_ta : 'div'
62979      };
62980    }, [area]);
62981  }
62982  
62983  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/title-modal.js
62984  /**
62985   * WordPress dependencies
62986   */
62987  
62988  
62989  
62990  
62991  function TitleModal({
62992    areaLabel,
62993    onClose,
62994    onSubmit
62995  }) {
62996    // Restructure onCreate to set the blocks on local state.
62997    // Add modal to confirm title and trigger onCreate.
62998    const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)('');
62999    const submitForCreation = event => {
63000      event.preventDefault();
63001      onSubmit(title);
63002    };
63003    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
63004      title: (0,external_wp_i18n_namespaceObject.sprintf)(
63005      // Translators: %s as template part area title ("Header", "Footer", etc.).
63006      (0,external_wp_i18n_namespaceObject.__)('Create new %s'), areaLabel.toLowerCase()),
63007      onRequestClose: onClose,
63008      focusOnMount: "firstContentElement",
63009      size: "small",
63010      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
63011        onSubmit: submitForCreation,
63012        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
63013          spacing: "5",
63014          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
63015            label: (0,external_wp_i18n_namespaceObject.__)('Name'),
63016            value: title,
63017            onChange: setTitle,
63018            placeholder: (0,external_wp_i18n_namespaceObject.__)('Custom Template Part'),
63019            __nextHasNoMarginBottom: true,
63020            __next40pxDefaultSize: true
63021          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
63022            justify: "right",
63023            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63024              __next40pxDefaultSize: true,
63025              variant: "tertiary",
63026              onClick: () => {
63027                onClose();
63028                setTitle('');
63029              },
63030              children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
63031            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63032              variant: "primary",
63033              type: "submit",
63034              accessibleWhenDisabled: true,
63035              disabled: !title.length,
63036              __next40pxDefaultSize: true,
63037              children: (0,external_wp_i18n_namespaceObject.__)('Create')
63038            })]
63039          })]
63040        })
63041      })
63042    });
63043  }
63044  
63045  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/placeholder.js
63046  /**
63047   * WordPress dependencies
63048   */
63049  
63050  
63051  
63052  
63053  
63054  
63055  /**
63056   * Internal dependencies
63057   */
63058  
63059  
63060  
63061  function TemplatePartPlaceholder({
63062    area,
63063    clientId,
63064    templatePartId,
63065    onOpenSelectionModal,
63066    setAttributes
63067  }) {
63068    const {
63069      templateParts,
63070      isResolving
63071    } = useAlternativeTemplateParts(area, templatePartId);
63072    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
63073    const {
63074      isBlockBasedTheme,
63075      canCreateTemplatePart
63076    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63077      const {
63078        getCurrentTheme,
63079        canUser
63080      } = select(external_wp_coreData_namespaceObject.store);
63081      return {
63082        isBlockBasedTheme: getCurrentTheme()?.is_block_theme,
63083        canCreateTemplatePart: canUser('create', {
63084          kind: 'postType',
63085          name: 'wp_template_part'
63086        })
63087      };
63088    }, []);
63089    const [showTitleModal, setShowTitleModal] = (0,external_wp_element_namespaceObject.useState)(false);
63090    const areaObject = useTemplatePartArea(area);
63091    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
63092    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
63093      icon: areaObject.icon,
63094      label: areaObject.label,
63095      instructions: isBlockBasedTheme ? (0,external_wp_i18n_namespaceObject.sprintf)(
63096      // Translators: %s as template part area title ("Header", "Footer", etc.).
63097      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase()) : (0,external_wp_i18n_namespaceObject.sprintf)(
63098      // Translators: %s as template part area title ("Header", "Footer", etc.).
63099      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s.'), areaObject.label.toLowerCase()),
63100      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, {
63101        __next40pxDefaultSize: true,
63102        variant: "primary",
63103        onClick: onOpenSelectionModal,
63104        children: (0,external_wp_i18n_namespaceObject.__)('Choose')
63105      }), !isResolving && isBlockBasedTheme && canCreateTemplatePart && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63106        __next40pxDefaultSize: true,
63107        variant: "secondary",
63108        onClick: () => {
63109          setShowTitleModal(true);
63110        },
63111        children: (0,external_wp_i18n_namespaceObject.__)('Start blank')
63112      }), showTitleModal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TitleModal, {
63113        areaLabel: areaObject.label,
63114        onClose: () => setShowTitleModal(false),
63115        onSubmit: title => {
63116          createFromBlocks([], title);
63117        }
63118      })]
63119    });
63120  }
63121  
63122  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js
63123  /**
63124   * WordPress dependencies
63125   */
63126  
63127  
63128  /**
63129   * Internal dependencies
63130   */
63131  
63132  
63133  /**
63134   * This maps the properties of a template part to those of a block pattern.
63135   * @param {Object} templatePart
63136   * @return {Object} The template part in the shape of block pattern.
63137   */
63138  function mapTemplatePartToBlockPattern(templatePart) {
63139    return {
63140      name: createTemplatePartId(templatePart.theme, templatePart.slug),
63141      title: templatePart.title.rendered,
63142      blocks: (0,external_wp_blocks_namespaceObject.parse)(templatePart.content.raw),
63143      templatePart
63144    };
63145  }
63146  
63147  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/selection-modal.js
63148  /**
63149   * WordPress dependencies
63150   */
63151  
63152  
63153  
63154  
63155  
63156  
63157  
63158  /**
63159   * Internal dependencies
63160   */
63161  
63162  
63163  
63164  
63165  function TemplatePartSelectionModal({
63166    setAttributes,
63167    onClose,
63168    templatePartId = null,
63169    area,
63170    clientId
63171  }) {
63172    const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)('');
63173    const {
63174      templateParts
63175    } = useAlternativeTemplateParts(area, templatePartId);
63176  
63177    // We can map template parts to block patters to reuse the BlockPatternsList UI
63178    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
63179      const partsAsPatterns = templateParts.map(templatePart => mapTemplatePartToBlockPattern(templatePart));
63180      return searchPatterns(partsAsPatterns, searchValue);
63181    }, [templateParts, searchValue]);
63182    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
63183    const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
63184      return searchPatterns(blockPatterns, searchValue);
63185    }, [blockPatterns, searchValue]);
63186    const {
63187      createSuccessNotice
63188    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63189    const onTemplatePartSelect = templatePart => {
63190      setAttributes({
63191        slug: templatePart.slug,
63192        theme: templatePart.theme,
63193        area: undefined
63194      });
63195      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template part title. */
63196      (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" inserted.'), templatePart.title?.rendered || templatePart.slug), {
63197        type: 'snackbar'
63198      });
63199      onClose();
63200    };
63201    const hasTemplateParts = !!filteredTemplateParts.length;
63202    const hasBlockPatterns = !!filteredBlockPatterns.length;
63203    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
63204      className: "block-library-template-part__selection-content",
63205      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
63206        className: "block-library-template-part__selection-search",
63207        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
63208          __nextHasNoMarginBottom: true,
63209          onChange: setSearchValue,
63210          value: searchValue,
63211          label: (0,external_wp_i18n_namespaceObject.__)('Search'),
63212          placeholder: (0,external_wp_i18n_namespaceObject.__)('Search')
63213        })
63214      }), hasTemplateParts && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
63215        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
63216          children: (0,external_wp_i18n_namespaceObject.__)('Existing template parts')
63217        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
63218          blockPatterns: filteredTemplateParts,
63219          onClickPattern: pattern => {
63220            onTemplatePartSelect(pattern.templatePart);
63221          }
63222        })]
63223      }), !hasTemplateParts && !hasBlockPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHStack, {
63224        alignment: "center",
63225        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
63226          children: (0,external_wp_i18n_namespaceObject.__)('No results found.')
63227        })
63228      })]
63229    });
63230  }
63231  
63232  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/transformers.js
63233  /**
63234   * WordPress dependencies
63235   */
63236  
63237  
63238  /**
63239   * Converts a widget entity record into a block.
63240   *
63241   * @param {Object} widget The widget entity record.
63242   * @return {Object} a block (converted from the entity record).
63243   */
63244  function transformWidgetToBlock(widget) {
63245    if (widget.id_base !== 'block') {
63246      let attributes;
63247      if (widget._embedded.about[0].is_multi) {
63248        attributes = {
63249          idBase: widget.id_base,
63250          instance: widget.instance
63251        };
63252      } else {
63253        attributes = {
63254          id: widget.id
63255        };
63256      }
63257      return switchLegacyWidgetType((0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', attributes));
63258    }
63259    const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)(widget.instance.raw.content, {
63260      __unstableSkipAutop: true
63261    });
63262    if (!parsedBlocks.length) {
63263      return undefined;
63264    }
63265    const block = parsedBlocks[0];
63266    if (block.name === 'core/widget-group') {
63267      return (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getGroupingBlockName)(), undefined, transformInnerBlocks(block.innerBlocks));
63268    }
63269    if (block.innerBlocks.length > 0) {
63270      return (0,external_wp_blocks_namespaceObject.cloneBlock)(block, undefined, transformInnerBlocks(block.innerBlocks));
63271    }
63272    return block;
63273  }
63274  
63275  /**
63276   * Switch Legacy Widget to the first matching transformation block.
63277   *
63278   * @param {Object} block Legacy Widget block object
63279   * @return {Object|undefined} a block
63280   */
63281  function switchLegacyWidgetType(block) {
63282    const transforms = (0,external_wp_blocks_namespaceObject.getPossibleBlockTransformations)([block]).filter(item => {
63283      // The block without any transformations can't be a wildcard.
63284      if (!item.transforms) {
63285        return true;
63286      }
63287      const hasWildCardFrom = item.transforms?.from?.find(from => from.blocks && from.blocks.includes('*'));
63288      const hasWildCardTo = item.transforms?.to?.find(to => to.blocks && to.blocks.includes('*'));
63289  
63290      // Skip wildcard transformations.
63291      return !hasWildCardFrom && !hasWildCardTo;
63292    });
63293    if (!transforms.length) {
63294      return undefined;
63295    }
63296    return (0,external_wp_blocks_namespaceObject.switchToBlockType)(block, transforms[0].name);
63297  }
63298  function transformInnerBlocks(innerBlocks = []) {
63299    return innerBlocks.flatMap(block => {
63300      if (block.name === 'core/legacy-widget') {
63301        return switchLegacyWidgetType(block);
63302      }
63303      return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, transformInnerBlocks(block.innerBlocks));
63304    }).filter(block => !!block);
63305  }
63306  
63307  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/import-controls.js
63308  /**
63309   * WordPress dependencies
63310   */
63311  
63312  
63313  
63314  
63315  
63316  
63317  
63318  /**
63319   * Internal dependencies
63320   */
63321  
63322  
63323  
63324  const SIDEBARS_QUERY = {
63325    per_page: -1,
63326    _fields: 'id,name,description,status,widgets'
63327  };
63328  function TemplatePartImportControls({
63329    area,
63330    setAttributes
63331  }) {
63332    const [selectedSidebar, setSelectedSidebar] = (0,external_wp_element_namespaceObject.useState)('');
63333    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
63334    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
63335    const {
63336      sidebars,
63337      hasResolved
63338    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63339      const {
63340        getSidebars,
63341        hasFinishedResolution
63342      } = select(external_wp_coreData_namespaceObject.store);
63343      return {
63344        sidebars: getSidebars(SIDEBARS_QUERY),
63345        hasResolved: hasFinishedResolution('getSidebars', [SIDEBARS_QUERY])
63346      };
63347    }, []);
63348    const {
63349      createErrorNotice
63350    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63351    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
63352    const options = (0,external_wp_element_namespaceObject.useMemo)(() => {
63353      const sidebarOptions = (sidebars !== null && sidebars !== void 0 ? sidebars : []).filter(widgetArea => widgetArea.id !== 'wp_inactive_widgets' && widgetArea.widgets.length > 0).map(widgetArea => {
63354        return {
63355          value: widgetArea.id,
63356          label: widgetArea.name
63357        };
63358      });
63359      if (!sidebarOptions.length) {
63360        return [];
63361      }
63362      return [{
63363        value: '',
63364        label: (0,external_wp_i18n_namespaceObject.__)('Select widget area')
63365      }, ...sidebarOptions];
63366    }, [sidebars]);
63367  
63368    // Render an empty node while data is loading to avoid SlotFill re-positioning bug.
63369    // See: https://github.com/WordPress/gutenberg/issues/15641.
63370    if (!hasResolved) {
63371      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {
63372        marginBottom: "0"
63373      });
63374    }
63375    if (hasResolved && !options.length) {
63376      return null;
63377    }
63378    async function createFromWidgets(event) {
63379      event.preventDefault();
63380      if (isBusy || !selectedSidebar) {
63381        return;
63382      }
63383      setIsBusy(true);
63384      const sidebar = options.find(({
63385        value
63386      }) => value === selectedSidebar);
63387      const {
63388        getWidgets
63389      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
63390  
63391      // The widgets API always returns a successful response.
63392      const widgets = await getWidgets({
63393        sidebar: sidebar.value,
63394        _embed: 'about'
63395      });
63396      const skippedWidgets = new Set();
63397      const blocks = widgets.flatMap(widget => {
63398        const block = transformWidgetToBlock(widget);
63399  
63400        // Skip the block if we have no matching transformations.
63401        if (!block) {
63402          skippedWidgets.add(widget.id_base);
63403          return [];
63404        }
63405        return block;
63406      });
63407      await createFromBlocks(blocks, /* translators: %s: name of the widget area */
63408      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Widget area: %s'), sidebar.label));
63409      if (skippedWidgets.size) {
63410        createErrorNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: the list of widgets */
63411        (0,external_wp_i18n_namespaceObject.__)('Unable to import the following widgets: %s.'), Array.from(skippedWidgets).join(', ')), {
63412          type: 'snackbar'
63413        });
63414      }
63415      setIsBusy(false);
63416    }
63417    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {
63418      marginBottom: "4",
63419      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
63420        as: "form",
63421        onSubmit: createFromWidgets,
63422        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexBlock, {
63423          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63424            label: (0,external_wp_i18n_namespaceObject.__)('Import widget area'),
63425            value: selectedSidebar,
63426            options: options,
63427            onChange: value => setSelectedSidebar(value),
63428            disabled: !options.length,
63429            __next40pxDefaultSize: true,
63430            __nextHasNoMarginBottom: true
63431          })
63432        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
63433          style: {
63434            marginBottom: '8px',
63435            marginTop: 'auto'
63436          },
63437          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63438            __next40pxDefaultSize: true,
63439            variant: "primary",
63440            type: "submit",
63441            isBusy: isBusy,
63442            "aria-disabled": isBusy || !selectedSidebar,
63443            children: (0,external_wp_i18n_namespaceObject._x)('Import', 'button label')
63444          })
63445        })]
63446      })
63447    });
63448  }
63449  
63450  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/advanced-controls.js
63451  /**
63452   * WordPress dependencies
63453   */
63454  
63455  
63456  
63457  
63458  
63459  /**
63460   * Internal dependencies
63461   */
63462  
63463  
63464  
63465  function TemplatePartAdvancedControls({
63466    tagName,
63467    setAttributes,
63468    isEntityAvailable,
63469    templatePartId,
63470    defaultWrapper,
63471    hasInnerBlocks
63472  }) {
63473    const [area, setArea] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'area', templatePartId);
63474    const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'title', templatePartId);
63475    const defaultTemplatePartAreas = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas || [], []);
63476    const areaOptions = defaultTemplatePartAreas.map(({
63477      label,
63478      area: _area
63479    }) => ({
63480      label,
63481      value: _area
63482    }));
63483    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63484      children: [isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63485        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
63486          __next40pxDefaultSize: true,
63487          __nextHasNoMarginBottom: true,
63488          label: (0,external_wp_i18n_namespaceObject.__)('Title'),
63489          value: title,
63490          onChange: value => {
63491            setTitle(value);
63492          },
63493          onFocus: event => event.target.select()
63494        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63495          __next40pxDefaultSize: true,
63496          __nextHasNoMarginBottom: true,
63497          label: (0,external_wp_i18n_namespaceObject.__)('Area'),
63498          labelPosition: "top",
63499          options: areaOptions,
63500          value: area,
63501          onChange: setArea
63502        })]
63503      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63504        __nextHasNoMarginBottom: true,
63505        __next40pxDefaultSize: true,
63506        label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
63507        options: [{
63508          label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: HTML tag based on area. */
63509          (0,external_wp_i18n_namespaceObject.__)('Default based on area (%s)'), `<$defaultWrapper}>`),
63510          value: ''
63511        }, {
63512          label: '<header>',
63513          value: 'header'
63514        }, {
63515          label: '<main>',
63516          value: 'main'
63517        }, {
63518          label: '<section>',
63519          value: 'section'
63520        }, {
63521          label: '<article>',
63522          value: 'article'
63523        }, {
63524          label: '<aside>',
63525          value: 'aside'
63526        }, {
63527          label: '<footer>',
63528          value: 'footer'
63529        }, {
63530          label: '<div>',
63531          value: 'div'
63532        }],
63533        value: tagName || '',
63534        onChange: value => setAttributes({
63535          tagName: value
63536        }),
63537        help: htmlElementMessages[tagName]
63538      }), !hasInnerBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartImportControls, {
63539        area: area,
63540        setAttributes: setAttributes
63541      })]
63542    });
63543  }
63544  
63545  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/inner-blocks.js
63546  /**
63547   * WordPress dependencies
63548   */
63549  
63550  
63551  
63552  
63553  
63554  
63555  function useRenderAppender(hasInnerBlocks) {
63556    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
63557    // Disable appending when the editing mode is 'contentOnly'. This is so that the user can't
63558    // append into a template part when editing a page in the site editor. See
63559    // DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a
63560    // block editor API for achieving this.
63561    if (blockEditingMode === 'contentOnly') {
63562      return false;
63563    }
63564    if (!hasInnerBlocks) {
63565      return external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender;
63566    }
63567  }
63568  function useLayout(layout) {
63569    const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
63570      const {
63571        getSettings
63572      } = select(external_wp_blockEditor_namespaceObject.store);
63573      return getSettings()?.supportsLayout;
63574    }, []);
63575    const [defaultLayout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('layout');
63576    if (themeSupportsLayout) {
63577      return layout?.inherit ? defaultLayout || {} : layout;
63578    }
63579  }
63580  function NonEditableTemplatePartPreview({
63581    postId: id,
63582    layout,
63583    tagName: TagName,
63584    blockProps
63585  }) {
63586    (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)('disabled');
63587    const {
63588      content,
63589      editedBlocks
63590    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63591      if (!id) {
63592        return {};
63593      }
63594      const {
63595        getEditedEntityRecord
63596      } = select(external_wp_coreData_namespaceObject.store);
63597      const editedRecord = getEditedEntityRecord('postType', 'wp_template_part', id, {
63598        context: 'view'
63599      });
63600      return {
63601        editedBlocks: editedRecord.blocks,
63602        content: editedRecord.content
63603      };
63604    }, [id]);
63605    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
63606      if (!id) {
63607        return undefined;
63608      }
63609      if (editedBlocks) {
63610        return editedBlocks;
63611      }
63612      if (!content || typeof content !== 'string') {
63613        return [];
63614      }
63615      return (0,external_wp_blocks_namespaceObject.parse)(content);
63616    }, [id, editedBlocks, content]);
63617    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
63618      value: blocks,
63619      onInput: () => {},
63620      onChange: () => {},
63621      renderAppender: false,
63622      layout: useLayout(layout)
63623    });
63624    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63625      ...innerBlocksProps
63626    });
63627  }
63628  function EditableTemplatePartInnerBlocks({
63629    postId: id,
63630    hasInnerBlocks,
63631    layout,
63632    tagName: TagName,
63633    blockProps
63634  }) {
63635    const onNavigateToEntityRecord = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().onNavigateToEntityRecord, []);
63636    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_template_part', {
63637      id
63638    });
63639    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
63640      value: blocks,
63641      onInput,
63642      onChange,
63643      renderAppender: useRenderAppender(hasInnerBlocks),
63644      layout: useLayout(layout)
63645    });
63646    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
63647    const customProps = blockEditingMode === 'contentOnly' && onNavigateToEntityRecord ? {
63648      onDoubleClick: () => onNavigateToEntityRecord({
63649        postId: id,
63650        postType: 'wp_template_part'
63651      })
63652    } : {};
63653    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63654      ...innerBlocksProps,
63655      ...customProps
63656    });
63657  }
63658  function TemplatePartInnerBlocks({
63659    postId: id,
63660    hasInnerBlocks,
63661    layout,
63662    tagName: TagName,
63663    blockProps
63664  }) {
63665    const {
63666      canViewTemplatePart,
63667      canEditTemplatePart
63668    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63669      return {
63670        canViewTemplatePart: !!select(external_wp_coreData_namespaceObject.store).canUser('read', {
63671          kind: 'postType',
63672          name: 'wp_template_part',
63673          id
63674        }),
63675        canEditTemplatePart: !!select(external_wp_coreData_namespaceObject.store).canUser('update', {
63676          kind: 'postType',
63677          name: 'wp_template_part',
63678          id
63679        })
63680      };
63681    }, [id]);
63682    if (!canViewTemplatePart) {
63683      return null;
63684    }
63685    const TemplatePartInnerBlocksComponent = canEditTemplatePart ? EditableTemplatePartInnerBlocks : NonEditableTemplatePartPreview;
63686    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartInnerBlocksComponent, {
63687      postId: id,
63688      hasInnerBlocks: hasInnerBlocks,
63689      layout: layout,
63690      tagName: TagName,
63691      blockProps: blockProps
63692    });
63693  }
63694  
63695  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/index.js
63696  /**
63697   * WordPress dependencies
63698   */
63699  
63700  
63701  
63702  
63703  
63704  
63705  
63706  
63707  
63708  /**
63709   * Internal dependencies
63710   */
63711  
63712  
63713  
63714  
63715  
63716  
63717  
63718  function ReplaceButton({
63719    isEntityAvailable,
63720    area,
63721    templatePartId,
63722    isTemplatePartSelectionOpen,
63723    setIsTemplatePartSelectionOpen
63724  }) {
63725    // This hook fetches patterns, so don't run it unconditionally in the main
63726    // edit function!
63727    const {
63728      templateParts
63729    } = useAlternativeTemplateParts(area, templatePartId);
63730    const hasReplacements = !!templateParts.length;
63731    const canReplace = isEntityAvailable && hasReplacements && (area === 'header' || area === 'footer');
63732    if (!canReplace) {
63733      return null;
63734    }
63735    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
63736      onClick: () => {
63737        setIsTemplatePartSelectionOpen(true);
63738      },
63739      "aria-expanded": isTemplatePartSelectionOpen,
63740      "aria-haspopup": "dialog",
63741      children: (0,external_wp_i18n_namespaceObject.__)('Replace')
63742    });
63743  }
63744  function TemplatesList({
63745    area,
63746    clientId,
63747    isEntityAvailable,
63748    onSelect
63749  }) {
63750    // This hook fetches patterns, so don't run it unconditionally in the main
63751    // edit function!
63752    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
63753    const canReplace = isEntityAvailable && !!blockPatterns.length && (area === 'header' || area === 'footer');
63754    if (!canReplace) {
63755      return null;
63756    }
63757    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
63758      title: (0,external_wp_i18n_namespaceObject.__)('Design'),
63759      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
63760        label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
63761        blockPatterns: blockPatterns,
63762        onClickPattern: onSelect,
63763        showTitlesAsTooltip: true
63764      })
63765    });
63766  }
63767  function TemplatePartEdit({
63768    attributes,
63769    setAttributes,
63770    clientId
63771  }) {
63772    const {
63773      createSuccessNotice
63774    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63775    const {
63776      editEntityRecord
63777    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
63778    const currentTheme = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet, []);
63779    const {
63780      slug,
63781      theme = currentTheme,
63782      tagName,
63783      layout = {}
63784    } = attributes;
63785    const templatePartId = createTemplatePartId(theme, slug);
63786    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(templatePartId);
63787    const [isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen] = (0,external_wp_element_namespaceObject.useState)(false);
63788    const {
63789      isResolved,
63790      hasInnerBlocks,
63791      isMissing,
63792      area,
63793      onNavigateToEntityRecord,
63794      title,
63795      canUserEdit
63796    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63797      const {
63798        getEditedEntityRecord,
63799        hasFinishedResolution
63800      } = select(external_wp_coreData_namespaceObject.store);
63801      const {
63802        getBlockCount,
63803        getSettings
63804      } = select(external_wp_blockEditor_namespaceObject.store);
63805      const getEntityArgs = ['postType', 'wp_template_part', templatePartId];
63806      const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null;
63807      const _area = entityRecord?.area || attributes.area;
63808      const hasResolvedEntity = templatePartId ? hasFinishedResolution('getEditedEntityRecord', getEntityArgs) : false;
63809      const _canUserEdit = hasResolvedEntity ? select(external_wp_coreData_namespaceObject.store).canUser('update', {
63810        kind: 'postType',
63811        name: 'wp_template_part',
63812        id: templatePartId
63813      }) : false;
63814      return {
63815        hasInnerBlocks: getBlockCount(clientId) > 0,
63816        isResolved: hasResolvedEntity,
63817        isMissing: hasResolvedEntity && (!entityRecord || Object.keys(entityRecord).length === 0),
63818        area: _area,
63819        onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
63820        title: entityRecord?.title,
63821        canUserEdit: !!_canUserEdit
63822      };
63823    }, [templatePartId, attributes.area, clientId]);
63824    const areaObject = useTemplatePartArea(area);
63825    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
63826    const isPlaceholder = !slug;
63827    const isEntityAvailable = !isPlaceholder && !isMissing && isResolved;
63828    const TagName = tagName || areaObject.tagName;
63829    const onPatternSelect = async pattern => {
63830      await editEntityRecord('postType', 'wp_template_part', templatePartId, {
63831        blocks: pattern.blocks,
63832        content: (0,external_wp_blocks_namespaceObject.serialize)(pattern.blocks)
63833      });
63834      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template part title. */
63835      (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" updated.'), title || slug), {
63836        type: 'snackbar'
63837      });
63838    };
63839  
63840    // We don't want to render a missing state if we have any inner blocks.
63841    // A new template part is automatically created if we have any inner blocks but no entity.
63842    if (!hasInnerBlocks && (slug && !theme || slug && isMissing)) {
63843      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63844        ...blockProps,
63845        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
63846          children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Template part slug. */
63847          (0,external_wp_i18n_namespaceObject.__)('Template part has been deleted or is unavailable: %s'), slug)
63848        })
63849      });
63850    }
63851    if (isEntityAvailable && hasAlreadyRendered) {
63852      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63853        ...blockProps,
63854        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
63855          children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
63856        })
63857      });
63858    }
63859    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63860      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
63861        uniqueId: templatePartId,
63862        children: [isEntityAvailable && onNavigateToEntityRecord && canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
63863          group: "other",
63864          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
63865            onClick: () => onNavigateToEntityRecord({
63866              postId: templatePartId,
63867              postType: 'wp_template_part'
63868            }),
63869            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
63870          })
63871        }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
63872          group: "advanced",
63873          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartAdvancedControls, {
63874            tagName: tagName,
63875            setAttributes: setAttributes,
63876            isEntityAvailable: isEntityAvailable,
63877            templatePartId: templatePartId,
63878            defaultWrapper: areaObject.tagName,
63879            hasInnerBlocks: hasInnerBlocks
63880          })
63881        }), isPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63882          ...blockProps,
63883          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartPlaceholder, {
63884            area: attributes.area,
63885            templatePartId: templatePartId,
63886            clientId: clientId,
63887            setAttributes: setAttributes,
63888            onOpenSelectionModal: () => setIsTemplatePartSelectionOpen(true)
63889          })
63890        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
63891          children: ({
63892            selectedClientIds
63893          }) => {
63894            // Only enable for single selection that matches the current block.
63895            // Ensures menu item doesn't render multiple times.
63896            if (!(selectedClientIds.length === 1 && clientId === selectedClientIds[0])) {
63897              return null;
63898            }
63899            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReplaceButton, {
63900              isEntityAvailable,
63901              area,
63902              clientId,
63903              templatePartId,
63904              isTemplatePartSelectionOpen,
63905              setIsTemplatePartSelectionOpen
63906            });
63907          }
63908        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
63909          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatesList, {
63910            area: area,
63911            clientId: clientId,
63912            isEntityAvailable: isEntityAvailable,
63913            onSelect: pattern => onPatternSelect(pattern)
63914          })
63915        }), isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartInnerBlocks, {
63916          tagName: TagName,
63917          blockProps: blockProps,
63918          postId: templatePartId,
63919          hasInnerBlocks: hasInnerBlocks,
63920          layout: layout
63921        }), !isPlaceholder && !isResolved && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63922          ...blockProps,
63923          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
63924        })]
63925      }), isTemplatePartSelectionOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
63926        overlayClassName: "block-editor-template-part__selection-modal",
63927        title: (0,external_wp_i18n_namespaceObject.sprintf)(
63928        // Translators: %s as template part area title ("Header", "Footer", etc.).
63929        (0,external_wp_i18n_namespaceObject.__)('Choose a %s'), areaObject.label.toLowerCase()),
63930        onRequestClose: () => setIsTemplatePartSelectionOpen(false),
63931        isFullScreen: true,
63932        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartSelectionModal, {
63933          templatePartId: templatePartId,
63934          clientId: clientId,
63935          area: area,
63936          setAttributes: setAttributes,
63937          onClose: () => setIsTemplatePartSelectionOpen(false)
63938        })
63939      })]
63940    });
63941  }
63942  
63943  ;// ./node_modules/@wordpress/block-library/build-module/template-part/variations.js
63944  /**
63945   * WordPress dependencies
63946   */
63947  
63948  
63949  
63950  /**
63951   * Internal dependencies
63952   */
63953  
63954  function enhanceTemplatePartVariations(settings, name) {
63955    if (name !== 'core/template-part') {
63956      return settings;
63957    }
63958    if (settings.variations) {
63959      const isActive = (blockAttributes, variationAttributes) => {
63960        const {
63961          area,
63962          theme,
63963          slug
63964        } = blockAttributes;
63965        // We first check the `area` block attribute which is set during insertion.
63966        // This property is removed on the creation of a template part.
63967        if (area) {
63968          return area === variationAttributes.area;
63969        }
63970        // Find a matching variation from the created template part
63971        // by checking the entity's `area` property.
63972        if (!slug) {
63973          return false;
63974        }
63975        const {
63976          getCurrentTheme,
63977          getEntityRecord
63978        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
63979        const entity = getEntityRecord('postType', 'wp_template_part', `$theme || getCurrentTheme()?.stylesheet}//${slug}`);
63980        if (entity?.slug) {
63981          return entity.slug === variationAttributes.slug;
63982        }
63983        return entity?.area === variationAttributes.area;
63984      };
63985      const variations = settings.variations.map(variation => {
63986        return {
63987          ...variation,
63988          ...(!variation.isActive && {
63989            isActive
63990          }),
63991          ...(typeof variation.icon === 'string' && {
63992            icon: getTemplatePartIcon(variation.icon)
63993          })
63994        };
63995      });
63996      return {
63997        ...settings,
63998        variations
63999      };
64000    }
64001    return settings;
64002  }
64003  
64004  ;// ./node_modules/@wordpress/block-library/build-module/template-part/index.js
64005  /**
64006   * External dependencies
64007   */
64008  
64009  
64010  /**
64011   * WordPress dependencies
64012   */
64013  
64014  
64015  
64016  
64017  
64018  
64019  /**
64020   * Internal dependencies
64021   */
64022  
64023  const template_part_metadata = {
64024    $schema: "https://schemas.wp.org/trunk/block.json",
64025    apiVersion: 3,
64026    name: "core/template-part",
64027    title: "Template Part",
64028    category: "theme",
64029    description: "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.",
64030    textdomain: "default",
64031    attributes: {
64032      slug: {
64033        type: "string"
64034      },
64035      theme: {
64036        type: "string"
64037      },
64038      tagName: {
64039        type: "string"
64040      },
64041      area: {
64042        type: "string"
64043      }
64044    },
64045    supports: {
64046      align: true,
64047      html: false,
64048      reusable: false,
64049      renaming: false,
64050      interactivity: {
64051        clientNavigation: true
64052      }
64053    },
64054    editorStyle: "wp-block-template-part-editor"
64055  };
64056  
64057  
64058  const {
64059    name: template_part_name
64060  } = template_part_metadata;
64061  
64062  const template_part_settings = {
64063    icon: symbol_filled,
64064    __experimentalLabel: ({
64065      slug,
64066      theme
64067    }) => {
64068      // Attempt to find entity title if block is a template part.
64069      // Require slug to request, otherwise entity is uncreated and will throw 404.
64070      if (!slug) {
64071        return;
64072      }
64073      const {
64074        getCurrentTheme,
64075        getEditedEntityRecord
64076      } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
64077      const entity = getEditedEntityRecord('postType', 'wp_template_part', (theme || getCurrentTheme()?.stylesheet) + '//' + slug);
64078      if (!entity) {
64079        return;
64080      }
64081      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entity.title) || capitalCase(entity.slug || '');
64082    },
64083    edit: TemplatePartEdit
64084  };
64085  const template_part_init = () => {
64086    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations);
64087  
64088    // Prevent adding template parts inside post templates.
64089    const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content'];
64090    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'core/block-library/removeTemplatePartsFromPostTemplates', (canInsert, blockType, rootClientId, {
64091      getBlock,
64092      getBlockParentsByBlockName
64093    }) => {
64094      if (blockType.name !== 'core/template-part') {
64095        return canInsert;
64096      }
64097      for (const disallowedParentType of DISALLOWED_PARENTS) {
64098        const hasDisallowedParent = getBlock(rootClientId)?.name === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
64099        if (hasDisallowedParent) {
64100          return false;
64101        }
64102      }
64103      return true;
64104    });
64105    return initBlock({
64106      name: template_part_name,
64107      metadata: template_part_metadata,
64108      settings: template_part_settings
64109    });
64110  };
64111  
64112  ;// ./node_modules/@wordpress/icons/build-module/library/term-description.js
64113  /**
64114   * WordPress dependencies
64115   */
64116  
64117  
64118  const term_description_tag = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
64119    xmlns: "http://www.w3.org/2000/svg",
64120    viewBox: "0 0 24 24",
64121    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
64122      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"
64123    })
64124  });
64125  /* harmony default export */ const term_description = (term_description_tag);
64126  
64127  ;// ./node_modules/@wordpress/block-library/build-module/term-description/edit.js
64128  /**
64129   * External dependencies
64130   */
64131  
64132  
64133  /**
64134   * WordPress dependencies
64135   */
64136  
64137  
64138  
64139  function TermDescriptionEdit({
64140    attributes,
64141    setAttributes,
64142    mergedStyle
64143  }) {
64144    const {
64145      textAlign
64146    } = attributes;
64147    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
64148      className: dist_clsx({
64149        [`has-text-align-$textAlign}`]: textAlign
64150      }),
64151      style: mergedStyle
64152    });
64153    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
64154      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
64155        group: "block",
64156        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
64157          value: textAlign,
64158          onChange: nextAlign => {
64159            setAttributes({
64160              textAlign: nextAlign
64161            });
64162          }
64163        })
64164      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64165        ...blockProps,
64166        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64167          className: "wp-block-term-description__placeholder",
64168          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
64169            children: (0,external_wp_i18n_namespaceObject.__)('Term Description')
64170          })
64171        })
64172      })]
64173    });
64174  }
64175  
64176  ;// ./node_modules/@wordpress/block-library/build-module/term-description/index.js
64177  /**
64178   * WordPress dependencies
64179   */
64180  
64181  
64182  /**
64183   * Internal dependencies
64184   */
64185  
64186  const term_description_metadata = {
64187    $schema: "https://schemas.wp.org/trunk/block.json",
64188    apiVersion: 3,
64189    name: "core/term-description",
64190    title: "Term Description",
64191    category: "theme",
64192    description: "Display the description of categories, tags and custom taxonomies when viewing an archive.",
64193    textdomain: "default",
64194    attributes: {
64195      textAlign: {
64196        type: "string"
64197      }
64198    },
64199    supports: {
64200      align: ["wide", "full"],
64201      html: false,
64202      color: {
64203        link: true,
64204        __experimentalDefaultControls: {
64205          background: true,
64206          text: true
64207        }
64208      },
64209      spacing: {
64210        padding: true,
64211        margin: true
64212      },
64213      typography: {
64214        fontSize: true,
64215        lineHeight: true,
64216        __experimentalFontFamily: true,
64217        __experimentalFontWeight: true,
64218        __experimentalFontStyle: true,
64219        __experimentalTextTransform: true,
64220        __experimentalTextDecoration: true,
64221        __experimentalLetterSpacing: true,
64222        __experimentalDefaultControls: {
64223          fontSize: true
64224        }
64225      },
64226      interactivity: {
64227        clientNavigation: true
64228      },
64229      __experimentalBorder: {
64230        radius: true,
64231        color: true,
64232        width: true,
64233        style: true,
64234        __experimentalDefaultControls: {
64235          radius: true,
64236          color: true,
64237          width: true,
64238          style: true
64239        }
64240      }
64241    }
64242  };
64243  
64244  const {
64245    name: term_description_name
64246  } = term_description_metadata;
64247  
64248  const term_description_settings = {
64249    icon: term_description,
64250    edit: TermDescriptionEdit,
64251    example: {}
64252  };
64253  const term_description_init = () => initBlock({
64254    name: term_description_name,
64255    metadata: term_description_metadata,
64256    settings: term_description_settings
64257  });
64258  
64259  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js
64260  /**
64261   * WordPress dependencies
64262   */
64263  
64264  
64265  
64266  
64267  
64268  function TextColumnsEdit({
64269    attributes,
64270    setAttributes
64271  }) {
64272    const {
64273      width,
64274      content,
64275      columns
64276    } = attributes;
64277    external_wp_deprecated_default()('The Text Columns block', {
64278      since: '5.3',
64279      alternative: 'the Columns block'
64280    });
64281    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
64282      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
64283        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, {
64284          value: width,
64285          onChange: nextWidth => setAttributes({
64286            width: nextWidth
64287          }),
64288          controls: ['center', 'wide', 'full']
64289        })
64290      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
64291        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
64292          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
64293            __nextHasNoMarginBottom: true,
64294            __next40pxDefaultSize: true,
64295            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
64296            value: columns,
64297            onChange: value => setAttributes({
64298              columns: value
64299            }),
64300            min: 2,
64301            max: 4,
64302            required: true
64303          })
64304        })
64305      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64306        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
64307          className: `align$width} columns-$columns}`
64308        }),
64309        children: Array.from({
64310          length: columns
64311        }).map((_, index) => {
64312          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64313            className: "wp-block-column",
64314            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
64315              tagName: "p",
64316              value: content?.[index]?.children,
64317              onChange: nextContent => {
64318                setAttributes({
64319                  content: [...content.slice(0, index), {
64320                    children: nextContent
64321                  }, ...content.slice(index + 1)]
64322                });
64323              },
64324              "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
64325              // translators: %d: column index (starting with 1)
64326              (0,external_wp_i18n_namespaceObject.__)('Column %d text'), index + 1),
64327              placeholder: (0,external_wp_i18n_namespaceObject.__)('New Column')
64328            })
64329          }, `column-$index}`);
64330        })
64331      })]
64332    });
64333  }
64334  
64335  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/save.js
64336  /**
64337   * WordPress dependencies
64338   */
64339  
64340  
64341  function text_columns_save_save({
64342    attributes
64343  }) {
64344    const {
64345      width,
64346      content,
64347      columns
64348    } = attributes;
64349    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64350      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
64351        className: `align$width} columns-$columns}`
64352      }),
64353      children: Array.from({
64354        length: columns
64355      }).map((_, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64356        className: "wp-block-column",
64357        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64358          tagName: "p",
64359          value: content?.[index]?.children
64360        })
64361      }, `column-$index}`))
64362    });
64363  }
64364  
64365  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js
64366  /**
64367   * WordPress dependencies
64368   */
64369  
64370  const text_columns_transforms_transforms = {
64371    to: [{
64372      type: 'block',
64373      blocks: ['core/columns'],
64374      transform: ({
64375        className,
64376        columns,
64377        content,
64378        width
64379      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
64380        align: 'wide' === width || 'full' === width ? width : undefined,
64381        className,
64382        columns
64383      }, content.map(({
64384        children
64385      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
64386        content: children
64387      })])))
64388    }]
64389  };
64390  /* harmony default export */ const text_columns_transforms = (text_columns_transforms_transforms);
64391  
64392  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
64393  /**
64394   * Internal dependencies
64395   */
64396  
64397  
64398  const text_columns_metadata = {
64399    $schema: "https://schemas.wp.org/trunk/block.json",
64400    apiVersion: 3,
64401    name: "core/text-columns",
64402    title: "Text Columns (deprecated)",
64403    icon: "columns",
64404    category: "design",
64405    description: "This block is deprecated. Please use the Columns block instead.",
64406    textdomain: "default",
64407    attributes: {
64408      content: {
64409        type: "array",
64410        source: "query",
64411        selector: "p",
64412        query: {
64413          children: {
64414            type: "string",
64415            source: "html"
64416          }
64417        },
64418        "default": [{}, {}]
64419      },
64420      columns: {
64421        type: "number",
64422        "default": 2
64423      },
64424      width: {
64425        type: "string"
64426      }
64427    },
64428    supports: {
64429      inserter: false,
64430      interactivity: {
64431        clientNavigation: true
64432      }
64433    },
64434    editorStyle: "wp-block-text-columns-editor",
64435    style: "wp-block-text-columns"
64436  };
64437  
64438  
64439  const {
64440    name: text_columns_name
64441  } = text_columns_metadata;
64442  
64443  const text_columns_settings = {
64444    transforms: text_columns_transforms,
64445    getEditWrapperProps(attributes) {
64446      const {
64447        width
64448      } = attributes;
64449      if ('wide' === width || 'full' === width) {
64450        return {
64451          'data-align': width
64452        };
64453      }
64454    },
64455    edit: TextColumnsEdit,
64456    save: text_columns_save_save
64457  };
64458  const text_columns_init = () => initBlock({
64459    name: text_columns_name,
64460    metadata: text_columns_metadata,
64461    settings: text_columns_settings
64462  });
64463  
64464  ;// ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js
64465  /**
64466   * External dependencies
64467   */
64468  
64469  
64470  /**
64471   * WordPress dependencies
64472   */
64473  
64474  
64475  /**
64476   * Internal dependencies
64477   */
64478  
64479  
64480  const verse_deprecated_v1 = {
64481    attributes: {
64482      content: {
64483        type: 'string',
64484        source: 'html',
64485        selector: 'pre',
64486        default: ''
64487      },
64488      textAlign: {
64489        type: 'string'
64490      }
64491    },
64492    save({
64493      attributes
64494    }) {
64495      const {
64496        textAlign,
64497        content
64498      } = attributes;
64499      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64500        tagName: "pre",
64501        style: {
64502          textAlign
64503        },
64504        value: content
64505      });
64506    }
64507  };
64508  const verse_deprecated_v2 = {
64509    attributes: {
64510      content: {
64511        type: 'string',
64512        source: 'html',
64513        selector: 'pre',
64514        default: '',
64515        __unstablePreserveWhiteSpace: true,
64516        role: 'content'
64517      },
64518      textAlign: {
64519        type: 'string'
64520      }
64521    },
64522    supports: {
64523      anchor: true,
64524      color: {
64525        gradients: true,
64526        link: true
64527      },
64528      typography: {
64529        fontSize: true,
64530        __experimentalFontFamily: true
64531      },
64532      spacing: {
64533        padding: true
64534      }
64535    },
64536    save({
64537      attributes
64538    }) {
64539      const {
64540        textAlign,
64541        content
64542      } = attributes;
64543      const className = dist_clsx({
64544        [`has-text-align-$textAlign}`]: textAlign
64545      });
64546      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
64547        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
64548          className
64549        }),
64550        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64551          value: content
64552        })
64553      });
64554    },
64555    migrate: migrate_font_family,
64556    isEligible({
64557      style
64558    }) {
64559      return style?.typography?.fontFamily;
64560    }
64561  };
64562  
64563  /**
64564   * New deprecations need to be placed first
64565   * for them to have higher priority.
64566   *
64567   * Old deprecations may need to be updated as well.
64568   *
64569   * See block-deprecation.md
64570   */
64571  /* harmony default export */ const verse_deprecated = ([verse_deprecated_v2, verse_deprecated_v1]);
64572  
64573  ;// ./node_modules/@wordpress/block-library/build-module/verse/edit.js
64574  /**
64575   * External dependencies
64576   */
64577  
64578  
64579  /**
64580   * WordPress dependencies
64581   */
64582  
64583  
64584  
64585  
64586  function VerseEdit({
64587    attributes,
64588    setAttributes,
64589    mergeBlocks,
64590    onRemove,
64591    insertBlocksAfter,
64592    style
64593  }) {
64594    const {
64595      textAlign,
64596      content
64597    } = attributes;
64598    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
64599      className: dist_clsx({
64600        [`has-text-align-$textAlign}`]: textAlign
64601      }),
64602      style
64603    });
64604    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
64605      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
64606        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
64607          value: textAlign,
64608          onChange: nextAlign => {
64609            setAttributes({
64610              textAlign: nextAlign
64611            });
64612          }
64613        })
64614      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
64615        tagName: "pre",
64616        identifier: "content",
64617        preserveWhiteSpace: true,
64618        value: content,
64619        onChange: nextContent => {
64620          setAttributes({
64621            content: nextContent
64622          });
64623        },
64624        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Verse text'),
64625        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write verse…'),
64626        onRemove: onRemove,
64627        onMerge: mergeBlocks,
64628        textAlign: textAlign,
64629        ...blockProps,
64630        __unstablePastePlainText: true,
64631        __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
64632      })]
64633    });
64634  }
64635  
64636  ;// ./node_modules/@wordpress/block-library/build-module/verse/save.js
64637  /**
64638   * External dependencies
64639   */
64640  
64641  
64642  /**
64643   * WordPress dependencies
64644   */
64645  
64646  
64647  function verse_save_save({
64648    attributes
64649  }) {
64650    const {
64651      textAlign,
64652      content
64653    } = attributes;
64654    const className = dist_clsx({
64655      [`has-text-align-$textAlign}`]: textAlign
64656    });
64657    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
64658      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
64659        className
64660      }),
64661      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64662        value: content
64663      })
64664    });
64665  }
64666  
64667  ;// ./node_modules/@wordpress/block-library/build-module/verse/transforms.js
64668  /**
64669   * WordPress dependencies
64670   */
64671  
64672  const verse_transforms_transforms = {
64673    from: [{
64674      type: 'block',
64675      blocks: ['core/paragraph'],
64676      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/verse', attributes)
64677    }],
64678    to: [{
64679      type: 'block',
64680      blocks: ['core/paragraph'],
64681      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
64682    }]
64683  };
64684  /* harmony default export */ const verse_transforms = (verse_transforms_transforms);
64685  
64686  ;// ./node_modules/@wordpress/block-library/build-module/verse/index.js
64687  /**
64688   * WordPress dependencies
64689   */
64690  
64691  
64692  
64693  /**
64694   * Internal dependencies
64695   */
64696  
64697  
64698  
64699  const verse_metadata = {
64700    $schema: "https://schemas.wp.org/trunk/block.json",
64701    apiVersion: 3,
64702    name: "core/verse",
64703    title: "Verse",
64704    category: "text",
64705    description: "Insert poetry. Use special spacing formats. Or quote song lyrics.",
64706    keywords: ["poetry", "poem"],
64707    textdomain: "default",
64708    attributes: {
64709      content: {
64710        type: "rich-text",
64711        source: "rich-text",
64712        selector: "pre",
64713        __unstablePreserveWhiteSpace: true,
64714        role: "content"
64715      },
64716      textAlign: {
64717        type: "string"
64718      }
64719    },
64720    supports: {
64721      anchor: true,
64722      background: {
64723        backgroundImage: true,
64724        backgroundSize: true,
64725        __experimentalDefaultControls: {
64726          backgroundImage: true
64727        }
64728      },
64729      color: {
64730        gradients: true,
64731        link: true,
64732        __experimentalDefaultControls: {
64733          background: true,
64734          text: true
64735        }
64736      },
64737      dimensions: {
64738        minHeight: true,
64739        __experimentalDefaultControls: {
64740          minHeight: false
64741        }
64742      },
64743      typography: {
64744        fontSize: true,
64745        __experimentalFontFamily: true,
64746        lineHeight: true,
64747        __experimentalFontStyle: true,
64748        __experimentalFontWeight: true,
64749        __experimentalLetterSpacing: true,
64750        __experimentalTextTransform: true,
64751        __experimentalTextDecoration: true,
64752        __experimentalWritingMode: true,
64753        __experimentalDefaultControls: {
64754          fontSize: true
64755        }
64756      },
64757      spacing: {
64758        margin: true,
64759        padding: true,
64760        __experimentalDefaultControls: {
64761          margin: false,
64762          padding: false
64763        }
64764      },
64765      __experimentalBorder: {
64766        radius: true,
64767        width: true,
64768        color: true,
64769        style: true
64770      },
64771      interactivity: {
64772        clientNavigation: true
64773      }
64774    },
64775    style: "wp-block-verse",
64776    editorStyle: "wp-block-verse-editor"
64777  };
64778  
64779  
64780  const {
64781    name: verse_name
64782  } = verse_metadata;
64783  
64784  const verse_settings = {
64785    icon: library_verse,
64786    example: {
64787      attributes: {
64788        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
64789        // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.
64790        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.')
64791        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
64792      }
64793    },
64794    transforms: verse_transforms,
64795    deprecated: verse_deprecated,
64796    merge(attributes, attributesToMerge) {
64797      return {
64798        content: attributes.content + '\n\n' + attributesToMerge.content
64799      };
64800    },
64801    edit: VerseEdit,
64802    save: verse_save_save
64803  };
64804  const verse_init = () => initBlock({
64805    name: verse_name,
64806    metadata: verse_metadata,
64807    settings: verse_settings
64808  });
64809  
64810  ;// ./node_modules/@wordpress/icons/build-module/library/video.js
64811  /**
64812   * WordPress dependencies
64813   */
64814  
64815  
64816  const video = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
64817    viewBox: "0 0 24 24",
64818    xmlns: "http://www.w3.org/2000/svg",
64819    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
64820      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"
64821    })
64822  });
64823  /* harmony default export */ const library_video = (video);
64824  
64825  ;// ./node_modules/@wordpress/block-library/build-module/video/tracks.js
64826  
64827  function Tracks({
64828    tracks = []
64829  }) {
64830    return tracks.map(track => {
64831      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("track", {
64832        ...track
64833      }, track.src);
64834    });
64835  }
64836  
64837  ;// ./node_modules/@wordpress/block-library/build-module/video/deprecated.js
64838  /**
64839   * WordPress dependencies
64840   */
64841  
64842  
64843  /**
64844   * Internal dependencies
64845   */
64846  const video_deprecated_metadata = {
64847    $schema: "https://schemas.wp.org/trunk/block.json",
64848    apiVersion: 3,
64849    name: "core/video",
64850    title: "Video",
64851    category: "media",
64852    description: "Embed a video from your media library or upload a new one.",
64853    keywords: ["movie"],
64854    textdomain: "default",
64855    attributes: {
64856      autoplay: {
64857        type: "boolean",
64858        source: "attribute",
64859        selector: "video",
64860        attribute: "autoplay"
64861      },
64862      caption: {
64863        type: "rich-text",
64864        source: "rich-text",
64865        selector: "figcaption",
64866        role: "content"
64867      },
64868      controls: {
64869        type: "boolean",
64870        source: "attribute",
64871        selector: "video",
64872        attribute: "controls",
64873        "default": true
64874      },
64875      id: {
64876        type: "number",
64877        role: "content"
64878      },
64879      loop: {
64880        type: "boolean",
64881        source: "attribute",
64882        selector: "video",
64883        attribute: "loop"
64884      },
64885      muted: {
64886        type: "boolean",
64887        source: "attribute",
64888        selector: "video",
64889        attribute: "muted"
64890      },
64891      poster: {
64892        type: "string",
64893        source: "attribute",
64894        selector: "video",
64895        attribute: "poster"
64896      },
64897      preload: {
64898        type: "string",
64899        source: "attribute",
64900        selector: "video",
64901        attribute: "preload",
64902        "default": "metadata"
64903      },
64904      blob: {
64905        type: "string",
64906        role: "local"
64907      },
64908      src: {
64909        type: "string",
64910        source: "attribute",
64911        selector: "video",
64912        attribute: "src",
64913        role: "content"
64914      },
64915      playsInline: {
64916        type: "boolean",
64917        source: "attribute",
64918        selector: "video",
64919        attribute: "playsinline"
64920      },
64921      tracks: {
64922        role: "content",
64923        type: "array",
64924        items: {
64925          type: "object"
64926        },
64927        "default": []
64928      }
64929    },
64930    supports: {
64931      anchor: true,
64932      align: true,
64933      spacing: {
64934        margin: true,
64935        padding: true,
64936        __experimentalDefaultControls: {
64937          margin: false,
64938          padding: false
64939        }
64940      },
64941      interactivity: {
64942        clientNavigation: true
64943      }
64944    },
64945    editorStyle: "wp-block-video-editor",
64946    style: "wp-block-video"
64947  };
64948  
64949  
64950  const {
64951    attributes: video_deprecated_blockAttributes
64952  } = video_deprecated_metadata;
64953  
64954  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
64955  // to the video figcaption element.
64956  const video_deprecated_v1 = {
64957    attributes: video_deprecated_blockAttributes,
64958    save({
64959      attributes
64960    }) {
64961      const {
64962        autoplay,
64963        caption,
64964        controls,
64965        loop,
64966        muted,
64967        poster,
64968        preload,
64969        src,
64970        playsInline,
64971        tracks
64972      } = attributes;
64973      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
64974        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
64975        children: [src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
64976          autoPlay: autoplay,
64977          controls: controls,
64978          loop: loop,
64979          muted: muted,
64980          poster: poster,
64981          preload: preload !== 'metadata' ? preload : undefined,
64982          src: src,
64983          playsInline: playsInline,
64984          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
64985            tracks: tracks
64986          })
64987        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64988          tagName: "figcaption",
64989          value: caption
64990        })]
64991      });
64992    }
64993  };
64994  const video_deprecated_deprecated = [video_deprecated_v1];
64995  /* harmony default export */ const video_deprecated = (video_deprecated_deprecated);
64996  
64997  ;// ./node_modules/@wordpress/block-library/build-module/video/poster-image.js
64998  /**
64999   * WordPress dependencies
65000   */
65001  
65002  
65003  
65004  
65005  
65006  function PosterImage({
65007    poster,
65008    setAttributes,
65009    instanceId
65010  }) {
65011    const posterImageButton = (0,external_wp_element_namespaceObject.useRef)();
65012    const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
65013    const videoPosterDescription = `video-block__poster-image-description-$instanceId}`;
65014    function onSelectPoster(image) {
65015      setAttributes({
65016        poster: image.url
65017      });
65018    }
65019    function onRemovePoster() {
65020      setAttributes({
65021        poster: undefined
65022      });
65023  
65024      // Move focus back to the Media Upload button.
65025      posterImageButton.current.focus();
65026    }
65027    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65028      label: (0,external_wp_i18n_namespaceObject.__)('Poster image'),
65029      isShownByDefault: true,
65030      hasValue: () => !!poster,
65031      onDeselect: () => {
65032        setAttributes({
65033          poster: ''
65034        });
65035      },
65036      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
65037        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
65038          className: "editor-video-poster-control",
65039          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
65040            children: (0,external_wp_i18n_namespaceObject.__)('Poster image')
65041          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
65042            title: (0,external_wp_i18n_namespaceObject.__)('Select poster image'),
65043            onSelect: onSelectPoster,
65044            allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
65045            render: ({
65046              open
65047            }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65048              __next40pxDefaultSize: true,
65049              variant: "primary",
65050              onClick: open,
65051              ref: posterImageButton,
65052              "aria-describedby": videoPosterDescription,
65053              children: !poster ? (0,external_wp_i18n_namespaceObject.__)('Select') : (0,external_wp_i18n_namespaceObject.__)('Replace')
65054            })
65055          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
65056            id: videoPosterDescription,
65057            hidden: true,
65058            children: poster ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: poster image URL. */
65059            (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')
65060          }), !!poster && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65061            __next40pxDefaultSize: true,
65062            onClick: onRemovePoster,
65063            variant: "tertiary",
65064            children: (0,external_wp_i18n_namespaceObject.__)('Remove')
65065          })]
65066        })
65067      })
65068    });
65069  }
65070  /* harmony default export */ const poster_image = (PosterImage);
65071  
65072  ;// ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js
65073  /**
65074   * WordPress dependencies
65075   */
65076  
65077  
65078  
65079  
65080  const options = [{
65081    value: 'auto',
65082    label: (0,external_wp_i18n_namespaceObject.__)('Auto')
65083  }, {
65084    value: 'metadata',
65085    label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
65086  }, {
65087    value: 'none',
65088    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
65089  }];
65090  const VideoSettings = ({
65091    setAttributes,
65092    attributes
65093  }) => {
65094    const {
65095      autoplay,
65096      controls,
65097      loop,
65098      muted,
65099      playsInline,
65100      preload
65101    } = attributes;
65102    const autoPlayHelpText = (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.');
65103    const getAutoplayHelp = external_wp_element_namespaceObject.Platform.select({
65104      web: (0,external_wp_element_namespaceObject.useCallback)(checked => {
65105        return checked ? autoPlayHelpText : null;
65106      }, []),
65107      native: autoPlayHelpText
65108    });
65109    const toggleFactory = (0,external_wp_element_namespaceObject.useMemo)(() => {
65110      const toggleAttribute = attribute => {
65111        return newValue => {
65112          setAttributes({
65113            [attribute]: newValue,
65114            // Set muted when autoplay changes
65115            ...(attribute === 'autoplay' && {
65116              muted: newValue
65117            })
65118          });
65119        };
65120      };
65121      return {
65122        autoplay: toggleAttribute('autoplay'),
65123        loop: toggleAttribute('loop'),
65124        muted: toggleAttribute('muted'),
65125        controls: toggleAttribute('controls'),
65126        playsInline: toggleAttribute('playsInline')
65127      };
65128    }, []);
65129    const onChangePreload = (0,external_wp_element_namespaceObject.useCallback)(value => {
65130      setAttributes({
65131        preload: value
65132      });
65133    }, []);
65134    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65135      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65136        label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
65137        isShownByDefault: true,
65138        hasValue: () => !!autoplay,
65139        onDeselect: () => {
65140          setAttributes({
65141            autoplay: false,
65142            muted: false
65143          });
65144        },
65145        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65146          __nextHasNoMarginBottom: true,
65147          label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
65148          onChange: toggleFactory.autoplay,
65149          checked: !!autoplay,
65150          help: getAutoplayHelp
65151        })
65152      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65153        label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
65154        isShownByDefault: true,
65155        hasValue: () => !!loop,
65156        onDeselect: () => {
65157          setAttributes({
65158            loop: false
65159          });
65160        },
65161        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65162          __nextHasNoMarginBottom: true,
65163          label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
65164          onChange: toggleFactory.loop,
65165          checked: !!loop
65166        })
65167      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65168        label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
65169        isShownByDefault: true,
65170        hasValue: () => !!muted,
65171        onDeselect: () => {
65172          setAttributes({
65173            muted: false
65174          });
65175        },
65176        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65177          __nextHasNoMarginBottom: true,
65178          label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
65179          onChange: toggleFactory.muted,
65180          checked: !!muted,
65181          disabled: autoplay,
65182          help: autoplay ? (0,external_wp_i18n_namespaceObject.__)('Muted because of Autoplay.') : null
65183        })
65184      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65185        label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
65186        isShownByDefault: true,
65187        hasValue: () => !controls,
65188        onDeselect: () => {
65189          setAttributes({
65190            controls: true
65191          });
65192        },
65193        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65194          __nextHasNoMarginBottom: true,
65195          label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
65196          onChange: toggleFactory.controls,
65197          checked: !!controls
65198        })
65199      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65200        label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
65201        isShownByDefault: true,
65202        hasValue: () => !!playsInline,
65203        onDeselect: () => {
65204          setAttributes({
65205            playsInline: false
65206          });
65207        },
65208        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65209          __nextHasNoMarginBottom: true
65210          /* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */,
65211          label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
65212          onChange: toggleFactory.playsInline,
65213          checked: !!playsInline,
65214          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.')
65215        })
65216      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65217        label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
65218        isShownByDefault: true,
65219        hasValue: () => preload !== 'metadata',
65220        onDeselect: () => {
65221          setAttributes({
65222            preload: 'metadata'
65223          });
65224        },
65225        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
65226          __next40pxDefaultSize: true,
65227          __nextHasNoMarginBottom: true,
65228          label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
65229          value: preload,
65230          onChange: onChangePreload,
65231          options: options,
65232          hideCancelButton: true
65233        })
65234      })]
65235    });
65236  };
65237  /* harmony default export */ const edit_common_settings = (VideoSettings);
65238  
65239  ;// ./node_modules/@wordpress/block-library/build-module/video/tracks-editor.js
65240  /**
65241   * WordPress dependencies
65242   */
65243  
65244  
65245  
65246  
65247  
65248  
65249  
65250  
65251  const ALLOWED_TYPES = ['text/vtt'];
65252  const DEFAULT_KIND = 'subtitles';
65253  const KIND_OPTIONS = [{
65254    label: (0,external_wp_i18n_namespaceObject.__)('Subtitles'),
65255    value: 'subtitles'
65256  }, {
65257    label: (0,external_wp_i18n_namespaceObject.__)('Captions'),
65258    value: 'captions'
65259  }, {
65260    label: (0,external_wp_i18n_namespaceObject.__)('Descriptions'),
65261    value: 'descriptions'
65262  }, {
65263    label: (0,external_wp_i18n_namespaceObject.__)('Chapters'),
65264    value: 'chapters'
65265  }, {
65266    label: (0,external_wp_i18n_namespaceObject.__)('Metadata'),
65267    value: 'metadata'
65268  }];
65269  function TrackList({
65270    tracks,
65271    onEditPress
65272  }) {
65273    const content = tracks.map((track, index) => {
65274      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
65275        className: "block-library-video-tracks-editor__track-list-track",
65276        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
65277          children: track.label
65278        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65279          __next40pxDefaultSize: true,
65280          variant: "tertiary",
65281          onClick: () => onEditPress(index),
65282          "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the video text track e.g: "French subtitles". */
65283          (0,external_wp_i18n_namespaceObject._x)('Edit %s', 'text tracks'), track.label),
65284          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
65285        })]
65286      }, index);
65287    });
65288    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
65289      label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
65290      className: "block-library-video-tracks-editor__track-list",
65291      children: content
65292    });
65293  }
65294  function SingleTrackEditor({
65295    track,
65296    onChange,
65297    onClose,
65298    onRemove
65299  }) {
65300    const {
65301      src = '',
65302      label = '',
65303      srcLang = '',
65304      kind = DEFAULT_KIND
65305    } = track;
65306    const fileName = src.startsWith('blob:') ? '' : (0,external_wp_url_namespaceObject.getFilename)(src) || '';
65307    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
65308      className: "block-library-video-tracks-editor__single-track-editor",
65309      spacing: "4",
65310      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
65311        className: "block-library-video-tracks-editor__single-track-editor-edit-track-label",
65312        children: (0,external_wp_i18n_namespaceObject.__)('Edit track')
65313      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
65314        children: [(0,external_wp_i18n_namespaceObject.__)('File'), ": ", /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("b", {
65315          children: fileName
65316        })]
65317      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalGrid, {
65318        columns: 2,
65319        gap: 4,
65320        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
65321          __next40pxDefaultSize: true,
65322          __nextHasNoMarginBottom: true,
65323          onChange: newLabel => onChange({
65324            ...track,
65325            label: newLabel
65326          }),
65327          label: (0,external_wp_i18n_namespaceObject.__)('Label'),
65328          value: label,
65329          help: (0,external_wp_i18n_namespaceObject.__)('Title of track')
65330        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
65331          __next40pxDefaultSize: true,
65332          __nextHasNoMarginBottom: true,
65333          onChange: newSrcLang => onChange({
65334            ...track,
65335            srcLang: newSrcLang
65336          }),
65337          label: (0,external_wp_i18n_namespaceObject.__)('Source language'),
65338          value: srcLang,
65339          help: (0,external_wp_i18n_namespaceObject.__)('Language tag (en, fr, etc.)')
65340        })]
65341      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
65342        spacing: "8",
65343        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
65344          __next40pxDefaultSize: true,
65345          __nextHasNoMarginBottom: true,
65346          className: "block-library-video-tracks-editor__single-track-editor-kind-select",
65347          options: KIND_OPTIONS,
65348          value: kind,
65349          label: (0,external_wp_i18n_namespaceObject.__)('Kind'),
65350          onChange: newKind => {
65351            onChange({
65352              ...track,
65353              kind: newKind
65354            });
65355          }
65356        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
65357          className: "block-library-video-tracks-editor__single-track-editor-buttons-container",
65358          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65359            __next40pxDefaultSize: true,
65360            isDestructive: true,
65361            variant: "link",
65362            onClick: onRemove,
65363            children: (0,external_wp_i18n_namespaceObject.__)('Remove track')
65364          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65365            __next40pxDefaultSize: true,
65366            variant: "primary",
65367            onClick: () => {
65368              const changes = {};
65369              let hasChanges = false;
65370              if (label === '') {
65371                changes.label = (0,external_wp_i18n_namespaceObject.__)('English');
65372                hasChanges = true;
65373              }
65374              if (srcLang === '') {
65375                changes.srcLang = 'en';
65376                hasChanges = true;
65377              }
65378              if (track.kind === undefined) {
65379                changes.kind = DEFAULT_KIND;
65380                hasChanges = true;
65381              }
65382              if (hasChanges) {
65383                onChange({
65384                  ...track,
65385                  ...changes
65386                });
65387              }
65388              onClose();
65389            },
65390            children: (0,external_wp_i18n_namespaceObject.__)('Apply')
65391          })]
65392        })]
65393      })]
65394    });
65395  }
65396  function TracksEditor({
65397    tracks = [],
65398    onChange
65399  }) {
65400    const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
65401      return select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload;
65402    }, []);
65403    const [trackBeingEdited, setTrackBeingEdited] = (0,external_wp_element_namespaceObject.useState)(null);
65404    const dropdownPopoverRef = (0,external_wp_element_namespaceObject.useRef)();
65405    (0,external_wp_element_namespaceObject.useEffect)(() => {
65406      dropdownPopoverRef.current?.focus();
65407    }, [trackBeingEdited]);
65408    if (!mediaUpload) {
65409      return null;
65410    }
65411    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
65412      contentClassName: "block-library-video-tracks-editor",
65413      focusOnMount: true,
65414      popoverProps: {
65415        ref: dropdownPopoverRef
65416      },
65417      renderToggle: ({
65418        isOpen,
65419        onToggle
65420      }) => {
65421        const handleOnToggle = () => {
65422          if (!isOpen) {
65423            // When the Popover opens make sure the initial view is
65424            // always the track list rather than the edit track UI.
65425            setTrackBeingEdited(null);
65426          }
65427          onToggle();
65428        };
65429        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
65430          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
65431            "aria-expanded": isOpen,
65432            "aria-haspopup": "true",
65433            onClick: handleOnToggle,
65434            children: (0,external_wp_i18n_namespaceObject.__)('Text tracks')
65435          })
65436        });
65437      },
65438      renderContent: () => {
65439        if (trackBeingEdited !== null) {
65440          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SingleTrackEditor, {
65441            track: tracks[trackBeingEdited],
65442            onChange: newTrack => {
65443              const newTracks = [...tracks];
65444              newTracks[trackBeingEdited] = newTrack;
65445              onChange(newTracks);
65446            },
65447            onClose: () => setTrackBeingEdited(null),
65448            onRemove: () => {
65449              onChange(tracks.filter((_track, index) => index !== trackBeingEdited));
65450              setTrackBeingEdited(null);
65451            }
65452          });
65453        }
65454        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65455          children: [tracks.length === 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
65456            className: "block-library-video-tracks-editor__tracks-informative-message",
65457            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
65458              className: "block-library-video-tracks-editor__tracks-informative-message-title",
65459              children: (0,external_wp_i18n_namespaceObject.__)('Text tracks')
65460            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
65461              className: "block-library-video-tracks-editor__tracks-informative-message-description",
65462              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.')
65463            })]
65464          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.NavigableMenu, {
65465            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TrackList, {
65466              tracks: tracks,
65467              onEditPress: setTrackBeingEdited
65468            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
65469              className: "block-library-video-tracks-editor__add-tracks-container",
65470              label: (0,external_wp_i18n_namespaceObject.__)('Add tracks'),
65471              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
65472                onSelect: ({
65473                  url
65474                }) => {
65475                  const trackIndex = tracks.length;
65476                  onChange([...tracks, {
65477                    src: url
65478                  }]);
65479                  setTrackBeingEdited(trackIndex);
65480                },
65481                allowedTypes: ALLOWED_TYPES,
65482                render: ({
65483                  open
65484                }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
65485                  icon: library_media,
65486                  onClick: open,
65487                  children: (0,external_wp_i18n_namespaceObject.__)('Open Media Library')
65488                })
65489              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
65490                children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormFileUpload, {
65491                  onChange: event => {
65492                    const files = event.target.files;
65493                    const trackIndex = tracks.length;
65494                    mediaUpload({
65495                      allowedTypes: ALLOWED_TYPES,
65496                      filesList: files,
65497                      onFileChange: ([{
65498                        url
65499                      }]) => {
65500                        const newTracks = [...tracks];
65501                        if (!newTracks[trackIndex]) {
65502                          newTracks[trackIndex] = {};
65503                        }
65504                        newTracks[trackIndex] = {
65505                          ...tracks[trackIndex],
65506                          src: url
65507                        };
65508                        onChange(newTracks);
65509                        setTrackBeingEdited(trackIndex);
65510                      }
65511                    });
65512                  },
65513                  accept: ".vtt,text/vtt",
65514                  render: ({
65515                    openFileDialog
65516                  }) => {
65517                    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
65518                      icon: library_upload,
65519                      onClick: () => {
65520                        openFileDialog();
65521                      },
65522                      children: (0,external_wp_i18n_namespaceObject._x)('Upload', 'verb')
65523                    });
65524                  }
65525                })
65526              })]
65527            })]
65528          })]
65529        });
65530      }
65531    });
65532  }
65533  
65534  ;// ./node_modules/@wordpress/block-library/build-module/video/edit.js
65535  /**
65536   * External dependencies
65537   */
65538  
65539  
65540  /**
65541   * WordPress dependencies
65542   */
65543  
65544  
65545  
65546  
65547  
65548  
65549  
65550  
65551  
65552  
65553  /**
65554   * Internal dependencies
65555   */
65556  
65557  
65558  
65559  
65560  
65561  
65562  
65563  
65564  const video_edit_ALLOWED_MEDIA_TYPES = ['video'];
65565  function VideoEdit({
65566    isSelected: isSingleSelected,
65567    attributes,
65568    className,
65569    setAttributes,
65570    insertBlocksAfter,
65571    onReplace
65572  }) {
65573    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(VideoEdit);
65574    const videoPlayer = (0,external_wp_element_namespaceObject.useRef)();
65575    const {
65576      id,
65577      controls,
65578      poster,
65579      src,
65580      tracks
65581    } = attributes;
65582    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
65583    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
65584    useUploadMediaFromBlobURL({
65585      url: temporaryURL,
65586      allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
65587      onChange: onSelectVideo,
65588      onError: onUploadError
65589    });
65590    (0,external_wp_element_namespaceObject.useEffect)(() => {
65591      // Placeholder may be rendered.
65592      if (videoPlayer.current) {
65593        videoPlayer.current.load();
65594      }
65595    }, [poster]);
65596    function onSelectVideo(media) {
65597      if (!media || !media.url) {
65598        // In this case there was an error
65599        // previous attributes should be removed
65600        // because they may be temporary blob urls.
65601        setAttributes({
65602          src: undefined,
65603          id: undefined,
65604          poster: undefined,
65605          caption: undefined,
65606          blob: undefined
65607        });
65608        setTemporaryURL();
65609        return;
65610      }
65611      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
65612        setTemporaryURL(media.url);
65613        return;
65614      }
65615  
65616      // Sets the block's attribute and updates the edit component from the
65617      // selected media.
65618      setAttributes({
65619        blob: undefined,
65620        src: media.url,
65621        id: media.id,
65622        poster: media.image?.src !== media.icon ? media.image?.src : undefined,
65623        caption: media.caption
65624      });
65625      setTemporaryURL();
65626    }
65627    function onSelectURL(newSrc) {
65628      if (newSrc !== src) {
65629        // Check if there's an embed block that handles this URL.
65630        const embedBlock = createUpgradedEmbedBlock({
65631          attributes: {
65632            url: newSrc
65633          }
65634        });
65635        if (undefined !== embedBlock && onReplace) {
65636          onReplace(embedBlock);
65637          return;
65638        }
65639        setAttributes({
65640          blob: undefined,
65641          src: newSrc,
65642          id: undefined,
65643          poster: undefined
65644        });
65645        setTemporaryURL();
65646      }
65647    }
65648    const {
65649      createErrorNotice
65650    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
65651    function onUploadError(message) {
65652      createErrorNotice(message, {
65653        type: 'snackbar'
65654      });
65655    }
65656  
65657    // Much of this description is duplicated from MediaPlaceholder.
65658    const placeholder = content => {
65659      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
65660        className: "block-editor-media-placeholder",
65661        withIllustration: !isSingleSelected,
65662        icon: library_video,
65663        label: (0,external_wp_i18n_namespaceObject.__)('Video'),
65664        instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop a video, upload, or choose from your library.'),
65665        children: content
65666      });
65667    };
65668    const classes = dist_clsx(className, {
65669      'is-transient': !!temporaryURL
65670    });
65671    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
65672      className: classes
65673    });
65674    if (!src && !temporaryURL) {
65675      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
65676        ...blockProps,
65677        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
65678          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
65679            icon: library_video
65680          }),
65681          onSelect: onSelectVideo,
65682          onSelectURL: onSelectURL,
65683          accept: "video/*",
65684          allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
65685          value: attributes,
65686          onError: onUploadError,
65687          placeholder: placeholder
65688        })
65689      });
65690    }
65691    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65692      children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65693        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
65694          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TracksEditor, {
65695            tracks: tracks,
65696            onChange: newTracks => {
65697              setAttributes({
65698                tracks: newTracks
65699              });
65700            }
65701          })
65702        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
65703          group: "other",
65704          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
65705            mediaId: id,
65706            mediaURL: src,
65707            allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
65708            accept: "video/*",
65709            onSelect: onSelectVideo,
65710            onSelectURL: onSelectURL,
65711            onError: onUploadError,
65712            onReset: () => onSelectVideo(undefined)
65713          })
65714        })]
65715      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
65716        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
65717          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
65718          resetAll: () => {
65719            setAttributes({
65720              autoplay: false,
65721              controls: true,
65722              loop: false,
65723              muted: false,
65724              playsInline: false,
65725              preload: 'metadata',
65726              poster: ''
65727            });
65728          },
65729          dropdownMenuProps: dropdownMenuProps,
65730          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_common_settings, {
65731            setAttributes: setAttributes,
65732            attributes: attributes
65733          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(poster_image, {
65734            poster: poster,
65735            setAttributes: setAttributes,
65736            instanceId: instanceId
65737          })]
65738        })
65739      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
65740        ...blockProps,
65741        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
65742          isDisabled: !isSingleSelected,
65743          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
65744            controls: controls,
65745            poster: poster,
65746            src: src || temporaryURL,
65747            ref: videoPlayer,
65748            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
65749              tracks: tracks
65750            })
65751          })
65752        }), !!temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
65753          attributes: attributes,
65754          setAttributes: setAttributes,
65755          isSelected: isSingleSelected,
65756          insertBlocksAfter: insertBlocksAfter,
65757          label: (0,external_wp_i18n_namespaceObject.__)('Video caption text'),
65758          showToolbarButton: isSingleSelected
65759        })]
65760      })]
65761    });
65762  }
65763  /* harmony default export */ const video_edit = (VideoEdit);
65764  
65765  ;// ./node_modules/@wordpress/block-library/build-module/video/save.js
65766  /**
65767   * WordPress dependencies
65768   */
65769  
65770  
65771  /**
65772   * Internal dependencies
65773   */
65774  
65775  
65776  function video_save_save({
65777    attributes
65778  }) {
65779    const {
65780      autoplay,
65781      caption,
65782      controls,
65783      loop,
65784      muted,
65785      poster,
65786      preload,
65787      src,
65788      playsInline,
65789      tracks
65790    } = attributes;
65791    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
65792      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
65793      children: [src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
65794        autoPlay: autoplay,
65795        controls: controls,
65796        loop: loop,
65797        muted: muted,
65798        poster: poster,
65799        preload: preload !== 'metadata' ? preload : undefined,
65800        src: src,
65801        playsInline: playsInline,
65802        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
65803          tracks: tracks
65804        })
65805      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
65806        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
65807        tagName: "figcaption",
65808        value: caption
65809      })]
65810    });
65811  }
65812  
65813  ;// ./node_modules/@wordpress/block-library/build-module/video/transforms.js
65814  /**
65815   * WordPress dependencies
65816   */
65817  
65818  
65819  const video_transforms_transforms = {
65820    from: [{
65821      type: 'files',
65822      isMatch(files) {
65823        return files.length === 1 && files[0].type.indexOf('video/') === 0;
65824      },
65825      transform(files) {
65826        const file = files[0];
65827        // We don't need to upload the media directly here
65828        // It's already done as part of the `componentDidMount`
65829        // in the video block
65830        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
65831          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
65832        });
65833        return block;
65834      }
65835    }, {
65836      type: 'shortcode',
65837      tag: 'video',
65838      attributes: {
65839        src: {
65840          type: 'string',
65841          shortcode: ({
65842            named: {
65843              src,
65844              mp4,
65845              m4v,
65846              webm,
65847              ogv,
65848              flv
65849            }
65850          }) => {
65851            return src || mp4 || m4v || webm || ogv || flv;
65852          }
65853        },
65854        poster: {
65855          type: 'string',
65856          shortcode: ({
65857            named: {
65858              poster
65859            }
65860          }) => {
65861            return poster;
65862          }
65863        },
65864        loop: {
65865          type: 'string',
65866          shortcode: ({
65867            named: {
65868              loop
65869            }
65870          }) => {
65871            return loop;
65872          }
65873        },
65874        autoplay: {
65875          type: 'string',
65876          shortcode: ({
65877            named: {
65878              autoplay
65879            }
65880          }) => {
65881            return autoplay;
65882          }
65883        },
65884        preload: {
65885          type: 'string',
65886          shortcode: ({
65887            named: {
65888              preload
65889            }
65890          }) => {
65891            return preload;
65892          }
65893        }
65894      }
65895    }, {
65896      type: 'raw',
65897      isMatch: node => node.nodeName === 'P' && node.children.length === 1 && node.firstChild.nodeName === 'VIDEO',
65898      transform: node => {
65899        const videoElement = node.firstChild;
65900        const attributes = {
65901          autoplay: videoElement.hasAttribute('autoplay') ? true : undefined,
65902          controls: videoElement.hasAttribute('controls') ? undefined : false,
65903          loop: videoElement.hasAttribute('loop') ? true : undefined,
65904          muted: videoElement.hasAttribute('muted') ? true : undefined,
65905          preload: videoElement.getAttribute('preload') || undefined,
65906          playsInline: videoElement.hasAttribute('playsinline') ? true : undefined,
65907          poster: videoElement.getAttribute('poster') || undefined,
65908          src: videoElement.getAttribute('src') || undefined
65909        };
65910        if ((0,external_wp_blob_namespaceObject.isBlobURL)(attributes.src)) {
65911          attributes.blob = attributes.src;
65912          delete attributes.src;
65913        }
65914        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', attributes);
65915      }
65916    }]
65917  };
65918  /* harmony default export */ const video_transforms = (video_transforms_transforms);
65919  
65920  ;// ./node_modules/@wordpress/block-library/build-module/video/index.js
65921  /**
65922   * WordPress dependencies
65923   */
65924  
65925  
65926  
65927  /**
65928   * Internal dependencies
65929   */
65930  
65931  
65932  
65933  const video_metadata = {
65934    $schema: "https://schemas.wp.org/trunk/block.json",
65935    apiVersion: 3,
65936    name: "core/video",
65937    title: "Video",
65938    category: "media",
65939    description: "Embed a video from your media library or upload a new one.",
65940    keywords: ["movie"],
65941    textdomain: "default",
65942    attributes: {
65943      autoplay: {
65944        type: "boolean",
65945        source: "attribute",
65946        selector: "video",
65947        attribute: "autoplay"
65948      },
65949      caption: {
65950        type: "rich-text",
65951        source: "rich-text",
65952        selector: "figcaption",
65953        role: "content"
65954      },
65955      controls: {
65956        type: "boolean",
65957        source: "attribute",
65958        selector: "video",
65959        attribute: "controls",
65960        "default": true
65961      },
65962      id: {
65963        type: "number",
65964        role: "content"
65965      },
65966      loop: {
65967        type: "boolean",
65968        source: "attribute",
65969        selector: "video",
65970        attribute: "loop"
65971      },
65972      muted: {
65973        type: "boolean",
65974        source: "attribute",
65975        selector: "video",
65976        attribute: "muted"
65977      },
65978      poster: {
65979        type: "string",
65980        source: "attribute",
65981        selector: "video",
65982        attribute: "poster"
65983      },
65984      preload: {
65985        type: "string",
65986        source: "attribute",
65987        selector: "video",
65988        attribute: "preload",
65989        "default": "metadata"
65990      },
65991      blob: {
65992        type: "string",
65993        role: "local"
65994      },
65995      src: {
65996        type: "string",
65997        source: "attribute",
65998        selector: "video",
65999        attribute: "src",
66000        role: "content"
66001      },
66002      playsInline: {
66003        type: "boolean",
66004        source: "attribute",
66005        selector: "video",
66006        attribute: "playsinline"
66007      },
66008      tracks: {
66009        role: "content",
66010        type: "array",
66011        items: {
66012          type: "object"
66013        },
66014        "default": []
66015      }
66016    },
66017    supports: {
66018      anchor: true,
66019      align: true,
66020      spacing: {
66021        margin: true,
66022        padding: true,
66023        __experimentalDefaultControls: {
66024          margin: false,
66025          padding: false
66026        }
66027      },
66028      interactivity: {
66029        clientNavigation: true
66030      }
66031    },
66032    editorStyle: "wp-block-video-editor",
66033    style: "wp-block-video"
66034  };
66035  
66036  
66037  const {
66038    name: video_name
66039  } = video_metadata;
66040  
66041  const video_settings = {
66042    icon: library_video,
66043    example: {
66044      attributes: {
66045        src: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',
66046        // translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.
66047        caption: (0,external_wp_i18n_namespaceObject.__)('Wood thrush singing in Central Park, NYC.')
66048      }
66049    },
66050    transforms: video_transforms,
66051    deprecated: video_deprecated,
66052    edit: video_edit,
66053    save: video_save_save
66054  };
66055  const video_init = () => initBlock({
66056    name: video_name,
66057    metadata: video_metadata,
66058    settings: video_settings
66059  });
66060  
66061  ;// ./node_modules/@wordpress/block-library/build-module/footnotes/edit.js
66062  /**
66063   * WordPress dependencies
66064   */
66065  
66066  
66067  
66068  
66069  
66070  
66071  function FootnotesEdit({
66072    context: {
66073      postType,
66074      postId
66075    }
66076  }) {
66077    const [meta, updateMeta] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'meta', postId);
66078    const footnotesSupported = 'string' === typeof meta?.footnotes;
66079    const footnotes = meta?.footnotes ? JSON.parse(meta.footnotes) : [];
66080    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
66081    if (!footnotesSupported) {
66082      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
66083        ...blockProps,
66084        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
66085          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
66086            icon: format_list_numbered
66087          }),
66088          label: (0,external_wp_i18n_namespaceObject.__)('Footnotes'),
66089          instructions: (0,external_wp_i18n_namespaceObject.__)('Footnotes are not supported here. Add this block to post or page content.')
66090        })
66091      });
66092    }
66093    if (!footnotes.length) {
66094      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
66095        ...blockProps,
66096        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
66097          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
66098            icon: format_list_numbered
66099          }),
66100          label: (0,external_wp_i18n_namespaceObject.__)('Footnotes'),
66101          instructions: (0,external_wp_i18n_namespaceObject.__)('Footnotes found in blocks within this document will be displayed here.')
66102        })
66103      });
66104    }
66105    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
66106      ...blockProps,
66107      children: footnotes.map(({
66108        id,
66109        content
66110      }) =>
66111      /*#__PURE__*/
66112      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
66113      (0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
66114        onMouseDown: event => {
66115          // When clicking on the list item (not on descendants),
66116          // focus the rich text element since it's only 1px wide when
66117          // empty.
66118          if (event.target === event.currentTarget) {
66119            event.target.firstElementChild.focus();
66120            event.preventDefault();
66121          }
66122        },
66123        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
66124          id: id,
66125          tagName: "span",
66126          value: content,
66127          identifier: id
66128          // To do: figure out why the browser is not scrolling
66129          // into view when it receives focus.
66130          ,
66131          onFocus: event => {
66132            if (!event.target.textContent.trim()) {
66133              event.target.scrollIntoView();
66134            }
66135          },
66136          onChange: nextFootnote => {
66137            updateMeta({
66138              ...meta,
66139              footnotes: JSON.stringify(footnotes.map(footnote => {
66140                return footnote.id === id ? {
66141                  content: nextFootnote,
66142                  id
66143                } : footnote;
66144              }))
66145            });
66146          }
66147        }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
66148          href: `#$id}-link`,
66149          children: "\u21A9\uFE0E"
66150        })]
66151      }, id))
66152    });
66153  }
66154  
66155  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/native.js
66156  const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
66157  /* harmony default export */ const esm_browser_native = ({
66158    randomUUID
66159  });
66160  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/rng.js
66161  // Unique ID creation requires a high quality random # generator. In the browser we therefore
66162  // require the crypto API and do not support built-in fallback to lower quality random number
66163  // generators (like Math.random()).
66164  let getRandomValues;
66165  const rnds8 = new Uint8Array(16);
66166  function rng() {
66167    // lazy load so that environments that need to polyfill have a chance to do so
66168    if (!getRandomValues) {
66169      // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
66170      getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
66171  
66172      if (!getRandomValues) {
66173        throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
66174      }
66175    }
66176  
66177    return getRandomValues(rnds8);
66178  }
66179  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/stringify.js
66180  
66181  /**
66182   * Convert array of 16 byte values to UUID string format of the form:
66183   * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
66184   */
66185  
66186  const byteToHex = [];
66187  
66188  for (let i = 0; i < 256; ++i) {
66189    byteToHex.push((i + 0x100).toString(16).slice(1));
66190  }
66191  
66192  function unsafeStringify(arr, offset = 0) {
66193    // Note: Be careful editing this code!  It's been tuned for performance
66194    // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
66195    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]];
66196  }
66197  
66198  function stringify(arr, offset = 0) {
66199    const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID.  If this throws, it's likely due to one
66200    // of the following:
66201    // - One or more input array values don't map to a hex octet (leading to
66202    // "undefined" in the uuid)
66203    // - Invalid input values for the RFC `version` or `variant` fields
66204  
66205    if (!validate(uuid)) {
66206      throw TypeError('Stringified UUID is invalid');
66207    }
66208  
66209    return uuid;
66210  }
66211  
66212  /* harmony default export */ const esm_browser_stringify = ((/* unused pure expression or super */ null && (stringify)));
66213  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/v4.js
66214  
66215  
66216  
66217  
66218  function v4_v4(options, buf, offset) {
66219    if (esm_browser_native.randomUUID && !buf && !options) {
66220      return esm_browser_native.randomUUID();
66221    }
66222  
66223    options = options || {};
66224    const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
66225  
66226    rnds[6] = rnds[6] & 0x0f | 0x40;
66227    rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
66228  
66229    if (buf) {
66230      offset = offset || 0;
66231  
66232      for (let i = 0; i < 16; ++i) {
66233        buf[offset + i] = rnds[i];
66234      }
66235  
66236      return buf;
66237    }
66238  
66239    return unsafeStringify(rnds);
66240  }
66241  
66242  /* harmony default export */ const esm_browser_v4 = (v4_v4);
66243  ;// ./node_modules/@wordpress/block-library/build-module/footnotes/format.js
66244  /**
66245   * External dependencies
66246   */
66247  
66248  
66249  /**
66250   * WordPress dependencies
66251   */
66252  
66253  
66254  
66255  
66256  
66257  
66258  
66259  
66260  /**
66261   * Internal dependencies
66262   */
66263  
66264  
66265  const {
66266    usesContextKey
66267  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
66268  const formatName = 'core/footnote';
66269  const POST_CONTENT_BLOCK_NAME = 'core/post-content';
66270  const SYNCED_PATTERN_BLOCK_NAME = 'core/block';
66271  const format = {
66272    title: (0,external_wp_i18n_namespaceObject.__)('Footnote'),
66273    tagName: 'sup',
66274    className: 'fn',
66275    attributes: {
66276      'data-fn': 'data-fn'
66277    },
66278    interactive: true,
66279    contentEditable: false,
66280    [usesContextKey]: ['postType', 'postId'],
66281    edit: function Edit({
66282      value,
66283      onChange,
66284      isObjectActive,
66285      context: {
66286        postType,
66287        postId
66288      }
66289    }) {
66290      const registry = (0,external_wp_data_namespaceObject.useRegistry)();
66291      const {
66292        getSelectedBlockClientId,
66293        getBlocks,
66294        getBlockRootClientId,
66295        getBlockName,
66296        getBlockParentsByBlockName
66297      } = registry.select(external_wp_blockEditor_namespaceObject.store);
66298      const isFootnotesSupported = (0,external_wp_data_namespaceObject.useSelect)(select => {
66299        if (!select(external_wp_blocks_namespaceObject.store).getBlockType('core/footnotes')) {
66300          return false;
66301        }
66302        const allowedBlocks = select(external_wp_blockEditor_namespaceObject.store).getSettings().allowedBlockTypes;
66303        if (allowedBlocks === false || Array.isArray(allowedBlocks) && !allowedBlocks.includes('core/footnotes')) {
66304          return false;
66305        }
66306        const entityRecord = select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, postId);
66307        if ('string' !== typeof entityRecord?.meta?.footnotes) {
66308          return false;
66309        }
66310  
66311        // Checks if the selected block lives within a pattern.
66312        const {
66313          getBlockParentsByBlockName: _getBlockParentsByBlockName,
66314          getSelectedBlockClientId: _getSelectedBlockClientId
66315        } = select(external_wp_blockEditor_namespaceObject.store);
66316        const parentCoreBlocks = _getBlockParentsByBlockName(_getSelectedBlockClientId(), SYNCED_PATTERN_BLOCK_NAME);
66317        return !parentCoreBlocks || parentCoreBlocks.length === 0;
66318      }, [postType, postId]);
66319      const {
66320        selectionChange,
66321        insertBlock
66322      } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
66323      if (!isFootnotesSupported) {
66324        return null;
66325      }
66326      function onClick() {
66327        registry.batch(() => {
66328          let id;
66329          if (isObjectActive) {
66330            const object = value.replacements[value.start];
66331            id = object?.attributes?.['data-fn'];
66332          } else {
66333            id = esm_browser_v4();
66334            const newValue = (0,external_wp_richText_namespaceObject.insertObject)(value, {
66335              type: formatName,
66336              attributes: {
66337                'data-fn': id
66338              },
66339              innerHTML: `<a href="#$id}" id="$id}-link">*</a>`
66340            }, value.end, value.end);
66341            newValue.start = newValue.end - 1;
66342            onChange(newValue);
66343          }
66344          const selectedClientId = getSelectedBlockClientId();
66345  
66346          /*
66347           * Attempts to find a common parent post content block.
66348           * This allows for locating blocks within a page edited in the site editor.
66349           */
66350          const parentPostContent = getBlockParentsByBlockName(selectedClientId, POST_CONTENT_BLOCK_NAME);
66351  
66352          // When called with a post content block, getBlocks will return
66353          // the block with controlled inner blocks included.
66354          const blocks = parentPostContent.length ? getBlocks(parentPostContent[0]) : getBlocks();
66355  
66356          // BFS search to find the first footnote block.
66357          let fnBlock = null;
66358          {
66359            const queue = [...blocks];
66360            while (queue.length) {
66361              const block = queue.shift();
66362              if (block.name === 'core/footnotes') {
66363                fnBlock = block;
66364                break;
66365              }
66366              queue.push(...block.innerBlocks);
66367            }
66368          }
66369  
66370          // Maybe this should all also be moved to the entity provider.
66371          // When there is no footnotes block in the post, create one and
66372          // insert it at the bottom.
66373          if (!fnBlock) {
66374            let rootClientId = getBlockRootClientId(selectedClientId);
66375            while (rootClientId && getBlockName(rootClientId) !== POST_CONTENT_BLOCK_NAME) {
66376              rootClientId = getBlockRootClientId(rootClientId);
66377            }
66378            fnBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/footnotes');
66379            insertBlock(fnBlock, undefined, rootClientId);
66380          }
66381          selectionChange(fnBlock.clientId, id, 0, 0);
66382        });
66383      }
66384      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
66385        icon: format_list_numbered,
66386        title: (0,external_wp_i18n_namespaceObject.__)('Footnote'),
66387        onClick: onClick,
66388        isActive: isObjectActive
66389      });
66390    }
66391  };
66392  
66393  ;// ./node_modules/@wordpress/block-library/build-module/footnotes/index.js
66394  /**
66395   * WordPress dependencies
66396   */
66397  
66398  
66399  
66400  /**
66401   * Internal dependencies
66402   */
66403  
66404  
66405  const footnotes_metadata = {
66406    $schema: "https://schemas.wp.org/trunk/block.json",
66407    apiVersion: 3,
66408    name: "core/footnotes",
66409    title: "Footnotes",
66410    category: "text",
66411    description: "Display footnotes added to the page.",
66412    keywords: ["references"],
66413    textdomain: "default",
66414    usesContext: ["postId", "postType"],
66415    supports: {
66416      __experimentalBorder: {
66417        radius: true,
66418        color: true,
66419        width: true,
66420        style: true,
66421        __experimentalDefaultControls: {
66422          radius: false,
66423          color: false,
66424          width: false,
66425          style: false
66426        }
66427      },
66428      color: {
66429        background: true,
66430        link: true,
66431        text: true,
66432        __experimentalDefaultControls: {
66433          link: true,
66434          text: true
66435        }
66436      },
66437      html: false,
66438      multiple: false,
66439      reusable: false,
66440      inserter: false,
66441      spacing: {
66442        margin: true,
66443        padding: true,
66444        __experimentalDefaultControls: {
66445          margin: false,
66446          padding: false
66447        }
66448      },
66449      typography: {
66450        fontSize: true,
66451        lineHeight: true,
66452        __experimentalFontFamily: true,
66453        __experimentalTextDecoration: true,
66454        __experimentalFontStyle: true,
66455        __experimentalFontWeight: true,
66456        __experimentalLetterSpacing: true,
66457        __experimentalTextTransform: true,
66458        __experimentalWritingMode: true,
66459        __experimentalDefaultControls: {
66460          fontSize: true
66461        }
66462      },
66463      interactivity: {
66464        clientNavigation: true
66465      }
66466    },
66467    style: "wp-block-footnotes"
66468  };
66469  
66470  const {
66471    name: footnotes_name
66472  } = footnotes_metadata;
66473  
66474  const footnotes_settings = {
66475    icon: format_list_numbered,
66476    edit: FootnotesEdit
66477  };
66478  const footnotes_init = () => {
66479    (0,external_wp_richText_namespaceObject.registerFormatType)(formatName, format);
66480    initBlock({
66481      name: footnotes_name,
66482      metadata: footnotes_metadata,
66483      settings: footnotes_settings
66484    });
66485  };
66486  
66487  // EXTERNAL MODULE: ./node_modules/@wordpress/block-library/build-module/utils/is-block-metadata-experimental.js
66488  var is_block_metadata_experimental = __webpack_require__(2321);
66489  var is_block_metadata_experimental_default = /*#__PURE__*/__webpack_require__.n(is_block_metadata_experimental);
66490  ;// external ["wp","keyboardShortcuts"]
66491  const external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"];
66492  ;// ./node_modules/@wordpress/block-library/build-module/block-keyboard-shortcuts/index.js
66493  /**
66494   * WordPress dependencies
66495   */
66496  
66497  
66498  
66499  
66500  
66501  
66502  function BlockKeyboardShortcuts() {
66503    const {
66504      registerShortcut
66505    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
66506    const {
66507      replaceBlocks
66508    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
66509    const {
66510      getBlockName,
66511      getSelectedBlockClientId,
66512      getBlockAttributes
66513    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
66514    const handleTransformHeadingAndParagraph = (event, level) => {
66515      event.preventDefault();
66516      const currentClientId = getSelectedBlockClientId();
66517      if (currentClientId === null) {
66518        return;
66519      }
66520      const blockName = getBlockName(currentClientId);
66521      const isParagraph = blockName === 'core/paragraph';
66522      const isHeading = blockName === 'core/heading';
66523      if (!isParagraph && !isHeading) {
66524        return;
66525      }
66526      const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
66527      const attributes = getBlockAttributes(currentClientId);
66528  
66529      // Avoid unnecessary block transform when attempting to transform to
66530      // the same block type and/or same level.
66531      if (isParagraph && level === 0 || isHeading && attributes.level === level) {
66532        return;
66533      }
66534      const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
66535      const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
66536      replaceBlocks(currentClientId, (0,external_wp_blocks_namespaceObject.createBlock)(destinationBlockName, {
66537        level,
66538        content: attributes.content,
66539        ...{
66540          [destinationTextAlign]: attributes[textAlign]
66541        }
66542      }));
66543    };
66544    (0,external_wp_element_namespaceObject.useEffect)(() => {
66545      registerShortcut({
66546        name: 'core/block-editor/transform-heading-to-paragraph',
66547        category: 'block-library',
66548        description: (0,external_wp_i18n_namespaceObject.__)('Transform heading to paragraph.'),
66549        keyCombination: {
66550          modifier: 'access',
66551          character: '0'
66552        },
66553        aliases: [{
66554          modifier: 'access',
66555          character: '7'
66556        }]
66557      });
66558      [1, 2, 3, 4, 5, 6].forEach(level => {
66559        registerShortcut({
66560          name: `core/block-editor/transform-paragraph-to-heading-$level}`,
66561          category: 'block-library',
66562          description: (0,external_wp_i18n_namespaceObject.__)('Transform paragraph to heading.'),
66563          keyCombination: {
66564            modifier: 'access',
66565            character: `$level}`
66566          }
66567        });
66568      });
66569    }, [registerShortcut]);
66570    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
66571    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-1', event => handleTransformHeadingAndParagraph(event, 1));
66572    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-2', event => handleTransformHeadingAndParagraph(event, 2));
66573    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-3', event => handleTransformHeadingAndParagraph(event, 3));
66574    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-4', event => handleTransformHeadingAndParagraph(event, 4));
66575    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-5', event => handleTransformHeadingAndParagraph(event, 5));
66576    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-6', event => handleTransformHeadingAndParagraph(event, 6));
66577    return null;
66578  }
66579  /* harmony default export */ const block_keyboard_shortcuts = (BlockKeyboardShortcuts);
66580  
66581  ;// ./node_modules/@wordpress/block-library/build-module/private-apis.js
66582  /**
66583   * Internal dependencies
66584   */
66585  
66586  
66587  
66588  /**
66589   * @private
66590   */
66591  const privateApis = {};
66592  lock(privateApis, {
66593    BlockKeyboardShortcuts: block_keyboard_shortcuts
66594  });
66595  
66596  ;// ./node_modules/@wordpress/block-library/build-module/index.js
66597  /* wp:polyfill */
66598  /**
66599   * WordPress dependencies
66600   */
66601  
66602  
66603  /**
66604   * Internal dependencies
66605   */
66606  // When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks
66607  // are transformed by packages/block-library/src/index.js as follows:
66608  //    import * as experimentalBlock from './experimental-block'
66609  // becomes
66610  //    const experimentalBlock = null;
66611  // This enables webpack to eliminate the experimental blocks code from the
66612  // production build to make the final bundle smaller.
66613  //
66614  // See https://github.com/WordPress/gutenberg/pull/40655 for more context.
66615  
66616  
66617  
66618  
66619  
66620  
66621  
66622  
66623  
66624  
66625  
66626  
66627  
66628  
66629  
66630  
66631  
66632  
66633  
66634  
66635  
66636  
66637  
66638  
66639  
66640  
66641  
66642  
66643  
66644  
66645  
66646  
66647  
66648  
66649  
66650  
66651  
66652  
66653  
66654  
66655  
66656  
66657  
66658  
66659  
66660  
66661  
66662  
66663  
66664  
66665  
66666  
66667  
66668  
66669  
66670  
66671  
66672  
66673  
66674  
66675  
66676  
66677  
66678  
66679  
66680  
66681  
66682  
66683  
66684  
66685  
66686  
66687  
66688  
66689  
66690  
66691  
66692  
66693  
66694  
66695  
66696  
66697  
66698  
66699  
66700  
66701  
66702  
66703  
66704  
66705  
66706  
66707  
66708  
66709  
66710  
66711  
66712  
66713  
66714  
66715  
66716  
66717  
66718  
66719  /**
66720   * Function to get all the block-library blocks in an array
66721   */
66722  const getAllBlocks = () => {
66723    const blocks = [
66724    // Common blocks are grouped at the top to prioritize their display
66725    // in various contexts — like the inserter and auto-complete components.
66726    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,
66727    // Register all remaining core blocks.
66728    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,
66729    // theme blocks
66730    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, query_total_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];
66731    if (window?.__experimentalEnableFormBlocks) {
66732      blocks.push(build_module_form_namespaceObject);
66733      blocks.push(form_input_namespaceObject);
66734      blocks.push(form_submit_button_namespaceObject);
66735      blocks.push(form_submission_notification_namespaceObject);
66736    }
66737  
66738    // When in a WordPress context, conditionally
66739    // add the classic block and TinyMCE editor
66740    // under any of the following conditions:
66741    //   - the current post contains a classic block
66742    //   - the experiment to disable TinyMCE isn't active.
66743    //   - a query argument specifies that TinyMCE should be loaded
66744    if (window?.wp?.oldEditor && (window?.wp?.needsClassicBlock || !window?.__experimentalDisableTinymce || !!new URLSearchParams(window?.location?.search).get('requiresTinymce'))) {
66745      blocks.push(freeform_namespaceObject);
66746    }
66747    return blocks.filter(Boolean);
66748  };
66749  
66750  /**
66751   * Function to get all the core blocks in an array.
66752   *
66753   * @example
66754   * ```js
66755   * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
66756   *
66757   * const coreBlocks = __experimentalGetCoreBlocks();
66758   * ```
66759   */
66760  const __experimentalGetCoreBlocks = () => getAllBlocks().filter(({
66761    metadata
66762  }) => !is_block_metadata_experimental_default()(metadata));
66763  
66764  /**
66765   * Function to register core blocks provided by the block editor.
66766   *
66767   * @param {Array} blocks An optional array of the core blocks being registered.
66768   *
66769   * @example
66770   * ```js
66771   * import { registerCoreBlocks } from '@wordpress/block-library';
66772   *
66773   * registerCoreBlocks();
66774   * ```
66775   */
66776  const registerCoreBlocks = (blocks = __experimentalGetCoreBlocks()) => {
66777    blocks.forEach(({
66778      init
66779    }) => init());
66780    (0,external_wp_blocks_namespaceObject.setDefaultBlockName)(paragraph_name);
66781    if (window.wp && window.wp.oldEditor && blocks.some(({
66782      name
66783    }) => name === freeform_name)) {
66784      (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)(freeform_name);
66785    }
66786    (0,external_wp_blocks_namespaceObject.setUnregisteredTypeHandlerName)(missing_name);
66787    (0,external_wp_blocks_namespaceObject.setGroupingBlockName)(group_name);
66788  };
66789  
66790  /**
66791   * Function to register experimental core blocks depending on editor settings.
66792   *
66793   * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.
66794   * @example
66795   * ```js
66796   * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
66797   *
66798   * __experimentalRegisterExperimentalCoreBlocks( settings );
66799   * ```
66800   */
66801  const __experimentalRegisterExperimentalCoreBlocks =  false ? 0 : undefined;
66802  
66803  
66804  })();
66805  
66806  (window.wp = window.wp || {}).blockLibrary = __webpack_exports__;
66807  /******/ })()
66808  ;


Generated : Thu Apr 3 08:20:01 2025 Cross-referenced by PHPXref