[ 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  /**
16436   * Internal dependencies
16437   */
16438  
16439  
16440  
16441  const {
16442    withIgnoreIMEEvents
16443  } = unlock(external_wp_components_namespaceObject.privateApis);
16444  const details_edit_TEMPLATE = [['core/paragraph', {
16445    placeholder: (0,external_wp_i18n_namespaceObject.__)('Type / to add a hidden block')
16446  }]];
16447  function DetailsEdit({
16448    attributes,
16449    setAttributes,
16450    clientId
16451  }) {
16452    const {
16453      name,
16454      showContent,
16455      summary,
16456      allowedBlocks,
16457      placeholder
16458    } = attributes;
16459    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
16460    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
16461      template: details_edit_TEMPLATE,
16462      __experimentalCaptureToolbars: true,
16463      allowedBlocks
16464    });
16465    const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)(showContent);
16466    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
16467  
16468    // Check if the inner blocks are selected.
16469    const hasSelectedInnerBlock = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).hasSelectedInnerBlock(clientId, true), [clientId]);
16470    const handleSummaryKeyDown = event => {
16471      if (event.key === 'Enter' && !event.shiftKey) {
16472        setIsOpen(prevIsOpen => !prevIsOpen);
16473        event.preventDefault();
16474      }
16475    };
16476  
16477    // Prevent spacebar from toggling <details> while typing.
16478    const handleSummaryKeyUp = event => {
16479      if (event.key === ' ') {
16480        event.preventDefault();
16481      }
16482    };
16483    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
16484      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16485        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
16486          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
16487          resetAll: () => {
16488            setAttributes({
16489              showContent: false
16490            });
16491          },
16492          dropdownMenuProps: dropdownMenuProps,
16493          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
16494            isShownByDefault: true,
16495            label: (0,external_wp_i18n_namespaceObject.__)('Open by default'),
16496            hasValue: () => showContent,
16497            onDeselect: () => {
16498              setAttributes({
16499                showContent: false
16500              });
16501            },
16502            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
16503              __nextHasNoMarginBottom: true,
16504              label: (0,external_wp_i18n_namespaceObject.__)('Open by default'),
16505              checked: showContent,
16506              onChange: () => setAttributes({
16507                showContent: !showContent
16508              })
16509            })
16510          })
16511        })
16512      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16513        group: "advanced",
16514        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
16515          __next40pxDefaultSize: true,
16516          __nextHasNoMarginBottom: true,
16517          label: (0,external_wp_i18n_namespaceObject.__)('Name attribute'),
16518          value: name || '',
16519          onChange: newName => setAttributes({
16520            name: newName
16521          }),
16522          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.')
16523        })
16524      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("details", {
16525        ...innerBlocksProps,
16526        open: isOpen || hasSelectedInnerBlock,
16527        onToggle: event => setIsOpen(event.target.open),
16528        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("summary", {
16529          onKeyDown: withIgnoreIMEEvents(handleSummaryKeyDown),
16530          onKeyUp: handleSummaryKeyUp,
16531          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
16532            identifier: "summary",
16533            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Write summary. Press Enter to expand or collapse the details.'),
16534            placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Write summary…'),
16535            withoutInteractiveFormatting: true,
16536            value: summary,
16537            onChange: newSummary => setAttributes({
16538              summary: newSummary
16539            })
16540          })
16541        }), innerBlocksProps.children]
16542      })]
16543    });
16544  }
16545  /* harmony default export */ const details_edit = (DetailsEdit);
16546  
16547  ;// ./node_modules/@wordpress/block-library/build-module/details/save.js
16548  /**
16549   * WordPress dependencies
16550   */
16551  
16552  
16553  function details_save_save({
16554    attributes
16555  }) {
16556    const {
16557      name,
16558      showContent
16559    } = attributes;
16560    const summary = attributes.summary ? attributes.summary : 'Details';
16561    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
16562    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("details", {
16563      ...blockProps,
16564      name: name || undefined,
16565      open: showContent,
16566      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("summary", {
16567        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
16568          value: summary
16569        })
16570      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})]
16571    });
16572  }
16573  
16574  ;// ./node_modules/@wordpress/block-library/build-module/details/transforms.js
16575  /**
16576   * WordPress dependencies
16577   */
16578  
16579  /* harmony default export */ const details_transforms = ({
16580    from: [{
16581      type: 'block',
16582      isMultiBlock: true,
16583      blocks: ['*'],
16584      isMatch({}, blocks) {
16585        return !(blocks.length === 1 && blocks[0].name === 'core/details');
16586      },
16587      __experimentalConvert(blocks) {
16588        return (0,external_wp_blocks_namespaceObject.createBlock)('core/details', {}, blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block)));
16589      }
16590    }]
16591  });
16592  
16593  ;// ./node_modules/@wordpress/block-library/build-module/details/index.js
16594  /**
16595   * WordPress dependencies
16596   */
16597  
16598  
16599  
16600  /**
16601   * Internal dependencies
16602   */
16603  
16604  const details_metadata = {
16605    $schema: "https://schemas.wp.org/trunk/block.json",
16606    apiVersion: 3,
16607    name: "core/details",
16608    title: "Details",
16609    category: "text",
16610    description: "Hide and show additional content.",
16611    keywords: ["accordion", "summary", "toggle", "disclosure"],
16612    textdomain: "default",
16613    attributes: {
16614      showContent: {
16615        type: "boolean",
16616        "default": false
16617      },
16618      summary: {
16619        type: "rich-text",
16620        source: "rich-text",
16621        selector: "summary"
16622      },
16623      name: {
16624        type: "string",
16625        source: "attribute",
16626        attribute: "name",
16627        selector: ".wp-block-details"
16628      },
16629      allowedBlocks: {
16630        type: "array"
16631      },
16632      placeholder: {
16633        type: "string"
16634      }
16635    },
16636    supports: {
16637      __experimentalOnEnter: true,
16638      align: ["wide", "full"],
16639      anchor: true,
16640      color: {
16641        gradients: true,
16642        link: true,
16643        __experimentalDefaultControls: {
16644          background: true,
16645          text: true
16646        }
16647      },
16648      __experimentalBorder: {
16649        color: true,
16650        width: true,
16651        style: true
16652      },
16653      html: false,
16654      spacing: {
16655        margin: true,
16656        padding: true,
16657        blockGap: true,
16658        __experimentalDefaultControls: {
16659          margin: false,
16660          padding: false
16661        }
16662      },
16663      typography: {
16664        fontSize: true,
16665        lineHeight: true,
16666        __experimentalFontFamily: true,
16667        __experimentalFontWeight: true,
16668        __experimentalFontStyle: true,
16669        __experimentalTextTransform: true,
16670        __experimentalTextDecoration: true,
16671        __experimentalLetterSpacing: true,
16672        __experimentalDefaultControls: {
16673          fontSize: true
16674        }
16675      },
16676      layout: {
16677        allowEditing: false
16678      },
16679      interactivity: {
16680        clientNavigation: true
16681      }
16682    },
16683    editorStyle: "wp-block-details-editor",
16684    style: "wp-block-details"
16685  };
16686  
16687  
16688  
16689  const {
16690    name: details_name
16691  } = details_metadata;
16692  
16693  const details_settings = {
16694    icon: library_details,
16695    example: {
16696      attributes: {
16697        summary: 'La Mancha',
16698        showContent: true
16699      },
16700      innerBlocks: [{
16701        name: 'core/paragraph',
16702        attributes: {
16703          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.')
16704        }
16705      }]
16706    },
16707    __experimentalLabel(attributes, {
16708      context
16709    }) {
16710      const {
16711        summary
16712      } = attributes;
16713      const customName = attributes?.metadata?.name;
16714      const hasSummary = summary?.trim().length > 0;
16715  
16716      // In the list view, use the block's summary as the label.
16717      // If the summary is empty, fall back to the default label.
16718      if (context === 'list-view' && (customName || hasSummary)) {
16719        return customName || summary;
16720      }
16721      if (context === 'accessibility') {
16722        return !hasSummary ? (0,external_wp_i18n_namespaceObject.__)('Details. Empty.') : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: accessibility text; summary title. */
16723        (0,external_wp_i18n_namespaceObject.__)('Details. %s'), summary);
16724      }
16725    },
16726    save: details_save_save,
16727    edit: details_edit,
16728    transforms: details_transforms
16729  };
16730  const details_init = () => initBlock({
16731    name: details_name,
16732    metadata: details_metadata,
16733    settings: details_settings
16734  });
16735  
16736  ;// ./node_modules/@wordpress/icons/build-module/library/pencil.js
16737  /**
16738   * WordPress dependencies
16739   */
16740  
16741  
16742  const pencil = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
16743    xmlns: "http://www.w3.org/2000/svg",
16744    viewBox: "0 0 24 24",
16745    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
16746      d: "m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"
16747    })
16748  });
16749  /* harmony default export */ const library_pencil = (pencil);
16750  
16751  ;// ./node_modules/@wordpress/icons/build-module/library/edit.js
16752  /**
16753   * Internal dependencies
16754   */
16755  
16756  
16757  /* harmony default export */ const library_edit = (library_pencil);
16758  
16759  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js
16760  /**
16761   * WordPress dependencies
16762   */
16763  
16764  
16765  
16766  
16767  
16768  function getResponsiveHelp(checked) {
16769    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.');
16770  }
16771  const EmbedControls = ({
16772    blockSupportsResponsive,
16773    showEditButton,
16774    themeSupportsResponsive,
16775    allowResponsive,
16776    toggleResponsive,
16777    switchBackToURLInput
16778  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
16779    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
16780      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
16781        children: showEditButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
16782          className: "components-toolbar__control",
16783          label: (0,external_wp_i18n_namespaceObject.__)('Edit URL'),
16784          icon: library_edit,
16785          onClick: switchBackToURLInput
16786        })
16787      })
16788    }), themeSupportsResponsive && blockSupportsResponsive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
16789      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
16790        title: (0,external_wp_i18n_namespaceObject.__)('Media settings'),
16791        className: "blocks-responsive",
16792        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
16793          __nextHasNoMarginBottom: true,
16794          label: (0,external_wp_i18n_namespaceObject.__)('Resize for smaller devices'),
16795          checked: allowResponsive,
16796          help: getResponsiveHelp,
16797          onChange: toggleResponsive
16798        })
16799      })
16800    })]
16801  });
16802  /* harmony default export */ const embed_controls = (EmbedControls);
16803  
16804  ;// ./node_modules/@wordpress/block-library/build-module/embed/icons.js
16805  /**
16806   * WordPress dependencies
16807   */
16808  
16809  
16810  const embedContentIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16811    viewBox: "0 0 24 24",
16812    xmlns: "http://www.w3.org/2000/svg",
16813    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16814      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"
16815    })
16816  });
16817  const embedAudioIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16818    viewBox: "0 0 24 24",
16819    xmlns: "http://www.w3.org/2000/svg",
16820    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16821      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"
16822    })
16823  });
16824  const embedPhotoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16825    viewBox: "0 0 24 24",
16826    xmlns: "http://www.w3.org/2000/svg",
16827    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16828      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"
16829    })
16830  });
16831  const embedVideoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16832    viewBox: "0 0 24 24",
16833    xmlns: "http://www.w3.org/2000/svg",
16834    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16835      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"
16836    })
16837  });
16838  const embedTwitterIcon = {
16839    foreground: '#1da1f2',
16840    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16841      xmlns: "http://www.w3.org/2000/svg",
16842      viewBox: "0 0 24 24",
16843      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16844        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16845          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"
16846        })
16847      })
16848    })
16849  };
16850  const embedYouTubeIcon = {
16851    foreground: '#ff0000',
16852    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16853      viewBox: "0 0 24 24",
16854      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16855        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"
16856      })
16857    })
16858  };
16859  const embedFacebookIcon = {
16860    foreground: '#3b5998',
16861    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16862      viewBox: "0 0 24 24",
16863      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16864        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"
16865      })
16866    })
16867  };
16868  const embedInstagramIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16869    viewBox: "0 0 24 24",
16870    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16871      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16872        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"
16873      })
16874    })
16875  });
16876  const embedWordPressIcon = {
16877    foreground: '#0073AA',
16878    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16879      viewBox: "0 0 24 24",
16880      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16881        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16882          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"
16883        })
16884      })
16885    })
16886  };
16887  const embedSpotifyIcon = {
16888    foreground: '#1db954',
16889    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16890      viewBox: "0 0 24 24",
16891      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16892        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"
16893      })
16894    })
16895  };
16896  const embedFlickrIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16897    viewBox: "0 0 24 24",
16898    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16899      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"
16900    })
16901  });
16902  const embedVimeoIcon = {
16903    foreground: '#1ab7ea',
16904    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16905      xmlns: "http://www.w3.org/2000/svg",
16906      viewBox: "0 0 24 24",
16907      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.G, {
16908        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16909          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"
16910        })
16911      })
16912    })
16913  };
16914  const embedRedditIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16915    viewBox: "0 0 24 24",
16916    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16917      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"
16918    })
16919  });
16920  const embedTumblrIcon = {
16921    foreground: '#35465c',
16922    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16923      viewBox: "0 0 24 24",
16924      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16925        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"
16926      })
16927    })
16928  };
16929  const embedAmazonIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16930    viewBox: "0 0 24 24",
16931    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16932      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"
16933    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16934      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"
16935    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16936      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"
16937    })]
16938  });
16939  const embedAnimotoIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16940    viewBox: "0 0 24 24",
16941    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16942      d: "m.0206909 21 19.8160091-13.07806 3.5831 6.20826z",
16943      fill: "#4bc7ee"
16944    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16945      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",
16946      fill: "#d4cdcb"
16947    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16948      d: "m.0206909 21 15.2439091-16.38571 4.3029 7.32271z",
16949      fill: "#c3d82e"
16950    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16951      d: "m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z",
16952      fill: "#e4ecb0"
16953    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16954      d: "m.0206909 21 19.5468091-9.063 1.6621 2.8344z",
16955      fill: "#209dbd"
16956    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16957      d: "m.0206909 21 17.9209091-11.82623 1.6259 2.76323z",
16958      fill: "#7cb3c9"
16959    })]
16960  });
16961  const embedDailymotionIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16962    viewBox: "0 0 24 24",
16963    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16964      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",
16965      fill: "#333436"
16966    })
16967  });
16968  const embedPinterestIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16969    width: "24",
16970    height: "24",
16971    viewBox: "0 0 24 24",
16972    version: "1.1",
16973    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16974      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"
16975    })
16976  });
16977  const embedWolframIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
16978    viewBox: "0 0 44 44",
16979    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16980      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"
16981    })
16982  });
16983  const embedPocketCastsIcon = {
16984    foreground: '#f43e37',
16985    src: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
16986      width: "24",
16987      height: "24",
16988      viewBox: "0 0 24 24",
16989      fill: "none",
16990      xmlns: "http://www.w3.org/2000/svg",
16991      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16992        fillRule: "evenodd",
16993        clipRule: "evenodd",
16994        d: "M24,12A12,12,0,1,1,12,0,12,12,0,0,1,24,12Z"
16995      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
16996        fillRule: "evenodd",
16997        clipRule: "evenodd",
16998        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",
16999        fill: "#fff"
17000      })]
17001    })
17002  };
17003  const embedBlueskyIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
17004    viewBox: "0 0 24 24",
17005    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
17006      fill: "#0a7aff",
17007      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"
17008    })
17009  });
17010  
17011  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js
17012  /**
17013   * WordPress dependencies
17014   */
17015  
17016  
17017  const EmbedLoading = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17018    className: "wp-block-embed is-loading",
17019    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
17020  });
17021  /* harmony default export */ const embed_loading = (EmbedLoading);
17022  
17023  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js
17024  /**
17025   * WordPress dependencies
17026   */
17027  
17028  
17029  
17030  
17031  const EmbedPlaceholder = ({
17032    icon,
17033    label,
17034    value,
17035    onSubmit,
17036    onChange,
17037    cannotEmbed,
17038    fallback,
17039    tryAgain
17040  }) => {
17041    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
17042      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
17043        icon: icon,
17044        showColors: true
17045      }),
17046      label: label,
17047      className: "wp-block-embed",
17048      instructions: (0,external_wp_i18n_namespaceObject.__)('Paste a link to the content you want to display on your site.'),
17049      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
17050        onSubmit: onSubmit,
17051        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
17052          __next40pxDefaultSize: true,
17053          type: "url",
17054          value: value || '',
17055          className: "wp-block-embed__placeholder-input",
17056          label: label,
17057          hideLabelFromVision: true,
17058          placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL to embed here…'),
17059          onChange: onChange
17060        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
17061          __next40pxDefaultSize: true,
17062          variant: "primary",
17063          type: "submit",
17064          children: (0,external_wp_i18n_namespaceObject._x)('Embed', 'button label')
17065        })]
17066      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17067        className: "wp-block-embed__learn-more",
17068        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
17069          href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/embeds/'),
17070          children: (0,external_wp_i18n_namespaceObject.__)('Learn more about embeds')
17071        })
17072      }), cannotEmbed && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
17073        spacing: 3,
17074        className: "components-placeholder__error",
17075        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17076          className: "components-placeholder__instructions",
17077          children: (0,external_wp_i18n_namespaceObject.__)('Sorry, this content could not be embedded.')
17078        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
17079          expanded: false,
17080          spacing: 3,
17081          justify: "flex-start",
17082          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
17083            __next40pxDefaultSize: true,
17084            variant: "secondary",
17085            onClick: tryAgain,
17086            children: (0,external_wp_i18n_namespaceObject._x)('Try again', 'button label')
17087          }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
17088            __next40pxDefaultSize: true,
17089            variant: "secondary",
17090            onClick: fallback,
17091            children: (0,external_wp_i18n_namespaceObject._x)('Convert to link', 'button label')
17092          })]
17093        })]
17094      })]
17095    });
17096  };
17097  /* harmony default export */ const embed_placeholder = (EmbedPlaceholder);
17098  
17099  ;// ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js
17100  /**
17101   * WordPress dependencies
17102   */
17103  
17104  
17105  
17106  /** @typedef {import('react').SyntheticEvent} SyntheticEvent */
17107  
17108  const attributeMap = {
17109    class: 'className',
17110    frameborder: 'frameBorder',
17111    marginheight: 'marginHeight',
17112    marginwidth: 'marginWidth'
17113  };
17114  function WpEmbedPreview({
17115    html
17116  }) {
17117    const ref = (0,external_wp_element_namespaceObject.useRef)();
17118    const props = (0,external_wp_element_namespaceObject.useMemo)(() => {
17119      const doc = new window.DOMParser().parseFromString(html, 'text/html');
17120      const iframe = doc.querySelector('iframe');
17121      const iframeProps = {};
17122      if (!iframe) {
17123        return iframeProps;
17124      }
17125      Array.from(iframe.attributes).forEach(({
17126        name,
17127        value
17128      }) => {
17129        if (name === 'style') {
17130          return;
17131        }
17132        iframeProps[attributeMap[name] || name] = value;
17133      });
17134      return iframeProps;
17135    }, [html]);
17136    (0,external_wp_element_namespaceObject.useEffect)(() => {
17137      const {
17138        ownerDocument
17139      } = ref.current;
17140      const {
17141        defaultView
17142      } = ownerDocument;
17143  
17144      /**
17145       * Checks for WordPress embed events signaling the height change when
17146       * iframe content loads or iframe's window is resized.  The event is
17147       * sent from WordPress core via the window.postMessage API.
17148       *
17149       * References:
17150       * window.postMessage:
17151       * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
17152       * WordPress core embed-template on load:
17153       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143
17154       * WordPress core embed-template on resize:
17155       * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187
17156       *
17157       * @param {MessageEvent} event Message event.
17158       */
17159      function resizeWPembeds({
17160        data: {
17161          secret,
17162          message,
17163          value
17164        } = {}
17165      }) {
17166        if (message !== 'height' || secret !== props['data-secret']) {
17167          return;
17168        }
17169        ref.current.height = value;
17170      }
17171      defaultView.addEventListener('message', resizeWPembeds);
17172      return () => {
17173        defaultView.removeEventListener('message', resizeWPembeds);
17174      };
17175    }, []);
17176    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17177      className: "wp-block-embed__wrapper",
17178      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("iframe", {
17179        ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([ref, (0,external_wp_compose_namespaceObject.useFocusableIframe)()]),
17180        title: props.title,
17181        ...props
17182      })
17183    });
17184  }
17185  
17186  ;// ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js
17187  /**
17188   * Internal dependencies
17189   */
17190  
17191  
17192  /**
17193   * External dependencies
17194   */
17195  
17196  
17197  /**
17198   * WordPress dependencies
17199   */
17200  
17201  
17202  
17203  
17204  
17205  
17206  /**
17207   * Internal dependencies
17208   */
17209  
17210  
17211  function EmbedPreview({
17212    preview,
17213    previewable,
17214    url,
17215    type,
17216    isSelected,
17217    className,
17218    icon,
17219    label
17220  }) {
17221    const [interactive, setInteractive] = (0,external_wp_element_namespaceObject.useState)(false);
17222    if (!isSelected && interactive) {
17223      // We only want to change this when the block is not selected, because changing it when
17224      // the block becomes selected makes the overlap disappear too early. Hiding the overlay
17225      // happens on mouseup when the overlay is clicked.
17226      setInteractive(false);
17227    }
17228    const hideOverlay = () => {
17229      // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop
17230      // changing, because that happens on mouse down, and the overlay immediately disappears,
17231      // and the mouse event can end up in the preview content. We can't use onClick on
17232      // the overlay to hide it either, because then the editor misses the mouseup event, and
17233      // thinks we're multi-selecting blocks.
17234      setInteractive(true);
17235    };
17236    const {
17237      scripts
17238    } = preview;
17239    const html = 'photo' === type ? getPhotoHtml(preview) : preview.html;
17240    const embedSourceUrl = (0,external_wp_url_namespaceObject.getAuthority)(url);
17241    const iframeTitle = (0,external_wp_i18n_namespaceObject.sprintf)(
17242    // translators: %s: host providing embed content e.g: www.youtube.com
17243    (0,external_wp_i18n_namespaceObject.__)('Embedded content from %s'), embedSourceUrl);
17244    const sandboxClassnames = dist_clsx(type, className, 'wp-block-embed__wrapper');
17245  
17246    // Disabled because the overlay div doesn't actually have a role or functionality
17247    // as far as the user is concerned. We're just catching the first click so that
17248    // the block can be selected without interacting with the embed preview that the overlay covers.
17249    /* eslint-disable jsx-a11y/no-static-element-interactions */
17250    const embedWrapper = 'wp-embed' === type ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WpEmbedPreview, {
17251      html: html
17252    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
17253      className: "wp-block-embed__wrapper",
17254      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SandBox, {
17255        html: html,
17256        scripts: scripts,
17257        title: iframeTitle,
17258        type: sandboxClassnames,
17259        onFocus: hideOverlay
17260      }), !interactive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17261        className: "block-library-embed__interactive-overlay",
17262        onMouseUp: hideOverlay
17263      })]
17264    });
17265    /* eslint-enable jsx-a11y/no-static-element-interactions */
17266  
17267    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17268      children: previewable ? embedWrapper : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
17269        icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
17270          icon: icon,
17271          showColors: true
17272        }),
17273        label: label,
17274        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
17275          className: "components-placeholder__error",
17276          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
17277            href: url,
17278            children: url
17279          })
17280        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
17281          className: "components-placeholder__error",
17282          children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: host providing embed content e.g: www.youtube.com */
17283          (0,external_wp_i18n_namespaceObject.__)("Embedded content from %s can't be previewed in the editor."), embedSourceUrl)
17284        })]
17285      })
17286    });
17287  }
17288  
17289  ;// ./node_modules/@wordpress/block-library/build-module/embed/edit.js
17290  /* wp:polyfill */
17291  /**
17292   * Internal dependencies
17293   */
17294  
17295  
17296  
17297  
17298  
17299  
17300  
17301  /**
17302   * External dependencies
17303   */
17304  
17305  
17306  /**
17307   * WordPress dependencies
17308   */
17309  
17310  
17311  
17312  
17313  
17314  
17315  
17316  
17317  
17318  const EmbedEdit = props => {
17319    const {
17320      attributes: {
17321        providerNameSlug,
17322        previewable,
17323        responsive,
17324        url: attributesUrl
17325      },
17326      attributes,
17327      isSelected,
17328      onReplace,
17329      setAttributes,
17330      insertBlocksAfter,
17331      onFocus
17332    } = props;
17333    const defaultEmbedInfo = {
17334      title: (0,external_wp_i18n_namespaceObject._x)('Embed', 'block title'),
17335      icon: embedContentIcon
17336    };
17337    const {
17338      icon,
17339      title
17340    } = getEmbedInfoByProvider(providerNameSlug) || defaultEmbedInfo;
17341    const [url, setURL] = (0,external_wp_element_namespaceObject.useState)(attributesUrl);
17342    const [isEditingURL, setIsEditingURL] = (0,external_wp_element_namespaceObject.useState)(false);
17343    const {
17344      invalidateResolution
17345    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
17346    const {
17347      preview,
17348      fetching,
17349      themeSupportsResponsive,
17350      cannotEmbed,
17351      hasResolved
17352    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
17353      const {
17354        getEmbedPreview,
17355        isPreviewEmbedFallback,
17356        isRequestingEmbedPreview,
17357        getThemeSupports,
17358        hasFinishedResolution
17359      } = select(external_wp_coreData_namespaceObject.store);
17360      if (!attributesUrl) {
17361        return {
17362          fetching: false,
17363          cannotEmbed: false
17364        };
17365      }
17366      const embedPreview = getEmbedPreview(attributesUrl);
17367      const previewIsFallback = isPreviewEmbedFallback(attributesUrl);
17368  
17369      // The external oEmbed provider does not exist. We got no type info and no html.
17370      const badEmbedProvider = embedPreview?.html === false && embedPreview?.type === undefined;
17371      // Some WordPress URLs that can't be embedded will cause the API to return
17372      // a valid JSON response with no HTML and `data.status` set to 404, rather
17373      // than generating a fallback response as other embeds do.
17374      const wordpressCantEmbed = embedPreview?.data?.status === 404;
17375      const validPreview = !!embedPreview && !badEmbedProvider && !wordpressCantEmbed;
17376      return {
17377        preview: validPreview ? embedPreview : undefined,
17378        fetching: isRequestingEmbedPreview(attributesUrl),
17379        themeSupportsResponsive: getThemeSupports()['responsive-embeds'],
17380        cannotEmbed: !validPreview || previewIsFallback,
17381        hasResolved: hasFinishedResolution('getEmbedPreview', [attributesUrl])
17382      };
17383    }, [attributesUrl]);
17384  
17385    /**
17386     * Returns the attributes derived from the preview, merged with the current attributes.
17387     *
17388     * @return {Object} Merged attributes.
17389     */
17390    const getMergedAttributes = () => getMergedAttributesWithPreview(attributes, preview, title, responsive);
17391    const toggleResponsive = () => {
17392      const {
17393        allowResponsive,
17394        className
17395      } = attributes;
17396      const {
17397        html
17398      } = preview;
17399      const newAllowResponsive = !allowResponsive;
17400      setAttributes({
17401        allowResponsive: newAllowResponsive,
17402        className: getClassNames(html, className, responsive && newAllowResponsive)
17403      });
17404    };
17405    (0,external_wp_element_namespaceObject.useEffect)(() => {
17406      if (preview?.html || !cannotEmbed || !hasResolved) {
17407        return;
17408      }
17409  
17410      // At this stage, we're not fetching the preview and know it can't be embedded,
17411      // so try removing any trailing slash, and resubmit.
17412      const newURL = attributesUrl.replace(/\/$/, '');
17413      setURL(newURL);
17414      setIsEditingURL(false);
17415      setAttributes({
17416        url: newURL
17417      });
17418    }, [preview?.html, attributesUrl, cannotEmbed, hasResolved, setAttributes]);
17419  
17420    // Try a different provider in case the embed url is not supported.
17421    (0,external_wp_element_namespaceObject.useEffect)(() => {
17422      if (!cannotEmbed || fetching || !url) {
17423        return;
17424      }
17425  
17426      // Until X provider is supported in WordPress, as a workaround we use Twitter provider.
17427      if ((0,external_wp_url_namespaceObject.getAuthority)(url) === 'x.com') {
17428        const newURL = new URL(url);
17429        newURL.host = 'twitter.com';
17430        setAttributes({
17431          url: newURL.toString()
17432        });
17433      }
17434    }, [url, cannotEmbed, fetching, setAttributes]);
17435  
17436    // Handle incoming preview.
17437    (0,external_wp_element_namespaceObject.useEffect)(() => {
17438      if (preview && !isEditingURL) {
17439        // When obtaining an incoming preview,
17440        // we set the attributes derived from the preview data.
17441        const mergedAttributes = getMergedAttributes();
17442        setAttributes(mergedAttributes);
17443        if (onReplace) {
17444          const upgradedBlock = createUpgradedEmbedBlock(props, mergedAttributes);
17445          if (upgradedBlock) {
17446            onReplace(upgradedBlock);
17447          }
17448        }
17449      }
17450    }, [preview, isEditingURL]);
17451    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
17452    if (fetching) {
17453      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
17454        ...blockProps,
17455        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_loading, {})
17456      });
17457    }
17458  
17459    // translators: %s: type of embed e.g: "YouTube", "Twitter", etc. "Embed" is used when no specific type exists
17460    const label = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('%s URL'), title);
17461  
17462    // No preview, or we can't embed the current URL, or we've clicked the edit button.
17463    const showEmbedPlaceholder = !preview || cannotEmbed || isEditingURL;
17464    if (showEmbedPlaceholder) {
17465      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
17466        ...blockProps,
17467        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_placeholder, {
17468          icon: icon,
17469          label: label,
17470          onFocus: onFocus,
17471          onSubmit: event => {
17472            if (event) {
17473              event.preventDefault();
17474            }
17475  
17476            // If the embed URL was changed, we need to reset the aspect ratio class.
17477            // To do this we have to remove the existing ratio class so it can be recalculated.
17478            const blockClass = removeAspectRatioClasses(attributes.className);
17479            setIsEditingURL(false);
17480            setAttributes({
17481              url,
17482              className: blockClass
17483            });
17484          },
17485          value: url,
17486          cannotEmbed: cannotEmbed,
17487          onChange: value => setURL(value),
17488          fallback: () => fallback(url, onReplace),
17489          tryAgain: () => {
17490            invalidateResolution('getEmbedPreview', [url]);
17491          }
17492        })
17493      });
17494    }
17495  
17496    // Even though we set attributes that get derived from the preview,
17497    // we don't access them directly because for the initial render,
17498    // the `setAttributes` call will not have taken effect. If we're
17499    // rendering responsive content, setting the responsive classes
17500    // after the preview has been rendered can result in unwanted
17501    // clipping or scrollbars. The `getAttributesFromPreview` function
17502    // that `getMergedAttributes` uses is memoized so that we're not
17503    // calculating them on every render.
17504    const {
17505      caption,
17506      type,
17507      allowResponsive,
17508      className: classFromPreview
17509    } = getMergedAttributes();
17510    const className = dist_clsx(classFromPreview, props.className);
17511    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
17512      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(embed_controls, {
17513        showEditButton: preview && !cannotEmbed,
17514        themeSupportsResponsive: themeSupportsResponsive,
17515        blockSupportsResponsive: responsive,
17516        allowResponsive: allowResponsive,
17517        toggleResponsive: toggleResponsive,
17518        switchBackToURLInput: () => setIsEditingURL(true)
17519      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
17520        ...blockProps,
17521        className: dist_clsx(blockProps.className, className, {
17522          [`is-type-$type}`]: type,
17523          [`is-provider-$providerNameSlug}`]: providerNameSlug,
17524          [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
17525        }),
17526        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EmbedPreview, {
17527          preview: preview,
17528          previewable: previewable,
17529          className: className,
17530          url: url,
17531          type: type,
17532          caption: caption,
17533          onCaptionChange: value => setAttributes({
17534            caption: value
17535          }),
17536          isSelected: isSelected,
17537          icon: icon,
17538          label: label,
17539          insertBlocksAfter: insertBlocksAfter,
17540          attributes: attributes,
17541          setAttributes: setAttributes
17542        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
17543          attributes: attributes,
17544          setAttributes: setAttributes,
17545          isSelected: isSelected,
17546          insertBlocksAfter: insertBlocksAfter,
17547          label: (0,external_wp_i18n_namespaceObject.__)('Embed caption text'),
17548          showToolbarButton: isSelected
17549        })]
17550      })]
17551    });
17552  };
17553  /* harmony default export */ const embed_edit = (EmbedEdit);
17554  
17555  ;// ./node_modules/@wordpress/block-library/build-module/embed/save.js
17556  /**
17557   * External dependencies
17558   */
17559  
17560  
17561  /**
17562   * WordPress dependencies
17563   */
17564  
17565  
17566  function embed_save_save({
17567    attributes
17568  }) {
17569    const {
17570      url,
17571      caption,
17572      type,
17573      providerNameSlug
17574    } = attributes;
17575    if (!url) {
17576      return null;
17577    }
17578    const className = dist_clsx('wp-block-embed', {
17579      [`is-type-$type}`]: type,
17580      [`is-provider-$providerNameSlug}`]: providerNameSlug,
17581      [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
17582    });
17583    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
17584      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
17585        className
17586      }),
17587      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
17588        className: "wp-block-embed__wrapper",
17589        children: `\n$url}\n` /* URL needs to be on its own line. */
17590      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
17591        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
17592        tagName: "figcaption",
17593        value: caption
17594      })]
17595    });
17596  }
17597  
17598  ;// ./node_modules/@wordpress/block-library/build-module/embed/transforms.js
17599  /**
17600   * WordPress dependencies
17601   */
17602  
17603  
17604  /**
17605   * Internal dependencies
17606   */
17607  const transforms_metadata = {
17608    $schema: "https://schemas.wp.org/trunk/block.json",
17609    apiVersion: 3,
17610    name: "core/embed",
17611    title: "Embed",
17612    category: "embed",
17613    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
17614    textdomain: "default",
17615    attributes: {
17616      url: {
17617        type: "string",
17618        role: "content"
17619      },
17620      caption: {
17621        type: "rich-text",
17622        source: "rich-text",
17623        selector: "figcaption",
17624        role: "content"
17625      },
17626      type: {
17627        type: "string",
17628        role: "content"
17629      },
17630      providerNameSlug: {
17631        type: "string",
17632        role: "content"
17633      },
17634      allowResponsive: {
17635        type: "boolean",
17636        "default": true
17637      },
17638      responsive: {
17639        type: "boolean",
17640        "default": false,
17641        role: "content"
17642      },
17643      previewable: {
17644        type: "boolean",
17645        "default": true,
17646        role: "content"
17647      }
17648    },
17649    supports: {
17650      align: true,
17651      spacing: {
17652        margin: true
17653      },
17654      interactivity: {
17655        clientNavigation: true
17656      }
17657    },
17658    editorStyle: "wp-block-embed-editor",
17659    style: "wp-block-embed"
17660  };
17661  
17662  const {
17663    name: EMBED_BLOCK
17664  } = transforms_metadata;
17665  
17666  /**
17667   * Default transforms for generic embeds.
17668   */
17669  const embed_transforms_transforms = {
17670    from: [{
17671      type: 'raw',
17672      isMatch: node => node.nodeName === 'P' && /^\s*(https?:\/\/\S+)\s*$/i.test(node.textContent) && node.textContent?.match(/https/gi)?.length === 1,
17673      transform: node => {
17674        return (0,external_wp_blocks_namespaceObject.createBlock)(EMBED_BLOCK, {
17675          url: node.textContent.trim()
17676        });
17677      }
17678    }],
17679    to: [{
17680      type: 'block',
17681      blocks: ['core/paragraph'],
17682      isMatch: ({
17683        url
17684      }) => !!url,
17685      transform: ({
17686        url,
17687        caption,
17688        className
17689      }) => {
17690        let value = `<a href="$url}">$url}</a>`;
17691        if (caption?.trim()) {
17692          value += `<br />$caption}`;
17693        }
17694        return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
17695          content: value,
17696          className: removeAspectRatioClasses(className)
17697        });
17698      }
17699    }]
17700  };
17701  /* harmony default export */ const embed_transforms = (embed_transforms_transforms);
17702  
17703  ;// ./node_modules/@wordpress/block-library/build-module/embed/variations.js
17704  /**
17705   * WordPress dependencies
17706   */
17707  
17708  
17709  /**
17710   * Internal dependencies
17711   */
17712  
17713  
17714  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
17715  
17716  function getTitle(providerName) {
17717    return (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: provider name */
17718    (0,external_wp_i18n_namespaceObject.__)('%s Embed'), providerName);
17719  }
17720  
17721  /**
17722   * The embed provider services.
17723   *
17724   * @type {WPBlockVariation[]}
17725   */
17726  const embed_variations_variations = [{
17727    name: 'twitter',
17728    title: getTitle('Twitter'),
17729    icon: embedTwitterIcon,
17730    keywords: ['tweet', (0,external_wp_i18n_namespaceObject.__)('social')],
17731    description: (0,external_wp_i18n_namespaceObject.__)('Embed a tweet.'),
17732    patterns: [/^https?:\/\/(www\.)?twitter\.com\/.+/i],
17733    attributes: {
17734      providerNameSlug: 'twitter',
17735      responsive: true
17736    }
17737  }, {
17738    name: 'youtube',
17739    title: getTitle('YouTube'),
17740    icon: embedYouTubeIcon,
17741    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('video')],
17742    description: (0,external_wp_i18n_namespaceObject.__)('Embed a YouTube video.'),
17743    patterns: [/^https?:\/\/((m|www)\.)?youtube\.com\/.+/i, /^https?:\/\/youtu\.be\/.+/i],
17744    attributes: {
17745      providerNameSlug: 'youtube',
17746      responsive: true
17747    }
17748  }, {
17749    // Deprecate Facebook Embed per FB policy
17750    // See: https://developers.facebook.com/docs/plugins/oembed-legacy
17751    name: 'facebook',
17752    title: getTitle('Facebook'),
17753    icon: embedFacebookIcon,
17754    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
17755    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Facebook post.'),
17756    scope: ['block'],
17757    patterns: [],
17758    attributes: {
17759      providerNameSlug: 'facebook',
17760      previewable: false,
17761      responsive: true
17762    }
17763  }, {
17764    // Deprecate Instagram per FB policy
17765    // See: https://developers.facebook.com/docs/instagram/oembed-legacy
17766    name: 'instagram',
17767    title: getTitle('Instagram'),
17768    icon: embedInstagramIcon,
17769    keywords: [(0,external_wp_i18n_namespaceObject.__)('image'), (0,external_wp_i18n_namespaceObject.__)('social')],
17770    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Instagram post.'),
17771    scope: ['block'],
17772    patterns: [],
17773    attributes: {
17774      providerNameSlug: 'instagram',
17775      responsive: true
17776    }
17777  }, {
17778    name: 'wordpress',
17779    title: getTitle('WordPress'),
17780    icon: embedWordPressIcon,
17781    keywords: [(0,external_wp_i18n_namespaceObject.__)('post'), (0,external_wp_i18n_namespaceObject.__)('blog')],
17782    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress post.'),
17783    attributes: {
17784      providerNameSlug: 'wordpress'
17785    }
17786  }, {
17787    name: 'soundcloud',
17788    title: getTitle('SoundCloud'),
17789    icon: embedAudioIcon,
17790    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17791    description: (0,external_wp_i18n_namespaceObject.__)('Embed SoundCloud content.'),
17792    patterns: [/^https?:\/\/(www\.)?soundcloud\.com\/.+/i],
17793    attributes: {
17794      providerNameSlug: 'soundcloud',
17795      responsive: true
17796    }
17797  }, {
17798    name: 'spotify',
17799    title: getTitle('Spotify'),
17800    icon: embedSpotifyIcon,
17801    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17802    description: (0,external_wp_i18n_namespaceObject.__)('Embed Spotify content.'),
17803    patterns: [/^https?:\/\/(open|play)\.spotify\.com\/.+/i],
17804    attributes: {
17805      providerNameSlug: 'spotify',
17806      responsive: true
17807    }
17808  }, {
17809    name: 'flickr',
17810    title: getTitle('Flickr'),
17811    icon: embedFlickrIcon,
17812    keywords: [(0,external_wp_i18n_namespaceObject.__)('image')],
17813    description: (0,external_wp_i18n_namespaceObject.__)('Embed Flickr content.'),
17814    patterns: [/^https?:\/\/(www\.)?flickr\.com\/.+/i, /^https?:\/\/flic\.kr\/.+/i],
17815    attributes: {
17816      providerNameSlug: 'flickr',
17817      responsive: true
17818    }
17819  }, {
17820    name: 'vimeo',
17821    title: getTitle('Vimeo'),
17822    icon: embedVimeoIcon,
17823    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17824    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Vimeo video.'),
17825    patterns: [/^https?:\/\/(www\.)?vimeo\.com\/.+/i],
17826    attributes: {
17827      providerNameSlug: 'vimeo',
17828      responsive: true
17829    }
17830  }, {
17831    name: 'animoto',
17832    title: getTitle('Animoto'),
17833    icon: embedAnimotoIcon,
17834    description: (0,external_wp_i18n_namespaceObject.__)('Embed an Animoto video.'),
17835    patterns: [/^https?:\/\/(www\.)?(animoto|video214)\.com\/.+/i],
17836    attributes: {
17837      providerNameSlug: 'animoto',
17838      responsive: true
17839    }
17840  }, {
17841    name: 'cloudup',
17842    title: getTitle('Cloudup'),
17843    icon: embedContentIcon,
17844    description: (0,external_wp_i18n_namespaceObject.__)('Embed Cloudup content.'),
17845    patterns: [/^https?:\/\/cloudup\.com\/.+/i],
17846    attributes: {
17847      providerNameSlug: 'cloudup',
17848      responsive: true
17849    }
17850  }, {
17851    // Deprecated since CollegeHumor content is now powered by YouTube.
17852    name: 'collegehumor',
17853    title: getTitle('CollegeHumor'),
17854    icon: embedVideoIcon,
17855    description: (0,external_wp_i18n_namespaceObject.__)('Embed CollegeHumor content.'),
17856    scope: ['block'],
17857    patterns: [],
17858    attributes: {
17859      providerNameSlug: 'collegehumor',
17860      responsive: true
17861    }
17862  }, {
17863    name: 'crowdsignal',
17864    title: getTitle('Crowdsignal'),
17865    icon: embedContentIcon,
17866    keywords: ['polldaddy', (0,external_wp_i18n_namespaceObject.__)('survey')],
17867    description: (0,external_wp_i18n_namespaceObject.__)('Embed Crowdsignal (formerly Polldaddy) content.'),
17868    patterns: [/^https?:\/\/((.+\.)?polldaddy\.com|poll\.fm|.+\.crowdsignal\.net|.+\.survey\.fm)\/.+/i],
17869    attributes: {
17870      providerNameSlug: 'crowdsignal',
17871      responsive: true
17872    }
17873  }, {
17874    name: 'dailymotion',
17875    title: getTitle('Dailymotion'),
17876    icon: embedDailymotionIcon,
17877    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17878    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Dailymotion video.'),
17879    patterns: [/^https?:\/\/(www\.)?dailymotion\.com\/.+/i],
17880    attributes: {
17881      providerNameSlug: 'dailymotion',
17882      responsive: true
17883    }
17884  }, {
17885    name: 'imgur',
17886    title: getTitle('Imgur'),
17887    icon: embedPhotoIcon,
17888    description: (0,external_wp_i18n_namespaceObject.__)('Embed Imgur content.'),
17889    patterns: [/^https?:\/\/(.+\.)?imgur\.com\/.+/i],
17890    attributes: {
17891      providerNameSlug: 'imgur',
17892      responsive: true
17893    }
17894  }, {
17895    name: 'issuu',
17896    title: getTitle('Issuu'),
17897    icon: embedContentIcon,
17898    description: (0,external_wp_i18n_namespaceObject.__)('Embed Issuu content.'),
17899    patterns: [/^https?:\/\/(www\.)?issuu\.com\/.+/i],
17900    attributes: {
17901      providerNameSlug: 'issuu',
17902      responsive: true
17903    }
17904  }, {
17905    name: 'kickstarter',
17906    title: getTitle('Kickstarter'),
17907    icon: embedContentIcon,
17908    description: (0,external_wp_i18n_namespaceObject.__)('Embed Kickstarter content.'),
17909    patterns: [/^https?:\/\/(www\.)?kickstarter\.com\/.+/i, /^https?:\/\/kck\.st\/.+/i],
17910    attributes: {
17911      providerNameSlug: 'kickstarter',
17912      responsive: true
17913    }
17914  }, {
17915    name: 'mixcloud',
17916    title: getTitle('Mixcloud'),
17917    icon: embedAudioIcon,
17918    keywords: [(0,external_wp_i18n_namespaceObject.__)('music'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17919    description: (0,external_wp_i18n_namespaceObject.__)('Embed Mixcloud content.'),
17920    patterns: [/^https?:\/\/(www\.)?mixcloud\.com\/.+/i],
17921    attributes: {
17922      providerNameSlug: 'mixcloud',
17923      responsive: true
17924    }
17925  }, {
17926    name: 'pocket-casts',
17927    title: getTitle('Pocket Casts'),
17928    icon: embedPocketCastsIcon,
17929    keywords: [(0,external_wp_i18n_namespaceObject.__)('podcast'), (0,external_wp_i18n_namespaceObject.__)('audio')],
17930    description: (0,external_wp_i18n_namespaceObject.__)('Embed a podcast player from Pocket Casts.'),
17931    patterns: [/^https:\/\/pca.st\/\w+/i],
17932    attributes: {
17933      providerNameSlug: 'pocket-casts',
17934      responsive: true
17935    }
17936  }, {
17937    name: 'reddit',
17938    title: getTitle('Reddit'),
17939    icon: embedRedditIcon,
17940    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Reddit thread.'),
17941    patterns: [/^https?:\/\/(www\.)?reddit\.com\/.+/i],
17942    attributes: {
17943      providerNameSlug: 'reddit',
17944      responsive: true
17945    }
17946  }, {
17947    name: 'reverbnation',
17948    title: getTitle('ReverbNation'),
17949    icon: embedAudioIcon,
17950    description: (0,external_wp_i18n_namespaceObject.__)('Embed ReverbNation content.'),
17951    patterns: [/^https?:\/\/(www\.)?reverbnation\.com\/.+/i],
17952    attributes: {
17953      providerNameSlug: 'reverbnation',
17954      responsive: true
17955    }
17956  }, {
17957    name: 'scribd',
17958    title: getTitle('Scribd'),
17959    icon: embedContentIcon,
17960    description: (0,external_wp_i18n_namespaceObject.__)('Embed Scribd content.'),
17961    patterns: [/^https?:\/\/(www\.)?scribd\.com\/.+/i],
17962    attributes: {
17963      providerNameSlug: 'scribd',
17964      responsive: true
17965    }
17966  }, {
17967    name: 'smugmug',
17968    title: getTitle('SmugMug'),
17969    icon: embedPhotoIcon,
17970    description: (0,external_wp_i18n_namespaceObject.__)('Embed SmugMug content.'),
17971    patterns: [/^https?:\/\/(.+\.)?smugmug\.com\/.*/i],
17972    attributes: {
17973      providerNameSlug: 'smugmug',
17974      previewable: false,
17975      responsive: true
17976    }
17977  }, {
17978    name: 'speaker-deck',
17979    title: getTitle('Speaker Deck'),
17980    icon: embedContentIcon,
17981    description: (0,external_wp_i18n_namespaceObject.__)('Embed Speaker Deck content.'),
17982    patterns: [/^https?:\/\/(www\.)?speakerdeck\.com\/.+/i],
17983    attributes: {
17984      providerNameSlug: 'speaker-deck',
17985      responsive: true
17986    }
17987  }, {
17988    name: 'tiktok',
17989    title: getTitle('TikTok'),
17990    icon: embedVideoIcon,
17991    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
17992    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TikTok video.'),
17993    patterns: [/^https?:\/\/(www\.)?tiktok\.com\/.+/i],
17994    attributes: {
17995      providerNameSlug: 'tiktok',
17996      responsive: true
17997    }
17998  }, {
17999    name: 'ted',
18000    title: getTitle('TED'),
18001    icon: embedVideoIcon,
18002    description: (0,external_wp_i18n_namespaceObject.__)('Embed a TED video.'),
18003    patterns: [/^https?:\/\/(www\.|embed\.)?ted\.com\/.+/i],
18004    attributes: {
18005      providerNameSlug: 'ted',
18006      responsive: true
18007    }
18008  }, {
18009    name: 'tumblr',
18010    title: getTitle('Tumblr'),
18011    icon: embedTumblrIcon,
18012    keywords: [(0,external_wp_i18n_namespaceObject.__)('social')],
18013    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Tumblr post.'),
18014    patterns: [/^https?:\/\/(.+)\.tumblr\.com\/.+/i],
18015    attributes: {
18016      providerNameSlug: 'tumblr',
18017      responsive: true
18018    }
18019  }, {
18020    name: 'videopress',
18021    title: getTitle('VideoPress'),
18022    icon: embedVideoIcon,
18023    keywords: [(0,external_wp_i18n_namespaceObject.__)('video')],
18024    description: (0,external_wp_i18n_namespaceObject.__)('Embed a VideoPress video.'),
18025    patterns: [/^https?:\/\/videopress\.com\/.+/i],
18026    attributes: {
18027      providerNameSlug: 'videopress',
18028      responsive: true
18029    }
18030  }, {
18031    name: 'wordpress-tv',
18032    title: getTitle('WordPress.tv'),
18033    icon: embedVideoIcon,
18034    description: (0,external_wp_i18n_namespaceObject.__)('Embed a WordPress.tv video.'),
18035    patterns: [/^https?:\/\/wordpress\.tv\/.+/i],
18036    attributes: {
18037      providerNameSlug: 'wordpress-tv',
18038      responsive: true
18039    }
18040  }, {
18041    name: 'amazon-kindle',
18042    title: getTitle('Amazon Kindle'),
18043    icon: embedAmazonIcon,
18044    keywords: [(0,external_wp_i18n_namespaceObject.__)('ebook')],
18045    description: (0,external_wp_i18n_namespaceObject.__)('Embed Amazon Kindle content.'),
18046    patterns: [/^https?:\/\/([a-z0-9-]+\.)?(amazon|amzn)(\.[a-z]{2,4})+\/.+/i, /^https?:\/\/(www\.)?(a\.co|z\.cn)\/.+/i],
18047    attributes: {
18048      providerNameSlug: 'amazon-kindle'
18049    }
18050  }, {
18051    name: 'pinterest',
18052    title: getTitle('Pinterest'),
18053    icon: embedPinterestIcon,
18054    keywords: [(0,external_wp_i18n_namespaceObject.__)('social'), (0,external_wp_i18n_namespaceObject.__)('bookmark')],
18055    description: (0,external_wp_i18n_namespaceObject.__)('Embed Pinterest pins, boards, and profiles.'),
18056    patterns: [/^https?:\/\/([a-z]{2}|www)\.pinterest\.com(\.(au|mx))?\/.*/i],
18057    attributes: {
18058      providerNameSlug: 'pinterest'
18059    }
18060  }, {
18061    name: 'wolfram-cloud',
18062    title: getTitle('Wolfram'),
18063    icon: embedWolframIcon,
18064    description: (0,external_wp_i18n_namespaceObject.__)('Embed Wolfram notebook content.'),
18065    patterns: [/^https?:\/\/(www\.)?wolframcloud\.com\/obj\/.+/i],
18066    attributes: {
18067      providerNameSlug: 'wolfram-cloud',
18068      responsive: true
18069    }
18070  }, {
18071    name: 'bluesky',
18072    title: getTitle('Bluesky'),
18073    icon: embedBlueskyIcon,
18074    description: (0,external_wp_i18n_namespaceObject.__)('Embed a Bluesky post.'),
18075    patterns: [/^https?:\/\/bsky\.app\/profile\/.+\/post\/.+/i],
18076    attributes: {
18077      providerNameSlug: 'bluesky'
18078    }
18079  }];
18080  
18081  /**
18082   * Add `isActive` function to all `embed` variations, if not defined.
18083   * `isActive` function is used to find a variation match from a created
18084   *  Block by providing its attributes.
18085   */
18086  embed_variations_variations.forEach(variation => {
18087    if (variation.isActive) {
18088      return;
18089    }
18090    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.providerNameSlug === variationAttributes.providerNameSlug;
18091  });
18092  /* harmony default export */ const embed_variations = (embed_variations_variations);
18093  
18094  ;// ./node_modules/@wordpress/block-library/build-module/embed/deprecated.js
18095  /**
18096   * External dependencies
18097   */
18098  
18099  
18100  /**
18101   * Internal dependencies
18102   */
18103  const embed_deprecated_metadata = {
18104    $schema: "https://schemas.wp.org/trunk/block.json",
18105    apiVersion: 3,
18106    name: "core/embed",
18107    title: "Embed",
18108    category: "embed",
18109    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
18110    textdomain: "default",
18111    attributes: {
18112      url: {
18113        type: "string",
18114        role: "content"
18115      },
18116      caption: {
18117        type: "rich-text",
18118        source: "rich-text",
18119        selector: "figcaption",
18120        role: "content"
18121      },
18122      type: {
18123        type: "string",
18124        role: "content"
18125      },
18126      providerNameSlug: {
18127        type: "string",
18128        role: "content"
18129      },
18130      allowResponsive: {
18131        type: "boolean",
18132        "default": true
18133      },
18134      responsive: {
18135        type: "boolean",
18136        "default": false,
18137        role: "content"
18138      },
18139      previewable: {
18140        type: "boolean",
18141        "default": true,
18142        role: "content"
18143      }
18144    },
18145    supports: {
18146      align: true,
18147      spacing: {
18148        margin: true
18149      },
18150      interactivity: {
18151        clientNavigation: true
18152      }
18153    },
18154    editorStyle: "wp-block-embed-editor",
18155    style: "wp-block-embed"
18156  };
18157  /**
18158   * WordPress dependencies
18159   */
18160  
18161  
18162  const {
18163    attributes: embed_deprecated_blockAttributes
18164  } = embed_deprecated_metadata;
18165  
18166  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
18167  // to the embed figcaption element.
18168  const deprecated_v2 = {
18169    attributes: embed_deprecated_blockAttributes,
18170    save({
18171      attributes
18172    }) {
18173      const {
18174        url,
18175        caption,
18176        type,
18177        providerNameSlug
18178      } = attributes;
18179      if (!url) {
18180        return null;
18181      }
18182      const className = dist_clsx('wp-block-embed', {
18183        [`is-type-$type}`]: type,
18184        [`is-provider-$providerNameSlug}`]: providerNameSlug,
18185        [`wp-block-embed-$providerNameSlug}`]: providerNameSlug
18186      });
18187      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
18188        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
18189          className
18190        }),
18191        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18192          className: "wp-block-embed__wrapper",
18193          children: `\n$url}\n` /* URL needs to be on its own line. */
18194        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18195          tagName: "figcaption",
18196          value: caption
18197        })]
18198      });
18199    }
18200  };
18201  const embed_deprecated_v1 = {
18202    attributes: embed_deprecated_blockAttributes,
18203    save({
18204      attributes: {
18205        url,
18206        caption,
18207        type,
18208        providerNameSlug
18209      }
18210    }) {
18211      if (!url) {
18212        return null;
18213      }
18214      const embedClassName = dist_clsx('wp-block-embed', {
18215        [`is-type-$type}`]: type,
18216        [`is-provider-$providerNameSlug}`]: providerNameSlug
18217      });
18218      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
18219        className: embedClassName,
18220        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, {
18221          tagName: "figcaption",
18222          value: caption
18223        })]
18224      });
18225    }
18226  };
18227  const embed_deprecated_deprecated = [deprecated_v2, embed_deprecated_v1];
18228  /* harmony default export */ const embed_deprecated = (embed_deprecated_deprecated);
18229  
18230  ;// ./node_modules/@wordpress/block-library/build-module/embed/index.js
18231  /**
18232   * Internal dependencies
18233   */
18234  
18235  
18236  
18237  const embed_metadata = {
18238    $schema: "https://schemas.wp.org/trunk/block.json",
18239    apiVersion: 3,
18240    name: "core/embed",
18241    title: "Embed",
18242    category: "embed",
18243    description: "Add a block that displays content pulled from other sites, like Twitter or YouTube.",
18244    textdomain: "default",
18245    attributes: {
18246      url: {
18247        type: "string",
18248        role: "content"
18249      },
18250      caption: {
18251        type: "rich-text",
18252        source: "rich-text",
18253        selector: "figcaption",
18254        role: "content"
18255      },
18256      type: {
18257        type: "string",
18258        role: "content"
18259      },
18260      providerNameSlug: {
18261        type: "string",
18262        role: "content"
18263      },
18264      allowResponsive: {
18265        type: "boolean",
18266        "default": true
18267      },
18268      responsive: {
18269        type: "boolean",
18270        "default": false,
18271        role: "content"
18272      },
18273      previewable: {
18274        type: "boolean",
18275        "default": true,
18276        role: "content"
18277      }
18278    },
18279    supports: {
18280      align: true,
18281      spacing: {
18282        margin: true
18283      },
18284      interactivity: {
18285        clientNavigation: true
18286      }
18287    },
18288    editorStyle: "wp-block-embed-editor",
18289    style: "wp-block-embed"
18290  };
18291  
18292  
18293  
18294  
18295  const {
18296    name: embed_name
18297  } = embed_metadata;
18298  
18299  const embed_settings = {
18300    icon: embedContentIcon,
18301    edit: embed_edit,
18302    save: embed_save_save,
18303    transforms: embed_transforms,
18304    variations: embed_variations,
18305    deprecated: embed_deprecated
18306  };
18307  const embed_init = () => initBlock({
18308    name: embed_name,
18309    metadata: embed_metadata,
18310    settings: embed_settings
18311  });
18312  
18313  ;// ./node_modules/@wordpress/icons/build-module/library/file.js
18314  /**
18315   * WordPress dependencies
18316   */
18317  
18318  
18319  const file = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
18320    viewBox: "0 0 24 24",
18321    xmlns: "http://www.w3.org/2000/svg",
18322    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
18323      fillRule: "evenodd",
18324      clipRule: "evenodd",
18325      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"
18326    })
18327  });
18328  /* harmony default export */ const library_file = (file);
18329  
18330  ;// ./node_modules/@wordpress/block-library/build-module/file/deprecated.js
18331  /**
18332   * External dependencies
18333   */
18334  
18335  
18336  /**
18337   * WordPress dependencies
18338   */
18339  
18340  
18341  
18342  // Version of the file block without PR#43050 removing the translated aria-label.
18343  
18344  const deprecated_v3 = {
18345    attributes: {
18346      id: {
18347        type: 'number'
18348      },
18349      href: {
18350        type: 'string'
18351      },
18352      fileId: {
18353        type: 'string',
18354        source: 'attribute',
18355        selector: 'a:not([download])',
18356        attribute: 'id'
18357      },
18358      fileName: {
18359        type: 'string',
18360        source: 'html',
18361        selector: 'a:not([download])'
18362      },
18363      textLinkHref: {
18364        type: 'string',
18365        source: 'attribute',
18366        selector: 'a:not([download])',
18367        attribute: 'href'
18368      },
18369      textLinkTarget: {
18370        type: 'string',
18371        source: 'attribute',
18372        selector: 'a:not([download])',
18373        attribute: 'target'
18374      },
18375      showDownloadButton: {
18376        type: 'boolean',
18377        default: true
18378      },
18379      downloadButtonText: {
18380        type: 'string',
18381        source: 'html',
18382        selector: 'a[download]'
18383      },
18384      displayPreview: {
18385        type: 'boolean'
18386      },
18387      previewHeight: {
18388        type: 'number',
18389        default: 600
18390      }
18391    },
18392    supports: {
18393      anchor: true,
18394      align: true
18395    },
18396    save({
18397      attributes
18398    }) {
18399      const {
18400        href,
18401        fileId,
18402        fileName,
18403        textLinkHref,
18404        textLinkTarget,
18405        showDownloadButton,
18406        downloadButtonText,
18407        displayPreview,
18408        previewHeight
18409      } = attributes;
18410      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. */
18411      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
18412      const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
18413  
18414      // Only output an `aria-describedby` when the element it's referring to is
18415      // actually rendered.
18416      const describedById = hasFilename ? fileId : undefined;
18417      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18418        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18419        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18420          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18421            className: "wp-block-file__embed",
18422            data: href,
18423            type: "application/pdf",
18424            style: {
18425              width: '100%',
18426              height: `$previewHeight}px`
18427            },
18428            "aria-label": pdfEmbedLabel
18429          })
18430        }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18431          id: describedById,
18432          href: textLinkHref,
18433          target: textLinkTarget,
18434          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18435          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18436            value: fileName
18437          })
18438        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18439          href: href,
18440          className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
18441          download: true,
18442          "aria-describedby": describedById,
18443          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18444            value: downloadButtonText
18445          })
18446        })]
18447      });
18448    }
18449  };
18450  
18451  // In #41239 the button was made an element button which added a `wp-element-button` classname
18452  // to the download link element.
18453  const file_deprecated_v2 = {
18454    attributes: {
18455      id: {
18456        type: 'number'
18457      },
18458      href: {
18459        type: 'string'
18460      },
18461      fileId: {
18462        type: 'string',
18463        source: 'attribute',
18464        selector: 'a:not([download])',
18465        attribute: 'id'
18466      },
18467      fileName: {
18468        type: 'string',
18469        source: 'html',
18470        selector: 'a:not([download])'
18471      },
18472      textLinkHref: {
18473        type: 'string',
18474        source: 'attribute',
18475        selector: 'a:not([download])',
18476        attribute: 'href'
18477      },
18478      textLinkTarget: {
18479        type: 'string',
18480        source: 'attribute',
18481        selector: 'a:not([download])',
18482        attribute: 'target'
18483      },
18484      showDownloadButton: {
18485        type: 'boolean',
18486        default: true
18487      },
18488      downloadButtonText: {
18489        type: 'string',
18490        source: 'html',
18491        selector: 'a[download]'
18492      },
18493      displayPreview: {
18494        type: 'boolean'
18495      },
18496      previewHeight: {
18497        type: 'number',
18498        default: 600
18499      }
18500    },
18501    supports: {
18502      anchor: true,
18503      align: true
18504    },
18505    save({
18506      attributes
18507    }) {
18508      const {
18509        href,
18510        fileId,
18511        fileName,
18512        textLinkHref,
18513        textLinkTarget,
18514        showDownloadButton,
18515        downloadButtonText,
18516        displayPreview,
18517        previewHeight
18518      } = attributes;
18519      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. */
18520      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
18521      const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
18522  
18523      // Only output an `aria-describedby` when the element it's referring to is
18524      // actually rendered.
18525      const describedById = hasFilename ? fileId : undefined;
18526      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18527        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18528        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18529          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18530            className: "wp-block-file__embed",
18531            data: href,
18532            type: "application/pdf",
18533            style: {
18534              width: '100%',
18535              height: `$previewHeight}px`
18536            },
18537            "aria-label": pdfEmbedLabel
18538          })
18539        }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18540          id: describedById,
18541          href: textLinkHref,
18542          target: textLinkTarget,
18543          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18544          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18545            value: fileName
18546          })
18547        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18548          href: href,
18549          className: "wp-block-file__button",
18550          download: true,
18551          "aria-describedby": describedById,
18552          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18553            value: downloadButtonText
18554          })
18555        })]
18556      });
18557    }
18558  };
18559  
18560  // Version of the file block without PR#28062 accessibility fix.
18561  const file_deprecated_v1 = {
18562    attributes: {
18563      id: {
18564        type: 'number'
18565      },
18566      href: {
18567        type: 'string'
18568      },
18569      fileName: {
18570        type: 'string',
18571        source: 'html',
18572        selector: 'a:not([download])'
18573      },
18574      textLinkHref: {
18575        type: 'string',
18576        source: 'attribute',
18577        selector: 'a:not([download])',
18578        attribute: 'href'
18579      },
18580      textLinkTarget: {
18581        type: 'string',
18582        source: 'attribute',
18583        selector: 'a:not([download])',
18584        attribute: 'target'
18585      },
18586      showDownloadButton: {
18587        type: 'boolean',
18588        default: true
18589      },
18590      downloadButtonText: {
18591        type: 'string',
18592        source: 'html',
18593        selector: 'a[download]'
18594      },
18595      displayPreview: {
18596        type: 'boolean'
18597      },
18598      previewHeight: {
18599        type: 'number',
18600        default: 600
18601      }
18602    },
18603    supports: {
18604      anchor: true,
18605      align: true
18606    },
18607    save({
18608      attributes
18609    }) {
18610      const {
18611        href,
18612        fileName,
18613        textLinkHref,
18614        textLinkTarget,
18615        showDownloadButton,
18616        downloadButtonText,
18617        displayPreview,
18618        previewHeight
18619      } = attributes;
18620      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. */
18621      (0,external_wp_i18n_namespaceObject.__)('Embed of %s.'), fileName);
18622      return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
18623        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
18624        children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18625          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
18626            className: "wp-block-file__embed",
18627            data: href,
18628            type: "application/pdf",
18629            style: {
18630              width: '100%',
18631              height: `$previewHeight}px`
18632            },
18633            "aria-label": pdfEmbedLabel
18634          })
18635        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18636          href: textLinkHref,
18637          target: textLinkTarget,
18638          rel: textLinkTarget ? 'noreferrer noopener' : undefined,
18639          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18640            value: fileName
18641          })
18642        }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
18643          href: href,
18644          className: "wp-block-file__button",
18645          download: true,
18646          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
18647            value: downloadButtonText
18648          })
18649        })]
18650      });
18651    }
18652  };
18653  const file_deprecated_deprecated = [deprecated_v3, file_deprecated_v2, file_deprecated_v1];
18654  /* harmony default export */ const file_deprecated = (file_deprecated_deprecated);
18655  
18656  ;// ./node_modules/@wordpress/block-library/build-module/file/inspector.js
18657  /**
18658   * WordPress dependencies
18659   */
18660  
18661  
18662  
18663  
18664  /**
18665   * Internal dependencies
18666   */
18667  
18668  
18669  function FileBlockInspector({
18670    hrefs,
18671    openInNewWindow,
18672    showDownloadButton,
18673    changeLinkDestinationOption,
18674    changeOpenInNewWindow,
18675    changeShowDownloadButton,
18676    displayPreview,
18677    changeDisplayPreview,
18678    previewHeight,
18679    changePreviewHeight
18680  }) {
18681    const {
18682      href,
18683      textLinkHref,
18684      attachmentPage
18685    } = hrefs;
18686    let linkDestinationOptions = [{
18687      value: href,
18688      label: (0,external_wp_i18n_namespaceObject.__)('URL')
18689    }];
18690    if (attachmentPage) {
18691      linkDestinationOptions = [{
18692        value: href,
18693        label: (0,external_wp_i18n_namespaceObject.__)('Media file')
18694      }, {
18695        value: attachmentPage,
18696        label: (0,external_wp_i18n_namespaceObject.__)('Attachment page')
18697      }];
18698    }
18699    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18700      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
18701        children: [href.endsWith('.pdf') && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
18702          title: (0,external_wp_i18n_namespaceObject.__)('PDF settings'),
18703          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18704            __nextHasNoMarginBottom: true,
18705            label: (0,external_wp_i18n_namespaceObject.__)('Show inline embed'),
18706            help: displayPreview ? (0,external_wp_i18n_namespaceObject.__)("Note: Most phone and tablet browsers won't display embedded PDFs.") : null,
18707            checked: !!displayPreview,
18708            onChange: changeDisplayPreview
18709          }), displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
18710            __nextHasNoMarginBottom: true,
18711            __next40pxDefaultSize: true,
18712            label: (0,external_wp_i18n_namespaceObject.__)('Height in pixels'),
18713            min: MIN_PREVIEW_HEIGHT,
18714            max: Math.max(MAX_PREVIEW_HEIGHT, previewHeight),
18715            value: previewHeight,
18716            onChange: changePreviewHeight
18717          })]
18718        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
18719          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
18720          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
18721            __next40pxDefaultSize: true,
18722            __nextHasNoMarginBottom: true,
18723            label: (0,external_wp_i18n_namespaceObject.__)('Link to'),
18724            value: textLinkHref,
18725            options: linkDestinationOptions,
18726            onChange: changeLinkDestinationOption
18727          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18728            __nextHasNoMarginBottom: true,
18729            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
18730            checked: openInNewWindow,
18731            onChange: changeOpenInNewWindow
18732          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
18733            __nextHasNoMarginBottom: true,
18734            label: (0,external_wp_i18n_namespaceObject.__)('Show download button'),
18735            checked: showDownloadButton,
18736            onChange: changeShowDownloadButton
18737          })]
18738        })]
18739      })
18740    });
18741  }
18742  
18743  ;// ./node_modules/@wordpress/block-library/build-module/file/utils/index.js
18744  /**
18745   * Uses a combination of user agent matching and feature detection to determine whether
18746   * the current browser supports rendering PDFs inline.
18747   *
18748   * @return {boolean} Whether or not the browser supports inline PDFs.
18749   */
18750  const browserSupportsPdfs = () => {
18751    // Most mobile devices include "Mobi" in their UA.
18752    if (window.navigator.userAgent.indexOf('Mobi') > -1) {
18753      return false;
18754    }
18755  
18756    // Android tablets are the notable exception.
18757    if (window.navigator.userAgent.indexOf('Android') > -1) {
18758      return false;
18759    }
18760  
18761    // iPad pretends to be a Mac.
18762    if (window.navigator.userAgent.indexOf('Macintosh') > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) {
18763      return false;
18764    }
18765  
18766    // IE only supports PDFs when there's an ActiveX object available for it.
18767    if (!!(window.ActiveXObject || 'ActiveXObject' in window) && !(createActiveXObject('AcroPDF.PDF') || createActiveXObject('PDF.PdfCtrl'))) {
18768      return false;
18769    }
18770    return true;
18771  };
18772  
18773  /**
18774   * Helper function for creating ActiveX objects, catching any errors that are thrown
18775   * when it's generated.
18776   *
18777   * @param {string} type The name of the ActiveX object to create.
18778   * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.
18779   */
18780  const createActiveXObject = type => {
18781    let ax;
18782    try {
18783      ax = new window.ActiveXObject(type);
18784    } catch (e) {
18785      ax = undefined;
18786    }
18787    return ax;
18788  };
18789  
18790  ;// ./node_modules/@wordpress/block-library/build-module/file/edit.js
18791  /**
18792   * External dependencies
18793   */
18794  
18795  
18796  /**
18797   * WordPress dependencies
18798   */
18799  
18800  
18801  
18802  
18803  
18804  
18805  
18806  
18807  
18808  
18809  
18810  /**
18811   * Internal dependencies
18812   */
18813  
18814  
18815  
18816  
18817  
18818  const MIN_PREVIEW_HEIGHT = 200;
18819  const MAX_PREVIEW_HEIGHT = 2000;
18820  function ClipboardToolbarButton({
18821    text,
18822    disabled
18823  }) {
18824    const {
18825      createNotice
18826    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
18827    const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
18828      createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied URL to clipboard.'), {
18829        isDismissible: true,
18830        type: 'snackbar'
18831      });
18832    });
18833    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
18834      className: "components-clipboard-toolbar-button",
18835      ref: ref,
18836      disabled: disabled,
18837      children: (0,external_wp_i18n_namespaceObject.__)('Copy URL')
18838    });
18839  }
18840  function FileEdit({
18841    attributes,
18842    isSelected,
18843    setAttributes,
18844    clientId
18845  }) {
18846    const {
18847      id,
18848      fileName,
18849      href,
18850      textLinkHref,
18851      textLinkTarget,
18852      showDownloadButton,
18853      downloadButtonText,
18854      displayPreview,
18855      previewHeight
18856    } = attributes;
18857    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
18858    const {
18859      media
18860    } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
18861      media: id === undefined ? undefined : select(external_wp_coreData_namespaceObject.store).getMedia(id)
18862    }), [id]);
18863    const {
18864      createErrorNotice
18865    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
18866    const {
18867      toggleSelection,
18868      __unstableMarkNextChangeAsNotPersistent
18869    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
18870    useUploadMediaFromBlobURL({
18871      url: temporaryURL,
18872      onChange: onSelectFile,
18873      onError: onUploadError
18874    });
18875  
18876    // Note: Handle setting a default value for `downloadButtonText` via HTML API
18877    // when it supports replacing text content for HTML tags.
18878    (0,external_wp_element_namespaceObject.useEffect)(() => {
18879      if (external_wp_blockEditor_namespaceObject.RichText.isEmpty(downloadButtonText)) {
18880        __unstableMarkNextChangeAsNotPersistent();
18881        setAttributes({
18882          downloadButtonText: (0,external_wp_i18n_namespaceObject._x)('Download', 'button label')
18883        });
18884      }
18885      // This effect should only run on mount.
18886    }, []);
18887    function onSelectFile(newMedia) {
18888      var _attributes$displayPr, _attributes$previewHe;
18889      if (!newMedia || !newMedia.url) {
18890        // Reset attributes.
18891        setAttributes({
18892          href: undefined,
18893          fileName: undefined,
18894          textLinkHref: undefined,
18895          id: undefined,
18896          fileId: undefined,
18897          displayPreview: undefined,
18898          previewHeight: undefined
18899        });
18900        setTemporaryURL();
18901        return;
18902      }
18903      if ((0,external_wp_blob_namespaceObject.isBlobURL)(newMedia.url)) {
18904        setTemporaryURL(newMedia.url);
18905        return;
18906      }
18907      const isPdf = newMedia.url.endsWith('.pdf');
18908      const pdfAttributes = {
18909        displayPreview: isPdf ? (_attributes$displayPr = attributes.displayPreview) !== null && _attributes$displayPr !== void 0 ? _attributes$displayPr : true : undefined,
18910        previewHeight: isPdf ? (_attributes$previewHe = attributes.previewHeight) !== null && _attributes$previewHe !== void 0 ? _attributes$previewHe : 600 : undefined
18911      };
18912      setAttributes({
18913        href: newMedia.url,
18914        fileName: newMedia.title,
18915        textLinkHref: newMedia.url,
18916        id: newMedia.id,
18917        fileId: `wp-block-file--media-$clientId}`,
18918        blob: undefined,
18919        ...pdfAttributes
18920      });
18921      setTemporaryURL();
18922    }
18923    function onUploadError(message) {
18924      setAttributes({
18925        href: undefined
18926      });
18927      createErrorNotice(message, {
18928        type: 'snackbar'
18929      });
18930    }
18931    function changeLinkDestinationOption(newHref) {
18932      // Choose Media File or Attachment Page (when file is in Media Library).
18933      setAttributes({
18934        textLinkHref: newHref
18935      });
18936    }
18937    function changeOpenInNewWindow(newValue) {
18938      setAttributes({
18939        textLinkTarget: newValue ? '_blank' : false
18940      });
18941    }
18942    function changeShowDownloadButton(newValue) {
18943      setAttributes({
18944        showDownloadButton: newValue
18945      });
18946    }
18947    function changeDisplayPreview(newValue) {
18948      setAttributes({
18949        displayPreview: newValue
18950      });
18951    }
18952    function handleOnResizeStop(event, direction, elt, delta) {
18953      toggleSelection(true);
18954      const newHeight = parseInt(previewHeight + delta.height, 10);
18955      setAttributes({
18956        previewHeight: newHeight
18957      });
18958    }
18959    function changePreviewHeight(newValue) {
18960      const newHeight = Math.max(parseInt(newValue, 10), MIN_PREVIEW_HEIGHT);
18961      setAttributes({
18962        previewHeight: newHeight
18963      });
18964    }
18965    const attachmentPage = media && media.link;
18966    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
18967      className: dist_clsx(!!temporaryURL && (0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({
18968        type: 'loading'
18969      }), {
18970        'is-transient': !!temporaryURL
18971      })
18972    });
18973    const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;
18974    if (!href && !temporaryURL) {
18975      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
18976        ...blockProps,
18977        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
18978          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
18979            icon: library_file
18980          }),
18981          labels: {
18982            title: (0,external_wp_i18n_namespaceObject.__)('File'),
18983            instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop a file, upload, or choose from your library.')
18984          },
18985          onSelect: onSelectFile,
18986          onError: onUploadError,
18987          accept: "*"
18988        })
18989      });
18990    }
18991    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
18992      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FileBlockInspector, {
18993        hrefs: {
18994          href: href || temporaryURL,
18995          textLinkHref,
18996          attachmentPage
18997        },
18998        openInNewWindow: !!textLinkTarget,
18999        showDownloadButton,
19000        changeLinkDestinationOption,
19001        changeOpenInNewWindow,
19002        changeShowDownloadButton,
19003        displayPreview,
19004        changeDisplayPreview,
19005        previewHeight,
19006        changePreviewHeight
19007      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
19008        group: "other",
19009        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
19010          mediaId: id,
19011          mediaURL: href,
19012          accept: "*",
19013          onSelect: onSelectFile,
19014          onError: onUploadError,
19015          onReset: () => onSelectFile(undefined)
19016        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ClipboardToolbarButton, {
19017          text: href,
19018          disabled: (0,external_wp_blob_namespaceObject.isBlobURL)(href)
19019        })]
19020      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19021        ...blockProps,
19022        children: [displayPreviewInEditor && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ResizableBox, {
19023          size: {
19024            height: previewHeight,
19025            width: '100%'
19026          },
19027          minHeight: MIN_PREVIEW_HEIGHT,
19028          maxHeight: MAX_PREVIEW_HEIGHT
19029          // The horizontal grid value must be 1 or else the width may snap during a
19030          // resize even though only vertical resizing is enabled.
19031          ,
19032          grid: [1, 10],
19033          enable: {
19034            top: false,
19035            right: false,
19036            bottom: true,
19037            left: false,
19038            topRight: false,
19039            bottomRight: false,
19040            bottomLeft: false,
19041            topLeft: false
19042          },
19043          onResizeStart: () => toggleSelection(false),
19044          onResizeStop: handleOnResizeStop,
19045          showHandle: isSelected,
19046          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
19047            className: "wp-block-file__preview",
19048            data: href,
19049            type: "application/pdf",
19050            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Embed of the selected PDF file.')
19051          }), !isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19052            className: "wp-block-file__preview-overlay"
19053          })]
19054        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19055          className: "wp-block-file__content-wrapper",
19056          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
19057            identifier: "fileName",
19058            tagName: "a",
19059            value: fileName,
19060            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write file name…'),
19061            withoutInteractiveFormatting: true,
19062            onChange: text => setAttributes({
19063              fileName: removeAnchorTag(text)
19064            }),
19065            href: textLinkHref
19066          }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19067            className: "wp-block-file__button-richtext-wrapper",
19068            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
19069              identifier: "downloadButtonText",
19070              tagName: "div" // Must be block-level or else cursor disappears.
19071              ,
19072              "aria-label": (0,external_wp_i18n_namespaceObject.__)('Download button text'),
19073              className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
19074              value: downloadButtonText,
19075              withoutInteractiveFormatting: true,
19076              placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text…'),
19077              onChange: text => setAttributes({
19078                downloadButtonText: removeAnchorTag(text)
19079              })
19080            })
19081          })]
19082        })]
19083      })]
19084    });
19085  }
19086  /* harmony default export */ const file_edit = (FileEdit);
19087  
19088  ;// ./node_modules/@wordpress/block-library/build-module/file/save.js
19089  /**
19090   * External dependencies
19091   */
19092  
19093  
19094  /**
19095   * WordPress dependencies
19096   */
19097  
19098  
19099  function file_save_save({
19100    attributes
19101  }) {
19102    const {
19103      href,
19104      fileId,
19105      fileName,
19106      textLinkHref,
19107      textLinkTarget,
19108      showDownloadButton,
19109      downloadButtonText,
19110      displayPreview,
19111      previewHeight
19112    } = attributes;
19113    const pdfEmbedLabel = external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName) ? 'PDF embed' :
19114    // To do: use toPlainText, but we need ensure it's RichTextData. See
19115    // https://github.com/WordPress/gutenberg/pull/56710.
19116    fileName.toString();
19117    const hasFilename = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(fileName);
19118  
19119    // Only output an `aria-describedby` when the element it's referring to is
19120    // actually rendered.
19121    const describedById = hasFilename ? fileId : undefined;
19122    return href && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
19123      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
19124      children: [displayPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
19125        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("object", {
19126          className: "wp-block-file__embed",
19127          data: href,
19128          type: "application/pdf",
19129          style: {
19130            width: '100%',
19131            height: `$previewHeight}px`
19132          },
19133          "aria-label": pdfEmbedLabel
19134        })
19135      }), hasFilename && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
19136        id: describedById,
19137        href: textLinkHref,
19138        target: textLinkTarget,
19139        rel: textLinkTarget ? 'noreferrer noopener' : undefined,
19140        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19141          value: fileName
19142        })
19143      }), showDownloadButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
19144        href: href,
19145        className: dist_clsx('wp-block-file__button', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('button')),
19146        download: true,
19147        "aria-describedby": describedById,
19148        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19149          value: downloadButtonText
19150        })
19151      })]
19152    });
19153  }
19154  
19155  ;// ./node_modules/@wordpress/block-library/build-module/file/transforms.js
19156  /**
19157   * WordPress dependencies
19158   */
19159  
19160  
19161  
19162  
19163  
19164  const file_transforms_transforms = {
19165    from: [{
19166      type: 'files',
19167      isMatch(files) {
19168        return files.length > 0;
19169      },
19170      // We define a lower priority (higher number) than the default of 10. This
19171      // ensures that the File block is only created as a fallback.
19172      priority: 15,
19173      transform: files => {
19174        const blocks = [];
19175        files.forEach(file => {
19176          const blobURL = (0,external_wp_blob_namespaceObject.createBlobURL)(file);
19177  
19178          // File will be uploaded in componentDidMount()
19179          if (file.type.startsWith('video/')) {
19180            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
19181              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
19182            }));
19183          } else if (file.type.startsWith('image/')) {
19184            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
19185              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
19186            }));
19187          } else if (file.type.startsWith('audio/')) {
19188            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
19189              blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
19190            }));
19191          } else {
19192            blocks.push((0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19193              blob: blobURL,
19194              fileName: file.name
19195            }));
19196          }
19197        });
19198        return blocks;
19199      }
19200    }, {
19201      type: 'block',
19202      blocks: ['core/audio'],
19203      transform: attributes => {
19204        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19205          href: attributes.src,
19206          fileName: attributes.caption,
19207          textLinkHref: attributes.src,
19208          id: attributes.id,
19209          anchor: attributes.anchor
19210        });
19211      }
19212    }, {
19213      type: 'block',
19214      blocks: ['core/video'],
19215      transform: attributes => {
19216        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19217          href: attributes.src,
19218          fileName: attributes.caption,
19219          textLinkHref: attributes.src,
19220          id: attributes.id,
19221          anchor: attributes.anchor
19222        });
19223      }
19224    }, {
19225      type: 'block',
19226      blocks: ['core/image'],
19227      transform: attributes => {
19228        return (0,external_wp_blocks_namespaceObject.createBlock)('core/file', {
19229          href: attributes.url,
19230          fileName: attributes.caption || (0,external_wp_url_namespaceObject.getFilename)(attributes.url),
19231          textLinkHref: attributes.url,
19232          id: attributes.id,
19233          anchor: attributes.anchor
19234        });
19235      }
19236    }],
19237    to: [{
19238      type: 'block',
19239      blocks: ['core/audio'],
19240      isMatch: ({
19241        id
19242      }) => {
19243        if (!id) {
19244          return false;
19245        }
19246        const {
19247          getMedia
19248        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
19249        const media = getMedia(id);
19250        return !!media && media.mime_type.includes('audio');
19251      },
19252      transform: attributes => {
19253        return (0,external_wp_blocks_namespaceObject.createBlock)('core/audio', {
19254          src: attributes.href,
19255          caption: attributes.fileName,
19256          id: attributes.id,
19257          anchor: attributes.anchor
19258        });
19259      }
19260    }, {
19261      type: 'block',
19262      blocks: ['core/video'],
19263      isMatch: ({
19264        id
19265      }) => {
19266        if (!id) {
19267          return false;
19268        }
19269        const {
19270          getMedia
19271        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
19272        const media = getMedia(id);
19273        return !!media && media.mime_type.includes('video');
19274      },
19275      transform: attributes => {
19276        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
19277          src: attributes.href,
19278          caption: attributes.fileName,
19279          id: attributes.id,
19280          anchor: attributes.anchor
19281        });
19282      }
19283    }, {
19284      type: 'block',
19285      blocks: ['core/image'],
19286      isMatch: ({
19287        id
19288      }) => {
19289        if (!id) {
19290          return false;
19291        }
19292        const {
19293          getMedia
19294        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
19295        const media = getMedia(id);
19296        return !!media && media.mime_type.includes('image');
19297      },
19298      transform: attributes => {
19299        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
19300          url: attributes.href,
19301          caption: attributes.fileName,
19302          id: attributes.id,
19303          anchor: attributes.anchor
19304        });
19305      }
19306    }]
19307  };
19308  /* harmony default export */ const file_transforms = (file_transforms_transforms);
19309  
19310  ;// ./node_modules/@wordpress/block-library/build-module/file/index.js
19311  /**
19312   * WordPress dependencies
19313   */
19314  
19315  
19316  
19317  /**
19318   * Internal dependencies
19319   */
19320  
19321  
19322  
19323  const file_metadata = {
19324    $schema: "https://schemas.wp.org/trunk/block.json",
19325    apiVersion: 3,
19326    name: "core/file",
19327    title: "File",
19328    category: "media",
19329    description: "Add a link to a downloadable file.",
19330    keywords: ["document", "pdf", "download"],
19331    textdomain: "default",
19332    attributes: {
19333      id: {
19334        type: "number"
19335      },
19336      blob: {
19337        type: "string",
19338        role: "local"
19339      },
19340      href: {
19341        type: "string",
19342        role: "content"
19343      },
19344      fileId: {
19345        type: "string",
19346        source: "attribute",
19347        selector: "a:not([download])",
19348        attribute: "id"
19349      },
19350      fileName: {
19351        type: "rich-text",
19352        source: "rich-text",
19353        selector: "a:not([download])",
19354        role: "content"
19355      },
19356      textLinkHref: {
19357        type: "string",
19358        source: "attribute",
19359        selector: "a:not([download])",
19360        attribute: "href",
19361        role: "content"
19362      },
19363      textLinkTarget: {
19364        type: "string",
19365        source: "attribute",
19366        selector: "a:not([download])",
19367        attribute: "target"
19368      },
19369      showDownloadButton: {
19370        type: "boolean",
19371        "default": true
19372      },
19373      downloadButtonText: {
19374        type: "rich-text",
19375        source: "rich-text",
19376        selector: "a[download]",
19377        role: "content"
19378      },
19379      displayPreview: {
19380        type: "boolean"
19381      },
19382      previewHeight: {
19383        type: "number",
19384        "default": 600
19385      }
19386    },
19387    supports: {
19388      anchor: true,
19389      align: true,
19390      spacing: {
19391        margin: true,
19392        padding: true
19393      },
19394      color: {
19395        gradients: true,
19396        link: true,
19397        text: false,
19398        __experimentalDefaultControls: {
19399          background: true,
19400          link: true
19401        }
19402      },
19403      __experimentalBorder: {
19404        radius: true,
19405        color: true,
19406        width: true,
19407        style: true,
19408        __experimentalDefaultControls: {
19409          radius: true,
19410          color: true,
19411          width: true,
19412          style: true
19413        }
19414      },
19415      interactivity: true
19416    },
19417    editorStyle: "wp-block-file-editor",
19418    style: "wp-block-file"
19419  };
19420  
19421  
19422  const {
19423    name: file_name
19424  } = file_metadata;
19425  
19426  const file_settings = {
19427    icon: library_file,
19428    example: {
19429      attributes: {
19430        href: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',
19431        fileName: (0,external_wp_i18n_namespaceObject._x)('Armstrong_Small_Step', 'Name of the file')
19432      }
19433    },
19434    transforms: file_transforms,
19435    deprecated: file_deprecated,
19436    edit: file_edit,
19437    save: file_save_save
19438  };
19439  const file_init = () => initBlock({
19440    name: file_name,
19441    metadata: file_metadata,
19442    settings: file_settings
19443  });
19444  
19445  ;// ./node_modules/@wordpress/block-library/build-module/form/utils.js
19446  /**
19447   * WordPress dependencies
19448   */
19449  
19450  const formSubmissionNotificationSuccess = ['core/form-submission-notification', {
19451    type: 'success'
19452  }, [['core/paragraph', {
19453    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>'
19454  }]]];
19455  const formSubmissionNotificationError = ['core/form-submission-notification', {
19456    type: 'error'
19457  }, [['core/paragraph', {
19458    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>'
19459  }]]];
19460  
19461  ;// ./node_modules/@wordpress/block-library/build-module/form/edit.js
19462  /**
19463   * WordPress dependencies
19464   */
19465  
19466  
19467  
19468  
19469  
19470  /**
19471   * Internal dependencies
19472   */
19473  
19474  
19475  const form_edit_TEMPLATE = [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/form-input', {
19476    type: 'text',
19477    label: (0,external_wp_i18n_namespaceObject.__)('Name'),
19478    required: true
19479  }], ['core/form-input', {
19480    type: 'email',
19481    label: (0,external_wp_i18n_namespaceObject.__)('Email'),
19482    required: true
19483  }], ['core/form-input', {
19484    type: 'textarea',
19485    label: (0,external_wp_i18n_namespaceObject.__)('Comment'),
19486    required: true
19487  }], ['core/form-submit-button', {}]];
19488  const form_edit_Edit = ({
19489    attributes,
19490    setAttributes,
19491    clientId
19492  }) => {
19493    const {
19494      action,
19495      method,
19496      email,
19497      submissionMethod
19498    } = attributes;
19499    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
19500    const {
19501      hasInnerBlocks
19502    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
19503      const {
19504        getBlock
19505      } = select(external_wp_blockEditor_namespaceObject.store);
19506      const block = getBlock(clientId);
19507      return {
19508        hasInnerBlocks: !!(block && block.innerBlocks.length)
19509      };
19510    }, [clientId]);
19511    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
19512      template: form_edit_TEMPLATE,
19513      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
19514    });
19515    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
19516      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
19517        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
19518          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
19519          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
19520            __nextHasNoMarginBottom: true,
19521            __next40pxDefaultSize: true,
19522            label: (0,external_wp_i18n_namespaceObject.__)('Submissions method'),
19523            options: [
19524            // TODO: Allow plugins to add their own submission methods.
19525            {
19526              label: (0,external_wp_i18n_namespaceObject.__)('Send email'),
19527              value: 'email'
19528            }, {
19529              label: (0,external_wp_i18n_namespaceObject.__)('- Custom -'),
19530              value: 'custom'
19531            }],
19532            value: submissionMethod,
19533            onChange: value => setAttributes({
19534              submissionMethod: value
19535            }),
19536            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.')
19537          }), submissionMethod === 'email' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
19538            __nextHasNoMarginBottom: true,
19539            __next40pxDefaultSize: true,
19540            autoComplete: "off",
19541            label: (0,external_wp_i18n_namespaceObject.__)('Email for form submissions'),
19542            value: email,
19543            required: true,
19544            onChange: value => {
19545              setAttributes({
19546                email: value
19547              });
19548              setAttributes({
19549                action: `mailto:$value}`
19550              });
19551              setAttributes({
19552                method: 'post'
19553              });
19554            },
19555            help: (0,external_wp_i18n_namespaceObject.__)('The email address where form submissions will be sent. Separate multiple email addresses with a comma.'),
19556            type: "email"
19557          })]
19558        })
19559      }), submissionMethod !== 'email' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
19560        group: "advanced",
19561        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
19562          __next40pxDefaultSize: true,
19563          __nextHasNoMarginBottom: true,
19564          label: (0,external_wp_i18n_namespaceObject.__)('Method'),
19565          options: [{
19566            label: 'Get',
19567            value: 'get'
19568          }, {
19569            label: 'Post',
19570            value: 'post'
19571          }],
19572          value: method,
19573          onChange: value => setAttributes({
19574            method: value
19575          }),
19576          help: (0,external_wp_i18n_namespaceObject.__)('Select the method to use for form submissions.')
19577        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
19578          __next40pxDefaultSize: true,
19579          __nextHasNoMarginBottom: true,
19580          autoComplete: "off",
19581          label: (0,external_wp_i18n_namespaceObject.__)('Form action'),
19582          value: action,
19583          onChange: newVal => {
19584            setAttributes({
19585              action: newVal
19586            });
19587          },
19588          help: (0,external_wp_i18n_namespaceObject.__)('The URL where the form should be submitted.'),
19589          type: "url"
19590        })]
19591      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
19592        ...innerBlocksProps,
19593        className: "wp-block-form",
19594        encType: submissionMethod === 'email' ? 'text/plain' : null
19595      })]
19596    });
19597  };
19598  /* harmony default export */ const form_edit = (form_edit_Edit);
19599  
19600  ;// ./node_modules/@wordpress/block-library/build-module/form/save.js
19601  /**
19602   * WordPress dependencies
19603   */
19604  
19605  
19606  function form_save_save({
19607    attributes
19608  }) {
19609    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19610    const {
19611      submissionMethod
19612    } = attributes;
19613    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
19614      ...blockProps,
19615      className: "wp-block-form",
19616      encType: submissionMethod === 'email' ? 'text/plain' : null,
19617      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
19618    });
19619  }
19620  
19621  ;// ./node_modules/@wordpress/block-library/build-module/form/variations.js
19622  /**
19623   * WordPress dependencies
19624   */
19625  
19626  /**
19627   * Internal dependencies
19628   */
19629  
19630  const form_variations_variations = [{
19631    name: 'comment-form',
19632    title: (0,external_wp_i18n_namespaceObject.__)('Experimental Comment form'),
19633    description: (0,external_wp_i18n_namespaceObject.__)('A comment form for posts and pages.'),
19634    attributes: {
19635      submissionMethod: 'custom',
19636      action: '{SITE_URL}/wp-comments-post.php',
19637      method: 'post',
19638      anchor: 'comment-form'
19639    },
19640    isDefault: false,
19641    innerBlocks: [['core/form-input', {
19642      type: 'text',
19643      name: 'author',
19644      label: (0,external_wp_i18n_namespaceObject.__)('Name'),
19645      required: true,
19646      visibilityPermissions: 'logged-out'
19647    }], ['core/form-input', {
19648      type: 'email',
19649      name: 'email',
19650      label: (0,external_wp_i18n_namespaceObject.__)('Email'),
19651      required: true,
19652      visibilityPermissions: 'logged-out'
19653    }], ['core/form-input', {
19654      type: 'textarea',
19655      name: 'comment',
19656      label: (0,external_wp_i18n_namespaceObject.__)('Comment'),
19657      required: true,
19658      visibilityPermissions: 'all'
19659    }], ['core/form-submit-button', {}]],
19660    scope: ['inserter', 'transform'],
19661    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
19662  }, {
19663    name: 'wp-privacy-form',
19664    title: (0,external_wp_i18n_namespaceObject.__)('Experimental Privacy Request Form'),
19665    keywords: ['GDPR'],
19666    description: (0,external_wp_i18n_namespaceObject.__)('A form to request data exports and/or deletion.'),
19667    attributes: {
19668      submissionMethod: 'custom',
19669      action: '',
19670      method: 'post',
19671      anchor: 'gdpr-form'
19672    },
19673    isDefault: false,
19674    innerBlocks: [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/paragraph', {
19675      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.')
19676    }], ['core/form-input', {
19677      type: 'email',
19678      name: 'email',
19679      label: (0,external_wp_i18n_namespaceObject.__)('Enter your email address.'),
19680      required: true,
19681      visibilityPermissions: 'all'
19682    }], ['core/form-input', {
19683      type: 'checkbox',
19684      name: 'export_personal_data',
19685      label: (0,external_wp_i18n_namespaceObject.__)('Request data export'),
19686      required: false,
19687      visibilityPermissions: 'all'
19688    }], ['core/form-input', {
19689      type: 'checkbox',
19690      name: 'remove_personal_data',
19691      label: (0,external_wp_i18n_namespaceObject.__)('Request data deletion'),
19692      required: false,
19693      visibilityPermissions: 'all'
19694    }], ['core/form-submit-button', {}], ['core/form-input', {
19695      type: 'hidden',
19696      name: 'wp-action',
19697      value: 'wp_privacy_send_request'
19698    }], ['core/form-input', {
19699      type: 'hidden',
19700      name: 'wp-privacy-request',
19701      value: '1'
19702    }]],
19703    scope: ['inserter', 'transform'],
19704    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
19705  }];
19706  /* harmony default export */ const form_variations = (form_variations_variations);
19707  
19708  ;// ./node_modules/@wordpress/block-library/build-module/form/index.js
19709  /**
19710   * Internal dependencies
19711   */
19712  
19713  
19714  const form_metadata = {
19715    $schema: "https://schemas.wp.org/trunk/block.json",
19716    apiVersion: 3,
19717    __experimental: true,
19718    name: "core/form",
19719    title: "Form",
19720    category: "common",
19721    allowedBlocks: ["core/paragraph", "core/heading", "core/form-input", "core/form-submit-button", "core/form-submission-notification", "core/group", "core/columns"],
19722    description: "A form.",
19723    keywords: ["container", "wrapper", "row", "section"],
19724    textdomain: "default",
19725    icon: "feedback",
19726    attributes: {
19727      submissionMethod: {
19728        type: "string",
19729        "default": "email"
19730      },
19731      method: {
19732        type: "string",
19733        "default": "post"
19734      },
19735      action: {
19736        type: "string"
19737      },
19738      email: {
19739        type: "string"
19740      }
19741    },
19742    supports: {
19743      anchor: true,
19744      className: false,
19745      color: {
19746        gradients: true,
19747        link: true,
19748        __experimentalDefaultControls: {
19749          background: true,
19750          text: true,
19751          link: true
19752        }
19753      },
19754      spacing: {
19755        margin: true,
19756        padding: true
19757      },
19758      typography: {
19759        fontSize: true,
19760        lineHeight: true,
19761        __experimentalFontFamily: true,
19762        __experimentalTextDecoration: true,
19763        __experimentalFontStyle: true,
19764        __experimentalFontWeight: true,
19765        __experimentalLetterSpacing: true,
19766        __experimentalTextTransform: true,
19767        __experimentalDefaultControls: {
19768          fontSize: true
19769        }
19770      },
19771      __experimentalSelector: "form"
19772    }
19773  };
19774  
19775  
19776  
19777  /**
19778   * WordPress dependencies
19779   */
19780  
19781  const {
19782    name: form_name
19783  } = form_metadata;
19784  
19785  const form_settings = {
19786    edit: form_edit,
19787    save: form_save_save,
19788    variations: form_variations
19789  };
19790  const form_init = () => {
19791    // Prevent adding forms inside forms.
19792    const DISALLOWED_PARENTS = ['core/form'];
19793    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'core/block-library/preventInsertingFormIntoAnotherForm', (canInsert, blockType, rootClientId, {
19794      getBlock,
19795      getBlockParentsByBlockName
19796    }) => {
19797      if (blockType.name !== 'core/form') {
19798        return canInsert;
19799      }
19800      for (const disallowedParentType of DISALLOWED_PARENTS) {
19801        const hasDisallowedParent = getBlock(rootClientId)?.name === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
19802        if (hasDisallowedParent) {
19803          return false;
19804        }
19805      }
19806      return true;
19807    });
19808    return initBlock({
19809      name: form_name,
19810      metadata: form_metadata,
19811      settings: form_settings
19812    });
19813  };
19814  
19815  // EXTERNAL MODULE: ./node_modules/remove-accents/index.js
19816  var remove_accents = __webpack_require__(9681);
19817  var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents);
19818  ;// external ["wp","dom"]
19819  const external_wp_dom_namespaceObject = window["wp"]["dom"];
19820  ;// ./node_modules/@wordpress/block-library/build-module/form-input/deprecated.js
19821  /**
19822   * External dependencies
19823   */
19824  
19825  
19826  
19827  /**
19828   * WordPress dependencies
19829   */
19830  
19831  
19832  
19833  const getNameFromLabelV1 = content => {
19834    return remove_accents_default()((0,external_wp_dom_namespaceObject.__unstableStripHTML)(content))
19835    // Convert anything that's not a letter or number to a hyphen.
19836    .replace(/[^\p{L}\p{N}]+/gu, '-')
19837    // Convert to lowercase
19838    .toLowerCase()
19839    // Remove any remaining leading or trailing hyphens.
19840    .replace(/(^-+)|(-+$)/g, '');
19841  };
19842  const form_input_deprecated_v2 = {
19843    attributes: {
19844      type: {
19845        type: 'string',
19846        default: 'text'
19847      },
19848      name: {
19849        type: 'string'
19850      },
19851      label: {
19852        type: 'string',
19853        default: 'Label',
19854        selector: '.wp-block-form-input__label-content',
19855        source: 'html',
19856        role: 'content'
19857      },
19858      inlineLabel: {
19859        type: 'boolean',
19860        default: false
19861      },
19862      required: {
19863        type: 'boolean',
19864        default: false,
19865        selector: '.wp-block-form-input__input',
19866        source: 'attribute',
19867        attribute: 'required'
19868      },
19869      placeholder: {
19870        type: 'string',
19871        selector: '.wp-block-form-input__input',
19872        source: 'attribute',
19873        attribute: 'placeholder',
19874        role: 'content'
19875      },
19876      value: {
19877        type: 'string',
19878        default: '',
19879        selector: 'input',
19880        source: 'attribute',
19881        attribute: 'value'
19882      },
19883      visibilityPermissions: {
19884        type: 'string',
19885        default: 'all'
19886      }
19887    },
19888    supports: {
19889      anchor: true,
19890      reusable: false,
19891      spacing: {
19892        margin: ['top', 'bottom']
19893      },
19894      __experimentalBorder: {
19895        radius: true,
19896        __experimentalSkipSerialization: true,
19897        __experimentalDefaultControls: {
19898          radius: true
19899        }
19900      }
19901    },
19902    save({
19903      attributes
19904    }) {
19905      const {
19906        type,
19907        name,
19908        label,
19909        inlineLabel,
19910        required,
19911        placeholder,
19912        value
19913      } = attributes;
19914      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
19915      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
19916      const inputStyle = {
19917        ...borderProps.style,
19918        ...colorProps.style
19919      };
19920      const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
19921      const TagName = type === 'textarea' ? 'textarea' : 'input';
19922      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
19923      if ('hidden' === type) {
19924        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
19925          type: type,
19926          name: name,
19927          value: value
19928        });
19929      }
19930      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
19931        ...blockProps,
19932        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
19933          className: dist_clsx('wp-block-form-input__label', {
19934            'is-label-inline': inlineLabel
19935          }),
19936          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
19937            className: "wp-block-form-input__label-content",
19938            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
19939              value: label
19940            })
19941          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
19942            className: inputClasses,
19943            type: 'textarea' === type ? undefined : type,
19944            name: name || getNameFromLabelV1(label),
19945            required: required,
19946            "aria-required": required,
19947            placeholder: placeholder || undefined,
19948            style: inputStyle
19949          })]
19950        })
19951      });
19952    }
19953  };
19954  
19955  // Version without wrapper div in saved markup
19956  // See: https://github.com/WordPress/gutenberg/pull/56507
19957  const form_input_deprecated_v1 = {
19958    attributes: {
19959      type: {
19960        type: 'string',
19961        default: 'text'
19962      },
19963      name: {
19964        type: 'string'
19965      },
19966      label: {
19967        type: 'string',
19968        default: 'Label',
19969        selector: '.wp-block-form-input__label-content',
19970        source: 'html',
19971        role: 'content'
19972      },
19973      inlineLabel: {
19974        type: 'boolean',
19975        default: false
19976      },
19977      required: {
19978        type: 'boolean',
19979        default: false,
19980        selector: '.wp-block-form-input__input',
19981        source: 'attribute',
19982        attribute: 'required'
19983      },
19984      placeholder: {
19985        type: 'string',
19986        selector: '.wp-block-form-input__input',
19987        source: 'attribute',
19988        attribute: 'placeholder',
19989        role: 'content'
19990      },
19991      value: {
19992        type: 'string',
19993        default: '',
19994        selector: 'input',
19995        source: 'attribute',
19996        attribute: 'value'
19997      },
19998      visibilityPermissions: {
19999        type: 'string',
20000        default: 'all'
20001      }
20002    },
20003    supports: {
20004      className: false,
20005      anchor: true,
20006      reusable: false,
20007      spacing: {
20008        margin: ['top', 'bottom']
20009      },
20010      __experimentalBorder: {
20011        radius: true,
20012        __experimentalSkipSerialization: true,
20013        __experimentalDefaultControls: {
20014          radius: true
20015        }
20016      }
20017    },
20018    save({
20019      attributes
20020    }) {
20021      const {
20022        type,
20023        name,
20024        label,
20025        inlineLabel,
20026        required,
20027        placeholder,
20028        value
20029      } = attributes;
20030      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
20031      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
20032      const inputStyle = {
20033        ...borderProps.style,
20034        ...colorProps.style
20035      };
20036      const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
20037      const TagName = type === 'textarea' ? 'textarea' : 'input';
20038      if ('hidden' === type) {
20039        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
20040          type: type,
20041          name: name,
20042          value: value
20043        });
20044      }
20045  
20046      /* eslint-disable jsx-a11y/label-has-associated-control */
20047      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
20048        className: dist_clsx('wp-block-form-input__label', {
20049          'is-label-inline': inlineLabel
20050        }),
20051        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
20052          className: "wp-block-form-input__label-content",
20053          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20054            value: label
20055          })
20056        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
20057          className: inputClasses,
20058          type: 'textarea' === type ? undefined : type,
20059          name: name || getNameFromLabelV1(label),
20060          required: required,
20061          "aria-required": required,
20062          placeholder: placeholder || undefined,
20063          style: inputStyle
20064        })]
20065      });
20066      /* eslint-enable jsx-a11y/label-has-associated-control */
20067    }
20068  };
20069  const form_input_deprecated_deprecated = [form_input_deprecated_v2, form_input_deprecated_v1];
20070  /* harmony default export */ const form_input_deprecated = (form_input_deprecated_deprecated);
20071  
20072  ;// ./node_modules/@wordpress/block-library/build-module/form-input/edit.js
20073  /**
20074   * External dependencies
20075   */
20076  
20077  
20078  /**
20079   * WordPress dependencies
20080   */
20081  
20082  
20083  
20084  
20085  
20086  function InputFieldBlock({
20087    attributes,
20088    setAttributes,
20089    className
20090  }) {
20091    const {
20092      type,
20093      name,
20094      label,
20095      inlineLabel,
20096      required,
20097      placeholder,
20098      value
20099    } = attributes;
20100    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
20101    const ref = (0,external_wp_element_namespaceObject.useRef)();
20102    const TagName = type === 'textarea' ? 'textarea' : 'input';
20103    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
20104    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
20105    if (ref.current) {
20106      ref.current.focus();
20107    }
20108  
20109    // Note: radio inputs aren't implemented yet.
20110    const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
20111    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
20112      children: ['hidden' !== type && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
20113        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
20114          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
20115          children: ['checkbox' !== type && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
20116            __nextHasNoMarginBottom: true,
20117            label: (0,external_wp_i18n_namespaceObject.__)('Inline label'),
20118            checked: inlineLabel,
20119            onChange: newVal => {
20120              setAttributes({
20121                inlineLabel: newVal
20122              });
20123            }
20124          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
20125            __nextHasNoMarginBottom: true,
20126            label: (0,external_wp_i18n_namespaceObject.__)('Required'),
20127            checked: required,
20128            onChange: newVal => {
20129              setAttributes({
20130                required: newVal
20131              });
20132            }
20133          })]
20134        })
20135      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
20136        group: "advanced",
20137        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
20138          __next40pxDefaultSize: true,
20139          __nextHasNoMarginBottom: true,
20140          autoComplete: "off",
20141          label: (0,external_wp_i18n_namespaceObject.__)('Name'),
20142          value: name,
20143          onChange: newVal => {
20144            setAttributes({
20145              name: newVal
20146            });
20147          },
20148          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.')
20149        })
20150      })]
20151    });
20152    const content = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
20153      tagName: "span",
20154      className: "wp-block-form-input__label-content",
20155      value: label,
20156      onChange: newLabel => setAttributes({
20157        label: newLabel
20158      }),
20159      "aria-label": label ? (0,external_wp_i18n_namespaceObject.__)('Label') : (0,external_wp_i18n_namespaceObject.__)('Empty label'),
20160      "data-empty": !label,
20161      placeholder: (0,external_wp_i18n_namespaceObject.__)('Type the label for this input')
20162    });
20163    if ('hidden' === type) {
20164      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
20165        children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
20166          type: "hidden",
20167          className: dist_clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
20168          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Value'),
20169          value: value,
20170          onChange: event => setAttributes({
20171            value: event.target.value
20172          })
20173        })]
20174      });
20175    }
20176    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
20177      ...blockProps,
20178      children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
20179        className: dist_clsx('wp-block-form-input__label', {
20180          'is-label-inline': inlineLabel || 'checkbox' === type
20181        }),
20182        children: [!isCheckboxOrRadio && content, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
20183          type: 'textarea' === type ? undefined : type,
20184          className: dist_clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
20185          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text')
20186          // We hide the placeholder field's placeholder when there is a value. This
20187          // stops screen readers from reading the placeholder field's placeholder
20188          // which is confusing.
20189          ,
20190          placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
20191          value: placeholder,
20192          onChange: event => setAttributes({
20193            placeholder: event.target.value
20194          }),
20195          "aria-required": required,
20196          style: {
20197            ...borderProps.style,
20198            ...colorProps.style
20199          }
20200        }), isCheckboxOrRadio && content]
20201      })]
20202    });
20203  }
20204  /* harmony default export */ const form_input_edit = (InputFieldBlock);
20205  
20206  ;// ./node_modules/@wordpress/block-library/build-module/form-input/save.js
20207  /**
20208   * External dependencies
20209   */
20210  
20211  
20212  
20213  /**
20214   * WordPress dependencies
20215   */
20216  
20217  
20218  
20219  /**
20220   * Get the name attribute from a content string.
20221   *
20222   * @param {string} content The block content.
20223   *
20224   * @return {string} Returns the slug.
20225   */
20226  
20227  const getNameFromLabel = content => {
20228    return remove_accents_default()((0,external_wp_dom_namespaceObject.__unstableStripHTML)(content))
20229    // Convert anything that's not a letter or number to a hyphen.
20230    .replace(/[^\p{L}\p{N}]+/gu, '-')
20231    // Convert to lowercase
20232    .toLowerCase()
20233    // Remove any remaining leading or trailing hyphens.
20234    .replace(/(^-+)|(-+$)/g, '');
20235  };
20236  function form_input_save_save({
20237    attributes
20238  }) {
20239    const {
20240      type,
20241      name,
20242      label,
20243      inlineLabel,
20244      required,
20245      placeholder,
20246      value
20247    } = attributes;
20248    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
20249    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
20250    const inputStyle = {
20251      ...borderProps.style,
20252      ...colorProps.style
20253    };
20254    const inputClasses = dist_clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
20255    const TagName = type === 'textarea' ? 'textarea' : 'input';
20256    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
20257  
20258    // Note: radio inputs aren't implemented yet.
20259    const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
20260    if ('hidden' === type) {
20261      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
20262        type: type,
20263        name: name,
20264        value: value
20265      });
20266    }
20267    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20268      ...blockProps,
20269      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("label", {
20270        className: dist_clsx('wp-block-form-input__label', {
20271          'is-label-inline': inlineLabel
20272        }),
20273        children: [!isCheckboxOrRadio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
20274          className: "wp-block-form-input__label-content",
20275          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20276            value: label
20277          })
20278        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
20279          className: inputClasses,
20280          type: 'textarea' === type ? undefined : type,
20281          name: name || getNameFromLabel(label),
20282          required: required,
20283          "aria-required": required,
20284          placeholder: placeholder || undefined,
20285          style: inputStyle
20286        }), isCheckboxOrRadio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
20287          className: "wp-block-form-input__label-content",
20288          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
20289            value: label
20290          })
20291        })]
20292      })
20293    });
20294  }
20295  
20296  ;// ./node_modules/@wordpress/block-library/build-module/form-input/variations.js
20297  /**
20298   * WordPress dependencies
20299   */
20300  
20301  const form_input_variations_variations = [{
20302    name: 'text',
20303    title: (0,external_wp_i18n_namespaceObject.__)('Text Input'),
20304    icon: 'edit-page',
20305    description: (0,external_wp_i18n_namespaceObject.__)('A generic text input.'),
20306    attributes: {
20307      type: 'text'
20308    },
20309    isDefault: true,
20310    scope: ['inserter', 'transform'],
20311    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
20312  }, {
20313    name: 'textarea',
20314    title: (0,external_wp_i18n_namespaceObject.__)('Textarea Input'),
20315    icon: 'testimonial',
20316    description: (0,external_wp_i18n_namespaceObject.__)('A textarea input to allow entering multiple lines of text.'),
20317    attributes: {
20318      type: 'textarea'
20319    },
20320    isDefault: true,
20321    scope: ['inserter', 'transform'],
20322    isActive: blockAttributes => blockAttributes?.type === 'textarea'
20323  }, {
20324    name: 'checkbox',
20325    title: (0,external_wp_i18n_namespaceObject.__)('Checkbox Input'),
20326    description: (0,external_wp_i18n_namespaceObject.__)('A simple checkbox input.'),
20327    icon: 'forms',
20328    attributes: {
20329      type: 'checkbox',
20330      inlineLabel: true
20331    },
20332    isDefault: true,
20333    scope: ['inserter', 'transform'],
20334    isActive: blockAttributes => blockAttributes?.type === 'checkbox'
20335  }, {
20336    name: 'email',
20337    title: (0,external_wp_i18n_namespaceObject.__)('Email Input'),
20338    icon: 'email',
20339    description: (0,external_wp_i18n_namespaceObject.__)('Used for email addresses.'),
20340    attributes: {
20341      type: 'email'
20342    },
20343    isDefault: true,
20344    scope: ['inserter', 'transform'],
20345    isActive: blockAttributes => blockAttributes?.type === 'email'
20346  }, {
20347    name: 'url',
20348    title: (0,external_wp_i18n_namespaceObject.__)('URL Input'),
20349    icon: 'admin-site',
20350    description: (0,external_wp_i18n_namespaceObject.__)('Used for URLs.'),
20351    attributes: {
20352      type: 'url'
20353    },
20354    isDefault: true,
20355    scope: ['inserter', 'transform'],
20356    isActive: blockAttributes => blockAttributes?.type === 'url'
20357  }, {
20358    name: 'tel',
20359    title: (0,external_wp_i18n_namespaceObject.__)('Telephone Input'),
20360    icon: 'phone',
20361    description: (0,external_wp_i18n_namespaceObject.__)('Used for phone numbers.'),
20362    attributes: {
20363      type: 'tel'
20364    },
20365    isDefault: true,
20366    scope: ['inserter', 'transform'],
20367    isActive: blockAttributes => blockAttributes?.type === 'tel'
20368  }, {
20369    name: 'number',
20370    title: (0,external_wp_i18n_namespaceObject.__)('Number Input'),
20371    icon: 'edit-page',
20372    description: (0,external_wp_i18n_namespaceObject.__)('A numeric input.'),
20373    attributes: {
20374      type: 'number'
20375    },
20376    isDefault: true,
20377    scope: ['inserter', 'transform'],
20378    isActive: blockAttributes => blockAttributes?.type === 'number'
20379  }];
20380  /* harmony default export */ const form_input_variations = (form_input_variations_variations);
20381  
20382  ;// ./node_modules/@wordpress/block-library/build-module/form-input/index.js
20383  /**
20384   * Internal dependencies
20385   */
20386  
20387  
20388  
20389  const form_input_metadata = {
20390    $schema: "https://schemas.wp.org/trunk/block.json",
20391    apiVersion: 3,
20392    __experimental: true,
20393    name: "core/form-input",
20394    title: "Input Field",
20395    category: "common",
20396    ancestor: ["core/form"],
20397    description: "The basic building block for forms.",
20398    keywords: ["input", "form"],
20399    textdomain: "default",
20400    icon: "forms",
20401    attributes: {
20402      type: {
20403        type: "string",
20404        "default": "text"
20405      },
20406      name: {
20407        type: "string"
20408      },
20409      label: {
20410        type: "rich-text",
20411        "default": "Label",
20412        selector: ".wp-block-form-input__label-content",
20413        source: "rich-text",
20414        role: "content"
20415      },
20416      inlineLabel: {
20417        type: "boolean",
20418        "default": false
20419      },
20420      required: {
20421        type: "boolean",
20422        "default": false,
20423        selector: ".wp-block-form-input__input",
20424        source: "attribute",
20425        attribute: "required"
20426      },
20427      placeholder: {
20428        type: "string",
20429        selector: ".wp-block-form-input__input",
20430        source: "attribute",
20431        attribute: "placeholder",
20432        role: "content"
20433      },
20434      value: {
20435        type: "string",
20436        "default": "",
20437        selector: "input",
20438        source: "attribute",
20439        attribute: "value"
20440      },
20441      visibilityPermissions: {
20442        type: "string",
20443        "default": "all"
20444      }
20445    },
20446    supports: {
20447      anchor: true,
20448      reusable: false,
20449      spacing: {
20450        margin: ["top", "bottom"]
20451      },
20452      __experimentalBorder: {
20453        radius: true,
20454        __experimentalSkipSerialization: true,
20455        __experimentalDefaultControls: {
20456          radius: true
20457        }
20458      }
20459    },
20460    style: ["wp-block-form-input"]
20461  };
20462  
20463  
20464  const {
20465    name: form_input_name
20466  } = form_input_metadata;
20467  
20468  const form_input_settings = {
20469    deprecated: form_input_deprecated,
20470    edit: form_input_edit,
20471    save: form_input_save_save,
20472    variations: form_input_variations
20473  };
20474  const form_input_init = () => initBlock({
20475    name: form_input_name,
20476    metadata: form_input_metadata,
20477    settings: form_input_settings
20478  });
20479  
20480  ;// ./node_modules/@wordpress/block-library/build-module/form-submit-button/edit.js
20481  /**
20482   * WordPress dependencies
20483   */
20484  
20485  
20486  
20487  const form_submit_button_edit_TEMPLATE = [['core/buttons', {}, [['core/button', {
20488    text: (0,external_wp_i18n_namespaceObject.__)('Submit'),
20489    tagName: 'button',
20490    type: 'submit'
20491  }]]]];
20492  const form_submit_button_edit_Edit = () => {
20493    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
20494    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
20495      template: form_submit_button_edit_TEMPLATE,
20496      templateLock: 'all'
20497    });
20498    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20499      className: "wp-block-form-submit-wrapper",
20500      ...innerBlocksProps
20501    });
20502  };
20503  /* harmony default export */ const form_submit_button_edit = (form_submit_button_edit_Edit);
20504  
20505  ;// ./node_modules/@wordpress/block-library/build-module/form-submit-button/save.js
20506  /**
20507   * WordPress dependencies
20508   */
20509  
20510  
20511  function form_submit_button_save_save() {
20512    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
20513    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20514      className: "wp-block-form-submit-wrapper",
20515      ...blockProps,
20516      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
20517    });
20518  }
20519  
20520  ;// ./node_modules/@wordpress/block-library/build-module/form-submit-button/index.js
20521  /**
20522   * Internal dependencies
20523   */
20524  
20525  
20526  const form_submit_button_metadata = {
20527    $schema: "https://schemas.wp.org/trunk/block.json",
20528    apiVersion: 3,
20529    __experimental: true,
20530    name: "core/form-submit-button",
20531    title: "Form Submit Button",
20532    category: "common",
20533    icon: "button",
20534    ancestor: ["core/form"],
20535    allowedBlocks: ["core/buttons", "core/button"],
20536    description: "A submission button for forms.",
20537    keywords: ["submit", "button", "form"],
20538    textdomain: "default",
20539    style: ["wp-block-form-submit-button"]
20540  };
20541  
20542  const {
20543    name: form_submit_button_name
20544  } = form_submit_button_metadata;
20545  
20546  const form_submit_button_settings = {
20547    edit: form_submit_button_edit,
20548    save: form_submit_button_save_save
20549  };
20550  const form_submit_button_init = () => initBlock({
20551    name: form_submit_button_name,
20552    metadata: form_submit_button_metadata,
20553    settings: form_submit_button_settings
20554  });
20555  
20556  ;// ./node_modules/@wordpress/icons/build-module/library/group.js
20557  /**
20558   * WordPress dependencies
20559   */
20560  
20561  
20562  const group = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
20563    viewBox: "0 0 24 24",
20564    xmlns: "http://www.w3.org/2000/svg",
20565    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
20566      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"
20567    })
20568  });
20569  /* harmony default export */ const library_group = (group);
20570  
20571  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/edit.js
20572  /**
20573   * WordPress dependencies
20574   */
20575  
20576  
20577  
20578  
20579  /**
20580   * External dependencies
20581   */
20582  
20583  
20584  const form_submission_notification_edit_TEMPLATE = [['core/paragraph', {
20585    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.")
20586  }]];
20587  const form_submission_notification_edit_Edit = ({
20588    attributes,
20589    clientId
20590  }) => {
20591    const {
20592      type
20593    } = attributes;
20594    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
20595      className: dist_clsx('wp-block-form-submission-notification', {
20596        [`form-notification-type-$type}`]: type
20597      })
20598    });
20599    const {
20600      hasInnerBlocks
20601    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
20602      const {
20603        getBlock
20604      } = select(external_wp_blockEditor_namespaceObject.store);
20605      const block = getBlock(clientId);
20606      return {
20607        hasInnerBlocks: !!(block && block.innerBlocks.length)
20608      };
20609    }, [clientId]);
20610    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
20611      template: form_submission_notification_edit_TEMPLATE,
20612      renderAppender: hasInnerBlocks ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
20613    });
20614    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20615      ...innerBlocksProps,
20616      "data-message-success": (0,external_wp_i18n_namespaceObject.__)('Submission success notification'),
20617      "data-message-error": (0,external_wp_i18n_namespaceObject.__)('Submission error notification')
20618    });
20619  };
20620  /* harmony default export */ const form_submission_notification_edit = (form_submission_notification_edit_Edit);
20621  
20622  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/save.js
20623  /**
20624   * WordPress dependencies
20625   */
20626  
20627  
20628  /**
20629   * External dependencies
20630   */
20631  
20632  
20633  function form_submission_notification_save_save({
20634    attributes
20635  }) {
20636    const {
20637      type
20638    } = attributes;
20639    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
20640      ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save({
20641        className: dist_clsx('wp-block-form-submission-notification', {
20642          [`form-notification-type-$type}`]: type
20643        })
20644      }))
20645    });
20646  }
20647  
20648  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/variations.js
20649  /**
20650   * WordPress dependencies
20651   */
20652  
20653  const form_submission_notification_variations_variations = [{
20654    name: 'form-submission-success',
20655    title: (0,external_wp_i18n_namespaceObject.__)('Form Submission Success'),
20656    description: (0,external_wp_i18n_namespaceObject.__)('Success message for form submissions.'),
20657    attributes: {
20658      type: 'success'
20659    },
20660    isDefault: true,
20661    innerBlocks: [['core/paragraph', {
20662      content: (0,external_wp_i18n_namespaceObject.__)('Your form has been submitted successfully.'),
20663      backgroundColor: '#00D084',
20664      textColor: '#000000',
20665      style: {
20666        elements: {
20667          link: {
20668            color: {
20669              text: '#000000'
20670            }
20671          }
20672        }
20673      }
20674    }]],
20675    scope: ['inserter', 'transform'],
20676    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'success'
20677  }, {
20678    name: 'form-submission-error',
20679    title: (0,external_wp_i18n_namespaceObject.__)('Form Submission Error'),
20680    description: (0,external_wp_i18n_namespaceObject.__)('Error/failure message for form submissions.'),
20681    attributes: {
20682      type: 'error'
20683    },
20684    isDefault: false,
20685    innerBlocks: [['core/paragraph', {
20686      content: (0,external_wp_i18n_namespaceObject.__)('There was an error submitting your form.'),
20687      backgroundColor: '#CF2E2E',
20688      textColor: '#FFFFFF',
20689      style: {
20690        elements: {
20691          link: {
20692            color: {
20693              text: '#FFFFFF'
20694            }
20695          }
20696        }
20697      }
20698    }]],
20699    scope: ['inserter', 'transform'],
20700    isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'error'
20701  }];
20702  /* harmony default export */ const form_submission_notification_variations = (form_submission_notification_variations_variations);
20703  
20704  ;// ./node_modules/@wordpress/block-library/build-module/form-submission-notification/index.js
20705  /**
20706   * WordPress dependencies
20707   */
20708  
20709  
20710  /**
20711   * Internal dependencies
20712   */
20713  
20714  
20715  const form_submission_notification_metadata = {
20716    $schema: "https://schemas.wp.org/trunk/block.json",
20717    apiVersion: 3,
20718    __experimental: true,
20719    name: "core/form-submission-notification",
20720    title: "Form Submission Notification",
20721    category: "common",
20722    ancestor: ["core/form"],
20723    description: "Provide a notification message after the form has been submitted.",
20724    keywords: ["form", "feedback", "notification", "message"],
20725    textdomain: "default",
20726    icon: "feedback",
20727    attributes: {
20728      type: {
20729        type: "string",
20730        "default": "success"
20731      }
20732    }
20733  };
20734  
20735  
20736  const {
20737    name: form_submission_notification_name
20738  } = form_submission_notification_metadata;
20739  
20740  const form_submission_notification_settings = {
20741    icon: library_group,
20742    edit: form_submission_notification_edit,
20743    save: form_submission_notification_save_save,
20744    variations: form_submission_notification_variations
20745  };
20746  const form_submission_notification_init = () => initBlock({
20747    name: form_submission_notification_name,
20748    metadata: form_submission_notification_metadata,
20749    settings: form_submission_notification_settings
20750  });
20751  
20752  ;// ./node_modules/@wordpress/icons/build-module/library/gallery.js
20753  /**
20754   * WordPress dependencies
20755   */
20756  
20757  
20758  const gallery = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
20759    viewBox: "0 0 24 24",
20760    xmlns: "http://www.w3.org/2000/svg",
20761    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
20762      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",
20763      fillRule: "evenodd",
20764      clipRule: "evenodd"
20765    })
20766  });
20767  /* harmony default export */ const library_gallery = (gallery);
20768  
20769  ;// ./node_modules/@wordpress/block-library/build-module/gallery/constants.js
20770  const LINK_DESTINATION_NONE = 'none';
20771  const LINK_DESTINATION_MEDIA = 'media';
20772  const LINK_DESTINATION_LIGHTBOX = 'lightbox';
20773  const LINK_DESTINATION_ATTACHMENT = 'attachment';
20774  const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
20775  const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';
20776  
20777  ;// ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js
20778  /**
20779   * External dependencies
20780   */
20781  
20782  
20783  /**
20784   * WordPress dependencies
20785   */
20786  
20787  
20788  
20789  /**
20790   * Internal dependencies
20791   */
20792  
20793  
20794  const DEPRECATED_LINK_DESTINATION_MEDIA = 'file';
20795  const DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';
20796  
20797  /**
20798   * Original function to determine default number of columns from a block's
20799   * attributes.
20800   *
20801   * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks.
20802   *
20803   * @param {Object} attributes Block attributes.
20804   * @return {number}           Default number of columns for the gallery.
20805   */
20806  function defaultColumnsNumberV1(attributes) {
20807    return Math.min(3, attributes?.images?.length);
20808  }
20809  
20810  /**
20811   * Original function to determine new href and linkDestination values for an image block from the
20812   * supplied Gallery link destination.
20813   *
20814   * Used in deprecations: v1-6.
20815   *
20816   * @param {Object} image       Gallery image.
20817   * @param {string} destination Gallery's selected link destination.
20818   * @return {Object}            New attributes to assign to image block.
20819   */
20820  function getHrefAndDestination(image, destination) {
20821    // Need to determine the URL that the selected destination maps to.
20822    // Gutenberg and WordPress use different constants so the new link
20823    // destination also needs to be tweaked.
20824    switch (destination) {
20825      case DEPRECATED_LINK_DESTINATION_MEDIA:
20826        return {
20827          href: image?.source_url || image?.url,
20828          // eslint-disable-line camelcase
20829          linkDestination: LINK_DESTINATION_MEDIA
20830        };
20831      case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
20832        return {
20833          href: image?.link,
20834          linkDestination: LINK_DESTINATION_ATTACHMENT
20835        };
20836      case LINK_DESTINATION_MEDIA:
20837        return {
20838          href: image?.source_url || image?.url,
20839          // eslint-disable-line camelcase
20840          linkDestination: LINK_DESTINATION_MEDIA
20841        };
20842      case LINK_DESTINATION_ATTACHMENT:
20843        return {
20844          href: image?.link,
20845          linkDestination: LINK_DESTINATION_ATTACHMENT
20846        };
20847      case LINK_DESTINATION_NONE:
20848        return {
20849          href: undefined,
20850          linkDestination: LINK_DESTINATION_NONE
20851        };
20852    }
20853    return {};
20854  }
20855  function runV2Migration(attributes) {
20856    let linkTo = attributes.linkTo ? attributes.linkTo : 'none';
20857    if (linkTo === 'post') {
20858      linkTo = 'attachment';
20859    } else if (linkTo === 'file') {
20860      linkTo = 'media';
20861    }
20862    const imageBlocks = attributes.images.map(image => {
20863      return getImageBlock(image, attributes.sizeSlug, linkTo);
20864    });
20865    const {
20866      images,
20867      ids,
20868      ...restAttributes
20869    } = attributes;
20870    return [{
20871      ...restAttributes,
20872      linkTo,
20873      allowResize: false
20874    }, imageBlocks];
20875  }
20876  /**
20877   * Gets an Image block from gallery image data
20878   *
20879   * Used to migrate Galleries to nested Image InnerBlocks.
20880   *
20881   * @param {Object} image    Image properties.
20882   * @param {string} sizeSlug Gallery sizeSlug attribute.
20883   * @param {string} linkTo   Gallery linkTo attribute.
20884   * @return {Object}         Image block.
20885   */
20886  function getImageBlock(image, sizeSlug, linkTo) {
20887    return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
20888      ...(image.id && {
20889        id: parseInt(image.id)
20890      }),
20891      url: image.url,
20892      alt: image.alt,
20893      caption: image.caption,
20894      sizeSlug,
20895      ...getHrefAndDestination(image, linkTo)
20896    });
20897  }
20898  
20899  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
20900  // to the gallery figcaption element.
20901  const deprecated_v7 = {
20902    attributes: {
20903      images: {
20904        type: 'array',
20905        default: [],
20906        source: 'query',
20907        selector: '.blocks-gallery-item',
20908        query: {
20909          url: {
20910            type: 'string',
20911            source: 'attribute',
20912            selector: 'img',
20913            attribute: 'src'
20914          },
20915          fullUrl: {
20916            type: 'string',
20917            source: 'attribute',
20918            selector: 'img',
20919            attribute: 'data-full-url'
20920          },
20921          link: {
20922            type: 'string',
20923            source: 'attribute',
20924            selector: 'img',
20925            attribute: 'data-link'
20926          },
20927          alt: {
20928            type: 'string',
20929            source: 'attribute',
20930            selector: 'img',
20931            attribute: 'alt',
20932            default: ''
20933          },
20934          id: {
20935            type: 'string',
20936            source: 'attribute',
20937            selector: 'img',
20938            attribute: 'data-id'
20939          },
20940          caption: {
20941            type: 'string',
20942            source: 'html',
20943            selector: '.blocks-gallery-item__caption'
20944          }
20945        }
20946      },
20947      ids: {
20948        type: 'array',
20949        items: {
20950          type: 'number'
20951        },
20952        default: []
20953      },
20954      shortCodeTransforms: {
20955        type: 'array',
20956        default: [],
20957        items: {
20958          type: 'object'
20959        }
20960      },
20961      columns: {
20962        type: 'number',
20963        minimum: 1,
20964        maximum: 8
20965      },
20966      caption: {
20967        type: 'string',
20968        source: 'html',
20969        selector: '.blocks-gallery-caption'
20970      },
20971      imageCrop: {
20972        type: 'boolean',
20973        default: true
20974      },
20975      fixedHeight: {
20976        type: 'boolean',
20977        default: true
20978      },
20979      linkTarget: {
20980        type: 'string'
20981      },
20982      linkTo: {
20983        type: 'string'
20984      },
20985      sizeSlug: {
20986        type: 'string',
20987        default: 'large'
20988      },
20989      allowResize: {
20990        type: 'boolean',
20991        default: false
20992      }
20993    },
20994    save({
20995      attributes
20996    }) {
20997      const {
20998        caption,
20999        columns,
21000        imageCrop
21001      } = attributes;
21002      const className = dist_clsx('has-nested-images', {
21003        [`columns-$columns}`]: columns !== undefined,
21004        [`columns-default`]: columns === undefined,
21005        'is-cropped': imageCrop
21006      });
21007      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
21008        className
21009      });
21010      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
21011      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21012        ...innerBlocksProps,
21013        children: [innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21014          tagName: "figcaption",
21015          className: "blocks-gallery-caption",
21016          value: caption
21017        })]
21018      });
21019    }
21020  };
21021  const deprecated_v6 = {
21022    attributes: {
21023      images: {
21024        type: 'array',
21025        default: [],
21026        source: 'query',
21027        selector: '.blocks-gallery-item',
21028        query: {
21029          url: {
21030            type: 'string',
21031            source: 'attribute',
21032            selector: 'img',
21033            attribute: 'src'
21034          },
21035          fullUrl: {
21036            type: 'string',
21037            source: 'attribute',
21038            selector: 'img',
21039            attribute: 'data-full-url'
21040          },
21041          link: {
21042            type: 'string',
21043            source: 'attribute',
21044            selector: 'img',
21045            attribute: 'data-link'
21046          },
21047          alt: {
21048            type: 'string',
21049            source: 'attribute',
21050            selector: 'img',
21051            attribute: 'alt',
21052            default: ''
21053          },
21054          id: {
21055            type: 'string',
21056            source: 'attribute',
21057            selector: 'img',
21058            attribute: 'data-id'
21059          },
21060          caption: {
21061            type: 'string',
21062            source: 'html',
21063            selector: '.blocks-gallery-item__caption'
21064          }
21065        }
21066      },
21067      ids: {
21068        type: 'array',
21069        items: {
21070          type: 'number'
21071        },
21072        default: []
21073      },
21074      columns: {
21075        type: 'number',
21076        minimum: 1,
21077        maximum: 8
21078      },
21079      caption: {
21080        type: 'string',
21081        source: 'html',
21082        selector: '.blocks-gallery-caption'
21083      },
21084      imageCrop: {
21085        type: 'boolean',
21086        default: true
21087      },
21088      fixedHeight: {
21089        type: 'boolean',
21090        default: true
21091      },
21092      linkTo: {
21093        type: 'string'
21094      },
21095      sizeSlug: {
21096        type: 'string',
21097        default: 'large'
21098      }
21099    },
21100    supports: {
21101      anchor: true,
21102      align: true
21103    },
21104    save({
21105      attributes
21106    }) {
21107      const {
21108        images,
21109        columns = defaultColumnsNumberV1(attributes),
21110        imageCrop,
21111        caption,
21112        linkTo
21113      } = attributes;
21114      const className = `columns-$columns} $imageCrop ? 'is-cropped' : ''}`;
21115      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21116        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
21117          className
21118        }),
21119        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21120          className: "blocks-gallery-grid",
21121          children: images.map(image => {
21122            let href;
21123            switch (linkTo) {
21124              case DEPRECATED_LINK_DESTINATION_MEDIA:
21125                href = image.fullUrl || image.url;
21126                break;
21127              case DEPRECATED_LINK_DESTINATION_ATTACHMENT:
21128                href = image.link;
21129                break;
21130            }
21131            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21132              src: image.url,
21133              alt: image.alt,
21134              "data-id": image.id,
21135              "data-full-url": image.fullUrl,
21136              "data-link": image.link,
21137              className: image.id ? `wp-image-$image.id}` : null
21138            });
21139            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21140              className: "blocks-gallery-item",
21141              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21142                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21143                  href: href,
21144                  children: img
21145                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21146                  tagName: "figcaption",
21147                  className: "blocks-gallery-item__caption",
21148                  value: image.caption
21149                })]
21150              })
21151            }, image.id || image.url);
21152          })
21153        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21154          tagName: "figcaption",
21155          className: "blocks-gallery-caption",
21156          value: caption
21157        })]
21158      });
21159    },
21160    migrate(attributes) {
21161      return runV2Migration(attributes);
21162    }
21163  };
21164  const deprecated_v5 = {
21165    attributes: {
21166      images: {
21167        type: 'array',
21168        default: [],
21169        source: 'query',
21170        selector: '.blocks-gallery-item',
21171        query: {
21172          url: {
21173            type: 'string',
21174            source: 'attribute',
21175            selector: 'img',
21176            attribute: 'src'
21177          },
21178          fullUrl: {
21179            type: 'string',
21180            source: 'attribute',
21181            selector: 'img',
21182            attribute: 'data-full-url'
21183          },
21184          link: {
21185            type: 'string',
21186            source: 'attribute',
21187            selector: 'img',
21188            attribute: 'data-link'
21189          },
21190          alt: {
21191            type: 'string',
21192            source: 'attribute',
21193            selector: 'img',
21194            attribute: 'alt',
21195            default: ''
21196          },
21197          id: {
21198            type: 'string',
21199            source: 'attribute',
21200            selector: 'img',
21201            attribute: 'data-id'
21202          },
21203          caption: {
21204            type: 'string',
21205            source: 'html',
21206            selector: '.blocks-gallery-item__caption'
21207          }
21208        }
21209      },
21210      ids: {
21211        type: 'array',
21212        items: {
21213          type: 'number'
21214        },
21215        default: []
21216      },
21217      columns: {
21218        type: 'number',
21219        minimum: 1,
21220        maximum: 8
21221      },
21222      caption: {
21223        type: 'string',
21224        source: 'html',
21225        selector: '.blocks-gallery-caption'
21226      },
21227      imageCrop: {
21228        type: 'boolean',
21229        default: true
21230      },
21231      linkTo: {
21232        type: 'string',
21233        default: 'none'
21234      },
21235      sizeSlug: {
21236        type: 'string',
21237        default: 'large'
21238      }
21239    },
21240    supports: {
21241      align: true
21242    },
21243    isEligible({
21244      linkTo
21245    }) {
21246      return !linkTo || linkTo === 'attachment' || linkTo === 'media';
21247    },
21248    migrate(attributes) {
21249      return runV2Migration(attributes);
21250    },
21251    save({
21252      attributes
21253    }) {
21254      const {
21255        images,
21256        columns = defaultColumnsNumberV1(attributes),
21257        imageCrop,
21258        caption,
21259        linkTo
21260      } = attributes;
21261      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21262        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21263        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21264          className: "blocks-gallery-grid",
21265          children: images.map(image => {
21266            let href;
21267            switch (linkTo) {
21268              case 'media':
21269                href = image.fullUrl || image.url;
21270                break;
21271              case 'attachment':
21272                href = image.link;
21273                break;
21274            }
21275            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21276              src: image.url,
21277              alt: image.alt,
21278              "data-id": image.id,
21279              "data-full-url": image.fullUrl,
21280              "data-link": image.link,
21281              className: image.id ? `wp-image-$image.id}` : null
21282            });
21283            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21284              className: "blocks-gallery-item",
21285              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21286                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21287                  href: href,
21288                  children: img
21289                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21290                  tagName: "figcaption",
21291                  className: "blocks-gallery-item__caption",
21292                  value: image.caption
21293                })]
21294              })
21295            }, image.id || image.url);
21296          })
21297        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21298          tagName: "figcaption",
21299          className: "blocks-gallery-caption",
21300          value: caption
21301        })]
21302      });
21303    }
21304  };
21305  const deprecated_v4 = {
21306    attributes: {
21307      images: {
21308        type: 'array',
21309        default: [],
21310        source: 'query',
21311        selector: '.blocks-gallery-item',
21312        query: {
21313          url: {
21314            source: 'attribute',
21315            selector: 'img',
21316            attribute: 'src'
21317          },
21318          fullUrl: {
21319            source: 'attribute',
21320            selector: 'img',
21321            attribute: 'data-full-url'
21322          },
21323          link: {
21324            source: 'attribute',
21325            selector: 'img',
21326            attribute: 'data-link'
21327          },
21328          alt: {
21329            source: 'attribute',
21330            selector: 'img',
21331            attribute: 'alt',
21332            default: ''
21333          },
21334          id: {
21335            source: 'attribute',
21336            selector: 'img',
21337            attribute: 'data-id'
21338          },
21339          caption: {
21340            type: 'string',
21341            source: 'html',
21342            selector: '.blocks-gallery-item__caption'
21343          }
21344        }
21345      },
21346      ids: {
21347        type: 'array',
21348        default: []
21349      },
21350      columns: {
21351        type: 'number'
21352      },
21353      caption: {
21354        type: 'string',
21355        source: 'html',
21356        selector: '.blocks-gallery-caption'
21357      },
21358      imageCrop: {
21359        type: 'boolean',
21360        default: true
21361      },
21362      linkTo: {
21363        type: 'string',
21364        default: 'none'
21365      }
21366    },
21367    supports: {
21368      align: true
21369    },
21370    isEligible({
21371      ids
21372    }) {
21373      return ids && ids.some(id => typeof id === 'string');
21374    },
21375    migrate(attributes) {
21376      return runV2Migration(attributes);
21377    },
21378    save({
21379      attributes
21380    }) {
21381      const {
21382        images,
21383        columns = defaultColumnsNumberV1(attributes),
21384        imageCrop,
21385        caption,
21386        linkTo
21387      } = attributes;
21388      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21389        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21390        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21391          className: "blocks-gallery-grid",
21392          children: images.map(image => {
21393            let href;
21394            switch (linkTo) {
21395              case 'media':
21396                href = image.fullUrl || image.url;
21397                break;
21398              case 'attachment':
21399                href = image.link;
21400                break;
21401            }
21402            const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21403              src: image.url,
21404              alt: image.alt,
21405              "data-id": image.id,
21406              "data-full-url": image.fullUrl,
21407              "data-link": image.link,
21408              className: image.id ? `wp-image-$image.id}` : null
21409            });
21410            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21411              className: "blocks-gallery-item",
21412              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21413                children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21414                  href: href,
21415                  children: img
21416                }) : img, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(image.caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21417                  tagName: "figcaption",
21418                  className: "blocks-gallery-item__caption",
21419                  value: image.caption
21420                })]
21421              })
21422            }, image.id || image.url);
21423          })
21424        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21425          tagName: "figcaption",
21426          className: "blocks-gallery-caption",
21427          value: caption
21428        })]
21429      });
21430    }
21431  };
21432  const gallery_deprecated_v3 = {
21433    attributes: {
21434      images: {
21435        type: 'array',
21436        default: [],
21437        source: 'query',
21438        selector: 'ul.wp-block-gallery .blocks-gallery-item',
21439        query: {
21440          url: {
21441            source: 'attribute',
21442            selector: 'img',
21443            attribute: 'src'
21444          },
21445          fullUrl: {
21446            source: 'attribute',
21447            selector: 'img',
21448            attribute: 'data-full-url'
21449          },
21450          alt: {
21451            source: 'attribute',
21452            selector: 'img',
21453            attribute: 'alt',
21454            default: ''
21455          },
21456          id: {
21457            source: 'attribute',
21458            selector: 'img',
21459            attribute: 'data-id'
21460          },
21461          link: {
21462            source: 'attribute',
21463            selector: 'img',
21464            attribute: 'data-link'
21465          },
21466          caption: {
21467            type: 'string',
21468            source: 'html',
21469            selector: 'figcaption'
21470          }
21471        }
21472      },
21473      ids: {
21474        type: 'array',
21475        default: []
21476      },
21477      columns: {
21478        type: 'number'
21479      },
21480      imageCrop: {
21481        type: 'boolean',
21482        default: true
21483      },
21484      linkTo: {
21485        type: 'string',
21486        default: 'none'
21487      }
21488    },
21489    supports: {
21490      align: true
21491    },
21492    save({
21493      attributes
21494    }) {
21495      const {
21496        images,
21497        columns = defaultColumnsNumberV1(attributes),
21498        imageCrop,
21499        linkTo
21500      } = attributes;
21501      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21502        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21503        children: images.map(image => {
21504          let href;
21505          switch (linkTo) {
21506            case 'media':
21507              href = image.fullUrl || image.url;
21508              break;
21509            case 'attachment':
21510              href = image.link;
21511              break;
21512          }
21513          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21514            src: image.url,
21515            alt: image.alt,
21516            "data-id": image.id,
21517            "data-full-url": image.fullUrl,
21518            "data-link": image.link,
21519            className: image.id ? `wp-image-$image.id}` : null
21520          });
21521          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21522            className: "blocks-gallery-item",
21523            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21524              children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21525                href: href,
21526                children: img
21527              }) : img, image.caption && image.caption.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21528                tagName: "figcaption",
21529                value: image.caption
21530              })]
21531            })
21532          }, image.id || image.url);
21533        })
21534      });
21535    },
21536    migrate(attributes) {
21537      return runV2Migration(attributes);
21538    }
21539  };
21540  const gallery_deprecated_v2 = {
21541    attributes: {
21542      images: {
21543        type: 'array',
21544        default: [],
21545        source: 'query',
21546        selector: 'ul.wp-block-gallery .blocks-gallery-item',
21547        query: {
21548          url: {
21549            source: 'attribute',
21550            selector: 'img',
21551            attribute: 'src'
21552          },
21553          alt: {
21554            source: 'attribute',
21555            selector: 'img',
21556            attribute: 'alt',
21557            default: ''
21558          },
21559          id: {
21560            source: 'attribute',
21561            selector: 'img',
21562            attribute: 'data-id'
21563          },
21564          link: {
21565            source: 'attribute',
21566            selector: 'img',
21567            attribute: 'data-link'
21568          },
21569          caption: {
21570            type: 'string',
21571            source: 'html',
21572            selector: 'figcaption'
21573          }
21574        }
21575      },
21576      columns: {
21577        type: 'number'
21578      },
21579      imageCrop: {
21580        type: 'boolean',
21581        default: true
21582      },
21583      linkTo: {
21584        type: 'string',
21585        default: 'none'
21586      }
21587    },
21588    isEligible({
21589      images,
21590      ids
21591    }) {
21592      return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || images.some((id, index) => {
21593        if (!id && ids[index] !== null) {
21594          return true;
21595        }
21596        return parseInt(id, 10) !== ids[index];
21597      }));
21598    },
21599    migrate(attributes) {
21600      return runV2Migration(attributes);
21601    },
21602    supports: {
21603      align: true
21604    },
21605    save({
21606      attributes
21607    }) {
21608      const {
21609        images,
21610        columns = defaultColumnsNumberV1(attributes),
21611        imageCrop,
21612        linkTo
21613      } = attributes;
21614      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
21615        className: `columns-$columns} $imageCrop ? 'is-cropped' : ''}`,
21616        children: images.map(image => {
21617          let href;
21618          switch (linkTo) {
21619            case 'media':
21620              href = image.url;
21621              break;
21622            case 'attachment':
21623              href = image.link;
21624              break;
21625          }
21626          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21627            src: image.url,
21628            alt: image.alt,
21629            "data-id": image.id,
21630            "data-link": image.link,
21631            className: image.id ? `wp-image-$image.id}` : null
21632          });
21633          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
21634            className: "blocks-gallery-item",
21635            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21636              children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21637                href: href,
21638                children: img
21639              }) : img, image.caption && image.caption.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
21640                tagName: "figcaption",
21641                value: image.caption
21642              })]
21643            })
21644          }, image.id || image.url);
21645        })
21646      });
21647    }
21648  };
21649  const gallery_deprecated_v1 = {
21650    attributes: {
21651      images: {
21652        type: 'array',
21653        default: [],
21654        source: 'query',
21655        selector: 'div.wp-block-gallery figure.blocks-gallery-image img',
21656        query: {
21657          url: {
21658            source: 'attribute',
21659            attribute: 'src'
21660          },
21661          alt: {
21662            source: 'attribute',
21663            attribute: 'alt',
21664            default: ''
21665          },
21666          id: {
21667            source: 'attribute',
21668            attribute: 'data-id'
21669          }
21670        }
21671      },
21672      columns: {
21673        type: 'number'
21674      },
21675      imageCrop: {
21676        type: 'boolean',
21677        default: true
21678      },
21679      linkTo: {
21680        type: 'string',
21681        default: 'none'
21682      },
21683      align: {
21684        type: 'string',
21685        default: 'none'
21686      }
21687    },
21688    supports: {
21689      align: true
21690    },
21691    save({
21692      attributes
21693    }) {
21694      const {
21695        images,
21696        columns = defaultColumnsNumberV1(attributes),
21697        align,
21698        imageCrop,
21699        linkTo
21700      } = attributes;
21701      const className = dist_clsx(`columns-$columns}`, {
21702        alignnone: align === 'none',
21703        'is-cropped': imageCrop
21704      });
21705      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
21706        className: className,
21707        children: images.map(image => {
21708          let href;
21709          switch (linkTo) {
21710            case 'media':
21711              href = image.url;
21712              break;
21713            case 'attachment':
21714              href = image.link;
21715              break;
21716          }
21717          const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
21718            src: image.url,
21719            alt: image.alt,
21720            "data-id": image.id
21721          });
21722          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
21723            className: "blocks-gallery-image",
21724            children: href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
21725              href: href,
21726              children: img
21727            }) : img
21728          }, image.id || image.url);
21729        })
21730      });
21731    },
21732    migrate(attributes) {
21733      return runV2Migration(attributes);
21734    }
21735  };
21736  /* harmony default export */ const gallery_deprecated = ([deprecated_v7, deprecated_v6, deprecated_v5, deprecated_v4, gallery_deprecated_v3, gallery_deprecated_v2, gallery_deprecated_v1]);
21737  
21738  ;// ./node_modules/@wordpress/icons/build-module/library/custom-link.js
21739  /**
21740   * WordPress dependencies
21741   */
21742  
21743  
21744  const customLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
21745    xmlns: "http://www.w3.org/2000/svg",
21746    viewBox: "0 0 24 24",
21747    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
21748      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"
21749    })
21750  });
21751  /* harmony default export */ const custom_link = (customLink);
21752  
21753  ;// ./node_modules/@wordpress/icons/build-module/library/image.js
21754  /**
21755   * WordPress dependencies
21756   */
21757  
21758  
21759  const image_image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
21760    viewBox: "0 0 24 24",
21761    xmlns: "http://www.w3.org/2000/svg",
21762    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
21763      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"
21764    })
21765  });
21766  /* harmony default export */ const library_image = (image_image);
21767  
21768  ;// ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js
21769  /**
21770   * WordPress dependencies
21771   */
21772  
21773  
21774  
21775  const sharedIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
21776    icon: library_gallery
21777  });
21778  
21779  ;// ./node_modules/@wordpress/block-library/build-module/gallery/shared.js
21780  function defaultColumnsNumber(imageCount) {
21781    return imageCount ? Math.min(3, imageCount) : 3;
21782  }
21783  const pickRelevantMediaFiles = (image, sizeSlug = 'large') => {
21784    const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link'].includes(key)));
21785    imageProps.url = image?.sizes?.[sizeSlug]?.url || image?.media_details?.sizes?.[sizeSlug]?.source_url || image?.url || image?.source_url;
21786    const fullUrl = image?.sizes?.full?.url || image?.media_details?.sizes?.full?.source_url;
21787    if (fullUrl) {
21788      imageProps.fullUrl = fullUrl;
21789    }
21790    return imageProps;
21791  };
21792  
21793  ;// ./node_modules/@wordpress/block-library/build-module/image/constants.js
21794  const constants_MIN_SIZE = 20;
21795  const constants_LINK_DESTINATION_NONE = 'none';
21796  const constants_LINK_DESTINATION_MEDIA = 'media';
21797  const constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
21798  const LINK_DESTINATION_CUSTOM = 'custom';
21799  const constants_NEW_TAB_REL = ['noreferrer', 'noopener'];
21800  const constants_ALLOWED_MEDIA_TYPES = ['image'];
21801  const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0;
21802  
21803  ;// ./node_modules/@wordpress/block-library/build-module/gallery/utils.js
21804  /**
21805   * Internal dependencies
21806   */
21807  
21808  
21809  
21810  /**
21811   * Determines new href and linkDestination values for an Image block from the
21812   * supplied Gallery link destination, or falls back to the Image blocks link.
21813   *
21814   * @param {Object} image              Gallery image.
21815   * @param {string} galleryDestination Gallery's selected link destination.
21816   * @param {Object} imageDestination   Image block link destination attribute.
21817   * @param {Object} attributes         Block attributes.
21818   * @param {Object} lightboxSetting    Lightbox setting.
21819   *
21820   * @return {Object}            New attributes to assign to image block.
21821   */
21822  function utils_getHrefAndDestination(image, galleryDestination, imageDestination, attributes, lightboxSetting) {
21823    // Gutenberg and WordPress use different constants so if image_default_link_type
21824    // option is set we need to map from the WP Core values.
21825    switch (imageDestination ? imageDestination : galleryDestination) {
21826      case LINK_DESTINATION_MEDIA_WP_CORE:
21827      case LINK_DESTINATION_MEDIA:
21828        return {
21829          href: image?.source_url || image?.url,
21830          // eslint-disable-line camelcase
21831          linkDestination: constants_LINK_DESTINATION_MEDIA,
21832          lightbox: lightboxSetting?.enabled ? {
21833            ...attributes?.lightbox,
21834            enabled: false
21835          } : undefined
21836        };
21837      case LINK_DESTINATION_ATTACHMENT_WP_CORE:
21838      case LINK_DESTINATION_ATTACHMENT:
21839        return {
21840          href: image?.link,
21841          linkDestination: constants_LINK_DESTINATION_ATTACHMENT,
21842          lightbox: lightboxSetting?.enabled ? {
21843            ...attributes?.lightbox,
21844            enabled: false
21845          } : undefined
21846        };
21847      case LINK_DESTINATION_LIGHTBOX:
21848        return {
21849          href: undefined,
21850          lightbox: !lightboxSetting?.enabled ? {
21851            ...attributes?.lightbox,
21852            enabled: true
21853          } : undefined,
21854          linkDestination: constants_LINK_DESTINATION_NONE
21855        };
21856      case LINK_DESTINATION_NONE:
21857        return {
21858          href: undefined,
21859          linkDestination: constants_LINK_DESTINATION_NONE,
21860          lightbox: undefined
21861        };
21862    }
21863    return {};
21864  }
21865  
21866  ;// ./node_modules/@wordpress/block-library/build-module/image/utils.js
21867  /**
21868   * Internal dependencies
21869   */
21870  
21871  
21872  /**
21873   * Evaluates a CSS aspect-ratio property value as a number.
21874   *
21875   * Degenerate or invalid ratios behave as 'auto'. And 'auto' ratios return NaN.
21876   *
21877   * @see https://drafts.csswg.org/css-sizing-4/#aspect-ratio
21878   *
21879   * @param {string} value CSS aspect-ratio property value.
21880   * @return {number} Numerical aspect ratio or NaN if invalid.
21881   */
21882  function evalAspectRatio(value) {
21883    const [width, height = 1] = value.split('/').map(Number);
21884    const aspectRatio = width / height;
21885    return aspectRatio === Infinity || aspectRatio === 0 ? NaN : aspectRatio;
21886  }
21887  function removeNewTabRel(currentRel) {
21888    let newRel = currentRel;
21889    if (currentRel !== undefined && newRel) {
21890      constants_NEW_TAB_REL.forEach(relVal => {
21891        const regExp = new RegExp('\\b' + relVal + '\\b', 'gi');
21892        newRel = newRel.replace(regExp, '');
21893      });
21894  
21895      // Only trim if NEW_TAB_REL values was replaced.
21896      if (newRel !== currentRel) {
21897        newRel = newRel.trim();
21898      }
21899      if (!newRel) {
21900        newRel = undefined;
21901      }
21902    }
21903    return newRel;
21904  }
21905  
21906  /**
21907   * Helper to get the link target settings to be stored.
21908   *
21909   * @param {boolean} value          The new link target value.
21910   * @param {Object}  attributes     Block attributes.
21911   * @param {Object}  attributes.rel Image block's rel attribute.
21912   *
21913   * @return {Object} Updated link target settings.
21914   */
21915  function getUpdatedLinkTargetSettings(value, {
21916    rel
21917  }) {
21918    const linkTarget = value ? '_blank' : undefined;
21919    let updatedRel;
21920    if (!linkTarget && !rel) {
21921      updatedRel = undefined;
21922    } else {
21923      updatedRel = removeNewTabRel(rel);
21924    }
21925    return {
21926      linkTarget,
21927      rel: updatedRel
21928    };
21929  }
21930  
21931  /**
21932   * Determines new Image block attributes size selection.
21933   *
21934   * @param {Object} image Media file object for gallery image.
21935   * @param {string} size  Selected size slug to apply.
21936   */
21937  function getImageSizeAttributes(image, size) {
21938    const url = image?.media_details?.sizes?.[size]?.source_url;
21939    if (url) {
21940      return {
21941        url,
21942        width: undefined,
21943        height: undefined,
21944        sizeSlug: size
21945      };
21946    }
21947    return {};
21948  }
21949  
21950  /**
21951   * Checks if the file has a valid file type.
21952   *
21953   * @param {File} file - The file to check.
21954   * @return {boolean} - Returns true if the file has a valid file type, otherwise false.
21955   */
21956  function isValidFileType(file) {
21957    return constants_ALLOWED_MEDIA_TYPES.some(mediaType => file.type.indexOf(mediaType) === 0);
21958  }
21959  
21960  ;// ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js
21961  /**
21962   * External dependencies
21963   */
21964  
21965  
21966  /**
21967   * WordPress dependencies
21968   */
21969  
21970  
21971  
21972  /**
21973   * Internal dependencies
21974   */
21975  
21976  
21977  function Gallery(props) {
21978    const {
21979      attributes,
21980      isSelected,
21981      setAttributes,
21982      mediaPlaceholder,
21983      insertBlocksAfter,
21984      blockProps,
21985      __unstableLayoutClassNames: layoutClassNames,
21986      isContentLocked,
21987      multiGallerySelection
21988    } = props;
21989    const {
21990      align,
21991      columns,
21992      imageCrop
21993    } = attributes;
21994    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
21995      ...blockProps,
21996      className: dist_clsx(blockProps.className, layoutClassNames, 'blocks-gallery-grid', {
21997        [`align$align}`]: align,
21998        [`columns-$columns}`]: columns !== undefined,
21999        [`columns-default`]: columns === undefined,
22000        'is-cropped': imageCrop
22001      }),
22002      children: [blockProps.children, isSelected && !blockProps.children && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
22003        className: "blocks-gallery-media-placeholder-wrapper",
22004        children: mediaPlaceholder
22005      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
22006        attributes: attributes,
22007        setAttributes: setAttributes,
22008        isSelected: isSelected,
22009        insertBlocksAfter: insertBlocksAfter,
22010        showToolbarButton: !multiGallerySelection && !isContentLocked,
22011        className: "blocks-gallery-caption",
22012        label: (0,external_wp_i18n_namespaceObject.__)('Gallery caption text'),
22013        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add gallery caption')
22014      })]
22015    });
22016  }
22017  
22018  ;// ./node_modules/@wordpress/block-library/build-module/gallery/use-image-sizes.js
22019  /**
22020   * WordPress dependencies
22021   */
22022  
22023  
22024  /**
22025   * Calculates the image sizes that are available for the current gallery images in order to
22026   * populate the 'Resolution' selector.
22027   *
22028   * @param {Array}    images      Basic image block data taken from current gallery innerBlock.
22029   * @param {boolean}  isSelected  Is the block currently selected in the editor.
22030   * @param {Function} getSettings Block editor store selector.
22031   *
22032   * @return {Array} An array of image size options.
22033   */
22034  function useImageSizes(images, isSelected, getSettings) {
22035    return (0,external_wp_element_namespaceObject.useMemo)(() => getImageSizing(), [images, isSelected]);
22036    function getImageSizing() {
22037      if (!images || images.length === 0) {
22038        return;
22039      }
22040      const {
22041        imageSizes
22042      } = getSettings();
22043      let resizedImages = {};
22044      if (isSelected) {
22045        resizedImages = images.reduce((currentResizedImages, img) => {
22046          if (!img.id) {
22047            return currentResizedImages;
22048          }
22049          const sizes = imageSizes.reduce((currentSizes, size) => {
22050            const defaultUrl = img.sizes?.[size.slug]?.url;
22051            const mediaDetailsUrl = img.media_details?.sizes?.[size.slug]?.source_url;
22052            return {
22053              ...currentSizes,
22054              [size.slug]: defaultUrl || mediaDetailsUrl
22055            };
22056          }, {});
22057          return {
22058            ...currentResizedImages,
22059            [parseInt(img.id, 10)]: sizes
22060          };
22061        }, {});
22062      }
22063      const resizedImageSizes = Object.values(resizedImages);
22064      return imageSizes.filter(({
22065        slug
22066      }) => resizedImageSizes.some(sizes => sizes[slug])).map(({
22067        name,
22068        slug
22069      }) => ({
22070        value: slug,
22071        label: name
22072      }));
22073    }
22074  }
22075  
22076  ;// ./node_modules/@wordpress/block-library/build-module/gallery/use-get-new-images.js
22077  /**
22078   * WordPress dependencies
22079   */
22080  
22081  
22082  /**
22083   * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This
22084   * is required so default gallery attributes can be applied without overwriting any custom
22085   * attributes applied to existing images.
22086   *
22087   * @param {Array} images    Basic image block data taken from current gallery innerBlock
22088   * @param {Array} imageData The related image data for each of the current gallery images.
22089   *
22090   * @return {Array} An array of any new images that have been added to the gallery.
22091   */
22092  function useGetNewImages(images, imageData) {
22093    const [currentImages, setCurrentImages] = (0,external_wp_element_namespaceObject.useState)([]);
22094    return (0,external_wp_element_namespaceObject.useMemo)(() => getNewImages(), [images, imageData]);
22095    function getNewImages() {
22096      let imagesUpdated = false;
22097  
22098      // First lets check if any images have been deleted.
22099      const newCurrentImages = currentImages.filter(currentImg => images.find(img => {
22100        return currentImg.clientId === img.clientId;
22101      }));
22102      if (newCurrentImages.length < currentImages.length) {
22103        imagesUpdated = true;
22104      }
22105  
22106      // Now lets see if we have any images hydrated from saved content and if so
22107      // add them to currentImages state.
22108      images.forEach(image => {
22109        if (image.fromSavedContent && !newCurrentImages.find(currentImage => currentImage.id === image.id)) {
22110          imagesUpdated = true;
22111          newCurrentImages.push(image);
22112        }
22113      });
22114  
22115      // Now check for any new images that have been added to InnerBlocks and for which
22116      // we have the imageData we need for setting default block attributes.
22117      const newImages = images.filter(image => !newCurrentImages.find(currentImage => image.clientId && currentImage.clientId === image.clientId) && imageData?.find(img => img.id === image.id) && !image.fromSavedContent);
22118      if (imagesUpdated || newImages?.length > 0) {
22119        setCurrentImages([...newCurrentImages, ...newImages]);
22120      }
22121      return newImages.length > 0 ? newImages : null;
22122    }
22123  }
22124  
22125  ;// ./node_modules/@wordpress/block-library/build-module/gallery/use-get-media.js
22126  /**
22127   * WordPress dependencies
22128   */
22129  
22130  
22131  const EMPTY_IMAGE_MEDIA = [];
22132  
22133  /**
22134   * Retrieves the extended media info for each gallery image from the store. This is used to
22135   * determine which image size options are available for the current gallery.
22136   *
22137   * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.
22138   *
22139   * @return {Array} An array of media info options for each gallery image.
22140   */
22141  function useGetMedia(innerBlockImages) {
22142    return (0,external_wp_data_namespaceObject.useSelect)(select => {
22143      var _select$getMediaItems;
22144      const imageIds = innerBlockImages.map(imageBlock => imageBlock.attributes.id).filter(id => id !== undefined);
22145      if (imageIds.length === 0) {
22146        return EMPTY_IMAGE_MEDIA;
22147      }
22148      return (_select$getMediaItems = select(external_wp_coreData_namespaceObject.store).getMediaItems({
22149        include: imageIds.join(','),
22150        per_page: -1,
22151        orderby: 'include'
22152      })) !== null && _select$getMediaItems !== void 0 ? _select$getMediaItems : EMPTY_IMAGE_MEDIA;
22153    }, [innerBlockImages]);
22154  }
22155  
22156  ;// ./node_modules/@wordpress/block-library/build-module/gallery/gap-styles.js
22157  /**
22158   * WordPress dependencies
22159   */
22160  
22161  function GapStyles({
22162    blockGap,
22163    clientId
22164  }) {
22165    // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
22166    // gap on the gallery.
22167    const fallbackValue = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
22168    let gapValue = fallbackValue;
22169    let column = fallbackValue;
22170    let row;
22171  
22172    // Check for the possibility of split block gap values. See: https://github.com/WordPress/gutenberg/pull/37736
22173    if (!!blockGap) {
22174      row = typeof blockGap === 'string' ? (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap) : (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap?.top) || fallbackValue;
22175      column = typeof blockGap === 'string' ? (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap) : (0,external_wp_blockEditor_namespaceObject.__experimentalGetGapCSSValue)(blockGap?.left) || fallbackValue;
22176      gapValue = row === column ? row : `$row} $column}`;
22177    }
22178  
22179    // The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.
22180    const gap = `#block-$clientId} {
22181          --wp--style--unstable-gallery-gap: $column === '0' ? '0px' : column};
22182          gap: $gapValue}
22183      }`;
22184    (0,external_wp_blockEditor_namespaceObject.useStyleOverride)({
22185      css: gap
22186    });
22187    return null;
22188  }
22189  
22190  ;// ./node_modules/@wordpress/block-library/build-module/gallery/edit.js
22191  /**
22192   * External dependencies
22193   */
22194  
22195  
22196  /**
22197   * WordPress dependencies
22198   */
22199  
22200  
22201  
22202  
22203  
22204  
22205  
22206  
22207  
22208  
22209  
22210  /**
22211   * Internal dependencies
22212   */
22213  
22214  
22215  
22216  
22217  
22218  
22219  
22220  
22221  
22222  
22223  
22224  const MAX_COLUMNS = 8;
22225  const LINK_OPTIONS = [{
22226    icon: custom_link,
22227    label: (0,external_wp_i18n_namespaceObject.__)('Link images to attachment pages'),
22228    value: LINK_DESTINATION_ATTACHMENT,
22229    noticeText: (0,external_wp_i18n_namespaceObject.__)('Attachment Pages')
22230  }, {
22231    icon: library_image,
22232    label: (0,external_wp_i18n_namespaceObject.__)('Link images to media files'),
22233    value: LINK_DESTINATION_MEDIA,
22234    noticeText: (0,external_wp_i18n_namespaceObject.__)('Media Files')
22235  }, {
22236    icon: library_fullscreen,
22237    label: (0,external_wp_i18n_namespaceObject.__)('Enlarge on click'),
22238    value: LINK_DESTINATION_LIGHTBOX,
22239    noticeText: (0,external_wp_i18n_namespaceObject.__)('Lightbox effect'),
22240    infoText: (0,external_wp_i18n_namespaceObject.__)('Scale images with a lightbox effect')
22241  }, {
22242    icon: link_off,
22243    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Media item link option'),
22244    value: LINK_DESTINATION_NONE,
22245    noticeText: (0,external_wp_i18n_namespaceObject.__)('None')
22246  }];
22247  const edit_ALLOWED_MEDIA_TYPES = ['image'];
22248  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.');
22249  const MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_wp_element_namespaceObject.Platform.isNative ? {
22250    type: 'stepper'
22251  } : {};
22252  const gallery_edit_DEFAULT_BLOCK = {
22253    name: 'core/image'
22254  };
22255  const EMPTY_ARRAY = [];
22256  function GalleryEdit(props) {
22257    const {
22258      setAttributes,
22259      attributes,
22260      className,
22261      clientId,
22262      isSelected,
22263      insertBlocksAfter,
22264      isContentLocked,
22265      onFocus
22266    } = props;
22267    const [lightboxSetting] = (0,external_wp_blockEditor_namespaceObject.useSettings)('blocks.core/image.lightbox');
22268    const linkOptions = !lightboxSetting?.allowEditing ? LINK_OPTIONS.filter(option => option.value !== LINK_DESTINATION_LIGHTBOX) : LINK_OPTIONS;
22269    const {
22270      columns,
22271      imageCrop,
22272      randomOrder,
22273      linkTarget,
22274      linkTo,
22275      sizeSlug
22276    } = attributes;
22277    const {
22278      __unstableMarkNextChangeAsNotPersistent,
22279      replaceInnerBlocks,
22280      updateBlockAttributes,
22281      selectBlock
22282    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
22283    const {
22284      createSuccessNotice,
22285      createErrorNotice
22286    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
22287    const {
22288      getBlock,
22289      getSettings,
22290      innerBlockImages,
22291      blockWasJustInserted,
22292      multiGallerySelection
22293    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
22294      var _getBlock$innerBlocks;
22295      const {
22296        getBlockName,
22297        getMultiSelectedBlockClientIds,
22298        getSettings: _getSettings,
22299        getBlock: _getBlock,
22300        wasBlockJustInserted
22301      } = select(external_wp_blockEditor_namespaceObject.store);
22302      const multiSelectedClientIds = getMultiSelectedBlockClientIds();
22303      return {
22304        getBlock: _getBlock,
22305        getSettings: _getSettings,
22306        innerBlockImages: (_getBlock$innerBlocks = _getBlock(clientId)?.innerBlocks) !== null && _getBlock$innerBlocks !== void 0 ? _getBlock$innerBlocks : EMPTY_ARRAY,
22307        blockWasJustInserted: wasBlockJustInserted(clientId, 'inserter_menu'),
22308        multiGallerySelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/gallery')
22309      };
22310    }, [clientId]);
22311    const images = (0,external_wp_element_namespaceObject.useMemo)(() => innerBlockImages?.map(block => ({
22312      clientId: block.clientId,
22313      id: block.attributes.id,
22314      url: block.attributes.url,
22315      attributes: block.attributes,
22316      fromSavedContent: Boolean(block.originalContent)
22317    })), [innerBlockImages]);
22318    const imageData = useGetMedia(innerBlockImages);
22319    const newImages = useGetNewImages(images, imageData);
22320    (0,external_wp_element_namespaceObject.useEffect)(() => {
22321      newImages?.forEach(newImage => {
22322        // Update the images data without creating new undo levels.
22323        __unstableMarkNextChangeAsNotPersistent();
22324        updateBlockAttributes(newImage.clientId, {
22325          ...buildImageAttributes(newImage.attributes),
22326          id: newImage.id,
22327          align: undefined
22328        });
22329      });
22330    }, [newImages]);
22331    const imageSizeOptions = useImageSizes(imageData, isSelected, getSettings);
22332  
22333    /**
22334     * Determines the image attributes that should be applied to an image block
22335     * after the gallery updates.
22336     *
22337     * The gallery will receive the full collection of images when a new image
22338     * is added. As a result we need to reapply the image's original settings if
22339     * it already existed in the gallery. If the image is in fact new, we need
22340     * to apply the gallery's current settings to the image.
22341     *
22342     * @param {Object} imageAttributes Media object for the actual image.
22343     * @return {Object}                Attributes to set on the new image block.
22344     */
22345    function buildImageAttributes(imageAttributes) {
22346      const image = imageAttributes.id ? imageData.find(({
22347        id
22348      }) => id === imageAttributes.id) : null;
22349      let newClassName;
22350      if (imageAttributes.className && imageAttributes.className !== '') {
22351        newClassName = imageAttributes.className;
22352      }
22353      let newLinkTarget;
22354      if (imageAttributes.linkTarget || imageAttributes.rel) {
22355        // When transformed from image blocks, the link destination and rel attributes are inherited.
22356        newLinkTarget = {
22357          linkTarget: imageAttributes.linkTarget,
22358          rel: imageAttributes.rel
22359        };
22360      } else {
22361        // When an image is added, update the link destination and rel attributes according to the gallery settings
22362        newLinkTarget = getUpdatedLinkTargetSettings(linkTarget, attributes);
22363      }
22364      return {
22365        ...pickRelevantMediaFiles(image, sizeSlug),
22366        ...utils_getHrefAndDestination(image, linkTo, imageAttributes?.linkDestination),
22367        ...newLinkTarget,
22368        className: newClassName,
22369        sizeSlug,
22370        caption: imageAttributes.caption || image.caption?.raw,
22371        alt: imageAttributes.alt || image.alt_text
22372      };
22373    }
22374    function isValidFileType(file) {
22375      // It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.
22376      const nativeFileData = external_wp_element_namespaceObject.Platform.isNative && file.id ? imageData.find(({
22377        id
22378      }) => id === file.id) : null;
22379      const mediaTypeSelector = nativeFileData ? nativeFileData?.media_type : file.type;
22380      return edit_ALLOWED_MEDIA_TYPES.some(mediaType => mediaTypeSelector?.indexOf(mediaType) === 0) || file.blob;
22381    }
22382    function updateImages(selectedImages) {
22383      const newFileUploads = Object.prototype.toString.call(selectedImages) === '[object FileList]';
22384      const imageArray = newFileUploads ? Array.from(selectedImages).map(file => {
22385        if (!file.url) {
22386          return {
22387            blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22388          };
22389        }
22390        return file;
22391      }) : selectedImages;
22392      if (!imageArray.every(isValidFileType)) {
22393        createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
22394          id: 'gallery-upload-invalid-file',
22395          type: 'snackbar'
22396        });
22397      }
22398      const processedImages = imageArray.filter(file => file.url || isValidFileType(file)).map(file => {
22399        if (!file.url) {
22400          return {
22401            blob: file.blob || (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22402          };
22403        }
22404        return file;
22405      });
22406  
22407      // Because we are reusing existing innerImage blocks any reordering
22408      // done in the media library will be lost so we need to reapply that ordering
22409      // once the new image blocks are merged in with existing.
22410      const newOrderMap = processedImages.reduce((result, image, index) => (result[image.id] = index, result), {});
22411      const existingImageBlocks = !newFileUploads ? innerBlockImages.filter(block => processedImages.find(img => img.id === block.attributes.id)) : innerBlockImages;
22412      const newImageList = processedImages.filter(img => !existingImageBlocks.find(existingImg => img.id === existingImg.attributes.id));
22413      const newBlocks = newImageList.map(image => {
22414        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22415          id: image.id,
22416          blob: image.blob,
22417          url: image.url,
22418          caption: image.caption,
22419          alt: image.alt
22420        });
22421      });
22422      replaceInnerBlocks(clientId, existingImageBlocks.concat(newBlocks).sort((a, b) => newOrderMap[a.attributes.id] - newOrderMap[b.attributes.id]));
22423  
22424      // Select the first block to scroll into view when new blocks are added.
22425      if (newBlocks?.length > 0) {
22426        selectBlock(newBlocks[0].clientId);
22427      }
22428    }
22429    function onUploadError(message) {
22430      createErrorNotice(message, {
22431        type: 'snackbar'
22432      });
22433    }
22434    function setLinkTo(value) {
22435      setAttributes({
22436        linkTo: value
22437      });
22438      const changedAttributes = {};
22439      const blocks = [];
22440      getBlock(clientId).innerBlocks.forEach(block => {
22441        blocks.push(block.clientId);
22442        const image = block.attributes.id ? imageData.find(({
22443          id
22444        }) => id === block.attributes.id) : null;
22445        changedAttributes[block.clientId] = utils_getHrefAndDestination(image, value, false, block.attributes, lightboxSetting);
22446      });
22447      updateBlockAttributes(blocks, changedAttributes, true);
22448      const linkToText = [...linkOptions].find(linkType => linkType.value === value);
22449      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: image size settings */
22450      (0,external_wp_i18n_namespaceObject.__)('All gallery image links updated to: %s'), linkToText.noticeText), {
22451        id: 'gallery-attributes-linkTo',
22452        type: 'snackbar'
22453      });
22454    }
22455    function setColumnsNumber(value) {
22456      setAttributes({
22457        columns: value
22458      });
22459    }
22460    function toggleImageCrop() {
22461      setAttributes({
22462        imageCrop: !imageCrop
22463      });
22464    }
22465    function toggleRandomOrder() {
22466      setAttributes({
22467        randomOrder: !randomOrder
22468      });
22469    }
22470    function toggleOpenInNewTab(openInNewTab) {
22471      const newLinkTarget = openInNewTab ? '_blank' : undefined;
22472      setAttributes({
22473        linkTarget: newLinkTarget
22474      });
22475      const changedAttributes = {};
22476      const blocks = [];
22477      getBlock(clientId).innerBlocks.forEach(block => {
22478        blocks.push(block.clientId);
22479        changedAttributes[block.clientId] = getUpdatedLinkTargetSettings(newLinkTarget, block.attributes);
22480      });
22481      updateBlockAttributes(blocks, changedAttributes, true);
22482      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');
22483      createSuccessNotice(noticeText, {
22484        id: 'gallery-attributes-openInNewTab',
22485        type: 'snackbar'
22486      });
22487    }
22488    function updateImagesSize(newSizeSlug) {
22489      setAttributes({
22490        sizeSlug: newSizeSlug
22491      });
22492      const changedAttributes = {};
22493      const blocks = [];
22494      getBlock(clientId).innerBlocks.forEach(block => {
22495        blocks.push(block.clientId);
22496        const image = block.attributes.id ? imageData.find(({
22497          id
22498        }) => id === block.attributes.id) : null;
22499        changedAttributes[block.clientId] = getImageSizeAttributes(image, newSizeSlug);
22500      });
22501      updateBlockAttributes(blocks, changedAttributes, true);
22502      const imageSize = imageSizeOptions.find(size => size.value === newSizeSlug);
22503      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: image size settings */
22504      (0,external_wp_i18n_namespaceObject.__)('All gallery image sizes updated to: %s'), imageSize.label), {
22505        id: 'gallery-attributes-sizeSlug',
22506        type: 'snackbar'
22507      });
22508    }
22509    (0,external_wp_element_namespaceObject.useEffect)(() => {
22510      // linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.
22511      if (!linkTo) {
22512        __unstableMarkNextChangeAsNotPersistent();
22513        setAttributes({
22514          linkTo: window?.wp?.media?.view?.settings?.defaultProps?.link || LINK_DESTINATION_NONE
22515        });
22516      }
22517    }, [linkTo]);
22518    const hasImages = !!images.length;
22519    const hasImageIds = hasImages && images.some(image => !!image.id);
22520    const imagesUploading = images.some(img => !external_wp_element_namespaceObject.Platform.isNative ? !img.id && img.url?.indexOf('blob:') === 0 : img.url?.indexOf('file:') === 0);
22521  
22522    // MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.
22523    const mediaPlaceholderProps = external_wp_element_namespaceObject.Platform.select({
22524      web: {
22525        addToGallery: false,
22526        disableMediaButtons: imagesUploading,
22527        value: {}
22528      },
22529      native: {
22530        addToGallery: hasImageIds,
22531        isAppender: hasImages,
22532        disableMediaButtons: hasImages && !isSelected || imagesUploading,
22533        value: hasImageIds ? images : {},
22534        autoOpenMediaUpload: !hasImages && isSelected && blockWasJustInserted,
22535        onFocus
22536      }
22537    });
22538    const mediaPlaceholder = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
22539      handleUpload: false,
22540      icon: sharedIcon,
22541      labels: {
22542        title: (0,external_wp_i18n_namespaceObject.__)('Gallery'),
22543        instructions: PLACEHOLDER_TEXT
22544      },
22545      onSelect: updateImages,
22546      accept: "image/*",
22547      allowedTypes: edit_ALLOWED_MEDIA_TYPES,
22548      multiple: true,
22549      onError: onUploadError,
22550      ...mediaPlaceholderProps
22551    });
22552    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
22553      className: dist_clsx(className, 'has-nested-images')
22554    });
22555    const nativeInnerBlockProps = external_wp_element_namespaceObject.Platform.isNative && {
22556      marginHorizontal: 0,
22557      marginVertical: 0
22558    };
22559    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
22560      defaultBlock: gallery_edit_DEFAULT_BLOCK,
22561      directInsert: true,
22562      orientation: 'horizontal',
22563      renderAppender: false,
22564      ...nativeInnerBlockProps
22565    });
22566    if (!hasImages) {
22567      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
22568        ...innerBlocksProps,
22569        children: [innerBlocksProps.children, mediaPlaceholder]
22570      });
22571    }
22572    const hasLinkTo = linkTo && linkTo !== 'none';
22573    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
22574      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
22575        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
22576          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
22577          children: [images.length > 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
22578            __nextHasNoMarginBottom: true,
22579            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
22580            value: columns ? columns : defaultColumnsNumber(images.length),
22581            onChange: setColumnsNumber,
22582            min: 1,
22583            max: Math.min(MAX_COLUMNS, images.length),
22584            ...MOBILE_CONTROL_PROPS_RANGE_CONTROL,
22585            required: true,
22586            __next40pxDefaultSize: true
22587          }), imageSizeOptions?.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
22588            __nextHasNoMarginBottom: true,
22589            label: (0,external_wp_i18n_namespaceObject.__)('Resolution'),
22590            help: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source images.'),
22591            value: sizeSlug,
22592            options: imageSizeOptions,
22593            onChange: updateImagesSize,
22594            hideCancelButton: true,
22595            size: "__unstable-large"
22596          }), external_wp_element_namespaceObject.Platform.isNative ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
22597            __nextHasNoMarginBottom: true,
22598            label: (0,external_wp_i18n_namespaceObject.__)('Link'),
22599            value: linkTo,
22600            onChange: setLinkTo,
22601            options: linkOptions,
22602            hideCancelButton: true,
22603            size: "__unstable-large"
22604          }) : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
22605            __nextHasNoMarginBottom: true,
22606            label: (0,external_wp_i18n_namespaceObject.__)('Crop images to fit'),
22607            checked: !!imageCrop,
22608            onChange: toggleImageCrop
22609          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
22610            __nextHasNoMarginBottom: true,
22611            label: (0,external_wp_i18n_namespaceObject.__)('Randomize order'),
22612            checked: !!randomOrder,
22613            onChange: toggleRandomOrder
22614          }), hasLinkTo && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
22615            __nextHasNoMarginBottom: true,
22616            label: (0,external_wp_i18n_namespaceObject.__)('Open images in new tab'),
22617            checked: linkTarget === '_blank',
22618            onChange: toggleOpenInNewTab
22619          }), external_wp_element_namespaceObject.Platform.isWeb && !imageSizeOptions && hasImageIds && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.BaseControl, {
22620            className: "gallery-image-sizes",
22621            __nextHasNoMarginBottom: true,
22622            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
22623              children: (0,external_wp_i18n_namespaceObject.__)('Resolution')
22624            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
22625              className: "gallery-image-sizes__loading",
22626              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), (0,external_wp_i18n_namespaceObject.__)('Loading options…')]
22627            })]
22628          })]
22629        })
22630      }), external_wp_element_namespaceObject.Platform.isWeb ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
22631        group: "block",
22632        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
22633          icon: library_link,
22634          label: (0,external_wp_i18n_namespaceObject.__)('Link'),
22635          children: ({
22636            onClose
22637          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
22638            children: linkOptions.map(linkItem => {
22639              const isOptionSelected = linkTo === linkItem.value;
22640              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
22641                isSelected: isOptionSelected,
22642                className: dist_clsx('components-dropdown-menu__menu-item', {
22643                  'is-active': isOptionSelected
22644                }),
22645                iconPosition: "left",
22646                icon: linkItem.icon,
22647                onClick: () => {
22648                  setLinkTo(linkItem.value);
22649                  onClose();
22650                },
22651                role: "menuitemradio",
22652                info: linkItem.infoText,
22653                children: linkItem.label
22654              }, linkItem.value);
22655            })
22656          })
22657        })
22658      }) : null, external_wp_element_namespaceObject.Platform.isWeb && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
22659        children: [!multiGallerySelection && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
22660          group: "other",
22661          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
22662            allowedTypes: edit_ALLOWED_MEDIA_TYPES,
22663            accept: "image/*",
22664            handleUpload: false,
22665            onSelect: updateImages,
22666            name: (0,external_wp_i18n_namespaceObject.__)('Add'),
22667            multiple: true,
22668            mediaIds: images.filter(image => image.id).map(image => image.id),
22669            addToGallery: hasImageIds
22670          })
22671        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GapStyles, {
22672          blockGap: attributes.style?.spacing?.blockGap,
22673          clientId: clientId
22674        })]
22675      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Gallery, {
22676        ...props,
22677        isContentLocked: isContentLocked,
22678        images: images,
22679        mediaPlaceholder: !hasImages || external_wp_element_namespaceObject.Platform.isNative ? mediaPlaceholder : undefined,
22680        blockProps: innerBlocksProps,
22681        insertBlocksAfter: insertBlocksAfter,
22682        multiGallerySelection: multiGallerySelection
22683      })]
22684    });
22685  }
22686  
22687  ;// ./node_modules/@wordpress/block-library/build-module/gallery/save.js
22688  /**
22689   * External dependencies
22690   */
22691  
22692  
22693  /**
22694   * WordPress dependencies
22695   */
22696  
22697  
22698  function saveWithInnerBlocks({
22699    attributes
22700  }) {
22701    const {
22702      caption,
22703      columns,
22704      imageCrop
22705    } = attributes;
22706    const className = dist_clsx('has-nested-images', {
22707      [`columns-$columns}`]: columns !== undefined,
22708      [`columns-default`]: columns === undefined,
22709      'is-cropped': imageCrop
22710    });
22711    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
22712      className
22713    });
22714    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
22715    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
22716      ...innerBlocksProps,
22717      children: [innerBlocksProps.children, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
22718        tagName: "figcaption",
22719        className: dist_clsx('blocks-gallery-caption', (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')),
22720        value: caption
22721      })]
22722    });
22723  }
22724  
22725  ;// ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js
22726  /**
22727   * WordPress dependencies
22728   */
22729  
22730  
22731  
22732  
22733  /**
22734   * Internal dependencies
22735   */
22736  
22737  const parseShortcodeIds = ids => {
22738    if (!ids) {
22739      return [];
22740    }
22741    return ids.split(',').map(id => parseInt(id, 10));
22742  };
22743  
22744  /**
22745   * Third party block plugins don't have an easy way to detect if the
22746   * innerBlocks version of the Gallery is running when they run a
22747   * 3rdPartyBlock -> GalleryBlock transform so this transform filter
22748   * will handle this. Once the innerBlocks version is the default
22749   * in a core release, this could be deprecated and removed after
22750   * plugin authors have been given time to update transforms.
22751   *
22752   * @typedef  {Object} Attributes
22753   * @typedef  {Object} Block
22754   * @property {Attributes} attributes The attributes of the block.
22755   * @param    {Block}      block      The transformed block.
22756   * @return   {Block}                 The transformed block.
22757   */
22758  function updateThirdPartyTransformToGallery(block) {
22759    if (block.name === 'core/gallery' && block.attributes?.images.length > 0) {
22760      const innerBlocks = block.attributes.images.map(({
22761        url,
22762        id,
22763        alt
22764      }) => {
22765        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22766          url,
22767          id: id ? parseInt(id, 10) : null,
22768          alt,
22769          sizeSlug: block.attributes.sizeSlug,
22770          linkDestination: block.attributes.linkDestination
22771        });
22772      });
22773      delete block.attributes.ids;
22774      delete block.attributes.images;
22775      block.innerBlocks = innerBlocks;
22776    }
22777    return block;
22778  }
22779  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-to', updateThirdPartyTransformToGallery);
22780  
22781  /**
22782   * Third party block plugins don't have an easy way to detect if the
22783   * innerBlocks version of the Gallery is running when they run a
22784   * GalleryBlock -> 3rdPartyBlock transform so this transform filter
22785   * will handle this. Once the innerBlocks version is the default
22786   * in a core release, this could be deprecated and removed after
22787   * plugin authors have been given time to update transforms.
22788   *
22789   * @typedef  {Object} Attributes
22790   * @typedef  {Object} Block
22791   * @property {Attributes} attributes The attributes of the block.
22792   * @param    {Block}      toBlock    The block to transform to.
22793   * @param    {Block[]}    fromBlocks The blocks to transform from.
22794   * @return   {Block}                 The transformed block.
22795   */
22796  function updateThirdPartyTransformFromGallery(toBlock, fromBlocks) {
22797    const from = Array.isArray(fromBlocks) ? fromBlocks : [fromBlocks];
22798    const galleryBlock = from.find(transformedBlock => transformedBlock.name === 'core/gallery' && transformedBlock.innerBlocks.length > 0 && !transformedBlock.attributes.images?.length > 0 && !toBlock.name.includes('core/'));
22799    if (galleryBlock) {
22800      const images = galleryBlock.innerBlocks.map(({
22801        attributes: {
22802          url,
22803          id,
22804          alt
22805        }
22806      }) => ({
22807        url,
22808        id: id ? parseInt(id, 10) : null,
22809        alt
22810      }));
22811      const ids = images.map(({
22812        id
22813      }) => id);
22814      galleryBlock.attributes.images = images;
22815      galleryBlock.attributes.ids = ids;
22816    }
22817    return toBlock;
22818  }
22819  (0,external_wp_hooks_namespaceObject.addFilter)('blocks.switchToBlockType.transformedBlock', 'core/gallery/update-third-party-transform-from', updateThirdPartyTransformFromGallery);
22820  const gallery_transforms_transforms = {
22821    from: [{
22822      type: 'block',
22823      isMultiBlock: true,
22824      blocks: ['core/image'],
22825      transform: attributes => {
22826        // Init the align and size from the first item which may be either the placeholder or an image.
22827        let {
22828          align,
22829          sizeSlug
22830        } = attributes[0];
22831        // Loop through all the images and check if they have the same align and size.
22832        align = attributes.every(attribute => attribute.align === align) ? align : undefined;
22833        sizeSlug = attributes.every(attribute => attribute.sizeSlug === sizeSlug) ? sizeSlug : undefined;
22834        const validImages = attributes.filter(({
22835          url
22836        }) => url);
22837        const innerBlocks = validImages.map(image => {
22838          // Gallery images can't currently be resized so make sure height and width are undefined.
22839          image.width = undefined;
22840          image.height = undefined;
22841          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', image);
22842        });
22843        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
22844          align,
22845          sizeSlug
22846        }, innerBlocks);
22847      }
22848    }, {
22849      type: 'shortcode',
22850      tag: 'gallery',
22851      transform({
22852        named: {
22853          ids,
22854          columns = 3,
22855          link,
22856          orderby
22857        }
22858      }) {
22859        const imageIds = parseShortcodeIds(ids).map(id => parseInt(id, 10));
22860        let linkTo = LINK_DESTINATION_NONE;
22861        if (link === 'post') {
22862          linkTo = LINK_DESTINATION_ATTACHMENT;
22863        } else if (link === 'file') {
22864          linkTo = LINK_DESTINATION_MEDIA;
22865        }
22866        const galleryBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {
22867          columns: parseInt(columns, 10),
22868          linkTo,
22869          randomOrder: orderby === 'rand'
22870        }, imageIds.map(imageId => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22871          id: imageId
22872        })));
22873        return galleryBlock;
22874      },
22875      isMatch({
22876        named
22877      }) {
22878        return undefined !== named.ids;
22879      }
22880    }, {
22881      // When created by drag and dropping multiple files on an insertion point. Because multiple
22882      // files must not be transformed to a gallery when dropped within a gallery there is another transform
22883      // within the image block to handle that case. Therefore this transform has to have priority 1
22884      // set so that it overrides the image block transformation when multiple images are dropped outside
22885      // of a gallery block.
22886      type: 'files',
22887      priority: 1,
22888      isMatch(files) {
22889        return files.length !== 1 && files.every(file => file.type.indexOf('image/') === 0);
22890      },
22891      transform(files) {
22892        const innerBlocks = files.map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22893          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
22894        }));
22895        return (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, innerBlocks);
22896      }
22897    }],
22898    to: [{
22899      type: 'block',
22900      blocks: ['core/image'],
22901      transform: ({
22902        align
22903      }, innerBlocks) => {
22904        if (innerBlocks.length > 0) {
22905          return innerBlocks.map(({
22906            attributes: {
22907              url,
22908              alt,
22909              caption,
22910              title,
22911              href,
22912              rel,
22913              linkClass,
22914              id,
22915              sizeSlug: imageSizeSlug,
22916              linkDestination,
22917              linkTarget,
22918              anchor,
22919              className
22920            }
22921          }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22922            align,
22923            url,
22924            alt,
22925            caption,
22926            title,
22927            href,
22928            rel,
22929            linkClass,
22930            id,
22931            sizeSlug: imageSizeSlug,
22932            linkDestination,
22933            linkTarget,
22934            anchor,
22935            className
22936          }));
22937        }
22938        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
22939          align
22940        });
22941      }
22942    }]
22943  };
22944  /* harmony default export */ const gallery_transforms = (gallery_transforms_transforms);
22945  
22946  ;// ./node_modules/@wordpress/block-library/build-module/gallery/index.js
22947  /**
22948   * WordPress dependencies
22949   */
22950  
22951  
22952  /**
22953   * Internal dependencies
22954   */
22955  
22956  
22957  
22958  const gallery_metadata = {
22959    $schema: "https://schemas.wp.org/trunk/block.json",
22960    apiVersion: 3,
22961    name: "core/gallery",
22962    title: "Gallery",
22963    category: "media",
22964    allowedBlocks: ["core/image"],
22965    description: "Display multiple images in a rich gallery.",
22966    keywords: ["images", "photos"],
22967    textdomain: "default",
22968    attributes: {
22969      images: {
22970        type: "array",
22971        "default": [],
22972        source: "query",
22973        selector: ".blocks-gallery-item",
22974        query: {
22975          url: {
22976            type: "string",
22977            source: "attribute",
22978            selector: "img",
22979            attribute: "src"
22980          },
22981          fullUrl: {
22982            type: "string",
22983            source: "attribute",
22984            selector: "img",
22985            attribute: "data-full-url"
22986          },
22987          link: {
22988            type: "string",
22989            source: "attribute",
22990            selector: "img",
22991            attribute: "data-link"
22992          },
22993          alt: {
22994            type: "string",
22995            source: "attribute",
22996            selector: "img",
22997            attribute: "alt",
22998            "default": ""
22999          },
23000          id: {
23001            type: "string",
23002            source: "attribute",
23003            selector: "img",
23004            attribute: "data-id"
23005          },
23006          caption: {
23007            type: "rich-text",
23008            source: "rich-text",
23009            selector: ".blocks-gallery-item__caption"
23010          }
23011        }
23012      },
23013      ids: {
23014        type: "array",
23015        items: {
23016          type: "number"
23017        },
23018        "default": []
23019      },
23020      shortCodeTransforms: {
23021        type: "array",
23022        items: {
23023          type: "object"
23024        },
23025        "default": []
23026      },
23027      columns: {
23028        type: "number",
23029        minimum: 1,
23030        maximum: 8
23031      },
23032      caption: {
23033        type: "rich-text",
23034        source: "rich-text",
23035        selector: ".blocks-gallery-caption"
23036      },
23037      imageCrop: {
23038        type: "boolean",
23039        "default": true
23040      },
23041      randomOrder: {
23042        type: "boolean",
23043        "default": false
23044      },
23045      fixedHeight: {
23046        type: "boolean",
23047        "default": true
23048      },
23049      linkTarget: {
23050        type: "string"
23051      },
23052      linkTo: {
23053        type: "string"
23054      },
23055      sizeSlug: {
23056        type: "string",
23057        "default": "large"
23058      },
23059      allowResize: {
23060        type: "boolean",
23061        "default": false
23062      }
23063    },
23064    providesContext: {
23065      allowResize: "allowResize",
23066      imageCrop: "imageCrop",
23067      fixedHeight: "fixedHeight"
23068    },
23069    supports: {
23070      anchor: true,
23071      align: true,
23072      __experimentalBorder: {
23073        radius: true,
23074        color: true,
23075        width: true,
23076        style: true,
23077        __experimentalDefaultControls: {
23078          color: true,
23079          radius: true
23080        }
23081      },
23082      html: false,
23083      units: ["px", "em", "rem", "vh", "vw"],
23084      spacing: {
23085        margin: true,
23086        padding: true,
23087        blockGap: ["horizontal", "vertical"],
23088        __experimentalSkipSerialization: ["blockGap"],
23089        __experimentalDefaultControls: {
23090          blockGap: true,
23091          margin: false,
23092          padding: false
23093        }
23094      },
23095      color: {
23096        text: false,
23097        background: true,
23098        gradients: true
23099      },
23100      layout: {
23101        allowSwitching: false,
23102        allowInheriting: false,
23103        allowEditing: false,
23104        "default": {
23105          type: "flex"
23106        }
23107      },
23108      interactivity: {
23109        clientNavigation: true
23110      }
23111    },
23112    editorStyle: "wp-block-gallery-editor",
23113    style: "wp-block-gallery"
23114  };
23115  
23116  
23117  const {
23118    name: gallery_name
23119  } = gallery_metadata;
23120  
23121  const gallery_settings = {
23122    icon: library_gallery,
23123    example: {
23124      attributes: {
23125        columns: 2
23126      },
23127      innerBlocks: [{
23128        name: 'core/image',
23129        attributes: {
23130          url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg'
23131        }
23132      }, {
23133        name: 'core/image',
23134        attributes: {
23135          url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg'
23136        }
23137      }]
23138    },
23139    transforms: gallery_transforms,
23140    edit: GalleryEdit,
23141    save: saveWithInnerBlocks,
23142    deprecated: gallery_deprecated
23143  };
23144  const gallery_init = () => initBlock({
23145    name: gallery_name,
23146    metadata: gallery_metadata,
23147    settings: gallery_settings
23148  });
23149  
23150  ;// ./node_modules/@wordpress/block-library/build-module/group/deprecated.js
23151  /**
23152   * External dependencies
23153   */
23154  
23155  
23156  /**
23157   * WordPress dependencies
23158   */
23159  
23160  
23161  const migrateAttributes = attributes => {
23162    if (!attributes.tagName) {
23163      attributes = {
23164        ...attributes,
23165        tagName: 'div'
23166      };
23167    }
23168    if (!attributes.customTextColor && !attributes.customBackgroundColor) {
23169      return attributes;
23170    }
23171    const style = {
23172      color: {}
23173    };
23174    if (attributes.customTextColor) {
23175      style.color.text = attributes.customTextColor;
23176    }
23177    if (attributes.customBackgroundColor) {
23178      style.color.background = attributes.customBackgroundColor;
23179    }
23180    const {
23181      customTextColor,
23182      customBackgroundColor,
23183      ...restAttributes
23184    } = attributes;
23185    return {
23186      ...restAttributes,
23187      style
23188    };
23189  };
23190  const group_deprecated_deprecated = [
23191  // Version with default layout.
23192  {
23193    attributes: {
23194      tagName: {
23195        type: 'string',
23196        default: 'div'
23197      },
23198      templateLock: {
23199        type: ['string', 'boolean'],
23200        enum: ['all', 'insert', false]
23201      }
23202    },
23203    supports: {
23204      __experimentalOnEnter: true,
23205      __experimentalSettings: true,
23206      align: ['wide', 'full'],
23207      anchor: true,
23208      ariaLabel: true,
23209      html: false,
23210      color: {
23211        gradients: true,
23212        link: true,
23213        __experimentalDefaultControls: {
23214          background: true,
23215          text: true
23216        }
23217      },
23218      spacing: {
23219        margin: ['top', 'bottom'],
23220        padding: true,
23221        blockGap: true,
23222        __experimentalDefaultControls: {
23223          padding: true,
23224          blockGap: true
23225        }
23226      },
23227      __experimentalBorder: {
23228        color: true,
23229        radius: true,
23230        style: true,
23231        width: true,
23232        __experimentalDefaultControls: {
23233          color: true,
23234          radius: true,
23235          style: true,
23236          width: true
23237        }
23238      },
23239      typography: {
23240        fontSize: true,
23241        lineHeight: true,
23242        __experimentalFontStyle: true,
23243        __experimentalFontWeight: true,
23244        __experimentalLetterSpacing: true,
23245        __experimentalTextTransform: true,
23246        __experimentalDefaultControls: {
23247          fontSize: true
23248        }
23249      },
23250      layout: true
23251    },
23252    save({
23253      attributes: {
23254        tagName: Tag
23255      }
23256    }) {
23257      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23258        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())
23259      });
23260    },
23261    isEligible: ({
23262      layout
23263    }) => layout?.inherit || layout?.contentSize && layout?.type !== 'constrained',
23264    migrate: attributes => {
23265      const {
23266        layout = null
23267      } = attributes;
23268      if (layout?.inherit || layout?.contentSize) {
23269        return {
23270          ...attributes,
23271          layout: {
23272            ...layout,
23273            type: 'constrained'
23274          }
23275        };
23276      }
23277    }
23278  },
23279  // Version of the block with the double div.
23280  {
23281    attributes: {
23282      tagName: {
23283        type: 'string',
23284        default: 'div'
23285      },
23286      templateLock: {
23287        type: ['string', 'boolean'],
23288        enum: ['all', 'insert', false]
23289      }
23290    },
23291    supports: {
23292      align: ['wide', 'full'],
23293      anchor: true,
23294      color: {
23295        gradients: true,
23296        link: true
23297      },
23298      spacing: {
23299        padding: true
23300      },
23301      __experimentalBorder: {
23302        radius: true
23303      }
23304    },
23305    save({
23306      attributes
23307    }) {
23308      const {
23309        tagName: Tag
23310      } = attributes;
23311      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23312        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
23313        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23314          className: "wp-block-group__inner-container",
23315          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23316        })
23317      });
23318    }
23319  },
23320  // Version of the block without global styles support
23321  {
23322    attributes: {
23323      backgroundColor: {
23324        type: 'string'
23325      },
23326      customBackgroundColor: {
23327        type: 'string'
23328      },
23329      textColor: {
23330        type: 'string'
23331      },
23332      customTextColor: {
23333        type: 'string'
23334      }
23335    },
23336    supports: {
23337      align: ['wide', 'full'],
23338      anchor: true,
23339      html: false
23340    },
23341    migrate: migrateAttributes,
23342    save({
23343      attributes
23344    }) {
23345      const {
23346        backgroundColor,
23347        customBackgroundColor,
23348        textColor,
23349        customTextColor
23350      } = attributes;
23351      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23352      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23353      const className = dist_clsx(backgroundClass, textClass, {
23354        'has-text-color': textColor || customTextColor,
23355        'has-background': backgroundColor || customBackgroundColor
23356      });
23357      const styles = {
23358        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23359        color: textClass ? undefined : customTextColor
23360      };
23361      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23362        className: className,
23363        style: styles,
23364        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23365          className: "wp-block-group__inner-container",
23366          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23367        })
23368      });
23369    }
23370  },
23371  // Version of the group block with a bug that made text color class not applied.
23372  {
23373    attributes: {
23374      backgroundColor: {
23375        type: 'string'
23376      },
23377      customBackgroundColor: {
23378        type: 'string'
23379      },
23380      textColor: {
23381        type: 'string'
23382      },
23383      customTextColor: {
23384        type: 'string'
23385      }
23386    },
23387    migrate: migrateAttributes,
23388    supports: {
23389      align: ['wide', 'full'],
23390      anchor: true,
23391      html: false
23392    },
23393    save({
23394      attributes
23395    }) {
23396      const {
23397        backgroundColor,
23398        customBackgroundColor,
23399        textColor,
23400        customTextColor
23401      } = attributes;
23402      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23403      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
23404      const className = dist_clsx(backgroundClass, {
23405        'has-text-color': textColor || customTextColor,
23406        'has-background': backgroundColor || customBackgroundColor
23407      });
23408      const styles = {
23409        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
23410        color: textClass ? undefined : customTextColor
23411      };
23412      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23413        className: className,
23414        style: styles,
23415        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23416          className: "wp-block-group__inner-container",
23417          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23418        })
23419      });
23420    }
23421  },
23422  // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.
23423  {
23424    attributes: {
23425      backgroundColor: {
23426        type: 'string'
23427      },
23428      customBackgroundColor: {
23429        type: 'string'
23430      }
23431    },
23432    supports: {
23433      align: ['wide', 'full'],
23434      anchor: true,
23435      html: false
23436    },
23437    migrate: migrateAttributes,
23438    save({
23439      attributes
23440    }) {
23441      const {
23442        backgroundColor,
23443        customBackgroundColor
23444      } = attributes;
23445      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
23446      const className = dist_clsx(backgroundClass, {
23447        'has-background': backgroundColor || customBackgroundColor
23448      });
23449      const styles = {
23450        backgroundColor: backgroundClass ? undefined : customBackgroundColor
23451      };
23452      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23453        className: className,
23454        style: styles,
23455        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
23456      });
23457    }
23458  }];
23459  /* harmony default export */ const group_deprecated = (group_deprecated_deprecated);
23460  
23461  ;// ./node_modules/@wordpress/block-library/build-module/group/placeholder.js
23462  /**
23463   * WordPress dependencies
23464   */
23465  
23466  
23467  
23468  
23469  
23470  
23471  
23472  /**
23473   * Returns a custom variation icon.
23474   *
23475   * @param {string} name The block variation name.
23476   *
23477   * @return {JSX.Element} The SVG element.
23478   */
23479  
23480  const getGroupPlaceholderIcons = (name = 'group') => {
23481    const icons = {
23482      group: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23483        xmlns: "http://www.w3.org/2000/svg",
23484        width: "48",
23485        height: "48",
23486        viewBox: "0 0 48 48",
23487        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23488          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"
23489        })
23490      }),
23491      'group-row': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23492        xmlns: "http://www.w3.org/2000/svg",
23493        width: "48",
23494        height: "48",
23495        viewBox: "0 0 48 48",
23496        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23497          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"
23498        })
23499      }),
23500      'group-stack': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23501        xmlns: "http://www.w3.org/2000/svg",
23502        width: "48",
23503        height: "48",
23504        viewBox: "0 0 48 48",
23505        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23506          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"
23507        })
23508      }),
23509      'group-grid': /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
23510        xmlns: "http://www.w3.org/2000/svg",
23511        width: "48",
23512        height: "48",
23513        viewBox: "0 0 48 48",
23514        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
23515          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"
23516        })
23517      })
23518    };
23519    return icons?.[name];
23520  };
23521  
23522  /**
23523   * A custom hook to tell the Group block whether to show the variation placeholder.
23524   *
23525   * @param {Object}  props                  Arguments to pass to hook.
23526   * @param {Object}  [props.attributes]     The block's attributes.
23527   * @param {string}  [props.usedLayoutType] The block's current layout type.
23528   * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.
23529   *
23530   * @return {[boolean, Function]} A state value and setter function.
23531   */
23532  function useShouldShowPlaceHolder({
23533    attributes = {
23534      style: undefined,
23535      backgroundColor: undefined,
23536      textColor: undefined,
23537      fontSize: undefined
23538    },
23539    usedLayoutType = '',
23540    hasInnerBlocks = false
23541  }) {
23542    const {
23543      style,
23544      backgroundColor,
23545      textColor,
23546      fontSize
23547    } = attributes;
23548    /*
23549     * Shows the placeholder when no known styles are set,
23550     * or when a non-default layout has been selected.
23551     * Should the Group block support more style presets in the
23552     * future, e.g., attributes.spacingSize, we can add them to the
23553     * condition.
23554     */
23555    const [showPlaceholder, setShowPlaceholder] = (0,external_wp_element_namespaceObject.useState)(!hasInnerBlocks && !backgroundColor && !fontSize && !textColor && !style && usedLayoutType !== 'flex' && usedLayoutType !== 'grid');
23556    (0,external_wp_element_namespaceObject.useEffect)(() => {
23557      if (!!hasInnerBlocks || !!backgroundColor || !!fontSize || !!textColor || !!style || usedLayoutType === 'flex') {
23558        setShowPlaceholder(false);
23559      }
23560    }, [backgroundColor, fontSize, textColor, style, usedLayoutType, hasInnerBlocks]);
23561    return [showPlaceholder, setShowPlaceholder];
23562  }
23563  
23564  /**
23565   * Display group variations if none is selected.
23566   *
23567   * @param {Object}   props          Component props.
23568   * @param {string}   props.name     The block's name.
23569   * @param {Function} props.onSelect Function to set block's attributes.
23570   *
23571   * @return {JSX.Element}                The placeholder.
23572   */
23573  function GroupPlaceHolder({
23574    name,
23575    onSelect
23576  }) {
23577    const variations = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getBlockVariations(name, 'block'), [name]);
23578    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
23579      className: 'wp-block-group__placeholder'
23580    });
23581    (0,external_wp_element_namespaceObject.useEffect)(() => {
23582      if (variations && variations.length === 1) {
23583        onSelect(variations[0]);
23584      }
23585    }, [onSelect, variations]);
23586    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23587      ...blockProps,
23588      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
23589        instructions: (0,external_wp_i18n_namespaceObject.__)('Group blocks together. Select a layout:'),
23590        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
23591          role: "list",
23592          className: "wp-block-group-placeholder__variations",
23593          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Block variations'),
23594          children: variations.map(variation => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
23595            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
23596              __next40pxDefaultSize: true,
23597              variant: "tertiary",
23598              icon: getGroupPlaceholderIcons(variation.name),
23599              iconSize: 48,
23600              onClick: () => onSelect(variation),
23601              className: "wp-block-group-placeholder__variation-button",
23602              label: `$variation.title}: $variation.description}`
23603            })
23604          }, variation.name))
23605        })
23606      })
23607    });
23608  }
23609  /* harmony default export */ const placeholder = (GroupPlaceHolder);
23610  
23611  ;// ./node_modules/@wordpress/block-library/build-module/group/edit.js
23612  /**
23613   * WordPress dependencies
23614   */
23615  
23616  
23617  
23618  
23619  
23620  
23621  
23622  /**
23623   * Internal dependencies
23624   */
23625  
23626  
23627  
23628  /**
23629   * Render inspector controls for the Group block.
23630   *
23631   * @param {Object}   props                 Component props.
23632   * @param {string}   props.tagName         The HTML tag name.
23633   * @param {Function} props.onSelectTagName onChange function for the SelectControl.
23634   *
23635   * @return {JSX.Element}                The control group.
23636   */
23637  
23638  function GroupEditControls({
23639    tagName,
23640    onSelectTagName
23641  }) {
23642    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
23643      group: "advanced",
23644      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
23645        __nextHasNoMarginBottom: true,
23646        __next40pxDefaultSize: true,
23647        label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
23648        options: [{
23649          label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
23650          value: 'div'
23651        }, {
23652          label: '<header>',
23653          value: 'header'
23654        }, {
23655          label: '<main>',
23656          value: 'main'
23657        }, {
23658          label: '<section>',
23659          value: 'section'
23660        }, {
23661          label: '<article>',
23662          value: 'article'
23663        }, {
23664          label: '<aside>',
23665          value: 'aside'
23666        }, {
23667          label: '<footer>',
23668          value: 'footer'
23669        }],
23670        value: tagName,
23671        onChange: onSelectTagName,
23672        help: htmlElementMessages[tagName]
23673      })
23674    });
23675  }
23676  function GroupEdit({
23677    attributes,
23678    name,
23679    setAttributes,
23680    clientId
23681  }) {
23682    const {
23683      hasInnerBlocks,
23684      themeSupportsLayout
23685    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
23686      const {
23687        getBlock,
23688        getSettings
23689      } = select(external_wp_blockEditor_namespaceObject.store);
23690      const block = getBlock(clientId);
23691      return {
23692        hasInnerBlocks: !!(block && block.innerBlocks.length),
23693        themeSupportsLayout: getSettings()?.supportsLayout
23694      };
23695    }, [clientId]);
23696    const {
23697      tagName: TagName = 'div',
23698      templateLock,
23699      allowedBlocks,
23700      layout = {}
23701    } = attributes;
23702  
23703    // Layout settings.
23704    const {
23705      type = 'default'
23706    } = layout;
23707    const layoutSupportEnabled = themeSupportsLayout || type === 'flex' || type === 'grid';
23708  
23709    // Hooks.
23710    const ref = (0,external_wp_element_namespaceObject.useRef)();
23711    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
23712      ref
23713    });
23714    const [showPlaceholder, setShowPlaceholder] = useShouldShowPlaceHolder({
23715      attributes,
23716      usedLayoutType: type,
23717      hasInnerBlocks
23718    });
23719  
23720    // Default to the regular appender being rendered.
23721    let renderAppender;
23722    if (showPlaceholder) {
23723      // In the placeholder state, ensure the appender is not rendered.
23724      // This is needed because `...innerBlocksProps` is used in the placeholder
23725      // state so that blocks can dragged onto the placeholder area
23726      // from both the list view and in the editor canvas.
23727      renderAppender = false;
23728    } else if (!hasInnerBlocks) {
23729      // When there is no placeholder, but the block is also empty,
23730      // use the larger button appender.
23731      renderAppender = external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender;
23732    }
23733    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(layoutSupportEnabled ? blockProps : {
23734      className: 'wp-block-group__inner-container'
23735    }, {
23736      dropZoneElement: ref.current,
23737      templateLock,
23738      allowedBlocks,
23739      renderAppender
23740    });
23741    const {
23742      selectBlock
23743    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
23744    const selectVariation = nextVariation => {
23745      setAttributes(nextVariation.attributes);
23746      selectBlock(clientId, -1);
23747      setShowPlaceholder(false);
23748    };
23749    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
23750      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GroupEditControls, {
23751        tagName: TagName,
23752        onSelectTagName: value => setAttributes({
23753          tagName: value
23754        })
23755      }), showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.View, {
23756        children: [innerBlocksProps.children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder, {
23757          name: name,
23758          onSelect: selectVariation
23759        })]
23760      }), layoutSupportEnabled && !showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23761        ...innerBlocksProps
23762      }), !layoutSupportEnabled && !showPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
23763        ...blockProps,
23764        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
23765          ...innerBlocksProps
23766        })
23767      })]
23768    });
23769  }
23770  /* harmony default export */ const group_edit = (GroupEdit);
23771  
23772  ;// ./node_modules/@wordpress/block-library/build-module/group/save.js
23773  /**
23774   * WordPress dependencies
23775   */
23776  
23777  
23778  function group_save_save({
23779    attributes: {
23780      tagName: Tag
23781    }
23782  }) {
23783    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
23784      ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(external_wp_blockEditor_namespaceObject.useBlockProps.save())
23785    });
23786  }
23787  
23788  ;// ./node_modules/@wordpress/block-library/build-module/group/transforms.js
23789  /**
23790   * WordPress dependencies
23791   */
23792  
23793  const group_transforms_transforms = {
23794    from: [{
23795      type: 'block',
23796      isMultiBlock: true,
23797      blocks: ['*'],
23798      __experimentalConvert(blocks) {
23799        const alignments = ['wide', 'full'];
23800  
23801        // Determine the widest setting of all the blocks to be grouped
23802        const widestAlignment = blocks.reduce((accumulator, block) => {
23803          const {
23804            align
23805          } = block.attributes;
23806          return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator;
23807        }, undefined);
23808  
23809        // Clone the Blocks to be Grouped
23810        // Failing to create new block references causes the original blocks
23811        // to be replaced in the switchToBlockType call thereby meaning they
23812        // are removed both from their original location and within the
23813        // new group block.
23814        const groupInnerBlocks = blocks.map(block => {
23815          return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, block.innerBlocks);
23816        });
23817        return (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
23818          align: widestAlignment,
23819          layout: {
23820            type: 'constrained'
23821          }
23822        }, groupInnerBlocks);
23823      }
23824    }]
23825  };
23826  /* harmony default export */ const group_transforms = (group_transforms_transforms);
23827  
23828  ;// ./node_modules/@wordpress/icons/build-module/library/row.js
23829  /**
23830   * WordPress dependencies
23831   */
23832  
23833  
23834  const row = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23835    xmlns: "http://www.w3.org/2000/svg",
23836    viewBox: "0 0 24 24",
23837    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23838      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"
23839    })
23840  });
23841  /* harmony default export */ const library_row = (row);
23842  
23843  ;// ./node_modules/@wordpress/icons/build-module/library/stack.js
23844  /**
23845   * WordPress dependencies
23846   */
23847  
23848  
23849  const stack = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23850    xmlns: "http://www.w3.org/2000/svg",
23851    viewBox: "0 0 24 24",
23852    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23853      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"
23854    })
23855  });
23856  /* harmony default export */ const library_stack = (stack);
23857  
23858  ;// ./node_modules/@wordpress/icons/build-module/library/grid.js
23859  /**
23860   * WordPress dependencies
23861   */
23862  
23863  
23864  const grid = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
23865    xmlns: "http://www.w3.org/2000/svg",
23866    viewBox: "0 0 24 24",
23867    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
23868      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",
23869      fillRule: "evenodd",
23870      clipRule: "evenodd"
23871    })
23872  });
23873  /* harmony default export */ const library_grid = (grid);
23874  
23875  ;// ./node_modules/@wordpress/block-library/build-module/group/variations.js
23876  /**
23877   * WordPress dependencies
23878   */
23879  
23880  
23881  const example = {
23882    innerBlocks: [{
23883      name: 'core/paragraph',
23884      attributes: {
23885        customTextColor: '#cf2e2e',
23886        fontSize: 'large',
23887        content: (0,external_wp_i18n_namespaceObject.__)('One.')
23888      }
23889    }, {
23890      name: 'core/paragraph',
23891      attributes: {
23892        customTextColor: '#ff6900',
23893        fontSize: 'large',
23894        content: (0,external_wp_i18n_namespaceObject.__)('Two.')
23895      }
23896    }, {
23897      name: 'core/paragraph',
23898      attributes: {
23899        customTextColor: '#fcb900',
23900        fontSize: 'large',
23901        content: (0,external_wp_i18n_namespaceObject.__)('Three.')
23902      }
23903    }, {
23904      name: 'core/paragraph',
23905      attributes: {
23906        customTextColor: '#00d084',
23907        fontSize: 'large',
23908        content: (0,external_wp_i18n_namespaceObject.__)('Four.')
23909      }
23910    }, {
23911      name: 'core/paragraph',
23912      attributes: {
23913        customTextColor: '#0693e3',
23914        fontSize: 'large',
23915        content: (0,external_wp_i18n_namespaceObject.__)('Five.')
23916      }
23917    }, {
23918      name: 'core/paragraph',
23919      attributes: {
23920        customTextColor: '#9b51e0',
23921        fontSize: 'large',
23922        content: (0,external_wp_i18n_namespaceObject.__)('Six.')
23923      }
23924    }]
23925  };
23926  const group_variations_variations = [{
23927    name: 'group',
23928    title: (0,external_wp_i18n_namespaceObject.__)('Group'),
23929    description: (0,external_wp_i18n_namespaceObject.__)('Gather blocks in a container.'),
23930    attributes: {
23931      layout: {
23932        type: 'constrained'
23933      }
23934    },
23935    isDefault: true,
23936    scope: ['block', 'inserter', 'transform'],
23937    isActive: blockAttributes => !blockAttributes.layout || !blockAttributes.layout?.type || blockAttributes.layout?.type === 'default' || blockAttributes.layout?.type === 'constrained',
23938    icon: library_group
23939  }, {
23940    name: 'group-row',
23941    title: (0,external_wp_i18n_namespaceObject._x)('Row', 'single horizontal line'),
23942    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks horizontally.'),
23943    attributes: {
23944      layout: {
23945        type: 'flex',
23946        flexWrap: 'nowrap'
23947      }
23948    },
23949    scope: ['block', 'inserter', 'transform'],
23950    isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && (!blockAttributes.layout?.orientation || blockAttributes.layout?.orientation === 'horizontal'),
23951    icon: library_row,
23952    example
23953  }, {
23954    name: 'group-stack',
23955    title: (0,external_wp_i18n_namespaceObject.__)('Stack'),
23956    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks vertically.'),
23957    attributes: {
23958      layout: {
23959        type: 'flex',
23960        orientation: 'vertical'
23961      }
23962    },
23963    scope: ['block', 'inserter', 'transform'],
23964    isActive: blockAttributes => blockAttributes.layout?.type === 'flex' && blockAttributes.layout?.orientation === 'vertical',
23965    icon: library_stack,
23966    example
23967  }, {
23968    name: 'group-grid',
23969    title: (0,external_wp_i18n_namespaceObject.__)('Grid'),
23970    description: (0,external_wp_i18n_namespaceObject.__)('Arrange blocks in a grid.'),
23971    attributes: {
23972      layout: {
23973        type: 'grid'
23974      }
23975    },
23976    scope: ['block', 'inserter', 'transform'],
23977    isActive: blockAttributes => blockAttributes.layout?.type === 'grid',
23978    icon: library_grid,
23979    example
23980  }];
23981  /* harmony default export */ const group_variations = (group_variations_variations);
23982  
23983  ;// ./node_modules/@wordpress/block-library/build-module/group/index.js
23984  /**
23985   * WordPress dependencies
23986   */
23987  
23988  
23989  
23990  /**
23991   * Internal dependencies
23992   */
23993  
23994  
23995  
23996  const group_metadata = {
23997    $schema: "https://schemas.wp.org/trunk/block.json",
23998    apiVersion: 3,
23999    name: "core/group",
24000    title: "Group",
24001    category: "design",
24002    description: "Gather blocks in a layout container.",
24003    keywords: ["container", "wrapper", "row", "section"],
24004    textdomain: "default",
24005    attributes: {
24006      tagName: {
24007        type: "string",
24008        "default": "div"
24009      },
24010      templateLock: {
24011        type: ["string", "boolean"],
24012        "enum": ["all", "insert", "contentOnly", false]
24013      },
24014      allowedBlocks: {
24015        type: "array"
24016      }
24017    },
24018    supports: {
24019      __experimentalOnEnter: true,
24020      __experimentalOnMerge: true,
24021      __experimentalSettings: true,
24022      align: ["wide", "full"],
24023      anchor: true,
24024      ariaLabel: true,
24025      html: false,
24026      background: {
24027        backgroundImage: true,
24028        backgroundSize: true,
24029        __experimentalDefaultControls: {
24030          backgroundImage: true
24031        }
24032      },
24033      color: {
24034        gradients: true,
24035        heading: true,
24036        button: true,
24037        link: true,
24038        __experimentalDefaultControls: {
24039          background: true,
24040          text: true
24041        }
24042      },
24043      shadow: true,
24044      spacing: {
24045        margin: ["top", "bottom"],
24046        padding: true,
24047        blockGap: true,
24048        __experimentalDefaultControls: {
24049          padding: true,
24050          blockGap: true
24051        }
24052      },
24053      dimensions: {
24054        minHeight: true
24055      },
24056      __experimentalBorder: {
24057        color: true,
24058        radius: true,
24059        style: true,
24060        width: true,
24061        __experimentalDefaultControls: {
24062          color: true,
24063          radius: true,
24064          style: true,
24065          width: true
24066        }
24067      },
24068      position: {
24069        sticky: true
24070      },
24071      typography: {
24072        fontSize: true,
24073        lineHeight: true,
24074        __experimentalFontFamily: true,
24075        __experimentalFontWeight: true,
24076        __experimentalFontStyle: true,
24077        __experimentalTextTransform: true,
24078        __experimentalTextDecoration: true,
24079        __experimentalLetterSpacing: true,
24080        __experimentalDefaultControls: {
24081          fontSize: true
24082        }
24083      },
24084      layout: {
24085        allowSizingOnChildren: true
24086      },
24087      interactivity: {
24088        clientNavigation: true
24089      }
24090    },
24091    editorStyle: "wp-block-group-editor",
24092    style: "wp-block-group"
24093  };
24094  
24095  
24096  
24097  const {
24098    name: group_name
24099  } = group_metadata;
24100  
24101  const group_settings = {
24102    icon: library_group,
24103    example: {
24104      attributes: {
24105        layout: {
24106          type: 'constrained',
24107          justifyContent: 'center'
24108        },
24109        style: {
24110          spacing: {
24111            padding: {
24112              top: '4em',
24113              right: '3em',
24114              bottom: '4em',
24115              left: '3em'
24116            }
24117          }
24118        }
24119      },
24120      innerBlocks: [{
24121        name: 'core/heading',
24122        attributes: {
24123          content: (0,external_wp_i18n_namespaceObject.__)('La Mancha'),
24124          textAlign: 'center'
24125        }
24126      }, {
24127        name: 'core/paragraph',
24128        attributes: {
24129          align: 'center',
24130          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.')
24131        }
24132      }, {
24133        name: 'core/spacer',
24134        attributes: {
24135          height: '10px'
24136        }
24137      }, {
24138        name: 'core/button',
24139        attributes: {
24140          text: (0,external_wp_i18n_namespaceObject.__)('Read more')
24141        }
24142      }],
24143      viewportWidth: 600
24144    },
24145    transforms: group_transforms,
24146    edit: group_edit,
24147    save: group_save_save,
24148    deprecated: group_deprecated,
24149    variations: group_variations
24150  };
24151  const group_init = () => initBlock({
24152    name: group_name,
24153    metadata: group_metadata,
24154    settings: group_settings
24155  });
24156  
24157  ;// ./node_modules/@wordpress/icons/build-module/library/heading.js
24158  /**
24159   * WordPress dependencies
24160   */
24161  
24162  
24163  const heading = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
24164    xmlns: "http://www.w3.org/2000/svg",
24165    viewBox: "0 0 24 24",
24166    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
24167      d: "M6 5V18.5911L12 13.8473L18 18.5911V5H6Z"
24168    })
24169  });
24170  /* harmony default export */ const library_heading = (heading);
24171  
24172  ;// ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js
24173  /**
24174   * External dependencies
24175   */
24176  
24177  
24178  /**
24179   * WordPress dependencies
24180   */
24181  
24182  
24183  const blockSupports = {
24184    className: false,
24185    anchor: true
24186  };
24187  const heading_deprecated_blockAttributes = {
24188    align: {
24189      type: 'string'
24190    },
24191    content: {
24192      type: 'string',
24193      source: 'html',
24194      selector: 'h1,h2,h3,h4,h5,h6',
24195      default: ''
24196    },
24197    level: {
24198      type: 'number',
24199      default: 2
24200    },
24201    placeholder: {
24202      type: 'string'
24203    }
24204  };
24205  const deprecated_migrateCustomColors = attributes => {
24206    if (!attributes.customTextColor) {
24207      return attributes;
24208    }
24209    const style = {
24210      color: {
24211        text: attributes.customTextColor
24212      }
24213    };
24214    const {
24215      customTextColor,
24216      ...restAttributes
24217    } = attributes;
24218    return {
24219      ...restAttributes,
24220      style
24221    };
24222  };
24223  const TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
24224  const migrateTextAlign = attributes => {
24225    const {
24226      align,
24227      ...rest
24228    } = attributes;
24229    return TEXT_ALIGN_OPTIONS.includes(align) ? {
24230      ...rest,
24231      textAlign: align
24232    } : attributes;
24233  };
24234  const heading_deprecated_v1 = {
24235    supports: blockSupports,
24236    attributes: {
24237      ...heading_deprecated_blockAttributes,
24238      customTextColor: {
24239        type: 'string'
24240      },
24241      textColor: {
24242        type: 'string'
24243      }
24244    },
24245    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
24246    save({
24247      attributes
24248    }) {
24249      const {
24250        align,
24251        level,
24252        content,
24253        textColor,
24254        customTextColor
24255      } = attributes;
24256      const tagName = 'h' + level;
24257      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
24258      const className = dist_clsx({
24259        [textClass]: textClass
24260      });
24261      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24262        className: className ? className : undefined,
24263        tagName: tagName,
24264        style: {
24265          textAlign: align,
24266          color: textClass ? undefined : customTextColor
24267        },
24268        value: content
24269      });
24270    }
24271  };
24272  const heading_deprecated_v2 = {
24273    attributes: {
24274      ...heading_deprecated_blockAttributes,
24275      customTextColor: {
24276        type: 'string'
24277      },
24278      textColor: {
24279        type: 'string'
24280      }
24281    },
24282    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
24283    save({
24284      attributes
24285    }) {
24286      const {
24287        align,
24288        content,
24289        customTextColor,
24290        level,
24291        textColor
24292      } = attributes;
24293      const tagName = 'h' + level;
24294      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
24295      const className = dist_clsx({
24296        [textClass]: textClass,
24297        [`has-text-align-$align}`]: align
24298      });
24299      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24300        className: className ? className : undefined,
24301        tagName: tagName,
24302        style: {
24303          color: textClass ? undefined : customTextColor
24304        },
24305        value: content
24306      });
24307    },
24308    supports: blockSupports
24309  };
24310  const heading_deprecated_v3 = {
24311    supports: blockSupports,
24312    attributes: {
24313      ...heading_deprecated_blockAttributes,
24314      customTextColor: {
24315        type: 'string'
24316      },
24317      textColor: {
24318        type: 'string'
24319      }
24320    },
24321    migrate: attributes => deprecated_migrateCustomColors(migrateTextAlign(attributes)),
24322    save({
24323      attributes
24324    }) {
24325      const {
24326        align,
24327        content,
24328        customTextColor,
24329        level,
24330        textColor
24331      } = attributes;
24332      const tagName = 'h' + level;
24333      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
24334      const className = dist_clsx({
24335        [textClass]: textClass,
24336        'has-text-color': textColor || customTextColor,
24337        [`has-text-align-$align}`]: align
24338      });
24339      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24340        className: className ? className : undefined,
24341        tagName: tagName,
24342        style: {
24343          color: textClass ? undefined : customTextColor
24344        },
24345        value: content
24346      });
24347    }
24348  };
24349  const heading_deprecated_v4 = {
24350    supports: {
24351      align: ['wide', 'full'],
24352      anchor: true,
24353      className: false,
24354      color: {
24355        link: true
24356      },
24357      fontSize: true,
24358      lineHeight: true,
24359      __experimentalSelector: {
24360        'core/heading/h1': 'h1',
24361        'core/heading/h2': 'h2',
24362        'core/heading/h3': 'h3',
24363        'core/heading/h4': 'h4',
24364        'core/heading/h5': 'h5',
24365        'core/heading/h6': 'h6'
24366      },
24367      __unstablePasteTextInline: true
24368    },
24369    attributes: heading_deprecated_blockAttributes,
24370    isEligible: ({
24371      align
24372    }) => TEXT_ALIGN_OPTIONS.includes(align),
24373    migrate: migrateTextAlign,
24374    save({
24375      attributes
24376    }) {
24377      const {
24378        align,
24379        content,
24380        level
24381      } = attributes;
24382      const TagName = 'h' + level;
24383      const className = dist_clsx({
24384        [`has-text-align-$align}`]: align
24385      });
24386      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
24387        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
24388          className
24389        }),
24390        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24391          value: content
24392        })
24393      });
24394    }
24395  };
24396  
24397  // This deprecation covers the serialization of the `wp-block-heading` class
24398  // into the block's markup after className support was enabled.
24399  const heading_deprecated_v5 = {
24400    supports: {
24401      align: ['wide', 'full'],
24402      anchor: true,
24403      className: false,
24404      color: {
24405        gradients: true,
24406        link: true,
24407        __experimentalDefaultControls: {
24408          background: true,
24409          text: true
24410        }
24411      },
24412      spacing: {
24413        margin: true,
24414        padding: true
24415      },
24416      typography: {
24417        fontSize: true,
24418        lineHeight: true,
24419        __experimentalFontFamily: true,
24420        __experimentalFontStyle: true,
24421        __experimentalFontWeight: true,
24422        __experimentalLetterSpacing: true,
24423        __experimentalTextTransform: true,
24424        __experimentalTextDecoration: true,
24425        __experimentalDefaultControls: {
24426          fontSize: true,
24427          fontAppearance: true,
24428          textTransform: true
24429        }
24430      },
24431      __experimentalSelector: 'h1,h2,h3,h4,h5,h6',
24432      __unstablePasteTextInline: true,
24433      __experimentalSlashInserter: true
24434    },
24435    attributes: {
24436      textAlign: {
24437        type: 'string'
24438      },
24439      content: {
24440        type: 'string',
24441        source: 'html',
24442        selector: 'h1,h2,h3,h4,h5,h6',
24443        default: '',
24444        role: 'content'
24445      },
24446      level: {
24447        type: 'number',
24448        default: 2
24449      },
24450      placeholder: {
24451        type: 'string'
24452      }
24453    },
24454    save({
24455      attributes
24456    }) {
24457      const {
24458        textAlign,
24459        content,
24460        level
24461      } = attributes;
24462      const TagName = 'h' + level;
24463      const className = dist_clsx({
24464        [`has-text-align-$textAlign}`]: textAlign
24465      });
24466      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
24467        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
24468          className
24469        }),
24470        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24471          value: content
24472        })
24473      });
24474    }
24475  };
24476  const heading_deprecated_deprecated = [heading_deprecated_v5, heading_deprecated_v4, heading_deprecated_v3, heading_deprecated_v2, heading_deprecated_v1];
24477  /* harmony default export */ const heading_deprecated = (heading_deprecated_deprecated);
24478  
24479  ;// ./node_modules/@wordpress/block-library/build-module/heading/autogenerate-anchors.js
24480  /**
24481   * External dependencies
24482   */
24483  
24484  
24485  /**
24486   * Object map tracking anchors.
24487   *
24488   * @type {Record<string, string | null>}
24489   */
24490  const autogenerate_anchors_anchors = {};
24491  
24492  /**
24493   * Returns the text without markup.
24494   *
24495   * @param {string} text The text.
24496   *
24497   * @return {string} The text without markup.
24498   */
24499  const getTextWithoutMarkup = text => {
24500    const dummyElement = document.createElement('div');
24501    dummyElement.innerHTML = text;
24502    return dummyElement.innerText;
24503  };
24504  
24505  /**
24506   * Get the slug from the content.
24507   *
24508   * @param {string} content The block content.
24509   *
24510   * @return {string} Returns the slug.
24511   */
24512  const getSlug = content => {
24513    // Get the slug.
24514    return remove_accents_default()(getTextWithoutMarkup(content))
24515    // Convert anything that's not a letter or number to a hyphen.
24516    .replace(/[^\p{L}\p{N}]+/gu, '-')
24517    // Convert to lowercase
24518    .toLowerCase()
24519    // Remove any remaining leading or trailing hyphens.
24520    .replace(/(^-+)|(-+$)/g, '');
24521  };
24522  
24523  /**
24524   * Generate the anchor for a heading.
24525   *
24526   * @param {string} clientId The block ID.
24527   * @param {string} content  The block content.
24528   *
24529   * @return {string|null} Return the heading anchor.
24530   */
24531  const generateAnchor = (clientId, content) => {
24532    const slug = getSlug(content);
24533    // If slug is empty, then return null.
24534    // Returning null instead of an empty string allows us to check again when the content changes.
24535    if ('' === slug) {
24536      return null;
24537    }
24538    delete autogenerate_anchors_anchors[clientId];
24539    let anchor = slug;
24540    let i = 0;
24541  
24542    // If the anchor already exists in another heading, append -i.
24543    while (Object.values(autogenerate_anchors_anchors).includes(anchor)) {
24544      i += 1;
24545      anchor = slug + '-' + i;
24546    }
24547    return anchor;
24548  };
24549  
24550  /**
24551   * Set the anchor for a heading.
24552   *
24553   * @param {string}      clientId The block ID.
24554   * @param {string|null} anchor   The block anchor.
24555   */
24556  const setAnchor = (clientId, anchor) => {
24557    autogenerate_anchors_anchors[clientId] = anchor;
24558  };
24559  
24560  ;// ./node_modules/@wordpress/block-library/build-module/heading/edit.js
24561  /**
24562   * External dependencies
24563   */
24564  
24565  
24566  /**
24567   * WordPress dependencies
24568   */
24569  
24570  
24571  
24572  
24573  
24574  /**
24575   * Internal dependencies
24576   */
24577  
24578  
24579  function HeadingEdit({
24580    attributes,
24581    setAttributes,
24582    mergeBlocks,
24583    onReplace,
24584    style,
24585    clientId
24586  }) {
24587    const {
24588      textAlign,
24589      content,
24590      level,
24591      levelOptions,
24592      placeholder,
24593      anchor
24594    } = attributes;
24595    const tagName = 'h' + level;
24596    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
24597      className: dist_clsx({
24598        [`has-text-align-$textAlign}`]: textAlign
24599      }),
24600      style
24601    });
24602    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
24603    const {
24604      canGenerateAnchors
24605    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
24606      const {
24607        getGlobalBlockCount,
24608        getSettings
24609      } = select(external_wp_blockEditor_namespaceObject.store);
24610      const settings = getSettings();
24611      return {
24612        canGenerateAnchors: !!settings.generateAnchors || getGlobalBlockCount('core/table-of-contents') > 0
24613      };
24614    }, []);
24615    const {
24616      __unstableMarkNextChangeAsNotPersistent
24617    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
24618  
24619    // Initially set anchor for headings that have content but no anchor set.
24620    // This is used when transforming a block to heading, or for legacy anchors.
24621    (0,external_wp_element_namespaceObject.useEffect)(() => {
24622      if (!canGenerateAnchors) {
24623        return;
24624      }
24625      if (!anchor && content) {
24626        // This side-effect should not create an undo level.
24627        __unstableMarkNextChangeAsNotPersistent();
24628        setAttributes({
24629          anchor: generateAnchor(clientId, content)
24630        });
24631      }
24632      setAnchor(clientId, anchor);
24633  
24634      // Remove anchor map when block unmounts.
24635      return () => setAnchor(clientId, null);
24636    }, [anchor, content, clientId, canGenerateAnchors]);
24637    const onContentChange = value => {
24638      const newAttrs = {
24639        content: value
24640      };
24641      if (canGenerateAnchors && (!anchor || !value || generateAnchor(clientId, content) === anchor)) {
24642        newAttrs.anchor = generateAnchor(clientId, value);
24643      }
24644      setAttributes(newAttrs);
24645    };
24646    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
24647      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
24648        group: "block",
24649        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
24650          value: level,
24651          options: levelOptions,
24652          onChange: newLevel => setAttributes({
24653            level: newLevel
24654          })
24655        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
24656          value: textAlign,
24657          onChange: nextAlign => {
24658            setAttributes({
24659              textAlign: nextAlign
24660            });
24661          }
24662        })]
24663      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
24664        identifier: "content",
24665        tagName: tagName,
24666        value: content,
24667        onChange: onContentChange,
24668        onMerge: mergeBlocks,
24669        onReplace: onReplace,
24670        onRemove: () => onReplace([]),
24671        placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Heading'),
24672        textAlign: textAlign,
24673        ...(external_wp_element_namespaceObject.Platform.isNative && {
24674          deleteEnter: true
24675        }),
24676        ...blockProps
24677      })]
24678    });
24679  }
24680  /* harmony default export */ const heading_edit = (HeadingEdit);
24681  
24682  ;// ./node_modules/@wordpress/block-library/build-module/heading/save.js
24683  /**
24684   * External dependencies
24685   */
24686  
24687  
24688  /**
24689   * WordPress dependencies
24690   */
24691  
24692  
24693  function heading_save_save({
24694    attributes
24695  }) {
24696    const {
24697      textAlign,
24698      content,
24699      level
24700    } = attributes;
24701    const TagName = 'h' + level;
24702    const className = dist_clsx({
24703      [`has-text-align-$textAlign}`]: textAlign
24704    });
24705    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
24706      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
24707        className
24708      }),
24709      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
24710        value: content
24711      })
24712    });
24713  }
24714  
24715  ;// ./node_modules/@wordpress/block-library/build-module/heading/shared.js
24716  /**
24717   * Given a node name string for a heading node, returns its numeric level.
24718   *
24719   * @param {string} nodeName Heading node name.
24720   *
24721   * @return {number} Heading level.
24722   */
24723  function getLevelFromHeadingNodeName(nodeName) {
24724    return Number(nodeName.substr(1));
24725  }
24726  
24727  ;// ./node_modules/@wordpress/block-library/build-module/heading/transforms.js
24728  /**
24729   * WordPress dependencies
24730   */
24731  
24732  
24733  /**
24734   * Internal dependencies
24735   */
24736  
24737  
24738  const heading_transforms_transforms = {
24739    from: [{
24740      type: 'block',
24741      isMultiBlock: true,
24742      blocks: ['core/paragraph'],
24743      transform: attributes => attributes.map(({
24744        content,
24745        anchor,
24746        align: textAlign,
24747        metadata
24748      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24749        content,
24750        anchor,
24751        textAlign,
24752        metadata: getTransformedMetadata(metadata, 'core/heading', ({
24753          content: contentBinding
24754        }) => ({
24755          content: contentBinding
24756        }))
24757      }))
24758    }, {
24759      type: 'raw',
24760      selector: 'h1,h2,h3,h4,h5,h6',
24761      schema: ({
24762        phrasingContentSchema,
24763        isPaste
24764      }) => {
24765        const schema = {
24766          children: phrasingContentSchema,
24767          attributes: isPaste ? [] : ['style', 'id']
24768        };
24769        return {
24770          h1: schema,
24771          h2: schema,
24772          h3: schema,
24773          h4: schema,
24774          h5: schema,
24775          h6: schema
24776        };
24777      },
24778      transform(node) {
24779        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/heading', node.outerHTML);
24780        const {
24781          textAlign
24782        } = node.style || {};
24783        attributes.level = getLevelFromHeadingNodeName(node.nodeName);
24784        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
24785          attributes.align = textAlign;
24786        }
24787        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', attributes);
24788      }
24789    }, ...[1, 2, 3, 4, 5, 6].map(level => ({
24790      type: 'prefix',
24791      prefix: Array(level + 1).join('#'),
24792      transform(content) {
24793        return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24794          level,
24795          content
24796        });
24797      }
24798    })), ...[1, 2, 3, 4, 5, 6].map(level => ({
24799      type: 'enter',
24800      regExp: new RegExp(`^/(h|H)$level}$`),
24801      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
24802        level
24803      })
24804    }))],
24805    to: [{
24806      type: 'block',
24807      isMultiBlock: true,
24808      blocks: ['core/paragraph'],
24809      transform: attributes => attributes.map(({
24810        content,
24811        textAlign: align,
24812        metadata
24813      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
24814        content,
24815        align,
24816        metadata: getTransformedMetadata(metadata, 'core/paragraph', ({
24817          content: contentBinding
24818        }) => ({
24819          content: contentBinding
24820        }))
24821      }))
24822    }]
24823  };
24824  /* harmony default export */ const heading_transforms = (heading_transforms_transforms);
24825  
24826  ;// ./node_modules/@wordpress/block-library/build-module/heading/index.js
24827  /**
24828   * WordPress dependencies
24829   */
24830  
24831  
24832  
24833  /**
24834   * Internal dependencies
24835   */
24836  
24837  
24838  
24839  const heading_metadata = {
24840    $schema: "https://schemas.wp.org/trunk/block.json",
24841    apiVersion: 3,
24842    name: "core/heading",
24843    title: "Heading",
24844    category: "text",
24845    description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
24846    keywords: ["title", "subtitle"],
24847    textdomain: "default",
24848    attributes: {
24849      textAlign: {
24850        type: "string"
24851      },
24852      content: {
24853        type: "rich-text",
24854        source: "rich-text",
24855        selector: "h1,h2,h3,h4,h5,h6",
24856        role: "content"
24857      },
24858      level: {
24859        type: "number",
24860        "default": 2
24861      },
24862      levelOptions: {
24863        type: "array"
24864      },
24865      placeholder: {
24866        type: "string"
24867      }
24868    },
24869    supports: {
24870      align: ["wide", "full"],
24871      anchor: true,
24872      className: true,
24873      splitting: true,
24874      __experimentalBorder: {
24875        color: true,
24876        radius: true,
24877        style: true,
24878        width: true
24879      },
24880      color: {
24881        gradients: true,
24882        link: true,
24883        __experimentalDefaultControls: {
24884          background: true,
24885          text: true
24886        }
24887      },
24888      spacing: {
24889        margin: true,
24890        padding: true,
24891        __experimentalDefaultControls: {
24892          margin: false,
24893          padding: false
24894        }
24895      },
24896      typography: {
24897        fontSize: true,
24898        lineHeight: true,
24899        __experimentalFontFamily: true,
24900        __experimentalFontStyle: true,
24901        __experimentalFontWeight: true,
24902        __experimentalLetterSpacing: true,
24903        __experimentalTextTransform: true,
24904        __experimentalTextDecoration: true,
24905        __experimentalWritingMode: true,
24906        __experimentalDefaultControls: {
24907          fontSize: true
24908        }
24909      },
24910      __unstablePasteTextInline: true,
24911      __experimentalSlashInserter: true,
24912      interactivity: {
24913        clientNavigation: true
24914      }
24915    },
24916    editorStyle: "wp-block-heading-editor",
24917    style: "wp-block-heading"
24918  };
24919  
24920  
24921  const {
24922    name: heading_name
24923  } = heading_metadata;
24924  
24925  const heading_settings = {
24926    icon: library_heading,
24927    example: {
24928      attributes: {
24929        content: (0,external_wp_i18n_namespaceObject.__)('Code is Poetry'),
24930        level: 2,
24931        textAlign: 'center'
24932      }
24933    },
24934    __experimentalLabel(attributes, {
24935      context
24936    }) {
24937      const {
24938        content,
24939        level
24940      } = attributes;
24941      const customName = attributes?.metadata?.name;
24942      const hasContent = content?.trim().length > 0;
24943  
24944      // In the list view, use the block's content as the label.
24945      // If the content is empty, fall back to the default label.
24946      if (context === 'list-view' && (customName || hasContent)) {
24947        return customName || content;
24948      }
24949      if (context === 'accessibility') {
24950        return !hasContent ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: accessibility text. %s: heading level. */
24951        (0,external_wp_i18n_namespaceObject.__)('Level %s. Empty.'), level) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: accessibility text. 1: heading level. 2: heading content. */
24952        (0,external_wp_i18n_namespaceObject.__)('Level %1$s. %2$s'), level, content);
24953      }
24954    },
24955    transforms: heading_transforms,
24956    deprecated: heading_deprecated,
24957    merge(attributes, attributesToMerge) {
24958      return {
24959        content: (attributes.content || '') + (attributesToMerge.content || '')
24960      };
24961    },
24962    edit: heading_edit,
24963    save: heading_save_save
24964  };
24965  const heading_init = () => initBlock({
24966    name: heading_name,
24967    metadata: heading_metadata,
24968    settings: heading_settings
24969  });
24970  
24971  ;// ./node_modules/@wordpress/icons/build-module/library/home.js
24972  /**
24973   * WordPress dependencies
24974   */
24975  
24976  
24977  const home = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
24978    xmlns: "http://www.w3.org/2000/svg",
24979    viewBox: "0 0 24 24",
24980    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
24981      d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"
24982    })
24983  });
24984  /* harmony default export */ const library_home = (home);
24985  
24986  ;// ./node_modules/@wordpress/block-library/build-module/home-link/edit.js
24987  /**
24988   * External dependencies
24989   */
24990  
24991  
24992  /**
24993   * WordPress dependencies
24994   */
24995  
24996  
24997  
24998  
24999  
25000  const preventDefault = event => event.preventDefault();
25001  function HomeEdit({
25002    attributes,
25003    setAttributes,
25004    context
25005  }) {
25006    var _attributes$label;
25007    const homeUrl = (0,external_wp_data_namespaceObject.useSelect)(select => {
25008      // Site index.
25009      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase')?.home;
25010    }, []);
25011    const {
25012      textColor,
25013      backgroundColor,
25014      style
25015    } = context;
25016    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
25017      className: dist_clsx('wp-block-navigation-item', {
25018        'has-text-color': !!textColor || !!style?.color?.text,
25019        [`has-$textColor}-color`]: !!textColor,
25020        'has-background': !!backgroundColor || !!style?.color?.background,
25021        [`has-$backgroundColor}-background-color`]: !!backgroundColor
25022      }),
25023      style: {
25024        color: style?.color?.text,
25025        backgroundColor: style?.color?.background
25026      }
25027    });
25028    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25029      ...blockProps,
25030      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25031        className: "wp-block-home-link__content wp-block-navigation-item__content",
25032        href: homeUrl,
25033        onClick: preventDefault,
25034        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
25035          identifier: "label",
25036          className: "wp-block-home-link__label",
25037          value: (_attributes$label = attributes.label) !== null && _attributes$label !== void 0 ? _attributes$label : (0,external_wp_i18n_namespaceObject.__)('Home'),
25038          onChange: labelValue => {
25039            setAttributes({
25040              label: labelValue
25041            });
25042          },
25043          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Home link text'),
25044          placeholder: (0,external_wp_i18n_namespaceObject.__)('Add home link'),
25045          withoutInteractiveFormatting: true
25046        })
25047      })
25048    });
25049  }
25050  
25051  ;// ./node_modules/@wordpress/block-library/build-module/home-link/save.js
25052  /**
25053   * WordPress dependencies
25054   */
25055  
25056  
25057  function home_link_save_save() {
25058    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
25059  }
25060  
25061  ;// ./node_modules/@wordpress/block-library/build-module/home-link/index.js
25062  /**
25063   * WordPress dependencies
25064   */
25065  
25066  
25067  
25068  /**
25069   * Internal dependencies
25070   */
25071  
25072  const home_link_metadata = {
25073    $schema: "https://schemas.wp.org/trunk/block.json",
25074    apiVersion: 3,
25075    name: "core/home-link",
25076    category: "design",
25077    parent: ["core/navigation"],
25078    title: "Home Link",
25079    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.",
25080    textdomain: "default",
25081    attributes: {
25082      label: {
25083        type: "string"
25084      }
25085    },
25086    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style"],
25087    supports: {
25088      reusable: false,
25089      html: false,
25090      typography: {
25091        fontSize: true,
25092        lineHeight: true,
25093        __experimentalFontFamily: true,
25094        __experimentalFontWeight: true,
25095        __experimentalFontStyle: true,
25096        __experimentalTextTransform: true,
25097        __experimentalTextDecoration: true,
25098        __experimentalLetterSpacing: true,
25099        __experimentalDefaultControls: {
25100          fontSize: true
25101        }
25102      },
25103      interactivity: {
25104        clientNavigation: true
25105      }
25106    },
25107    editorStyle: "wp-block-home-link-editor",
25108    style: "wp-block-home-link"
25109  };
25110  
25111  
25112  const {
25113    name: home_link_name
25114  } = home_link_metadata;
25115  
25116  const home_link_settings = {
25117    icon: library_home,
25118    edit: HomeEdit,
25119    save: home_link_save_save,
25120    example: {
25121      attributes: {
25122        label: (0,external_wp_i18n_namespaceObject._x)('Home Link', 'block example')
25123      }
25124    }
25125  };
25126  const home_link_init = () => initBlock({
25127    name: home_link_name,
25128    metadata: home_link_metadata,
25129    settings: home_link_settings
25130  });
25131  
25132  ;// ./node_modules/@wordpress/icons/build-module/library/html.js
25133  /**
25134   * WordPress dependencies
25135   */
25136  
25137  
25138  const html = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
25139    viewBox: "0 0 24 24",
25140    xmlns: "http://www.w3.org/2000/svg",
25141    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
25142      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"
25143    })
25144  });
25145  /* harmony default export */ const library_html = (html);
25146  
25147  ;// ./node_modules/@wordpress/block-library/build-module/html/preview.js
25148  /**
25149   * WordPress dependencies
25150   */
25151  
25152  
25153  
25154  
25155  
25156  
25157  // Default styles used to unset some of the styles
25158  // that might be inherited from the editor style.
25159  
25160  const DEFAULT_STYLES = `
25161      html,body,:root {
25162          margin: 0 !important;
25163          padding: 0 !important;
25164          overflow: visible !important;
25165          min-height: auto !important;
25166      }
25167  `;
25168  function HTMLEditPreview({
25169    content,
25170    isSelected
25171  }) {
25172    const settingStyles = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().styles, []);
25173    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]);
25174    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25175      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SandBox, {
25176        html: content,
25177        styles: styles,
25178        title: (0,external_wp_i18n_namespaceObject.__)('Custom HTML Preview'),
25179        tabIndex: -1
25180      }), !isSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25181        className: "block-library-html__preview-overlay"
25182      })]
25183    });
25184  }
25185  
25186  ;// ./node_modules/@wordpress/block-library/build-module/html/edit.js
25187  /**
25188   * WordPress dependencies
25189   */
25190  
25191  
25192  
25193  
25194  
25195  
25196  
25197  /**
25198   * Internal dependencies
25199   */
25200  
25201  
25202  function HTMLEdit({
25203    attributes,
25204    setAttributes,
25205    isSelected
25206  }) {
25207    const [isPreview, setIsPreview] = (0,external_wp_element_namespaceObject.useState)();
25208    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
25209    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(HTMLEdit, 'html-edit-desc');
25210    const isPreviewMode = (0,external_wp_data_namespaceObject.useSelect)(select => {
25211      return select(external_wp_blockEditor_namespaceObject.store).getSettings().isPreviewMode;
25212    }, []);
25213    function switchToPreview() {
25214      setIsPreview(true);
25215    }
25216    function switchToHTML() {
25217      setIsPreview(false);
25218    }
25219    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
25220      className: 'block-library-html__edit',
25221      'aria-describedby': isPreview ? instanceId : undefined
25222    });
25223    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
25224      ...blockProps,
25225      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
25226        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
25227          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
25228            isPressed: !isPreview,
25229            onClick: switchToHTML,
25230            children: "HTML"
25231          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
25232            isPressed: isPreview,
25233            onClick: switchToPreview,
25234            children: (0,external_wp_i18n_namespaceObject.__)('Preview')
25235          })]
25236        })
25237      }), isPreview || isPreviewMode || isDisabled ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25238        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(HTMLEditPreview, {
25239          content: attributes.content,
25240          isSelected: isSelected
25241        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
25242          id: instanceId,
25243          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.')
25244        })]
25245      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
25246        value: attributes.content,
25247        onChange: content => setAttributes({
25248          content
25249        }),
25250        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write HTML…'),
25251        "aria-label": (0,external_wp_i18n_namespaceObject.__)('HTML')
25252      })]
25253    });
25254  }
25255  
25256  ;// ./node_modules/@wordpress/block-library/build-module/html/save.js
25257  /**
25258   * WordPress dependencies
25259   */
25260  
25261  
25262  function html_save_save({
25263    attributes
25264  }) {
25265    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
25266      children: attributes.content
25267    });
25268  }
25269  
25270  ;// ./node_modules/@wordpress/block-library/build-module/html/transforms.js
25271  /**
25272   * WordPress dependencies
25273   */
25274  
25275  
25276  const html_transforms_transforms = {
25277    from: [{
25278      type: 'block',
25279      blocks: ['core/code'],
25280      transform: ({
25281        content: html
25282      }) => {
25283        return (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
25284          // The code block may output HTML formatting, so convert it
25285          // to plain text.
25286          content: (0,external_wp_richText_namespaceObject.create)({
25287            html
25288          }).text
25289        });
25290      }
25291    }]
25292  };
25293  /* harmony default export */ const html_transforms = (html_transforms_transforms);
25294  
25295  ;// ./node_modules/@wordpress/block-library/build-module/html/index.js
25296  /**
25297   * WordPress dependencies
25298   */
25299  
25300  
25301  
25302  /**
25303   * Internal dependencies
25304   */
25305  
25306  
25307  const html_metadata = {
25308    $schema: "https://schemas.wp.org/trunk/block.json",
25309    apiVersion: 3,
25310    name: "core/html",
25311    title: "Custom HTML",
25312    category: "widgets",
25313    description: "Add custom HTML code and preview it as you edit.",
25314    keywords: ["embed"],
25315    textdomain: "default",
25316    attributes: {
25317      content: {
25318        type: "string",
25319        source: "raw"
25320      }
25321    },
25322    supports: {
25323      customClassName: false,
25324      className: false,
25325      html: false,
25326      interactivity: {
25327        clientNavigation: true
25328      }
25329    },
25330    editorStyle: "wp-block-html-editor"
25331  };
25332  
25333  
25334  const {
25335    name: html_name
25336  } = html_metadata;
25337  
25338  const html_settings = {
25339    icon: library_html,
25340    example: {
25341      attributes: {
25342        content: '<marquee>' + (0,external_wp_i18n_namespaceObject.__)('Welcome to the wonderful world of blocks…') + '</marquee>'
25343      }
25344    },
25345    edit: HTMLEdit,
25346    save: html_save_save,
25347    transforms: html_transforms
25348  };
25349  const html_init = () => initBlock({
25350    name: html_name,
25351    metadata: html_metadata,
25352    settings: html_settings
25353  });
25354  
25355  ;// ./node_modules/@wordpress/block-library/build-module/image/deprecated.js
25356  /**
25357   * External dependencies
25358   */
25359  
25360  
25361  /**
25362   * WordPress dependencies
25363   */
25364  
25365  
25366  /**
25367   * Deprecation for adding the `wp-image-${id}` class to the image block for
25368   * responsive images.
25369   *
25370   * @see https://github.com/WordPress/gutenberg/pull/4898
25371   */
25372  
25373  const image_deprecated_v1 = {
25374    attributes: {
25375      url: {
25376        type: 'string',
25377        source: 'attribute',
25378        selector: 'img',
25379        attribute: 'src'
25380      },
25381      alt: {
25382        type: 'string',
25383        source: 'attribute',
25384        selector: 'img',
25385        attribute: 'alt',
25386        default: ''
25387      },
25388      caption: {
25389        type: 'array',
25390        source: 'children',
25391        selector: 'figcaption'
25392      },
25393      href: {
25394        type: 'string',
25395        source: 'attribute',
25396        selector: 'a',
25397        attribute: 'href'
25398      },
25399      id: {
25400        type: 'number'
25401      },
25402      align: {
25403        type: 'string'
25404      },
25405      width: {
25406        type: 'number'
25407      },
25408      height: {
25409        type: 'number'
25410      }
25411    },
25412    save({
25413      attributes
25414    }) {
25415      const {
25416        url,
25417        alt,
25418        caption,
25419        align,
25420        href,
25421        width,
25422        height
25423      } = attributes;
25424      const extraImageProps = width || height ? {
25425        width,
25426        height
25427      } : {};
25428      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25429        src: url,
25430        alt: alt,
25431        ...extraImageProps
25432      });
25433      let figureStyle = {};
25434      if (width) {
25435        figureStyle = {
25436          width
25437        };
25438      } else if (align === 'left' || align === 'right') {
25439        figureStyle = {
25440          maxWidth: '50%'
25441        };
25442      }
25443      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
25444        className: align ? `align$align}` : null,
25445        style: figureStyle,
25446        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25447          href: href,
25448          children: image
25449        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25450          tagName: "figcaption",
25451          value: caption
25452        })]
25453      });
25454    }
25455  };
25456  
25457  /**
25458   * Deprecation for adding the `is-resized` class to the image block to fix
25459   * captions on resized images.
25460   *
25461   * @see https://github.com/WordPress/gutenberg/pull/6496
25462   */
25463  const image_deprecated_v2 = {
25464    attributes: {
25465      url: {
25466        type: 'string',
25467        source: 'attribute',
25468        selector: 'img',
25469        attribute: 'src'
25470      },
25471      alt: {
25472        type: 'string',
25473        source: 'attribute',
25474        selector: 'img',
25475        attribute: 'alt',
25476        default: ''
25477      },
25478      caption: {
25479        type: 'array',
25480        source: 'children',
25481        selector: 'figcaption'
25482      },
25483      href: {
25484        type: 'string',
25485        source: 'attribute',
25486        selector: 'a',
25487        attribute: 'href'
25488      },
25489      id: {
25490        type: 'number'
25491      },
25492      align: {
25493        type: 'string'
25494      },
25495      width: {
25496        type: 'number'
25497      },
25498      height: {
25499        type: 'number'
25500      }
25501    },
25502    save({
25503      attributes
25504    }) {
25505      const {
25506        url,
25507        alt,
25508        caption,
25509        align,
25510        href,
25511        width,
25512        height,
25513        id
25514      } = attributes;
25515      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25516        src: url,
25517        alt: alt,
25518        className: id ? `wp-image-$id}` : null,
25519        width: width,
25520        height: height
25521      });
25522      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
25523        className: align ? `align$align}` : null,
25524        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25525          href: href,
25526          children: image
25527        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25528          tagName: "figcaption",
25529          value: caption
25530        })]
25531      });
25532    }
25533  };
25534  
25535  /**
25536   * Deprecation for image floats including a wrapping div.
25537   *
25538   * @see https://github.com/WordPress/gutenberg/pull/7721
25539   */
25540  const image_deprecated_v3 = {
25541    attributes: {
25542      url: {
25543        type: 'string',
25544        source: 'attribute',
25545        selector: 'img',
25546        attribute: 'src'
25547      },
25548      alt: {
25549        type: 'string',
25550        source: 'attribute',
25551        selector: 'img',
25552        attribute: 'alt',
25553        default: ''
25554      },
25555      caption: {
25556        type: 'array',
25557        source: 'children',
25558        selector: 'figcaption'
25559      },
25560      href: {
25561        type: 'string',
25562        source: 'attribute',
25563        selector: 'figure > a',
25564        attribute: 'href'
25565      },
25566      id: {
25567        type: 'number'
25568      },
25569      align: {
25570        type: 'string'
25571      },
25572      width: {
25573        type: 'number'
25574      },
25575      height: {
25576        type: 'number'
25577      },
25578      linkDestination: {
25579        type: 'string',
25580        default: 'none'
25581      }
25582    },
25583    save({
25584      attributes
25585    }) {
25586      const {
25587        url,
25588        alt,
25589        caption,
25590        align,
25591        href,
25592        width,
25593        height,
25594        id
25595      } = attributes;
25596      const classes = dist_clsx({
25597        [`align$align}`]: align,
25598        'is-resized': width || height
25599      });
25600      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25601        src: url,
25602        alt: alt,
25603        className: id ? `wp-image-$id}` : null,
25604        width: width,
25605        height: height
25606      });
25607      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
25608        className: classes,
25609        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25610          href: href,
25611          children: image
25612        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25613          tagName: "figcaption",
25614          value: caption
25615        })]
25616      });
25617    }
25618  };
25619  
25620  /**
25621   * Deprecation for removing the outer div wrapper around aligned images.
25622   *
25623   * @see https://github.com/WordPress/gutenberg/pull/38657
25624   */
25625  const image_deprecated_v4 = {
25626    attributes: {
25627      align: {
25628        type: 'string'
25629      },
25630      url: {
25631        type: 'string',
25632        source: 'attribute',
25633        selector: 'img',
25634        attribute: 'src'
25635      },
25636      alt: {
25637        type: 'string',
25638        source: 'attribute',
25639        selector: 'img',
25640        attribute: 'alt',
25641        default: ''
25642      },
25643      caption: {
25644        type: 'string',
25645        source: 'html',
25646        selector: 'figcaption'
25647      },
25648      title: {
25649        type: 'string',
25650        source: 'attribute',
25651        selector: 'img',
25652        attribute: 'title'
25653      },
25654      href: {
25655        type: 'string',
25656        source: 'attribute',
25657        selector: 'figure > a',
25658        attribute: 'href'
25659      },
25660      rel: {
25661        type: 'string',
25662        source: 'attribute',
25663        selector: 'figure > a',
25664        attribute: 'rel'
25665      },
25666      linkClass: {
25667        type: 'string',
25668        source: 'attribute',
25669        selector: 'figure > a',
25670        attribute: 'class'
25671      },
25672      id: {
25673        type: 'number'
25674      },
25675      width: {
25676        type: 'number'
25677      },
25678      height: {
25679        type: 'number'
25680      },
25681      sizeSlug: {
25682        type: 'string'
25683      },
25684      linkDestination: {
25685        type: 'string'
25686      },
25687      linkTarget: {
25688        type: 'string',
25689        source: 'attribute',
25690        selector: 'figure > a',
25691        attribute: 'target'
25692      }
25693    },
25694    supports: {
25695      anchor: true
25696    },
25697    save({
25698      attributes
25699    }) {
25700      const {
25701        url,
25702        alt,
25703        caption,
25704        align,
25705        href,
25706        rel,
25707        linkClass,
25708        width,
25709        height,
25710        id,
25711        linkTarget,
25712        sizeSlug,
25713        title
25714      } = attributes;
25715      const newRel = !rel ? undefined : rel;
25716      const classes = dist_clsx({
25717        [`align$align}`]: align,
25718        [`size-$sizeSlug}`]: sizeSlug,
25719        'is-resized': width || height
25720      });
25721      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25722        src: url,
25723        alt: alt,
25724        className: id ? `wp-image-$id}` : null,
25725        width: width,
25726        height: height,
25727        title: title
25728      });
25729      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25730        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25731          className: linkClass,
25732          href: href,
25733          target: linkTarget,
25734          rel: newRel,
25735          children: image
25736        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25737          tagName: "figcaption",
25738          value: caption
25739        })]
25740      });
25741      if ('left' === align || 'right' === align || 'center' === align) {
25742        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
25743          ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
25744          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25745            className: classes,
25746            children: figure
25747          })
25748        });
25749      }
25750      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25751        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25752          className: classes
25753        }),
25754        children: figure
25755      });
25756    }
25757  };
25758  
25759  /**
25760   * Deprecation for moving existing border radius styles onto the inner img
25761   * element where new border block support styles must be applied.
25762   * It will also add a new `.has-custom-border` class for existing blocks
25763   * with border radii set. This class is required to improve caption position
25764   * and styling when an image within a gallery has a custom border or
25765   * rounded corners.
25766   *
25767   * @see https://github.com/WordPress/gutenberg/pull/31366
25768   */
25769  const image_deprecated_v5 = {
25770    attributes: {
25771      align: {
25772        type: 'string'
25773      },
25774      url: {
25775        type: 'string',
25776        source: 'attribute',
25777        selector: 'img',
25778        attribute: 'src'
25779      },
25780      alt: {
25781        type: 'string',
25782        source: 'attribute',
25783        selector: 'img',
25784        attribute: 'alt',
25785        default: ''
25786      },
25787      caption: {
25788        type: 'string',
25789        source: 'html',
25790        selector: 'figcaption'
25791      },
25792      title: {
25793        type: 'string',
25794        source: 'attribute',
25795        selector: 'img',
25796        attribute: 'title'
25797      },
25798      href: {
25799        type: 'string',
25800        source: 'attribute',
25801        selector: 'figure > a',
25802        attribute: 'href'
25803      },
25804      rel: {
25805        type: 'string',
25806        source: 'attribute',
25807        selector: 'figure > a',
25808        attribute: 'rel'
25809      },
25810      linkClass: {
25811        type: 'string',
25812        source: 'attribute',
25813        selector: 'figure > a',
25814        attribute: 'class'
25815      },
25816      id: {
25817        type: 'number'
25818      },
25819      width: {
25820        type: 'number'
25821      },
25822      height: {
25823        type: 'number'
25824      },
25825      sizeSlug: {
25826        type: 'string'
25827      },
25828      linkDestination: {
25829        type: 'string'
25830      },
25831      linkTarget: {
25832        type: 'string',
25833        source: 'attribute',
25834        selector: 'figure > a',
25835        attribute: 'target'
25836      }
25837    },
25838    supports: {
25839      anchor: true,
25840      color: {
25841        __experimentalDuotone: 'img',
25842        text: false,
25843        background: false
25844      },
25845      __experimentalBorder: {
25846        radius: true,
25847        __experimentalDefaultControls: {
25848          radius: true
25849        }
25850      },
25851      __experimentalStyle: {
25852        spacing: {
25853          margin: '0 0 1em 0'
25854        }
25855      }
25856    },
25857    save({
25858      attributes
25859    }) {
25860      const {
25861        url,
25862        alt,
25863        caption,
25864        align,
25865        href,
25866        rel,
25867        linkClass,
25868        width,
25869        height,
25870        id,
25871        linkTarget,
25872        sizeSlug,
25873        title
25874      } = attributes;
25875      const newRel = !rel ? undefined : rel;
25876      const classes = dist_clsx({
25877        [`align$align}`]: align,
25878        [`size-$sizeSlug}`]: sizeSlug,
25879        'is-resized': width || height
25880      });
25881      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
25882        src: url,
25883        alt: alt,
25884        className: id ? `wp-image-$id}` : null,
25885        width: width,
25886        height: height,
25887        title: title
25888      });
25889      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
25890        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
25891          className: linkClass,
25892          href: href,
25893          target: linkTarget,
25894          rel: newRel,
25895          children: image
25896        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
25897          tagName: "figcaption",
25898          value: caption
25899        })]
25900      });
25901      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
25902        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
25903          className: classes
25904        }),
25905        children: figure
25906      });
25907    }
25908  };
25909  
25910  /**
25911   * Deprecation for adding width and height as style rules on the inner img.
25912   *
25913   * @see https://github.com/WordPress/gutenberg/pull/31366
25914   */
25915  const image_deprecated_v6 = {
25916    attributes: {
25917      align: {
25918        type: 'string'
25919      },
25920      url: {
25921        type: 'string',
25922        source: 'attribute',
25923        selector: 'img',
25924        attribute: 'src',
25925        role: 'content'
25926      },
25927      alt: {
25928        type: 'string',
25929        source: 'attribute',
25930        selector: 'img',
25931        attribute: 'alt',
25932        default: '',
25933        role: 'content'
25934      },
25935      caption: {
25936        type: 'string',
25937        source: 'html',
25938        selector: 'figcaption',
25939        role: 'content'
25940      },
25941      title: {
25942        type: 'string',
25943        source: 'attribute',
25944        selector: 'img',
25945        attribute: 'title',
25946        role: 'content'
25947      },
25948      href: {
25949        type: 'string',
25950        source: 'attribute',
25951        selector: 'figure > a',
25952        attribute: 'href',
25953        role: 'content'
25954      },
25955      rel: {
25956        type: 'string',
25957        source: 'attribute',
25958        selector: 'figure > a',
25959        attribute: 'rel'
25960      },
25961      linkClass: {
25962        type: 'string',
25963        source: 'attribute',
25964        selector: 'figure > a',
25965        attribute: 'class'
25966      },
25967      id: {
25968        type: 'number',
25969        role: 'content'
25970      },
25971      width: {
25972        type: 'number'
25973      },
25974      height: {
25975        type: 'number'
25976      },
25977      aspectRatio: {
25978        type: 'string'
25979      },
25980      scale: {
25981        type: 'string'
25982      },
25983      sizeSlug: {
25984        type: 'string'
25985      },
25986      linkDestination: {
25987        type: 'string'
25988      },
25989      linkTarget: {
25990        type: 'string',
25991        source: 'attribute',
25992        selector: 'figure > a',
25993        attribute: 'target'
25994      }
25995    },
25996    supports: {
25997      anchor: true,
25998      color: {
25999        text: false,
26000        background: false
26001      },
26002      filter: {
26003        duotone: true
26004      },
26005      __experimentalBorder: {
26006        color: true,
26007        radius: true,
26008        width: true,
26009        __experimentalSkipSerialization: true,
26010        __experimentalDefaultControls: {
26011          color: true,
26012          radius: true,
26013          width: true
26014        }
26015      }
26016    },
26017    migrate(attributes) {
26018      const {
26019        height,
26020        width
26021      } = attributes;
26022      return {
26023        ...attributes,
26024        width: typeof width === 'number' ? `$width}px` : width,
26025        height: typeof height === 'number' ? `$height}px` : height
26026      };
26027    },
26028    save({
26029      attributes
26030    }) {
26031      const {
26032        url,
26033        alt,
26034        caption,
26035        align,
26036        href,
26037        rel,
26038        linkClass,
26039        width,
26040        height,
26041        aspectRatio,
26042        scale,
26043        id,
26044        linkTarget,
26045        sizeSlug,
26046        title
26047      } = attributes;
26048      const newRel = !rel ? undefined : rel;
26049      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
26050      const classes = dist_clsx({
26051        [`align$align}`]: align,
26052        [`size-$sizeSlug}`]: sizeSlug,
26053        'is-resized': width || height,
26054        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
26055      });
26056      const imageClasses = dist_clsx(borderProps.className, {
26057        [`wp-image-$id}`]: !!id
26058      });
26059      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26060        src: url,
26061        alt: alt,
26062        className: imageClasses || undefined,
26063        style: {
26064          ...borderProps.style,
26065          aspectRatio,
26066          objectFit: scale
26067        },
26068        width: width,
26069        height: height,
26070        title: title
26071      });
26072      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26073        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26074          className: linkClass,
26075          href: href,
26076          target: linkTarget,
26077          rel: newRel,
26078          children: image
26079        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
26080          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
26081          tagName: "figcaption",
26082          value: caption
26083        })]
26084      });
26085      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
26086        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
26087          className: classes
26088        }),
26089        children: figure
26090      });
26091    }
26092  };
26093  
26094  /**
26095   * Deprecation for converting to string width and height block attributes and
26096   * removing the width and height img element attributes which are not needed
26097   * as they get added by the TODO hook.
26098   *
26099   * @see https://github.com/WordPress/gutenberg/pull/53274
26100   */
26101  const image_deprecated_v7 = {
26102    attributes: {
26103      align: {
26104        type: 'string'
26105      },
26106      url: {
26107        type: 'string',
26108        source: 'attribute',
26109        selector: 'img',
26110        attribute: 'src',
26111        role: 'content'
26112      },
26113      alt: {
26114        type: 'string',
26115        source: 'attribute',
26116        selector: 'img',
26117        attribute: 'alt',
26118        default: '',
26119        role: 'content'
26120      },
26121      caption: {
26122        type: 'string',
26123        source: 'html',
26124        selector: 'figcaption',
26125        role: 'content'
26126      },
26127      title: {
26128        type: 'string',
26129        source: 'attribute',
26130        selector: 'img',
26131        attribute: 'title',
26132        role: 'content'
26133      },
26134      href: {
26135        type: 'string',
26136        source: 'attribute',
26137        selector: 'figure > a',
26138        attribute: 'href',
26139        role: 'content'
26140      },
26141      rel: {
26142        type: 'string',
26143        source: 'attribute',
26144        selector: 'figure > a',
26145        attribute: 'rel'
26146      },
26147      linkClass: {
26148        type: 'string',
26149        source: 'attribute',
26150        selector: 'figure > a',
26151        attribute: 'class'
26152      },
26153      id: {
26154        type: 'number',
26155        role: 'content'
26156      },
26157      width: {
26158        type: 'number'
26159      },
26160      height: {
26161        type: 'number'
26162      },
26163      aspectRatio: {
26164        type: 'string'
26165      },
26166      scale: {
26167        type: 'string'
26168      },
26169      sizeSlug: {
26170        type: 'string'
26171      },
26172      linkDestination: {
26173        type: 'string'
26174      },
26175      linkTarget: {
26176        type: 'string',
26177        source: 'attribute',
26178        selector: 'figure > a',
26179        attribute: 'target'
26180      }
26181    },
26182    supports: {
26183      anchor: true,
26184      color: {
26185        text: false,
26186        background: false
26187      },
26188      filter: {
26189        duotone: true
26190      },
26191      __experimentalBorder: {
26192        color: true,
26193        radius: true,
26194        width: true,
26195        __experimentalSkipSerialization: true,
26196        __experimentalDefaultControls: {
26197          color: true,
26198          radius: true,
26199          width: true
26200        }
26201      }
26202    },
26203    migrate({
26204      width,
26205      height,
26206      ...attributes
26207    }) {
26208      return {
26209        ...attributes,
26210        width: `$width}px`,
26211        height: `$height}px`
26212      };
26213    },
26214    save({
26215      attributes
26216    }) {
26217      const {
26218        url,
26219        alt,
26220        caption,
26221        align,
26222        href,
26223        rel,
26224        linkClass,
26225        width,
26226        height,
26227        aspectRatio,
26228        scale,
26229        id,
26230        linkTarget,
26231        sizeSlug,
26232        title
26233      } = attributes;
26234      const newRel = !rel ? undefined : rel;
26235      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
26236      const classes = dist_clsx({
26237        [`align$align}`]: align,
26238        [`size-$sizeSlug}`]: sizeSlug,
26239        'is-resized': width || height,
26240        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
26241      });
26242      const imageClasses = dist_clsx(borderProps.className, {
26243        [`wp-image-$id}`]: !!id
26244      });
26245      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26246        src: url,
26247        alt: alt,
26248        className: imageClasses || undefined,
26249        style: {
26250          ...borderProps.style,
26251          aspectRatio,
26252          objectFit: scale,
26253          width,
26254          height
26255        },
26256        width: width,
26257        height: height,
26258        title: title
26259      });
26260      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26261        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26262          className: linkClass,
26263          href: href,
26264          target: linkTarget,
26265          rel: newRel,
26266          children: image
26267        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
26268          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
26269          tagName: "figcaption",
26270          value: caption
26271        })]
26272      });
26273      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
26274        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
26275          className: classes
26276        }),
26277        children: figure
26278      });
26279    }
26280  };
26281  const deprecated_v8 = {
26282    attributes: {
26283      align: {
26284        type: 'string'
26285      },
26286      behaviors: {
26287        type: 'object'
26288      },
26289      url: {
26290        type: 'string',
26291        source: 'attribute',
26292        selector: 'img',
26293        attribute: 'src',
26294        role: 'content'
26295      },
26296      alt: {
26297        type: 'string',
26298        source: 'attribute',
26299        selector: 'img',
26300        attribute: 'alt',
26301        default: '',
26302        role: 'content'
26303      },
26304      caption: {
26305        type: 'string',
26306        source: 'html',
26307        selector: 'figcaption',
26308        role: 'content'
26309      },
26310      title: {
26311        type: 'string',
26312        source: 'attribute',
26313        selector: 'img',
26314        attribute: 'title',
26315        role: 'content'
26316      },
26317      href: {
26318        type: 'string',
26319        source: 'attribute',
26320        selector: 'figure > a',
26321        attribute: 'href',
26322        role: 'content'
26323      },
26324      rel: {
26325        type: 'string',
26326        source: 'attribute',
26327        selector: 'figure > a',
26328        attribute: 'rel'
26329      },
26330      linkClass: {
26331        type: 'string',
26332        source: 'attribute',
26333        selector: 'figure > a',
26334        attribute: 'class'
26335      },
26336      id: {
26337        type: 'number',
26338        role: 'content'
26339      },
26340      width: {
26341        type: 'string'
26342      },
26343      height: {
26344        type: 'string'
26345      },
26346      aspectRatio: {
26347        type: 'string'
26348      },
26349      scale: {
26350        type: 'string'
26351      },
26352      sizeSlug: {
26353        type: 'string'
26354      },
26355      linkDestination: {
26356        type: 'string'
26357      },
26358      linkTarget: {
26359        type: 'string',
26360        source: 'attribute',
26361        selector: 'figure > a',
26362        attribute: 'target'
26363      }
26364    },
26365    supports: {
26366      anchor: true,
26367      color: {
26368        text: false,
26369        background: false
26370      },
26371      filter: {
26372        duotone: true
26373      },
26374      __experimentalBorder: {
26375        color: true,
26376        radius: true,
26377        width: true,
26378        __experimentalSkipSerialization: true,
26379        __experimentalDefaultControls: {
26380          color: true,
26381          radius: true,
26382          width: true
26383        }
26384      }
26385    },
26386    migrate({
26387      width,
26388      height,
26389      ...attributes
26390    }) {
26391      // We need to perform a check here because in cases
26392      // where attributes are added dynamically to blocks,
26393      // block invalidation overrides the isEligible() method
26394      // and forces the migration to run, so it's not guaranteed
26395      // that `behaviors` or `behaviors.lightbox` will be defined.
26396      if (!attributes.behaviors?.lightbox) {
26397        return attributes;
26398      }
26399      const {
26400        behaviors: {
26401          lightbox: {
26402            enabled
26403          }
26404        }
26405      } = attributes;
26406      const newAttributes = {
26407        ...attributes,
26408        lightbox: {
26409          enabled
26410        }
26411      };
26412      delete newAttributes.behaviors;
26413      return newAttributes;
26414    },
26415    isEligible(attributes) {
26416      return !!attributes.behaviors;
26417    },
26418    save({
26419      attributes
26420    }) {
26421      const {
26422        url,
26423        alt,
26424        caption,
26425        align,
26426        href,
26427        rel,
26428        linkClass,
26429        width,
26430        height,
26431        aspectRatio,
26432        scale,
26433        id,
26434        linkTarget,
26435        sizeSlug,
26436        title
26437      } = attributes;
26438      const newRel = !rel ? undefined : rel;
26439      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
26440      const classes = dist_clsx({
26441        [`align$align}`]: align,
26442        [`size-$sizeSlug}`]: sizeSlug,
26443        'is-resized': width || height,
26444        'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
26445      });
26446      const imageClasses = dist_clsx(borderProps.className, {
26447        [`wp-image-$id}`]: !!id
26448      });
26449      const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
26450        src: url,
26451        alt: alt,
26452        className: imageClasses || undefined,
26453        style: {
26454          ...borderProps.style,
26455          aspectRatio,
26456          objectFit: scale,
26457          width,
26458          height
26459        },
26460        title: title
26461      });
26462      const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26463        children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26464          className: linkClass,
26465          href: href,
26466          target: linkTarget,
26467          rel: newRel,
26468          children: image
26469        }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
26470          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
26471          tagName: "figcaption",
26472          value: caption
26473        })]
26474      });
26475      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
26476        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
26477          className: classes
26478        }),
26479        children: figure
26480      });
26481    }
26482  };
26483  /* 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]);
26484  
26485  ;// ./node_modules/@wordpress/icons/build-module/library/plugins.js
26486  /**
26487   * WordPress dependencies
26488   */
26489  
26490  
26491  const plugins = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26492    xmlns: "http://www.w3.org/2000/svg",
26493    viewBox: "0 0 24 24",
26494    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26495      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"
26496    })
26497  });
26498  /* harmony default export */ const library_plugins = (plugins);
26499  
26500  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-down.js
26501  /**
26502   * WordPress dependencies
26503   */
26504  
26505  
26506  const chevronDown = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26507    viewBox: "0 0 24 24",
26508    xmlns: "http://www.w3.org/2000/svg",
26509    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26510      d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
26511    })
26512  });
26513  /* harmony default export */ const chevron_down = (chevronDown);
26514  
26515  ;// ./node_modules/@wordpress/icons/build-module/library/crop.js
26516  /**
26517   * WordPress dependencies
26518   */
26519  
26520  
26521  const crop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26522    xmlns: "http://www.w3.org/2000/svg",
26523    viewBox: "0 0 24 24",
26524    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26525      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"
26526    })
26527  });
26528  /* harmony default export */ const library_crop = (crop);
26529  
26530  ;// ./node_modules/@wordpress/icons/build-module/library/overlay-text.js
26531  /**
26532   * WordPress dependencies
26533   */
26534  
26535  
26536  const overlayText = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26537    xmlns: "http://www.w3.org/2000/svg",
26538    viewBox: "0 0 24 24",
26539    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26540      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"
26541    })
26542  });
26543  /* harmony default export */ const overlay_text = (overlayText);
26544  
26545  ;// ./node_modules/@wordpress/icons/build-module/library/upload.js
26546  /**
26547   * WordPress dependencies
26548   */
26549  
26550  
26551  const upload = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
26552    xmlns: "http://www.w3.org/2000/svg",
26553    viewBox: "0 0 24 24",
26554    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
26555      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"
26556    })
26557  });
26558  /* harmony default export */ const library_upload = (upload);
26559  
26560  ;// ./node_modules/@wordpress/block-library/build-module/image/image.js
26561  /**
26562   * WordPress dependencies
26563   */
26564  
26565  
26566  
26567  
26568  
26569  
26570  
26571  
26572  
26573  
26574  
26575  
26576  
26577  /**
26578   * Internal dependencies
26579   */
26580  
26581  
26582  
26583  
26584  
26585  /**
26586   * Module constants
26587   */
26588  
26589  
26590  
26591  
26592  const {
26593    DimensionsTool,
26594    ResolutionTool: image_ResolutionTool
26595  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
26596  const scaleOptions = [{
26597    value: 'cover',
26598    label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for dimensions control'),
26599    help: (0,external_wp_i18n_namespaceObject.__)('Image covers the space evenly.')
26600  }, {
26601    value: 'contain',
26602    label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for dimensions control'),
26603    help: (0,external_wp_i18n_namespaceObject.__)('Image is contained without distortion.')
26604  }];
26605  const WRITEMODE_POPOVER_PROPS = {
26606    placement: 'bottom-start'
26607  };
26608  
26609  // If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.
26610  const ImageWrapper = ({
26611    href,
26612    children
26613  }) => {
26614    if (!href) {
26615      return children;
26616    }
26617    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
26618      href: href,
26619      onClick: event => event.preventDefault(),
26620      "aria-disabled": true,
26621      style: {
26622        // When the Image block is linked,
26623        // it's wrapped with a disabled <a /> tag.
26624        // Restore cursor style so it doesn't appear 'clickable'
26625        // and remove pointer events. Safari needs the display property.
26626        pointerEvents: 'none',
26627        cursor: 'default',
26628        display: 'inline'
26629      },
26630      children: children
26631    });
26632  };
26633  function ContentOnlyControls({
26634    attributes,
26635    setAttributes,
26636    lockAltControls,
26637    lockAltControlsMessage,
26638    lockTitleControls,
26639    lockTitleControlsMessage
26640  }) {
26641    // Use internal state instead of a ref to make sure that the component
26642    // re-renders when the popover's anchor updates.
26643    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
26644    const [isAltDialogOpen, setIsAltDialogOpen] = (0,external_wp_element_namespaceObject.useState)(false);
26645    const [isTitleDialogOpen, setIsTitleDialogOpen] = (0,external_wp_element_namespaceObject.useState)(false);
26646    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26647      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarItem, {
26648        ref: setPopoverAnchor,
26649        children: toggleProps => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
26650          icon: chevron_down
26651          /* translators: button label text should, if possible, be under 16 characters. */,
26652          label: (0,external_wp_i18n_namespaceObject.__)('More'),
26653          toggleProps: {
26654            ...toggleProps,
26655            description: (0,external_wp_i18n_namespaceObject.__)('Displays more controls.')
26656          },
26657          popoverProps: WRITEMODE_POPOVER_PROPS,
26658          children: ({
26659            onClose
26660          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26661            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
26662              onClick: () => {
26663                setIsAltDialogOpen(true);
26664                onClose();
26665              },
26666              "aria-haspopup": "dialog",
26667              children: (0,external_wp_i18n_namespaceObject._x)('Alternative text', 'Alternative text for an image. Block toolbar label, a low character count is preferred.')
26668            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
26669              onClick: () => {
26670                setIsTitleDialogOpen(true);
26671                onClose();
26672              },
26673              "aria-haspopup": "dialog",
26674              children: (0,external_wp_i18n_namespaceObject.__)('Title text')
26675            })]
26676          })
26677        })
26678      }), isAltDialogOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover, {
26679        placement: "bottom-start",
26680        anchor: popoverAnchor,
26681        onClose: () => setIsAltDialogOpen(false),
26682        offset: 13,
26683        variant: "toolbar",
26684        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
26685          className: "wp-block-image__toolbar_content_textarea__container",
26686          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
26687            className: "wp-block-image__toolbar_content_textarea",
26688            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
26689            value: attributes.alt || '',
26690            onChange: value => setAttributes({
26691              alt: value
26692            }),
26693            disabled: lockAltControls,
26694            help: lockAltControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26695              children: lockAltControlsMessage
26696            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26697              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
26698                href:
26699                // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
26700                (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
26701                children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
26702              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
26703            }),
26704            __nextHasNoMarginBottom: true
26705          })
26706        })
26707      }), isTitleDialogOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover, {
26708        placement: "bottom-start",
26709        anchor: popoverAnchor,
26710        onClose: () => setIsTitleDialogOpen(false),
26711        offset: 13,
26712        variant: "toolbar",
26713        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
26714          className: "wp-block-image__toolbar_content_textarea__container",
26715          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
26716            __next40pxDefaultSize: true,
26717            className: "wp-block-image__toolbar_content_textarea",
26718            __nextHasNoMarginBottom: true,
26719            label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
26720            value: attributes.title || '',
26721            onChange: value => setAttributes({
26722              title: value
26723            }),
26724            disabled: lockTitleControls,
26725            help: lockTitleControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26726              children: lockTitleControlsMessage
26727            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
26728              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, {
26729                href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute",
26730                children: (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')
26731              })]
26732            })
26733          })
26734        })
26735      })]
26736    });
26737  }
26738  function image_Image({
26739    temporaryURL,
26740    attributes,
26741    setAttributes,
26742    isSingleSelected,
26743    insertBlocksAfter,
26744    onReplace,
26745    onSelectImage,
26746    onSelectURL,
26747    onUploadError,
26748    context,
26749    clientId,
26750    blockEditingMode,
26751    parentLayoutType,
26752    maxContentWidth
26753  }) {
26754    const {
26755      url = '',
26756      alt,
26757      align,
26758      id,
26759      href,
26760      rel,
26761      linkClass,
26762      linkDestination,
26763      title,
26764      width,
26765      height,
26766      aspectRatio,
26767      scale,
26768      linkTarget,
26769      sizeSlug,
26770      lightbox,
26771      metadata
26772    } = attributes;
26773  
26774    // The only supported unit is px, so we can parseInt to strip the px here.
26775    const numericWidth = width ? parseInt(width, 10) : undefined;
26776    const numericHeight = height ? parseInt(height, 10) : undefined;
26777    const imageRef = (0,external_wp_element_namespaceObject.useRef)();
26778    const {
26779      allowResize = true
26780    } = context;
26781    const {
26782      getBlock,
26783      getSettings
26784    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
26785    const image = (0,external_wp_data_namespaceObject.useSelect)(select => id && isSingleSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(id, {
26786      context: 'view'
26787    }) : null, [id, isSingleSelected]);
26788    const {
26789      canInsertCover,
26790      imageEditing,
26791      imageSizes,
26792      maxWidth
26793    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
26794      const {
26795        getBlockRootClientId,
26796        canInsertBlockType
26797      } = select(external_wp_blockEditor_namespaceObject.store);
26798      const rootClientId = getBlockRootClientId(clientId);
26799      const settings = getSettings();
26800      return {
26801        imageEditing: settings.imageEditing,
26802        imageSizes: settings.imageSizes,
26803        maxWidth: settings.maxWidth,
26804        canInsertCover: canInsertBlockType('core/cover', rootClientId)
26805      };
26806    }, [clientId]);
26807    const {
26808      replaceBlocks,
26809      toggleSelection
26810    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
26811    const {
26812      createErrorNotice,
26813      createSuccessNotice
26814    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
26815    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
26816    const isWideAligned = ['wide', 'full'].includes(align);
26817    const [{
26818      loadedNaturalWidth,
26819      loadedNaturalHeight
26820    }, setLoadedNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
26821    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
26822    const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)();
26823    const [hasImageErrored, setHasImageErrored] = (0,external_wp_element_namespaceObject.useState)(false);
26824    const hasNonContentControls = blockEditingMode === 'default';
26825    const isContentOnlyMode = blockEditingMode === 'contentOnly';
26826    const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
26827    const imageSizeOptions = imageSizes.filter(({
26828      slug
26829    }) => image?.media_details?.sizes?.[slug]?.source_url).map(({
26830      name,
26831      slug
26832    }) => ({
26833      value: slug,
26834      label: name
26835    }));
26836  
26837    // If an image is externally hosted, try to fetch the image data. This may
26838    // fail if the image host doesn't allow CORS with the domain. If it works,
26839    // we can enable a button in the toolbar to upload the image.
26840    (0,external_wp_element_namespaceObject.useEffect)(() => {
26841      if (!isExternalImage(id, url) || !isSingleSelected || !getSettings().mediaUpload) {
26842        setExternalBlob();
26843        return;
26844      }
26845      if (externalBlob) {
26846        return;
26847      }
26848      window
26849      // Avoid cache, which seems to help avoid CORS problems.
26850      .fetch(url.includes('?') ? url : url + '?').then(response => response.blob()).then(blob => setExternalBlob(blob))
26851      // Do nothing, cannot upload.
26852      .catch(() => {});
26853    }, [id, url, isSingleSelected, externalBlob]);
26854  
26855    // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
26856    // width and height. This resolves an issue in Safari where the loaded natural
26857    // width and height is otherwise lost when switching between alignments.
26858    // See: https://github.com/WordPress/gutenberg/pull/37210.
26859    const {
26860      naturalWidth,
26861      naturalHeight
26862    } = (0,external_wp_element_namespaceObject.useMemo)(() => {
26863      return {
26864        naturalWidth: imageRef.current?.naturalWidth || loadedNaturalWidth || undefined,
26865        naturalHeight: imageRef.current?.naturalHeight || loadedNaturalHeight || undefined
26866      };
26867    }, [loadedNaturalWidth, loadedNaturalHeight, imageRef.current?.complete]);
26868    function onResizeStart() {
26869      toggleSelection(false);
26870    }
26871    function onResizeStop() {
26872      toggleSelection(true);
26873    }
26874    function onImageError() {
26875      setHasImageErrored(true);
26876  
26877      // Check if there's an embed block that handles this URL, e.g., instagram URL.
26878      // See: https://github.com/WordPress/gutenberg/pull/11472
26879      const embedBlock = createUpgradedEmbedBlock({
26880        attributes: {
26881          url
26882        }
26883      });
26884      if (undefined !== embedBlock) {
26885        onReplace(embedBlock);
26886      }
26887    }
26888    function onImageLoad(event) {
26889      setHasImageErrored(false);
26890      setLoadedNaturalSize({
26891        loadedNaturalWidth: event.target?.naturalWidth,
26892        loadedNaturalHeight: event.target?.naturalHeight
26893      });
26894    }
26895    function onSetHref(props) {
26896      setAttributes(props);
26897    }
26898    function onSetLightbox(enable) {
26899      if (enable && !lightboxSetting?.enabled) {
26900        setAttributes({
26901          lightbox: {
26902            enabled: true
26903          }
26904        });
26905      } else if (!enable && lightboxSetting?.enabled) {
26906        setAttributes({
26907          lightbox: {
26908            enabled: false
26909          }
26910        });
26911      } else {
26912        setAttributes({
26913          lightbox: undefined
26914        });
26915      }
26916    }
26917    function resetLightbox() {
26918      // When deleting a link from an image while lightbox settings
26919      // are enabled by default, we should disable the lightbox,
26920      // otherwise the resulting UX looks like a mistake.
26921      // See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.
26922      if (lightboxSetting?.enabled && lightboxSetting?.allowEditing) {
26923        setAttributes({
26924          lightbox: {
26925            enabled: false
26926          }
26927        });
26928      } else {
26929        setAttributes({
26930          lightbox: undefined
26931        });
26932      }
26933    }
26934    function onSetTitle(value) {
26935      // This is the HTML title attribute, separate from the media object
26936      // title.
26937      setAttributes({
26938        title: value
26939      });
26940    }
26941    function updateAlt(newAlt) {
26942      setAttributes({
26943        alt: newAlt
26944      });
26945    }
26946    function updateImage(newSizeSlug) {
26947      const newUrl = image?.media_details?.sizes?.[newSizeSlug]?.source_url;
26948      if (!newUrl) {
26949        return null;
26950      }
26951      setAttributes({
26952        url: newUrl,
26953        sizeSlug: newSizeSlug
26954      });
26955    }
26956    function uploadExternal() {
26957      const {
26958        mediaUpload
26959      } = getSettings();
26960      if (!mediaUpload) {
26961        return;
26962      }
26963      mediaUpload({
26964        filesList: [externalBlob],
26965        onFileChange([img]) {
26966          onSelectImage(img);
26967          if ((0,external_wp_blob_namespaceObject.isBlobURL)(img.url)) {
26968            return;
26969          }
26970          setExternalBlob();
26971          createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Image uploaded.'), {
26972            type: 'snackbar'
26973          });
26974        },
26975        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
26976        onError(message) {
26977          createErrorNotice(message, {
26978            type: 'snackbar'
26979          });
26980        }
26981      });
26982    }
26983    (0,external_wp_element_namespaceObject.useEffect)(() => {
26984      if (!isSingleSelected) {
26985        setIsEditingImage(false);
26986      }
26987    }, [isSingleSelected]);
26988    const canEditImage = id && naturalWidth && naturalHeight && imageEditing;
26989    const allowCrop = isSingleSelected && canEditImage && !isEditingImage && !isContentOnlyMode;
26990    function switchToCover() {
26991      replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.switchToBlockType)(getBlock(clientId), 'core/cover'));
26992    }
26993  
26994    // TODO: Can allow more units after figuring out how they should interact
26995    // with the ResizableBox and ImageEditor components. Calculations later on
26996    // for those components are currently assuming px units.
26997    const dimensionsUnitsOptions = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
26998      availableUnits: ['px']
26999    });
27000    const [lightboxSetting] = (0,external_wp_blockEditor_namespaceObject.useSettings)('lightbox');
27001    const showLightboxSetting =
27002    // If a block-level override is set, we should give users the option to
27003    // remove that override, even if the lightbox UI is disabled in the settings.
27004    !!lightbox && lightbox?.enabled !== lightboxSetting?.enabled || lightboxSetting?.allowEditing;
27005    const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
27006    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
27007    const dimensionsControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionsTool, {
27008      value: {
27009        width,
27010        height,
27011        scale,
27012        aspectRatio
27013      },
27014      onChange: ({
27015        width: newWidth,
27016        height: newHeight,
27017        scale: newScale,
27018        aspectRatio: newAspectRatio
27019      }) => {
27020        // Rebuilding the object forces setting `undefined`
27021        // for values that are removed since setAttributes
27022        // doesn't do anything with keys that aren't set.
27023        setAttributes({
27024          // CSS includes `height: auto`, but we need
27025          // `width: auto` to fix the aspect ratio when
27026          // only height is set due to the width and
27027          // height attributes set via the server.
27028          width: !newWidth && newHeight ? 'auto' : newWidth,
27029          height: newHeight,
27030          scale: newScale,
27031          aspectRatio: newAspectRatio
27032        });
27033      },
27034      defaultScale: "cover",
27035      defaultAspectRatio: "auto",
27036      scaleOptions: scaleOptions,
27037      unitsOptions: dimensionsUnitsOptions
27038    });
27039    const aspectRatioControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionsTool, {
27040      value: {
27041        aspectRatio
27042      },
27043      onChange: ({
27044        aspectRatio: newAspectRatio
27045      }) => {
27046        setAttributes({
27047          aspectRatio: newAspectRatio,
27048          scale: 'cover'
27049        });
27050      },
27051      defaultAspectRatio: "auto",
27052      tools: ['aspectRatio']
27053    });
27054    const resetAll = () => {
27055      setAttributes({
27056        alt: undefined,
27057        width: undefined,
27058        height: undefined,
27059        scale: undefined,
27060        aspectRatio: undefined,
27061        lightbox: undefined
27062      });
27063    };
27064    const sizeControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27065      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
27066        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
27067        resetAll: resetAll,
27068        dropdownMenuProps: dropdownMenuProps,
27069        children: isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl)
27070      })
27071    });
27072    const arePatternOverridesEnabled = metadata?.bindings?.__default?.source === 'core/pattern-overrides';
27073    const {
27074      lockUrlControls = false,
27075      lockHrefControls = false,
27076      lockAltControls = false,
27077      lockAltControlsMessage,
27078      lockTitleControls = false,
27079      lockTitleControlsMessage,
27080      lockCaption = false
27081    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27082      if (!isSingleSelected) {
27083        return {};
27084      }
27085      const {
27086        url: urlBinding,
27087        alt: altBinding,
27088        title: titleBinding
27089      } = metadata?.bindings || {};
27090      const hasParentPattern = !!context['pattern/overrides'];
27091      const urlBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(urlBinding?.source);
27092      const altBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(altBinding?.source);
27093      const titleBindingSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(titleBinding?.source);
27094      return {
27095        lockUrlControls: !!urlBinding && !urlBindingSource?.canUserEditValue?.({
27096          select,
27097          context,
27098          args: urlBinding?.args
27099        }),
27100        lockHrefControls:
27101        // Disable editing the link of the URL if the image is inside a pattern instance.
27102        // This is a temporary solution until we support overriding the link on the frontend.
27103        hasParentPattern || arePatternOverridesEnabled,
27104        lockCaption:
27105        // Disable editing the caption if the image is inside a pattern instance.
27106        // This is a temporary solution until we support overriding the caption on the frontend.
27107        hasParentPattern,
27108        lockAltControls: !!altBinding && !altBindingSource?.canUserEditValue?.({
27109          select,
27110          context,
27111          args: altBinding?.args
27112        }),
27113        lockAltControlsMessage: altBindingSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the bindings source. */
27114        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), altBindingSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data'),
27115        lockTitleControls: !!titleBinding && !titleBindingSource?.canUserEditValue?.({
27116          select,
27117          context,
27118          args: titleBinding?.args
27119        }),
27120        lockTitleControlsMessage: titleBindingSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the bindings source. */
27121        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), titleBindingSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data')
27122      };
27123    }, [arePatternOverridesEnabled, context, isSingleSelected, metadata?.bindings]);
27124    const showUrlInput = isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls;
27125    const showCoverControls = isSingleSelected && canInsertCover;
27126    const showBlockControls = showUrlInput || allowCrop || showCoverControls;
27127    const mediaReplaceFlow = isSingleSelected && !isEditingImage && !lockUrlControls &&
27128    /*#__PURE__*/
27129    // For contentOnly mode, put this button in its own area so it has borders around it.
27130    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
27131      group: isContentOnlyMode ? 'inline' : 'other',
27132      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
27133        mediaId: id,
27134        mediaURL: url,
27135        allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27136        accept: "image/*",
27137        onSelect: onSelectImage,
27138        onSelectURL: onSelectURL,
27139        onError: onUploadError,
27140        name: !url ? (0,external_wp_i18n_namespaceObject.__)('Add image') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
27141        onReset: () => onSelectImage(undefined)
27142      })
27143    });
27144    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27145      children: [showBlockControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
27146        group: "block",
27147        children: [showUrlInput && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
27148          url: href || '',
27149          onChangeUrl: onSetHref,
27150          linkDestination: linkDestination,
27151          mediaUrl: image && image.source_url || url,
27152          mediaLink: image && image.link,
27153          linkTarget: linkTarget,
27154          linkClass: linkClass,
27155          rel: rel,
27156          showLightboxSetting: showLightboxSetting,
27157          lightboxEnabled: lightboxChecked,
27158          onSetLightbox: onSetLightbox,
27159          resetLightbox: resetLightbox
27160        }), allowCrop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
27161          onClick: () => setIsEditingImage(true),
27162          icon: library_crop,
27163          label: (0,external_wp_i18n_namespaceObject.__)('Crop')
27164        }), showCoverControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
27165          icon: overlay_text,
27166          label: (0,external_wp_i18n_namespaceObject.__)('Add text over image'),
27167          onClick: switchToCover
27168        })]
27169      }), isSingleSelected && externalBlob && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
27170        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
27171          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
27172            onClick: uploadExternal,
27173            icon: library_upload,
27174            label: (0,external_wp_i18n_namespaceObject.__)('Upload to Media Library')
27175          })
27176        })
27177      }), isContentOnlyMode &&
27178      /*#__PURE__*/
27179      // Add some extra controls for content attributes when content only mode is active.
27180      // With content only mode active, the inspector is hidden, so users need another way
27181      // to edit these attributes.
27182      (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
27183        group: "block",
27184        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ContentOnlyControls, {
27185          attributes: attributes,
27186          setAttributes: setAttributes,
27187          lockAltControls: lockAltControls,
27188          lockAltControlsMessage: lockAltControlsMessage,
27189          lockTitleControls: lockTitleControls,
27190          lockTitleControlsMessage: lockTitleControlsMessage
27191        })
27192      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27193        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
27194          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
27195          resetAll: resetAll,
27196          dropdownMenuProps: dropdownMenuProps,
27197          children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
27198            label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
27199            isShownByDefault: true,
27200            hasValue: () => !!alt,
27201            onDeselect: () => setAttributes({
27202              alt: undefined
27203            }),
27204            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
27205              label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
27206              value: alt || '',
27207              onChange: updateAlt,
27208              readOnly: lockAltControls,
27209              help: lockAltControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27210                children: lockAltControlsMessage
27211              }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27212                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
27213                  href:
27214                  // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
27215                  (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
27216                  children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
27217                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
27218              }),
27219              __nextHasNoMarginBottom: true
27220            })
27221          }), isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl), !!imageSizeOptions.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(image_ResolutionTool, {
27222            value: sizeSlug,
27223            onChange: updateImage,
27224            options: imageSizeOptions
27225          })]
27226        })
27227      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
27228        group: "advanced",
27229        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
27230          __nextHasNoMarginBottom: true,
27231          __next40pxDefaultSize: true,
27232          label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
27233          value: title || '',
27234          onChange: onSetTitle,
27235          readOnly: lockTitleControls,
27236          help: lockTitleControls ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27237            children: lockTitleControlsMessage
27238          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27239            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, {
27240              href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute",
27241              children: (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')
27242            })]
27243          })
27244        })
27245      })]
27246    });
27247    const filename = (0,external_wp_url_namespaceObject.getFilename)(url);
27248    let defaultedAlt;
27249    if (alt) {
27250      defaultedAlt = alt;
27251    } else if (filename) {
27252      defaultedAlt = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: file name */
27253      (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute; its file name is %s'), filename);
27254    } else {
27255      defaultedAlt = (0,external_wp_i18n_namespaceObject.__)('This image has an empty alt attribute');
27256    }
27257    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
27258    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27259    const isRounded = attributes.className?.includes('is-style-rounded');
27260    const {
27261      postType,
27262      postId,
27263      queryId
27264    } = context;
27265    const isDescendentOfQueryLoop = Number.isFinite(queryId);
27266    const [, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
27267    let img = temporaryURL && hasImageErrored ?
27268    /*#__PURE__*/
27269    // Show a placeholder during upload when the blob URL can't be loaded. This can
27270    // happen when the user uploads a HEIC image in a browser that doesn't support them.
27271    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
27272      className: "wp-block-image__placeholder",
27273      withIllustration: true,
27274      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
27275    }) :
27276    /*#__PURE__*/
27277    // Disable reason: Image itself is not meant to be interactive, but
27278    // should direct focus to block.
27279    /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
27280    (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27281      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27282        src: temporaryURL || url,
27283        alt: defaultedAlt,
27284        onError: onImageError,
27285        onLoad: onImageLoad,
27286        ref: imageRef,
27287        className: borderProps.className,
27288        style: {
27289          width: width && height || aspectRatio ? '100%' : undefined,
27290          height: width && height || aspectRatio ? '100%' : undefined,
27291          objectFit: scale,
27292          ...borderProps.style,
27293          ...shadowProps.style
27294        }
27295      }), temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
27296    })
27297    /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
27298    if (canEditImage && isEditingImage) {
27299      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
27300        href: href,
27301        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
27302          id: id,
27303          url: url,
27304          width: numericWidth,
27305          height: numericHeight,
27306          naturalHeight: naturalHeight,
27307          naturalWidth: naturalWidth,
27308          onSaveImage: imageAttributes => setAttributes(imageAttributes),
27309          onFinishEditing: () => {
27310            setIsEditingImage(false);
27311          },
27312          borderProps: isRounded ? undefined : borderProps
27313        })
27314      });
27315    } else if (!isResizable || parentLayoutType === 'grid') {
27316      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
27317        style: {
27318          width,
27319          height,
27320          aspectRatio
27321        },
27322        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
27323          href: href,
27324          children: img
27325        })
27326      });
27327    } else {
27328      const numericRatio = aspectRatio && evalAspectRatio(aspectRatio);
27329      const customRatio = numericWidth / numericHeight;
27330      const naturalRatio = naturalWidth / naturalHeight;
27331      const ratio = numericRatio || customRatio || naturalRatio || 1;
27332      const currentWidth = !numericWidth && numericHeight ? numericHeight * ratio : numericWidth;
27333      const currentHeight = !numericHeight && numericWidth ? numericWidth / ratio : numericHeight;
27334      const minWidth = naturalWidth < naturalHeight ? constants_MIN_SIZE : constants_MIN_SIZE * ratio;
27335      const minHeight = naturalHeight < naturalWidth ? constants_MIN_SIZE : constants_MIN_SIZE / ratio;
27336  
27337      // With the current implementation of ResizableBox, an image needs an
27338      // explicit pixel value for the max-width. In absence of being able to
27339      // set the content-width, this max-width is currently dictated by the
27340      // vanilla editor style. The following variable adds a buffer to this
27341      // vanilla style, so 3rd party themes have some wiggleroom. This does,
27342      // in most cases, allow you to scale the image beyond the width of the
27343      // main column, though not infinitely.
27344      // @todo It would be good to revisit this once a content-width variable
27345      // becomes available.
27346      const maxWidthBuffer = maxWidth * 2.5;
27347      const maxResizeWidth = maxContentWidth || maxWidthBuffer;
27348      let showRightHandle = false;
27349      let showLeftHandle = false;
27350  
27351      /* eslint-disable no-lonely-if */
27352      // See https://github.com/WordPress/gutenberg/issues/7584.
27353      if (align === 'center') {
27354        // When the image is centered, show both handles.
27355        showRightHandle = true;
27356        showLeftHandle = true;
27357      } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
27358        // In RTL mode the image is on the right by default.
27359        // Show the right handle and hide the left handle only when it is
27360        // aligned left. Otherwise always show the left handle.
27361        if (align === 'left') {
27362          showRightHandle = true;
27363        } else {
27364          showLeftHandle = true;
27365        }
27366      } else {
27367        // Show the left handle and hide the right handle only when the
27368        // image is aligned right. Otherwise always show the right handle.
27369        if (align === 'right') {
27370          showLeftHandle = true;
27371        } else {
27372          showRightHandle = true;
27373        }
27374      }
27375      /* eslint-enable no-lonely-if */
27376      img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
27377        style: {
27378          display: 'block',
27379          objectFit: scale,
27380          aspectRatio: !width && !height && aspectRatio ? aspectRatio : undefined
27381        },
27382        size: {
27383          width: currentWidth !== null && currentWidth !== void 0 ? currentWidth : 'auto',
27384          height: currentHeight !== null && currentHeight !== void 0 ? currentHeight : 'auto'
27385        },
27386        showHandle: isSingleSelected,
27387        minWidth: minWidth,
27388        maxWidth: maxResizeWidth,
27389        minHeight: minHeight,
27390        maxHeight: maxResizeWidth / ratio,
27391        lockAspectRatio: ratio,
27392        enable: {
27393          top: false,
27394          right: showRightHandle,
27395          bottom: true,
27396          left: showLeftHandle
27397        },
27398        onResizeStart: onResizeStart,
27399        onResizeStop: (event, direction, elt) => {
27400          onResizeStop();
27401  
27402          // Clear hardcoded width if the resized width is close to the max-content width.
27403          if (maxContentWidth &&
27404          // Only do this if the image is bigger than the container to prevent it from being squished.
27405          // TODO: Remove this check if the image support setting 100% width.
27406          naturalWidth >= maxContentWidth && Math.abs(elt.offsetWidth - maxContentWidth) < 10) {
27407            setAttributes({
27408              width: undefined,
27409              height: undefined
27410            });
27411            return;
27412          }
27413  
27414          // Since the aspect ratio is locked when resizing, we can
27415          // use the width of the resized element to calculate the
27416          // height in CSS to prevent stretching when the max-width
27417          // is reached.
27418          setAttributes({
27419            width: `$elt.offsetWidth}px`,
27420            height: 'auto',
27421            aspectRatio: ratio === naturalRatio ? undefined : String(ratio)
27422          });
27423        },
27424        resizeRatio: align === 'center' ? 2 : 1,
27425        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ImageWrapper, {
27426          href: href,
27427          children: img
27428        })
27429      });
27430    }
27431    if (!url && !temporaryURL) {
27432      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27433        children: [mediaReplaceFlow, metadata?.bindings ? controls : sizeControls]
27434      });
27435    }
27436  
27437    /**
27438     * Set the post's featured image with the current image.
27439     */
27440    const setPostFeatureImage = () => {
27441      setFeaturedImage(id);
27442      createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Post featured image updated.'), {
27443        type: 'snackbar'
27444      });
27445    };
27446    const featuredImageControl = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
27447      children: ({
27448        selectedClientIds
27449      }) => selectedClientIds.length === 1 && !isDescendentOfQueryLoop && postId && id && clientId === selectedClientIds[0] && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
27450        onClick: setPostFeatureImage,
27451        children: (0,external_wp_i18n_namespaceObject.__)('Set as featured image')
27452      })
27453    });
27454    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27455      children: [mediaReplaceFlow, controls, featuredImageControl, img, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
27456        attributes: attributes,
27457        setAttributes: setAttributes,
27458        isSelected: isSingleSelected,
27459        insertBlocksAfter: insertBlocksAfter,
27460        label: (0,external_wp_i18n_namespaceObject.__)('Image caption text'),
27461        showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
27462        readOnly: lockCaption
27463      })]
27464    });
27465  }
27466  
27467  ;// ./node_modules/@wordpress/block-library/build-module/image/use-max-width-observer.js
27468  /**
27469   * WordPress dependencies
27470   */
27471  
27472  
27473  
27474  function useMaxWidthObserver() {
27475    const [contentResizeListener, {
27476      width
27477    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
27478    const observerRef = (0,external_wp_element_namespaceObject.useRef)();
27479    const maxWidthObserver = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
27480      // Some themes set max-width on blocks.
27481      className: "wp-block",
27482      "aria-hidden": "true",
27483      style: {
27484        position: 'absolute',
27485        inset: 0,
27486        width: '100%',
27487        height: 0,
27488        margin: 0
27489      },
27490      ref: observerRef,
27491      children: contentResizeListener
27492    });
27493    return [maxWidthObserver, width];
27494  }
27495  
27496  
27497  ;// ./node_modules/@wordpress/block-library/build-module/image/edit.js
27498  /**
27499   * External dependencies
27500   */
27501  
27502  
27503  /**
27504   * WordPress dependencies
27505   */
27506  
27507  
27508  
27509  
27510  
27511  
27512  
27513  
27514  
27515  
27516  
27517  /**
27518   * Internal dependencies
27519   */
27520  
27521  
27522  
27523  
27524  
27525  /**
27526   * Module constants
27527   */
27528  
27529  
27530  const edit_pickRelevantMediaFiles = (image, size) => {
27531    const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link', 'caption'].includes(key)));
27532    imageProps.url = image?.sizes?.[size]?.url || image?.media_details?.sizes?.[size]?.source_url || image.url;
27533    return imageProps;
27534  };
27535  
27536  /**
27537   * Is the url for the image hosted externally. An externally hosted image has no
27538   * id and is not a blob url.
27539   *
27540   * @param {number=} id  The id of the image.
27541   * @param {string=} url The url of the image.
27542   *
27543   * @return {boolean} Is the url an externally hosted url?
27544   */
27545  const isExternalImage = (id, url) => url && !id && !(0,external_wp_blob_namespaceObject.isBlobURL)(url);
27546  
27547  /**
27548   * Checks if WP generated the specified image size. Size generation is skipped
27549   * when the image is smaller than the said size.
27550   *
27551   * @param {Object} image
27552   * @param {string} size
27553   *
27554   * @return {boolean} Whether or not it has default image size.
27555   */
27556  function hasSize(image, size) {
27557    var _image$sizes$size, _image$media_details$;
27558    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$ : {});
27559  }
27560  function ImageEdit({
27561    attributes,
27562    setAttributes,
27563    isSelected: isSingleSelected,
27564    className,
27565    insertBlocksAfter,
27566    onReplace,
27567    context,
27568    clientId,
27569    __unstableParentLayout: parentLayout
27570  }) {
27571    const {
27572      url = '',
27573      alt,
27574      caption,
27575      id,
27576      width,
27577      height,
27578      sizeSlug,
27579      aspectRatio,
27580      scale,
27581      align,
27582      metadata
27583    } = attributes;
27584    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
27585    const containerRef = (0,external_wp_element_namespaceObject.useRef)();
27586    // Only observe the max width from the parent container when the parent layout is not flex nor grid.
27587    // This won't work for them because the container width changes with the image.
27588    // TODO: Find a way to observe the container width for flex and grid layouts.
27589    const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
27590    const [maxWidthObserver, maxContentWidth] = useMaxWidthObserver();
27591    const [placeholderResizeListener, {
27592      width: placeholderWidth
27593    }] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
27594    const isSmallContainer = placeholderWidth && placeholderWidth < 160;
27595    const altRef = (0,external_wp_element_namespaceObject.useRef)();
27596    (0,external_wp_element_namespaceObject.useEffect)(() => {
27597      altRef.current = alt;
27598    }, [alt]);
27599    const captionRef = (0,external_wp_element_namespaceObject.useRef)();
27600    (0,external_wp_element_namespaceObject.useEffect)(() => {
27601      captionRef.current = caption;
27602    }, [caption]);
27603    const {
27604      __unstableMarkNextChangeAsNotPersistent,
27605      replaceBlock
27606    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
27607    (0,external_wp_element_namespaceObject.useEffect)(() => {
27608      if (['wide', 'full'].includes(align)) {
27609        __unstableMarkNextChangeAsNotPersistent();
27610        setAttributes({
27611          width: undefined,
27612          height: undefined,
27613          aspectRatio: undefined,
27614          scale: undefined
27615        });
27616      }
27617    }, [__unstableMarkNextChangeAsNotPersistent, align, setAttributes]);
27618    const {
27619      getSettings,
27620      getBlockRootClientId,
27621      getBlockName,
27622      canInsertBlockType
27623    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
27624    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
27625    const {
27626      createErrorNotice
27627    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
27628    function onUploadError(message) {
27629      createErrorNotice(message, {
27630        type: 'snackbar'
27631      });
27632      setAttributes({
27633        src: undefined,
27634        id: undefined,
27635        url: undefined,
27636        blob: undefined
27637      });
27638    }
27639    function onSelectImagesList(images) {
27640      const win = containerRef.current?.ownerDocument.defaultView;
27641      if (images.every(file => file instanceof win.File)) {
27642        /** @type {File[]} */
27643        const files = images;
27644        const rootClientId = getBlockRootClientId(clientId);
27645        if (files.some(file => !isValidFileType(file))) {
27646          // Copied from the same notice in the gallery block.
27647          createErrorNotice((0,external_wp_i18n_namespaceObject.__)('If uploading to a gallery all files need to be image formats'), {
27648            id: 'gallery-upload-invalid-file',
27649            type: 'snackbar'
27650          });
27651        }
27652        const imageBlocks = files.filter(file => isValidFileType(file)).map(file => (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
27653          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
27654        }));
27655        if (getBlockName(rootClientId) === 'core/gallery') {
27656          replaceBlock(clientId, imageBlocks);
27657        } else if (canInsertBlockType('core/gallery', rootClientId)) {
27658          const galleryBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/gallery', {}, imageBlocks);
27659          replaceBlock(clientId, galleryBlock);
27660        }
27661      }
27662    }
27663    function onSelectImage(media) {
27664      if (Array.isArray(media)) {
27665        onSelectImagesList(media);
27666        return;
27667      }
27668      if (!media || !media.url) {
27669        setAttributes({
27670          url: undefined,
27671          alt: undefined,
27672          id: undefined,
27673          title: undefined,
27674          caption: undefined,
27675          blob: undefined
27676        });
27677        setTemporaryURL();
27678        return;
27679      }
27680      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
27681        setTemporaryURL(media.url);
27682        return;
27683      }
27684      const {
27685        imageDefaultSize
27686      } = getSettings();
27687  
27688      // Try to use the previous selected image size if its available
27689      // otherwise try the default image size or fallback to "full"
27690      let newSize = 'full';
27691      if (sizeSlug && hasSize(media, sizeSlug)) {
27692        newSize = sizeSlug;
27693      } else if (hasSize(media, imageDefaultSize)) {
27694        newSize = imageDefaultSize;
27695      }
27696      let mediaAttributes = edit_pickRelevantMediaFiles(media, newSize);
27697  
27698      // If a caption text was meanwhile written by the user,
27699      // make sure the text is not overwritten by empty captions.
27700      if (captionRef.current && !mediaAttributes.caption) {
27701        const {
27702          caption: omittedCaption,
27703          ...restMediaAttributes
27704        } = mediaAttributes;
27705        mediaAttributes = restMediaAttributes;
27706      }
27707      let additionalAttributes;
27708      // Reset the dimension attributes if changing to a different image.
27709      if (!media.id || media.id !== id) {
27710        additionalAttributes = {
27711          sizeSlug: newSize
27712        };
27713      }
27714  
27715      // Check if default link setting should be used.
27716      let linkDestination = attributes.linkDestination;
27717      if (!linkDestination) {
27718        // Use the WordPress option to determine the proper default.
27719        // The constants used in Gutenberg do not match WP options so a little more complicated than ideal.
27720        // TODO: fix this in a follow up PR, requires updating media-text and ui component.
27721        switch (window?.wp?.media?.view?.settings?.defaultProps?.link || constants_LINK_DESTINATION_NONE) {
27722          case 'file':
27723          case constants_LINK_DESTINATION_MEDIA:
27724            linkDestination = constants_LINK_DESTINATION_MEDIA;
27725            break;
27726          case 'post':
27727          case constants_LINK_DESTINATION_ATTACHMENT:
27728            linkDestination = constants_LINK_DESTINATION_ATTACHMENT;
27729            break;
27730          case LINK_DESTINATION_CUSTOM:
27731            linkDestination = LINK_DESTINATION_CUSTOM;
27732            break;
27733          case constants_LINK_DESTINATION_NONE:
27734            linkDestination = constants_LINK_DESTINATION_NONE;
27735            break;
27736        }
27737      }
27738  
27739      // Check if the image is linked to it's media.
27740      let href;
27741      switch (linkDestination) {
27742        case constants_LINK_DESTINATION_MEDIA:
27743          href = media.url;
27744          break;
27745        case constants_LINK_DESTINATION_ATTACHMENT:
27746          href = media.link;
27747          break;
27748      }
27749      mediaAttributes.href = href;
27750      setAttributes({
27751        blob: undefined,
27752        ...mediaAttributes,
27753        ...additionalAttributes,
27754        linkDestination
27755      });
27756      setTemporaryURL();
27757    }
27758    function onSelectURL(newURL) {
27759      if (newURL !== url) {
27760        setAttributes({
27761          blob: undefined,
27762          url: newURL,
27763          id: undefined,
27764          sizeSlug: getSettings().imageDefaultSize
27765        });
27766        setTemporaryURL();
27767      }
27768    }
27769    useUploadMediaFromBlobURL({
27770      url: temporaryURL,
27771      allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27772      onChange: onSelectImage,
27773      onError: onUploadError
27774    });
27775    const isExternal = isExternalImage(id, url);
27776    const src = isExternal ? url : undefined;
27777    const mediaPreview = !!url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27778      alt: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
27779      title: (0,external_wp_i18n_namespaceObject.__)('Edit image'),
27780      className: "edit-image-preview",
27781      src: url
27782    });
27783    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
27784    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27785    const classes = dist_clsx(className, {
27786      'is-transient': !!temporaryURL,
27787      'is-resized': !!width || !!height,
27788      [`size-$sizeSlug}`]: sizeSlug,
27789      'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
27790    });
27791    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
27792      ref: containerRef,
27793      className: classes
27794    });
27795  
27796    // Much of this description is duplicated from MediaPlaceholder.
27797    const {
27798      lockUrlControls = false,
27799      lockUrlControlsMessage
27800    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
27801      if (!isSingleSelected) {
27802        return {};
27803      }
27804      const blockBindingsSource = (0,external_wp_blocks_namespaceObject.getBlockBindingsSource)(metadata?.bindings?.url?.source);
27805      return {
27806        lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue?.({
27807          select,
27808          context,
27809          args: metadata?.bindings?.url?.args
27810        }),
27811        lockUrlControlsMessage: blockBindingsSource?.label ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the bindings source. */
27812        (0,external_wp_i18n_namespaceObject.__)('Connected to %s'), blockBindingsSource.label) : (0,external_wp_i18n_namespaceObject.__)('Connected to dynamic data')
27813      };
27814    }, [context, isSingleSelected, metadata?.bindings?.url]);
27815    const placeholder = content => {
27816      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
27817        className: dist_clsx('block-editor-media-placeholder', {
27818          [borderProps.className]: !!borderProps.className && !isSingleSelected
27819        }),
27820        icon: !isSmallContainer && (lockUrlControls ? library_plugins : library_image),
27821        withIllustration: !isSingleSelected || isSmallContainer,
27822        label: !isSmallContainer && (0,external_wp_i18n_namespaceObject.__)('Image'),
27823        instructions: !lockUrlControls && !isSmallContainer && (0,external_wp_i18n_namespaceObject.__)('Drag and drop an image, upload, or choose from your library.'),
27824        style: {
27825          aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
27826          width: height && aspectRatio ? '100%' : width,
27827          height: width && aspectRatio ? '100%' : height,
27828          objectFit: scale,
27829          ...borderProps.style,
27830          ...shadowProps.style
27831        },
27832        children: [lockUrlControls && !isSmallContainer && lockUrlControlsMessage, !lockUrlControls && !isSmallContainer && content, placeholderResizeListener]
27833      });
27834    };
27835    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27836      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
27837        ...blockProps,
27838        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(image_Image, {
27839          temporaryURL: temporaryURL,
27840          attributes: attributes,
27841          setAttributes: setAttributes,
27842          isSingleSelected: isSingleSelected,
27843          insertBlocksAfter: insertBlocksAfter,
27844          onReplace: onReplace,
27845          onSelectImage: onSelectImage,
27846          onSelectURL: onSelectURL,
27847          onUploadError: onUploadError,
27848          context: context,
27849          clientId: clientId,
27850          blockEditingMode: blockEditingMode,
27851          parentLayoutType: parentLayout?.type,
27852          maxContentWidth: maxContentWidth
27853        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
27854          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
27855            icon: library_image
27856          }),
27857          onSelect: onSelectImage,
27858          onSelectURL: onSelectURL,
27859          onError: onUploadError,
27860          placeholder: placeholder,
27861          accept: "image/*",
27862          allowedTypes: constants_ALLOWED_MEDIA_TYPES,
27863          handleUpload: files => files.length === 1,
27864          value: {
27865            id,
27866            src
27867          },
27868          mediaPreview: mediaPreview,
27869          disableMediaButtons: temporaryURL || url
27870        })]
27871      }),
27872      // The listener cannot be placed as the first element as it will break the in-between inserter.
27873      // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
27874      isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver]
27875    });
27876  }
27877  /* harmony default export */ const image_edit = (ImageEdit);
27878  
27879  ;// ./node_modules/@wordpress/block-library/build-module/image/save.js
27880  /**
27881   * External dependencies
27882   */
27883  
27884  
27885  /**
27886   * WordPress dependencies
27887   */
27888  
27889  
27890  function image_save_save({
27891    attributes
27892  }) {
27893    const {
27894      url,
27895      alt,
27896      caption,
27897      align,
27898      href,
27899      rel,
27900      linkClass,
27901      width,
27902      height,
27903      aspectRatio,
27904      scale,
27905      id,
27906      linkTarget,
27907      sizeSlug,
27908      title
27909    } = attributes;
27910    const newRel = !rel ? undefined : rel;
27911    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
27912    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
27913    const classes = dist_clsx({
27914      // All other align classes are handled by block supports.
27915      // `{ align: 'none' }` is unique to transforms for the image block.
27916      alignnone: 'none' === align,
27917      [`size-$sizeSlug}`]: sizeSlug,
27918      'is-resized': width || height,
27919      'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
27920    });
27921    const imageClasses = dist_clsx(borderProps.className, {
27922      [`wp-image-$id}`]: !!id
27923    });
27924    const image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
27925      src: url,
27926      alt: alt,
27927      className: imageClasses || undefined,
27928      style: {
27929        ...borderProps.style,
27930        ...shadowProps.style,
27931        aspectRatio,
27932        objectFit: scale,
27933        width,
27934        height
27935      },
27936      title: title
27937    });
27938    const figure = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
27939      children: [href ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
27940        className: linkClass,
27941        href: href,
27942        target: linkTarget,
27943        rel: newRel,
27944        children: image
27945      }) : image, !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
27946        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
27947        tagName: "figcaption",
27948        value: caption
27949      })]
27950    });
27951    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
27952      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
27953        className: classes
27954      }),
27955      children: figure
27956    });
27957  }
27958  
27959  ;// ./node_modules/@wordpress/block-library/build-module/image/transforms.js
27960  /**
27961   * WordPress dependencies
27962   */
27963  
27964  
27965  function stripFirstImage(attributes, {
27966    shortcode
27967  }) {
27968    const {
27969      body
27970    } = document.implementation.createHTMLDocument('');
27971    body.innerHTML = shortcode.content;
27972    let nodeToRemove = body.querySelector('img');
27973  
27974    // If an image has parents, find the topmost node to remove.
27975    while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) {
27976      nodeToRemove = nodeToRemove.parentNode;
27977    }
27978    if (nodeToRemove) {
27979      nodeToRemove.parentNode.removeChild(nodeToRemove);
27980    }
27981    return body.innerHTML.trim();
27982  }
27983  function getFirstAnchorAttributeFormHTML(html, attributeName) {
27984    const {
27985      body
27986    } = document.implementation.createHTMLDocument('');
27987    body.innerHTML = html;
27988    const {
27989      firstElementChild
27990    } = body;
27991    if (firstElementChild && firstElementChild.nodeName === 'A') {
27992      return firstElementChild.getAttribute(attributeName) || undefined;
27993    }
27994  }
27995  const imageSchema = {
27996    img: {
27997      attributes: ['src', 'alt', 'title'],
27998      classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\d+$/]
27999    }
28000  };
28001  const schema = ({
28002    phrasingContentSchema
28003  }) => ({
28004    figure: {
28005      require: ['img'],
28006      children: {
28007        ...imageSchema,
28008        a: {
28009          attributes: ['href', 'rel', 'target'],
28010          classes: ['*'],
28011          children: imageSchema
28012        },
28013        figcaption: {
28014          children: phrasingContentSchema
28015        }
28016      }
28017    }
28018  });
28019  const image_transforms_transforms = {
28020    from: [{
28021      type: 'raw',
28022      isMatch: node => node.nodeName === 'FIGURE' && !!node.querySelector('img'),
28023      schema,
28024      transform: node => {
28025        // Search both figure and image classes. Alignment could be
28026        // set on either. ID is set on the image.
28027        const className = node.className + ' ' + node.querySelector('img').className;
28028        const alignMatches = /(?:^|\s)align(left|center|right)(?:$|\s)/.exec(className);
28029        const anchor = node.id === '' ? undefined : node.id;
28030        const align = alignMatches ? alignMatches[1] : undefined;
28031        const idMatches = /(?:^|\s)wp-image-(\d+)(?:$|\s)/.exec(className);
28032        const id = idMatches ? Number(idMatches[1]) : undefined;
28033        const anchorElement = node.querySelector('a');
28034        const linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;
28035        const href = anchorElement && anchorElement.href ? anchorElement.href : undefined;
28036        const rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined;
28037        const linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined;
28038        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)('core/image', node.outerHTML, {
28039          align,
28040          id,
28041          linkDestination,
28042          href,
28043          rel,
28044          linkClass,
28045          anchor
28046        });
28047        if ((0,external_wp_blob_namespaceObject.isBlobURL)(attributes.url)) {
28048          attributes.blob = attributes.url;
28049          delete attributes.url;
28050        }
28051        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', attributes);
28052      }
28053    }, {
28054      // Note: when dragging and dropping multiple files onto a gallery this overrides the
28055      // gallery transform in order to add new images to the gallery instead of
28056      // creating a new gallery.
28057      type: 'files',
28058      isMatch(files) {
28059        return files.every(file => file.type.indexOf('image/') === 0);
28060      },
28061      transform(files) {
28062        const blocks = files.map(file => {
28063          return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
28064            blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
28065          });
28066        });
28067        return blocks;
28068      }
28069    }, {
28070      type: 'shortcode',
28071      tag: 'caption',
28072      attributes: {
28073        url: {
28074          type: 'string',
28075          source: 'attribute',
28076          attribute: 'src',
28077          selector: 'img'
28078        },
28079        alt: {
28080          type: 'string',
28081          source: 'attribute',
28082          attribute: 'alt',
28083          selector: 'img'
28084        },
28085        caption: {
28086          shortcode: stripFirstImage
28087        },
28088        href: {
28089          shortcode: (attributes, {
28090            shortcode
28091          }) => {
28092            return getFirstAnchorAttributeFormHTML(shortcode.content, 'href');
28093          }
28094        },
28095        rel: {
28096          shortcode: (attributes, {
28097            shortcode
28098          }) => {
28099            return getFirstAnchorAttributeFormHTML(shortcode.content, 'rel');
28100          }
28101        },
28102        linkClass: {
28103          shortcode: (attributes, {
28104            shortcode
28105          }) => {
28106            return getFirstAnchorAttributeFormHTML(shortcode.content, 'class');
28107          }
28108        },
28109        id: {
28110          type: 'number',
28111          shortcode: ({
28112            named: {
28113              id
28114            }
28115          }) => {
28116            if (!id) {
28117              return;
28118            }
28119            return parseInt(id.replace('attachment_', ''), 10);
28120          }
28121        },
28122        align: {
28123          type: 'string',
28124          shortcode: ({
28125            named: {
28126              align = 'alignnone'
28127            }
28128          }) => {
28129            return align.replace('align', '');
28130          }
28131        }
28132      }
28133    }]
28134  };
28135  /* harmony default export */ const image_transforms = (image_transforms_transforms);
28136  
28137  ;// ./node_modules/@wordpress/block-library/build-module/image/index.js
28138  /**
28139   * WordPress dependencies
28140   */
28141  
28142  
28143  
28144  /**
28145   * Internal dependencies
28146   */
28147  
28148  
28149  
28150  const image_metadata = {
28151    $schema: "https://schemas.wp.org/trunk/block.json",
28152    apiVersion: 3,
28153    name: "core/image",
28154    title: "Image",
28155    category: "media",
28156    usesContext: ["allowResize", "imageCrop", "fixedHeight", "postId", "postType", "queryId"],
28157    description: "Insert an image to make a visual statement.",
28158    keywords: ["img", "photo", "picture"],
28159    textdomain: "default",
28160    attributes: {
28161      blob: {
28162        type: "string",
28163        role: "local"
28164      },
28165      url: {
28166        type: "string",
28167        source: "attribute",
28168        selector: "img",
28169        attribute: "src",
28170        role: "content"
28171      },
28172      alt: {
28173        type: "string",
28174        source: "attribute",
28175        selector: "img",
28176        attribute: "alt",
28177        "default": "",
28178        role: "content"
28179      },
28180      caption: {
28181        type: "rich-text",
28182        source: "rich-text",
28183        selector: "figcaption",
28184        role: "content"
28185      },
28186      lightbox: {
28187        type: "object",
28188        enabled: {
28189          type: "boolean"
28190        }
28191      },
28192      title: {
28193        type: "string",
28194        source: "attribute",
28195        selector: "img",
28196        attribute: "title",
28197        role: "content"
28198      },
28199      href: {
28200        type: "string",
28201        source: "attribute",
28202        selector: "figure > a",
28203        attribute: "href",
28204        role: "content"
28205      },
28206      rel: {
28207        type: "string",
28208        source: "attribute",
28209        selector: "figure > a",
28210        attribute: "rel"
28211      },
28212      linkClass: {
28213        type: "string",
28214        source: "attribute",
28215        selector: "figure > a",
28216        attribute: "class"
28217      },
28218      id: {
28219        type: "number",
28220        role: "content"
28221      },
28222      width: {
28223        type: "string"
28224      },
28225      height: {
28226        type: "string"
28227      },
28228      aspectRatio: {
28229        type: "string"
28230      },
28231      scale: {
28232        type: "string"
28233      },
28234      sizeSlug: {
28235        type: "string"
28236      },
28237      linkDestination: {
28238        type: "string"
28239      },
28240      linkTarget: {
28241        type: "string",
28242        source: "attribute",
28243        selector: "figure > a",
28244        attribute: "target"
28245      }
28246    },
28247    supports: {
28248      interactivity: true,
28249      align: ["left", "center", "right", "wide", "full"],
28250      anchor: true,
28251      color: {
28252        text: false,
28253        background: false
28254      },
28255      filter: {
28256        duotone: true
28257      },
28258      spacing: {
28259        margin: true
28260      },
28261      __experimentalBorder: {
28262        color: true,
28263        radius: true,
28264        width: true,
28265        __experimentalSkipSerialization: true,
28266        __experimentalDefaultControls: {
28267          color: true,
28268          radius: true,
28269          width: true
28270        }
28271      },
28272      shadow: {
28273        __experimentalSkipSerialization: true
28274      }
28275    },
28276    selectors: {
28277      border: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
28278      shadow: ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
28279      filter: {
28280        duotone: ".wp-block-image img, .wp-block-image .components-placeholder"
28281      }
28282    },
28283    styles: [{
28284      name: "default",
28285      label: "Default",
28286      isDefault: true
28287    }, {
28288      name: "rounded",
28289      label: "Rounded"
28290    }],
28291    editorStyle: "wp-block-image-editor",
28292    style: "wp-block-image"
28293  };
28294  
28295  
28296  const {
28297    name: image_name
28298  } = image_metadata;
28299  
28300  const image_settings = {
28301    icon: library_image,
28302    example: {
28303      attributes: {
28304        sizeSlug: 'large',
28305        url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',
28306        // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.
28307        caption: (0,external_wp_i18n_namespaceObject.__)('Mont Blanc appears—still, snowy, and serene.')
28308      }
28309    },
28310    __experimentalLabel(attributes, {
28311      context
28312    }) {
28313      const customName = attributes?.metadata?.name;
28314      if (context === 'list-view' && customName) {
28315        return customName;
28316      }
28317      if (context === 'accessibility') {
28318        const {
28319          caption,
28320          alt,
28321          url
28322        } = attributes;
28323        if (!url) {
28324          return (0,external_wp_i18n_namespaceObject.__)('Empty');
28325        }
28326        if (!alt) {
28327          return caption || '';
28328        }
28329  
28330        // This is intended to be read by a screen reader.
28331        // A period simply means a pause, no need to translate it.
28332        return alt + (caption ? '. ' + caption : '');
28333      }
28334    },
28335    getEditWrapperProps(attributes) {
28336      return {
28337        'data-align': attributes.align
28338      };
28339    },
28340    transforms: image_transforms,
28341    edit: image_edit,
28342    save: image_save_save,
28343    deprecated: image_deprecated
28344  };
28345  const image_init = () => initBlock({
28346    name: image_name,
28347    metadata: image_metadata,
28348    settings: image_settings
28349  });
28350  
28351  ;// ./node_modules/@wordpress/icons/build-module/library/comment.js
28352  /**
28353   * WordPress dependencies
28354   */
28355  
28356  
28357  const comment = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28358    viewBox: "0 0 24 24",
28359    xmlns: "http://www.w3.org/2000/svg",
28360    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28361      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"
28362    })
28363  });
28364  /* harmony default export */ const library_comment = (comment);
28365  
28366  ;// ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js
28367  /**
28368   * WordPress dependencies
28369   */
28370  
28371  
28372  
28373  
28374  
28375  /**
28376   * Internal dependencies
28377   */
28378  
28379  
28380  /**
28381   * Minimum number of comments a user can show using this block.
28382   *
28383   * @type {number}
28384   */
28385  
28386  const MIN_COMMENTS = 1;
28387  /**
28388   * Maximum number of comments a user can show using this block.
28389   *
28390   * @type {number}
28391   */
28392  const MAX_COMMENTS = 100;
28393  function LatestComments({
28394    attributes,
28395    setAttributes
28396  }) {
28397    const {
28398      commentsToShow,
28399      displayAvatar,
28400      displayDate,
28401      displayExcerpt
28402    } = attributes;
28403    const serverSideAttributes = {
28404      ...attributes,
28405      style: {
28406        ...attributes?.style,
28407        spacing: undefined
28408      }
28409    };
28410    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
28411    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
28412      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
28413      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
28414        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
28415          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
28416          resetAll: () => {
28417            setAttributes({
28418              commentsToShow: 5,
28419              displayAvatar: true,
28420              displayDate: true,
28421              displayExcerpt: true
28422            });
28423          },
28424          dropdownMenuProps: dropdownMenuProps,
28425          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28426            hasValue: () => !displayAvatar,
28427            label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
28428            onDeselect: () => setAttributes({
28429              displayAvatar: true
28430            }),
28431            isShownByDefault: true,
28432            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28433              __nextHasNoMarginBottom: true,
28434              label: (0,external_wp_i18n_namespaceObject.__)('Display avatar'),
28435              checked: displayAvatar,
28436              onChange: () => setAttributes({
28437                displayAvatar: !displayAvatar
28438              })
28439            })
28440          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28441            hasValue: () => !displayDate,
28442            label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
28443            onDeselect: () => setAttributes({
28444              displayDate: true
28445            }),
28446            isShownByDefault: true,
28447            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28448              __nextHasNoMarginBottom: true,
28449              label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
28450              checked: displayDate,
28451              onChange: () => setAttributes({
28452                displayDate: !displayDate
28453              })
28454            })
28455          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28456            hasValue: () => !displayExcerpt,
28457            label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
28458            onDeselect: () => setAttributes({
28459              displayExcerpt: true
28460            }),
28461            isShownByDefault: true,
28462            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
28463              __nextHasNoMarginBottom: true,
28464              label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
28465              checked: displayExcerpt,
28466              onChange: () => setAttributes({
28467                displayExcerpt: !displayExcerpt
28468              })
28469            })
28470          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
28471            hasValue: () => commentsToShow !== 5,
28472            label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
28473            onDeselect: () => setAttributes({
28474              commentsToShow: 5
28475            }),
28476            isShownByDefault: true,
28477            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
28478              __nextHasNoMarginBottom: true,
28479              __next40pxDefaultSize: true,
28480              label: (0,external_wp_i18n_namespaceObject.__)('Number of comments'),
28481              value: commentsToShow,
28482              onChange: value => setAttributes({
28483                commentsToShow: value
28484              }),
28485              min: MIN_COMMENTS,
28486              max: MAX_COMMENTS,
28487              required: true
28488            })
28489          })]
28490        })
28491      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
28492        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
28493          block: "core/latest-comments",
28494          attributes: serverSideAttributes
28495          // The preview uses the site's locale to make it more true to how
28496          // the block appears on the frontend. Setting the locale
28497          // explicitly prevents any middleware from setting it to 'user'.
28498          ,
28499          urlQueryArgs: {
28500            _locale: 'site'
28501          }
28502        })
28503      })]
28504    });
28505  }
28506  
28507  ;// ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js
28508  /**
28509   * WordPress dependencies
28510   */
28511  
28512  
28513  /**
28514   * Internal dependencies
28515   */
28516  
28517  const latest_comments_metadata = {
28518    $schema: "https://schemas.wp.org/trunk/block.json",
28519    apiVersion: 3,
28520    name: "core/latest-comments",
28521    title: "Latest Comments",
28522    category: "widgets",
28523    description: "Display a list of your most recent comments.",
28524    keywords: ["recent comments"],
28525    textdomain: "default",
28526    attributes: {
28527      commentsToShow: {
28528        type: "number",
28529        "default": 5,
28530        minimum: 1,
28531        maximum: 100
28532      },
28533      displayAvatar: {
28534        type: "boolean",
28535        "default": true
28536      },
28537      displayDate: {
28538        type: "boolean",
28539        "default": true
28540      },
28541      displayExcerpt: {
28542        type: "boolean",
28543        "default": true
28544      }
28545    },
28546    supports: {
28547      align: true,
28548      color: {
28549        gradients: true,
28550        link: true,
28551        __experimentalDefaultControls: {
28552          background: true,
28553          text: true,
28554          link: true
28555        }
28556      },
28557      html: false,
28558      spacing: {
28559        margin: true,
28560        padding: true
28561      },
28562      typography: {
28563        fontSize: true,
28564        lineHeight: true,
28565        __experimentalFontFamily: true,
28566        __experimentalFontWeight: true,
28567        __experimentalFontStyle: true,
28568        __experimentalTextTransform: true,
28569        __experimentalTextDecoration: true,
28570        __experimentalLetterSpacing: true,
28571        __experimentalDefaultControls: {
28572          fontSize: true
28573        }
28574      },
28575      interactivity: {
28576        clientNavigation: true
28577      }
28578    },
28579    editorStyle: "wp-block-latest-comments-editor",
28580    style: "wp-block-latest-comments"
28581  };
28582  
28583  const {
28584    name: latest_comments_name
28585  } = latest_comments_metadata;
28586  
28587  const latest_comments_settings = {
28588    icon: library_comment,
28589    example: {},
28590    edit: LatestComments
28591  };
28592  const latest_comments_init = () => initBlock({
28593    name: latest_comments_name,
28594    metadata: latest_comments_metadata,
28595    settings: latest_comments_settings
28596  });
28597  
28598  ;// ./node_modules/@wordpress/icons/build-module/library/post-list.js
28599  /**
28600   * WordPress dependencies
28601   */
28602  
28603  
28604  const postList = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28605    viewBox: "0 0 24 24",
28606    xmlns: "http://www.w3.org/2000/svg",
28607    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28608      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"
28609    })
28610  });
28611  /* harmony default export */ const post_list = (postList);
28612  
28613  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js
28614  /**
28615   * Internal dependencies
28616   */
28617  const latest_posts_deprecated_metadata = {
28618    $schema: "https://schemas.wp.org/trunk/block.json",
28619    apiVersion: 3,
28620    name: "core/latest-posts",
28621    title: "Latest Posts",
28622    category: "widgets",
28623    description: "Display a list of your most recent posts.",
28624    keywords: ["recent posts"],
28625    textdomain: "default",
28626    attributes: {
28627      categories: {
28628        type: "array",
28629        items: {
28630          type: "object"
28631        }
28632      },
28633      selectedAuthor: {
28634        type: "number"
28635      },
28636      postsToShow: {
28637        type: "number",
28638        "default": 5
28639      },
28640      displayPostContent: {
28641        type: "boolean",
28642        "default": false
28643      },
28644      displayPostContentRadio: {
28645        type: "string",
28646        "default": "excerpt"
28647      },
28648      excerptLength: {
28649        type: "number",
28650        "default": 55
28651      },
28652      displayAuthor: {
28653        type: "boolean",
28654        "default": false
28655      },
28656      displayPostDate: {
28657        type: "boolean",
28658        "default": false
28659      },
28660      postLayout: {
28661        type: "string",
28662        "default": "list"
28663      },
28664      columns: {
28665        type: "number",
28666        "default": 3
28667      },
28668      order: {
28669        type: "string",
28670        "default": "desc"
28671      },
28672      orderBy: {
28673        type: "string",
28674        "default": "date"
28675      },
28676      displayFeaturedImage: {
28677        type: "boolean",
28678        "default": false
28679      },
28680      featuredImageAlign: {
28681        type: "string",
28682        "enum": ["left", "center", "right"]
28683      },
28684      featuredImageSizeSlug: {
28685        type: "string",
28686        "default": "thumbnail"
28687      },
28688      featuredImageSizeWidth: {
28689        type: "number",
28690        "default": null
28691      },
28692      featuredImageSizeHeight: {
28693        type: "number",
28694        "default": null
28695      },
28696      addLinkToFeaturedImage: {
28697        type: "boolean",
28698        "default": false
28699      }
28700    },
28701    supports: {
28702      align: true,
28703      html: false,
28704      color: {
28705        gradients: true,
28706        link: true,
28707        __experimentalDefaultControls: {
28708          background: true,
28709          text: true,
28710          link: true
28711        }
28712      },
28713      spacing: {
28714        margin: true,
28715        padding: true
28716      },
28717      typography: {
28718        fontSize: true,
28719        lineHeight: true,
28720        __experimentalFontFamily: true,
28721        __experimentalFontWeight: true,
28722        __experimentalFontStyle: true,
28723        __experimentalTextTransform: true,
28724        __experimentalTextDecoration: true,
28725        __experimentalLetterSpacing: true,
28726        __experimentalDefaultControls: {
28727          fontSize: true
28728        }
28729      },
28730      __experimentalBorder: {
28731        radius: true,
28732        color: true,
28733        width: true,
28734        style: true,
28735        __experimentalDefaultControls: {
28736          radius: true,
28737          color: true,
28738          width: true,
28739          style: true
28740        }
28741      },
28742      interactivity: {
28743        clientNavigation: true
28744      }
28745    },
28746    editorStyle: "wp-block-latest-posts-editor",
28747    style: "wp-block-latest-posts"
28748  };
28749  const {
28750    attributes: deprecated_attributes
28751  } = latest_posts_deprecated_metadata;
28752  /* harmony default export */ const latest_posts_deprecated = ([{
28753    attributes: {
28754      ...deprecated_attributes,
28755      categories: {
28756        type: 'string'
28757      }
28758    },
28759    supports: {
28760      align: true,
28761      html: false
28762    },
28763    migrate: oldAttributes => {
28764      // This needs the full category object, not just the ID.
28765      return {
28766        ...oldAttributes,
28767        categories: [{
28768          id: Number(oldAttributes.categories)
28769        }]
28770      };
28771    },
28772    isEligible: ({
28773      categories
28774    }) => categories && 'string' === typeof categories,
28775    save: () => null
28776  }]);
28777  
28778  ;// ./node_modules/@wordpress/icons/build-module/library/align-none.js
28779  /**
28780   * WordPress dependencies
28781   */
28782  
28783  
28784  const alignNone = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28785    xmlns: "http://www.w3.org/2000/svg",
28786    viewBox: "0 0 24 24",
28787    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28788      d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z"
28789    })
28790  });
28791  /* harmony default export */ const align_none = (alignNone);
28792  
28793  ;// ./node_modules/@wordpress/icons/build-module/library/position-left.js
28794  /**
28795   * WordPress dependencies
28796   */
28797  
28798  
28799  const positionLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28800    xmlns: "http://www.w3.org/2000/svg",
28801    viewBox: "0 0 24 24",
28802    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28803      d: "M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z"
28804    })
28805  });
28806  /* harmony default export */ const position_left = (positionLeft);
28807  
28808  ;// ./node_modules/@wordpress/icons/build-module/library/position-center.js
28809  /**
28810   * WordPress dependencies
28811   */
28812  
28813  
28814  const positionCenter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28815    xmlns: "http://www.w3.org/2000/svg",
28816    viewBox: "0 0 24 24",
28817    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28818      d: "M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z"
28819    })
28820  });
28821  /* harmony default export */ const position_center = (positionCenter);
28822  
28823  ;// ./node_modules/@wordpress/icons/build-module/library/position-right.js
28824  /**
28825   * WordPress dependencies
28826   */
28827  
28828  
28829  const positionRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28830    xmlns: "http://www.w3.org/2000/svg",
28831    viewBox: "0 0 24 24",
28832    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28833      d: "M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z"
28834    })
28835  });
28836  /* harmony default export */ const position_right = (positionRight);
28837  
28838  ;// ./node_modules/@wordpress/icons/build-module/library/list.js
28839  /**
28840   * WordPress dependencies
28841   */
28842  
28843  
28844  const list = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
28845    viewBox: "0 0 24 24",
28846    xmlns: "http://www.w3.org/2000/svg",
28847    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
28848      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"
28849    })
28850  });
28851  /* harmony default export */ const library_list = (list);
28852  
28853  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js
28854  const MIN_EXCERPT_LENGTH = 10;
28855  const MAX_EXCERPT_LENGTH = 100;
28856  const MAX_POSTS_COLUMNS = 6;
28857  const DEFAULT_EXCERPT_LENGTH = 55;
28858  
28859  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js
28860  /**
28861   * External dependencies
28862   */
28863  
28864  
28865  /**
28866   * WordPress dependencies
28867   */
28868  
28869  
28870  
28871  
28872  
28873  
28874  
28875  
28876  
28877  
28878  
28879  /**
28880   * Internal dependencies
28881   */
28882  
28883  
28884  
28885  /**
28886   * Module Constants
28887   */
28888  
28889  const CATEGORIES_LIST_QUERY = {
28890    per_page: -1,
28891    context: 'view'
28892  };
28893  const USERS_LIST_QUERY = {
28894    per_page: -1,
28895    has_published_posts: ['post'],
28896    context: 'view'
28897  };
28898  function getFeaturedImageDetails(post, size) {
28899    var _image$media_details$;
28900    const image = post._embedded?.['wp:featuredmedia']?.['0'];
28901    return {
28902      url: (_image$media_details$ = image?.media_details?.sizes?.[size]?.source_url) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : image?.source_url,
28903      alt: image?.alt_text
28904    };
28905  }
28906  function LatestPostsEdit({
28907    attributes,
28908    setAttributes
28909  }) {
28910    var _categoriesList$reduc;
28911    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(LatestPostsEdit);
28912    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
28913    const {
28914      postsToShow,
28915      order,
28916      orderBy,
28917      categories,
28918      selectedAuthor,
28919      displayFeaturedImage,
28920      displayPostContentRadio,
28921      displayPostContent,
28922      displayPostDate,
28923      displayAuthor,
28924      postLayout,
28925      columns,
28926      excerptLength,
28927      featuredImageAlign,
28928      featuredImageSizeSlug,
28929      featuredImageSizeWidth,
28930      featuredImageSizeHeight,
28931      addLinkToFeaturedImage
28932    } = attributes;
28933    const {
28934      imageSizes,
28935      latestPosts,
28936      defaultImageWidth,
28937      defaultImageHeight,
28938      categoriesList,
28939      authorList
28940    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
28941      var _settings$imageDimens, _settings$imageDimens2;
28942      const {
28943        getEntityRecords,
28944        getUsers
28945      } = select(external_wp_coreData_namespaceObject.store);
28946      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
28947      const catIds = categories && categories.length > 0 ? categories.map(cat => cat.id) : [];
28948      const latestPostsQuery = Object.fromEntries(Object.entries({
28949        categories: catIds,
28950        author: selectedAuthor,
28951        order,
28952        orderby: orderBy,
28953        per_page: postsToShow,
28954        _embed: 'wp:featuredmedia',
28955        ignore_sticky: true
28956      }).filter(([, value]) => typeof value !== 'undefined'));
28957      return {
28958        defaultImageWidth: (_settings$imageDimens = settings.imageDimensions?.[featuredImageSizeSlug]?.width) !== null && _settings$imageDimens !== void 0 ? _settings$imageDimens : 0,
28959        defaultImageHeight: (_settings$imageDimens2 = settings.imageDimensions?.[featuredImageSizeSlug]?.height) !== null && _settings$imageDimens2 !== void 0 ? _settings$imageDimens2 : 0,
28960        imageSizes: settings.imageSizes,
28961        latestPosts: getEntityRecords('postType', 'post', latestPostsQuery),
28962        categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY),
28963        authorList: getUsers(USERS_LIST_QUERY)
28964      };
28965    }, [featuredImageSizeSlug, postsToShow, order, orderBy, categories, selectedAuthor]);
28966  
28967    // If a user clicks to a link prevent redirection and show a warning.
28968    const {
28969      createWarningNotice
28970    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
28971    const showRedirectionPreventedNotice = event => {
28972      event.preventDefault();
28973      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('Links are disabled in the editor.'), {
28974        id: `block-library/core/latest-posts/redirection-prevented/$instanceId}`,
28975        type: 'snackbar'
28976      });
28977    };
28978    const imageSizeOptions = imageSizes.filter(({
28979      slug
28980    }) => slug !== 'full').map(({
28981      name,
28982      slug
28983    }) => ({
28984      value: slug,
28985      label: name
28986    }));
28987    const categorySuggestions = (_categoriesList$reduc = categoriesList?.reduce((accumulator, category) => ({
28988      ...accumulator,
28989      [category.name]: category
28990    }), {})) !== null && _categoriesList$reduc !== void 0 ? _categoriesList$reduc : {};
28991    const selectCategories = tokens => {
28992      const hasNoSuggestion = tokens.some(token => typeof token === 'string' && !categorySuggestions[token]);
28993      if (hasNoSuggestion) {
28994        return;
28995      }
28996      // Categories that are already will be objects, while new additions will be strings (the name).
28997      // allCategories nomalizes the array so that they are all objects.
28998      const allCategories = tokens.map(token => {
28999        return typeof token === 'string' ? categorySuggestions[token] : token;
29000      });
29001      // We do nothing if the category is not selected
29002      // from suggestions.
29003      if (allCategories.includes(null)) {
29004        return false;
29005      }
29006      setAttributes({
29007        categories: allCategories
29008      });
29009    };
29010    const imageAlignmentOptions = [{
29011      value: 'none',
29012      icon: align_none,
29013      label: (0,external_wp_i18n_namespaceObject.__)('None')
29014    }, {
29015      value: 'left',
29016      icon: position_left,
29017      label: (0,external_wp_i18n_namespaceObject.__)('Left')
29018    }, {
29019      value: 'center',
29020      icon: position_center,
29021      label: (0,external_wp_i18n_namespaceObject.__)('Center')
29022    }, {
29023      value: 'right',
29024      icon: position_right,
29025      label: (0,external_wp_i18n_namespaceObject.__)('Right')
29026    }];
29027    const hasPosts = !!latestPosts?.length;
29028    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
29029      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
29030        label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
29031        resetAll: () => setAttributes({
29032          displayPostContent: false,
29033          displayPostContentRadio: 'excerpt',
29034          excerptLength: DEFAULT_EXCERPT_LENGTH
29035        }),
29036        dropdownMenuProps: dropdownMenuProps,
29037        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29038          hasValue: () => !!displayPostContent,
29039          label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
29040          onDeselect: () => setAttributes({
29041            displayPostContent: false
29042          }),
29043          isShownByDefault: true,
29044          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29045            __nextHasNoMarginBottom: true,
29046            label: (0,external_wp_i18n_namespaceObject.__)('Post content'),
29047            checked: displayPostContent,
29048            onChange: value => setAttributes({
29049              displayPostContent: value
29050            })
29051          })
29052        }), displayPostContent && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29053          hasValue: () => displayPostContentRadio !== 'excerpt',
29054          label: (0,external_wp_i18n_namespaceObject.__)('Show'),
29055          onDeselect: () => setAttributes({
29056            displayPostContentRadio: 'excerpt'
29057          }),
29058          isShownByDefault: true,
29059          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
29060            label: (0,external_wp_i18n_namespaceObject.__)('Show'),
29061            selected: displayPostContentRadio,
29062            options: [{
29063              label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
29064              value: 'excerpt'
29065            }, {
29066              label: (0,external_wp_i18n_namespaceObject.__)('Full post'),
29067              value: 'full_post'
29068            }],
29069            onChange: value => setAttributes({
29070              displayPostContentRadio: value
29071            })
29072          })
29073        }), displayPostContent && displayPostContentRadio === 'excerpt' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29074          hasValue: () => excerptLength !== DEFAULT_EXCERPT_LENGTH,
29075          label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
29076          onDeselect: () => setAttributes({
29077            excerptLength: DEFAULT_EXCERPT_LENGTH
29078          }),
29079          isShownByDefault: true,
29080          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
29081            __nextHasNoMarginBottom: true,
29082            __next40pxDefaultSize: true,
29083            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
29084            value: excerptLength,
29085            onChange: value => setAttributes({
29086              excerptLength: value
29087            }),
29088            min: MIN_EXCERPT_LENGTH,
29089            max: MAX_EXCERPT_LENGTH
29090          })
29091        })]
29092      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
29093        label: (0,external_wp_i18n_namespaceObject.__)('Post meta'),
29094        resetAll: () => setAttributes({
29095          displayAuthor: false,
29096          displayPostDate: false
29097        }),
29098        dropdownMenuProps: dropdownMenuProps,
29099        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29100          hasValue: () => !!displayAuthor,
29101          label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
29102          onDeselect: () => setAttributes({
29103            displayAuthor: false
29104          }),
29105          isShownByDefault: true,
29106          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29107            __nextHasNoMarginBottom: true,
29108            label: (0,external_wp_i18n_namespaceObject.__)('Display author name'),
29109            checked: displayAuthor,
29110            onChange: value => setAttributes({
29111              displayAuthor: value
29112            })
29113          })
29114        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
29115          hasValue: () => !!displayPostDate,
29116          label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
29117          onDeselect: () => setAttributes({
29118            displayPostDate: false
29119          }),
29120          isShownByDefault: true,
29121          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29122            __nextHasNoMarginBottom: true,
29123            label: (0,external_wp_i18n_namespaceObject.__)('Display post date'),
29124            checked: displayPostDate,
29125            onChange: value => setAttributes({
29126              displayPostDate: value
29127            })
29128          })
29129        })]
29130      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
29131        title: (0,external_wp_i18n_namespaceObject.__)('Featured image'),
29132        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29133          __nextHasNoMarginBottom: true,
29134          label: (0,external_wp_i18n_namespaceObject.__)('Display featured image'),
29135          checked: displayFeaturedImage,
29136          onChange: value => setAttributes({
29137            displayFeaturedImage: value
29138          })
29139        }), displayFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29140          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageSizeControl, {
29141            onChange: value => {
29142              const newAttrs = {};
29143              if (value.hasOwnProperty('width')) {
29144                newAttrs.featuredImageSizeWidth = value.width;
29145              }
29146              if (value.hasOwnProperty('height')) {
29147                newAttrs.featuredImageSizeHeight = value.height;
29148              }
29149              setAttributes(newAttrs);
29150            },
29151            slug: featuredImageSizeSlug,
29152            width: featuredImageSizeWidth,
29153            height: featuredImageSizeHeight,
29154            imageWidth: defaultImageWidth,
29155            imageHeight: defaultImageHeight,
29156            imageSizeOptions: imageSizeOptions,
29157            imageSizeHelp: (0,external_wp_i18n_namespaceObject.__)('Select the size of the source image.'),
29158            onChangeImage: value => setAttributes({
29159              featuredImageSizeSlug: value,
29160              featuredImageSizeWidth: undefined,
29161              featuredImageSizeHeight: undefined
29162            })
29163          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
29164            className: "editor-latest-posts-image-alignment-control",
29165            __nextHasNoMarginBottom: true,
29166            __next40pxDefaultSize: true,
29167            label: (0,external_wp_i18n_namespaceObject.__)('Image alignment'),
29168            value: featuredImageAlign || 'none',
29169            onChange: value => setAttributes({
29170              featuredImageAlign: value !== 'none' ? value : undefined
29171            }),
29172            children: imageAlignmentOptions.map(({
29173              value,
29174              icon,
29175              label
29176            }) => {
29177              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, {
29178                value: value,
29179                icon: icon,
29180                label: label
29181              }, value);
29182            })
29183          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
29184            __nextHasNoMarginBottom: true,
29185            label: (0,external_wp_i18n_namespaceObject.__)('Add link to featured image'),
29186            checked: addLinkToFeaturedImage,
29187            onChange: value => setAttributes({
29188              addLinkToFeaturedImage: value
29189            })
29190          })]
29191        })]
29192      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
29193        title: (0,external_wp_i18n_namespaceObject.__)('Sorting and filtering'),
29194        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.QueryControls, {
29195          order,
29196          orderBy,
29197          numberOfItems: postsToShow,
29198          onOrderChange: value => setAttributes({
29199            order: value
29200          }),
29201          onOrderByChange: value => setAttributes({
29202            orderBy: value
29203          }),
29204          onNumberOfItemsChange: value => setAttributes({
29205            postsToShow: value
29206          }),
29207          categorySuggestions: categorySuggestions,
29208          onCategoryChange: selectCategories,
29209          selectedCategories: categories,
29210          onAuthorChange: value => setAttributes({
29211            selectedAuthor: '' !== value ? Number(value) : undefined
29212          }),
29213          authorList: authorList !== null && authorList !== void 0 ? authorList : [],
29214          selectedAuthorId: selectedAuthor
29215        }), postLayout === 'grid' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
29216          __nextHasNoMarginBottom: true,
29217          __next40pxDefaultSize: true,
29218          label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
29219          value: columns,
29220          onChange: value => setAttributes({
29221            columns: value
29222          }),
29223          min: 2,
29224          max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length),
29225          required: true
29226        })]
29227      })]
29228    });
29229    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
29230      className: dist_clsx({
29231        'wp-block-latest-posts__list': true,
29232        'is-grid': postLayout === 'grid',
29233        'has-dates': displayPostDate,
29234        'has-author': displayAuthor,
29235        [`columns-$columns}`]: postLayout === 'grid'
29236      })
29237    });
29238    if (!hasPosts) {
29239      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
29240        ...blockProps,
29241        children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
29242          icon: library_pin,
29243          label: (0,external_wp_i18n_namespaceObject.__)('Latest Posts'),
29244          children: !Array.isArray(latestPosts) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : (0,external_wp_i18n_namespaceObject.__)('No posts found.')
29245        })]
29246      });
29247    }
29248  
29249    // Removing posts from display should be instant.
29250    const displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;
29251    const layoutControls = [{
29252      icon: library_list,
29253      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'Latest posts block display setting'),
29254      onClick: () => setAttributes({
29255        postLayout: 'list'
29256      }),
29257      isActive: postLayout === 'list'
29258    }, {
29259      icon: library_grid,
29260      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'Latest posts block display setting'),
29261      onClick: () => setAttributes({
29262        postLayout: 'grid'
29263      }),
29264      isActive: postLayout === 'grid'
29265    }];
29266    const dateFormat = (0,external_wp_date_namespaceObject.getSettings)().formats.date;
29267    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29268      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
29269        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
29270          controls: layoutControls
29271        })
29272      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
29273        ...blockProps,
29274        children: displayPosts.map(post => {
29275          const titleTrimmed = post.title.rendered.trim();
29276          let excerpt = post.excerpt.rendered;
29277          const currentAuthor = authorList?.find(author => author.id === post.author);
29278          const excerptElement = document.createElement('div');
29279          excerptElement.innerHTML = excerpt;
29280          excerpt = excerptElement.textContent || excerptElement.innerText || '';
29281          const {
29282            url: imageSourceUrl,
29283            alt: featuredImageAlt
29284          } = getFeaturedImageDetails(post, featuredImageSizeSlug);
29285          const imageClasses = dist_clsx({
29286            'wp-block-latest-posts__featured-image': true,
29287            [`align$featuredImageAlign}`]: !!featuredImageAlign
29288          });
29289          const renderFeaturedImage = displayFeaturedImage && imageSourceUrl;
29290          const featuredImage = renderFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
29291            src: imageSourceUrl,
29292            alt: featuredImageAlt,
29293            style: {
29294              maxWidth: featuredImageSizeWidth,
29295              maxHeight: featuredImageSizeHeight
29296            }
29297          });
29298          const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
29299          const postExcerpt = needsReadMore ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
29300            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 */
29301            (0,external_wp_i18n_namespaceObject.__)('… <a>Read more<span>: %1$s</span></a>'), titleTrimmed || (0,external_wp_i18n_namespaceObject.__)('(no title)')), {
29302              a:
29303              /*#__PURE__*/
29304              // eslint-disable-next-line jsx-a11y/anchor-has-content
29305              (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
29306                className: "wp-block-latest-posts__read-more",
29307                href: post.link,
29308                rel: "noopener noreferrer",
29309                onClick: showRedirectionPreventedNotice
29310              }),
29311              span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
29312                className: "screen-reader-text"
29313              })
29314            })]
29315          }) : excerpt;
29316          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
29317            children: [renderFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29318              className: imageClasses,
29319              children: addLinkToFeaturedImage ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
29320                href: post.link,
29321                rel: "noreferrer noopener",
29322                onClick: showRedirectionPreventedNotice,
29323                children: featuredImage
29324              }) : featuredImage
29325            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
29326              className: "wp-block-latest-posts__post-title",
29327              href: post.link,
29328              rel: "noreferrer noopener",
29329              dangerouslySetInnerHTML: !!titleTrimmed ? {
29330                __html: titleTrimmed
29331              } : undefined,
29332              onClick: showRedirectionPreventedNotice,
29333              children: !titleTrimmed ? (0,external_wp_i18n_namespaceObject.__)('(no title)') : null
29334            }), displayAuthor && currentAuthor && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29335              className: "wp-block-latest-posts__post-author",
29336              children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: byline. %s: author. */
29337              (0,external_wp_i18n_namespaceObject.__)('by %s'), currentAuthor.name)
29338            }), displayPostDate && post.date_gmt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
29339              dateTime: (0,external_wp_date_namespaceObject.format)('c', post.date_gmt),
29340              className: "wp-block-latest-posts__post-date",
29341              children: (0,external_wp_date_namespaceObject.dateI18n)(dateFormat, post.date_gmt)
29342            }), displayPostContent && displayPostContentRadio === 'excerpt' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29343              className: "wp-block-latest-posts__post-excerpt",
29344              children: postExcerpt
29345            }), displayPostContent && displayPostContentRadio === 'full_post' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
29346              className: "wp-block-latest-posts__post-full-content",
29347              dangerouslySetInnerHTML: {
29348                __html: post.content.raw.trim()
29349              }
29350            })]
29351          }, post.id);
29352        })
29353      })]
29354    });
29355  }
29356  
29357  ;// ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js
29358  /**
29359   * WordPress dependencies
29360   */
29361  
29362  
29363  /**
29364   * Internal dependencies
29365   */
29366  
29367  
29368  
29369  const latest_posts_metadata = {
29370    $schema: "https://schemas.wp.org/trunk/block.json",
29371    apiVersion: 3,
29372    name: "core/latest-posts",
29373    title: "Latest Posts",
29374    category: "widgets",
29375    description: "Display a list of your most recent posts.",
29376    keywords: ["recent posts"],
29377    textdomain: "default",
29378    attributes: {
29379      categories: {
29380        type: "array",
29381        items: {
29382          type: "object"
29383        }
29384      },
29385      selectedAuthor: {
29386        type: "number"
29387      },
29388      postsToShow: {
29389        type: "number",
29390        "default": 5
29391      },
29392      displayPostContent: {
29393        type: "boolean",
29394        "default": false
29395      },
29396      displayPostContentRadio: {
29397        type: "string",
29398        "default": "excerpt"
29399      },
29400      excerptLength: {
29401        type: "number",
29402        "default": 55
29403      },
29404      displayAuthor: {
29405        type: "boolean",
29406        "default": false
29407      },
29408      displayPostDate: {
29409        type: "boolean",
29410        "default": false
29411      },
29412      postLayout: {
29413        type: "string",
29414        "default": "list"
29415      },
29416      columns: {
29417        type: "number",
29418        "default": 3
29419      },
29420      order: {
29421        type: "string",
29422        "default": "desc"
29423      },
29424      orderBy: {
29425        type: "string",
29426        "default": "date"
29427      },
29428      displayFeaturedImage: {
29429        type: "boolean",
29430        "default": false
29431      },
29432      featuredImageAlign: {
29433        type: "string",
29434        "enum": ["left", "center", "right"]
29435      },
29436      featuredImageSizeSlug: {
29437        type: "string",
29438        "default": "thumbnail"
29439      },
29440      featuredImageSizeWidth: {
29441        type: "number",
29442        "default": null
29443      },
29444      featuredImageSizeHeight: {
29445        type: "number",
29446        "default": null
29447      },
29448      addLinkToFeaturedImage: {
29449        type: "boolean",
29450        "default": false
29451      }
29452    },
29453    supports: {
29454      align: true,
29455      html: false,
29456      color: {
29457        gradients: true,
29458        link: true,
29459        __experimentalDefaultControls: {
29460          background: true,
29461          text: true,
29462          link: true
29463        }
29464      },
29465      spacing: {
29466        margin: true,
29467        padding: true
29468      },
29469      typography: {
29470        fontSize: true,
29471        lineHeight: true,
29472        __experimentalFontFamily: true,
29473        __experimentalFontWeight: true,
29474        __experimentalFontStyle: true,
29475        __experimentalTextTransform: true,
29476        __experimentalTextDecoration: true,
29477        __experimentalLetterSpacing: true,
29478        __experimentalDefaultControls: {
29479          fontSize: true
29480        }
29481      },
29482      __experimentalBorder: {
29483        radius: true,
29484        color: true,
29485        width: true,
29486        style: true,
29487        __experimentalDefaultControls: {
29488          radius: true,
29489          color: true,
29490          width: true,
29491          style: true
29492        }
29493      },
29494      interactivity: {
29495        clientNavigation: true
29496      }
29497    },
29498    editorStyle: "wp-block-latest-posts-editor",
29499    style: "wp-block-latest-posts"
29500  };
29501  const {
29502    name: latest_posts_name
29503  } = latest_posts_metadata;
29504  
29505  const latest_posts_settings = {
29506    icon: post_list,
29507    example: {},
29508    edit: LatestPostsEdit,
29509    deprecated: latest_posts_deprecated
29510  };
29511  const latest_posts_init = () => initBlock({
29512    name: latest_posts_name,
29513    metadata: latest_posts_metadata,
29514    settings: latest_posts_settings
29515  });
29516  
29517  ;// ./node_modules/@wordpress/block-library/build-module/list/utils.js
29518  /**
29519   * WordPress dependencies
29520   */
29521  
29522  const LIST_STYLES = {
29523    A: 'upper-alpha',
29524    a: 'lower-alpha',
29525    I: 'upper-roman',
29526    i: 'lower-roman'
29527  };
29528  function createListBlockFromDOMElement(listElement) {
29529    const type = listElement.getAttribute('type');
29530    const listAttributes = {
29531      ordered: 'OL' === listElement.tagName,
29532      anchor: listElement.id === '' ? undefined : listElement.id,
29533      start: listElement.getAttribute('start') ? parseInt(listElement.getAttribute('start'), 10) : undefined,
29534      reversed: listElement.hasAttribute('reversed') ? true : undefined,
29535      type: type && LIST_STYLES[type] ? LIST_STYLES[type] : undefined
29536    };
29537    const innerBlocks = Array.from(listElement.children).map(listItem => {
29538      const children = Array.from(listItem.childNodes).filter(node => node.nodeType !== node.TEXT_NODE || node.textContent.trim().length !== 0);
29539      children.reverse();
29540      const [nestedList, ...nodes] = children;
29541      const hasNestedList = nestedList?.tagName === 'UL' || nestedList?.tagName === 'OL';
29542      if (!hasNestedList) {
29543        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
29544          content: listItem.innerHTML
29545        });
29546      }
29547      const htmlNodes = nodes.map(node => {
29548        if (node.nodeType === node.TEXT_NODE) {
29549          return node.textContent;
29550        }
29551        return node.outerHTML;
29552      });
29553      htmlNodes.reverse();
29554      const childAttributes = {
29555        content: htmlNodes.join('').trim()
29556      };
29557      const childInnerBlocks = [createListBlockFromDOMElement(nestedList)];
29558      return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', childAttributes, childInnerBlocks);
29559    });
29560    return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', listAttributes, innerBlocks);
29561  }
29562  function migrateToListV2(attributes) {
29563    const {
29564      values,
29565      start,
29566      reversed,
29567      ordered,
29568      type,
29569      ...otherAttributes
29570    } = attributes;
29571    const list = document.createElement(ordered ? 'ol' : 'ul');
29572    list.innerHTML = values;
29573    if (start) {
29574      list.setAttribute('start', start);
29575    }
29576    if (reversed) {
29577      list.setAttribute('reversed', true);
29578    }
29579    if (type) {
29580      list.setAttribute('type', type);
29581    }
29582    const [listBlock] = (0,external_wp_blocks_namespaceObject.rawHandler)({
29583      HTML: list.outerHTML
29584    });
29585    return [{
29586      ...otherAttributes,
29587      ...listBlock.attributes
29588    }, listBlock.innerBlocks];
29589  }
29590  function migrateTypeToInlineStyle(attributes) {
29591    const {
29592      type
29593    } = attributes;
29594    if (type && LIST_STYLES[type]) {
29595      return {
29596        ...attributes,
29597        type: LIST_STYLES[type]
29598      };
29599    }
29600    return attributes;
29601  }
29602  
29603  ;// ./node_modules/@wordpress/block-library/build-module/list/deprecated.js
29604  /**
29605   * WordPress dependencies
29606   */
29607  
29608  
29609  /**
29610   * Internal dependencies
29611   */
29612  
29613  
29614  
29615  const v0 = {
29616    attributes: {
29617      ordered: {
29618        type: 'boolean',
29619        default: false,
29620        role: 'content'
29621      },
29622      values: {
29623        type: 'string',
29624        source: 'html',
29625        selector: 'ol,ul',
29626        multiline: 'li',
29627        __unstableMultilineWrapperTags: ['ol', 'ul'],
29628        default: '',
29629        role: 'content'
29630      },
29631      type: {
29632        type: 'string'
29633      },
29634      start: {
29635        type: 'number'
29636      },
29637      reversed: {
29638        type: 'boolean'
29639      },
29640      placeholder: {
29641        type: 'string'
29642      }
29643    },
29644    supports: {
29645      anchor: true,
29646      className: false,
29647      typography: {
29648        fontSize: true,
29649        __experimentalFontFamily: true
29650      },
29651      color: {
29652        gradients: true,
29653        link: true
29654      },
29655      __unstablePasteTextInline: true,
29656      __experimentalSelector: 'ol,ul',
29657      __experimentalSlashInserter: true
29658    },
29659    save({
29660      attributes
29661    }) {
29662      const {
29663        ordered,
29664        values,
29665        type,
29666        reversed,
29667        start
29668      } = attributes;
29669      const TagName = ordered ? 'ol' : 'ul';
29670      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29671        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29672          type,
29673          reversed,
29674          start
29675        }),
29676        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
29677          value: values,
29678          multiline: "li"
29679        })
29680      });
29681    },
29682    migrate: migrate_font_family,
29683    isEligible({
29684      style
29685    }) {
29686      return style?.typography?.fontFamily;
29687    }
29688  };
29689  const list_deprecated_v1 = {
29690    attributes: {
29691      ordered: {
29692        type: 'boolean',
29693        default: false,
29694        role: 'content'
29695      },
29696      values: {
29697        type: 'string',
29698        source: 'html',
29699        selector: 'ol,ul',
29700        multiline: 'li',
29701        __unstableMultilineWrapperTags: ['ol', 'ul'],
29702        default: '',
29703        role: 'content'
29704      },
29705      type: {
29706        type: 'string'
29707      },
29708      start: {
29709        type: 'number'
29710      },
29711      reversed: {
29712        type: 'boolean'
29713      },
29714      placeholder: {
29715        type: 'string'
29716      }
29717    },
29718    supports: {
29719      anchor: true,
29720      className: false,
29721      typography: {
29722        fontSize: true,
29723        __experimentalFontFamily: true,
29724        lineHeight: true,
29725        __experimentalFontStyle: true,
29726        __experimentalFontWeight: true,
29727        __experimentalLetterSpacing: true,
29728        __experimentalTextTransform: true,
29729        __experimentalDefaultControls: {
29730          fontSize: true
29731        }
29732      },
29733      color: {
29734        gradients: true,
29735        link: true,
29736        __experimentalDefaultControls: {
29737          background: true,
29738          text: true
29739        }
29740      },
29741      __unstablePasteTextInline: true,
29742      __experimentalSelector: 'ol,ul',
29743      __experimentalSlashInserter: true
29744    },
29745    save({
29746      attributes
29747    }) {
29748      const {
29749        ordered,
29750        values,
29751        type,
29752        reversed,
29753        start
29754      } = attributes;
29755      const TagName = ordered ? 'ol' : 'ul';
29756      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29757        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29758          type,
29759          reversed,
29760          start
29761        }),
29762        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
29763          value: values,
29764          multiline: "li"
29765        })
29766      });
29767    },
29768    migrate: migrateToListV2
29769  };
29770  
29771  // In #53301 changed to use the inline style instead of type attribute.
29772  const list_deprecated_v2 = {
29773    attributes: {
29774      ordered: {
29775        type: 'boolean',
29776        default: false,
29777        role: 'content'
29778      },
29779      values: {
29780        type: 'string',
29781        source: 'html',
29782        selector: 'ol,ul',
29783        multiline: 'li',
29784        __unstableMultilineWrapperTags: ['ol', 'ul'],
29785        default: '',
29786        role: 'content'
29787      },
29788      type: {
29789        type: 'string'
29790      },
29791      start: {
29792        type: 'number'
29793      },
29794      reversed: {
29795        type: 'boolean'
29796      },
29797      placeholder: {
29798        type: 'string'
29799      }
29800    },
29801    supports: {
29802      anchor: true,
29803      className: false,
29804      typography: {
29805        fontSize: true,
29806        lineHeight: true,
29807        __experimentalFontFamily: true,
29808        __experimentalFontWeight: true,
29809        __experimentalFontStyle: true,
29810        __experimentalTextTransform: true,
29811        __experimentalTextDecoration: true,
29812        __experimentalLetterSpacing: true,
29813        __experimentalDefaultControls: {
29814          fontSize: true
29815        }
29816      },
29817      color: {
29818        gradients: true,
29819        link: true,
29820        __experimentalDefaultControls: {
29821          background: true,
29822          text: true
29823        }
29824      },
29825      spacing: {
29826        margin: true,
29827        padding: true,
29828        __experimentalDefaultControls: {
29829          margin: false,
29830          padding: false
29831        }
29832      },
29833      __unstablePasteTextInline: true,
29834      __experimentalSelector: 'ol,ul',
29835      __experimentalSlashInserter: true
29836    },
29837    isEligible({
29838      type
29839    }) {
29840      return !!type;
29841    },
29842    save({
29843      attributes
29844    }) {
29845      const {
29846        ordered,
29847        type,
29848        reversed,
29849        start
29850      } = attributes;
29851      const TagName = ordered ? 'ol' : 'ul';
29852      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29853        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29854          type,
29855          reversed,
29856          start
29857        }),
29858        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
29859      });
29860    },
29861    migrate: migrateTypeToInlineStyle
29862  };
29863  
29864  // Version without block support 'className: true'.
29865  const list_deprecated_v3 = {
29866    attributes: {
29867      ordered: {
29868        type: 'boolean',
29869        default: false,
29870        role: 'content'
29871      },
29872      values: {
29873        type: 'string',
29874        source: 'html',
29875        selector: 'ol,ul',
29876        multiline: 'li',
29877        __unstableMultilineWrapperTags: ['ol', 'ul'],
29878        default: '',
29879        role: 'content'
29880      },
29881      type: {
29882        type: 'string'
29883      },
29884      start: {
29885        type: 'number'
29886      },
29887      reversed: {
29888        type: 'boolean'
29889      },
29890      placeholder: {
29891        type: 'string'
29892      }
29893    },
29894    supports: {
29895      anchor: true,
29896      className: false,
29897      typography: {
29898        fontSize: true,
29899        lineHeight: true,
29900        __experimentalFontFamily: true,
29901        __experimentalFontWeight: true,
29902        __experimentalFontStyle: true,
29903        __experimentalTextTransform: true,
29904        __experimentalTextDecoration: true,
29905        __experimentalLetterSpacing: true,
29906        __experimentalDefaultControls: {
29907          fontSize: true
29908        }
29909      },
29910      color: {
29911        gradients: true,
29912        link: true,
29913        __experimentalDefaultControls: {
29914          background: true,
29915          text: true
29916        }
29917      },
29918      spacing: {
29919        margin: true,
29920        padding: true,
29921        __experimentalDefaultControls: {
29922          margin: false,
29923          padding: false
29924        }
29925      },
29926      __unstablePasteTextInline: true,
29927      __experimentalSelector: 'ol,ul',
29928      __experimentalOnMerge: 'true',
29929      __experimentalSlashInserter: true
29930    },
29931    save({
29932      attributes
29933    }) {
29934      const {
29935        ordered,
29936        type,
29937        reversed,
29938        start
29939      } = attributes;
29940      const TagName = ordered ? 'ol' : 'ul';
29941      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
29942        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
29943          reversed,
29944          start,
29945          style: {
29946            listStyleType: ordered && type !== 'decimal' ? type : undefined
29947          }
29948        }),
29949        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
29950      });
29951    }
29952  };
29953  
29954  /**
29955   * New deprecations need to be placed first
29956   * for them to have higher priority.
29957   *
29958   * Old deprecations may need to be updated as well.
29959   *
29960   * See block-deprecation.md
29961   */
29962  /* harmony default export */ const list_deprecated = ([list_deprecated_v3, list_deprecated_v2, list_deprecated_v1, v0]);
29963  
29964  ;// ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js
29965  /**
29966   * WordPress dependencies
29967   */
29968  
29969  
29970  const formatOutdentRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29971    xmlns: "http://www.w3.org/2000/svg",
29972    viewBox: "0 0 24 24",
29973    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29974      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"
29975    })
29976  });
29977  /* harmony default export */ const format_outdent_rtl = (formatOutdentRTL);
29978  
29979  ;// ./node_modules/@wordpress/icons/build-module/library/format-outdent.js
29980  /**
29981   * WordPress dependencies
29982   */
29983  
29984  
29985  const formatOutdent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
29986    xmlns: "http://www.w3.org/2000/svg",
29987    viewBox: "0 0 24 24",
29988    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
29989      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"
29990    })
29991  });
29992  /* harmony default export */ const format_outdent = (formatOutdent);
29993  
29994  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js
29995  /**
29996   * WordPress dependencies
29997   */
29998  
29999  
30000  const formatListBulletsRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30001    xmlns: "http://www.w3.org/2000/svg",
30002    viewBox: "0 0 24 24",
30003    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30004      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"
30005    })
30006  });
30007  /* harmony default export */ const format_list_bullets_rtl = (formatListBulletsRTL);
30008  
30009  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js
30010  /**
30011   * WordPress dependencies
30012   */
30013  
30014  
30015  const formatListBullets = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30016    xmlns: "http://www.w3.org/2000/svg",
30017    viewBox: "0 0 24 24",
30018    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30019      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"
30020    })
30021  });
30022  /* harmony default export */ const format_list_bullets = (formatListBullets);
30023  
30024  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js
30025  /**
30026   * WordPress dependencies
30027   */
30028  
30029  
30030  const formatListNumberedRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30031    xmlns: "http://www.w3.org/2000/svg",
30032    viewBox: "0 0 24 24",
30033    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30034      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"
30035    })
30036  });
30037  /* harmony default export */ const format_list_numbered_rtl = (formatListNumberedRTL);
30038  
30039  ;// ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js
30040  /**
30041   * WordPress dependencies
30042   */
30043  
30044  
30045  const formatListNumbered = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30046    xmlns: "http://www.w3.org/2000/svg",
30047    viewBox: "0 0 24 24",
30048    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30049      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"
30050    })
30051  });
30052  /* harmony default export */ const format_list_numbered = (formatListNumbered);
30053  
30054  ;// external ["wp","deprecated"]
30055  const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
30056  var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
30057  ;// ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js
30058  /**
30059   * WordPress dependencies
30060   */
30061  
30062  
30063  
30064  
30065  const OrderedListSettings = ({
30066    setAttributes,
30067    reversed,
30068    start,
30069    type
30070  }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
30071    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
30072      title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
30073      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
30074        __next40pxDefaultSize: true,
30075        __nextHasNoMarginBottom: true,
30076        label: (0,external_wp_i18n_namespaceObject.__)('List style'),
30077        options: [{
30078          label: (0,external_wp_i18n_namespaceObject.__)('Numbers'),
30079          value: 'decimal'
30080        }, {
30081          label: (0,external_wp_i18n_namespaceObject.__)('Uppercase letters'),
30082          value: 'upper-alpha'
30083        }, {
30084          label: (0,external_wp_i18n_namespaceObject.__)('Lowercase letters'),
30085          value: 'lower-alpha'
30086        }, {
30087          label: (0,external_wp_i18n_namespaceObject.__)('Uppercase Roman numerals'),
30088          value: 'upper-roman'
30089        }, {
30090          label: (0,external_wp_i18n_namespaceObject.__)('Lowercase Roman numerals'),
30091          value: 'lower-roman'
30092        }],
30093        value: type,
30094        onChange: newValue => setAttributes({
30095          type: newValue
30096        })
30097      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
30098        __next40pxDefaultSize: true,
30099        __nextHasNoMarginBottom: true,
30100        label: (0,external_wp_i18n_namespaceObject.__)('Start value'),
30101        type: "number",
30102        onChange: value => {
30103          const int = parseInt(value, 10);
30104          setAttributes({
30105            // It should be possible to unset the value,
30106            // e.g. with an empty string.
30107            start: isNaN(int) ? undefined : int
30108          });
30109        },
30110        value: Number.isInteger(start) ? start.toString(10) : '',
30111        step: "1"
30112      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
30113        __nextHasNoMarginBottom: true,
30114        label: (0,external_wp_i18n_namespaceObject.__)('Reverse order'),
30115        checked: reversed || false,
30116        onChange: value => {
30117          setAttributes({
30118            // Unset the attribute if not reversed.
30119            reversed: value || undefined
30120          });
30121        }
30122      })]
30123    })
30124  });
30125  /* harmony default export */ const ordered_list_settings = (OrderedListSettings);
30126  
30127  ;// ./node_modules/@wordpress/block-library/build-module/list/tag-name.js
30128  /**
30129   * WordPress dependencies
30130   */
30131  
30132  
30133  function TagName(props, ref) {
30134    const {
30135      ordered,
30136      ...extraProps
30137    } = props;
30138    const Tag = ordered ? 'ol' : 'ul';
30139    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
30140      ref: ref,
30141      ...extraProps
30142    });
30143  }
30144  /* harmony default export */ const tag_name = ((0,external_wp_element_namespaceObject.forwardRef)(TagName));
30145  
30146  ;// ./node_modules/@wordpress/block-library/build-module/list/edit.js
30147  /**
30148   * WordPress dependencies
30149   */
30150  
30151  
30152  
30153  
30154  
30155  
30156  
30157  
30158  
30159  /**
30160   * Internal dependencies
30161   */
30162  
30163  
30164  
30165  
30166  const list_edit_DEFAULT_BLOCK = {
30167    name: 'core/list-item'
30168  };
30169  const list_edit_TEMPLATE = [['core/list-item']];
30170  const NATIVE_MARGIN_SPACING = 8;
30171  
30172  /**
30173   * At the moment, deprecations don't handle create blocks from attributes
30174   * (like when using CPT templates). For this reason, this hook is necessary
30175   * to avoid breaking templates using the old list block format.
30176   *
30177   * @param {Object} attributes Block attributes.
30178   * @param {string} clientId   Block client ID.
30179   */
30180  function useMigrateOnLoad(attributes, clientId) {
30181    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30182    const {
30183      updateBlockAttributes,
30184      replaceInnerBlocks
30185    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30186    (0,external_wp_element_namespaceObject.useEffect)(() => {
30187      // As soon as the block is loaded, migrate it to the new version.
30188  
30189      if (!attributes.values) {
30190        return;
30191      }
30192      const [newAttributes, newInnerBlocks] = migrateToListV2(attributes);
30193      external_wp_deprecated_default()('Value attribute on the list block', {
30194        since: '6.0',
30195        version: '6.5',
30196        alternative: 'inner blocks'
30197      });
30198      registry.batch(() => {
30199        updateBlockAttributes(clientId, newAttributes);
30200        replaceInnerBlocks(clientId, newInnerBlocks);
30201      });
30202    }, [attributes.values]);
30203  }
30204  function useOutdentList(clientId) {
30205    const {
30206      replaceBlocks,
30207      selectionChange
30208    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30209    const {
30210      getBlockRootClientId,
30211      getBlockAttributes,
30212      getBlock
30213    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30214    return (0,external_wp_element_namespaceObject.useCallback)(() => {
30215      const parentBlockId = getBlockRootClientId(clientId);
30216      const parentBlockAttributes = getBlockAttributes(parentBlockId);
30217      // Create a new parent block without the inner blocks.
30218      const newParentBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', parentBlockAttributes);
30219      const {
30220        innerBlocks
30221      } = getBlock(clientId);
30222      // Replace the parent block with a new parent block without inner blocks,
30223      // and make the inner blocks siblings of the parent.
30224      replaceBlocks([parentBlockId], [newParentBlock, ...innerBlocks]);
30225      // Select the last child of the list being outdent.
30226      selectionChange(innerBlocks[innerBlocks.length - 1].clientId);
30227    }, [clientId]);
30228  }
30229  function IndentUI({
30230    clientId
30231  }) {
30232    const outdentList = useOutdentList(clientId);
30233    const canOutdent = (0,external_wp_data_namespaceObject.useSelect)(select => {
30234      const {
30235        getBlockRootClientId,
30236        getBlockName
30237      } = select(external_wp_blockEditor_namespaceObject.store);
30238      return getBlockName(getBlockRootClientId(clientId)) === 'core/list-item';
30239    }, [clientId]);
30240    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30241      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30242        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
30243        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
30244        description: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
30245        disabled: !canOutdent,
30246        onClick: outdentList
30247      })
30248    });
30249  }
30250  function list_edit_Edit({
30251    attributes,
30252    setAttributes,
30253    clientId,
30254    style
30255  }) {
30256    const {
30257      ordered,
30258      type,
30259      reversed,
30260      start
30261    } = attributes;
30262    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
30263      style: {
30264        ...(external_wp_element_namespaceObject.Platform.isNative && style),
30265        listStyleType: ordered && type !== 'decimal' ? type : undefined
30266      }
30267    });
30268    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
30269      defaultBlock: list_edit_DEFAULT_BLOCK,
30270      directInsert: true,
30271      template: list_edit_TEMPLATE,
30272      templateLock: false,
30273      templateInsertUpdatesSelection: true,
30274      ...(external_wp_element_namespaceObject.Platform.isNative && {
30275        marginVertical: NATIVE_MARGIN_SPACING,
30276        marginHorizontal: NATIVE_MARGIN_SPACING,
30277        renderAppender: false
30278      }),
30279      __experimentalCaptureToolbars: true
30280    });
30281    useMigrateOnLoad(attributes, clientId);
30282    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
30283      group: "block",
30284      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30285        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_bullets_rtl : format_list_bullets,
30286        title: (0,external_wp_i18n_namespaceObject.__)('Unordered'),
30287        description: (0,external_wp_i18n_namespaceObject.__)('Convert to unordered list'),
30288        isActive: ordered === false,
30289        onClick: () => {
30290          setAttributes({
30291            ordered: false
30292          });
30293        }
30294      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
30295        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_list_numbered_rtl : format_list_numbered,
30296        title: (0,external_wp_i18n_namespaceObject.__)('Ordered'),
30297        description: (0,external_wp_i18n_namespaceObject.__)('Convert to ordered list'),
30298        isActive: ordered === true,
30299        onClick: () => {
30300          setAttributes({
30301            ordered: true
30302          });
30303        }
30304      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(IndentUI, {
30305        clientId: clientId
30306      })]
30307    });
30308    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
30309      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(tag_name, {
30310        ordered: ordered,
30311        reversed: reversed,
30312        start: start,
30313        ...innerBlocksProps
30314      }), controls, ordered && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ordered_list_settings, {
30315        setAttributes,
30316        reversed,
30317        start,
30318        type
30319      })]
30320    });
30321  }
30322  
30323  ;// ./node_modules/@wordpress/block-library/build-module/list/save.js
30324  /**
30325   * WordPress dependencies
30326   */
30327  
30328  
30329  function list_save_save({
30330    attributes
30331  }) {
30332    const {
30333      ordered,
30334      type,
30335      reversed,
30336      start
30337    } = attributes;
30338    const TagName = ordered ? 'ol' : 'ul';
30339    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
30340      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
30341        reversed,
30342        start,
30343        style: {
30344          listStyleType: ordered && type !== 'decimal' ? type : undefined
30345        }
30346      }),
30347      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
30348    });
30349  }
30350  
30351  ;// ./node_modules/@wordpress/block-library/build-module/list/transforms.js
30352  /**
30353   * WordPress dependencies
30354   */
30355  
30356  
30357  
30358  /**
30359   * Internal dependencies
30360   */
30361  
30362  function getListContentSchema({
30363    phrasingContentSchema
30364  }) {
30365    const listContentSchema = {
30366      ...phrasingContentSchema,
30367      ul: {},
30368      ol: {
30369        attributes: ['type', 'start', 'reversed']
30370      }
30371    };
30372  
30373    // Recursion is needed.
30374    // Possible: ul > li > ul.
30375    // Impossible: ul > ul.
30376    ['ul', 'ol'].forEach(tag => {
30377      listContentSchema[tag].children = {
30378        li: {
30379          children: listContentSchema
30380        }
30381      };
30382    });
30383    return listContentSchema;
30384  }
30385  function getListContentFlat(blocks) {
30386    return blocks.flatMap(({
30387      name,
30388      attributes,
30389      innerBlocks = []
30390    }) => {
30391      if (name === 'core/list-item') {
30392        return [attributes.content, ...getListContentFlat(innerBlocks)];
30393      }
30394      return getListContentFlat(innerBlocks);
30395    });
30396  }
30397  const list_transforms_transforms = {
30398    from: [{
30399      type: 'block',
30400      isMultiBlock: true,
30401      blocks: ['core/paragraph', 'core/heading'],
30402      transform: blockAttributes => {
30403        let childBlocks = [];
30404        if (blockAttributes.length > 1) {
30405          childBlocks = blockAttributes.map(({
30406            content
30407          }) => {
30408            return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30409              content
30410            });
30411          });
30412        } else if (blockAttributes.length === 1) {
30413          const value = (0,external_wp_richText_namespaceObject.create)({
30414            html: blockAttributes[0].content
30415          });
30416          childBlocks = (0,external_wp_richText_namespaceObject.split)(value, '\n').map(result => {
30417            return (0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30418              content: (0,external_wp_richText_namespaceObject.toHTMLString)({
30419                value: result
30420              })
30421            });
30422          });
30423        }
30424        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
30425          anchor: blockAttributes.anchor
30426        }, childBlocks);
30427      }
30428    }, {
30429      type: 'raw',
30430      selector: 'ol,ul',
30431      schema: args => ({
30432        ol: getListContentSchema(args).ol,
30433        ul: getListContentSchema(args).ul
30434      }),
30435      transform: createListBlockFromDOMElement
30436    }, ...['*', '-'].map(prefix => ({
30437      type: 'prefix',
30438      prefix,
30439      transform(content) {
30440        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30441          content
30442        })]);
30443      }
30444    })), ...['1.', '1)'].map(prefix => ({
30445      type: 'prefix',
30446      prefix,
30447      transform(content) {
30448        return (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
30449          ordered: true
30450        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/list-item', {
30451          content
30452        })]);
30453      }
30454    }))],
30455    to: [...['core/paragraph', 'core/heading'].map(block => ({
30456      type: 'block',
30457      blocks: [block],
30458      transform: (_attributes, childBlocks) => {
30459        return getListContentFlat(childBlocks).map(content => (0,external_wp_blocks_namespaceObject.createBlock)(block, {
30460          content
30461        }));
30462      }
30463    }))]
30464  };
30465  /* harmony default export */ const list_transforms = (list_transforms_transforms);
30466  
30467  ;// ./node_modules/@wordpress/block-library/build-module/list/index.js
30468  /**
30469   * WordPress dependencies
30470   */
30471  
30472  
30473  
30474  /**
30475   * Internal dependencies
30476   */
30477  
30478  
30479  
30480  const list_metadata = {
30481    $schema: "https://schemas.wp.org/trunk/block.json",
30482    apiVersion: 3,
30483    name: "core/list",
30484    title: "List",
30485    category: "text",
30486    allowedBlocks: ["core/list-item"],
30487    description: "An organized collection of items displayed in a specific order.",
30488    keywords: ["bullet list", "ordered list", "numbered list"],
30489    textdomain: "default",
30490    attributes: {
30491      ordered: {
30492        type: "boolean",
30493        "default": false,
30494        role: "content"
30495      },
30496      values: {
30497        type: "string",
30498        source: "html",
30499        selector: "ol,ul",
30500        multiline: "li",
30501        __unstableMultilineWrapperTags: ["ol", "ul"],
30502        "default": "",
30503        role: "content"
30504      },
30505      type: {
30506        type: "string"
30507      },
30508      start: {
30509        type: "number"
30510      },
30511      reversed: {
30512        type: "boolean"
30513      },
30514      placeholder: {
30515        type: "string"
30516      }
30517    },
30518    supports: {
30519      anchor: true,
30520      html: false,
30521      __experimentalBorder: {
30522        color: true,
30523        radius: true,
30524        style: true,
30525        width: true
30526      },
30527      typography: {
30528        fontSize: true,
30529        lineHeight: true,
30530        __experimentalFontFamily: true,
30531        __experimentalFontWeight: true,
30532        __experimentalFontStyle: true,
30533        __experimentalTextTransform: true,
30534        __experimentalTextDecoration: true,
30535        __experimentalLetterSpacing: true,
30536        __experimentalDefaultControls: {
30537          fontSize: true
30538        }
30539      },
30540      color: {
30541        gradients: true,
30542        link: true,
30543        __experimentalDefaultControls: {
30544          background: true,
30545          text: true
30546        }
30547      },
30548      spacing: {
30549        margin: true,
30550        padding: true,
30551        __experimentalDefaultControls: {
30552          margin: false,
30553          padding: false
30554        }
30555      },
30556      __unstablePasteTextInline: true,
30557      __experimentalOnMerge: true,
30558      __experimentalSlashInserter: true,
30559      interactivity: {
30560        clientNavigation: true
30561      }
30562    },
30563    selectors: {
30564      border: ".wp-block-list:not(.wp-block-list .wp-block-list)"
30565    },
30566    editorStyle: "wp-block-list-editor",
30567    style: "wp-block-list"
30568  };
30569  
30570  
30571  const {
30572    name: list_name
30573  } = list_metadata;
30574  
30575  const list_settings = {
30576    icon: library_list,
30577    example: {
30578      innerBlocks: [{
30579        name: 'core/list-item',
30580        attributes: {
30581          content: (0,external_wp_i18n_namespaceObject.__)('Alice.')
30582        }
30583      }, {
30584        name: 'core/list-item',
30585        attributes: {
30586          content: (0,external_wp_i18n_namespaceObject.__)('The White Rabbit.')
30587        }
30588      }, {
30589        name: 'core/list-item',
30590        attributes: {
30591          content: (0,external_wp_i18n_namespaceObject.__)('The Cheshire Cat.')
30592        }
30593      }, {
30594        name: 'core/list-item',
30595        attributes: {
30596          content: (0,external_wp_i18n_namespaceObject.__)('The Mad Hatter.')
30597        }
30598      }, {
30599        name: 'core/list-item',
30600        attributes: {
30601          content: (0,external_wp_i18n_namespaceObject.__)('The Queen of Hearts.')
30602        }
30603      }]
30604    },
30605    transforms: list_transforms,
30606    edit: list_edit_Edit,
30607    save: list_save_save,
30608    deprecated: list_deprecated
30609  };
30610  
30611  const list_init = () => initBlock({
30612    name: list_name,
30613    metadata: list_metadata,
30614    settings: list_settings
30615  });
30616  
30617  ;// ./node_modules/@wordpress/icons/build-module/library/list-item.js
30618  /**
30619   * WordPress dependencies
30620   */
30621  
30622  
30623  const listItem = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30624    xmlns: "http://www.w3.org/2000/svg",
30625    viewBox: "0 0 24 24",
30626    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30627      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"
30628    })
30629  });
30630  /* harmony default export */ const list_item = (listItem);
30631  
30632  ;// ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js
30633  /**
30634   * WordPress dependencies
30635   */
30636  
30637  
30638  const formatIndentRTL = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30639    xmlns: "http://www.w3.org/2000/svg",
30640    viewBox: "0 0 24 24",
30641    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30642      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"
30643    })
30644  });
30645  /* harmony default export */ const format_indent_rtl = (formatIndentRTL);
30646  
30647  ;// ./node_modules/@wordpress/icons/build-module/library/format-indent.js
30648  /**
30649   * WordPress dependencies
30650   */
30651  
30652  
30653  const formatIndent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
30654    xmlns: "http://www.w3.org/2000/svg",
30655    viewBox: "0 0 24 24",
30656    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
30657      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"
30658    })
30659  });
30660  /* harmony default export */ const format_indent = (formatIndent);
30661  
30662  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-indent-list-item.js
30663  /**
30664   * WordPress dependencies
30665   */
30666  
30667  
30668  
30669  
30670  function useIndentListItem(clientId) {
30671    const {
30672      replaceBlocks,
30673      selectionChange,
30674      multiSelect
30675    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30676    const {
30677      getBlock,
30678      getPreviousBlockClientId,
30679      getSelectionStart,
30680      getSelectionEnd,
30681      hasMultiSelection,
30682      getMultiSelectedBlockClientIds
30683    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30684    return (0,external_wp_element_namespaceObject.useCallback)(() => {
30685      const _hasMultiSelection = hasMultiSelection();
30686      const clientIds = _hasMultiSelection ? getMultiSelectedBlockClientIds() : [clientId];
30687      const clonedBlocks = clientIds.map(_clientId => (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(_clientId)));
30688      const previousSiblingId = getPreviousBlockClientId(clientId);
30689      const newListItem = (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(previousSiblingId));
30690      // If the sibling has no innerBlocks, create a new `list` block.
30691      if (!newListItem.innerBlocks?.length) {
30692        newListItem.innerBlocks = [(0,external_wp_blocks_namespaceObject.createBlock)('core/list')];
30693      }
30694      // A list item usually has one `list`, but it's possible to have
30695      // more. So we need to preserve the previous `list` blocks and
30696      // merge the new blocks to the last `list`.
30697      newListItem.innerBlocks[newListItem.innerBlocks.length - 1].innerBlocks.push(...clonedBlocks);
30698  
30699      // We get the selection start/end here, because when
30700      // we replace blocks, the selection is updated too.
30701      const selectionStart = getSelectionStart();
30702      const selectionEnd = getSelectionEnd();
30703      // Replace the previous sibling of the block being indented and the indented blocks,
30704      // with a new block whose attributes are equal to the ones of the previous sibling and
30705      // whose descendants are the children of the previous sibling, followed by the indented blocks.
30706      replaceBlocks([previousSiblingId, ...clientIds], [newListItem]);
30707      if (!_hasMultiSelection) {
30708        selectionChange(clonedBlocks[0].clientId, selectionEnd.attributeKey, selectionEnd.clientId === selectionStart.clientId ? selectionStart.offset : selectionEnd.offset, selectionEnd.offset);
30709      } else {
30710        multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId);
30711      }
30712      return true;
30713    }, [clientId]);
30714  }
30715  
30716  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-outdent-list-item.js
30717  /**
30718   * WordPress dependencies
30719   */
30720  
30721  
30722  
30723  
30724  function useOutdentListItem() {
30725    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30726    const {
30727      moveBlocksToPosition,
30728      removeBlock,
30729      insertBlock,
30730      updateBlockListSettings
30731    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30732    const {
30733      getBlockRootClientId,
30734      getBlockName,
30735      getBlockOrder,
30736      getBlockIndex,
30737      getSelectedBlockClientIds,
30738      getBlock,
30739      getBlockListSettings
30740    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30741    function getParentListItemId(id) {
30742      const listId = getBlockRootClientId(id);
30743      const parentListItemId = getBlockRootClientId(listId);
30744      if (!parentListItemId) {
30745        return;
30746      }
30747      if (getBlockName(parentListItemId) !== 'core/list-item') {
30748        return;
30749      }
30750      return parentListItemId;
30751    }
30752    return (0,external_wp_element_namespaceObject.useCallback)((clientIds = getSelectedBlockClientIds()) => {
30753      if (!Array.isArray(clientIds)) {
30754        clientIds = [clientIds];
30755      }
30756      if (!clientIds.length) {
30757        return;
30758      }
30759      const firstClientId = clientIds[0];
30760  
30761      // Can't outdent if it's not a list item.
30762      if (getBlockName(firstClientId) !== 'core/list-item') {
30763        return;
30764      }
30765      const parentListItemId = getParentListItemId(firstClientId);
30766  
30767      // Can't outdent if it's at the top level.
30768      if (!parentListItemId) {
30769        return;
30770      }
30771      const parentListId = getBlockRootClientId(firstClientId);
30772      const lastClientId = clientIds[clientIds.length - 1];
30773      const order = getBlockOrder(parentListId);
30774      const followingListItems = order.slice(getBlockIndex(lastClientId) + 1);
30775      registry.batch(() => {
30776        if (followingListItems.length) {
30777          let nestedListId = getBlockOrder(firstClientId)[0];
30778          if (!nestedListId) {
30779            const nestedListBlock = (0,external_wp_blocks_namespaceObject.cloneBlock)(getBlock(parentListId), {}, []);
30780            nestedListId = nestedListBlock.clientId;
30781            insertBlock(nestedListBlock, 0, firstClientId, false);
30782            // Immediately update the block list settings, otherwise
30783            // blocks can't be moved here due to canInsert checks.
30784            updateBlockListSettings(nestedListId, getBlockListSettings(parentListId));
30785          }
30786          moveBlocksToPosition(followingListItems, parentListId, nestedListId);
30787        }
30788        moveBlocksToPosition(clientIds, parentListId, getBlockRootClientId(parentListItemId), getBlockIndex(parentListItemId) + 1);
30789        if (!getBlockOrder(parentListId).length) {
30790          const shouldSelectParent = false;
30791          removeBlock(parentListId, shouldSelectParent);
30792        }
30793      });
30794      return true;
30795    }, []);
30796  }
30797  
30798  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-enter.js
30799  /**
30800   * WordPress dependencies
30801   */
30802  
30803  
30804  
30805  
30806  
30807  
30808  
30809  /**
30810   * Internal dependencies
30811   */
30812  
30813  function use_enter_useEnter(props) {
30814    const {
30815      replaceBlocks,
30816      selectionChange
30817    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30818    const {
30819      getBlock,
30820      getBlockRootClientId,
30821      getBlockIndex,
30822      getBlockName
30823    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30824    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
30825    propsRef.current = props;
30826    const outdentListItem = useOutdentListItem();
30827    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
30828      function onKeyDown(event) {
30829        if (event.defaultPrevented || event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
30830          return;
30831        }
30832        const {
30833          content,
30834          clientId
30835        } = propsRef.current;
30836        if (content.length) {
30837          return;
30838        }
30839        event.preventDefault();
30840        const canOutdent = getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item';
30841        if (canOutdent) {
30842          outdentListItem();
30843          return;
30844        }
30845        // Here we are in top level list so we need to split.
30846        const topParentListBlock = getBlock(getBlockRootClientId(clientId));
30847        const blockIndex = getBlockIndex(clientId);
30848        const head = (0,external_wp_blocks_namespaceObject.cloneBlock)({
30849          ...topParentListBlock,
30850          innerBlocks: topParentListBlock.innerBlocks.slice(0, blockIndex)
30851        });
30852        const middle = (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)());
30853        // Last list item might contain a `list` block innerBlock
30854        // In that case append remaining innerBlocks blocks.
30855        const after = [...(topParentListBlock.innerBlocks[blockIndex].innerBlocks[0]?.innerBlocks || []), ...topParentListBlock.innerBlocks.slice(blockIndex + 1)];
30856        const tail = after.length ? [(0,external_wp_blocks_namespaceObject.cloneBlock)({
30857          ...topParentListBlock,
30858          innerBlocks: after
30859        })] : [];
30860        replaceBlocks(topParentListBlock.clientId, [head, middle, ...tail], 1);
30861        // We manually change the selection here because we are replacing
30862        // a different block than the selected one.
30863        selectionChange(middle.clientId);
30864      }
30865      element.addEventListener('keydown', onKeyDown);
30866      return () => {
30867        element.removeEventListener('keydown', onKeyDown);
30868      };
30869    }, []);
30870  }
30871  
30872  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-space.js
30873  /**
30874   * WordPress dependencies
30875   */
30876  
30877  
30878  
30879  
30880  
30881  /**
30882   * Internal dependencies
30883   */
30884  
30885  
30886  function useSpace(clientId) {
30887    const {
30888      getSelectionStart,
30889      getSelectionEnd,
30890      getBlockIndex
30891    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30892    const indentListItem = useIndentListItem(clientId);
30893    const outdentListItem = useOutdentListItem();
30894    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
30895      function onKeyDown(event) {
30896        const {
30897          keyCode,
30898          shiftKey,
30899          altKey,
30900          metaKey,
30901          ctrlKey
30902        } = event;
30903        if (event.defaultPrevented || keyCode !== external_wp_keycodes_namespaceObject.SPACE && keyCode !== external_wp_keycodes_namespaceObject.TAB ||
30904        // Only override when no modifiers are pressed.
30905        altKey || metaKey || ctrlKey) {
30906          return;
30907        }
30908        const selectionStart = getSelectionStart();
30909        const selectionEnd = getSelectionEnd();
30910        if (selectionStart.offset === 0 && selectionEnd.offset === 0) {
30911          if (shiftKey) {
30912            // Note that backspace behaviour in defined in onMerge.
30913            if (keyCode === external_wp_keycodes_namespaceObject.TAB) {
30914              if (outdentListItem()) {
30915                event.preventDefault();
30916              }
30917            }
30918          } else if (getBlockIndex(clientId) !== 0) {
30919            if (indentListItem()) {
30920              event.preventDefault();
30921            }
30922          }
30923        }
30924      }
30925      element.addEventListener('keydown', onKeyDown);
30926      return () => {
30927        element.removeEventListener('keydown', onKeyDown);
30928      };
30929    }, [clientId, indentListItem]);
30930  }
30931  
30932  ;// ./node_modules/@wordpress/block-library/build-module/list-item/hooks/use-merge.js
30933  /**
30934   * WordPress dependencies
30935   */
30936  
30937  
30938  
30939  /**
30940   * Internal dependencies
30941   */
30942  
30943  function useMerge(clientId, onMerge) {
30944    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
30945    const {
30946      getPreviousBlockClientId,
30947      getNextBlockClientId,
30948      getBlockOrder,
30949      getBlockRootClientId,
30950      getBlockName
30951    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
30952    const {
30953      mergeBlocks,
30954      moveBlocksToPosition
30955    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
30956    const outdentListItem = useOutdentListItem();
30957    function getTrailingId(id) {
30958      const order = getBlockOrder(id);
30959      if (!order.length) {
30960        return id;
30961      }
30962      return getTrailingId(order[order.length - 1]);
30963    }
30964    function getParentListItemId(id) {
30965      const listId = getBlockRootClientId(id);
30966      const parentListItemId = getBlockRootClientId(listId);
30967      if (!parentListItemId) {
30968        return;
30969      }
30970      if (getBlockName(parentListItemId) !== 'core/list-item') {
30971        return;
30972      }
30973      return parentListItemId;
30974    }
30975  
30976    /**
30977     * Return the next list item with respect to the given list item. If none,
30978     * return the next list item of the parent list item if it exists.
30979     *
30980     * @param {string} id A list item client ID.
30981     * @return {?string} The client ID of the next list item.
30982     */
30983    function _getNextId(id) {
30984      const next = getNextBlockClientId(id);
30985      if (next) {
30986        return next;
30987      }
30988      const parentListItemId = getParentListItemId(id);
30989      if (!parentListItemId) {
30990        return;
30991      }
30992      return _getNextId(parentListItemId);
30993    }
30994  
30995    /**
30996     * Given a client ID, return the client ID of the list item on the next
30997     * line, regardless of indentation level.
30998     *
30999     * @param {string} id The client ID of the current list item.
31000     * @return {?string} The client ID of the next list item.
31001     */
31002    function getNextId(id) {
31003      const order = getBlockOrder(id);
31004  
31005      // If the list item does not have a nested list, return the next list
31006      // item.
31007      if (!order.length) {
31008        return _getNextId(id);
31009      }
31010  
31011      // Get the first list item in the nested list.
31012      return getBlockOrder(order[0])[0];
31013    }
31014    return forward => {
31015      function mergeWithNested(clientIdA, clientIdB) {
31016        registry.batch(() => {
31017          // When merging a sub list item with a higher next list item, we
31018          // also need to move any nested list items. Check if there's a
31019          // listed list, and append its nested list items to the current
31020          // list.
31021          const [nestedListClientId] = getBlockOrder(clientIdB);
31022          if (nestedListClientId) {
31023            // If we are merging with the previous list item, and the
31024            // previous list item does not have nested list, move the
31025            // nested list to the previous list item.
31026            if (getPreviousBlockClientId(clientIdB) === clientIdA && !getBlockOrder(clientIdA).length) {
31027              moveBlocksToPosition([nestedListClientId], clientIdB, clientIdA);
31028            } else {
31029              moveBlocksToPosition(getBlockOrder(nestedListClientId), nestedListClientId, getBlockRootClientId(clientIdA));
31030            }
31031          }
31032          mergeBlocks(clientIdA, clientIdB);
31033        });
31034      }
31035      if (forward) {
31036        const nextBlockClientId = getNextId(clientId);
31037        if (!nextBlockClientId) {
31038          onMerge(forward);
31039          return;
31040        }
31041        if (getParentListItemId(nextBlockClientId)) {
31042          outdentListItem(nextBlockClientId);
31043        } else {
31044          mergeWithNested(clientId, nextBlockClientId);
31045        }
31046      } else {
31047        // Merging is only done from the top level. For lowel levels, the
31048        // list item is outdented instead.
31049        const previousBlockClientId = getPreviousBlockClientId(clientId);
31050        if (getParentListItemId(clientId)) {
31051          outdentListItem(clientId);
31052        } else if (previousBlockClientId) {
31053          const trailingId = getTrailingId(previousBlockClientId);
31054          mergeWithNested(trailingId, clientId);
31055        } else {
31056          onMerge(forward);
31057        }
31058      }
31059    };
31060  }
31061  
31062  ;// ./node_modules/@wordpress/block-library/build-module/list-item/edit.js
31063  /**
31064   * WordPress dependencies
31065   */
31066  
31067  
31068  
31069  
31070  
31071  
31072  
31073  /**
31074   * Internal dependencies
31075   */
31076  
31077  
31078  function edit_IndentUI({
31079    clientId
31080  }) {
31081    const indentListItem = useIndentListItem(clientId);
31082    const outdentListItem = useOutdentListItem();
31083    const {
31084      canIndent,
31085      canOutdent
31086    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
31087      const {
31088        getBlockIndex,
31089        getBlockRootClientId,
31090        getBlockName
31091      } = select(external_wp_blockEditor_namespaceObject.store);
31092      return {
31093        canIndent: getBlockIndex(clientId) > 0,
31094        canOutdent: getBlockName(getBlockRootClientId(getBlockRootClientId(clientId))) === 'core/list-item'
31095      };
31096    }, [clientId]);
31097    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
31098      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
31099        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_outdent_rtl : format_outdent,
31100        title: (0,external_wp_i18n_namespaceObject.__)('Outdent'),
31101        description: (0,external_wp_i18n_namespaceObject.__)('Outdent list item'),
31102        disabled: !canOutdent,
31103        onClick: () => outdentListItem()
31104      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
31105        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? format_indent_rtl : format_indent,
31106        title: (0,external_wp_i18n_namespaceObject.__)('Indent'),
31107        description: (0,external_wp_i18n_namespaceObject.__)('Indent list item'),
31108        disabled: !canIndent,
31109        onClick: () => indentListItem()
31110      })]
31111    });
31112  }
31113  function ListItemEdit({
31114    attributes,
31115    setAttributes,
31116    clientId,
31117    mergeBlocks
31118  }) {
31119    const {
31120      placeholder,
31121      content
31122    } = attributes;
31123    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
31124    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
31125      renderAppender: false,
31126      __unstableDisableDropZone: true
31127    });
31128    const useEnterRef = use_enter_useEnter({
31129      content,
31130      clientId
31131    });
31132    const useSpaceRef = useSpace(clientId);
31133    const onMerge = useMerge(clientId, mergeBlocks);
31134    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
31135      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
31136        ...innerBlocksProps,
31137        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
31138          ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([useEnterRef, useSpaceRef]),
31139          identifier: "content",
31140          tagName: "div",
31141          onChange: nextContent => setAttributes({
31142            content: nextContent
31143          }),
31144          value: content,
31145          "aria-label": (0,external_wp_i18n_namespaceObject.__)('List text'),
31146          placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('List'),
31147          onMerge: onMerge
31148        }), innerBlocksProps.children]
31149      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
31150        group: "block",
31151        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_IndentUI, {
31152          clientId: clientId
31153        })
31154      })]
31155    });
31156  }
31157  
31158  ;// ./node_modules/@wordpress/block-library/build-module/list-item/save.js
31159  /**
31160   * WordPress dependencies
31161   */
31162  
31163  
31164  function list_item_save_save({
31165    attributes
31166  }) {
31167    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
31168      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
31169      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
31170        value: attributes.content
31171      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})]
31172    });
31173  }
31174  
31175  ;// ./node_modules/@wordpress/block-library/build-module/list-item/transforms.js
31176  /**
31177   * WordPress dependencies
31178   */
31179  
31180  const list_item_transforms_transforms = {
31181    to: [{
31182      type: 'block',
31183      blocks: ['core/paragraph'],
31184      transform: (attributes, innerBlocks = []) => [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes), ...innerBlocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block))]
31185    }]
31186  };
31187  /* harmony default export */ const list_item_transforms = (list_item_transforms_transforms);
31188  
31189  ;// ./node_modules/@wordpress/block-library/build-module/list-item/index.js
31190  /**
31191   * WordPress dependencies
31192   */
31193  
31194  
31195  
31196  /**
31197   * Internal dependencies
31198   */
31199  
31200  const list_item_metadata = {
31201    $schema: "https://schemas.wp.org/trunk/block.json",
31202    apiVersion: 3,
31203    name: "core/list-item",
31204    title: "List Item",
31205    category: "text",
31206    parent: ["core/list"],
31207    allowedBlocks: ["core/list"],
31208    description: "An individual item within a list.",
31209    textdomain: "default",
31210    attributes: {
31211      placeholder: {
31212        type: "string"
31213      },
31214      content: {
31215        type: "rich-text",
31216        source: "rich-text",
31217        selector: "li",
31218        role: "content"
31219      }
31220    },
31221    supports: {
31222      anchor: true,
31223      className: false,
31224      splitting: true,
31225      __experimentalBorder: {
31226        color: true,
31227        radius: true,
31228        style: true,
31229        width: true
31230      },
31231      color: {
31232        gradients: true,
31233        link: true,
31234        background: true,
31235        __experimentalDefaultControls: {
31236          text: true
31237        }
31238      },
31239      spacing: {
31240        margin: true,
31241        padding: true,
31242        __experimentalDefaultControls: {
31243          margin: false,
31244          padding: false
31245        }
31246      },
31247      typography: {
31248        fontSize: true,
31249        lineHeight: true,
31250        __experimentalFontFamily: true,
31251        __experimentalFontWeight: true,
31252        __experimentalFontStyle: true,
31253        __experimentalTextTransform: true,
31254        __experimentalTextDecoration: true,
31255        __experimentalLetterSpacing: true,
31256        __experimentalDefaultControls: {
31257          fontSize: true
31258        }
31259      },
31260      interactivity: {
31261        clientNavigation: true
31262      }
31263    },
31264    selectors: {
31265      root: ".wp-block-list > li",
31266      border: ".wp-block-list:not(.wp-block-list .wp-block-list) > li"
31267    }
31268  };
31269  
31270  
31271  
31272  
31273  const {
31274    name: list_item_name
31275  } = list_item_metadata;
31276  
31277  const list_item_settings = {
31278    icon: list_item,
31279    edit: ListItemEdit,
31280    save: list_item_save_save,
31281    merge(attributes, attributesToMerge) {
31282      return {
31283        ...attributes,
31284        content: attributes.content + attributesToMerge.content
31285      };
31286    },
31287    transforms: list_item_transforms,
31288    [unlock(external_wp_blockEditor_namespaceObject.privateApis).requiresWrapperOnCopy]: true
31289  };
31290  const list_item_init = () => initBlock({
31291    name: list_item_name,
31292    metadata: list_item_metadata,
31293    settings: list_item_settings
31294  });
31295  
31296  ;// ./node_modules/@wordpress/icons/build-module/library/login.js
31297  /**
31298   * WordPress dependencies
31299   */
31300  
31301  
31302  const login = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
31303    xmlns: "http://www.w3.org/2000/svg",
31304    viewBox: "0 0 24 24",
31305    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31306      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"
31307    })
31308  });
31309  /* harmony default export */ const library_login = (login);
31310  
31311  ;// ./node_modules/@wordpress/block-library/build-module/loginout/edit.js
31312  /**
31313   * WordPress dependencies
31314   */
31315  
31316  
31317  
31318  /**
31319   * Internal dependencies
31320   */
31321  
31322  
31323  function LoginOutEdit({
31324    attributes,
31325    setAttributes
31326  }) {
31327    const {
31328      displayLoginAsForm,
31329      redirectToCurrent
31330    } = attributes;
31331    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
31332    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
31333      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
31334        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
31335          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
31336          resetAll: () => {
31337            setAttributes({
31338              displayLoginAsForm: false,
31339              redirectToCurrent: true
31340            });
31341          },
31342          dropdownMenuProps: dropdownMenuProps,
31343          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
31344            label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
31345            isShownByDefault: true,
31346            hasValue: () => displayLoginAsForm,
31347            onDeselect: () => setAttributes({
31348              displayLoginAsForm: false
31349            }),
31350            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
31351              __nextHasNoMarginBottom: true,
31352              label: (0,external_wp_i18n_namespaceObject.__)('Display login as form'),
31353              checked: displayLoginAsForm,
31354              onChange: () => setAttributes({
31355                displayLoginAsForm: !displayLoginAsForm
31356              })
31357            })
31358          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
31359            label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
31360            isShownByDefault: true,
31361            hasValue: () => !redirectToCurrent,
31362            onDeselect: () => setAttributes({
31363              redirectToCurrent: true
31364            }),
31365            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
31366              __nextHasNoMarginBottom: true,
31367              label: (0,external_wp_i18n_namespaceObject.__)('Redirect to current URL'),
31368              checked: redirectToCurrent,
31369              onChange: () => setAttributes({
31370                redirectToCurrent: !redirectToCurrent
31371              })
31372            })
31373          })]
31374        })
31375      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31376        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
31377          className: 'logged-in'
31378        }),
31379        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31380          href: "#login-pseudo-link",
31381          children: (0,external_wp_i18n_namespaceObject.__)('Log out')
31382        })
31383      })]
31384    });
31385  }
31386  
31387  ;// ./node_modules/@wordpress/block-library/build-module/loginout/index.js
31388  /**
31389   * WordPress dependencies
31390   */
31391  
31392  
31393  /**
31394   * Internal dependencies
31395   */
31396  
31397  
31398  const loginout_metadata = {
31399    $schema: "https://schemas.wp.org/trunk/block.json",
31400    apiVersion: 3,
31401    name: "core/loginout",
31402    title: "Login/out",
31403    category: "theme",
31404    description: "Show login & logout links.",
31405    keywords: ["login", "logout", "form"],
31406    textdomain: "default",
31407    attributes: {
31408      displayLoginAsForm: {
31409        type: "boolean",
31410        "default": false
31411      },
31412      redirectToCurrent: {
31413        type: "boolean",
31414        "default": true
31415      }
31416    },
31417    example: {
31418      viewportWidth: 350
31419    },
31420    supports: {
31421      className: true,
31422      color: {
31423        background: true,
31424        text: false,
31425        gradients: true,
31426        link: true
31427      },
31428      spacing: {
31429        margin: true,
31430        padding: true,
31431        __experimentalDefaultControls: {
31432          margin: false,
31433          padding: false
31434        }
31435      },
31436      typography: {
31437        fontSize: true,
31438        lineHeight: true,
31439        __experimentalFontFamily: true,
31440        __experimentalFontWeight: true,
31441        __experimentalFontStyle: true,
31442        __experimentalTextTransform: true,
31443        __experimentalTextDecoration: true,
31444        __experimentalLetterSpacing: true,
31445        __experimentalDefaultControls: {
31446          fontSize: true
31447        }
31448      },
31449      __experimentalBorder: {
31450        radius: true,
31451        color: true,
31452        width: true,
31453        style: true
31454      },
31455      interactivity: {
31456        clientNavigation: true
31457      }
31458    },
31459    style: "wp-block-loginout"
31460  };
31461  const {
31462    name: loginout_name
31463  } = loginout_metadata;
31464  
31465  const loginout_settings = {
31466    icon: library_login,
31467    edit: LoginOutEdit
31468  };
31469  const loginout_init = () => initBlock({
31470    name: loginout_name,
31471    metadata: loginout_metadata,
31472    settings: loginout_settings
31473  });
31474  
31475  ;// ./node_modules/@wordpress/icons/build-module/library/media-and-text.js
31476  /**
31477   * WordPress dependencies
31478   */
31479  
31480  
31481  const mediaAndText = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
31482    xmlns: "http://www.w3.org/2000/svg",
31483    viewBox: "0 0 24 24",
31484    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
31485      d: "M3 6v11.5h8V6H3Zm11 3h7V7.5h-7V9Zm7 3.5h-7V11h7v1.5ZM14 16h7v-1.5h-7V16Z"
31486    })
31487  });
31488  /* harmony default export */ const media_and_text = (mediaAndText);
31489  
31490  ;// ./node_modules/@wordpress/block-library/build-module/media-text/constants.js
31491  /**
31492   * WordPress dependencies
31493   */
31494  
31495  const constants_DEFAULT_MEDIA_SIZE_SLUG = 'full';
31496  const WIDTH_CONSTRAINT_PERCENTAGE = 15;
31497  const media_text_constants_LINK_DESTINATION_MEDIA = 'media';
31498  const media_text_constants_LINK_DESTINATION_ATTACHMENT = 'attachment';
31499  const constants_TEMPLATE = [['core/paragraph', {
31500    placeholder: (0,external_wp_i18n_namespaceObject._x)('Content…', 'content placeholder')
31501  }]];
31502  
31503  ;// ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js
31504  /**
31505   * External dependencies
31506   */
31507  
31508  
31509  /**
31510   * WordPress dependencies
31511   */
31512  
31513  
31514  
31515  /**
31516   * Internal dependencies
31517   */
31518  
31519  
31520  const v1ToV5ImageFillStyles = (url, focalPoint) => {
31521    return url ? {
31522      backgroundImage: `url($url})`,
31523      backgroundPosition: focalPoint ? `$focalPoint.x * 100}% $focalPoint.y * 100}%` : `50% 50%`
31524    } : {};
31525  };
31526  const v6ToV7ImageFillStyles = (url, focalPoint) => {
31527    return url ? {
31528      backgroundImage: `url($url})`,
31529      backgroundPosition: focalPoint ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : `50% 50%`
31530    } : {};
31531  };
31532  const DEFAULT_MEDIA_WIDTH = 50;
31533  const noop = () => {};
31534  const media_text_deprecated_migrateCustomColors = attributes => {
31535    if (!attributes.customBackgroundColor) {
31536      return attributes;
31537    }
31538    const style = {
31539      color: {
31540        background: attributes.customBackgroundColor
31541      }
31542    };
31543    const {
31544      customBackgroundColor,
31545      ...restAttributes
31546    } = attributes;
31547    return {
31548      ...restAttributes,
31549      style
31550    };
31551  };
31552  
31553  // After align attribute's default was updated this function explicitly sets
31554  // the align value for deprecated blocks to the `wide` value which was default
31555  // for their versions of this block.
31556  const migrateDefaultAlign = attributes => {
31557    if (attributes.align) {
31558      return attributes;
31559    }
31560    return {
31561      ...attributes,
31562      align: 'wide'
31563    };
31564  };
31565  const v0Attributes = {
31566    align: {
31567      type: 'string',
31568      default: 'wide'
31569    },
31570    mediaAlt: {
31571      type: 'string',
31572      source: 'attribute',
31573      selector: 'figure img',
31574      attribute: 'alt',
31575      default: ''
31576    },
31577    mediaPosition: {
31578      type: 'string',
31579      default: 'left'
31580    },
31581    mediaId: {
31582      type: 'number'
31583    },
31584    mediaType: {
31585      type: 'string'
31586    },
31587    mediaWidth: {
31588      type: 'number',
31589      default: 50
31590    },
31591    isStackedOnMobile: {
31592      type: 'boolean',
31593      default: false
31594    }
31595  };
31596  const v4ToV5BlockAttributes = {
31597    ...v0Attributes,
31598    isStackedOnMobile: {
31599      type: 'boolean',
31600      default: true
31601    },
31602    mediaUrl: {
31603      type: 'string',
31604      source: 'attribute',
31605      selector: 'figure video,figure img',
31606      attribute: 'src'
31607    },
31608    mediaLink: {
31609      type: 'string'
31610    },
31611    linkDestination: {
31612      type: 'string'
31613    },
31614    linkTarget: {
31615      type: 'string',
31616      source: 'attribute',
31617      selector: 'figure a',
31618      attribute: 'target'
31619    },
31620    href: {
31621      type: 'string',
31622      source: 'attribute',
31623      selector: 'figure a',
31624      attribute: 'href'
31625    },
31626    rel: {
31627      type: 'string',
31628      source: 'attribute',
31629      selector: 'figure a',
31630      attribute: 'rel'
31631    },
31632    linkClass: {
31633      type: 'string',
31634      source: 'attribute',
31635      selector: 'figure a',
31636      attribute: 'class'
31637    },
31638    mediaSizeSlug: {
31639      type: 'string'
31640    },
31641    verticalAlignment: {
31642      type: 'string'
31643    },
31644    imageFill: {
31645      type: 'boolean'
31646    },
31647    focalPoint: {
31648      type: 'object'
31649    }
31650  };
31651  const v6Attributes = {
31652    ...v4ToV5BlockAttributes,
31653    mediaAlt: {
31654      type: 'string',
31655      source: 'attribute',
31656      selector: 'figure img',
31657      attribute: 'alt',
31658      default: '',
31659      role: 'content'
31660    },
31661    mediaId: {
31662      type: 'number',
31663      role: 'content'
31664    },
31665    mediaUrl: {
31666      type: 'string',
31667      source: 'attribute',
31668      selector: 'figure video,figure img',
31669      attribute: 'src',
31670      role: 'content'
31671    },
31672    href: {
31673      type: 'string',
31674      source: 'attribute',
31675      selector: 'figure a',
31676      attribute: 'href',
31677      role: 'content'
31678    },
31679    mediaType: {
31680      type: 'string',
31681      role: 'content'
31682    }
31683  };
31684  const v7Attributes = {
31685    ...v6Attributes,
31686    align: {
31687      type: 'string',
31688      // v7 changed the default for the `align` attribute.
31689      default: 'none'
31690    },
31691    // New attribute.
31692    useFeaturedImage: {
31693      type: 'boolean',
31694      default: false
31695    }
31696  };
31697  const v4ToV5Supports = {
31698    anchor: true,
31699    align: ['wide', 'full'],
31700    html: false,
31701    color: {
31702      gradients: true,
31703      link: true
31704    }
31705  };
31706  const v6Supports = {
31707    ...v4ToV5Supports,
31708    color: {
31709      gradients: true,
31710      link: true,
31711      __experimentalDefaultControls: {
31712        background: true,
31713        text: true
31714      }
31715    },
31716    spacing: {
31717      margin: true,
31718      padding: true
31719    },
31720    typography: {
31721      fontSize: true,
31722      lineHeight: true,
31723      __experimentalFontFamily: true,
31724      __experimentalFontWeight: true,
31725      __experimentalFontStyle: true,
31726      __experimentalTextTransform: true,
31727      __experimentalTextDecoration: true,
31728      __experimentalLetterSpacing: true,
31729      __experimentalDefaultControls: {
31730        fontSize: true
31731      }
31732    }
31733  };
31734  const v7Supports = {
31735    ...v6Supports,
31736    __experimentalBorder: {
31737      color: true,
31738      radius: true,
31739      style: true,
31740      width: true,
31741      __experimentalDefaultControls: {
31742        color: true,
31743        radius: true,
31744        style: true,
31745        width: true
31746      }
31747    },
31748    color: {
31749      gradients: true,
31750      heading: true,
31751      link: true,
31752      __experimentalDefaultControls: {
31753        background: true,
31754        text: true
31755      }
31756    },
31757    interactivity: {
31758      clientNavigation: true
31759    }
31760  };
31761  
31762  // Version with 'none' as the default alignment.
31763  // See: https://github.com/WordPress/gutenberg/pull/64981
31764  const media_text_deprecated_v7 = {
31765    attributes: v7Attributes,
31766    supports: v7Supports,
31767    usesContext: ['postId', 'postType'],
31768    save({
31769      attributes
31770    }) {
31771      const {
31772        isStackedOnMobile,
31773        mediaAlt,
31774        mediaPosition,
31775        mediaType,
31776        mediaUrl,
31777        mediaWidth,
31778        mediaId,
31779        verticalAlignment,
31780        imageFill,
31781        focalPoint,
31782        linkClass,
31783        href,
31784        linkTarget,
31785        rel
31786      } = attributes;
31787      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
31788      const newRel = !rel ? undefined : rel;
31789      const imageClasses = dist_clsx({
31790        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
31791        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
31792      });
31793      let image = mediaUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31794        src: mediaUrl,
31795        alt: mediaAlt,
31796        className: imageClasses || null
31797      }) : null;
31798      if (href) {
31799        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31800          className: linkClass,
31801          href: href,
31802          target: linkTarget,
31803          rel: newRel,
31804          children: image
31805        });
31806      }
31807      const mediaTypeRenders = {
31808        image: () => image,
31809        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31810          controls: true,
31811          src: mediaUrl
31812        })
31813      };
31814      const className = dist_clsx({
31815        'has-media-on-the-right': 'right' === mediaPosition,
31816        'is-stacked-on-mobile': isStackedOnMobile,
31817        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31818        'is-image-fill': imageFill
31819      });
31820      const backgroundStyles = imageFill ? v6ToV7ImageFillStyles(mediaUrl, focalPoint) : {};
31821      let gridTemplateColumns;
31822      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31823        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31824      }
31825      const style = {
31826        gridTemplateColumns
31827      };
31828      if ('right' === mediaPosition) {
31829        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31830          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31831            className,
31832            style
31833          }),
31834          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31835            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31836              className: 'wp-block-media-text__content'
31837            })
31838          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31839            className: "wp-block-media-text__media",
31840            style: backgroundStyles,
31841            children: (mediaTypeRenders[mediaType] || noop)()
31842          })]
31843        });
31844      }
31845      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31846        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31847          className,
31848          style
31849        }),
31850        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31851          className: "wp-block-media-text__media",
31852          style: backgroundStyles,
31853          children: (mediaTypeRenders[mediaType] || noop)()
31854        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31855          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31856            className: 'wp-block-media-text__content'
31857          })
31858        })]
31859      });
31860    }
31861  };
31862  
31863  // Version with wide as the default alignment.
31864  // See: https://github.com/WordPress/gutenberg/pull/48404
31865  const media_text_deprecated_v6 = {
31866    attributes: v6Attributes,
31867    supports: v6Supports,
31868    save({
31869      attributes
31870    }) {
31871      const {
31872        isStackedOnMobile,
31873        mediaAlt,
31874        mediaPosition,
31875        mediaType,
31876        mediaUrl,
31877        mediaWidth,
31878        mediaId,
31879        verticalAlignment,
31880        imageFill,
31881        focalPoint,
31882        linkClass,
31883        href,
31884        linkTarget,
31885        rel
31886      } = attributes;
31887      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
31888      const newRel = !rel ? undefined : rel;
31889      const imageClasses = dist_clsx({
31890        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
31891        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
31892      });
31893      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
31894        src: mediaUrl,
31895        alt: mediaAlt,
31896        className: imageClasses || null
31897      });
31898      if (href) {
31899        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
31900          className: linkClass,
31901          href: href,
31902          target: linkTarget,
31903          rel: newRel,
31904          children: image
31905        });
31906      }
31907      const mediaTypeRenders = {
31908        image: () => image,
31909        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
31910          controls: true,
31911          src: mediaUrl
31912        })
31913      };
31914      const className = dist_clsx({
31915        'has-media-on-the-right': 'right' === mediaPosition,
31916        'is-stacked-on-mobile': isStackedOnMobile,
31917        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
31918        'is-image-fill': imageFill
31919      });
31920      const backgroundStyles = imageFill ? v6ToV7ImageFillStyles(mediaUrl, focalPoint) : {};
31921      let gridTemplateColumns;
31922      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
31923        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
31924      }
31925      const style = {
31926        gridTemplateColumns
31927      };
31928      if ('right' === mediaPosition) {
31929        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31930          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31931            className,
31932            style
31933          }),
31934          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31935            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31936              className: 'wp-block-media-text__content'
31937            })
31938          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31939            className: "wp-block-media-text__media",
31940            style: backgroundStyles,
31941            children: (mediaTypeRenders[mediaType] || noop)()
31942          })]
31943        });
31944      }
31945      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
31946        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
31947          className,
31948          style
31949        }),
31950        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
31951          className: "wp-block-media-text__media",
31952          style: backgroundStyles,
31953          children: (mediaTypeRenders[mediaType] || noop)()
31954        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
31955          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
31956            className: 'wp-block-media-text__content'
31957          })
31958        })]
31959      });
31960    },
31961    migrate: migrateDefaultAlign,
31962    isEligible(attributes, innerBlocks, {
31963      block
31964    }) {
31965      const {
31966        attributes: finalizedAttributes
31967      } = block;
31968      // When the align attribute defaults to none, valid block markup should
31969      // not contain any alignment CSS class. Unfortunately, this
31970      // deprecation's version of the block won't be invalidated due to the
31971      // alignwide class still being in the markup. That is because the custom
31972      // CSS classname support picks it up and adds it to the className
31973      // attribute. At the time of parsing, the className attribute won't
31974      // contain the alignwide class, hence the need to check the finalized
31975      // block attributes.
31976      return attributes.align === undefined && !!finalizedAttributes.className?.includes('alignwide');
31977    }
31978  };
31979  
31980  // Version with non-rounded background position attribute for focal point.
31981  // See: https://github.com/WordPress/gutenberg/pull/33915
31982  const media_text_deprecated_v5 = {
31983    attributes: v4ToV5BlockAttributes,
31984    supports: v4ToV5Supports,
31985    save({
31986      attributes
31987    }) {
31988      const {
31989        isStackedOnMobile,
31990        mediaAlt,
31991        mediaPosition,
31992        mediaType,
31993        mediaUrl,
31994        mediaWidth,
31995        mediaId,
31996        verticalAlignment,
31997        imageFill,
31998        focalPoint,
31999        linkClass,
32000        href,
32001        linkTarget,
32002        rel
32003      } = attributes;
32004      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
32005      const newRel = !rel ? undefined : rel;
32006      const imageClasses = dist_clsx({
32007        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
32008        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
32009      });
32010      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32011        src: mediaUrl,
32012        alt: mediaAlt,
32013        className: imageClasses || null
32014      });
32015      if (href) {
32016        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32017          className: linkClass,
32018          href: href,
32019          target: linkTarget,
32020          rel: newRel,
32021          children: image
32022        });
32023      }
32024      const mediaTypeRenders = {
32025        image: () => image,
32026        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32027          controls: true,
32028          src: mediaUrl
32029        })
32030      };
32031      const className = dist_clsx({
32032        'has-media-on-the-right': 'right' === mediaPosition,
32033        'is-stacked-on-mobile': isStackedOnMobile,
32034        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32035        'is-image-fill': imageFill
32036      });
32037      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32038      let gridTemplateColumns;
32039      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32040        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32041      }
32042      const style = {
32043        gridTemplateColumns
32044      };
32045      if ('right' === mediaPosition) {
32046        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32047          ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32048            className,
32049            style
32050          }),
32051          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32052            ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32053              className: 'wp-block-media-text__content'
32054            })
32055          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32056            className: "wp-block-media-text__media",
32057            style: backgroundStyles,
32058            children: (mediaTypeRenders[mediaType] || noop)()
32059          })]
32060        });
32061      }
32062      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32063        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32064          className,
32065          style
32066        }),
32067        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32068          className: "wp-block-media-text__media",
32069          style: backgroundStyles,
32070          children: (mediaTypeRenders[mediaType] || noop)()
32071        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32072          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32073            className: 'wp-block-media-text__content'
32074          })
32075        })]
32076      });
32077    },
32078    migrate: migrateDefaultAlign
32079  };
32080  
32081  // Version with CSS grid
32082  // See: https://github.com/WordPress/gutenberg/pull/40806
32083  const media_text_deprecated_v4 = {
32084    attributes: v4ToV5BlockAttributes,
32085    supports: v4ToV5Supports,
32086    save({
32087      attributes
32088    }) {
32089      const {
32090        isStackedOnMobile,
32091        mediaAlt,
32092        mediaPosition,
32093        mediaType,
32094        mediaUrl,
32095        mediaWidth,
32096        mediaId,
32097        verticalAlignment,
32098        imageFill,
32099        focalPoint,
32100        linkClass,
32101        href,
32102        linkTarget,
32103        rel
32104      } = attributes;
32105      const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
32106      const newRel = !rel ? undefined : rel;
32107      const imageClasses = dist_clsx({
32108        [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
32109        [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
32110      });
32111      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32112        src: mediaUrl,
32113        alt: mediaAlt,
32114        className: imageClasses || null
32115      });
32116      if (href) {
32117        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32118          className: linkClass,
32119          href: href,
32120          target: linkTarget,
32121          rel: newRel,
32122          children: image
32123        });
32124      }
32125      const mediaTypeRenders = {
32126        image: () => image,
32127        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32128          controls: true,
32129          src: mediaUrl
32130        })
32131      };
32132      const className = dist_clsx({
32133        'has-media-on-the-right': 'right' === mediaPosition,
32134        'is-stacked-on-mobile': isStackedOnMobile,
32135        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32136        'is-image-fill': imageFill
32137      });
32138      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32139      let gridTemplateColumns;
32140      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32141        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32142      }
32143      const style = {
32144        gridTemplateColumns
32145      };
32146      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32147        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
32148          className,
32149          style
32150        }),
32151        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32152          className: "wp-block-media-text__media",
32153          style: backgroundStyles,
32154          children: (mediaTypeRenders[mediaType] || noop)()
32155        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32156          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
32157            className: 'wp-block-media-text__content'
32158          })
32159        })]
32160      });
32161    },
32162    migrate: migrateDefaultAlign
32163  };
32164  
32165  // Version with ad-hoc color attributes
32166  // See: https://github.com/WordPress/gutenberg/pull/21169
32167  const media_text_deprecated_v3 = {
32168    attributes: {
32169      ...v0Attributes,
32170      isStackedOnMobile: {
32171        type: 'boolean',
32172        default: true
32173      },
32174      backgroundColor: {
32175        type: 'string'
32176      },
32177      customBackgroundColor: {
32178        type: 'string'
32179      },
32180      mediaLink: {
32181        type: 'string'
32182      },
32183      linkDestination: {
32184        type: 'string'
32185      },
32186      linkTarget: {
32187        type: 'string',
32188        source: 'attribute',
32189        selector: 'figure a',
32190        attribute: 'target'
32191      },
32192      href: {
32193        type: 'string',
32194        source: 'attribute',
32195        selector: 'figure a',
32196        attribute: 'href'
32197      },
32198      rel: {
32199        type: 'string',
32200        source: 'attribute',
32201        selector: 'figure a',
32202        attribute: 'rel'
32203      },
32204      linkClass: {
32205        type: 'string',
32206        source: 'attribute',
32207        selector: 'figure a',
32208        attribute: 'class'
32209      },
32210      verticalAlignment: {
32211        type: 'string'
32212      },
32213      imageFill: {
32214        type: 'boolean'
32215      },
32216      focalPoint: {
32217        type: 'object'
32218      }
32219    },
32220    migrate: (0,external_wp_compose_namespaceObject.compose)(media_text_deprecated_migrateCustomColors, migrateDefaultAlign),
32221    save({
32222      attributes
32223    }) {
32224      const {
32225        backgroundColor,
32226        customBackgroundColor,
32227        isStackedOnMobile,
32228        mediaAlt,
32229        mediaPosition,
32230        mediaType,
32231        mediaUrl,
32232        mediaWidth,
32233        mediaId,
32234        verticalAlignment,
32235        imageFill,
32236        focalPoint,
32237        linkClass,
32238        href,
32239        linkTarget,
32240        rel
32241      } = attributes;
32242      const newRel = !rel ? undefined : rel;
32243      let image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32244        src: mediaUrl,
32245        alt: mediaAlt,
32246        className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
32247      });
32248      if (href) {
32249        image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
32250          className: linkClass,
32251          href: href,
32252          target: linkTarget,
32253          rel: newRel,
32254          children: image
32255        });
32256      }
32257      const mediaTypeRenders = {
32258        image: () => image,
32259        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32260          controls: true,
32261          src: mediaUrl
32262        })
32263      };
32264      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
32265      const className = dist_clsx({
32266        'has-media-on-the-right': 'right' === mediaPosition,
32267        'has-background': backgroundClass || customBackgroundColor,
32268        [backgroundClass]: backgroundClass,
32269        'is-stacked-on-mobile': isStackedOnMobile,
32270        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32271        'is-image-fill': imageFill
32272      });
32273      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32274      let gridTemplateColumns;
32275      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32276        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32277      }
32278      const style = {
32279        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
32280        gridTemplateColumns
32281      };
32282      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32283        className: className,
32284        style: style,
32285        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32286          className: "wp-block-media-text__media",
32287          style: backgroundStyles,
32288          children: (mediaTypeRenders[mediaType] || noop)()
32289        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32290          className: "wp-block-media-text__content",
32291          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
32292        })]
32293      });
32294    }
32295  };
32296  
32297  // Version with stack on mobile off by default
32298  // See: https://github.com/WordPress/gutenberg/pull/14364
32299  const media_text_deprecated_v2 = {
32300    attributes: {
32301      ...v0Attributes,
32302      backgroundColor: {
32303        type: 'string'
32304      },
32305      customBackgroundColor: {
32306        type: 'string'
32307      },
32308      mediaUrl: {
32309        type: 'string',
32310        source: 'attribute',
32311        selector: 'figure video,figure img',
32312        attribute: 'src'
32313      },
32314      verticalAlignment: {
32315        type: 'string'
32316      },
32317      imageFill: {
32318        type: 'boolean'
32319      },
32320      focalPoint: {
32321        type: 'object'
32322      }
32323    },
32324    migrate: (0,external_wp_compose_namespaceObject.compose)(media_text_deprecated_migrateCustomColors, migrateDefaultAlign),
32325    save({
32326      attributes
32327    }) {
32328      const {
32329        backgroundColor,
32330        customBackgroundColor,
32331        isStackedOnMobile,
32332        mediaAlt,
32333        mediaPosition,
32334        mediaType,
32335        mediaUrl,
32336        mediaWidth,
32337        mediaId,
32338        verticalAlignment,
32339        imageFill,
32340        focalPoint
32341      } = attributes;
32342      const mediaTypeRenders = {
32343        image: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32344          src: mediaUrl,
32345          alt: mediaAlt,
32346          className: mediaId && mediaType === 'image' ? `wp-image-$mediaId}` : null
32347        }),
32348        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32349          controls: true,
32350          src: mediaUrl
32351        })
32352      };
32353      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
32354      const className = dist_clsx({
32355        'has-media-on-the-right': 'right' === mediaPosition,
32356        [backgroundClass]: backgroundClass,
32357        'is-stacked-on-mobile': isStackedOnMobile,
32358        [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32359        'is-image-fill': imageFill
32360      });
32361      const backgroundStyles = imageFill ? v1ToV5ImageFillStyles(mediaUrl, focalPoint) : {};
32362      let gridTemplateColumns;
32363      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32364        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32365      }
32366      const style = {
32367        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
32368        gridTemplateColumns
32369      };
32370      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32371        className: className,
32372        style: style,
32373        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32374          className: "wp-block-media-text__media",
32375          style: backgroundStyles,
32376          children: (mediaTypeRenders[mediaType] || noop)()
32377        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32378          className: "wp-block-media-text__content",
32379          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
32380        })]
32381      });
32382    }
32383  };
32384  
32385  // Version without the wp-image-#### class on image
32386  // See: https://github.com/WordPress/gutenberg/pull/11922
32387  const media_text_deprecated_v1 = {
32388    attributes: {
32389      ...v0Attributes,
32390      backgroundColor: {
32391        type: 'string'
32392      },
32393      customBackgroundColor: {
32394        type: 'string'
32395      },
32396      mediaUrl: {
32397        type: 'string',
32398        source: 'attribute',
32399        selector: 'figure video,figure img',
32400        attribute: 'src'
32401      }
32402    },
32403    migrate: migrateDefaultAlign,
32404    save({
32405      attributes
32406    }) {
32407      const {
32408        backgroundColor,
32409        customBackgroundColor,
32410        isStackedOnMobile,
32411        mediaAlt,
32412        mediaPosition,
32413        mediaType,
32414        mediaUrl,
32415        mediaWidth
32416      } = attributes;
32417      const mediaTypeRenders = {
32418        image: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32419          src: mediaUrl,
32420          alt: mediaAlt
32421        }),
32422        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32423          controls: true,
32424          src: mediaUrl
32425        })
32426      };
32427      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
32428      const className = dist_clsx({
32429        'has-media-on-the-right': 'right' === mediaPosition,
32430        [backgroundClass]: backgroundClass,
32431        'is-stacked-on-mobile': isStackedOnMobile
32432      });
32433      let gridTemplateColumns;
32434      if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {
32435        gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
32436      }
32437      const style = {
32438        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
32439        gridTemplateColumns
32440      };
32441      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
32442        className: className,
32443        style: style,
32444        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
32445          className: "wp-block-media-text__media",
32446          children: (mediaTypeRenders[mediaType] || noop)()
32447        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
32448          className: "wp-block-media-text__content",
32449          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
32450        })]
32451      });
32452    }
32453  };
32454  /* 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]);
32455  
32456  ;// ./node_modules/@wordpress/icons/build-module/library/pull-left.js
32457  /**
32458   * WordPress dependencies
32459   */
32460  
32461  
32462  const pullLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
32463    xmlns: "http://www.w3.org/2000/svg",
32464    viewBox: "0 0 24 24",
32465    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32466      d: "M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z"
32467    })
32468  });
32469  /* harmony default export */ const pull_left = (pullLeft);
32470  
32471  ;// ./node_modules/@wordpress/icons/build-module/library/pull-right.js
32472  /**
32473   * WordPress dependencies
32474   */
32475  
32476  
32477  const pullRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
32478    xmlns: "http://www.w3.org/2000/svg",
32479    viewBox: "0 0 24 24",
32480    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32481      d: "M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z"
32482    })
32483  });
32484  /* harmony default export */ const pull_right = (pullRight);
32485  
32486  ;// ./node_modules/@wordpress/icons/build-module/library/media.js
32487  /**
32488   * WordPress dependencies
32489   */
32490  
32491  
32492  const media = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
32493    xmlns: "http://www.w3.org/2000/svg",
32494    viewBox: "0 0 24 24",
32495    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32496      d: "m7 6.5 4 2.5-4 2.5z"
32497    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
32498      fillRule: "evenodd",
32499      clipRule: "evenodd",
32500      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"
32501    })]
32502  });
32503  /* harmony default export */ const library_media = (media);
32504  
32505  ;// ./node_modules/@wordpress/block-library/build-module/media-text/image-fill.js
32506  function imageFillStyles(url, focalPoint) {
32507    return url ? {
32508      objectPosition: focalPoint ? `$Math.round(focalPoint.x * 100)}% $Math.round(focalPoint.y * 100)}%` : `50% 50%`
32509    } : {};
32510  }
32511  
32512  ;// ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js
32513  /**
32514   * External dependencies
32515   */
32516  
32517  
32518  /**
32519   * WordPress dependencies
32520   */
32521  
32522  
32523  
32524  
32525  
32526  
32527  
32528  
32529  
32530  
32531  /**
32532   * Internal dependencies
32533   */
32534  
32535  
32536  /**
32537   * Constants
32538   */
32539  
32540  const media_container_ALLOWED_MEDIA_TYPES = ['image', 'video'];
32541  const media_container_noop = () => {};
32542  const ResizableBoxContainer = (0,external_wp_element_namespaceObject.forwardRef)(({
32543    isSelected,
32544    isStackedOnMobile,
32545    ...props
32546  }, ref) => {
32547    const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
32548    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
32549      ref: ref,
32550      showHandle: isSelected && (!isMobile || !isStackedOnMobile),
32551      ...props
32552    });
32553  });
32554  function ToolbarEditButton({
32555    mediaId,
32556    mediaUrl,
32557    onSelectMedia,
32558    toggleUseFeaturedImage,
32559    useFeaturedImage
32560  }) {
32561    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
32562      group: "other",
32563      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
32564        mediaId: mediaId,
32565        mediaURL: mediaUrl,
32566        allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
32567        accept: "image/*,video/*",
32568        onSelect: onSelectMedia,
32569        onToggleFeaturedImage: toggleUseFeaturedImage,
32570        useFeaturedImage: useFeaturedImage,
32571        onReset: () => onSelectMedia(undefined)
32572      })
32573    });
32574  }
32575  function PlaceholderContainer({
32576    className,
32577    mediaUrl,
32578    onSelectMedia,
32579    toggleUseFeaturedImage
32580  }) {
32581    const {
32582      createErrorNotice
32583    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
32584    const onUploadError = message => {
32585      createErrorNotice(message, {
32586        type: 'snackbar'
32587      });
32588    };
32589    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
32590      icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
32591        icon: library_media
32592      }),
32593      labels: {
32594        title: (0,external_wp_i18n_namespaceObject.__)('Media area')
32595      },
32596      className: className,
32597      onSelect: onSelectMedia,
32598      accept: "image/*,video/*",
32599      onToggleFeaturedImage: toggleUseFeaturedImage,
32600      allowedTypes: media_container_ALLOWED_MEDIA_TYPES,
32601      onError: onUploadError,
32602      disableMediaButtons: mediaUrl
32603    });
32604  }
32605  function MediaContainer(props, ref) {
32606    const {
32607      className,
32608      commitWidthChange,
32609      focalPoint,
32610      imageFill,
32611      isSelected,
32612      isStackedOnMobile,
32613      mediaAlt,
32614      mediaId,
32615      mediaPosition,
32616      mediaType,
32617      mediaUrl,
32618      mediaWidth,
32619      onSelectMedia,
32620      onWidthChange,
32621      enableResize,
32622      toggleUseFeaturedImage,
32623      useFeaturedImage,
32624      featuredImageURL,
32625      featuredImageAlt,
32626      refMedia
32627    } = props;
32628    const isTemporaryMedia = !mediaId && (0,external_wp_blob_namespaceObject.isBlobURL)(mediaUrl);
32629    const {
32630      toggleSelection
32631    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
32632    if (mediaUrl || featuredImageURL || useFeaturedImage) {
32633      const onResizeStart = () => {
32634        toggleSelection(false);
32635      };
32636      const onResize = (event, direction, elt) => {
32637        onWidthChange(parseInt(elt.style.width));
32638      };
32639      const onResizeStop = (event, direction, elt) => {
32640        toggleSelection(true);
32641        commitWidthChange(parseInt(elt.style.width));
32642      };
32643      const enablePositions = {
32644        right: enableResize && mediaPosition === 'left',
32645        left: enableResize && mediaPosition === 'right'
32646      };
32647      const positionStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl || featuredImageURL, focalPoint) : {};
32648      const mediaTypeRenderers = {
32649        image: () => useFeaturedImage && featuredImageURL ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32650          ref: refMedia,
32651          src: featuredImageURL,
32652          alt: featuredImageAlt,
32653          style: positionStyles
32654        }) : mediaUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
32655          ref: refMedia,
32656          src: mediaUrl,
32657          alt: mediaAlt,
32658          style: positionStyles
32659        }),
32660        video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
32661          controls: true,
32662          ref: refMedia,
32663          src: mediaUrl
32664        })
32665      };
32666      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ResizableBoxContainer, {
32667        as: "figure",
32668        className: dist_clsx(className, 'editor-media-container__resizer', {
32669          'is-transient': isTemporaryMedia
32670        }),
32671        size: {
32672          width: mediaWidth + '%'
32673        },
32674        minWidth: "10%",
32675        maxWidth: "100%",
32676        enable: enablePositions,
32677        onResizeStart: onResizeStart,
32678        onResize: onResize,
32679        onResizeStop: onResizeStop,
32680        axis: "x",
32681        isSelected: isSelected,
32682        isStackedOnMobile: isStackedOnMobile,
32683        ref: ref,
32684        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ToolbarEditButton, {
32685          onSelectMedia: onSelectMedia,
32686          mediaUrl: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
32687          mediaId: mediaId,
32688          toggleUseFeaturedImage: toggleUseFeaturedImage
32689        }), (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, {
32690          ...props
32691        }), !featuredImageURL && useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
32692          className: "wp-block-media-text--placeholder-image",
32693          style: positionStyles,
32694          withIllustration: true
32695        })]
32696      });
32697    }
32698    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderContainer, {
32699      ...props
32700    });
32701  }
32702  /* harmony default export */ const media_container = ((0,external_wp_element_namespaceObject.forwardRef)(MediaContainer));
32703  
32704  ;// ./node_modules/@wordpress/block-library/build-module/media-text/edit.js
32705  /**
32706   * External dependencies
32707   */
32708  
32709  
32710  /**
32711   * WordPress dependencies
32712   */
32713  
32714  
32715  
32716  
32717  
32718  
32719  
32720  
32721  
32722  /**
32723   * Internal dependencies
32724   */
32725  
32726  
32727  
32728  
32729  
32730  const {
32731    ResolutionTool: edit_ResolutionTool
32732  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
32733  
32734  // this limits the resize to a safe zone to avoid making broken layouts
32735  const applyWidthConstraints = width => Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE));
32736  function getImageSourceUrlBySizeSlug(image, slug) {
32737    // eslint-disable-next-line camelcase
32738    return image?.media_details?.sizes?.[slug]?.source_url;
32739  }
32740  function edit_attributesFromMedia({
32741    attributes: {
32742      linkDestination,
32743      href
32744    },
32745    setAttributes
32746  }) {
32747    return media => {
32748      if (!media || !media.url) {
32749        setAttributes({
32750          mediaAlt: undefined,
32751          mediaId: undefined,
32752          mediaType: undefined,
32753          mediaUrl: undefined,
32754          mediaLink: undefined,
32755          href: undefined,
32756          focalPoint: undefined,
32757          useFeaturedImage: false
32758        });
32759        return;
32760      }
32761      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
32762        media.type = (0,external_wp_blob_namespaceObject.getBlobTypeByURL)(media.url);
32763      }
32764      let mediaType;
32765      let src;
32766      // For media selections originated from a file upload.
32767      if (media.media_type) {
32768        if (media.media_type === 'image') {
32769          mediaType = 'image';
32770        } else {
32771          // only images and videos are accepted so if the media_type is not an image we can assume it is a video.
32772          // video contain the media type of 'file' in the object returned from the rest api.
32773          mediaType = 'video';
32774        }
32775      } else {
32776        // For media selections originated from existing files in the media library.
32777        mediaType = media.type;
32778      }
32779      if (mediaType === 'image') {
32780        // Try the "large" size URL, falling back to the "full" size URL below.
32781        src = media.sizes?.large?.url ||
32782        // eslint-disable-next-line camelcase
32783        media.media_details?.sizes?.large?.source_url;
32784      }
32785      let newHref = href;
32786      if (linkDestination === media_text_constants_LINK_DESTINATION_MEDIA) {
32787        // Update the media link.
32788        newHref = media.url;
32789      }
32790  
32791      // Check if the image is linked to the attachment page.
32792      if (linkDestination === media_text_constants_LINK_DESTINATION_ATTACHMENT) {
32793        // Update the media link.
32794        newHref = media.link;
32795      }
32796      setAttributes({
32797        mediaAlt: media.alt,
32798        mediaId: media.id,
32799        mediaType,
32800        mediaUrl: src || media.url,
32801        mediaLink: media.link || undefined,
32802        href: newHref,
32803        focalPoint: undefined,
32804        useFeaturedImage: false
32805      });
32806    };
32807  }
32808  function MediaTextResolutionTool({
32809    image,
32810    value,
32811    onChange
32812  }) {
32813    const {
32814      imageSizes
32815    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32816      const {
32817        getSettings
32818      } = select(external_wp_blockEditor_namespaceObject.store);
32819      return {
32820        imageSizes: getSettings().imageSizes
32821      };
32822    }, []);
32823    if (!imageSizes?.length) {
32824      return null;
32825    }
32826    const imageSizeOptions = imageSizes.filter(({
32827      slug
32828    }) => getImageSourceUrlBySizeSlug(image, slug)).map(({
32829      name,
32830      slug
32831    }) => ({
32832      value: slug,
32833      label: name
32834    }));
32835    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_ResolutionTool, {
32836      value: value,
32837      defaultValue: constants_DEFAULT_MEDIA_SIZE_SLUG,
32838      options: imageSizeOptions,
32839      onChange: onChange
32840    });
32841  }
32842  function MediaTextEdit({
32843    attributes,
32844    isSelected,
32845    setAttributes,
32846    context: {
32847      postId,
32848      postType
32849    }
32850  }) {
32851    const {
32852      focalPoint,
32853      href,
32854      imageFill,
32855      isStackedOnMobile,
32856      linkClass,
32857      linkDestination,
32858      linkTarget,
32859      mediaAlt,
32860      mediaId,
32861      mediaPosition,
32862      mediaType,
32863      mediaUrl,
32864      mediaWidth,
32865      mediaSizeSlug,
32866      rel,
32867      verticalAlignment,
32868      allowedBlocks,
32869      useFeaturedImage
32870    } = attributes;
32871    const [featuredImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'featured_media', postId);
32872    const {
32873      featuredImageMedia
32874    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32875      return {
32876        featuredImageMedia: featuredImage && useFeaturedImage ? select(external_wp_coreData_namespaceObject.store).getMedia(featuredImage, {
32877          context: 'view'
32878        }) : undefined
32879      };
32880    }, [featuredImage, useFeaturedImage]);
32881    const {
32882      image
32883    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
32884      return {
32885        image: mediaId && isSelected ? select(external_wp_coreData_namespaceObject.store).getMedia(mediaId, {
32886          context: 'view'
32887        }) : null
32888      };
32889    }, [isSelected, mediaId]);
32890    const featuredImageURL = useFeaturedImage ? featuredImageMedia?.source_url : '';
32891    const featuredImageAlt = useFeaturedImage ? featuredImageMedia?.alt_text : '';
32892    const toggleUseFeaturedImage = () => {
32893      setAttributes({
32894        imageFill: false,
32895        mediaType: 'image',
32896        mediaId: undefined,
32897        mediaUrl: undefined,
32898        mediaAlt: undefined,
32899        mediaLink: undefined,
32900        linkDestination: undefined,
32901        linkTarget: undefined,
32902        linkClass: undefined,
32903        rel: undefined,
32904        href: undefined,
32905        useFeaturedImage: !useFeaturedImage
32906      });
32907    };
32908    const refMedia = (0,external_wp_element_namespaceObject.useRef)();
32909    const imperativeFocalPointPreview = value => {
32910      const {
32911        style
32912      } = refMedia.current;
32913      const {
32914        x,
32915        y
32916      } = value;
32917      style.objectPosition = `$x * 100}% $y * 100}%`;
32918    };
32919    const [temporaryMediaWidth, setTemporaryMediaWidth] = (0,external_wp_element_namespaceObject.useState)(null);
32920    const onSelectMedia = edit_attributesFromMedia({
32921      attributes,
32922      setAttributes
32923    });
32924    const onSetHref = props => {
32925      setAttributes(props);
32926    };
32927    const onWidthChange = width => {
32928      setTemporaryMediaWidth(applyWidthConstraints(width));
32929    };
32930    const commitWidthChange = width => {
32931      setAttributes({
32932        mediaWidth: applyWidthConstraints(width)
32933      });
32934      setTemporaryMediaWidth(null);
32935    };
32936    const classNames = dist_clsx({
32937      'has-media-on-the-right': 'right' === mediaPosition,
32938      'is-selected': isSelected,
32939      'is-stacked-on-mobile': isStackedOnMobile,
32940      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
32941      'is-image-fill-element': imageFill
32942    });
32943    const widthString = `$temporaryMediaWidth || mediaWidth}%`;
32944    const gridTemplateColumns = 'right' === mediaPosition ? `1fr $widthString}` : `$widthString} 1fr`;
32945    const style = {
32946      gridTemplateColumns,
32947      msGridColumns: gridTemplateColumns
32948    };
32949    const onMediaAltChange = newMediaAlt => {
32950      setAttributes({
32951        mediaAlt: newMediaAlt
32952      });
32953    };
32954    const onVerticalAlignmentChange = alignment => {
32955      setAttributes({
32956        verticalAlignment: alignment
32957      });
32958    };
32959    const updateImage = newMediaSizeSlug => {
32960      const newUrl = getImageSourceUrlBySizeSlug(image, newMediaSizeSlug);
32961      if (!newUrl) {
32962        return null;
32963      }
32964      setAttributes({
32965        mediaUrl: newUrl,
32966        mediaSizeSlug: newMediaSizeSlug
32967      });
32968    };
32969    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
32970    const mediaTextGeneralSettings = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
32971      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
32972      resetAll: () => {
32973        setAttributes({
32974          isStackedOnMobile: true,
32975          imageFill: false,
32976          mediaAlt: '',
32977          focalPoint: undefined,
32978          mediaWidth: 50,
32979          mediaSizeSlug: undefined
32980        });
32981      },
32982      dropdownMenuProps: dropdownMenuProps,
32983      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
32984        label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
32985        isShownByDefault: true,
32986        hasValue: () => mediaWidth !== 50,
32987        onDeselect: () => setAttributes({
32988          mediaWidth: 50
32989        }),
32990        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
32991          __nextHasNoMarginBottom: true,
32992          __next40pxDefaultSize: true,
32993          label: (0,external_wp_i18n_namespaceObject.__)('Media width'),
32994          value: temporaryMediaWidth || mediaWidth,
32995          onChange: commitWidthChange,
32996          min: WIDTH_CONSTRAINT_PERCENTAGE,
32997          max: 100 - WIDTH_CONSTRAINT_PERCENTAGE
32998        })
32999      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33000        label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
33001        isShownByDefault: true,
33002        hasValue: () => !isStackedOnMobile,
33003        onDeselect: () => setAttributes({
33004          isStackedOnMobile: true
33005        }),
33006        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
33007          __nextHasNoMarginBottom: true,
33008          label: (0,external_wp_i18n_namespaceObject.__)('Stack on mobile'),
33009          checked: isStackedOnMobile,
33010          onChange: () => setAttributes({
33011            isStackedOnMobile: !isStackedOnMobile
33012          })
33013        })
33014      }), mediaType === 'image' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33015        label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill'),
33016        isShownByDefault: true,
33017        hasValue: () => !!imageFill,
33018        onDeselect: () => setAttributes({
33019          imageFill: false
33020        }),
33021        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
33022          __nextHasNoMarginBottom: true,
33023          label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill'),
33024          checked: !!imageFill,
33025          onChange: () => setAttributes({
33026            imageFill: !imageFill
33027          })
33028        })
33029      }), imageFill && (mediaUrl || featuredImageURL) && mediaType === 'image' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33030        label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
33031        isShownByDefault: true,
33032        hasValue: () => !!focalPoint,
33033        onDeselect: () => setAttributes({
33034          focalPoint: undefined
33035        }),
33036        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FocalPointPicker, {
33037          __nextHasNoMarginBottom: true,
33038          label: (0,external_wp_i18n_namespaceObject.__)('Focal point'),
33039          url: useFeaturedImage && featuredImageURL ? featuredImageURL : mediaUrl,
33040          value: focalPoint,
33041          onChange: value => setAttributes({
33042            focalPoint: value
33043          }),
33044          onDragStart: imperativeFocalPointPreview,
33045          onDrag: imperativeFocalPointPreview
33046        })
33047      }), mediaType === 'image' && mediaUrl && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33048        label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
33049        isShownByDefault: true,
33050        hasValue: () => !!mediaAlt,
33051        onDeselect: () => setAttributes({
33052          mediaAlt: ''
33053        }),
33054        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
33055          __nextHasNoMarginBottom: true,
33056          label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
33057          value: mediaAlt,
33058          onChange: onMediaAltChange,
33059          help: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33060            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
33061              href:
33062              // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.
33063              (0,external_wp_i18n_namespaceObject.__)('https://www.w3.org/WAI/tutorials/images/decision-tree/'),
33064              children: (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')
33065            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')]
33066          })
33067        })
33068      }), mediaType === 'image' && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MediaTextResolutionTool, {
33069        image: image,
33070        value: mediaSizeSlug,
33071        onChange: updateImage
33072      })]
33073    });
33074    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33075      className: classNames,
33076      style
33077    });
33078    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
33079      className: 'wp-block-media-text__content'
33080    }, {
33081      template: constants_TEMPLATE,
33082      allowedBlocks
33083    });
33084    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
33085    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33086      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
33087        children: mediaTextGeneralSettings
33088      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
33089        group: "block",
33090        children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33091          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockVerticalAlignmentControl, {
33092            onChange: onVerticalAlignmentChange,
33093            value: verticalAlignment
33094          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
33095            icon: pull_left,
33096            title: (0,external_wp_i18n_namespaceObject.__)('Show media on left'),
33097            isActive: mediaPosition === 'left',
33098            onClick: () => setAttributes({
33099              mediaPosition: 'left'
33100            })
33101          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
33102            icon: pull_right,
33103            title: (0,external_wp_i18n_namespaceObject.__)('Show media on right'),
33104            isActive: mediaPosition === 'right',
33105            onClick: () => setAttributes({
33106              mediaPosition: 'right'
33107            })
33108          })]
33109        }), mediaType === 'image' && !useFeaturedImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageURLInputUI, {
33110          url: href || '',
33111          onChangeUrl: onSetHref,
33112          linkDestination: linkDestination,
33113          mediaType: mediaType,
33114          mediaUrl: image && image.source_url,
33115          mediaLink: image && image.link,
33116          linkTarget: linkTarget,
33117          linkClass: linkClass,
33118          rel: rel
33119        })]
33120      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33121        ...blockProps,
33122        children: [mediaPosition === 'right' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33123          ...innerBlocksProps
33124        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(media_container, {
33125          className: "wp-block-media-text__media",
33126          onSelectMedia: onSelectMedia,
33127          onWidthChange: onWidthChange,
33128          commitWidthChange: commitWidthChange,
33129          refMedia: refMedia,
33130          enableResize: blockEditingMode === 'default',
33131          toggleUseFeaturedImage: toggleUseFeaturedImage,
33132          focalPoint,
33133          imageFill,
33134          isSelected,
33135          isStackedOnMobile,
33136          mediaAlt,
33137          mediaId,
33138          mediaPosition,
33139          mediaType,
33140          mediaUrl,
33141          mediaWidth,
33142          useFeaturedImage,
33143          featuredImageURL,
33144          featuredImageAlt
33145        }), mediaPosition !== 'right' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33146          ...innerBlocksProps
33147        })]
33148      })]
33149    });
33150  }
33151  /* harmony default export */ const media_text_edit = (MediaTextEdit);
33152  
33153  ;// ./node_modules/@wordpress/block-library/build-module/media-text/save.js
33154  /**
33155   * External dependencies
33156   */
33157  
33158  
33159  /**
33160   * WordPress dependencies
33161   */
33162  
33163  
33164  /**
33165   * Internal dependencies
33166   */
33167  
33168  
33169  
33170  const save_DEFAULT_MEDIA_WIDTH = 50;
33171  const save_noop = () => {};
33172  function media_text_save_save({
33173    attributes
33174  }) {
33175    const {
33176      isStackedOnMobile,
33177      mediaAlt,
33178      mediaPosition,
33179      mediaType,
33180      mediaUrl,
33181      mediaWidth,
33182      mediaId,
33183      verticalAlignment,
33184      imageFill,
33185      focalPoint,
33186      linkClass,
33187      href,
33188      linkTarget,
33189      rel
33190    } = attributes;
33191    const mediaSizeSlug = attributes.mediaSizeSlug || constants_DEFAULT_MEDIA_SIZE_SLUG;
33192    const newRel = !rel ? undefined : rel;
33193    const imageClasses = dist_clsx({
33194      [`wp-image-$mediaId}`]: mediaId && mediaType === 'image',
33195      [`size-$mediaSizeSlug}`]: mediaId && mediaType === 'image'
33196    });
33197    const positionStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};
33198    let image = mediaUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
33199      src: mediaUrl,
33200      alt: mediaAlt,
33201      className: imageClasses || null,
33202      style: positionStyles
33203    }) : null;
33204    if (href) {
33205      image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
33206        className: linkClass,
33207        href: href,
33208        target: linkTarget,
33209        rel: newRel,
33210        children: image
33211      });
33212    }
33213    const mediaTypeRenders = {
33214      image: () => image,
33215      video: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
33216        controls: true,
33217        src: mediaUrl
33218      })
33219    };
33220    const className = dist_clsx({
33221      'has-media-on-the-right': 'right' === mediaPosition,
33222      'is-stacked-on-mobile': isStackedOnMobile,
33223      [`is-vertically-aligned-$verticalAlignment}`]: verticalAlignment,
33224      'is-image-fill-element': imageFill
33225    });
33226    let gridTemplateColumns;
33227    if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) {
33228      gridTemplateColumns = 'right' === mediaPosition ? `auto $mediaWidth}%` : `$mediaWidth}% auto`;
33229    }
33230    const style = {
33231      gridTemplateColumns
33232    };
33233    if ('right' === mediaPosition) {
33234      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33235        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
33236          className,
33237          style
33238        }),
33239        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33240          ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
33241            className: 'wp-block-media-text__content'
33242          })
33243        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
33244          className: "wp-block-media-text__media",
33245          children: (mediaTypeRenders[mediaType] || save_noop)()
33246        })]
33247      });
33248    }
33249    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33250      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
33251        className,
33252        style
33253      }),
33254      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
33255        className: "wp-block-media-text__media",
33256        children: (mediaTypeRenders[mediaType] || save_noop)()
33257      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33258        ...external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save({
33259          className: 'wp-block-media-text__content'
33260        })
33261      })]
33262    });
33263  }
33264  
33265  ;// ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js
33266  /**
33267   * WordPress dependencies
33268   */
33269  
33270  const media_text_transforms_transforms = {
33271    from: [{
33272      type: 'block',
33273      blocks: ['core/image'],
33274      transform: ({
33275        alt,
33276        url,
33277        id,
33278        anchor
33279      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
33280        mediaAlt: alt,
33281        mediaId: id,
33282        mediaUrl: url,
33283        mediaType: 'image',
33284        anchor
33285      })
33286    }, {
33287      type: 'block',
33288      blocks: ['core/video'],
33289      transform: ({
33290        src,
33291        id,
33292        anchor
33293      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
33294        mediaId: id,
33295        mediaUrl: src,
33296        mediaType: 'video',
33297        anchor
33298      })
33299    }, {
33300      type: 'block',
33301      blocks: ['core/cover'],
33302      transform: ({
33303        align,
33304        alt,
33305        anchor,
33306        backgroundType,
33307        customGradient,
33308        customOverlayColor,
33309        gradient,
33310        id,
33311        overlayColor,
33312        style,
33313        textColor,
33314        url
33315      }, innerBlocks) => {
33316        let additionalAttributes = {};
33317        if (customGradient) {
33318          additionalAttributes = {
33319            style: {
33320              color: {
33321                gradient: customGradient
33322              }
33323            }
33324          };
33325        } else if (customOverlayColor) {
33326          additionalAttributes = {
33327            style: {
33328              color: {
33329                background: customOverlayColor
33330              }
33331            }
33332          };
33333        }
33334  
33335        // Maintain custom text color block support value.
33336        if (style?.color?.text) {
33337          additionalAttributes.style = {
33338            color: {
33339              ...additionalAttributes.style?.color,
33340              text: style.color.text
33341            }
33342          };
33343        }
33344        return (0,external_wp_blocks_namespaceObject.createBlock)('core/media-text', {
33345          align,
33346          anchor,
33347          backgroundColor: overlayColor,
33348          gradient,
33349          mediaAlt: alt,
33350          mediaId: id,
33351          mediaType: backgroundType,
33352          mediaUrl: url,
33353          textColor,
33354          ...additionalAttributes
33355        }, innerBlocks);
33356      }
33357    }],
33358    to: [{
33359      type: 'block',
33360      blocks: ['core/image'],
33361      isMatch: ({
33362        mediaType,
33363        mediaUrl
33364      }) => {
33365        return !mediaUrl || mediaType === 'image';
33366      },
33367      transform: ({
33368        mediaAlt,
33369        mediaId,
33370        mediaUrl,
33371        anchor
33372      }) => {
33373        return (0,external_wp_blocks_namespaceObject.createBlock)('core/image', {
33374          alt: mediaAlt,
33375          id: mediaId,
33376          url: mediaUrl,
33377          anchor
33378        });
33379      }
33380    }, {
33381      type: 'block',
33382      blocks: ['core/video'],
33383      isMatch: ({
33384        mediaType,
33385        mediaUrl
33386      }) => {
33387        return !mediaUrl || mediaType === 'video';
33388      },
33389      transform: ({
33390        mediaId,
33391        mediaUrl,
33392        anchor
33393      }) => {
33394        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
33395          id: mediaId,
33396          src: mediaUrl,
33397          anchor
33398        });
33399      }
33400    }, {
33401      type: 'block',
33402      blocks: ['core/cover'],
33403      transform: ({
33404        align,
33405        anchor,
33406        backgroundColor,
33407        focalPoint,
33408        gradient,
33409        mediaAlt,
33410        mediaId,
33411        mediaType,
33412        mediaUrl,
33413        style,
33414        textColor
33415      }, innerBlocks) => {
33416        const additionalAttributes = {};
33417  
33418        // Migrate the background styles or gradient to Cover's custom
33419        // gradient and overlay properties.
33420        if (style?.color?.gradient) {
33421          additionalAttributes.customGradient = style.color.gradient;
33422        } else if (style?.color?.background) {
33423          additionalAttributes.customOverlayColor = style.color.background;
33424        }
33425  
33426        // Maintain custom text color support style.
33427        if (style?.color?.text) {
33428          additionalAttributes.style = {
33429            color: {
33430              text: style.color.text
33431            }
33432          };
33433        }
33434        const coverAttributes = {
33435          align,
33436          alt: mediaAlt,
33437          anchor,
33438          backgroundType: mediaType,
33439          dimRatio: !!mediaUrl ? 50 : 100,
33440          focalPoint,
33441          gradient,
33442          id: mediaId,
33443          overlayColor: backgroundColor,
33444          textColor,
33445          url: mediaUrl,
33446          ...additionalAttributes
33447        };
33448        return (0,external_wp_blocks_namespaceObject.createBlock)('core/cover', coverAttributes, innerBlocks);
33449      }
33450    }]
33451  };
33452  /* harmony default export */ const media_text_transforms = (media_text_transforms_transforms);
33453  
33454  ;// ./node_modules/@wordpress/block-library/build-module/media-text/index.js
33455  /**
33456   * WordPress dependencies
33457   */
33458  
33459  
33460  
33461  /**
33462   * Internal dependencies
33463   */
33464  
33465  
33466  
33467  const media_text_metadata = {
33468    $schema: "https://schemas.wp.org/trunk/block.json",
33469    apiVersion: 3,
33470    name: "core/media-text",
33471    title: "Media & Text",
33472    category: "media",
33473    description: "Set media and words side-by-side for a richer layout.",
33474    keywords: ["image", "video"],
33475    textdomain: "default",
33476    attributes: {
33477      align: {
33478        type: "string",
33479        "default": "none"
33480      },
33481      mediaAlt: {
33482        type: "string",
33483        source: "attribute",
33484        selector: "figure img",
33485        attribute: "alt",
33486        "default": "",
33487        role: "content"
33488      },
33489      mediaPosition: {
33490        type: "string",
33491        "default": "left"
33492      },
33493      mediaId: {
33494        type: "number",
33495        role: "content"
33496      },
33497      mediaUrl: {
33498        type: "string",
33499        source: "attribute",
33500        selector: "figure video,figure img",
33501        attribute: "src",
33502        role: "content"
33503      },
33504      mediaLink: {
33505        type: "string"
33506      },
33507      linkDestination: {
33508        type: "string"
33509      },
33510      linkTarget: {
33511        type: "string",
33512        source: "attribute",
33513        selector: "figure a",
33514        attribute: "target"
33515      },
33516      href: {
33517        type: "string",
33518        source: "attribute",
33519        selector: "figure a",
33520        attribute: "href",
33521        role: "content"
33522      },
33523      rel: {
33524        type: "string",
33525        source: "attribute",
33526        selector: "figure a",
33527        attribute: "rel"
33528      },
33529      linkClass: {
33530        type: "string",
33531        source: "attribute",
33532        selector: "figure a",
33533        attribute: "class"
33534      },
33535      mediaType: {
33536        type: "string",
33537        role: "content"
33538      },
33539      mediaWidth: {
33540        type: "number",
33541        "default": 50
33542      },
33543      mediaSizeSlug: {
33544        type: "string"
33545      },
33546      isStackedOnMobile: {
33547        type: "boolean",
33548        "default": true
33549      },
33550      verticalAlignment: {
33551        type: "string"
33552      },
33553      imageFill: {
33554        type: "boolean"
33555      },
33556      focalPoint: {
33557        type: "object"
33558      },
33559      allowedBlocks: {
33560        type: "array"
33561      },
33562      useFeaturedImage: {
33563        type: "boolean",
33564        "default": false
33565      }
33566    },
33567    usesContext: ["postId", "postType"],
33568    supports: {
33569      anchor: true,
33570      align: ["wide", "full"],
33571      html: false,
33572      __experimentalBorder: {
33573        color: true,
33574        radius: true,
33575        style: true,
33576        width: true,
33577        __experimentalDefaultControls: {
33578          color: true,
33579          radius: true,
33580          style: true,
33581          width: true
33582        }
33583      },
33584      color: {
33585        gradients: true,
33586        heading: true,
33587        link: true,
33588        __experimentalDefaultControls: {
33589          background: true,
33590          text: true
33591        }
33592      },
33593      spacing: {
33594        margin: true,
33595        padding: true
33596      },
33597      typography: {
33598        fontSize: true,
33599        lineHeight: true,
33600        __experimentalFontFamily: true,
33601        __experimentalFontWeight: true,
33602        __experimentalFontStyle: true,
33603        __experimentalTextTransform: true,
33604        __experimentalTextDecoration: true,
33605        __experimentalLetterSpacing: true,
33606        __experimentalDefaultControls: {
33607          fontSize: true
33608        }
33609      },
33610      interactivity: {
33611        clientNavigation: true
33612      }
33613    },
33614    editorStyle: "wp-block-media-text-editor",
33615    style: "wp-block-media-text"
33616  };
33617  
33618  
33619  const {
33620    name: media_text_name
33621  } = media_text_metadata;
33622  
33623  const media_text_settings = {
33624    icon: media_and_text,
33625    example: {
33626      viewportWidth: 601,
33627      // Columns collapse "@media (max-width: 600px)".
33628      attributes: {
33629        mediaType: 'image',
33630        mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg'
33631      },
33632      innerBlocks: [{
33633        name: 'core/paragraph',
33634        attributes: {
33635          content: (0,external_wp_i18n_namespaceObject.__)('The wren<br>Earns his living<br>Noiselessly.')
33636        }
33637      }, {
33638        name: 'core/paragraph',
33639        attributes: {
33640          content: (0,external_wp_i18n_namespaceObject.__)('— Kobayashi Issa (一茶)')
33641        }
33642      }]
33643    },
33644    transforms: media_text_transforms,
33645    edit: media_text_edit,
33646    save: media_text_save_save,
33647    deprecated: media_text_deprecated
33648  };
33649  const media_text_init = () => initBlock({
33650    name: media_text_name,
33651    metadata: media_text_metadata,
33652    settings: media_text_settings
33653  });
33654  
33655  ;// ./node_modules/@wordpress/block-library/build-module/missing/edit.js
33656  /**
33657   * WordPress dependencies
33658   */
33659  
33660  
33661  
33662  
33663  
33664  
33665  
33666  
33667  function MissingEdit({
33668    attributes,
33669    clientId
33670  }) {
33671    const {
33672      originalName,
33673      originalUndelimitedContent
33674    } = attributes;
33675    const hasContent = !!originalUndelimitedContent;
33676    const {
33677      hasFreeformBlock,
33678      hasHTMLBlock
33679    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
33680      const {
33681        canInsertBlockType,
33682        getBlockRootClientId
33683      } = select(external_wp_blockEditor_namespaceObject.store);
33684      return {
33685        hasFreeformBlock: canInsertBlockType('core/freeform', getBlockRootClientId(clientId)),
33686        hasHTMLBlock: canInsertBlockType('core/html', getBlockRootClientId(clientId))
33687      };
33688    }, [clientId]);
33689    const {
33690      replaceBlock
33691    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
33692    function convertToHTML() {
33693      replaceBlock(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/html', {
33694        content: originalUndelimitedContent
33695      }));
33696    }
33697    const actions = [];
33698    let messageHTML;
33699    const convertToHtmlButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
33700      __next40pxDefaultSize: true,
33701      onClick: convertToHTML,
33702      variant: "primary",
33703      children: (0,external_wp_i18n_namespaceObject.__)('Keep as HTML')
33704    }, "convert");
33705    if (hasContent && !hasFreeformBlock && !originalName) {
33706      if (hasHTMLBlock) {
33707        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.');
33708        actions.push(convertToHtmlButton);
33709      } else {
33710        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.');
33711      }
33712    } else if (hasContent && hasHTMLBlock) {
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, convert it to custom HTML, or remove it.'), originalName);
33715      actions.push(convertToHtmlButton);
33716    } else {
33717      messageHTML = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: block name */
33718      (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);
33719    }
33720    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
33721      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
33722        className: 'has-warning'
33723      }),
33724      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
33725        actions: actions,
33726        children: messageHTML
33727      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
33728        children: (0,external_wp_dom_namespaceObject.safeHTML)(originalUndelimitedContent)
33729      })]
33730    });
33731  }
33732  
33733  ;// ./node_modules/@wordpress/block-library/build-module/missing/save.js
33734  /**
33735   * WordPress dependencies
33736   */
33737  
33738  
33739  function missing_save_save({
33740    attributes
33741  }) {
33742    // Preserve the missing block's content.
33743    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
33744      children: attributes.originalContent
33745    });
33746  }
33747  
33748  ;// ./node_modules/@wordpress/block-library/build-module/missing/index.js
33749  /**
33750   * WordPress dependencies
33751   */
33752  
33753  
33754  /**
33755   * Internal dependencies
33756   */
33757  
33758  
33759  const missing_metadata = {
33760    $schema: "https://schemas.wp.org/trunk/block.json",
33761    apiVersion: 3,
33762    name: "core/missing",
33763    title: "Unsupported",
33764    category: "text",
33765    description: "Your site doesn\u2019t include support for this block.",
33766    textdomain: "default",
33767    attributes: {
33768      originalName: {
33769        type: "string"
33770      },
33771      originalUndelimitedContent: {
33772        type: "string"
33773      },
33774      originalContent: {
33775        type: "string",
33776        source: "raw"
33777      }
33778    },
33779    supports: {
33780      className: false,
33781      customClassName: false,
33782      inserter: false,
33783      html: false,
33784      reusable: false,
33785      interactivity: {
33786        clientNavigation: true
33787      }
33788    }
33789  };
33790  
33791  const {
33792    name: missing_name
33793  } = missing_metadata;
33794  
33795  const missing_settings = {
33796    name: missing_name,
33797    __experimentalLabel(attributes, {
33798      context
33799    }) {
33800      if (context === 'accessibility') {
33801        const {
33802          originalName
33803        } = attributes;
33804        const originalBlockType = originalName ? (0,external_wp_blocks_namespaceObject.getBlockType)(originalName) : undefined;
33805        if (originalBlockType) {
33806          return originalBlockType.settings.title || originalName;
33807        }
33808        return '';
33809      }
33810    },
33811    edit: MissingEdit,
33812    save: missing_save_save
33813  };
33814  const missing_init = () => initBlock({
33815    name: missing_name,
33816    metadata: missing_metadata,
33817    settings: missing_settings
33818  });
33819  
33820  ;// ./node_modules/@wordpress/icons/build-module/library/more.js
33821  /**
33822   * WordPress dependencies
33823   */
33824  
33825  
33826  const more = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
33827    viewBox: "0 0 24 24",
33828    xmlns: "http://www.w3.org/2000/svg",
33829    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
33830      d: "M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z"
33831    })
33832  });
33833  /* harmony default export */ const library_more = (more);
33834  
33835  ;// ./node_modules/@wordpress/block-library/build-module/more/edit.js
33836  /**
33837   * WordPress dependencies
33838   */
33839  
33840  
33841  
33842  
33843  
33844  /**
33845   * Internal dependencies
33846   */
33847  
33848  
33849  const DEFAULT_TEXT = (0,external_wp_i18n_namespaceObject.__)('Read more');
33850  function MoreEdit({
33851    attributes: {
33852      customText,
33853      noTeaser
33854    },
33855    insertBlocksAfter,
33856    setAttributes
33857  }) {
33858    const onChangeInput = event => {
33859      setAttributes({
33860        customText: event.target.value
33861      });
33862    };
33863    const onKeyDown = ({
33864      keyCode
33865    }) => {
33866      if (keyCode === external_wp_keycodes_namespaceObject.ENTER) {
33867        insertBlocksAfter([(0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())]);
33868      }
33869    };
33870    const getHideExcerptHelp = checked => checked ? (0,external_wp_i18n_namespaceObject.__)('The excerpt is hidden.') : (0,external_wp_i18n_namespaceObject.__)('The excerpt is visible.');
33871    const toggleHideExcerpt = () => setAttributes({
33872      noTeaser: !noTeaser
33873    });
33874    const style = {
33875      width: `${(customText ? customText : DEFAULT_TEXT).length + 1.2}em`
33876    };
33877    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
33878    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
33879      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
33880        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
33881          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
33882          resetAll: () => {
33883            setAttributes({
33884              noTeaser: false
33885            });
33886          },
33887          dropdownMenuProps: dropdownMenuProps,
33888          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
33889            label: (0,external_wp_i18n_namespaceObject.__)('Hide excerpt'),
33890            isShownByDefault: true,
33891            hasValue: () => noTeaser,
33892            onDeselect: () => setAttributes({
33893              noTeaser: false
33894            }),
33895            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
33896              __nextHasNoMarginBottom: true,
33897              label: (0,external_wp_i18n_namespaceObject.__)('Hide the excerpt on the full content page'),
33898              checked: !!noTeaser,
33899              onChange: toggleHideExcerpt,
33900              help: getHideExcerptHelp
33901            })
33902          })
33903        })
33904      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
33905        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
33906        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
33907          "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
33908          type: "text",
33909          value: customText,
33910          placeholder: DEFAULT_TEXT,
33911          onChange: onChangeInput,
33912          onKeyDown: onKeyDown,
33913          style: style
33914        })
33915      })]
33916    });
33917  }
33918  
33919  ;// ./node_modules/@wordpress/block-library/build-module/more/save.js
33920  /**
33921   * WordPress dependencies
33922   */
33923  
33924  
33925  function more_save_save({
33926    attributes: {
33927      customText,
33928      noTeaser
33929    }
33930  }) {
33931    const moreTag = customText ? `<!--more $customText}-->` : '<!--more-->';
33932    const noTeaserTag = noTeaser ? '<!--noteaser-->' : '';
33933    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
33934      children: [moreTag, noTeaserTag].filter(Boolean).join('\n')
33935    });
33936  }
33937  
33938  ;// ./node_modules/@wordpress/block-library/build-module/more/transforms.js
33939  /**
33940   * WordPress dependencies
33941   */
33942  
33943  const more_transforms_transforms = {
33944    from: [{
33945      type: 'raw',
33946      schema: {
33947        'wp-block': {
33948          attributes: ['data-block']
33949        }
33950      },
33951      isMatch: node => node.dataset && node.dataset.block === 'core/more',
33952      transform(node) {
33953        const {
33954          customText,
33955          noTeaser
33956        } = node.dataset;
33957        const attrs = {};
33958        // Don't copy unless defined and not an empty string.
33959        if (customText) {
33960          attrs.customText = customText;
33961        }
33962        // Special handling for boolean.
33963        if (noTeaser === '') {
33964          attrs.noTeaser = true;
33965        }
33966        return (0,external_wp_blocks_namespaceObject.createBlock)('core/more', attrs);
33967      }
33968    }]
33969  };
33970  /* harmony default export */ const more_transforms = (more_transforms_transforms);
33971  
33972  ;// ./node_modules/@wordpress/block-library/build-module/more/index.js
33973  /**
33974   * WordPress dependencies
33975   */
33976  
33977  
33978  /**
33979   * Internal dependencies
33980   */
33981  
33982  
33983  const more_metadata = {
33984    $schema: "https://schemas.wp.org/trunk/block.json",
33985    apiVersion: 3,
33986    name: "core/more",
33987    title: "More",
33988    category: "design",
33989    description: "Content before this block will be shown in the excerpt on your archives page.",
33990    keywords: ["read more"],
33991    textdomain: "default",
33992    attributes: {
33993      customText: {
33994        type: "string",
33995        "default": ""
33996      },
33997      noTeaser: {
33998        type: "boolean",
33999        "default": false
34000      }
34001    },
34002    supports: {
34003      customClassName: false,
34004      className: false,
34005      html: false,
34006      multiple: false,
34007      interactivity: {
34008        clientNavigation: true
34009      }
34010    },
34011    editorStyle: "wp-block-more-editor"
34012  };
34013  
34014  
34015  const {
34016    name: more_name
34017  } = more_metadata;
34018  
34019  const more_settings = {
34020    icon: library_more,
34021    example: {},
34022    __experimentalLabel(attributes, {
34023      context
34024    }) {
34025      const customName = attributes?.metadata?.name;
34026      if (context === 'list-view' && customName) {
34027        return customName;
34028      }
34029      if (context === 'accessibility') {
34030        return attributes.customText;
34031      }
34032    },
34033    transforms: more_transforms,
34034    edit: MoreEdit,
34035    save: more_save_save
34036  };
34037  const more_init = () => initBlock({
34038    name: more_name,
34039    metadata: more_metadata,
34040    settings: more_settings
34041  });
34042  
34043  ;// ./node_modules/@wordpress/icons/build-module/library/navigation.js
34044  /**
34045   * WordPress dependencies
34046   */
34047  
34048  
34049  const navigation = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34050    viewBox: "0 0 24 24",
34051    xmlns: "http://www.w3.org/2000/svg",
34052    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34053      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"
34054    })
34055  });
34056  /* harmony default export */ const library_navigation = (navigation);
34057  
34058  ;// external ["wp","a11y"]
34059  const external_wp_a11y_namespaceObject = window["wp"]["a11y"];
34060  ;// ./node_modules/@wordpress/icons/build-module/icon/index.js
34061  /**
34062   * WordPress dependencies
34063   */
34064  
34065  
34066  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
34067  
34068  /**
34069   * Return an SVG icon.
34070   *
34071   * @param {IconProps}                                 props icon is the SVG component to render
34072   *                                                          size is a number specifying the icon size in pixels
34073   *                                                          Other props will be passed to wrapped SVG component
34074   * @param {import('react').ForwardedRef<HTMLElement>} ref   The forwarded ref to the SVG element.
34075   *
34076   * @return {JSX.Element}  Icon component
34077   */
34078  function Icon({
34079    icon,
34080    size = 24,
34081    ...props
34082  }, ref) {
34083    return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
34084      width: size,
34085      height: size,
34086      ...props,
34087      ref
34088    });
34089  }
34090  /* harmony default export */ const build_module_icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon));
34091  
34092  ;// ./node_modules/@wordpress/icons/build-module/library/close.js
34093  /**
34094   * WordPress dependencies
34095   */
34096  
34097  
34098  const close_close = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34099    xmlns: "http://www.w3.org/2000/svg",
34100    viewBox: "0 0 24 24",
34101    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34102      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"
34103    })
34104  });
34105  /* harmony default export */ const library_close = (close_close);
34106  
34107  ;// ./node_modules/@wordpress/block-library/build-module/navigation/constants.js
34108  const constants_DEFAULT_BLOCK = {
34109    name: 'core/navigation-link'
34110  };
34111  const PRIORITIZED_INSERTER_BLOCKS = ['core/navigation-link/page', 'core/navigation-link'];
34112  
34113  // These parameters must be kept aligned with those in
34114  // lib/compat/wordpress-6.3/navigation-block-preloading.php
34115  // and
34116  // edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js
34117  const PRELOADED_NAVIGATION_MENUS_QUERY = {
34118    per_page: 100,
34119    status: ['publish', 'draft'],
34120    order: 'desc',
34121    orderby: 'date'
34122  };
34123  const SELECT_NAVIGATION_MENUS_ARGS = ['postType', 'wp_navigation', PRELOADED_NAVIGATION_MENUS_QUERY];
34124  
34125  ;// ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js
34126  /**
34127   * WordPress dependencies
34128   */
34129  
34130  
34131  
34132  /**
34133   * Internal dependencies
34134   */
34135  
34136  function useNavigationMenu(ref) {
34137    const permissions = (0,external_wp_coreData_namespaceObject.useResourcePermissions)({
34138      kind: 'postType',
34139      name: 'wp_navigation',
34140      id: ref
34141    });
34142    const {
34143      navigationMenu,
34144      isNavigationMenuResolved,
34145      isNavigationMenuMissing
34146    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
34147      return selectExistingMenu(select, ref);
34148    }, [ref]);
34149    const {
34150      // Can the user create navigation menus?
34151      canCreate: canCreateNavigationMenus,
34152      // Can the user update the specific navigation menu with the given post ID?
34153      canUpdate: canUpdateNavigationMenu,
34154      // Can the user delete the specific navigation menu with the given post ID?
34155      canDelete: canDeleteNavigationMenu,
34156      isResolving: isResolvingPermissions,
34157      hasResolved: hasResolvedPermissions
34158    } = permissions;
34159    const {
34160      records: navigationMenus,
34161      isResolving: isResolvingNavigationMenus,
34162      hasResolved: hasResolvedNavigationMenus
34163    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', `wp_navigation`, PRELOADED_NAVIGATION_MENUS_QUERY);
34164    const canSwitchNavigationMenu = ref ? navigationMenus?.length > 1 : navigationMenus?.length > 0;
34165    return {
34166      navigationMenu,
34167      isNavigationMenuResolved,
34168      isNavigationMenuMissing,
34169      navigationMenus,
34170      isResolvingNavigationMenus,
34171      hasResolvedNavigationMenus,
34172      canSwitchNavigationMenu,
34173      canUserCreateNavigationMenus: canCreateNavigationMenus,
34174      isResolvingCanUserCreateNavigationMenus: isResolvingPermissions,
34175      hasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,
34176      canUserUpdateNavigationMenu: canUpdateNavigationMenu,
34177      hasResolvedCanUserUpdateNavigationMenu: ref ? hasResolvedPermissions : undefined,
34178      canUserDeleteNavigationMenu: canDeleteNavigationMenu,
34179      hasResolvedCanUserDeleteNavigationMenu: ref ? hasResolvedPermissions : undefined
34180    };
34181  }
34182  function selectExistingMenu(select, ref) {
34183    if (!ref) {
34184      return {
34185        isNavigationMenuResolved: false,
34186        isNavigationMenuMissing: true
34187      };
34188    }
34189    const {
34190      getEntityRecord,
34191      getEditedEntityRecord,
34192      hasFinishedResolution
34193    } = select(external_wp_coreData_namespaceObject.store);
34194    const args = ['postType', 'wp_navigation', ref];
34195    const navigationMenu = getEntityRecord(...args);
34196    const editedNavigationMenu = getEditedEntityRecord(...args);
34197    const hasResolvedNavigationMenu = hasFinishedResolution('getEditedEntityRecord', args);
34198  
34199    // Only published Navigation posts are considered valid.
34200    // Draft Navigation posts are valid only on the editor,
34201    // requiring a post update to publish to show in frontend.
34202    // To achieve that, index.php must reflect this validation only for published.
34203    const isNavigationMenuPublishedOrDraft = editedNavigationMenu.status === 'publish' || editedNavigationMenu.status === 'draft';
34204    return {
34205      isNavigationMenuResolved: hasResolvedNavigationMenu,
34206      isNavigationMenuMissing: hasResolvedNavigationMenu && (!navigationMenu || !isNavigationMenuPublishedOrDraft),
34207      // getEditedEntityRecord will return the post regardless of status.
34208      // Therefore if the found post is not published then we should ignore it.
34209      navigationMenu: isNavigationMenuPublishedOrDraft ? editedNavigationMenu : null
34210    };
34211  }
34212  
34213  ;// ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-entities.js
34214  /**
34215   * WordPress dependencies
34216   */
34217  
34218  
34219  /**
34220   * @typedef {Object} NavigationEntitiesData
34221   * @property {Array|undefined} pages                - a collection of WP Post entity objects of post type "Page".
34222   * @property {boolean}         isResolvingPages     - indicates whether the request to fetch pages is currently resolving.
34223   * @property {boolean}         hasResolvedPages     - indicates whether the request to fetch pages has finished resolving.
34224   * @property {Array|undefined} menus                - a collection of Menu entity objects.
34225   * @property {boolean}         isResolvingMenus     - indicates whether the request to fetch menus is currently resolving.
34226   * @property {boolean}         hasResolvedMenus     - indicates whether the request to fetch menus has finished resolving.
34227   * @property {Array|undefined} menusItems           - a collection of Menu Item entity objects for the current menuId.
34228   * @property {boolean}         hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.
34229   * @property {boolean}         hasPages             - indicates whether there is currently any data for pages.
34230   * @property {boolean}         hasMenus             - indicates whether there is currently any data for menus.
34231   */
34232  
34233  /**
34234   * Manages fetching and resolution state for all entities required
34235   * for the Navigation block.
34236   *
34237   * @param {number} menuId the menu for which to retrieve menuItem data.
34238   * @return { NavigationEntitiesData } the entity data.
34239   */
34240  function useNavigationEntities(menuId) {
34241    const {
34242      records: menus,
34243      isResolving: isResolvingMenus,
34244      hasResolved: hasResolvedMenus
34245    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'menu', {
34246      per_page: -1,
34247      context: 'view'
34248    });
34249    const {
34250      records: pages,
34251      isResolving: isResolvingPages,
34252      hasResolved: hasResolvedPages
34253    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', 'page', {
34254      parent: 0,
34255      order: 'asc',
34256      orderby: 'id',
34257      per_page: -1,
34258      context: 'view'
34259    });
34260    const {
34261      records: menuItems,
34262      hasResolved: hasResolvedMenuItems
34263    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'menuItem', {
34264      menus: menuId,
34265      per_page: -1,
34266      context: 'view'
34267    }, {
34268      enabled: !!menuId
34269    });
34270    return {
34271      pages,
34272      isResolvingPages,
34273      hasResolvedPages,
34274      hasPages: !!(hasResolvedPages && pages?.length),
34275      menus,
34276      isResolvingMenus,
34277      hasResolvedMenus,
34278      hasMenus: !!(hasResolvedMenus && menus?.length),
34279      menuItems,
34280      hasResolvedMenuItems
34281    };
34282  }
34283  
34284  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/placeholder-preview.js
34285  /**
34286   * WordPress dependencies
34287   */
34288  
34289  
34290  
34291  const PlaceholderPreview = ({
34292    isVisible = true
34293  }) => {
34294    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34295      "aria-hidden": !isVisible ? true : undefined,
34296      className: "wp-block-navigation-placeholder__preview",
34297      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34298        className: "wp-block-navigation-placeholder__actions__indicator",
34299        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34300          icon: library_navigation
34301        }), (0,external_wp_i18n_namespaceObject.__)('Navigation')]
34302      })
34303    });
34304  };
34305  /* harmony default export */ const placeholder_preview = (PlaceholderPreview);
34306  
34307  ;// ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
34308  /**
34309   * WordPress dependencies
34310   */
34311  
34312  
34313  const moreVertical = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34314    xmlns: "http://www.w3.org/2000/svg",
34315    viewBox: "0 0 24 24",
34316    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34317      d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
34318    })
34319  });
34320  /* harmony default export */ const more_vertical = (moreVertical);
34321  
34322  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-selector.js
34323  /**
34324   * WordPress dependencies
34325   */
34326  
34327  
34328  
34329  
34330  
34331  
34332  
34333  /**
34334   * Internal dependencies
34335   */
34336  
34337  
34338  
34339  function buildMenuLabel(title, id, status) {
34340    if (!title) {
34341      /* translators: %s: the index of the menu in the list of menus. */
34342      return (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('(no title %s)'), id);
34343    }
34344    if (status === 'publish') {
34345      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title);
34346    }
34347    return (0,external_wp_i18n_namespaceObject.sprintf)(
34348    // translators: 1: title of the menu. 2: status of the menu (draft, pending, etc.).
34349    (0,external_wp_i18n_namespaceObject.__)('%1$s (%2$s)'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title), status);
34350  }
34351  function NavigationMenuSelector({
34352    currentMenuId,
34353    onSelectNavigationMenu,
34354    onSelectClassicMenu,
34355    onCreateNew,
34356    actionLabel,
34357    createNavigationMenuIsSuccess,
34358    createNavigationMenuIsError
34359  }) {
34360    /* translators: %s: The name of a menu. */
34361    const createActionLabel = (0,external_wp_i18n_namespaceObject.__)("Create from '%s'");
34362    const [isUpdatingMenuRef, setIsUpdatingMenuRef] = (0,external_wp_element_namespaceObject.useState)(false);
34363    actionLabel = actionLabel || createActionLabel;
34364    const {
34365      menus: classicMenus
34366    } = useNavigationEntities();
34367    const {
34368      navigationMenus,
34369      isResolvingNavigationMenus,
34370      hasResolvedNavigationMenus,
34371      canUserCreateNavigationMenus,
34372      canSwitchNavigationMenu,
34373      isNavigationMenuMissing
34374    } = useNavigationMenu(currentMenuId);
34375    const [currentTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
34376    const menuChoices = (0,external_wp_element_namespaceObject.useMemo)(() => {
34377      return navigationMenus?.map(({
34378        id,
34379        title,
34380        status
34381      }, index) => {
34382        const label = buildMenuLabel(title?.rendered, index + 1, status);
34383        return {
34384          value: id,
34385          label,
34386          ariaLabel: (0,external_wp_i18n_namespaceObject.sprintf)(actionLabel, label),
34387          disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus
34388        };
34389      }) || [];
34390    }, [navigationMenus, actionLabel, isResolvingNavigationMenus, hasResolvedNavigationMenus, isUpdatingMenuRef]);
34391    const hasNavigationMenus = !!navigationMenus?.length;
34392    const hasClassicMenus = !!classicMenus?.length;
34393    const showNavigationMenus = !!canSwitchNavigationMenu;
34394    const showClassicMenus = !!canUserCreateNavigationMenus;
34395    const noMenuSelected = hasNavigationMenus && !currentMenuId;
34396    const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
34397    const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
34398    const navMenuHasBeenDeleted = currentMenuId && isNavigationMenuMissing;
34399    let selectorLabel = '';
34400    if (isResolvingNavigationMenus) {
34401      selectorLabel = (0,external_wp_i18n_namespaceObject.__)('Loading…');
34402    } else if (noMenuSelected || noBlockMenus || menuUnavailable || navMenuHasBeenDeleted) {
34403      // Note: classic Menus may be available.
34404      selectorLabel = (0,external_wp_i18n_namespaceObject.__)('Choose or create a Navigation Menu');
34405    } else {
34406      // Current Menu's title.
34407      selectorLabel = currentTitle;
34408    }
34409    (0,external_wp_element_namespaceObject.useEffect)(() => {
34410      if (isUpdatingMenuRef && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
34411        setIsUpdatingMenuRef(false);
34412      }
34413    }, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess, canUserCreateNavigationMenus, createNavigationMenuIsError, isUpdatingMenuRef, menuUnavailable, noBlockMenus, noMenuSelected]);
34414    const NavigationMenuSelectorDropdown = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
34415      label: selectorLabel,
34416      icon: more_vertical,
34417      toggleProps: {
34418        size: 'small'
34419      },
34420      children: ({
34421        onClose
34422      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34423        children: [showNavigationMenus && hasNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
34424          label: (0,external_wp_i18n_namespaceObject.__)('Menus'),
34425          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItemsChoice, {
34426            value: currentMenuId,
34427            onSelect: menuId => {
34428              onSelectNavigationMenu(menuId);
34429              onClose();
34430            },
34431            choices: menuChoices
34432          })
34433        }), showClassicMenus && hasClassicMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
34434          label: (0,external_wp_i18n_namespaceObject.__)('Import Classic Menus'),
34435          children: classicMenus?.map(menu => {
34436            const label = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(menu.name);
34437            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34438              onClick: async () => {
34439                setIsUpdatingMenuRef(true);
34440                await onSelectClassicMenu(menu);
34441                setIsUpdatingMenuRef(false);
34442                onClose();
34443              },
34444              "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(createActionLabel, label),
34445              disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus,
34446              children: label
34447            }, menu.id);
34448          })
34449        }), canUserCreateNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
34450          label: (0,external_wp_i18n_namespaceObject.__)('Tools'),
34451          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
34452            onClick: async () => {
34453              setIsUpdatingMenuRef(true);
34454              await onCreateNew();
34455              setIsUpdatingMenuRef(false);
34456              onClose();
34457            },
34458            disabled: isUpdatingMenuRef || isResolvingNavigationMenus || !hasResolvedNavigationMenus,
34459            children: (0,external_wp_i18n_namespaceObject.__)('Create new Menu')
34460          })
34461        })]
34462      })
34463    });
34464    return NavigationMenuSelectorDropdown;
34465  }
34466  /* harmony default export */ const navigation_menu_selector = (NavigationMenuSelector);
34467  
34468  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/placeholder/index.js
34469  /**
34470   * WordPress dependencies
34471   */
34472  
34473  
34474  
34475  
34476  
34477  
34478  /**
34479   * Internal dependencies
34480   */
34481  
34482  
34483  
34484  
34485  function NavigationPlaceholder({
34486    isSelected,
34487    currentMenuId,
34488    clientId,
34489    canUserCreateNavigationMenus = false,
34490    isResolvingCanUserCreateNavigationMenus,
34491    onSelectNavigationMenu,
34492    onSelectClassicMenu,
34493    onCreateEmpty
34494  }) {
34495    const {
34496      isResolvingMenus,
34497      hasResolvedMenus
34498    } = useNavigationEntities();
34499    (0,external_wp_element_namespaceObject.useEffect)(() => {
34500      if (!isSelected) {
34501        return;
34502      }
34503      if (isResolvingMenus) {
34504        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Loading navigation block setup options…'));
34505      }
34506      if (hasResolvedMenus) {
34507        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Navigation block setup options ready.'));
34508      }
34509    }, [hasResolvedMenus, isResolvingMenus, isSelected]);
34510    const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenus;
34511    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34512      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
34513        className: "wp-block-navigation-placeholder",
34514        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder_preview, {
34515          isVisible: !isSelected
34516        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34517          "aria-hidden": !isSelected ? true : undefined,
34518          className: "wp-block-navigation-placeholder__controls",
34519          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34520            className: "wp-block-navigation-placeholder__actions",
34521            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34522              className: "wp-block-navigation-placeholder__actions__indicator",
34523              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34524                icon: library_navigation
34525              }), " ", (0,external_wp_i18n_namespaceObject.__)('Navigation')]
34526            }), /*#__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, {
34527              currentMenuId: currentMenuId,
34528              clientId: clientId,
34529              onSelectNavigationMenu: onSelectNavigationMenu,
34530              onSelectClassicMenu: onSelectClassicMenu
34531            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {}), canUserCreateNavigationMenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
34532              __next40pxDefaultSize: true,
34533              variant: "tertiary",
34534              onClick: onCreateEmpty,
34535              children: (0,external_wp_i18n_namespaceObject.__)('Start empty')
34536            })]
34537          })
34538        })]
34539      })
34540    });
34541  }
34542  
34543  ;// ./node_modules/@wordpress/icons/build-module/library/menu.js
34544  /**
34545   * WordPress dependencies
34546   */
34547  
34548  
34549  const menu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
34550    xmlns: "http://www.w3.org/2000/svg",
34551    viewBox: "0 0 24 24",
34552    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
34553      d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"
34554    })
34555  });
34556  /* harmony default export */ const library_menu = (menu);
34557  
34558  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-icon.js
34559  /**
34560   * WordPress dependencies
34561   */
34562  
34563  
34564  
34565  function OverlayMenuIcon({
34566    icon
34567  }) {
34568    if (icon === 'menu') {
34569      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34570        icon: library_menu
34571      });
34572    }
34573    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
34574      xmlns: "http://www.w3.org/2000/svg",
34575      viewBox: "0 0 24 24",
34576      width: "24",
34577      height: "24",
34578      "aria-hidden": "true",
34579      focusable: "false",
34580      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Rect, {
34581        x: "4",
34582        y: "7.5",
34583        width: "16",
34584        height: "1.5"
34585      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Rect, {
34586        x: "4",
34587        y: "15",
34588        width: "16",
34589        height: "1.5"
34590      })]
34591    });
34592  }
34593  
34594  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/responsive-wrapper.js
34595  /**
34596   * External dependencies
34597   */
34598  
34599  
34600  /**
34601   * WordPress dependencies
34602   */
34603  
34604  
34605  
34606  
34607  
34608  /**
34609   * Internal dependencies
34610   */
34611  
34612  
34613  function ResponsiveWrapper({
34614    children,
34615    id,
34616    isOpen,
34617    isResponsive,
34618    onToggle,
34619    isHiddenByDefault,
34620    overlayBackgroundColor,
34621    overlayTextColor,
34622    hasIcon,
34623    icon
34624  }) {
34625    if (!isResponsive) {
34626      return children;
34627    }
34628    const responsiveContainerClasses = dist_clsx('wp-block-navigation__responsive-container', {
34629      'has-text-color': !!overlayTextColor.color || !!overlayTextColor?.class,
34630      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', overlayTextColor?.slug)]: !!overlayTextColor?.slug,
34631      'has-background': !!overlayBackgroundColor.color || overlayBackgroundColor?.class,
34632      [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', overlayBackgroundColor?.slug)]: !!overlayBackgroundColor?.slug,
34633      'is-menu-open': isOpen,
34634      'hidden-by-default': isHiddenByDefault
34635    });
34636    const styles = {
34637      color: !overlayTextColor?.slug && overlayTextColor?.color,
34638      backgroundColor: !overlayBackgroundColor?.slug && overlayBackgroundColor?.color && overlayBackgroundColor.color
34639    };
34640    const openButtonClasses = dist_clsx('wp-block-navigation__responsive-container-open', {
34641      'always-shown': isHiddenByDefault
34642    });
34643    const modalId = `$id}-modal`;
34644    const dialogProps = {
34645      className: 'wp-block-navigation__responsive-dialog',
34646      ...(isOpen && {
34647        role: 'dialog',
34648        'aria-modal': true,
34649        'aria-label': (0,external_wp_i18n_namespaceObject.__)('Menu')
34650      })
34651    };
34652    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34653      children: [!isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
34654        __next40pxDefaultSize: true,
34655        "aria-haspopup": "true",
34656        "aria-label": hasIcon && (0,external_wp_i18n_namespaceObject.__)('Open menu'),
34657        className: openButtonClasses,
34658        onClick: () => onToggle(true),
34659        children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
34660          icon: icon
34661        }), !hasIcon && (0,external_wp_i18n_namespaceObject.__)('Menu')]
34662      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34663        className: responsiveContainerClasses,
34664        style: styles,
34665        id: modalId,
34666        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34667          className: "wp-block-navigation__responsive-close",
34668          tabIndex: "-1",
34669          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
34670            ...dialogProps,
34671            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
34672              __next40pxDefaultSize: true,
34673              className: "wp-block-navigation__responsive-container-close",
34674              "aria-label": hasIcon && (0,external_wp_i18n_namespaceObject.__)('Close menu'),
34675              onClick: () => onToggle(false),
34676              children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
34677                icon: library_close
34678              }), !hasIcon && (0,external_wp_i18n_namespaceObject.__)('Close')]
34679            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34680              className: "wp-block-navigation__responsive-container-content",
34681              id: `$modalId}-content`,
34682              children: children
34683            })]
34684          })
34685        })
34686      })]
34687    });
34688  }
34689  
34690  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/inner-blocks.js
34691  /**
34692   * WordPress dependencies
34693   */
34694  
34695  
34696  
34697  
34698  
34699  /**
34700   * Internal dependencies
34701   */
34702  
34703  
34704  
34705  function NavigationInnerBlocks({
34706    clientId,
34707    hasCustomPlaceholder,
34708    orientation,
34709    templateLock
34710  }) {
34711    const {
34712      isImmediateParentOfSelectedBlock,
34713      selectedBlockHasChildren,
34714      isSelected
34715    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
34716      const {
34717        getBlockCount,
34718        hasSelectedInnerBlock,
34719        getSelectedBlockClientId
34720      } = select(external_wp_blockEditor_namespaceObject.store);
34721      const selectedBlockId = getSelectedBlockClientId();
34722      return {
34723        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
34724        selectedBlockHasChildren: !!getBlockCount(selectedBlockId),
34725        // This prop is already available but computing it here ensures it's
34726        // fresh compared to isImmediateParentOfSelectedBlock.
34727        isSelected: selectedBlockId === clientId
34728      };
34729    }, [clientId]);
34730    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_navigation');
34731  
34732    // When the block is selected itself or has a top level item selected that
34733    // doesn't itself have children, show the standard appender. Else show no
34734    // appender.
34735    const parentOrChildHasSelection = isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren;
34736    const placeholder = (0,external_wp_element_namespaceObject.useMemo)(() => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(placeholder_preview, {}), []);
34737    const hasMenuItems = !!blocks?.length;
34738  
34739    // If there is a `ref` attribute pointing to a `wp_navigation` but
34740    // that menu has no **items** (i.e. empty) then show a placeholder.
34741    // The block must also be selected else the placeholder will display
34742    // alongside the appender.
34743    const showPlaceholder = !hasCustomPlaceholder && !hasMenuItems && !isSelected;
34744    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
34745      className: 'wp-block-navigation__container'
34746    }, {
34747      value: blocks,
34748      onInput,
34749      onChange,
34750      prioritizedInserterBlocks: PRIORITIZED_INSERTER_BLOCKS,
34751      defaultBlock: constants_DEFAULT_BLOCK,
34752      directInsert: true,
34753      orientation,
34754      templateLock,
34755      // As an exception to other blocks which feature nesting, show
34756      // the block appender even when a child block is selected.
34757      // This should be a temporary fix, to be replaced by improvements to
34758      // the sibling inserter.
34759      // See https://github.com/WordPress/gutenberg/issues/37572.
34760      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren ||
34761      // Show the appender while dragging to allow inserting element between item and the appender.
34762      parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
34763      placeholder: showPlaceholder ? placeholder : undefined,
34764      __experimentalCaptureToolbars: true,
34765      __unstableDisableLayoutClassNames: true
34766    });
34767    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
34768      ...innerBlocksProps
34769    });
34770  }
34771  
34772  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-name-control.js
34773  /**
34774   * WordPress dependencies
34775   */
34776  
34777  
34778  
34779  
34780  function NavigationMenuNameControl() {
34781    const [title, updateTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
34782    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
34783      __next40pxDefaultSize: true,
34784      __nextHasNoMarginBottom: true,
34785      label: (0,external_wp_i18n_namespaceObject.__)('Menu name'),
34786      value: title,
34787      onChange: updateTitle
34788    });
34789  }
34790  
34791  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/are-blocks-dirty.js
34792  function areBlocksDirty(originalBlocks, blocks) {
34793    return !isDeepEqual(originalBlocks, blocks, (prop, x) => {
34794      // Skip inner blocks of page list during comparison as they
34795      // are **always** controlled and may be updated async due to
34796      // syncing with entity records. Left unchecked this would
34797      // inadvertently trigger the dirty state.
34798      if (x?.name === 'core/page-list' && prop === 'innerBlocks') {
34799        return true;
34800      }
34801    });
34802  }
34803  
34804  /**
34805   * Conditionally compares two candidates for deep equality.
34806   * Provides an option to skip a given property of an object during comparison.
34807   *
34808   * @param {*}                  x          1st candidate for comparison
34809   * @param {*}                  y          2nd candidate for comparison
34810   * @param {Function|undefined} shouldSkip a function which can be used to skip a given property of an object.
34811   * @return {boolean}                      whether the two candidates are deeply equal.
34812   */
34813  const isDeepEqual = (x, y, shouldSkip) => {
34814    if (x === y) {
34815      return true;
34816    } else if (typeof x === 'object' && x !== null && x !== undefined && typeof y === 'object' && y !== null && y !== undefined) {
34817      if (Object.keys(x).length !== Object.keys(y).length) {
34818        return false;
34819      }
34820      for (const prop in x) {
34821        if (y.hasOwnProperty(prop)) {
34822          // Afford skipping a given property of an object.
34823          if (shouldSkip && shouldSkip(prop, x)) {
34824            return true;
34825          }
34826          if (!isDeepEqual(x[prop], y[prop], shouldSkip)) {
34827            return false;
34828          }
34829        } else {
34830          return false;
34831        }
34832      }
34833      return true;
34834    }
34835    return false;
34836  };
34837  
34838  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/unsaved-inner-blocks.js
34839  /**
34840   * WordPress dependencies
34841   */
34842  
34843  
34844  
34845  
34846  
34847  
34848  /**
34849   * Internal dependencies
34850   */
34851  
34852  
34853  
34854  const EMPTY_OBJECT = {};
34855  function UnsavedInnerBlocks({
34856    blocks,
34857    createNavigationMenu,
34858    hasSelection
34859  }) {
34860    const originalBlocksRef = (0,external_wp_element_namespaceObject.useRef)();
34861    (0,external_wp_element_namespaceObject.useEffect)(() => {
34862      // Initially store the uncontrolled inner blocks for
34863      // dirty state comparison.
34864      if (!originalBlocksRef?.current) {
34865        originalBlocksRef.current = blocks;
34866      }
34867    }, [blocks]);
34868  
34869    // If the current inner blocks are different from the original inner blocks
34870    // from the post content then the user has made changes to the inner blocks.
34871    // At this point the inner blocks can be considered "dirty".
34872    // Note: referential equality is not sufficient for comparison as the inner blocks
34873    // of the page list are controlled and may be updated async due to syncing with
34874    // entity records. As a result we need to perform a deep equality check skipping
34875    // the page list's inner blocks.
34876    const innerBlocksAreDirty = areBlocksDirty(originalBlocksRef?.current, blocks);
34877  
34878    // The block will be disabled in a block preview, use this as a way of
34879    // avoiding the side-effects of this component for block previews.
34880    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
34881    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
34882      className: 'wp-block-navigation__container'
34883    }, {
34884      renderAppender: hasSelection ? undefined : false,
34885      defaultBlock: constants_DEFAULT_BLOCK,
34886      directInsert: true
34887    });
34888    const {
34889      isSaving,
34890      hasResolvedAllNavigationMenus
34891    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
34892      if (isDisabled) {
34893        return EMPTY_OBJECT;
34894      }
34895      const {
34896        hasFinishedResolution,
34897        isSavingEntityRecord
34898      } = select(external_wp_coreData_namespaceObject.store);
34899      return {
34900        isSaving: isSavingEntityRecord('postType', 'wp_navigation'),
34901        hasResolvedAllNavigationMenus: hasFinishedResolution('getEntityRecords', SELECT_NAVIGATION_MENUS_ARGS)
34902      };
34903    }, [isDisabled]);
34904  
34905    // Automatically save the uncontrolled blocks.
34906    (0,external_wp_element_namespaceObject.useEffect)(() => {
34907      // The block will be disabled when used in a BlockPreview.
34908      // In this case avoid automatic creation of a wp_navigation post.
34909      // Otherwise the user will be spammed with lots of menus!
34910      //
34911      // Also ensure other navigation menus have loaded so an
34912      // accurate name can be created.
34913      //
34914      // Don't try saving when another save is already
34915      // in progress.
34916      //
34917      // And finally only create the menu when the block is selected,
34918      // which is an indication they want to start editing.
34919      if (isDisabled || isSaving || !hasResolvedAllNavigationMenus || !hasSelection || !innerBlocksAreDirty) {
34920        return;
34921      }
34922      createNavigationMenu(null, blocks);
34923    }, [blocks, createNavigationMenu, isDisabled, isSaving, hasResolvedAllNavigationMenus, innerBlocksAreDirty, hasSelection]);
34924    const Wrapper = isSaving ? external_wp_components_namespaceObject.Disabled : 'div';
34925    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wrapper, {
34926      ...innerBlocksProps
34927    });
34928  }
34929  
34930  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/navigation-menu-delete-control.js
34931  /**
34932   * WordPress dependencies
34933   */
34934  
34935  
34936  
34937  
34938  
34939  
34940  function NavigationMenuDeleteControl({
34941    onDelete
34942  }) {
34943    const [isConfirmDialogVisible, setIsConfirmDialogVisible] = (0,external_wp_element_namespaceObject.useState)(false);
34944    const id = (0,external_wp_coreData_namespaceObject.useEntityId)('postType', 'wp_navigation');
34945    const {
34946      deleteEntityRecord
34947    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
34948    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
34949      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
34950        __next40pxDefaultSize: true,
34951        className: "wp-block-navigation-delete-menu-button",
34952        variant: "secondary",
34953        isDestructive: true,
34954        onClick: () => {
34955          setIsConfirmDialogVisible(true);
34956        },
34957        children: (0,external_wp_i18n_namespaceObject.__)('Delete menu')
34958      }), isConfirmDialogVisible && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
34959        isOpen: true,
34960        onConfirm: () => {
34961          deleteEntityRecord('postType', 'wp_navigation', id, {
34962            force: true
34963          });
34964          onDelete();
34965        },
34966        onCancel: () => {
34967          setIsConfirmDialogVisible(false);
34968        },
34969        confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Delete'),
34970        size: "medium",
34971        children: (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to delete this Navigation Menu?')
34972      })]
34973    });
34974  }
34975  
34976  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-navigation-notice.js
34977  /**
34978   * WordPress dependencies
34979   */
34980  
34981  
34982  
34983  function useNavigationNotice({
34984    name,
34985    message = ''
34986  } = {}) {
34987    const noticeRef = (0,external_wp_element_namespaceObject.useRef)();
34988    const {
34989      createWarningNotice,
34990      removeNotice
34991    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
34992    const showNotice = (0,external_wp_element_namespaceObject.useCallback)(customMsg => {
34993      if (noticeRef.current) {
34994        return;
34995      }
34996      noticeRef.current = name;
34997      createWarningNotice(customMsg || message, {
34998        id: noticeRef.current,
34999        type: 'snackbar'
35000      });
35001    }, [noticeRef, createWarningNotice, message, name]);
35002    const hideNotice = (0,external_wp_element_namespaceObject.useCallback)(() => {
35003      if (!noticeRef.current) {
35004        return;
35005      }
35006      removeNotice(noticeRef.current);
35007      noticeRef.current = null;
35008    }, [noticeRef, removeNotice]);
35009    return [showNotice, hideNotice];
35010  }
35011  /* harmony default export */ const use_navigation_notice = (useNavigationNotice);
35012  
35013  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/overlay-menu-preview.js
35014  /**
35015   * WordPress dependencies
35016   */
35017  
35018  
35019  
35020  /**
35021   * Internal dependencies
35022   */
35023  
35024  
35025  function OverlayMenuPreview({
35026    setAttributes,
35027    hasIcon,
35028    icon
35029  }) {
35030    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
35031      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
35032        __nextHasNoMarginBottom: true,
35033        label: (0,external_wp_i18n_namespaceObject.__)('Show icon button'),
35034        help: (0,external_wp_i18n_namespaceObject.__)('Configure the visual appearance of the button that toggles the overlay menu.'),
35035        onChange: value => setAttributes({
35036          hasIcon: value
35037        }),
35038        checked: hasIcon
35039      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
35040        __next40pxDefaultSize: true,
35041        __nextHasNoMarginBottom: true,
35042        className: "wp-block-navigation__overlay-menu-icon-toggle-group",
35043        label: (0,external_wp_i18n_namespaceObject.__)('Icon'),
35044        value: icon,
35045        onChange: value => setAttributes({
35046          icon: value
35047        }),
35048        isBlock: true,
35049        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
35050          value: "handle",
35051          "aria-label": (0,external_wp_i18n_namespaceObject.__)('handle'),
35052          label: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
35053            icon: "handle"
35054          })
35055        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
35056          value: "menu",
35057          "aria-label": (0,external_wp_i18n_namespaceObject.__)('menu'),
35058          label: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
35059            icon: "menu"
35060          })
35061        })]
35062      })]
35063    });
35064  }
35065  
35066  ;// ./node_modules/@wordpress/block-library/build-module/navigation/menu-items-to-blocks.js
35067  /**
35068   * WordPress dependencies
35069   */
35070  
35071  
35072  
35073  /**
35074   * Convert a flat menu item structure to a nested blocks structure.
35075   *
35076   * @param {Object[]} menuItems An array of menu items.
35077   *
35078   * @return {WPBlock[]} An array of blocks.
35079   */
35080  function menuItemsToBlocks(menuItems) {
35081    if (!menuItems) {
35082      return null;
35083    }
35084    const menuTree = createDataTree(menuItems);
35085    const blocks = mapMenuItemsToBlocks(menuTree);
35086    return (0,external_wp_hooks_namespaceObject.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems);
35087  }
35088  
35089  /**
35090   * A recursive function that maps menu item nodes to blocks.
35091   *
35092   * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.
35093   * @param {number}          level     An integer representing the nesting level.
35094   * @return {Object} Object containing innerBlocks and mapping.
35095   */
35096  function mapMenuItemsToBlocks(menuItems, level = 0) {
35097    let mapping = {};
35098  
35099    // The menuItem should be in menu_order sort order.
35100    const sortedItems = [...menuItems].sort((a, b) => a.menu_order - b.menu_order);
35101    const innerBlocks = sortedItems.map(menuItem => {
35102      if (menuItem.type === 'block') {
35103        const [block] = (0,external_wp_blocks_namespaceObject.parse)(menuItem.content.raw);
35104        if (!block) {
35105          return (0,external_wp_blocks_namespaceObject.createBlock)('core/freeform', {
35106            content: menuItem.content
35107          });
35108        }
35109        return block;
35110      }
35111      const blockType = menuItem.children?.length ? 'core/navigation-submenu' : 'core/navigation-link';
35112      const attributes = menuItemToBlockAttributes(menuItem, blockType, level);
35113  
35114      // If there are children recurse to build those nested blocks.
35115      const {
35116        innerBlocks: nestedBlocks = [],
35117        // alias to avoid shadowing
35118        mapping: nestedMapping = {} // alias to avoid shadowing
35119      } = menuItem.children?.length ? mapMenuItemsToBlocks(menuItem.children, level + 1) : {};
35120  
35121      // Update parent mapping with nested mapping.
35122      mapping = {
35123        ...mapping,
35124        ...nestedMapping
35125      };
35126  
35127      // Create block with nested "innerBlocks".
35128      const block = (0,external_wp_blocks_namespaceObject.createBlock)(blockType, attributes, nestedBlocks);
35129  
35130      // Create mapping for menuItem -> block.
35131      mapping[menuItem.id] = block.clientId;
35132      return block;
35133    });
35134    return {
35135      innerBlocks,
35136      mapping
35137    };
35138  }
35139  
35140  /**
35141   * A WP nav_menu_item object.
35142   * For more documentation on the individual fields present on a menu item please see:
35143   * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789
35144   *
35145   * @typedef WPNavMenuItem
35146   *
35147   * @property {Object} title       stores the raw and rendered versions of the title/label for this menu item.
35148   * @property {Array}  xfn         the XFN relationships expressed in the link of this menu item.
35149   * @property {Array}  classes     the HTML class attributes for this menu item.
35150   * @property {string} attr_title  the HTML title attribute for this menu item.
35151   * @property {string} object      The type of object originally represented, such as 'category', 'post', or 'attachment'.
35152   * @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.
35153   * @property {string} description The description of this menu item.
35154   * @property {string} url         The URL to which this menu item points.
35155   * @property {string} type        The family of objects originally represented, such as 'post_type' or 'taxonomy'.
35156   * @property {string} target      The target attribute of the link element for this menu item.
35157   */
35158  
35159  /**
35160   * Convert block attributes to menu item.
35161   *
35162   * @param {WPNavMenuItem} menuItem  the menu item to be converted to block attributes.
35163   * @param {string}        blockType The block type.
35164   * @param {number}        level     An integer representing the nesting level.
35165   * @return {Object} the block attributes converted from the WPNavMenuItem item.
35166   */
35167  function menuItemToBlockAttributes({
35168    title: menuItemTitleField,
35169    xfn,
35170    classes,
35171    // eslint-disable-next-line camelcase
35172    attr_title,
35173    object,
35174    // eslint-disable-next-line camelcase
35175    object_id,
35176    description,
35177    url,
35178    type: menuItemTypeField,
35179    target
35180  }, blockType, level) {
35181    // For historical reasons, the `core/navigation-link` variation type is `tag`
35182    // whereas WP Core expects `post_tag` as the `object` type.
35183    // To avoid writing a block migration we perform a conversion here.
35184    // See also inverse equivalent in `blockAttributesToMenuItem`.
35185    if (object && object === 'post_tag') {
35186      object = 'tag';
35187    }
35188    return {
35189      label: menuItemTitleField?.rendered || '',
35190      ...(object?.length && {
35191        type: object
35192      }),
35193      kind: menuItemTypeField?.replace('_', '-') || 'custom',
35194      url: url || '',
35195      ...(xfn?.length && xfn.join(' ').trim() && {
35196        rel: xfn.join(' ').trim()
35197      }),
35198      ...(classes?.length && classes.join(' ').trim() && {
35199        className: classes.join(' ').trim()
35200      }),
35201      /* eslint-disable camelcase */
35202      ...(attr_title?.length && {
35203        title: attr_title
35204      }),
35205      ...(object_id && 'custom' !== object && {
35206        id: object_id
35207      }),
35208      /* eslint-enable camelcase */
35209      ...(description?.length && {
35210        description
35211      }),
35212      ...(target === '_blank' && {
35213        opensInNewTab: true
35214      }),
35215      ...(blockType === 'core/navigation-submenu' && {
35216        isTopLevelItem: level === 0
35217      }),
35218      ...(blockType === 'core/navigation-link' && {
35219        isTopLevelLink: level === 0
35220      })
35221    };
35222  }
35223  
35224  /**
35225   * Creates a nested, hierarchical tree representation from unstructured data that
35226   * has an inherent relationship defined between individual items.
35227   *
35228   * For example, by default, each element in the dataset should have an `id` and
35229   * `parent` property where the `parent` property indicates a relationship between
35230   * the current item and another item with a matching `id` properties.
35231   *
35232   * This is useful for building linked lists of data from flat data structures.
35233   *
35234   * @param {Array}  dataset  linked data to be rearranged into a hierarchical tree based on relational fields.
35235   * @param {string} id       the property which uniquely identifies each entry within the array.
35236   * @param {*}      relation the property which identifies how the current item is related to other items in the data (if at all).
35237   * @return {Array} a nested array of parent/child relationships
35238   */
35239  function createDataTree(dataset, id = 'id', relation = 'parent') {
35240    const hashTable = Object.create(null);
35241    const dataTree = [];
35242    for (const data of dataset) {
35243      hashTable[data[id]] = {
35244        ...data,
35245        children: []
35246      };
35247      if (data[relation]) {
35248        hashTable[data[relation]] = hashTable[data[relation]] || {};
35249        hashTable[data[relation]].children = hashTable[data[relation]].children || [];
35250        hashTable[data[relation]].children.push(hashTable[data[id]]);
35251      } else {
35252        dataTree.push(hashTable[data[id]]);
35253      }
35254    }
35255    return dataTree;
35256  }
35257  
35258  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js
35259  /**
35260   * WordPress dependencies
35261   */
35262  
35263  
35264  
35265  
35266  
35267  /**
35268   * Internal dependencies
35269   */
35270  
35271  const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';
35272  const CLASSIC_MENU_CONVERSION_ERROR = 'error';
35273  const CLASSIC_MENU_CONVERSION_PENDING = 'pending';
35274  const CLASSIC_MENU_CONVERSION_IDLE = 'idle';
35275  
35276  // This is needed to ensure that multiple components using this hook
35277  // do not import the same classic menu twice.
35278  let classicMenuBeingConvertedId = null;
35279  function useConvertClassicToBlockMenu(createNavigationMenu, {
35280    throwOnError = false
35281  } = {}) {
35282    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
35283    const {
35284      editEntityRecord
35285    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
35286    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CLASSIC_MENU_CONVERSION_IDLE);
35287    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
35288    const convertClassicMenuToBlockMenu = (0,external_wp_element_namespaceObject.useCallback)(async (menuId, menuName, postStatus = 'publish') => {
35289      let navigationMenu;
35290      let classicMenuItems;
35291  
35292      // 1. Fetch the classic Menu items.
35293      try {
35294        classicMenuItems = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getMenuItems({
35295          menus: menuId,
35296          per_page: -1,
35297          context: 'view'
35298        });
35299      } catch (err) {
35300        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35301        // translators: %s: The name of a menu (e.g. Header menu).
35302        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName), {
35303          cause: err
35304        });
35305      }
35306  
35307      // Handle offline response which resolves to `null`.
35308      if (classicMenuItems === null) {
35309        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35310        // translators: %s: The name of a menu (e.g. Header menu).
35311        (0,external_wp_i18n_namespaceObject.__)(`Unable to fetch classic menu "%s" from API.`), menuName));
35312      }
35313  
35314      // 2. Convert the classic items into blocks.
35315      const {
35316        innerBlocks
35317      } = menuItemsToBlocks(classicMenuItems);
35318  
35319      // 3. Create the `wp_navigation` Post with the blocks.
35320      try {
35321        navigationMenu = await createNavigationMenu(menuName, innerBlocks, postStatus);
35322  
35323        /**
35324         * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.
35325         * This status change causes the menu to be displayed on the front of the site and sets the post state to be "dirty".
35326         * The problem being solved is if saveEditedEntityRecord was used here, the menu would be updated on the frontend and the editor _automatically_,
35327         * without user interaction.
35328         * If the user abandons the site editor without saving, there would still be a wp_navigation post created as draft.
35329         */
35330        await editEntityRecord('postType', 'wp_navigation', navigationMenu.id, {
35331          status: 'publish'
35332        }, {
35333          throwOnError: true
35334        });
35335      } catch (err) {
35336        throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35337        // translators: %s: The name of a menu (e.g. Header menu).
35338        (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
35339          cause: err
35340        });
35341      }
35342      return navigationMenu;
35343    }, [createNavigationMenu, editEntityRecord, registry]);
35344    const convert = (0,external_wp_element_namespaceObject.useCallback)(async (menuId, menuName, postStatus) => {
35345      // Check whether this classic menu is being imported already.
35346      if (classicMenuBeingConvertedId === menuId) {
35347        return;
35348      }
35349  
35350      // Set the ID for the currently importing classic menu.
35351      classicMenuBeingConvertedId = menuId;
35352      if (!menuId || !menuName) {
35353        setError('Unable to convert menu. Missing menu details.');
35354        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
35355        return;
35356      }
35357      setStatus(CLASSIC_MENU_CONVERSION_PENDING);
35358      setError(null);
35359      return await convertClassicMenuToBlockMenu(menuId, menuName, postStatus).then(navigationMenu => {
35360        setStatus(CLASSIC_MENU_CONVERSION_SUCCESS);
35361        // Reset the ID for the currently importing classic menu.
35362        classicMenuBeingConvertedId = null;
35363        return navigationMenu;
35364      }).catch(err => {
35365        setError(err?.message);
35366        // Reset the ID for the currently importing classic menu.
35367        setStatus(CLASSIC_MENU_CONVERSION_ERROR);
35368  
35369        // Reset the ID for the currently importing classic menu.
35370        classicMenuBeingConvertedId = null;
35371  
35372        // Rethrow error for debugging.
35373        if (throwOnError) {
35374          throw new Error((0,external_wp_i18n_namespaceObject.sprintf)(
35375          // translators: %s: The name of a menu (e.g. Header menu).
35376          (0,external_wp_i18n_namespaceObject.__)(`Unable to create Navigation Menu "%s".`), menuName), {
35377            cause: err
35378          });
35379        }
35380      });
35381    }, [convertClassicMenuToBlockMenu, throwOnError]);
35382    return {
35383      convert,
35384      status,
35385      error
35386    };
35387  }
35388  /* harmony default export */ const use_convert_classic_menu_to_block_menu = (useConvertClassicToBlockMenu);
35389  
35390  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/create-template-part-id.js
35391  /**
35392   * Generates a template part Id based on slug and theme inputs.
35393   *
35394   * @param {string} theme the template part's theme.
35395   * @param {string} slug  the template part's slug
35396   * @return {string|null} the template part's Id.
35397   */
35398  function createTemplatePartId(theme, slug) {
35399    return theme && slug ? theme + '//' + slug : null;
35400  }
35401  
35402  ;// ./node_modules/@wordpress/icons/build-module/library/header.js
35403  /**
35404   * WordPress dependencies
35405   */
35406  
35407  
35408  const header = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35409    xmlns: "http://www.w3.org/2000/svg",
35410    viewBox: "0 0 24 24",
35411    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35412      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"
35413    })
35414  });
35415  /* harmony default export */ const library_header = (header);
35416  
35417  ;// ./node_modules/@wordpress/icons/build-module/library/footer.js
35418  /**
35419   * WordPress dependencies
35420   */
35421  
35422  
35423  const footer = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35424    xmlns: "http://www.w3.org/2000/svg",
35425    viewBox: "0 0 24 24",
35426    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35427      fillRule: "evenodd",
35428      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"
35429    })
35430  });
35431  /* harmony default export */ const library_footer = (footer);
35432  
35433  ;// ./node_modules/@wordpress/icons/build-module/library/sidebar.js
35434  /**
35435   * WordPress dependencies
35436   */
35437  
35438  
35439  const sidebar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35440    xmlns: "http://www.w3.org/2000/svg",
35441    viewBox: "0 0 24 24",
35442    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35443      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"
35444    })
35445  });
35446  /* harmony default export */ const library_sidebar = (sidebar);
35447  
35448  ;// ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js
35449  /**
35450   * WordPress dependencies
35451   */
35452  
35453  
35454  const symbolFilled = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35455    xmlns: "http://www.w3.org/2000/svg",
35456    viewBox: "0 0 24 24",
35457    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35458      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"
35459    })
35460  });
35461  /* harmony default export */ const symbol_filled = (symbolFilled);
35462  
35463  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/get-template-part-icon.js
35464  /**
35465   * WordPress dependencies
35466   */
35467  
35468  const getTemplatePartIcon = iconName => {
35469    if ('header' === iconName) {
35470      return library_header;
35471    } else if ('footer' === iconName) {
35472      return library_footer;
35473    } else if ('sidebar' === iconName) {
35474      return library_sidebar;
35475    }
35476    return symbol_filled;
35477  };
35478  
35479  ;// ./node_modules/@wordpress/block-library/build-module/navigation/use-template-part-area-label.js
35480  /**
35481   * WordPress dependencies
35482   */
35483  
35484  
35485  
35486  
35487  /**
35488   * Internal dependencies
35489   */
35490  
35491  // TODO: this util should perhaps be refactored somewhere like core-data.
35492  
35493  
35494  function useTemplatePartAreaLabel(clientId) {
35495    return (0,external_wp_data_namespaceObject.useSelect)(select => {
35496      // Use the lack of a clientId as an opportunity to bypass the rest
35497      // of this hook.
35498      if (!clientId) {
35499        return;
35500      }
35501      const {
35502        getBlock,
35503        getBlockParentsByBlockName
35504      } = select(external_wp_blockEditor_namespaceObject.store);
35505      const withAscendingResults = true;
35506      const parentTemplatePartClientIds = getBlockParentsByBlockName(clientId, 'core/template-part', withAscendingResults);
35507      if (!parentTemplatePartClientIds?.length) {
35508        return;
35509      }
35510      const {
35511        getCurrentTheme,
35512        getEditedEntityRecord
35513      } = select(external_wp_coreData_namespaceObject.store);
35514      const currentTheme = getCurrentTheme();
35515      const defaultTemplatePartAreas = currentTheme?.default_template_part_areas || [];
35516      const definedAreas = defaultTemplatePartAreas.map(item => ({
35517        ...item,
35518        icon: getTemplatePartIcon(item.icon)
35519      }));
35520      for (const templatePartClientId of parentTemplatePartClientIds) {
35521        const templatePartBlock = getBlock(templatePartClientId);
35522  
35523        // The 'area' usually isn't stored on the block, but instead
35524        // on the entity.
35525        const {
35526          theme = currentTheme?.stylesheet,
35527          slug
35528        } = templatePartBlock.attributes;
35529        const templatePartEntityId = createTemplatePartId(theme, slug);
35530        const templatePartEntity = getEditedEntityRecord('postType', 'wp_template_part', templatePartEntityId);
35531  
35532        // Look up the `label` for the area in the defined areas so
35533        // that an internationalized label can be used.
35534        if (templatePartEntity?.area) {
35535          return definedAreas.find(definedArea => definedArea.area !== 'uncategorized' && definedArea.area === templatePartEntity.area)?.label;
35536        }
35537      }
35538    }, [clientId]);
35539  }
35540  
35541  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-generate-default-navigation-title.js
35542  /**
35543   * WordPress dependencies
35544   */
35545  
35546  
35547  
35548  
35549  
35550  
35551  /**
35552   * Internal dependencies
35553   */
35554  
35555  const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
35556    status: 'draft',
35557    per_page: -1
35558  }];
35559  const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', {
35560    per_page: -1,
35561    status: 'publish'
35562  }];
35563  function useGenerateDefaultNavigationTitle(clientId) {
35564    // The block will be disabled in a block preview, use this as a way of
35565    // avoiding the side-effects of this component for block previews.
35566    const isDisabled = (0,external_wp_element_namespaceObject.useContext)(external_wp_components_namespaceObject.Disabled.Context);
35567  
35568    // Because we can't conditionally call hooks, pass an undefined client id
35569    // arg to bypass the expensive `useTemplateArea` code. The hook will return
35570    // early.
35571    const area = useTemplatePartAreaLabel(isDisabled ? undefined : clientId);
35572    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
35573    return (0,external_wp_element_namespaceObject.useCallback)(async () => {
35574      // Ensure other navigation menus have loaded so an
35575      // accurate name can be created.
35576      if (isDisabled) {
35577        return '';
35578      }
35579      const {
35580        getEntityRecords
35581      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
35582      const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]);
35583      const title = area ? (0,external_wp_i18n_namespaceObject.sprintf)(
35584      // translators: %s: the name of a menu (e.g. Header menu).
35585      (0,external_wp_i18n_namespaceObject.__)('%s menu'), area) :
35586      // translators: 'menu' as in website navigation menu.
35587      (0,external_wp_i18n_namespaceObject.__)('Menu');
35588  
35589      // Determine how many menus start with the automatic title.
35590      const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => menu?.title?.raw?.startsWith(title) ? count + 1 : count, 0);
35591  
35592      // Append a number to the end of the title if a menu with
35593      // the same name exists.
35594      const titleWithCount = matchingMenuTitleCount > 0 ? `$title} $matchingMenuTitleCount + 1}` : title;
35595      return titleWithCount || '';
35596    }, [isDisabled, area, registry]);
35597  }
35598  
35599  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-create-navigation-menu.js
35600  /**
35601   * WordPress dependencies
35602   */
35603  
35604  
35605  
35606  
35607  
35608  /**
35609   * Internal dependencies
35610   */
35611  
35612  const CREATE_NAVIGATION_MENU_SUCCESS = 'success';
35613  const CREATE_NAVIGATION_MENU_ERROR = 'error';
35614  const CREATE_NAVIGATION_MENU_PENDING = 'pending';
35615  const CREATE_NAVIGATION_MENU_IDLE = 'idle';
35616  function useCreateNavigationMenu(clientId) {
35617    const [status, setStatus] = (0,external_wp_element_namespaceObject.useState)(CREATE_NAVIGATION_MENU_IDLE);
35618    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(null);
35619    const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null);
35620    const {
35621      saveEntityRecord,
35622      editEntityRecord
35623    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
35624    const generateDefaultTitle = useGenerateDefaultNavigationTitle(clientId);
35625  
35626    // This callback uses data from the two placeholder steps and only creates
35627    // a new navigation menu when the user completes the final step.
35628    const create = (0,external_wp_element_namespaceObject.useCallback)(async (title = null, blocks = [], postStatus) => {
35629      // Guard against creating Navigations without a title.
35630      // Note you can pass no title, but if one is passed it must be
35631      // a string otherwise the title may end up being empty.
35632      if (title && typeof title !== 'string') {
35633        setError('Invalid title supplied when creating Navigation Menu.');
35634        setStatus(CREATE_NAVIGATION_MENU_ERROR);
35635        throw new Error(`Value of supplied title argument was not a string.`);
35636      }
35637      setStatus(CREATE_NAVIGATION_MENU_PENDING);
35638      setValue(null);
35639      setError(null);
35640      if (!title) {
35641        title = await generateDefaultTitle().catch(err => {
35642          setError(err?.message);
35643          setStatus(CREATE_NAVIGATION_MENU_ERROR);
35644          throw new Error('Failed to create title when saving new Navigation Menu.', {
35645            cause: err
35646          });
35647        });
35648      }
35649      const record = {
35650        title,
35651        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
35652        status: postStatus
35653      };
35654  
35655      // Return affords ability to await on this function directly
35656      return saveEntityRecord('postType', 'wp_navigation', record).then(response => {
35657        setValue(response);
35658        setStatus(CREATE_NAVIGATION_MENU_SUCCESS);
35659  
35660        // Set the status to publish so that the Navigation block
35661        // shows up in the multi entity save flow.
35662        if (postStatus !== 'publish') {
35663          editEntityRecord('postType', 'wp_navigation', response.id, {
35664            status: 'publish'
35665          });
35666        }
35667        return response;
35668      }).catch(err => {
35669        setError(err?.message);
35670        setStatus(CREATE_NAVIGATION_MENU_ERROR);
35671        throw new Error('Unable to save new Navigation Menu', {
35672          cause: err
35673        });
35674      });
35675    }, [saveEntityRecord, editEntityRecord, generateDefaultTitle]);
35676    return {
35677      create,
35678      status,
35679      value,
35680      error,
35681      isIdle: status === CREATE_NAVIGATION_MENU_IDLE,
35682      isPending: status === CREATE_NAVIGATION_MENU_PENDING,
35683      isSuccess: status === CREATE_NAVIGATION_MENU_SUCCESS,
35684      isError: status === CREATE_NAVIGATION_MENU_ERROR
35685    };
35686  }
35687  
35688  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/use-inner-blocks.js
35689  /**
35690   * WordPress dependencies
35691   */
35692  
35693  
35694  const use_inner_blocks_EMPTY_ARRAY = [];
35695  function useInnerBlocks(clientId) {
35696    return (0,external_wp_data_namespaceObject.useSelect)(select => {
35697      const {
35698        getBlock,
35699        getBlocks,
35700        hasSelectedInnerBlock
35701      } = select(external_wp_blockEditor_namespaceObject.store);
35702  
35703      // This relies on the fact that `getBlock` won't return controlled
35704      // inner blocks, while `getBlocks` does. It might be more stable to
35705      // introduce a selector like `getUncontrolledInnerBlocks`, just in
35706      // case `getBlock` is fixed.
35707      const _uncontrolledInnerBlocks = getBlock(clientId).innerBlocks;
35708      const _hasUncontrolledInnerBlocks = !!_uncontrolledInnerBlocks?.length;
35709      const _controlledInnerBlocks = _hasUncontrolledInnerBlocks ? use_inner_blocks_EMPTY_ARRAY : getBlocks(clientId);
35710      return {
35711        innerBlocks: _hasUncontrolledInnerBlocks ? _uncontrolledInnerBlocks : _controlledInnerBlocks,
35712        hasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,
35713        uncontrolledInnerBlocks: _uncontrolledInnerBlocks,
35714        controlledInnerBlocks: _controlledInnerBlocks,
35715        isInnerBlockSelected: hasSelectedInnerBlock(clientId, true)
35716      };
35717    }, [clientId]);
35718  }
35719  
35720  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/utils.js
35721  /**
35722   * External dependencies
35723   */
35724  
35725  function getComputedStyle(node) {
35726    return node.ownerDocument.defaultView.getComputedStyle(node);
35727  }
35728  function detectColors(colorsDetectionElement, setColor, setBackground) {
35729    if (!colorsDetectionElement) {
35730      return;
35731    }
35732    setColor(getComputedStyle(colorsDetectionElement).color);
35733    let backgroundColorNode = colorsDetectionElement;
35734    let backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
35735    while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === backgroundColorNode.parentNode.ELEMENT_NODE) {
35736      backgroundColorNode = backgroundColorNode.parentNode;
35737      backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;
35738    }
35739    setBackground(backgroundColor);
35740  }
35741  
35742  /**
35743   * Determine the colors for a menu.
35744   *
35745   * Order of priority is:
35746   * 1: Overlay custom colors (if submenu)
35747   * 2: Overlay theme colors (if submenu)
35748   * 3: Custom colors
35749   * 4: Theme colors
35750   * 5: Global styles
35751   *
35752   * @param {Object}  context
35753   * @param {boolean} isSubMenu
35754   */
35755  function getColors(context, isSubMenu) {
35756    const {
35757      textColor,
35758      customTextColor,
35759      backgroundColor,
35760      customBackgroundColor,
35761      overlayTextColor,
35762      customOverlayTextColor,
35763      overlayBackgroundColor,
35764      customOverlayBackgroundColor,
35765      style
35766    } = context;
35767    const colors = {};
35768    if (isSubMenu && !!customOverlayTextColor) {
35769      colors.customTextColor = customOverlayTextColor;
35770    } else if (isSubMenu && !!overlayTextColor) {
35771      colors.textColor = overlayTextColor;
35772    } else if (!!customTextColor) {
35773      colors.customTextColor = customTextColor;
35774    } else if (!!textColor) {
35775      colors.textColor = textColor;
35776    } else if (!!style?.color?.text) {
35777      colors.customTextColor = style.color.text;
35778    }
35779    if (isSubMenu && !!customOverlayBackgroundColor) {
35780      colors.customBackgroundColor = customOverlayBackgroundColor;
35781    } else if (isSubMenu && !!overlayBackgroundColor) {
35782      colors.backgroundColor = overlayBackgroundColor;
35783    } else if (!!customBackgroundColor) {
35784      colors.customBackgroundColor = customBackgroundColor;
35785    } else if (!!backgroundColor) {
35786      colors.backgroundColor = backgroundColor;
35787    } else if (!!style?.color?.background) {
35788      colors.customTextColor = style.color.background;
35789    }
35790    return colors;
35791  }
35792  function getNavigationChildBlockProps(innerBlocksColors) {
35793    return {
35794      className: dist_clsx('wp-block-navigation__submenu-container', {
35795        'has-text-color': !!(innerBlocksColors.textColor || innerBlocksColors.customTextColor),
35796        [`has-$innerBlocksColors.textColor}-color`]: !!innerBlocksColors.textColor,
35797        'has-background': !!(innerBlocksColors.backgroundColor || innerBlocksColors.customBackgroundColor),
35798        [`has-$innerBlocksColors.backgroundColor}-background-color`]: !!innerBlocksColors.backgroundColor
35799      }),
35800      style: {
35801        color: innerBlocksColors.customTextColor,
35802        backgroundColor: innerBlocksColors.customBackgroundColor
35803      }
35804    };
35805  }
35806  
35807  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/manage-menus-button.js
35808  /**
35809   * WordPress dependencies
35810   */
35811  
35812  
35813  
35814  
35815  const ManageMenusButton = ({
35816    className = '',
35817    disabled,
35818    isMenuItem = false
35819  }) => {
35820    let ComponentName = external_wp_components_namespaceObject.Button;
35821    if (isMenuItem) {
35822      ComponentName = external_wp_components_namespaceObject.MenuItem;
35823    }
35824    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComponentName, {
35825      variant: "link",
35826      disabled: disabled,
35827      className: className,
35828      href: (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', {
35829        post_type: 'wp_navigation'
35830      }),
35831      children: (0,external_wp_i18n_namespaceObject.__)('Manage menus')
35832    });
35833  };
35834  /* harmony default export */ const manage_menus_button = (ManageMenusButton);
35835  
35836  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/deleted-navigation-warning.js
35837  /**
35838   * WordPress dependencies
35839   */
35840  
35841  
35842  
35843  
35844  
35845  function DeletedNavigationWarning({
35846    onCreateNew,
35847    isNotice = false
35848  }) {
35849    const [isButtonDisabled, setIsButtonDisabled] = (0,external_wp_element_namespaceObject.useState)(false);
35850    const handleButtonClick = () => {
35851      setIsButtonDisabled(true);
35852      onCreateNew();
35853    };
35854    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>'), {
35855      button: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
35856        __next40pxDefaultSize: true,
35857        onClick: handleButtonClick,
35858        variant: "link",
35859        disabled: isButtonDisabled,
35860        accessibleWhenDisabled: true
35861      })
35862    });
35863    return isNotice ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
35864      status: "warning",
35865      isDismissible: false,
35866      children: message
35867    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
35868      children: message
35869    });
35870  }
35871  /* harmony default export */ const deleted_navigation_warning = (DeletedNavigationWarning);
35872  
35873  ;// ./node_modules/@wordpress/icons/build-module/library/add-submenu.js
35874  /**
35875   * WordPress dependencies
35876   */
35877  
35878  
35879  const addSubmenu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35880    xmlns: "http://www.w3.org/2000/svg",
35881    viewBox: "0 0 24 24",
35882    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35883      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"
35884    })
35885  });
35886  /* harmony default export */ const add_submenu = (addSubmenu);
35887  
35888  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-up.js
35889  /**
35890   * WordPress dependencies
35891   */
35892  
35893  
35894  const chevronUp = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
35895    viewBox: "0 0 24 24",
35896    xmlns: "http://www.w3.org/2000/svg",
35897    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
35898      d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"
35899    })
35900  });
35901  /* harmony default export */ const chevron_up = (chevronUp);
35902  
35903  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/leaf-more-menu.js
35904  /**
35905   * WordPress dependencies
35906   */
35907  
35908  
35909  
35910  
35911  
35912  
35913  
35914  const POPOVER_PROPS = {
35915    className: 'block-editor-block-settings-menu__popover',
35916    placement: 'bottom-start'
35917  };
35918  const BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = ['core/navigation-link', 'core/navigation-submenu'];
35919  function AddSubmenuItem({
35920    block,
35921    onClose,
35922    expandedState,
35923    expand,
35924    setInsertedBlock
35925  }) {
35926    const {
35927      insertBlock,
35928      replaceBlock,
35929      replaceInnerBlocks
35930    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35931    const clientId = block.clientId;
35932    const isDisabled = !BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(block.name);
35933    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
35934      icon: add_submenu,
35935      disabled: isDisabled,
35936      onClick: () => {
35937        const updateSelectionOnInsert = false;
35938        const newLink = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
35939        if (block.name === 'core/navigation-submenu') {
35940          insertBlock(newLink, block.innerBlocks.length, clientId, updateSelectionOnInsert);
35941        } else {
35942          // Convert to a submenu if the block currently isn't one.
35943          const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', block.attributes, block.innerBlocks);
35944  
35945          // The following must happen as two independent actions.
35946          // Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds
35947          // selector to determine which block is "active". As the UX needs the newLink to be
35948          // the "active" block it must be the last block to be inserted.
35949          // Therefore the Submenu is first created and **then** the newLink is inserted
35950          // thus ensuring it is the last inserted block.
35951          replaceBlock(clientId, newSubmenu);
35952          replaceInnerBlocks(newSubmenu.clientId, [newLink], updateSelectionOnInsert);
35953        }
35954  
35955        // This call sets the local List View state for the "last inserted block".
35956        // This is required for the Nav Block to determine whether or not to display
35957        // the Link UI for this new block.
35958        setInsertedBlock(newLink);
35959        if (!expandedState[block.clientId]) {
35960          expand(block.clientId);
35961        }
35962        onClose();
35963      },
35964      children: (0,external_wp_i18n_namespaceObject.__)('Add submenu link')
35965    });
35966  }
35967  function LeafMoreMenu(props) {
35968    const {
35969      block
35970    } = props;
35971    const {
35972      clientId
35973    } = block;
35974    const {
35975      moveBlocksDown,
35976      moveBlocksUp,
35977      removeBlocks
35978    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
35979    const removeLabel = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: block name */
35980    (0,external_wp_i18n_namespaceObject.__)('Remove %s'), (0,external_wp_blockEditor_namespaceObject.BlockTitle)({
35981      clientId,
35982      maximumLength: 25
35983    }));
35984    const rootClientId = (0,external_wp_data_namespaceObject.useSelect)(select => {
35985      const {
35986        getBlockRootClientId
35987      } = select(external_wp_blockEditor_namespaceObject.store);
35988      return getBlockRootClientId(clientId);
35989    }, [clientId]);
35990    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
35991      icon: more_vertical,
35992      label: (0,external_wp_i18n_namespaceObject.__)('Options'),
35993      className: "block-editor-block-settings-menu",
35994      popoverProps: POPOVER_PROPS,
35995      noIcons: true,
35996      ...props,
35997      children: ({
35998        onClose
35999      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36000        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
36001          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
36002            icon: chevron_up,
36003            onClick: () => {
36004              moveBlocksUp([clientId], rootClientId);
36005              onClose();
36006            },
36007            children: (0,external_wp_i18n_namespaceObject.__)('Move up')
36008          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
36009            icon: chevron_down,
36010            onClick: () => {
36011              moveBlocksDown([clientId], rootClientId);
36012              onClose();
36013            },
36014            children: (0,external_wp_i18n_namespaceObject.__)('Move down')
36015          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AddSubmenuItem, {
36016            block: block,
36017            onClose: onClose,
36018            expanded: true,
36019            expandedState: props.expandedState,
36020            expand: props.expand,
36021            setInsertedBlock: props.setInsertedBlock
36022          })]
36023        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
36024          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
36025            onClick: () => {
36026              removeBlocks([clientId], false);
36027              onClose();
36028            },
36029            children: removeLabel
36030          })
36031        })]
36032      })
36033    });
36034  }
36035  
36036  ;// external ["wp","escapeHtml"]
36037  const external_wp_escapeHtml_namespaceObject = window["wp"]["escapeHtml"];
36038  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/update-attributes.js
36039  /**
36040   * WordPress dependencies
36041   */
36042  
36043  
36044  
36045  /**
36046   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
36047   */
36048  /**
36049   * Navigation Link Block Attributes
36050   *
36051   * @typedef {Object} WPNavigationLinkBlockAttributes
36052   *
36053   * @property {string}               [label]         Link text.
36054   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
36055   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
36056   * @property {string}               [rel]           The relationship of the linked URL.
36057   * @property {number}               [id]            A post or term id.
36058   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
36059   * @property {string}               [url]           Link href.
36060   * @property {string}               [title]         Link title attribute.
36061   */
36062  /**
36063   * Link Control onChange handler that updates block attributes when a setting is changed.
36064   *
36065   * @param {Object}                          updatedValue    New block attributes to update.
36066   * @param {Function}                        setAttributes   Block attribute update function.
36067   * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.
36068   */
36069  
36070  const updateAttributes = (updatedValue = {}, setAttributes, blockAttributes = {}) => {
36071    const {
36072      label: originalLabel = '',
36073      kind: originalKind = '',
36074      type: originalType = ''
36075    } = blockAttributes;
36076    const {
36077      title: newLabel = '',
36078      // the title of any provided Post.
36079      url: newUrl = '',
36080      opensInNewTab,
36081      id,
36082      kind: newKind = originalKind,
36083      type: newType = originalType
36084    } = updatedValue;
36085    const newLabelWithoutHttp = newLabel.replace(/http(s?):\/\//gi, '');
36086    const newUrlWithoutHttp = newUrl.replace(/http(s?):\/\//gi, '');
36087    const useNewLabel = newLabel && newLabel !== originalLabel &&
36088    // LinkControl without the title field relies
36089    // on the check below. Specifically, it assumes that
36090    // the URL is the same as a title.
36091    // This logic a) looks suspicious and b) should really
36092    // live in the LinkControl and not here. It's a great
36093    // candidate for future refactoring.
36094    newLabelWithoutHttp !== newUrlWithoutHttp;
36095  
36096    // Unfortunately this causes the escaping model to be inverted.
36097    // The escaped content is stored in the block attributes (and ultimately in the database),
36098    // and then the raw data is "recovered" when outputting into the DOM.
36099    // It would be preferable to store the **raw** data in the block attributes and escape it in JS.
36100    // Why? Because there isn't one way to escape data. Depending on the context, you need to do
36101    // different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.
36102    // See also:
36103    // - https://github.com/WordPress/gutenberg/pull/41063
36104    // - https://github.com/WordPress/gutenberg/pull/18617.
36105    const label = useNewLabel ? (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(newLabel) : originalLabel || (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(newUrlWithoutHttp);
36106  
36107    // In https://github.com/WordPress/gutenberg/pull/24670 we decided to use "tag" in favor of "post_tag"
36108    const type = newType === 'post_tag' ? 'tag' : newType.replace('-', '_');
36109    const isBuiltInType = ['post', 'page', 'tag', 'category'].indexOf(type) > -1;
36110    const isCustomLink = !newKind && !isBuiltInType || newKind === 'custom';
36111    const kind = isCustomLink ? 'custom' : newKind;
36112    setAttributes({
36113      // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.
36114      ...(newUrl && {
36115        url: encodeURI((0,external_wp_url_namespaceObject.safeDecodeURI)(newUrl))
36116      }),
36117      ...(label && {
36118        label
36119      }),
36120      ...(undefined !== opensInNewTab && {
36121        opensInNewTab
36122      }),
36123      ...(id && Number.isInteger(id) && {
36124        id
36125      }),
36126      ...(kind && {
36127        kind
36128      }),
36129      ...(type && type !== 'URL' && {
36130        type
36131      })
36132    });
36133  };
36134  
36135  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js
36136  /**
36137   * WordPress dependencies
36138   */
36139  
36140  
36141  const chevronRightSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
36142    xmlns: "http://www.w3.org/2000/svg",
36143    viewBox: "0 0 24 24",
36144    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
36145      d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"
36146    })
36147  });
36148  /* harmony default export */ const chevron_right_small = (chevronRightSmall);
36149  
36150  ;// ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js
36151  /**
36152   * WordPress dependencies
36153   */
36154  
36155  
36156  const chevronLeftSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
36157    xmlns: "http://www.w3.org/2000/svg",
36158    viewBox: "0 0 24 24",
36159    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
36160      d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"
36161    })
36162  });
36163  /* harmony default export */ const chevron_left_small = (chevronLeftSmall);
36164  
36165  ;// ./node_modules/@wordpress/icons/build-module/library/plus.js
36166  /**
36167   * WordPress dependencies
36168   */
36169  
36170  
36171  const plus = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
36172    xmlns: "http://www.w3.org/2000/svg",
36173    viewBox: "0 0 24 24",
36174    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
36175      d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z"
36176    })
36177  });
36178  /* harmony default export */ const library_plus = (plus);
36179  
36180  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/link-ui.js
36181  /**
36182   * WordPress dependencies
36183   */
36184  
36185  
36186  
36187  
36188  
36189  
36190  
36191  
36192  
36193  
36194  
36195  /**
36196   * Internal dependencies
36197   */
36198  
36199  
36200  const {
36201    PrivateQuickInserter: QuickInserter
36202  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
36203  
36204  /**
36205   * Given the Link block's type attribute, return the query params to give to
36206   * /wp/v2/search.
36207   *
36208   * @param {string} type Link block's type attribute.
36209   * @param {string} kind Link block's entity of kind (post-type|taxonomy)
36210   * @return {{ type?: string, subtype?: string }} Search query params.
36211   */
36212  function getSuggestionsQuery(type, kind) {
36213    switch (type) {
36214      case 'post':
36215      case 'page':
36216        return {
36217          type: 'post',
36218          subtype: type
36219        };
36220      case 'category':
36221        return {
36222          type: 'term',
36223          subtype: 'category'
36224        };
36225      case 'tag':
36226        return {
36227          type: 'term',
36228          subtype: 'post_tag'
36229        };
36230      case 'post_format':
36231        return {
36232          type: 'post-format'
36233        };
36234      default:
36235        if (kind === 'taxonomy') {
36236          return {
36237            type: 'term',
36238            subtype: type
36239          };
36240        }
36241        if (kind === 'post-type') {
36242          return {
36243            type: 'post',
36244            subtype: type
36245          };
36246        }
36247        return {
36248          // for custom link which has no type
36249          // always show pages as initial suggestions
36250          initialSuggestionsSearchOptions: {
36251            type: 'post',
36252            subtype: 'page',
36253            perPage: 20
36254          }
36255        };
36256    }
36257  }
36258  function LinkUIBlockInserter({
36259    clientId,
36260    onBack
36261  }) {
36262    const {
36263      rootBlockClientId
36264    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
36265      const {
36266        getBlockRootClientId
36267      } = select(external_wp_blockEditor_namespaceObject.store);
36268      return {
36269        rootBlockClientId: getBlockRootClientId(clientId)
36270      };
36271    }, [clientId]);
36272    const focusOnMountRef = (0,external_wp_compose_namespaceObject.useFocusOnMount)('firstElement');
36273    const dialogTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_blockEditor_namespaceObject.LinkControl, `link-ui-block-inserter__title`);
36274    const dialogDescriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_blockEditor_namespaceObject.LinkControl, `link-ui-block-inserter__description`);
36275    if (!clientId) {
36276      return null;
36277    }
36278    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
36279      className: "link-ui-block-inserter",
36280      role: "dialog",
36281      "aria-labelledby": dialogTitleId,
36282      "aria-describedby": dialogDescriptionId,
36283      ref: focusOnMountRef,
36284      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.VisuallyHidden, {
36285        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
36286          id: dialogTitleId,
36287          children: (0,external_wp_i18n_namespaceObject.__)('Add block')
36288        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
36289          id: dialogDescriptionId,
36290          children: (0,external_wp_i18n_namespaceObject.__)('Choose a block to add to your Navigation.')
36291        })]
36292      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
36293        className: "link-ui-block-inserter__back",
36294        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right_small : chevron_left_small,
36295        onClick: e => {
36296          e.preventDefault();
36297          onBack();
36298        },
36299        size: "small",
36300        children: (0,external_wp_i18n_namespaceObject.__)('Back')
36301      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QuickInserter, {
36302        rootClientId: rootBlockClientId,
36303        clientId: clientId,
36304        isAppender: false,
36305        prioritizePatterns: false,
36306        selectBlockOnInsert: true,
36307        hasSearch: false
36308      })]
36309    });
36310  }
36311  function UnforwardedLinkUI(props, ref) {
36312    const {
36313      label,
36314      url,
36315      opensInNewTab,
36316      type,
36317      kind
36318    } = props.link;
36319    const postType = type || 'page';
36320    const [addingBlock, setAddingBlock] = (0,external_wp_element_namespaceObject.useState)(false);
36321    const [focusAddBlockButton, setFocusAddBlockButton] = (0,external_wp_element_namespaceObject.useState)(false);
36322    const {
36323      saveEntityRecord
36324    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
36325    const permissions = (0,external_wp_coreData_namespaceObject.useResourcePermissions)({
36326      kind: 'postType',
36327      name: postType
36328    });
36329    async function handleCreate(pageTitle) {
36330      const page = await saveEntityRecord('postType', postType, {
36331        title: pageTitle,
36332        status: 'draft'
36333      });
36334      return {
36335        id: page.id,
36336        type: postType,
36337        // Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)
36338        // is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.
36339        // Ideally in the future we will update both APIs to utilise the "raw" form of the title which is better suited to edit contexts.
36340        // e.g.
36341        // - title.raw = "Yes & No"
36342        // - title.rendered = "Yes &#038; No"
36343        // - decodeEntities( title.rendered ) = "Yes & No"
36344        // See:
36345        // - https://github.com/WordPress/gutenberg/pull/41063
36346        // - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218
36347        title: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(page.title.rendered),
36348        url: page.link,
36349        kind: 'post-type'
36350      };
36351    }
36352  
36353    // Memoize link value to avoid overriding the LinkControl's internal state.
36354    // This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.
36355    const link = (0,external_wp_element_namespaceObject.useMemo)(() => ({
36356      url,
36357      opensInNewTab,
36358      title: label && (0,external_wp_dom_namespaceObject.__unstableStripHTML)(label)
36359    }), [label, opensInNewTab, url]);
36360    const dialogTitleId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkUI, `link-ui-link-control__title`);
36361    const dialogDescriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkUI, `link-ui-link-control__description`);
36362    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Popover, {
36363      ref: ref,
36364      placement: "bottom",
36365      onClose: props.onClose,
36366      anchor: props.anchor,
36367      shift: true,
36368      children: [!addingBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
36369        role: "dialog",
36370        "aria-labelledby": dialogTitleId,
36371        "aria-describedby": dialogDescriptionId,
36372        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.VisuallyHidden, {
36373          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
36374            id: dialogTitleId,
36375            children: (0,external_wp_i18n_namespaceObject.__)('Add link')
36376          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
36377            id: dialogDescriptionId,
36378            children: (0,external_wp_i18n_namespaceObject.__)('Search for and add a link to your Navigation.')
36379          })]
36380        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.LinkControl, {
36381          hasTextControl: true,
36382          hasRichPreviews: true,
36383          value: link,
36384          showInitialSuggestions: true,
36385          withCreateSuggestion: permissions.canCreate,
36386          createSuggestion: handleCreate,
36387          createSuggestionButtonText: searchTerm => {
36388            let format;
36389            if (type === 'post') {
36390              /* translators: %s: search term. */
36391              format = (0,external_wp_i18n_namespaceObject.__)('Create draft post: <mark>%s</mark>');
36392            } else {
36393              /* translators: %s: search term. */
36394              format = (0,external_wp_i18n_namespaceObject.__)('Create draft page: <mark>%s</mark>');
36395            }
36396            return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(format, searchTerm), {
36397              mark: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("mark", {})
36398            });
36399          },
36400          noDirectEntry: !!type,
36401          noURLSuggestion: !!type,
36402          suggestionsQuery: getSuggestionsQuery(type, kind),
36403          onChange: props.onChange,
36404          onRemove: props.onRemove,
36405          onCancel: props.onCancel,
36406          renderControlBottom: () => !link?.url?.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUITools, {
36407            focusAddBlockButton: focusAddBlockButton,
36408            setAddingBlock: () => {
36409              setAddingBlock(true);
36410              setFocusAddBlockButton(false);
36411            }
36412          })
36413        })]
36414      }), addingBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUIBlockInserter, {
36415        clientId: props.clientId,
36416        onBack: () => {
36417          setAddingBlock(false);
36418          setFocusAddBlockButton(true);
36419        }
36420      })]
36421    });
36422  }
36423  const LinkUI = (0,external_wp_element_namespaceObject.forwardRef)(UnforwardedLinkUI);
36424  const LinkUITools = ({
36425    setAddingBlock,
36426    focusAddBlockButton
36427  }) => {
36428    const blockInserterAriaRole = 'listbox';
36429    const addBlockButtonRef = (0,external_wp_element_namespaceObject.useRef)();
36430  
36431    // Focus the add block button when the popover is opened.
36432    (0,external_wp_element_namespaceObject.useEffect)(() => {
36433      if (focusAddBlockButton) {
36434        addBlockButtonRef.current?.focus();
36435      }
36436    }, [focusAddBlockButton]);
36437    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
36438      className: "link-ui-tools",
36439      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
36440        __next40pxDefaultSize: true,
36441        ref: addBlockButtonRef,
36442        icon: library_plus,
36443        onClick: e => {
36444          e.preventDefault();
36445          setAddingBlock(true);
36446        },
36447        "aria-haspopup": blockInserterAriaRole,
36448        children: (0,external_wp_i18n_namespaceObject.__)('Add block')
36449      })
36450    });
36451  };
36452  /* harmony default export */ const link_ui = ((/* unused pure expression or super */ null && (LinkUITools)));
36453  
36454  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/menu-inspector-controls.js
36455  /**
36456   * WordPress dependencies
36457   */
36458  
36459  
36460  
36461  
36462  
36463  /**
36464   * Internal dependencies
36465   */
36466  
36467  
36468  
36469  
36470  
36471  
36472  
36473  
36474  const actionLabel = /* translators: %s: The name of a menu. */(0,external_wp_i18n_namespaceObject.__)("Switch to '%s'");
36475  const BLOCKS_WITH_LINK_UI_SUPPORT = ['core/navigation-link', 'core/navigation-submenu'];
36476  const {
36477    PrivateListView
36478  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
36479  function AdditionalBlockContent({
36480    block,
36481    insertedBlock,
36482    setInsertedBlock
36483  }) {
36484    const {
36485      updateBlockAttributes
36486    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
36487    const supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(insertedBlock?.name);
36488    const blockWasJustInserted = insertedBlock?.clientId === block.clientId;
36489    const showLinkControls = supportsLinkControls && blockWasJustInserted;
36490    if (!showLinkControls) {
36491      return null;
36492    }
36493    const setInsertedBlockAttributes = _insertedBlockClientId => _updatedAttributes => {
36494      if (!_insertedBlockClientId) {
36495        return;
36496      }
36497      updateBlockAttributes(_insertedBlockClientId, _updatedAttributes);
36498    };
36499    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
36500      clientId: insertedBlock?.clientId,
36501      link: insertedBlock?.attributes,
36502      onClose: () => {
36503        setInsertedBlock(null);
36504      },
36505      onChange: updatedValue => {
36506        updateAttributes(updatedValue, setInsertedBlockAttributes(insertedBlock?.clientId), insertedBlock?.attributes);
36507        setInsertedBlock(null);
36508      },
36509      onCancel: () => {
36510        setInsertedBlock(null);
36511      }
36512    });
36513  }
36514  const MainContent = ({
36515    clientId,
36516    currentMenuId,
36517    isLoading,
36518    isNavigationMenuMissing,
36519    onCreateNew
36520  }) => {
36521    const hasChildren = (0,external_wp_data_namespaceObject.useSelect)(select => {
36522      return !!select(external_wp_blockEditor_namespaceObject.store).getBlockCount(clientId);
36523    }, [clientId]);
36524    const {
36525      navigationMenu
36526    } = useNavigationMenu(currentMenuId);
36527    if (currentMenuId && isNavigationMenuMissing) {
36528      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(deleted_navigation_warning, {
36529        onCreateNew: onCreateNew,
36530        isNotice: true
36531      });
36532    }
36533    if (isLoading) {
36534      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {});
36535    }
36536    const description = navigationMenu ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: The name of a menu. */
36537    (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');
36538    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
36539      className: "wp-block-navigation__menu-inspector-controls",
36540      children: [!hasChildren && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
36541        className: "wp-block-navigation__menu-inspector-controls__empty-message",
36542        children: (0,external_wp_i18n_namespaceObject.__)('This Navigation Menu is empty.')
36543      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivateListView, {
36544        rootClientId: clientId,
36545        isExpanded: true,
36546        description: description,
36547        showAppender: true,
36548        blockSettingsMenu: LeafMoreMenu,
36549        additionalBlockContent: AdditionalBlockContent
36550      })]
36551    });
36552  };
36553  const MenuInspectorControls = props => {
36554    const {
36555      createNavigationMenuIsSuccess,
36556      createNavigationMenuIsError,
36557      currentMenuId = null,
36558      onCreateNew,
36559      onSelectClassicMenu,
36560      onSelectNavigationMenu,
36561      isManageMenusButtonDisabled,
36562      blockEditingMode
36563    } = props;
36564    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
36565      group: "list",
36566      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
36567        title: null,
36568        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
36569          className: "wp-block-navigation-off-canvas-editor__header",
36570          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHeading, {
36571            className: "wp-block-navigation-off-canvas-editor__title",
36572            level: 2,
36573            children: (0,external_wp_i18n_namespaceObject.__)('Menu')
36574          }), blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigation_menu_selector, {
36575            currentMenuId: currentMenuId,
36576            onSelectClassicMenu: onSelectClassicMenu,
36577            onSelectNavigationMenu: onSelectNavigationMenu,
36578            onCreateNew: onCreateNew,
36579            createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
36580            createNavigationMenuIsError: createNavigationMenuIsError,
36581            actionLabel: actionLabel,
36582            isManageMenusButtonDisabled: isManageMenusButtonDisabled
36583          })]
36584        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MainContent, {
36585          ...props
36586        })]
36587      })
36588    });
36589  };
36590  /* harmony default export */ const menu_inspector_controls = (MenuInspectorControls);
36591  
36592  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/accessible-description.js
36593  /**
36594   * WordPress dependencies
36595   */
36596  
36597  
36598  function AccessibleDescription({
36599    id,
36600    children
36601  }) {
36602    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
36603      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
36604        id: id,
36605        className: "wp-block-navigation__description",
36606        children: children
36607      })
36608    });
36609  }
36610  
36611  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/accessible-menu-description.js
36612  /**
36613   * WordPress dependencies
36614   */
36615  
36616  
36617  
36618  /**
36619   * Internal dependencies
36620   */
36621  
36622  
36623  function AccessibleMenuDescription({
36624    id
36625  }) {
36626    const [menuTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_navigation', 'title');
36627    /* translators: %s: Title of a Navigation Menu post. */
36628    const description = (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu: "%s"`), menuTitle);
36629    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleDescription, {
36630      id: id,
36631      children: description
36632    });
36633  }
36634  
36635  ;// ./node_modules/@wordpress/block-library/build-module/navigation/edit/index.js
36636  /**
36637   * External dependencies
36638   */
36639  
36640  
36641  /**
36642   * WordPress dependencies
36643   */
36644  
36645  
36646  
36647  
36648  
36649  
36650  
36651  
36652  
36653  
36654  /**
36655   * Internal dependencies
36656   */
36657  
36658  
36659  
36660  
36661  
36662  
36663  
36664  
36665  
36666  
36667  
36668  
36669  
36670  
36671  
36672  
36673  
36674  
36675  
36676  
36677  
36678  
36679  function ColorTools({
36680    textColor,
36681    setTextColor,
36682    backgroundColor,
36683    setBackgroundColor,
36684    overlayTextColor,
36685    setOverlayTextColor,
36686    overlayBackgroundColor,
36687    setOverlayBackgroundColor,
36688    clientId,
36689    navRef
36690  }) {
36691    const [detectedBackgroundColor, setDetectedBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
36692    const [detectedColor, setDetectedColor] = (0,external_wp_element_namespaceObject.useState)();
36693    const [detectedOverlayBackgroundColor, setDetectedOverlayBackgroundColor] = (0,external_wp_element_namespaceObject.useState)();
36694    const [detectedOverlayColor, setDetectedOverlayColor] = (0,external_wp_element_namespaceObject.useState)();
36695    // Turn on contrast checker for web only since it's not supported on mobile yet.
36696    const enableContrastChecking = external_wp_element_namespaceObject.Platform.OS === 'web';
36697    (0,external_wp_element_namespaceObject.useEffect)(() => {
36698      if (!enableContrastChecking) {
36699        return;
36700      }
36701      detectColors(navRef.current, setDetectedColor, setDetectedBackgroundColor);
36702      const subMenuElement = navRef.current?.querySelector('[data-type="core/navigation-submenu"] [data-type="core/navigation-link"]');
36703      if (!subMenuElement) {
36704        return;
36705      }
36706  
36707      // Only detect submenu overlay colors if they have previously been explicitly set.
36708      // This avoids the contrast checker from reporting on inherited submenu colors and
36709      // showing the contrast warning twice.
36710      if (overlayTextColor.color || overlayBackgroundColor.color) {
36711        detectColors(subMenuElement, setDetectedOverlayColor, setDetectedOverlayBackgroundColor);
36712      }
36713    }, [enableContrastChecking, overlayTextColor.color, overlayBackgroundColor.color, navRef]);
36714    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
36715    if (!colorGradientSettings.hasColorsOrGradients) {
36716      return null;
36717    }
36718    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36719      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
36720        __experimentalIsRenderedInSidebar: true,
36721        settings: [{
36722          colorValue: textColor.color,
36723          label: (0,external_wp_i18n_namespaceObject.__)('Text'),
36724          onColorChange: setTextColor,
36725          resetAllFilter: () => setTextColor(),
36726          clearable: true
36727        }, {
36728          colorValue: backgroundColor.color,
36729          label: (0,external_wp_i18n_namespaceObject.__)('Background'),
36730          onColorChange: setBackgroundColor,
36731          resetAllFilter: () => setBackgroundColor(),
36732          clearable: true
36733        }, {
36734          colorValue: overlayTextColor.color,
36735          label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay text'),
36736          onColorChange: setOverlayTextColor,
36737          resetAllFilter: () => setOverlayTextColor(),
36738          clearable: true
36739        }, {
36740          colorValue: overlayBackgroundColor.color,
36741          label: (0,external_wp_i18n_namespaceObject.__)('Submenu & overlay background'),
36742          onColorChange: setOverlayBackgroundColor,
36743          resetAllFilter: () => setOverlayBackgroundColor(),
36744          clearable: true
36745        }],
36746        panelId: clientId,
36747        ...colorGradientSettings,
36748        gradients: [],
36749        disableCustomGradients: true
36750      }), enableContrastChecking && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
36751        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
36752          backgroundColor: detectedBackgroundColor,
36753          textColor: detectedColor
36754        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
36755          backgroundColor: detectedOverlayBackgroundColor,
36756          textColor: detectedOverlayColor
36757        })]
36758      })]
36759    });
36760  }
36761  function Navigation({
36762    attributes,
36763    setAttributes,
36764    clientId,
36765    isSelected,
36766    className,
36767    backgroundColor,
36768    setBackgroundColor,
36769    textColor,
36770    setTextColor,
36771    overlayBackgroundColor,
36772    setOverlayBackgroundColor,
36773    overlayTextColor,
36774    setOverlayTextColor,
36775    // These props are used by the navigation editor to override specific
36776    // navigation block settings.
36777    hasSubmenuIndicatorSetting = true,
36778    customPlaceholder: CustomPlaceholder = null,
36779    __unstableLayoutClassNames: layoutClassNames
36780  }) {
36781    const {
36782      openSubmenusOnClick,
36783      overlayMenu,
36784      showSubmenuIcon,
36785      templateLock,
36786      layout: {
36787        justifyContent,
36788        orientation = 'horizontal',
36789        flexWrap = 'wrap'
36790      } = {},
36791      hasIcon,
36792      icon = 'handle'
36793    } = attributes;
36794    const ref = attributes.ref;
36795    const setRef = (0,external_wp_element_namespaceObject.useCallback)(postId => {
36796      setAttributes({
36797        ref: postId
36798      });
36799    }, [setAttributes]);
36800    const recursionId = `navigationMenu/$ref}`;
36801    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(recursionId);
36802    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
36803  
36804    // Preload classic menus, so that they don't suddenly pop-in when viewing
36805    // the Select Menu dropdown.
36806    const {
36807      menus: classicMenus
36808    } = useNavigationEntities();
36809    const [showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice] = use_navigation_notice({
36810      name: 'block-library/core/navigation/status'
36811    });
36812    const [showClassicMenuConversionNotice, hideClassicMenuConversionNotice] = use_navigation_notice({
36813      name: 'block-library/core/navigation/classic-menu-conversion'
36814    });
36815    const [showNavigationMenuPermissionsNotice, hideNavigationMenuPermissionsNotice] = use_navigation_notice({
36816      name: 'block-library/core/navigation/permissions/update'
36817    });
36818    const {
36819      create: createNavigationMenu,
36820      status: createNavigationMenuStatus,
36821      error: createNavigationMenuError,
36822      value: createNavigationMenuPost,
36823      isPending: isCreatingNavigationMenu,
36824      isSuccess: createNavigationMenuIsSuccess,
36825      isError: createNavigationMenuIsError
36826    } = useCreateNavigationMenu(clientId);
36827    const createUntitledEmptyNavigationMenu = async () => {
36828      await createNavigationMenu('');
36829    };
36830    const {
36831      hasUncontrolledInnerBlocks,
36832      uncontrolledInnerBlocks,
36833      isInnerBlockSelected,
36834      innerBlocks
36835    } = useInnerBlocks(clientId);
36836    const hasSubmenus = !!innerBlocks.find(block => block.name === 'core/navigation-submenu');
36837    const {
36838      replaceInnerBlocks,
36839      selectBlock,
36840      __unstableMarkNextChangeAsNotPersistent
36841    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
36842    const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0,external_wp_element_namespaceObject.useState)(false);
36843    const [overlayMenuPreview, setOverlayMenuPreview] = (0,external_wp_element_namespaceObject.useState)(false);
36844    const {
36845      hasResolvedNavigationMenus,
36846      isNavigationMenuResolved,
36847      isNavigationMenuMissing,
36848      canUserUpdateNavigationMenu,
36849      hasResolvedCanUserUpdateNavigationMenu,
36850      canUserDeleteNavigationMenu,
36851      hasResolvedCanUserDeleteNavigationMenu,
36852      canUserCreateNavigationMenus,
36853      isResolvingCanUserCreateNavigationMenus,
36854      hasResolvedCanUserCreateNavigationMenus
36855    } = useNavigationMenu(ref);
36856    const navMenuResolvedButMissing = hasResolvedNavigationMenus && isNavigationMenuMissing;
36857    const {
36858      convert: convertClassicMenu,
36859      status: classicMenuConversionStatus,
36860      error: classicMenuConversionError
36861    } = use_convert_classic_menu_to_block_menu(createNavigationMenu);
36862    const isConvertingClassicMenu = classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
36863    const handleUpdateMenu = (0,external_wp_element_namespaceObject.useCallback)((menuId, options = {
36864      focusNavigationBlock: false
36865    }) => {
36866      const {
36867        focusNavigationBlock
36868      } = options;
36869      setRef(menuId);
36870      if (focusNavigationBlock) {
36871        selectBlock(clientId);
36872      }
36873    }, [selectBlock, clientId, setRef]);
36874    const isEntityAvailable = !isNavigationMenuMissing && isNavigationMenuResolved;
36875  
36876    // If the block has inner blocks, but no menu id, then these blocks are either:
36877    // - inserted via a pattern.
36878    // - inserted directly via Code View (or otherwise).
36879    // - from an older version of navigation block added before the block used a wp_navigation entity.
36880    // Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,
36881    // that automatically saves the menu as an entity when changes are made to the inner blocks.
36882    const hasUnsavedBlocks = hasUncontrolledInnerBlocks && !isEntityAvailable;
36883    const {
36884      getNavigationFallbackId
36885    } = unlock((0,external_wp_data_namespaceObject.useSelect)(external_wp_coreData_namespaceObject.store));
36886    const navigationFallbackId = !(ref || hasUnsavedBlocks) ? getNavigationFallbackId() : null;
36887    (0,external_wp_element_namespaceObject.useEffect)(() => {
36888      // If:
36889      // - there is an existing menu, OR
36890      // - there are existing (uncontrolled) inner blocks
36891      // ...then don't request a fallback menu.
36892      if (ref || hasUnsavedBlocks || !navigationFallbackId) {
36893        return;
36894      }
36895  
36896      /**
36897       *  This fallback displays (both in editor and on front)
36898       *  The fallback should not request a save (entity dirty state)
36899       *  nor to be undoable, hence why it is marked as non persistent
36900       */
36901  
36902      __unstableMarkNextChangeAsNotPersistent();
36903      setRef(navigationFallbackId);
36904    }, [ref, setRef, hasUnsavedBlocks, navigationFallbackId, __unstableMarkNextChangeAsNotPersistent]);
36905    const navRef = (0,external_wp_element_namespaceObject.useRef)();
36906  
36907    // The standard HTML5 tag for the block wrapper.
36908    const TagName = 'nav';
36909  
36910    // "placeholder" shown if:
36911    // - there is no ref attribute pointing to a Navigation Post.
36912    // - there is no classic menu conversion process in progress.
36913    // - there is no menu creation process in progress.
36914    // - there are no uncontrolled blocks.
36915    const isPlaceholder = !ref && !isCreatingNavigationMenu && !isConvertingClassicMenu && hasResolvedNavigationMenus && classicMenus?.length === 0 && !hasUncontrolledInnerBlocks;
36916  
36917    // "loading" state:
36918    // - there is a menu creation process in progress.
36919    // - there is a classic menu conversion process in progress.
36920    // OR:
36921    // - there is a ref attribute pointing to a Navigation Post
36922    // - the Navigation Post isn't available (hasn't resolved) yet.
36923    const isLoading = !hasResolvedNavigationMenus || isCreatingNavigationMenu || isConvertingClassicMenu || !!(ref && !isEntityAvailable && !isConvertingClassicMenu);
36924    const textDecoration = attributes.style?.typography?.textDecoration;
36925    const hasBlockOverlay = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__unstableHasActiveBlockOverlayActive(clientId), [clientId]);
36926    const isResponsive = 'never' !== overlayMenu;
36927    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
36928      ref: navRef,
36929      className: dist_clsx(className, {
36930        'items-justified-right': justifyContent === 'right',
36931        'items-justified-space-between': justifyContent === 'space-between',
36932        'items-justified-left': justifyContent === 'left',
36933        'items-justified-center': justifyContent === 'center',
36934        'is-vertical': orientation === 'vertical',
36935        'no-wrap': flexWrap === 'nowrap',
36936        'is-responsive': isResponsive,
36937        'has-text-color': !!textColor.color || !!textColor?.class,
36938        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor?.slug)]: !!textColor?.slug,
36939        'has-background': !!backgroundColor.color || backgroundColor.class,
36940        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor?.slug)]: !!backgroundColor?.slug,
36941        [`has-text-decoration-$textDecoration}`]: textDecoration,
36942        'block-editor-block-content-overlay': hasBlockOverlay
36943      }, layoutClassNames),
36944      style: {
36945        color: !textColor?.slug && textColor?.color,
36946        backgroundColor: !backgroundColor?.slug && backgroundColor?.color
36947      }
36948    });
36949    const onSelectClassicMenu = async classicMenu => {
36950      return convertClassicMenu(classicMenu.id, classicMenu.name, 'draft');
36951    };
36952    const onSelectNavigationMenu = menuId => {
36953      handleUpdateMenu(menuId);
36954    };
36955    (0,external_wp_element_namespaceObject.useEffect)(() => {
36956      hideNavigationMenuStatusNotice();
36957      if (isCreatingNavigationMenu) {
36958        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)(`Creating Navigation Menu.`));
36959      }
36960      if (createNavigationMenuIsSuccess) {
36961        handleUpdateMenu(createNavigationMenuPost?.id, {
36962          focusNavigationBlock: true
36963        });
36964        showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)(`Navigation Menu successfully created.`));
36965      }
36966      if (createNavigationMenuIsError) {
36967        showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)('Failed to create Navigation Menu.'));
36968      }
36969    }, [createNavigationMenuStatus, createNavigationMenuError, createNavigationMenuPost?.id, createNavigationMenuIsError, createNavigationMenuIsSuccess, isCreatingNavigationMenu, handleUpdateMenu, hideNavigationMenuStatusNotice, showNavigationMenuStatusNotice]);
36970    (0,external_wp_element_namespaceObject.useEffect)(() => {
36971      hideClassicMenuConversionNotice();
36972      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING) {
36973        (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Classic menu importing.'));
36974      }
36975      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS) {
36976        showClassicMenuConversionNotice((0,external_wp_i18n_namespaceObject.__)('Classic menu imported successfully.'));
36977        handleUpdateMenu(createNavigationMenuPost?.id, {
36978          focusNavigationBlock: true
36979        });
36980      }
36981      if (classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR) {
36982        showClassicMenuConversionNotice((0,external_wp_i18n_namespaceObject.__)('Classic menu import failed.'));
36983      }
36984    }, [classicMenuConversionStatus, classicMenuConversionError, hideClassicMenuConversionNotice, showClassicMenuConversionNotice, createNavigationMenuPost?.id, handleUpdateMenu]);
36985    (0,external_wp_element_namespaceObject.useEffect)(() => {
36986      if (!isSelected && !isInnerBlockSelected) {
36987        hideNavigationMenuPermissionsNotice();
36988      }
36989      if (isSelected || isInnerBlockSelected) {
36990        if (ref && !navMenuResolvedButMissing && hasResolvedCanUserUpdateNavigationMenu && !canUserUpdateNavigationMenu) {
36991          showNavigationMenuPermissionsNotice((0,external_wp_i18n_namespaceObject.__)('You do not have permission to edit this Menu. Any changes made will not be saved.'));
36992        }
36993        if (!ref && hasResolvedCanUserCreateNavigationMenus && !canUserCreateNavigationMenus) {
36994          showNavigationMenuPermissionsNotice((0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Navigation Menus.'));
36995        }
36996      }
36997    }, [isSelected, isInnerBlockSelected, canUserUpdateNavigationMenu, hasResolvedCanUserUpdateNavigationMenu, canUserCreateNavigationMenus, hasResolvedCanUserCreateNavigationMenus, ref, hideNavigationMenuPermissionsNotice, showNavigationMenuPermissionsNotice, navMenuResolvedButMissing]);
36998    const hasManagePermissions = canUserCreateNavigationMenus || canUserUpdateNavigationMenu;
36999    const overlayMenuPreviewClasses = dist_clsx('wp-block-navigation__overlay-menu-preview', {
37000      open: overlayMenuPreview
37001    });
37002    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.') : '';
37003    const isFirstRender = (0,external_wp_element_namespaceObject.useRef)(true); // Don't speak on first render.
37004    (0,external_wp_element_namespaceObject.useEffect)(() => {
37005      if (!isFirstRender.current && submenuAccessibilityNotice) {
37006        (0,external_wp_a11y_namespaceObject.speak)(submenuAccessibilityNotice);
37007      }
37008      isFirstRender.current = false;
37009    }, [submenuAccessibilityNotice]);
37010    const overlayMenuPreviewId = (0,external_wp_compose_namespaceObject.useInstanceId)(OverlayMenuPreview, `overlay-menu-preview`);
37011    const stylingInspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37012      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37013        children: hasSubmenuIndicatorSetting && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
37014          title: (0,external_wp_i18n_namespaceObject.__)('Display'),
37015          children: [isResponsive && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37016            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
37017              __next40pxDefaultSize: true,
37018              className: overlayMenuPreviewClasses,
37019              onClick: () => {
37020                setOverlayMenuPreview(!overlayMenuPreview);
37021              },
37022              "aria-label": (0,external_wp_i18n_namespaceObject.__)('Overlay menu controls'),
37023              "aria-controls": overlayMenuPreviewId,
37024              "aria-expanded": overlayMenuPreview,
37025              children: [hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37026                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuIcon, {
37027                  icon: icon
37028                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
37029                  icon: library_close
37030                })]
37031              }), !hasIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37032                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37033                  children: (0,external_wp_i18n_namespaceObject.__)('Menu')
37034                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
37035                  children: (0,external_wp_i18n_namespaceObject.__)('Close')
37036                })]
37037              })]
37038            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37039              id: overlayMenuPreviewId,
37040              children: overlayMenuPreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverlayMenuPreview, {
37041                setAttributes: setAttributes,
37042                hasIcon: hasIcon,
37043                icon: icon,
37044                hidden: !overlayMenuPreview
37045              })
37046            })]
37047          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
37048            __next40pxDefaultSize: true,
37049            __nextHasNoMarginBottom: true,
37050            label: (0,external_wp_i18n_namespaceObject.__)('Overlay Menu'),
37051            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Configure overlay menu'),
37052            value: overlayMenu,
37053            help: (0,external_wp_i18n_namespaceObject.__)('Collapses the navigation options in a menu icon opening an overlay.'),
37054            onChange: value => setAttributes({
37055              overlayMenu: value
37056            }),
37057            isBlock: true,
37058            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
37059              value: "never",
37060              label: (0,external_wp_i18n_namespaceObject.__)('Off')
37061            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
37062              value: "mobile",
37063              label: (0,external_wp_i18n_namespaceObject.__)('Mobile')
37064            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
37065              value: "always",
37066              label: (0,external_wp_i18n_namespaceObject.__)('Always')
37067            })]
37068          }), hasSubmenus && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37069            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h3", {
37070              children: (0,external_wp_i18n_namespaceObject.__)('Submenus')
37071            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
37072              __nextHasNoMarginBottom: true,
37073              checked: openSubmenusOnClick,
37074              onChange: value => {
37075                setAttributes({
37076                  openSubmenusOnClick: value,
37077                  ...(value && {
37078                    showSubmenuIcon: true
37079                  }) // Make sure arrows are shown when we toggle this on.
37080                });
37081              },
37082              label: (0,external_wp_i18n_namespaceObject.__)('Open on click')
37083            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
37084              __nextHasNoMarginBottom: true,
37085              checked: showSubmenuIcon,
37086              onChange: value => {
37087                setAttributes({
37088                  showSubmenuIcon: value
37089                });
37090              },
37091              disabled: attributes.openSubmenusOnClick,
37092              label: (0,external_wp_i18n_namespaceObject.__)('Show arrow')
37093            }), submenuAccessibilityNotice && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37094              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
37095                spokenMessage: null,
37096                status: "warning",
37097                isDismissible: false,
37098                children: submenuAccessibilityNotice
37099              })
37100            })]
37101          })]
37102        })
37103      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37104        group: "color",
37105        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ColorTools, {
37106          textColor: textColor,
37107          setTextColor: setTextColor,
37108          backgroundColor: backgroundColor,
37109          setBackgroundColor: setBackgroundColor,
37110          overlayTextColor: overlayTextColor,
37111          setOverlayTextColor: setOverlayTextColor,
37112          overlayBackgroundColor: overlayBackgroundColor,
37113          setOverlayBackgroundColor: setOverlayBackgroundColor,
37114          clientId: clientId,
37115          navRef: navRef
37116        })
37117      })]
37118    });
37119    const accessibleDescriptionId = `$clientId}-desc`;
37120    const isHiddenByDefault = 'always' === overlayMenu;
37121    const isManageMenusButtonDisabled = !hasManagePermissions || !hasResolvedNavigationMenus;
37122    if (hasUnsavedBlocks && !isCreatingNavigationMenu) {
37123      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
37124        ...blockProps,
37125        "aria-describedby": !isPlaceholder ? accessibleDescriptionId : undefined,
37126        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleDescription, {
37127          id: accessibleDescriptionId,
37128          children: (0,external_wp_i18n_namespaceObject.__)('Unsaved Navigation Menu.')
37129        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
37130          clientId: clientId,
37131          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
37132          createNavigationMenuIsError: createNavigationMenuIsError,
37133          currentMenuId: ref,
37134          isNavigationMenuMissing: isNavigationMenuMissing,
37135          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
37136          onCreateNew: createUntitledEmptyNavigationMenu,
37137          onSelectClassicMenu: onSelectClassicMenu,
37138          onSelectNavigationMenu: onSelectNavigationMenu,
37139          isLoading: isLoading,
37140          blockEditingMode: blockEditingMode
37141        }), blockEditingMode === 'default' && stylingInspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResponsiveWrapper, {
37142          id: clientId,
37143          onToggle: setResponsiveMenuVisibility,
37144          isOpen: isResponsiveMenuOpen,
37145          hasIcon: hasIcon,
37146          icon: icon,
37147          isResponsive: isResponsive,
37148          isHiddenByDefault: isHiddenByDefault,
37149          overlayBackgroundColor: overlayBackgroundColor,
37150          overlayTextColor: overlayTextColor,
37151          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(UnsavedInnerBlocks, {
37152            createNavigationMenu: createNavigationMenu,
37153            blocks: uncontrolledInnerBlocks,
37154            hasSelection: isSelected || isInnerBlockSelected
37155          })
37156        })]
37157      });
37158    }
37159  
37160    // Show a warning if the selected menu is no longer available.
37161    // TODO - the user should be able to select a new one?
37162    if (ref && isNavigationMenuMissing) {
37163      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
37164        ...blockProps,
37165        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
37166          clientId: clientId,
37167          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
37168          createNavigationMenuIsError: createNavigationMenuIsError,
37169          currentMenuId: ref,
37170          isNavigationMenuMissing: isNavigationMenuMissing,
37171          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
37172          onCreateNew: createUntitledEmptyNavigationMenu,
37173          onSelectClassicMenu: onSelectClassicMenu,
37174          onSelectNavigationMenu: onSelectNavigationMenu,
37175          isLoading: isLoading,
37176          blockEditingMode: blockEditingMode
37177        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(deleted_navigation_warning, {
37178          onCreateNew: createUntitledEmptyNavigationMenu
37179        })]
37180      });
37181    }
37182    if (isEntityAvailable && hasAlreadyRendered) {
37183      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37184        ...blockProps,
37185        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
37186          children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
37187        })
37188      });
37189    }
37190    const PlaceholderComponent = CustomPlaceholder ? CustomPlaceholder : NavigationPlaceholder;
37191  
37192    /**
37193     * Historically the navigation block has supported custom placeholders.
37194     * Even though the current UX tries as hard as possible not to
37195     * end up in a placeholder state, the block continues to support
37196     * this extensibility point, via a CustomPlaceholder.
37197     * When CustomPlaceholder is present it becomes the default fallback
37198     * for an empty navigation block, instead of the default fallbacks.
37199     *
37200     */
37201  
37202    if (isPlaceholder && CustomPlaceholder) {
37203      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
37204        ...blockProps,
37205        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PlaceholderComponent, {
37206          isSelected: isSelected,
37207          currentMenuId: ref,
37208          clientId: clientId,
37209          canUserCreateNavigationMenus: canUserCreateNavigationMenus,
37210          isResolvingCanUserCreateNavigationMenus: isResolvingCanUserCreateNavigationMenus,
37211          onSelectNavigationMenu: onSelectNavigationMenu,
37212          onSelectClassicMenu: onSelectClassicMenu,
37213          onCreateEmpty: createUntitledEmptyNavigationMenu
37214        })
37215      });
37216    }
37217    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_coreData_namespaceObject.EntityProvider, {
37218      kind: "postType",
37219      type: "wp_navigation",
37220      id: ref,
37221      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
37222        uniqueId: recursionId,
37223        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(menu_inspector_controls, {
37224          clientId: clientId,
37225          createNavigationMenuIsSuccess: createNavigationMenuIsSuccess,
37226          createNavigationMenuIsError: createNavigationMenuIsError,
37227          currentMenuId: ref,
37228          isNavigationMenuMissing: isNavigationMenuMissing,
37229          isManageMenusButtonDisabled: isManageMenusButtonDisabled,
37230          onCreateNew: createUntitledEmptyNavigationMenu,
37231          onSelectClassicMenu: onSelectClassicMenu,
37232          onSelectNavigationMenu: onSelectNavigationMenu,
37233          isLoading: isLoading,
37234          blockEditingMode: blockEditingMode
37235        }), blockEditingMode === 'default' && stylingInspectorControls, blockEditingMode === 'default' && isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
37236          group: "advanced",
37237          children: [hasResolvedCanUserUpdateNavigationMenu && canUserUpdateNavigationMenu && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationMenuNameControl, {}), hasResolvedCanUserDeleteNavigationMenu && canUserDeleteNavigationMenu && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationMenuDeleteControl, {
37238            onDelete: () => {
37239              replaceInnerBlocks(clientId, []);
37240              showNavigationMenuStatusNotice((0,external_wp_i18n_namespaceObject.__)('Navigation Menu successfully deleted.'));
37241            }
37242          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(manage_menus_button, {
37243            disabled: isManageMenusButtonDisabled,
37244            className: "wp-block-navigation-manage-menus-button"
37245          })]
37246        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(TagName, {
37247          ...blockProps,
37248          "aria-describedby": !isPlaceholder && !isLoading ? accessibleDescriptionId : undefined,
37249          children: [isLoading && !isHiddenByDefault && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
37250            className: "wp-block-navigation__loading-indicator-container",
37251            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {
37252              className: "wp-block-navigation__loading-indicator"
37253            })
37254          }), (!isLoading || isHiddenByDefault) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
37255            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AccessibleMenuDescription, {
37256              id: accessibleDescriptionId
37257            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResponsiveWrapper, {
37258              id: clientId,
37259              onToggle: setResponsiveMenuVisibility,
37260              hasIcon: hasIcon,
37261              icon: icon,
37262              isOpen: isResponsiveMenuOpen,
37263              isResponsive: isResponsive,
37264              isHiddenByDefault: isHiddenByDefault,
37265              overlayBackgroundColor: overlayBackgroundColor,
37266              overlayTextColor: overlayTextColor,
37267              children: isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationInnerBlocks, {
37268                clientId: clientId,
37269                hasCustomPlaceholder: !!CustomPlaceholder,
37270                templateLock: templateLock,
37271                orientation: orientation
37272              })
37273            })]
37274          })]
37275        })]
37276      })
37277    });
37278  }
37279  /* harmony default export */ const navigation_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)({
37280    textColor: 'color'
37281  }, {
37282    backgroundColor: 'color'
37283  }, {
37284    overlayBackgroundColor: 'color'
37285  }, {
37286    overlayTextColor: 'color'
37287  })(Navigation));
37288  
37289  ;// ./node_modules/@wordpress/block-library/build-module/navigation/save.js
37290  /**
37291   * WordPress dependencies
37292   */
37293  
37294  
37295  function navigation_save_save({
37296    attributes
37297  }) {
37298    if (attributes.ref) {
37299      // Avoid rendering inner blocks when a ref is defined.
37300      // When this id is defined the inner blocks are loaded from the
37301      // `wp_navigation` entity rather than the hard-coded block html.
37302      return;
37303    }
37304    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37305  }
37306  
37307  ;// ./node_modules/@wordpress/block-library/build-module/navigation/deprecated.js
37308  /**
37309   * WordPress dependencies
37310   */
37311  
37312  
37313  
37314  /**
37315   * Internal dependencies
37316   */
37317  
37318  
37319  const TYPOGRAPHY_PRESET_DEPRECATION_MAP = {
37320    fontStyle: 'var:preset|font-style|',
37321    fontWeight: 'var:preset|font-weight|',
37322    textDecoration: 'var:preset|text-decoration|',
37323    textTransform: 'var:preset|text-transform|'
37324  };
37325  const migrateIdToRef = ({
37326    navigationMenuId,
37327    ...attributes
37328  }) => {
37329    return {
37330      ...attributes,
37331      ref: navigationMenuId
37332    };
37333  };
37334  const deprecated_migrateWithLayout = attributes => {
37335    if (!!attributes.layout) {
37336      return attributes;
37337    }
37338    const {
37339      itemsJustification,
37340      orientation,
37341      ...updatedAttributes
37342    } = attributes;
37343    if (itemsJustification || orientation) {
37344      Object.assign(updatedAttributes, {
37345        layout: {
37346          type: 'flex',
37347          ...(itemsJustification && {
37348            justifyContent: itemsJustification
37349          }),
37350          ...(orientation && {
37351            orientation
37352          })
37353        }
37354      });
37355    }
37356    return updatedAttributes;
37357  };
37358  const navigation_deprecated_v6 = {
37359    attributes: {
37360      navigationMenuId: {
37361        type: 'number'
37362      },
37363      textColor: {
37364        type: 'string'
37365      },
37366      customTextColor: {
37367        type: 'string'
37368      },
37369      rgbTextColor: {
37370        type: 'string'
37371      },
37372      backgroundColor: {
37373        type: 'string'
37374      },
37375      customBackgroundColor: {
37376        type: 'string'
37377      },
37378      rgbBackgroundColor: {
37379        type: 'string'
37380      },
37381      showSubmenuIcon: {
37382        type: 'boolean',
37383        default: true
37384      },
37385      openSubmenusOnClick: {
37386        type: 'boolean',
37387        default: false
37388      },
37389      overlayMenu: {
37390        type: 'string',
37391        default: 'mobile'
37392      },
37393      __unstableLocation: {
37394        type: 'string'
37395      },
37396      overlayBackgroundColor: {
37397        type: 'string'
37398      },
37399      customOverlayBackgroundColor: {
37400        type: 'string'
37401      },
37402      overlayTextColor: {
37403        type: 'string'
37404      },
37405      customOverlayTextColor: {
37406        type: 'string'
37407      }
37408    },
37409    supports: {
37410      align: ['wide', 'full'],
37411      anchor: true,
37412      html: false,
37413      inserter: true,
37414      typography: {
37415        fontSize: true,
37416        lineHeight: true,
37417        __experimentalFontStyle: true,
37418        __experimentalFontWeight: true,
37419        __experimentalTextTransform: true,
37420        __experimentalFontFamily: true,
37421        __experimentalTextDecoration: true,
37422        __experimentalDefaultControls: {
37423          fontSize: true
37424        }
37425      },
37426      spacing: {
37427        blockGap: true,
37428        units: ['px', 'em', 'rem', 'vh', 'vw'],
37429        __experimentalDefaultControls: {
37430          blockGap: true
37431        }
37432      },
37433      layout: {
37434        allowSwitching: false,
37435        allowInheriting: false,
37436        default: {
37437          type: 'flex'
37438        }
37439      }
37440    },
37441    save() {
37442      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37443    },
37444    isEligible: ({
37445      navigationMenuId
37446    }) => !!navigationMenuId,
37447    migrate: migrateIdToRef
37448  };
37449  const navigation_deprecated_v5 = {
37450    attributes: {
37451      navigationMenuId: {
37452        type: 'number'
37453      },
37454      orientation: {
37455        type: 'string',
37456        default: 'horizontal'
37457      },
37458      textColor: {
37459        type: 'string'
37460      },
37461      customTextColor: {
37462        type: 'string'
37463      },
37464      rgbTextColor: {
37465        type: 'string'
37466      },
37467      backgroundColor: {
37468        type: 'string'
37469      },
37470      customBackgroundColor: {
37471        type: 'string'
37472      },
37473      rgbBackgroundColor: {
37474        type: 'string'
37475      },
37476      itemsJustification: {
37477        type: 'string'
37478      },
37479      showSubmenuIcon: {
37480        type: 'boolean',
37481        default: true
37482      },
37483      openSubmenusOnClick: {
37484        type: 'boolean',
37485        default: false
37486      },
37487      overlayMenu: {
37488        type: 'string',
37489        default: 'never'
37490      },
37491      __unstableLocation: {
37492        type: 'string'
37493      },
37494      overlayBackgroundColor: {
37495        type: 'string'
37496      },
37497      customOverlayBackgroundColor: {
37498        type: 'string'
37499      },
37500      overlayTextColor: {
37501        type: 'string'
37502      },
37503      customOverlayTextColor: {
37504        type: 'string'
37505      }
37506    },
37507    supports: {
37508      align: ['wide', 'full'],
37509      anchor: true,
37510      html: false,
37511      inserter: true,
37512      typography: {
37513        fontSize: true,
37514        lineHeight: true,
37515        __experimentalFontStyle: true,
37516        __experimentalFontWeight: true,
37517        __experimentalTextTransform: true,
37518        __experimentalFontFamily: true,
37519        __experimentalTextDecoration: true,
37520        __experimentalDefaultControls: {
37521          fontSize: true
37522        }
37523      },
37524      spacing: {
37525        blockGap: true,
37526        units: ['px', 'em', 'rem', 'vh', 'vw'],
37527        __experimentalDefaultControls: {
37528          blockGap: true
37529        }
37530      }
37531    },
37532    save() {
37533      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37534    },
37535    isEligible: ({
37536      itemsJustification,
37537      orientation
37538    }) => !!itemsJustification || !!orientation,
37539    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout)
37540  };
37541  const navigation_deprecated_v4 = {
37542    attributes: {
37543      orientation: {
37544        type: 'string',
37545        default: 'horizontal'
37546      },
37547      textColor: {
37548        type: 'string'
37549      },
37550      customTextColor: {
37551        type: 'string'
37552      },
37553      rgbTextColor: {
37554        type: 'string'
37555      },
37556      backgroundColor: {
37557        type: 'string'
37558      },
37559      customBackgroundColor: {
37560        type: 'string'
37561      },
37562      rgbBackgroundColor: {
37563        type: 'string'
37564      },
37565      itemsJustification: {
37566        type: 'string'
37567      },
37568      showSubmenuIcon: {
37569        type: 'boolean',
37570        default: true
37571      },
37572      openSubmenusOnClick: {
37573        type: 'boolean',
37574        default: false
37575      },
37576      overlayMenu: {
37577        type: 'string',
37578        default: 'never'
37579      },
37580      __unstableLocation: {
37581        type: 'string'
37582      },
37583      overlayBackgroundColor: {
37584        type: 'string'
37585      },
37586      customOverlayBackgroundColor: {
37587        type: 'string'
37588      },
37589      overlayTextColor: {
37590        type: 'string'
37591      },
37592      customOverlayTextColor: {
37593        type: 'string'
37594      }
37595    },
37596    supports: {
37597      align: ['wide', 'full'],
37598      anchor: true,
37599      html: false,
37600      inserter: true,
37601      typography: {
37602        fontSize: true,
37603        lineHeight: true,
37604        __experimentalFontStyle: true,
37605        __experimentalFontWeight: true,
37606        __experimentalTextTransform: true,
37607        __experimentalFontFamily: true,
37608        __experimentalTextDecoration: true
37609      },
37610      spacing: {
37611        blockGap: true,
37612        units: ['px', 'em', 'rem', 'vh', 'vw'],
37613        __experimentalDefaultControls: {
37614          blockGap: true
37615        }
37616      }
37617    },
37618    save() {
37619      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37620    },
37621    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family),
37622    isEligible({
37623      style
37624    }) {
37625      return style?.typography?.fontFamily;
37626    }
37627  };
37628  const migrateIsResponsive = function (attributes) {
37629    delete attributes.isResponsive;
37630    return {
37631      ...attributes,
37632      overlayMenu: 'mobile'
37633    };
37634  };
37635  const migrateTypographyPresets = function (attributes) {
37636    var _attributes$style$typ;
37637    return {
37638      ...attributes,
37639      style: {
37640        ...attributes.style,
37641        typography: Object.fromEntries(Object.entries((_attributes$style$typ = attributes.style.typography) !== null && _attributes$style$typ !== void 0 ? _attributes$style$typ : {}).map(([key, value]) => {
37642          const prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[key];
37643          if (prefix && value.startsWith(prefix)) {
37644            const newValue = value.slice(prefix.length);
37645            if ('textDecoration' === key && 'strikethrough' === newValue) {
37646              return [key, 'line-through'];
37647            }
37648            return [key, newValue];
37649          }
37650          return [key, value];
37651        }))
37652      }
37653    };
37654  };
37655  const navigation_deprecated_deprecated = [navigation_deprecated_v6, navigation_deprecated_v5, navigation_deprecated_v4,
37656  // Remove `isResponsive` attribute.
37657  {
37658    attributes: {
37659      orientation: {
37660        type: 'string',
37661        default: 'horizontal'
37662      },
37663      textColor: {
37664        type: 'string'
37665      },
37666      customTextColor: {
37667        type: 'string'
37668      },
37669      rgbTextColor: {
37670        type: 'string'
37671      },
37672      backgroundColor: {
37673        type: 'string'
37674      },
37675      customBackgroundColor: {
37676        type: 'string'
37677      },
37678      rgbBackgroundColor: {
37679        type: 'string'
37680      },
37681      itemsJustification: {
37682        type: 'string'
37683      },
37684      showSubmenuIcon: {
37685        type: 'boolean',
37686        default: true
37687      },
37688      openSubmenusOnClick: {
37689        type: 'boolean',
37690        default: false
37691      },
37692      isResponsive: {
37693        type: 'boolean',
37694        default: 'false'
37695      },
37696      __unstableLocation: {
37697        type: 'string'
37698      },
37699      overlayBackgroundColor: {
37700        type: 'string'
37701      },
37702      customOverlayBackgroundColor: {
37703        type: 'string'
37704      },
37705      overlayTextColor: {
37706        type: 'string'
37707      },
37708      customOverlayTextColor: {
37709        type: 'string'
37710      }
37711    },
37712    supports: {
37713      align: ['wide', 'full'],
37714      anchor: true,
37715      html: false,
37716      inserter: true,
37717      typography: {
37718        fontSize: true,
37719        lineHeight: true,
37720        __experimentalFontStyle: true,
37721        __experimentalFontWeight: true,
37722        __experimentalTextTransform: true,
37723        __experimentalFontFamily: true,
37724        __experimentalTextDecoration: true
37725      }
37726    },
37727    isEligible(attributes) {
37728      return attributes.isResponsive;
37729    },
37730    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateIsResponsive),
37731    save() {
37732      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37733    }
37734  }, {
37735    attributes: {
37736      orientation: {
37737        type: 'string'
37738      },
37739      textColor: {
37740        type: 'string'
37741      },
37742      customTextColor: {
37743        type: 'string'
37744      },
37745      rgbTextColor: {
37746        type: 'string'
37747      },
37748      backgroundColor: {
37749        type: 'string'
37750      },
37751      customBackgroundColor: {
37752        type: 'string'
37753      },
37754      rgbBackgroundColor: {
37755        type: 'string'
37756      },
37757      itemsJustification: {
37758        type: 'string'
37759      },
37760      showSubmenuIcon: {
37761        type: 'boolean',
37762        default: true
37763      }
37764    },
37765    supports: {
37766      align: ['wide', 'full'],
37767      anchor: true,
37768      html: false,
37769      inserter: true,
37770      fontSize: true,
37771      __experimentalFontStyle: true,
37772      __experimentalFontWeight: true,
37773      __experimentalTextTransform: true,
37774      color: true,
37775      __experimentalFontFamily: true,
37776      __experimentalTextDecoration: true
37777    },
37778    save() {
37779      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37780    },
37781    isEligible(attributes) {
37782      if (!attributes.style || !attributes.style.typography) {
37783        return false;
37784      }
37785      for (const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP) {
37786        const attributeValue = attributes.style.typography[styleAttribute];
37787        if (attributeValue && attributeValue.startsWith(TYPOGRAPHY_PRESET_DEPRECATION_MAP[styleAttribute])) {
37788          return true;
37789        }
37790      }
37791      return false;
37792    },
37793    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, deprecated_migrateWithLayout, migrate_font_family, migrateTypographyPresets)
37794  }, {
37795    attributes: {
37796      className: {
37797        type: 'string'
37798      },
37799      textColor: {
37800        type: 'string'
37801      },
37802      rgbTextColor: {
37803        type: 'string'
37804      },
37805      backgroundColor: {
37806        type: 'string'
37807      },
37808      rgbBackgroundColor: {
37809        type: 'string'
37810      },
37811      fontSize: {
37812        type: 'string'
37813      },
37814      customFontSize: {
37815        type: 'number'
37816      },
37817      itemsJustification: {
37818        type: 'string'
37819      },
37820      showSubmenuIcon: {
37821        type: 'boolean'
37822      }
37823    },
37824    isEligible(attribute) {
37825      return attribute.rgbTextColor || attribute.rgbBackgroundColor;
37826    },
37827    supports: {
37828      align: ['wide', 'full'],
37829      anchor: true,
37830      html: false,
37831      inserter: true
37832    },
37833    migrate: (0,external_wp_compose_namespaceObject.compose)(migrateIdToRef, attributes => {
37834      const {
37835        rgbTextColor,
37836        rgbBackgroundColor,
37837        ...restAttributes
37838      } = attributes;
37839      return {
37840        ...restAttributes,
37841        customTextColor: attributes.textColor ? undefined : attributes.rgbTextColor,
37842        customBackgroundColor: attributes.backgroundColor ? undefined : attributes.rgbBackgroundColor
37843      };
37844    }),
37845    save() {
37846      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
37847    }
37848  }];
37849  /* harmony default export */ const navigation_deprecated = (navigation_deprecated_deprecated);
37850  
37851  ;// ./node_modules/@wordpress/block-library/build-module/navigation/index.js
37852  /**
37853   * WordPress dependencies
37854   */
37855  
37856  
37857  
37858  
37859  
37860  
37861  /**
37862   * Internal dependencies
37863   */
37864  
37865  const navigation_metadata = {
37866    $schema: "https://schemas.wp.org/trunk/block.json",
37867    apiVersion: 3,
37868    name: "core/navigation",
37869    title: "Navigation",
37870    category: "theme",
37871    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"],
37872    description: "A collection of blocks that allow visitors to get around your site.",
37873    keywords: ["menu", "navigation", "links"],
37874    textdomain: "default",
37875    attributes: {
37876      ref: {
37877        type: "number"
37878      },
37879      textColor: {
37880        type: "string"
37881      },
37882      customTextColor: {
37883        type: "string"
37884      },
37885      rgbTextColor: {
37886        type: "string"
37887      },
37888      backgroundColor: {
37889        type: "string"
37890      },
37891      customBackgroundColor: {
37892        type: "string"
37893      },
37894      rgbBackgroundColor: {
37895        type: "string"
37896      },
37897      showSubmenuIcon: {
37898        type: "boolean",
37899        "default": true
37900      },
37901      openSubmenusOnClick: {
37902        type: "boolean",
37903        "default": false
37904      },
37905      overlayMenu: {
37906        type: "string",
37907        "default": "mobile"
37908      },
37909      icon: {
37910        type: "string",
37911        "default": "handle"
37912      },
37913      hasIcon: {
37914        type: "boolean",
37915        "default": true
37916      },
37917      __unstableLocation: {
37918        type: "string"
37919      },
37920      overlayBackgroundColor: {
37921        type: "string"
37922      },
37923      customOverlayBackgroundColor: {
37924        type: "string"
37925      },
37926      overlayTextColor: {
37927        type: "string"
37928      },
37929      customOverlayTextColor: {
37930        type: "string"
37931      },
37932      maxNestingLevel: {
37933        type: "number",
37934        "default": 5
37935      },
37936      templateLock: {
37937        type: ["string", "boolean"],
37938        "enum": ["all", "insert", "contentOnly", false]
37939      }
37940    },
37941    providesContext: {
37942      textColor: "textColor",
37943      customTextColor: "customTextColor",
37944      backgroundColor: "backgroundColor",
37945      customBackgroundColor: "customBackgroundColor",
37946      overlayTextColor: "overlayTextColor",
37947      customOverlayTextColor: "customOverlayTextColor",
37948      overlayBackgroundColor: "overlayBackgroundColor",
37949      customOverlayBackgroundColor: "customOverlayBackgroundColor",
37950      fontSize: "fontSize",
37951      customFontSize: "customFontSize",
37952      showSubmenuIcon: "showSubmenuIcon",
37953      openSubmenusOnClick: "openSubmenusOnClick",
37954      style: "style",
37955      maxNestingLevel: "maxNestingLevel"
37956    },
37957    supports: {
37958      align: ["wide", "full"],
37959      ariaLabel: true,
37960      html: false,
37961      inserter: true,
37962      typography: {
37963        fontSize: true,
37964        lineHeight: true,
37965        __experimentalFontStyle: true,
37966        __experimentalFontWeight: true,
37967        __experimentalTextTransform: true,
37968        __experimentalFontFamily: true,
37969        __experimentalLetterSpacing: true,
37970        __experimentalTextDecoration: true,
37971        __experimentalSkipSerialization: ["textDecoration"],
37972        __experimentalDefaultControls: {
37973          fontSize: true
37974        }
37975      },
37976      spacing: {
37977        blockGap: true,
37978        units: ["px", "em", "rem", "vh", "vw"],
37979        __experimentalDefaultControls: {
37980          blockGap: true
37981        }
37982      },
37983      layout: {
37984        allowSwitching: false,
37985        allowInheriting: false,
37986        allowVerticalAlignment: false,
37987        allowSizingOnChildren: true,
37988        "default": {
37989          type: "flex"
37990        }
37991      },
37992      interactivity: true,
37993      renaming: false
37994    },
37995    editorStyle: "wp-block-navigation-editor",
37996    style: "wp-block-navigation"
37997  };
37998  
37999  
38000  
38001  const {
38002    name: navigation_name
38003  } = navigation_metadata;
38004  
38005  const navigation_settings = {
38006    icon: library_navigation,
38007    example: {
38008      attributes: {
38009        overlayMenu: 'never'
38010      },
38011      innerBlocks: [{
38012        name: 'core/navigation-link',
38013        attributes: {
38014          // translators: 'Home' as in a website's home page.
38015          label: (0,external_wp_i18n_namespaceObject.__)('Home'),
38016          url: 'https://make.wordpress.org/'
38017        }
38018      }, {
38019        name: 'core/navigation-link',
38020        attributes: {
38021          // translators: 'About' as in a website's about page.
38022          label: (0,external_wp_i18n_namespaceObject.__)('About'),
38023          url: 'https://make.wordpress.org/'
38024        }
38025      }, {
38026        name: 'core/navigation-link',
38027        attributes: {
38028          // translators: 'Contact' as in a website's contact page.
38029          label: (0,external_wp_i18n_namespaceObject.__)('Contact'),
38030          url: 'https://make.wordpress.org/'
38031        }
38032      }]
38033    },
38034    edit: navigation_edit,
38035    save: navigation_save_save,
38036    __experimentalLabel: ({
38037      ref
38038    }) => {
38039      if (!ref) {
38040        return;
38041      }
38042      const navigation = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_navigation', ref);
38043      if (!navigation?.title) {
38044        return;
38045      }
38046      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(navigation.title);
38047    },
38048    deprecated: navigation_deprecated
38049  };
38050  const navigation_init = () => initBlock({
38051    name: navigation_name,
38052    metadata: navigation_metadata,
38053    settings: navigation_settings
38054  });
38055  
38056  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/edit.js
38057  /**
38058   * External dependencies
38059   */
38060  
38061  
38062  /**
38063   * WordPress dependencies
38064   */
38065  
38066  
38067  
38068  
38069  
38070  
38071  
38072  
38073  
38074  
38075  
38076  
38077  
38078  
38079  /**
38080   * Internal dependencies
38081   */
38082  
38083  
38084  
38085  
38086  const navigation_link_edit_DEFAULT_BLOCK = {
38087    name: 'core/navigation-link'
38088  };
38089  const NESTING_BLOCK_NAMES = ['core/navigation-link', 'core/navigation-submenu'];
38090  
38091  /**
38092   * A React hook to determine if it's dragging within the target element.
38093   *
38094   * @typedef {import('@wordpress/element').RefObject} RefObject
38095   *
38096   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
38097   *
38098   * @return {boolean} Is dragging within the target element.
38099   */
38100  const useIsDraggingWithin = elementRef => {
38101    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
38102    (0,external_wp_element_namespaceObject.useEffect)(() => {
38103      const {
38104        ownerDocument
38105      } = elementRef.current;
38106      function handleDragStart(event) {
38107        // Check the first time when the dragging starts.
38108        handleDragEnter(event);
38109      }
38110  
38111      // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
38112      function handleDragEnd() {
38113        setIsDraggingWithin(false);
38114      }
38115      function handleDragEnter(event) {
38116        // Check if the current target is inside the item element.
38117        if (elementRef.current.contains(event.target)) {
38118          setIsDraggingWithin(true);
38119        } else {
38120          setIsDraggingWithin(false);
38121        }
38122      }
38123  
38124      // Bind these events to the document to catch all drag events.
38125      // Ideally, we can also use `event.relatedTarget`, but sadly that
38126      // doesn't work in Safari.
38127      ownerDocument.addEventListener('dragstart', handleDragStart);
38128      ownerDocument.addEventListener('dragend', handleDragEnd);
38129      ownerDocument.addEventListener('dragenter', handleDragEnter);
38130      return () => {
38131        ownerDocument.removeEventListener('dragstart', handleDragStart);
38132        ownerDocument.removeEventListener('dragend', handleDragEnd);
38133        ownerDocument.removeEventListener('dragenter', handleDragEnter);
38134      };
38135    }, [elementRef]);
38136    return isDraggingWithin;
38137  };
38138  const useIsInvalidLink = (kind, type, id, enabled) => {
38139    const isPostType = kind === 'post-type' || type === 'post' || type === 'page';
38140    const hasId = Number.isInteger(id);
38141    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
38142    const postStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
38143      if (!isPostType) {
38144        return null;
38145      }
38146  
38147      // Fetching the posts status is an "expensive" operation. Especially for sites with large navigations.
38148      // When the block is rendered in a template or other disabled contexts we can skip this check in order
38149      // to avoid all these additional requests that don't really add any value in that mode.
38150      if (blockEditingMode === 'disabled' || !enabled) {
38151        return null;
38152      }
38153      const {
38154        getEntityRecord
38155      } = select(external_wp_coreData_namespaceObject.store);
38156      return getEntityRecord('postType', type, id)?.status;
38157    }, [isPostType, blockEditingMode, enabled, type, id]);
38158  
38159    // Check Navigation Link validity if:
38160    // 1. Link is 'post-type'.
38161    // 2. It has an id.
38162    // 3. It's neither null, nor undefined, as valid items might be either of those while loading.
38163    // If those conditions are met, check if
38164    // 1. The post status is published.
38165    // 2. The Navigation Link item has no label.
38166    // If either of those is true, invalidate.
38167    const isInvalid = isPostType && hasId && postStatus && 'trash' === postStatus;
38168    const isDraft = 'draft' === postStatus;
38169    return [isInvalid, isDraft];
38170  };
38171  function getMissingText(type) {
38172    let missingText = '';
38173    switch (type) {
38174      case 'post':
38175        /* translators: label for missing post in navigation link block */
38176        missingText = (0,external_wp_i18n_namespaceObject.__)('Select post');
38177        break;
38178      case 'page':
38179        /* translators: label for missing page in navigation link block */
38180        missingText = (0,external_wp_i18n_namespaceObject.__)('Select page');
38181        break;
38182      case 'category':
38183        /* translators: label for missing category in navigation link block */
38184        missingText = (0,external_wp_i18n_namespaceObject.__)('Select category');
38185        break;
38186      case 'tag':
38187        /* translators: label for missing tag in navigation link block */
38188        missingText = (0,external_wp_i18n_namespaceObject.__)('Select tag');
38189        break;
38190      default:
38191        /* translators: label for missing values in navigation link block */
38192        missingText = (0,external_wp_i18n_namespaceObject.__)('Add link');
38193    }
38194    return missingText;
38195  }
38196  
38197  /*
38198   * Warning, this duplicated in
38199   * packages/block-library/src/navigation-submenu/edit.js
38200   * Consider reusing this components for both blocks.
38201   */
38202  function Controls({
38203    attributes,
38204    setAttributes,
38205    setIsLabelFieldFocused
38206  }) {
38207    const {
38208      label,
38209      url,
38210      description,
38211      title,
38212      rel
38213    } = attributes;
38214    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
38215      label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
38216      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38217        hasValue: () => !!label,
38218        label: (0,external_wp_i18n_namespaceObject.__)('Text'),
38219        onDeselect: () => setAttributes({
38220          label: ''
38221        }),
38222        isShownByDefault: true,
38223        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38224          __nextHasNoMarginBottom: true,
38225          __next40pxDefaultSize: true,
38226          label: (0,external_wp_i18n_namespaceObject.__)('Text'),
38227          value: label ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(label) : '',
38228          onChange: labelValue => {
38229            setAttributes({
38230              label: labelValue
38231            });
38232          },
38233          autoComplete: "off",
38234          onFocus: () => setIsLabelFieldFocused(true),
38235          onBlur: () => setIsLabelFieldFocused(false)
38236        })
38237      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38238        hasValue: () => !!url,
38239        label: (0,external_wp_i18n_namespaceObject.__)('Link'),
38240        onDeselect: () => setAttributes({
38241          url: ''
38242        }),
38243        isShownByDefault: true,
38244        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38245          __nextHasNoMarginBottom: true,
38246          __next40pxDefaultSize: true,
38247          label: (0,external_wp_i18n_namespaceObject.__)('Link'),
38248          value: url ? (0,external_wp_url_namespaceObject.safeDecodeURI)(url) : '',
38249          onChange: urlValue => {
38250            updateAttributes({
38251              url: urlValue
38252            }, setAttributes, attributes);
38253          },
38254          autoComplete: "off",
38255          type: "url"
38256        })
38257      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38258        hasValue: () => !!description,
38259        label: (0,external_wp_i18n_namespaceObject.__)('Description'),
38260        onDeselect: () => setAttributes({
38261          description: ''
38262        }),
38263        isShownByDefault: true,
38264        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
38265          __nextHasNoMarginBottom: true,
38266          label: (0,external_wp_i18n_namespaceObject.__)('Description'),
38267          value: description || '',
38268          onChange: descriptionValue => {
38269            setAttributes({
38270              description: descriptionValue
38271            });
38272          },
38273          help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
38274        })
38275      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38276        hasValue: () => !!title,
38277        label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
38278        onDeselect: () => setAttributes({
38279          title: ''
38280        }),
38281        isShownByDefault: true,
38282        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38283          __nextHasNoMarginBottom: true,
38284          __next40pxDefaultSize: true,
38285          label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
38286          value: title || '',
38287          onChange: titleValue => {
38288            setAttributes({
38289              title: titleValue
38290            });
38291          },
38292          autoComplete: "off",
38293          help: (0,external_wp_i18n_namespaceObject.__)('Additional information to help clarify the purpose of the link.')
38294        })
38295      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
38296        hasValue: () => !!rel,
38297        label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
38298        onDeselect: () => setAttributes({
38299          rel: ''
38300        }),
38301        isShownByDefault: true,
38302        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
38303          __nextHasNoMarginBottom: true,
38304          __next40pxDefaultSize: true,
38305          label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
38306          value: rel || '',
38307          onChange: relValue => {
38308            setAttributes({
38309              rel: relValue
38310            });
38311          },
38312          autoComplete: "off",
38313          help: (0,external_wp_i18n_namespaceObject.__)('The relationship of the linked URL as space-separated link types.')
38314        })
38315      })]
38316    });
38317  }
38318  function NavigationLinkEdit({
38319    attributes,
38320    isSelected,
38321    setAttributes,
38322    insertBlocksAfter,
38323    mergeBlocks,
38324    onReplace,
38325    context,
38326    clientId
38327  }) {
38328    const {
38329      id,
38330      label,
38331      type,
38332      url,
38333      description,
38334      kind
38335    } = attributes;
38336    const {
38337      maxNestingLevel
38338    } = context;
38339    const {
38340      replaceBlock,
38341      __unstableMarkNextChangeAsNotPersistent,
38342      selectBlock,
38343      selectPreviousBlock
38344    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
38345    // Have the link editing ui open on mount when lacking a url and selected.
38346    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(isSelected && !url);
38347    // Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)
38348    const [openedBy, setOpenedBy] = (0,external_wp_element_namespaceObject.useState)(null);
38349    // Use internal state instead of a ref to make sure that the component
38350    // re-renders when the popover's anchor updates.
38351    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
38352    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
38353    const isDraggingWithin = useIsDraggingWithin(listItemRef);
38354    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add label…');
38355    const ref = (0,external_wp_element_namespaceObject.useRef)();
38356    const linkUIref = (0,external_wp_element_namespaceObject.useRef)();
38357    const prevUrl = (0,external_wp_compose_namespaceObject.usePrevious)(url);
38358  
38359    // Change the label using inspector causes rich text to change focus on firefox.
38360    // This is a workaround to keep the focus on the label field when label filed is focused we don't render the rich text.
38361    const [isLabelFieldFocused, setIsLabelFieldFocused] = (0,external_wp_element_namespaceObject.useState)(false);
38362    const {
38363      isAtMaxNesting,
38364      isTopLevelLink,
38365      isParentOfSelectedBlock,
38366      hasChildren,
38367      validateLinkStatus
38368    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
38369      const {
38370        getBlockCount,
38371        getBlockName,
38372        getBlockRootClientId,
38373        hasSelectedInnerBlock,
38374        getBlockParentsByBlockName,
38375        getSelectedBlockClientId
38376      } = select(external_wp_blockEditor_namespaceObject.store);
38377      const rootClientId = getBlockRootClientId(clientId);
38378      const isTopLevel = getBlockName(rootClientId) === 'core/navigation';
38379      const selectedBlockClientId = getSelectedBlockClientId();
38380      const rootNavigationClientId = isTopLevel ? rootClientId : getBlockParentsByBlockName(clientId, 'core/navigation')[0];
38381  
38382      // Enable when the root Navigation block is selected or any of its inner blocks.
38383      const enableLinkStatusValidation = selectedBlockClientId === rootNavigationClientId || hasSelectedInnerBlock(rootNavigationClientId, true);
38384      return {
38385        isAtMaxNesting: getBlockParentsByBlockName(clientId, NESTING_BLOCK_NAMES).length >= maxNestingLevel,
38386        isTopLevelLink: isTopLevel,
38387        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
38388        hasChildren: !!getBlockCount(clientId),
38389        validateLinkStatus: enableLinkStatusValidation
38390      };
38391    }, [clientId, maxNestingLevel]);
38392    const {
38393      getBlocks
38394    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
38395    const [isInvalid, isDraft] = useIsInvalidLink(kind, type, id, validateLinkStatus);
38396  
38397    /**
38398     * Transform to submenu block.
38399     */
38400    const transformToSubmenu = () => {
38401      let innerBlocks = getBlocks(clientId);
38402      if (innerBlocks.length === 0) {
38403        innerBlocks = [(0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')];
38404        selectBlock(innerBlocks[0].clientId);
38405      }
38406      const newSubmenu = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
38407      replaceBlock(clientId, newSubmenu);
38408    };
38409    (0,external_wp_element_namespaceObject.useEffect)(() => {
38410      // If block has inner blocks, transform to Submenu.
38411      if (hasChildren) {
38412        // This side-effect should not create an undo level as those should
38413        // only be created via user interactions.
38414        __unstableMarkNextChangeAsNotPersistent();
38415        transformToSubmenu();
38416      }
38417    }, [hasChildren]);
38418  
38419    // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
38420    (0,external_wp_element_namespaceObject.useEffect)(() => {
38421      // We only want to do this when the URL has gone from nothing to a new URL AND the label looks like a URL
38422      if (!prevUrl && url && isLinkOpen && (0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
38423        // Focus and select the label text.
38424        selectLabelText();
38425      }
38426    }, [prevUrl, url, isLinkOpen, label]);
38427  
38428    /**
38429     * Focus the Link label text and select it.
38430     */
38431    function selectLabelText() {
38432      ref.current.focus();
38433      const {
38434        ownerDocument
38435      } = ref.current;
38436      const {
38437        defaultView
38438      } = ownerDocument;
38439      const selection = defaultView.getSelection();
38440      const range = ownerDocument.createRange();
38441      // Get the range of the current ref contents so we can add this range to the selection.
38442      range.selectNodeContents(ref.current);
38443      selection.removeAllRanges();
38444      selection.addRange(range);
38445    }
38446  
38447    /**
38448     * Removes the current link if set.
38449     */
38450    function removeLink() {
38451      // Reset all attributes that comprise the link.
38452      // It is critical that all attributes are reset
38453      // to their default values otherwise this may
38454      // in advertently trigger side effects because
38455      // the values will have "changed".
38456      setAttributes({
38457        url: undefined,
38458        label: undefined,
38459        id: undefined,
38460        kind: undefined,
38461        type: undefined,
38462        opensInNewTab: false
38463      });
38464  
38465      // Close the link editing UI.
38466      setIsLinkOpen(false);
38467    }
38468    const {
38469      textColor,
38470      customTextColor,
38471      backgroundColor,
38472      customBackgroundColor
38473    } = getColors(context, !isTopLevelLink);
38474    function onKeyDown(event) {
38475      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
38476        // Required to prevent the command center from opening,
38477        // as it shares the CMD+K shortcut.
38478        // See https://github.com/WordPress/gutenberg/pull/59845.
38479        event.preventDefault();
38480        // If this link is a child of a parent submenu item, the parent submenu item event will also open, closing this popover
38481        event.stopPropagation();
38482        setIsLinkOpen(true);
38483        setOpenedBy(ref.current);
38484      }
38485    }
38486    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
38487      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, listItemRef]),
38488      className: dist_clsx('wp-block-navigation-item', {
38489        'is-editing': isSelected || isParentOfSelectedBlock,
38490        'is-dragging-within': isDraggingWithin,
38491        'has-link': !!url,
38492        'has-child': hasChildren,
38493        'has-text-color': !!textColor || !!customTextColor,
38494        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
38495        'has-background': !!backgroundColor || customBackgroundColor,
38496        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor
38497      }),
38498      style: {
38499        color: !textColor && customTextColor,
38500        backgroundColor: !backgroundColor && customBackgroundColor
38501      },
38502      onKeyDown
38503    });
38504    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
38505      ...blockProps,
38506      className: 'remove-outline' // Remove the outline from the inner blocks container.
38507    }, {
38508      defaultBlock: navigation_link_edit_DEFAULT_BLOCK,
38509      directInsert: true,
38510      renderAppender: false
38511    });
38512    if (!url || isInvalid || isDraft) {
38513      blockProps.onClick = () => {
38514        setIsLinkOpen(true);
38515        setOpenedBy(ref.current);
38516      };
38517    }
38518    const classes = dist_clsx('wp-block-navigation-item__content', {
38519      'wp-block-navigation-link__placeholder': !url || isInvalid || isDraft
38520    });
38521    const missingText = getMissingText(type);
38522    /* translators: Whether the navigation link is Invalid or a Draft. */
38523    const placeholderText = `($isInvalid ? (0,external_wp_i18n_namespaceObject.__)('Invalid') : (0,external_wp_i18n_namespaceObject.__)('Draft')})`;
38524    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38525      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
38526        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
38527          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
38528            name: "link",
38529            icon: library_link,
38530            title: (0,external_wp_i18n_namespaceObject.__)('Link'),
38531            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
38532            onClick: event => {
38533              setIsLinkOpen(true);
38534              setOpenedBy(event.currentTarget);
38535            }
38536          }), !isAtMaxNesting && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
38537            name: "submenu",
38538            icon: add_submenu,
38539            title: (0,external_wp_i18n_namespaceObject.__)('Add submenu'),
38540            onClick: transformToSubmenu
38541          })]
38542        })
38543      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
38544        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Controls, {
38545          attributes: attributes,
38546          setAttributes: setAttributes,
38547          setIsLabelFieldFocused: setIsLabelFieldFocused
38548        })
38549      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
38550        ...blockProps,
38551        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
38552          className: classes,
38553          children: [!url ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38554            className: "wp-block-navigation-link__placeholder-text",
38555            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38556              children: missingText
38557            })
38558          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38559            children: [!isInvalid && !isDraft && !isLabelFieldFocused && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
38560              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
38561                ref: ref,
38562                identifier: "label",
38563                className: "wp-block-navigation-item__label",
38564                value: label,
38565                onChange: labelValue => setAttributes({
38566                  label: labelValue
38567                }),
38568                onMerge: mergeBlocks,
38569                onReplace: onReplace,
38570                __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link')),
38571                "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
38572                placeholder: itemLabelPlaceholder,
38573                withoutInteractiveFormatting: true
38574              }), description && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38575                className: "wp-block-navigation-item__description",
38576                children: description
38577              })]
38578            }), (isInvalid || isDraft || isLabelFieldFocused) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38579              className: dist_clsx('wp-block-navigation-link__placeholder-text', 'wp-block-navigation-link__label', {
38580                'is-invalid': isInvalid,
38581                'is-draft': isDraft
38582              }),
38583              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
38584                children:
38585                // Some attributes are stored in an escaped form. It's a legacy issue.
38586                // Ideally they would be stored in a raw, unescaped form.
38587                // Unescape is used here to "recover" the escaped characters
38588                // so they display without encoding.
38589                // See `updateAttributes` for more details.
38590                `${(0,external_wp_htmlEntities_namespaceObject.decodeEntities)(label)} $isInvalid || isDraft ? placeholderText : ''}`.trim()
38591              })
38592            })]
38593          }), isLinkOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
38594            ref: linkUIref,
38595            clientId: clientId,
38596            link: attributes,
38597            onClose: () => {
38598              // If there is no link then remove the auto-inserted block.
38599              // This avoids empty blocks which can provided a poor UX.
38600              if (!url) {
38601                // Fixes https://github.com/WordPress/gutenberg/issues/61361
38602                // There's a chance we're closing due to the user selecting the browse all button.
38603                // Only move focus if the focus is still within the popover ui. If it's not within
38604                // the popover, it's because something has taken the focus from the popover, and
38605                // we don't want to steal it back.
38606                if (linkUIref.current.contains(window.document.activeElement)) {
38607                  // Select the previous block to keep focus nearby
38608                  selectPreviousBlock(clientId, true);
38609                }
38610  
38611                // Remove the link.
38612                onReplace([]);
38613                return;
38614              }
38615              setIsLinkOpen(false);
38616              if (openedBy) {
38617                openedBy.focus();
38618                setOpenedBy(null);
38619              } else if (ref.current) {
38620                // select the ref when adding a new link
38621                ref.current.focus();
38622              } else {
38623                // Fallback
38624                selectPreviousBlock(clientId, true);
38625              }
38626            },
38627            anchor: popoverAnchor,
38628            onRemove: removeLink,
38629            onChange: updatedValue => {
38630              updateAttributes(updatedValue, setAttributes, attributes);
38631            }
38632          })]
38633        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
38634          ...innerBlocksProps
38635        })]
38636      })]
38637    });
38638  }
38639  
38640  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/save.js
38641  /**
38642   * WordPress dependencies
38643   */
38644  
38645  
38646  function navigation_link_save_save() {
38647    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
38648  }
38649  
38650  ;// ./node_modules/@wordpress/icons/build-module/library/page.js
38651  /**
38652   * WordPress dependencies
38653   */
38654  
38655  
38656  const page = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
38657    xmlns: "http://www.w3.org/2000/svg",
38658    viewBox: "0 0 24 24",
38659    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38660      d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"
38661    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38662      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"
38663    })]
38664  });
38665  /* harmony default export */ const library_page = (page);
38666  
38667  ;// ./node_modules/@wordpress/icons/build-module/library/tag.js
38668  /**
38669   * WordPress dependencies
38670   */
38671  
38672  
38673  const tag = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
38674    xmlns: "http://www.w3.org/2000/svg",
38675    viewBox: "0 0 24 24",
38676    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38677      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"
38678    })
38679  });
38680  /* harmony default export */ const library_tag = (tag);
38681  
38682  ;// ./node_modules/@wordpress/icons/build-module/library/custom-post-type.js
38683  /**
38684   * WordPress dependencies
38685   */
38686  
38687  
38688  const customPostType = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
38689    xmlns: "http://www.w3.org/2000/svg",
38690    viewBox: "0 0 24 24",
38691    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
38692      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"
38693    })
38694  });
38695  /* harmony default export */ const custom_post_type = (customPostType);
38696  
38697  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/hooks.js
38698  /**
38699   * WordPress dependencies
38700   */
38701  
38702  function getIcon(variationName) {
38703    switch (variationName) {
38704      case 'post':
38705        return post_list;
38706      case 'page':
38707        return library_page;
38708      case 'tag':
38709        return library_tag;
38710      case 'category':
38711        return library_category;
38712      default:
38713        return custom_post_type;
38714    }
38715  }
38716  function enhanceNavigationLinkVariations(settings, name) {
38717    if (name !== 'core/navigation-link') {
38718      return settings;
38719    }
38720  
38721    // Otherwise decorate server passed variations with an icon and isActive function.
38722    if (settings.variations) {
38723      const isActive = (blockAttributes, variationAttributes) => {
38724        return blockAttributes.type === variationAttributes.type;
38725      };
38726      const variations = settings.variations.map(variation => {
38727        return {
38728          ...variation,
38729          ...(!variation.icon && {
38730            icon: getIcon(variation.name)
38731          }),
38732          ...(!variation.isActive && {
38733            isActive
38734          })
38735        };
38736      });
38737      return {
38738        ...settings,
38739        variations
38740      };
38741    }
38742    return settings;
38743  }
38744  
38745  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/transforms.js
38746  /**
38747   * WordPress dependencies
38748   */
38749  
38750  const navigation_link_transforms_transforms = {
38751    from: [{
38752      type: 'block',
38753      blocks: ['core/site-logo'],
38754      transform: () => {
38755        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38756      }
38757    }, {
38758      type: 'block',
38759      blocks: ['core/spacer'],
38760      transform: () => {
38761        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38762      }
38763    }, {
38764      type: 'block',
38765      blocks: ['core/home-link'],
38766      transform: () => {
38767        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38768      }
38769    }, {
38770      type: 'block',
38771      blocks: ['core/social-links'],
38772      transform: () => {
38773        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38774      }
38775    }, {
38776      type: 'block',
38777      blocks: ['core/search'],
38778      transform: () => {
38779        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38780      }
38781    }, {
38782      type: 'block',
38783      blocks: ['core/page-list'],
38784      transform: () => {
38785        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38786      }
38787    }, {
38788      type: 'block',
38789      blocks: ['core/buttons'],
38790      transform: () => {
38791        return (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link');
38792      }
38793    }],
38794    to: [{
38795      type: 'block',
38796      blocks: ['core/navigation-submenu'],
38797      transform: (attributes, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks)
38798    }, {
38799      type: 'block',
38800      blocks: ['core/spacer'],
38801      transform: () => {
38802        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
38803      }
38804    }, {
38805      type: 'block',
38806      blocks: ['core/site-logo'],
38807      transform: () => {
38808        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
38809      }
38810    }, {
38811      type: 'block',
38812      blocks: ['core/home-link'],
38813      transform: () => {
38814        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
38815      }
38816    }, {
38817      type: 'block',
38818      blocks: ['core/social-links'],
38819      transform: () => {
38820        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
38821      }
38822    }, {
38823      type: 'block',
38824      blocks: ['core/search'],
38825      transform: () => {
38826        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search', {
38827          showLabel: false,
38828          buttonUseIcon: true,
38829          buttonPosition: 'button-inside'
38830        });
38831      }
38832    }, {
38833      type: 'block',
38834      blocks: ['core/page-list'],
38835      transform: () => {
38836        return (0,external_wp_blocks_namespaceObject.createBlock)('core/page-list');
38837      }
38838    }, {
38839      type: 'block',
38840      blocks: ['core/buttons'],
38841      transform: ({
38842        label,
38843        url,
38844        rel,
38845        title,
38846        opensInNewTab
38847      }) => {
38848        return (0,external_wp_blocks_namespaceObject.createBlock)('core/buttons', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/button', {
38849          text: label,
38850          url,
38851          rel,
38852          title,
38853          linkTarget: opensInNewTab ? '_blank' : undefined
38854        })]);
38855      }
38856    }]
38857  };
38858  /* harmony default export */ const navigation_link_transforms = (navigation_link_transforms_transforms);
38859  
38860  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/index.js
38861  /**
38862   * WordPress dependencies
38863   */
38864  
38865  
38866  
38867  
38868  
38869  /**
38870   * Internal dependencies
38871   */
38872  
38873  const navigation_link_metadata = {
38874    $schema: "https://schemas.wp.org/trunk/block.json",
38875    apiVersion: 3,
38876    name: "core/navigation-link",
38877    title: "Custom Link",
38878    category: "design",
38879    parent: ["core/navigation"],
38880    allowedBlocks: ["core/navigation-link", "core/navigation-submenu", "core/page-list"],
38881    description: "Add a page, link, or another item to your navigation.",
38882    textdomain: "default",
38883    attributes: {
38884      label: {
38885        type: "string"
38886      },
38887      type: {
38888        type: "string"
38889      },
38890      description: {
38891        type: "string"
38892      },
38893      rel: {
38894        type: "string"
38895      },
38896      id: {
38897        type: "number"
38898      },
38899      opensInNewTab: {
38900        type: "boolean",
38901        "default": false
38902      },
38903      url: {
38904        type: "string"
38905      },
38906      title: {
38907        type: "string"
38908      },
38909      kind: {
38910        type: "string"
38911      },
38912      isTopLevelLink: {
38913        type: "boolean"
38914      }
38915    },
38916    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style"],
38917    supports: {
38918      reusable: false,
38919      html: false,
38920      __experimentalSlashInserter: true,
38921      typography: {
38922        fontSize: true,
38923        lineHeight: true,
38924        __experimentalFontFamily: true,
38925        __experimentalFontWeight: true,
38926        __experimentalFontStyle: true,
38927        __experimentalTextTransform: true,
38928        __experimentalTextDecoration: true,
38929        __experimentalLetterSpacing: true,
38930        __experimentalDefaultControls: {
38931          fontSize: true
38932        }
38933      },
38934      renaming: false,
38935      interactivity: {
38936        clientNavigation: true
38937      }
38938    },
38939    editorStyle: "wp-block-navigation-link-editor",
38940    style: "wp-block-navigation-link"
38941  };
38942  
38943  
38944  
38945  
38946  
38947  const {
38948    name: navigation_link_name
38949  } = navigation_link_metadata;
38950  
38951  const navigation_link_settings = {
38952    icon: custom_link,
38953    __experimentalLabel: ({
38954      label
38955    }) => label,
38956    merge(leftAttributes, {
38957      label: rightLabel = ''
38958    }) {
38959      return {
38960        ...leftAttributes,
38961        label: leftAttributes.label + rightLabel
38962      };
38963    },
38964    edit: NavigationLinkEdit,
38965    save: navigation_link_save_save,
38966    example: {
38967      attributes: {
38968        label: (0,external_wp_i18n_namespaceObject._x)('Example Link', 'navigation link preview example'),
38969        url: 'https://example.com'
38970      }
38971    },
38972    deprecated: [{
38973      isEligible(attributes) {
38974        return attributes.nofollow;
38975      },
38976      attributes: {
38977        label: {
38978          type: 'string'
38979        },
38980        type: {
38981          type: 'string'
38982        },
38983        nofollow: {
38984          type: 'boolean'
38985        },
38986        description: {
38987          type: 'string'
38988        },
38989        id: {
38990          type: 'number'
38991        },
38992        opensInNewTab: {
38993          type: 'boolean',
38994          default: false
38995        },
38996        url: {
38997          type: 'string'
38998        }
38999      },
39000      migrate({
39001        nofollow,
39002        ...rest
39003      }) {
39004        return {
39005          rel: nofollow ? 'nofollow' : '',
39006          ...rest
39007        };
39008      },
39009      save() {
39010        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
39011      }
39012    }],
39013    transforms: navigation_link_transforms
39014  };
39015  const navigation_link_init = () => {
39016    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/navigation-link', enhanceNavigationLinkVariations);
39017    return initBlock({
39018      name: navigation_link_name,
39019      metadata: navigation_link_metadata,
39020      settings: navigation_link_settings
39021    });
39022  };
39023  
39024  ;// ./node_modules/@wordpress/icons/build-module/library/remove-submenu.js
39025  /**
39026   * WordPress dependencies
39027   */
39028  
39029  
39030  const removeSubmenu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
39031    xmlns: "http://www.w3.org/2000/svg",
39032    viewBox: "0 0 24 24",
39033    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39034      fillRule: "evenodd",
39035      clipRule: "evenodd",
39036      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"
39037    })
39038  });
39039  /* harmony default export */ const remove_submenu = (removeSubmenu);
39040  
39041  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/icons.js
39042  /**
39043   * WordPress dependencies
39044   */
39045  
39046  
39047  const ItemSubmenuIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
39048    xmlns: "http://www.w3.org/2000/svg",
39049    width: "12",
39050    height: "12",
39051    viewBox: "0 0 12 12",
39052    fill: "none",
39053    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
39054      d: "M1.50002 4L6.00002 8L10.5 4",
39055      strokeWidth: "1.5"
39056    })
39057  });
39058  
39059  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/edit.js
39060  /**
39061   * External dependencies
39062   */
39063  
39064  
39065  /**
39066   * WordPress dependencies
39067   */
39068  
39069  
39070  
39071  
39072  
39073  
39074  
39075  
39076  
39077  
39078  
39079  
39080  /**
39081   * Internal dependencies
39082   */
39083  
39084  
39085  
39086  
39087  
39088  
39089  const ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu', 'core/page-list'];
39090  const navigation_submenu_edit_DEFAULT_BLOCK = {
39091    name: 'core/navigation-link'
39092  };
39093  
39094  /**
39095   * A React hook to determine if it's dragging within the target element.
39096   *
39097   * @typedef {import('@wordpress/element').RefObject} RefObject
39098   *
39099   * @param {RefObject<HTMLElement>} elementRef The target elementRef object.
39100   *
39101   * @return {boolean} Is dragging within the target element.
39102   */
39103  const edit_useIsDraggingWithin = elementRef => {
39104    const [isDraggingWithin, setIsDraggingWithin] = (0,external_wp_element_namespaceObject.useState)(false);
39105    (0,external_wp_element_namespaceObject.useEffect)(() => {
39106      const {
39107        ownerDocument
39108      } = elementRef.current;
39109      function handleDragStart(event) {
39110        // Check the first time when the dragging starts.
39111        handleDragEnter(event);
39112      }
39113  
39114      // Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.
39115      function handleDragEnd() {
39116        setIsDraggingWithin(false);
39117      }
39118      function handleDragEnter(event) {
39119        // Check if the current target is inside the item element.
39120        if (elementRef.current.contains(event.target)) {
39121          setIsDraggingWithin(true);
39122        } else {
39123          setIsDraggingWithin(false);
39124        }
39125      }
39126  
39127      // Bind these events to the document to catch all drag events.
39128      // Ideally, we can also use `event.relatedTarget`, but sadly that
39129      // doesn't work in Safari.
39130      ownerDocument.addEventListener('dragstart', handleDragStart);
39131      ownerDocument.addEventListener('dragend', handleDragEnd);
39132      ownerDocument.addEventListener('dragenter', handleDragEnter);
39133      return () => {
39134        ownerDocument.removeEventListener('dragstart', handleDragStart);
39135        ownerDocument.removeEventListener('dragend', handleDragEnd);
39136        ownerDocument.removeEventListener('dragenter', handleDragEnter);
39137      };
39138    }, []);
39139    return isDraggingWithin;
39140  };
39141  
39142  /**
39143   * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind
39144   */
39145  
39146  /**
39147   * Navigation Link Block Attributes
39148   *
39149   * @typedef {Object} WPNavigationLinkBlockAttributes
39150   *
39151   * @property {string}               [label]         Link text.
39152   * @property {WPNavigationLinkKind} [kind]          Kind is used to differentiate between term and post ids to check post draft status.
39153   * @property {string}               [type]          The type such as post, page, tag, category and other custom types.
39154   * @property {string}               [rel]           The relationship of the linked URL.
39155   * @property {number}               [id]            A post or term id.
39156   * @property {boolean}              [opensInNewTab] Sets link target to _blank when true.
39157   * @property {string}               [url]           Link href.
39158   * @property {string}               [title]         Link title attribute.
39159   */
39160  
39161  function NavigationSubmenuEdit({
39162    attributes,
39163    isSelected,
39164    setAttributes,
39165    mergeBlocks,
39166    onReplace,
39167    context,
39168    clientId
39169  }) {
39170    const {
39171      label,
39172      url,
39173      description,
39174      rel,
39175      title
39176    } = attributes;
39177    const {
39178      showSubmenuIcon,
39179      maxNestingLevel,
39180      openSubmenusOnClick
39181    } = context;
39182    const {
39183      __unstableMarkNextChangeAsNotPersistent,
39184      replaceBlock,
39185      selectBlock
39186    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
39187    const [isLinkOpen, setIsLinkOpen] = (0,external_wp_element_namespaceObject.useState)(false);
39188    // Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)
39189    const [openedBy, setOpenedBy] = (0,external_wp_element_namespaceObject.useState)(null);
39190    // Use internal state instead of a ref to make sure that the component
39191    // re-renders when the popover's anchor updates.
39192    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
39193    const listItemRef = (0,external_wp_element_namespaceObject.useRef)(null);
39194    const isDraggingWithin = edit_useIsDraggingWithin(listItemRef);
39195    const itemLabelPlaceholder = (0,external_wp_i18n_namespaceObject.__)('Add text…');
39196    const ref = (0,external_wp_element_namespaceObject.useRef)();
39197    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
39198    const {
39199      parentCount,
39200      isParentOfSelectedBlock,
39201      isImmediateParentOfSelectedBlock,
39202      hasChildren,
39203      selectedBlockHasChildren,
39204      onlyDescendantIsEmptyLink
39205    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
39206      const {
39207        hasSelectedInnerBlock,
39208        getSelectedBlockClientId,
39209        getBlockParentsByBlockName,
39210        getBlock,
39211        getBlockCount,
39212        getBlockOrder
39213      } = select(external_wp_blockEditor_namespaceObject.store);
39214      let _onlyDescendantIsEmptyLink;
39215      const selectedBlockId = getSelectedBlockClientId();
39216      const selectedBlockChildren = getBlockOrder(selectedBlockId);
39217  
39218      // Check for a single descendant in the submenu. If that block
39219      // is a link block in a "placeholder" state with no label then
39220      // we can consider as an "empty" link.
39221      if (selectedBlockChildren?.length === 1) {
39222        const singleBlock = getBlock(selectedBlockChildren[0]);
39223        _onlyDescendantIsEmptyLink = singleBlock?.name === 'core/navigation-link' && !singleBlock?.attributes?.label;
39224      }
39225      return {
39226        parentCount: getBlockParentsByBlockName(clientId, 'core/navigation-submenu').length,
39227        isParentOfSelectedBlock: hasSelectedInnerBlock(clientId, true),
39228        isImmediateParentOfSelectedBlock: hasSelectedInnerBlock(clientId, false),
39229        hasChildren: !!getBlockCount(clientId),
39230        selectedBlockHasChildren: !!selectedBlockChildren?.length,
39231        onlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink
39232      };
39233    }, [clientId]);
39234    const prevHasChildren = (0,external_wp_compose_namespaceObject.usePrevious)(hasChildren);
39235  
39236    // Show the LinkControl on mount if the URL is empty
39237    // ( When adding a new menu item)
39238    // This can't be done in the useState call because it conflicts
39239    // with the autofocus behavior of the BlockListBlock component.
39240    (0,external_wp_element_namespaceObject.useEffect)(() => {
39241      if (!openSubmenusOnClick && !url) {
39242        setIsLinkOpen(true);
39243      }
39244    }, []);
39245  
39246    /**
39247     * The hook shouldn't be necessary but due to a focus loss happening
39248     * when selecting a suggestion in the link popover, we force close on block unselection.
39249     */
39250    (0,external_wp_element_namespaceObject.useEffect)(() => {
39251      if (!isSelected) {
39252        setIsLinkOpen(false);
39253      }
39254    }, [isSelected]);
39255  
39256    // If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.
39257    (0,external_wp_element_namespaceObject.useEffect)(() => {
39258      if (isLinkOpen && url) {
39259        // Does this look like a URL and have something TLD-ish?
39260        if ((0,external_wp_url_namespaceObject.isURL)((0,external_wp_url_namespaceObject.prependHTTP)(label)) && /^.+\.[a-z]+/.test(label)) {
39261          // Focus and select the label text.
39262          selectLabelText();
39263        }
39264      }
39265    }, [url]);
39266  
39267    /**
39268     * Focus the Link label text and select it.
39269     */
39270    function selectLabelText() {
39271      ref.current.focus();
39272      const {
39273        ownerDocument
39274      } = ref.current;
39275      const {
39276        defaultView
39277      } = ownerDocument;
39278      const selection = defaultView.getSelection();
39279      const range = ownerDocument.createRange();
39280      // Get the range of the current ref contents so we can add this range to the selection.
39281      range.selectNodeContents(ref.current);
39282      selection.removeAllRanges();
39283      selection.addRange(range);
39284    }
39285    const {
39286      textColor,
39287      customTextColor,
39288      backgroundColor,
39289      customBackgroundColor
39290    } = getColors(context, parentCount > 0);
39291    function onKeyDown(event) {
39292      if (external_wp_keycodes_namespaceObject.isKeyboardEvent.primary(event, 'k')) {
39293        // Required to prevent the command center from opening,
39294        // as it shares the CMD+K shortcut.
39295        // See https://github.com/WordPress/gutenberg/pull/59845.
39296        event.preventDefault();
39297        // If we don't stop propagation, this event bubbles up to the parent submenu item
39298        event.stopPropagation();
39299        setIsLinkOpen(true);
39300        setOpenedBy(ref.current);
39301      }
39302    }
39303    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
39304      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, listItemRef]),
39305      className: dist_clsx('wp-block-navigation-item', {
39306        'is-editing': isSelected || isParentOfSelectedBlock,
39307        'is-dragging-within': isDraggingWithin,
39308        'has-link': !!url,
39309        'has-child': hasChildren,
39310        'has-text-color': !!textColor || !!customTextColor,
39311        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor)]: !!textColor,
39312        'has-background': !!backgroundColor || customBackgroundColor,
39313        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor)]: !!backgroundColor,
39314        'open-on-click': openSubmenusOnClick
39315      }),
39316      style: {
39317        color: !textColor && customTextColor,
39318        backgroundColor: !backgroundColor && customBackgroundColor
39319      },
39320      onKeyDown
39321    });
39322  
39323    // Always use overlay colors for submenus.
39324    const innerBlocksColors = getColors(context, true);
39325    const allowedBlocks = parentCount >= maxNestingLevel ? ALLOWED_BLOCKS.filter(blockName => blockName !== 'core/navigation-submenu') : ALLOWED_BLOCKS;
39326    const navigationChildBlockProps = getNavigationChildBlockProps(innerBlocksColors);
39327    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(navigationChildBlockProps, {
39328      allowedBlocks,
39329      defaultBlock: navigation_submenu_edit_DEFAULT_BLOCK,
39330      directInsert: true,
39331      // Ensure block toolbar is not too far removed from item
39332      // being edited.
39333      // see: https://github.com/WordPress/gutenberg/pull/34615.
39334      __experimentalCaptureToolbars: true,
39335      renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasChildren ||
39336      // Show the appender while dragging to allow inserting element between item and the appender.
39337      hasChildren ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false
39338    });
39339    const ParentElement = openSubmenusOnClick ? 'button' : 'a';
39340    function transformToLink() {
39341      const newLinkBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes);
39342      replaceBlock(clientId, newLinkBlock);
39343    }
39344    (0,external_wp_element_namespaceObject.useEffect)(() => {
39345      // If block becomes empty, transform to Navigation Link.
39346      if (!hasChildren && prevHasChildren) {
39347        // This side-effect should not create an undo level as those should
39348        // only be created via user interactions.
39349        __unstableMarkNextChangeAsNotPersistent();
39350        transformToLink();
39351      }
39352    }, [hasChildren, prevHasChildren]);
39353    const canConvertToLink = !selectedBlockHasChildren || onlyDescendantIsEmptyLink;
39354    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
39355      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
39356        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
39357          children: [!openSubmenusOnClick && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
39358            name: "link",
39359            icon: library_link,
39360            title: (0,external_wp_i18n_namespaceObject.__)('Link'),
39361            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('k'),
39362            onClick: event => {
39363              setIsLinkOpen(true);
39364              setOpenedBy(event.currentTarget);
39365            }
39366          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
39367            name: "revert",
39368            icon: remove_submenu,
39369            title: (0,external_wp_i18n_namespaceObject.__)('Convert to Link'),
39370            onClick: transformToLink,
39371            className: "wp-block-navigation__submenu__revert",
39372            disabled: !canConvertToLink
39373          })]
39374        })
39375      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
39376        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
39377          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
39378          resetAll: () => {
39379            setAttributes({
39380              label: '',
39381              url: '',
39382              description: '',
39383              title: '',
39384              rel: ''
39385            });
39386          },
39387          dropdownMenuProps: dropdownMenuProps,
39388          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39389            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
39390            isShownByDefault: true,
39391            hasValue: () => !!label,
39392            onDeselect: () => setAttributes({
39393              label: ''
39394            }),
39395            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39396              __nextHasNoMarginBottom: true,
39397              __next40pxDefaultSize: true,
39398              value: label || '',
39399              onChange: labelValue => {
39400                setAttributes({
39401                  label: labelValue
39402                });
39403              },
39404              label: (0,external_wp_i18n_namespaceObject.__)('Text'),
39405              autoComplete: "off"
39406            })
39407          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39408            label: (0,external_wp_i18n_namespaceObject.__)('Link'),
39409            isShownByDefault: true,
39410            hasValue: () => !!url,
39411            onDeselect: () => setAttributes({
39412              url: ''
39413            }),
39414            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39415              __nextHasNoMarginBottom: true,
39416              __next40pxDefaultSize: true,
39417              value: url || '',
39418              onChange: urlValue => {
39419                setAttributes({
39420                  url: urlValue
39421                });
39422              },
39423              label: (0,external_wp_i18n_namespaceObject.__)('Link'),
39424              autoComplete: "off",
39425              type: "url"
39426            })
39427          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39428            label: (0,external_wp_i18n_namespaceObject.__)('Description'),
39429            isShownByDefault: true,
39430            hasValue: () => !!description,
39431            onDeselect: () => setAttributes({
39432              description: ''
39433            }),
39434            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
39435              __nextHasNoMarginBottom: true,
39436              value: description || '',
39437              onChange: descriptionValue => {
39438                setAttributes({
39439                  description: descriptionValue
39440                });
39441              },
39442              label: (0,external_wp_i18n_namespaceObject.__)('Description'),
39443              help: (0,external_wp_i18n_namespaceObject.__)('The description will be displayed in the menu if the current theme supports it.')
39444            })
39445          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39446            label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
39447            isShownByDefault: true,
39448            hasValue: () => !!title,
39449            onDeselect: () => setAttributes({
39450              title: ''
39451            }),
39452            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39453              __nextHasNoMarginBottom: true,
39454              __next40pxDefaultSize: true,
39455              value: title || '',
39456              onChange: titleValue => {
39457                setAttributes({
39458                  title: titleValue
39459                });
39460              },
39461              label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
39462              autoComplete: "off",
39463              help: (0,external_wp_i18n_namespaceObject.__)('Additional information to help clarify the purpose of the link.')
39464            })
39465          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
39466            label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
39467            isShownByDefault: true,
39468            hasValue: () => !!rel,
39469            onDeselect: () => setAttributes({
39470              rel: ''
39471            }),
39472            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
39473              __nextHasNoMarginBottom: true,
39474              __next40pxDefaultSize: true,
39475              value: rel || '',
39476              onChange: relValue => {
39477                setAttributes({
39478                  rel: relValue
39479                });
39480              },
39481              label: (0,external_wp_i18n_namespaceObject.__)('Rel attribute'),
39482              autoComplete: "off",
39483              help: (0,external_wp_i18n_namespaceObject.__)('The relationship of the linked URL as space-separated link types.')
39484            })
39485          })]
39486        })
39487      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
39488        ...blockProps,
39489        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ParentElement, {
39490          className: "wp-block-navigation-item__content",
39491          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
39492            ref: ref,
39493            identifier: "label",
39494            className: "wp-block-navigation-item__label",
39495            value: label,
39496            onChange: labelValue => setAttributes({
39497              label: labelValue
39498            }),
39499            onMerge: mergeBlocks,
39500            onReplace: onReplace,
39501            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Navigation link text'),
39502            placeholder: itemLabelPlaceholder,
39503            withoutInteractiveFormatting: true,
39504            onClick: () => {
39505              if (!openSubmenusOnClick && !url) {
39506                setIsLinkOpen(true);
39507                setOpenedBy(ref.current);
39508              }
39509            }
39510          }), description && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39511            className: "wp-block-navigation-item__description",
39512            children: description
39513          }), !openSubmenusOnClick && isLinkOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LinkUI, {
39514            clientId: clientId,
39515            link: attributes,
39516            onClose: () => {
39517              setIsLinkOpen(false);
39518              if (openedBy) {
39519                openedBy.focus();
39520                setOpenedBy(null);
39521              } else {
39522                selectBlock(clientId);
39523              }
39524            },
39525            anchor: popoverAnchor,
39526            onRemove: () => {
39527              setAttributes({
39528                url: ''
39529              });
39530              (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Link removed.'), 'assertive');
39531            },
39532            onChange: updatedValue => {
39533              updateAttributes(updatedValue, setAttributes, attributes);
39534            }
39535          })]
39536        }), (showSubmenuIcon || openSubmenusOnClick) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39537          className: "wp-block-navigation__submenu-icon",
39538          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ItemSubmenuIcon, {})
39539        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39540          ...innerBlocksProps
39541        })]
39542      })]
39543    });
39544  }
39545  
39546  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/save.js
39547  /**
39548   * WordPress dependencies
39549   */
39550  
39551  
39552  function navigation_submenu_save_save() {
39553    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
39554  }
39555  
39556  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/transforms.js
39557  /**
39558   * WordPress dependencies
39559   */
39560  
39561  const navigation_submenu_transforms_transforms = {
39562    to: [{
39563      type: 'block',
39564      blocks: ['core/navigation-link'],
39565      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39566      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', attributes)
39567    }, {
39568      type: 'block',
39569      blocks: ['core/spacer'],
39570      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39571      transform: () => {
39572        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer');
39573      }
39574    }, {
39575      type: 'block',
39576      blocks: ['core/site-logo'],
39577      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39578      transform: () => {
39579        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo');
39580      }
39581    }, {
39582      type: 'block',
39583      blocks: ['core/home-link'],
39584      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39585      transform: () => {
39586        return (0,external_wp_blocks_namespaceObject.createBlock)('core/home-link');
39587      }
39588    }, {
39589      type: 'block',
39590      blocks: ['core/social-links'],
39591      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39592      transform: () => {
39593        return (0,external_wp_blocks_namespaceObject.createBlock)('core/social-links');
39594      }
39595    }, {
39596      type: 'block',
39597      blocks: ['core/search'],
39598      isMatch: (attributes, block) => block?.innerBlocks?.length === 0,
39599      transform: () => {
39600        return (0,external_wp_blocks_namespaceObject.createBlock)('core/search');
39601      }
39602    }]
39603  };
39604  /* harmony default export */ const navigation_submenu_transforms = (navigation_submenu_transforms_transforms);
39605  
39606  ;// ./node_modules/@wordpress/block-library/build-module/navigation-submenu/index.js
39607  /**
39608   * WordPress dependencies
39609   */
39610  
39611  
39612  
39613  /**
39614   * Internal dependencies
39615   */
39616  
39617  const navigation_submenu_metadata = {
39618    $schema: "https://schemas.wp.org/trunk/block.json",
39619    apiVersion: 3,
39620    name: "core/navigation-submenu",
39621    title: "Submenu",
39622    category: "design",
39623    parent: ["core/navigation"],
39624    description: "Add a submenu to your navigation.",
39625    textdomain: "default",
39626    attributes: {
39627      label: {
39628        type: "string"
39629      },
39630      type: {
39631        type: "string"
39632      },
39633      description: {
39634        type: "string"
39635      },
39636      rel: {
39637        type: "string"
39638      },
39639      id: {
39640        type: "number"
39641      },
39642      opensInNewTab: {
39643        type: "boolean",
39644        "default": false
39645      },
39646      url: {
39647        type: "string"
39648      },
39649      title: {
39650        type: "string"
39651      },
39652      kind: {
39653        type: "string"
39654      },
39655      isTopLevelItem: {
39656        type: "boolean"
39657      }
39658    },
39659    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "style"],
39660    supports: {
39661      reusable: false,
39662      html: false,
39663      typography: {
39664        fontSize: true,
39665        lineHeight: true,
39666        __experimentalFontFamily: true,
39667        __experimentalFontWeight: true,
39668        __experimentalFontStyle: true,
39669        __experimentalTextTransform: true,
39670        __experimentalTextDecoration: true,
39671        __experimentalLetterSpacing: true,
39672        __experimentalDefaultControls: {
39673          fontSize: true
39674        }
39675      },
39676      interactivity: {
39677        clientNavigation: true
39678      }
39679    },
39680    editorStyle: "wp-block-navigation-submenu-editor",
39681    style: "wp-block-navigation-submenu"
39682  };
39683  
39684  
39685  
39686  const {
39687    name: navigation_submenu_name
39688  } = navigation_submenu_metadata;
39689  
39690  const navigation_submenu_settings = {
39691    icon: ({
39692      context
39693    }) => {
39694      if (context === 'list-view') {
39695        return library_page;
39696      }
39697      return add_submenu;
39698    },
39699    __experimentalLabel(attributes, {
39700      context
39701    }) {
39702      const {
39703        label
39704      } = attributes;
39705      const customName = attributes?.metadata?.name;
39706  
39707      // In the list view, use the block's menu label as the label.
39708      // If the menu label is empty, fall back to the default label.
39709      if (context === 'list-view' && (customName || label)) {
39710        return attributes?.metadata?.name || label;
39711      }
39712      return label;
39713    },
39714    edit: NavigationSubmenuEdit,
39715    example: {
39716      attributes: {
39717        label: (0,external_wp_i18n_namespaceObject._x)('About', 'Example link text for Navigation Submenu'),
39718        type: 'page'
39719      }
39720    },
39721    save: navigation_submenu_save_save,
39722    transforms: navigation_submenu_transforms
39723  };
39724  const navigation_submenu_init = () => initBlock({
39725    name: navigation_submenu_name,
39726    metadata: navigation_submenu_metadata,
39727    settings: navigation_submenu_settings
39728  });
39729  
39730  ;// ./node_modules/@wordpress/icons/build-module/library/page-break.js
39731  /**
39732   * WordPress dependencies
39733   */
39734  
39735  
39736  const pageBreak = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
39737    xmlns: "http://www.w3.org/2000/svg",
39738    viewBox: "0 0 24 24",
39739    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
39740      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"
39741    })
39742  });
39743  /* harmony default export */ const page_break = (pageBreak);
39744  
39745  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js
39746  /**
39747   * WordPress dependencies
39748   */
39749  
39750  
39751  
39752  function NextPageEdit() {
39753    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
39754      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
39755      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
39756        children: (0,external_wp_i18n_namespaceObject.__)('Page break')
39757      })
39758    });
39759  }
39760  
39761  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/save.js
39762  /**
39763   * WordPress dependencies
39764   */
39765  
39766  
39767  function nextpage_save_save() {
39768    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
39769      children: '<!--nextpage-->'
39770    });
39771  }
39772  
39773  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js
39774  /**
39775   * WordPress dependencies
39776   */
39777  
39778  const nextpage_transforms_transforms = {
39779    from: [{
39780      type: 'raw',
39781      schema: {
39782        'wp-block': {
39783          attributes: ['data-block']
39784        }
39785      },
39786      isMatch: node => node.dataset && node.dataset.block === 'core/nextpage',
39787      transform() {
39788        return (0,external_wp_blocks_namespaceObject.createBlock)('core/nextpage', {});
39789      }
39790    }]
39791  };
39792  /* harmony default export */ const nextpage_transforms = (nextpage_transforms_transforms);
39793  
39794  ;// ./node_modules/@wordpress/block-library/build-module/nextpage/index.js
39795  /**
39796   * WordPress dependencies
39797   */
39798  
39799  
39800  /**
39801   * Internal dependencies
39802   */
39803  
39804  
39805  const nextpage_metadata = {
39806    $schema: "https://schemas.wp.org/trunk/block.json",
39807    apiVersion: 3,
39808    name: "core/nextpage",
39809    title: "Page Break",
39810    category: "design",
39811    description: "Separate your content into a multi-page experience.",
39812    keywords: ["next page", "pagination"],
39813    parent: ["core/post-content"],
39814    textdomain: "default",
39815    supports: {
39816      customClassName: false,
39817      className: false,
39818      html: false,
39819      interactivity: {
39820        clientNavigation: true
39821      }
39822    },
39823    editorStyle: "wp-block-nextpage-editor"
39824  };
39825  
39826  
39827  const {
39828    name: nextpage_name
39829  } = nextpage_metadata;
39830  
39831  const nextpage_settings = {
39832    icon: page_break,
39833    example: {},
39834    transforms: nextpage_transforms,
39835    edit: NextPageEdit,
39836    save: nextpage_save_save
39837  };
39838  const nextpage_init = () => initBlock({
39839    name: nextpage_name,
39840    metadata: nextpage_metadata,
39841    settings: nextpage_settings
39842  });
39843  
39844  ;// ./node_modules/@wordpress/block-library/build-module/pattern/recursion-detector.js
39845  /**
39846   * THIS MODULE IS INTENTIONALLY KEPT WITHIN THE PATTERN BLOCK'S SOURCE.
39847   *
39848   * This is because this approach for preventing infinite loops due to
39849   * recursively rendering blocks is specific to the way that the `core/pattern`
39850   * block behaves in the editor. Any other block types that deal with recursion
39851   * SHOULD USE THE STANDARD METHOD for avoiding loops:
39852   *
39853   * @see https://github.com/WordPress/gutenberg/pull/31455
39854   * @see packages/block-editor/src/components/recursion-provider/README.md
39855   */
39856  
39857  /**
39858   * WordPress dependencies
39859   */
39860  
39861  
39862  /**
39863   * Naming is hard.
39864   *
39865   * @see useParsePatternDependencies
39866   *
39867   * @type {WeakMap<Object, Function>}
39868   */
39869  const cachedParsers = new WeakMap();
39870  
39871  /**
39872   * Hook used by PatternEdit to parse block patterns. It returns a function that
39873   * takes a pattern and returns nothing but throws an error if the pattern is
39874   * recursive.
39875   *
39876   * @example
39877   * ```js
39878   * const parsePatternDependencies = useParsePatternDependencies();
39879   * parsePatternDependencies( selectedPattern );
39880   * ```
39881   *
39882   * @see parsePatternDependencies
39883   *
39884   * @return {Function} A function to parse block patterns.
39885   */
39886  function useParsePatternDependencies() {
39887    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
39888  
39889    // Instead of caching maps, go straight to the point and cache bound
39890    // functions. Each of those functions is bound to a different Map that will
39891    // keep track of patterns in the context of the given registry.
39892    if (!cachedParsers.has(registry)) {
39893      const deps = new Map();
39894      cachedParsers.set(registry, parsePatternDependencies.bind(null, deps));
39895    }
39896    return cachedParsers.get(registry);
39897  }
39898  
39899  /**
39900   * Parse a given pattern and traverse its contents to detect any subsequent
39901   * patterns on which it may depend. Such occurrences will be added to an
39902   * internal dependency graph. If a circular dependency is detected, an
39903   * error will be thrown.
39904   *
39905   * EXPORTED FOR TESTING PURPOSES ONLY.
39906   *
39907   * @param {Map<string, Set<string>>} deps           Map of pattern dependencies.
39908   * @param {Object}                   pattern        Pattern.
39909   * @param {string}                   pattern.name   Pattern name.
39910   * @param {Array}                    pattern.blocks Pattern's block list.
39911   *
39912   * @throws {Error} If a circular dependency is detected.
39913   */
39914  function parsePatternDependencies(deps, {
39915    name,
39916    blocks
39917  }) {
39918    const queue = [...blocks];
39919    while (queue.length) {
39920      const block = queue.shift();
39921      for (const innerBlock of (_block$innerBlocks = block.innerBlocks) !== null && _block$innerBlocks !== void 0 ? _block$innerBlocks : []) {
39922        var _block$innerBlocks;
39923        queue.unshift(innerBlock);
39924      }
39925      if (block.name === 'core/pattern') {
39926        registerDependency(deps, name, block.attributes.slug);
39927      }
39928    }
39929  }
39930  
39931  /**
39932   * Declare that pattern `a` depends on pattern `b`. If a circular
39933   * dependency is detected, an error will be thrown.
39934   *
39935   * EXPORTED FOR TESTING PURPOSES ONLY.
39936   *
39937   * @param {Map<string, Set<string>>} deps Map of pattern dependencies.
39938   * @param {string}                   a    Slug for pattern A.
39939   * @param {string}                   b    Slug for pattern B.
39940   *
39941   * @throws {Error} If a circular dependency is detected.
39942   */
39943  function registerDependency(deps, a, b) {
39944    if (!deps.has(a)) {
39945      deps.set(a, new Set());
39946    }
39947    deps.get(a).add(b);
39948    if (hasCycle(deps, a)) {
39949      throw new TypeError(`Pattern $a} has a circular dependency and cannot be rendered.`);
39950    }
39951  }
39952  
39953  /**
39954   * Determine if a given pattern has circular dependencies on other patterns.
39955   * This will be determined by running a depth-first search on the current state
39956   * of the graph represented by `patternDependencies`.
39957   *
39958   * @param {Map<string, Set<string>>} deps           Map of pattern dependencies.
39959   * @param {string}                   slug           Pattern slug.
39960   * @param {Set<string>}              [visitedNodes] Set to track visited nodes in the graph.
39961   * @param {Set<string>}              [currentPath]  Set to track and backtrack graph paths.
39962   * @return {boolean} Whether any cycle was found.
39963   */
39964  function hasCycle(deps, slug, visitedNodes = new Set(), currentPath = new Set()) {
39965    var _deps$get;
39966    visitedNodes.add(slug);
39967    currentPath.add(slug);
39968    const dependencies = (_deps$get = deps.get(slug)) !== null && _deps$get !== void 0 ? _deps$get : new Set();
39969    for (const dependency of dependencies) {
39970      if (!visitedNodes.has(dependency)) {
39971        if (hasCycle(deps, dependency, visitedNodes, currentPath)) {
39972          return true;
39973        }
39974      } else if (currentPath.has(dependency)) {
39975        return true;
39976      }
39977    }
39978  
39979    // Remove the current node from the current path when backtracking
39980    currentPath.delete(slug);
39981    return false;
39982  }
39983  
39984  ;// ./node_modules/@wordpress/block-library/build-module/pattern/edit.js
39985  /**
39986   * WordPress dependencies
39987   */
39988  
39989  
39990  
39991  
39992  
39993  
39994  
39995  /**
39996   * Internal dependencies
39997   */
39998  
39999  
40000  const PatternEdit = ({
40001    attributes,
40002    clientId
40003  }) => {
40004    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
40005    const selectedPattern = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__experimentalGetParsedPattern(attributes.slug), [attributes.slug]);
40006    const currentThemeStylesheet = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet, []);
40007    const {
40008      replaceBlocks,
40009      setBlockEditingMode,
40010      __unstableMarkNextChangeAsNotPersistent
40011    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
40012    const {
40013      getBlockRootClientId,
40014      getBlockEditingMode
40015    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
40016    const [hasRecursionError, setHasRecursionError] = (0,external_wp_element_namespaceObject.useState)(false);
40017    const parsePatternDependencies = useParsePatternDependencies();
40018  
40019    // Duplicated in packages/editor/src/components/start-template-options/index.js.
40020    function injectThemeAttributeInBlockTemplateContent(block) {
40021      if (block.innerBlocks.find(innerBlock => innerBlock.name === 'core/template-part')) {
40022        block.innerBlocks = block.innerBlocks.map(innerBlock => {
40023          if (innerBlock.name === 'core/template-part' && innerBlock.attributes.theme === undefined) {
40024            innerBlock.attributes.theme = currentThemeStylesheet;
40025          }
40026          return innerBlock;
40027        });
40028      }
40029      if (block.name === 'core/template-part' && block.attributes.theme === undefined) {
40030        block.attributes.theme = currentThemeStylesheet;
40031      }
40032      return block;
40033    }
40034  
40035    // Run this effect when the component loads.
40036    // This adds the Pattern's contents to the post.
40037    // This change won't be saved.
40038    // It will continue to pull from the pattern file unless changes are made to its respective template part.
40039    (0,external_wp_element_namespaceObject.useEffect)(() => {
40040      if (!hasRecursionError && selectedPattern?.blocks) {
40041        try {
40042          parsePatternDependencies(selectedPattern);
40043        } catch (error) {
40044          setHasRecursionError(true);
40045          return;
40046        }
40047  
40048        // We batch updates to block list settings to avoid triggering cascading renders
40049        // for each container block included in a tree and optimize initial render.
40050        // Since the above uses microtasks, we need to use a microtask here as well,
40051        // because nested pattern blocks cannot be inserted if the parent block supports
40052        // inner blocks but doesn't have blockSettings in the state.
40053        window.queueMicrotask(() => {
40054          const rootClientId = getBlockRootClientId(clientId);
40055          // Clone blocks from the pattern before insertion to ensure they receive
40056          // distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.
40057          const clonedBlocks = selectedPattern.blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(injectThemeAttributeInBlockTemplateContent(block)));
40058          // If the pattern has a single block and categories, we should add the
40059          // categories of the pattern to the block's metadata.
40060          if (clonedBlocks.length === 1 && selectedPattern.categories?.length > 0) {
40061            clonedBlocks[0].attributes = {
40062              ...clonedBlocks[0].attributes,
40063              metadata: {
40064                ...clonedBlocks[0].attributes.metadata,
40065                categories: selectedPattern.categories,
40066                patternName: selectedPattern.name,
40067                name: clonedBlocks[0].attributes.metadata.name || selectedPattern.title
40068              }
40069            };
40070          }
40071          const rootEditingMode = getBlockEditingMode(rootClientId);
40072          registry.batch(() => {
40073            // Temporarily set the root block to default mode to allow replacing the pattern.
40074            // This could happen when the page is disabling edits of non-content blocks.
40075            __unstableMarkNextChangeAsNotPersistent();
40076            setBlockEditingMode(rootClientId, 'default');
40077            __unstableMarkNextChangeAsNotPersistent();
40078            replaceBlocks(clientId, clonedBlocks);
40079            // Restore the root block's original mode.
40080            __unstableMarkNextChangeAsNotPersistent();
40081            setBlockEditingMode(rootClientId, rootEditingMode);
40082          });
40083        });
40084      }
40085    }, [clientId, hasRecursionError, selectedPattern, __unstableMarkNextChangeAsNotPersistent, replaceBlocks, getBlockEditingMode, setBlockEditingMode, getBlockRootClientId]);
40086    const props = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
40087    if (hasRecursionError) {
40088      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40089        ...props,
40090        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
40091          children: (0,external_wp_i18n_namespaceObject.sprintf)(
40092          // translators: A warning in which %s is the name of a pattern.
40093          (0,external_wp_i18n_namespaceObject.__)('Pattern "%s" cannot be rendered inside itself.'), selectedPattern?.name)
40094        })
40095      });
40096    }
40097    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40098      ...props
40099    });
40100  };
40101  /* harmony default export */ const pattern_edit = (PatternEdit);
40102  
40103  ;// ./node_modules/@wordpress/block-library/build-module/pattern/index.js
40104  /**
40105   * Internal dependencies
40106   */
40107  
40108  const pattern_metadata = {
40109    $schema: "https://schemas.wp.org/trunk/block.json",
40110    apiVersion: 3,
40111    name: "core/pattern",
40112    title: "Pattern Placeholder",
40113    category: "theme",
40114    description: "Show a block pattern.",
40115    supports: {
40116      html: false,
40117      inserter: false,
40118      renaming: false,
40119      interactivity: {
40120        clientNavigation: true
40121      }
40122    },
40123    textdomain: "default",
40124    attributes: {
40125      slug: {
40126        type: "string"
40127      }
40128    }
40129  };
40130  
40131  const {
40132    name: pattern_name
40133  } = pattern_metadata;
40134  
40135  const pattern_settings = {
40136    edit: pattern_edit
40137  };
40138  const pattern_init = () => initBlock({
40139    name: pattern_name,
40140    metadata: pattern_metadata,
40141    settings: pattern_settings
40142  });
40143  
40144  ;// ./node_modules/@wordpress/icons/build-module/library/pages.js
40145  /**
40146   * WordPress dependencies
40147   */
40148  
40149  
40150  const pages = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
40151    xmlns: "http://www.w3.org/2000/svg",
40152    viewBox: "0 0 24 24",
40153    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40154      d: "M14.5 5.5h-7V7h7V5.5ZM7.5 9h7v1.5h-7V9Zm7 3.5h-7V14h7v-1.5Z"
40155    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40156      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"
40157    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40158      d: "M20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z"
40159    })]
40160  });
40161  /* harmony default export */ const library_pages = (pages);
40162  
40163  ;// ./node_modules/@wordpress/block-library/build-module/page-list/use-convert-to-navigation-links.js
40164  /**
40165   * WordPress dependencies
40166   */
40167  
40168  
40169  
40170  
40171  /**
40172   * Converts an array of pages into a nested array of navigation link blocks.
40173   *
40174   * @param {Array} pages An array of pages.
40175   *
40176   * @return {Array} A nested array of navigation link blocks.
40177   */
40178  function createNavigationLinks(pages = []) {
40179    const linkMap = {};
40180    const navigationLinks = [];
40181    pages.forEach(({
40182      id,
40183      title,
40184      link: url,
40185      type,
40186      parent
40187    }) => {
40188      var _linkMap$id$innerBloc;
40189      // See if a placeholder exists. This is created if children appear before parents in list.
40190      const innerBlocks = (_linkMap$id$innerBloc = linkMap[id]?.innerBlocks) !== null && _linkMap$id$innerBloc !== void 0 ? _linkMap$id$innerBloc : [];
40191      linkMap[id] = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-link', {
40192        id,
40193        label: title.rendered,
40194        url,
40195        type,
40196        kind: 'post-type'
40197      }, innerBlocks);
40198      if (!parent) {
40199        navigationLinks.push(linkMap[id]);
40200      } else {
40201        if (!linkMap[parent]) {
40202          // Use a placeholder if the child appears before parent in list.
40203          linkMap[parent] = {
40204            innerBlocks: []
40205          };
40206        }
40207        // Although these variables are not referenced, they are needed to store the innerBlocks in memory.
40208        const parentLinkInnerBlocks = linkMap[parent].innerBlocks;
40209        parentLinkInnerBlocks.push(linkMap[id]);
40210      }
40211    });
40212    return navigationLinks;
40213  }
40214  
40215  /**
40216   * Finds a navigation link block by id, recursively.
40217   * It might be possible to make this a more generic helper function.
40218   *
40219   * @param {Array}  navigationLinks An array of navigation link blocks.
40220   * @param {number} id              The id of the navigation link to find.
40221   *
40222   * @return {Object|null} The navigation link block with the given id.
40223   */
40224  function findNavigationLinkById(navigationLinks, id) {
40225    for (const navigationLink of navigationLinks) {
40226      // Is this the link we're looking for?
40227      if (navigationLink.attributes.id === id) {
40228        return navigationLink;
40229      }
40230  
40231      // If not does it have innerBlocks?
40232      if (navigationLink.innerBlocks && navigationLink.innerBlocks.length) {
40233        const foundNavigationLink = findNavigationLinkById(navigationLink.innerBlocks, id);
40234        if (foundNavigationLink) {
40235          return foundNavigationLink;
40236        }
40237      }
40238    }
40239    return null;
40240  }
40241  function convertToNavigationLinks(pages = [], parentPageID = null) {
40242    let navigationLinks = createNavigationLinks(pages);
40243  
40244    // If a parent page ID is provided, only return the children of that page.
40245    if (parentPageID) {
40246      const parentPage = findNavigationLinkById(navigationLinks, parentPageID);
40247      if (parentPage && parentPage.innerBlocks) {
40248        navigationLinks = parentPage.innerBlocks;
40249      }
40250    }
40251  
40252    // Transform all links with innerBlocks into Submenus. This can't be done
40253    // sooner because page objects have no information on their children.
40254    const transformSubmenus = listOfLinks => {
40255      listOfLinks.forEach((block, index, listOfLinksArray) => {
40256        const {
40257          attributes,
40258          innerBlocks
40259        } = block;
40260        if (innerBlocks.length !== 0) {
40261          transformSubmenus(innerBlocks);
40262          const transformedBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/navigation-submenu', attributes, innerBlocks);
40263          listOfLinksArray[index] = transformedBlock;
40264        }
40265      });
40266    };
40267    transformSubmenus(navigationLinks);
40268    return navigationLinks;
40269  }
40270  function useConvertToNavigationLinks({
40271    clientId,
40272    pages,
40273    parentClientId,
40274    parentPageID
40275  }) {
40276    const {
40277      replaceBlock,
40278      selectBlock
40279    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
40280    return () => {
40281      const navigationLinks = convertToNavigationLinks(pages, parentPageID);
40282  
40283      // Replace the Page List block with the Navigation Links.
40284      replaceBlock(clientId, navigationLinks);
40285  
40286      // Select the Navigation block to reveal the changes.
40287      selectBlock(parentClientId);
40288    };
40289  }
40290  
40291  ;// ./node_modules/@wordpress/block-library/build-module/page-list/convert-to-links-modal.js
40292  /**
40293   * WordPress dependencies
40294   */
40295  
40296  
40297  
40298  
40299  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.");
40300  function ConvertToLinksModal({
40301    onClick,
40302    onClose,
40303    disabled
40304  }) {
40305    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
40306      onRequestClose: onClose,
40307      title: (0,external_wp_i18n_namespaceObject.__)('Edit Page List'),
40308      className: "wp-block-page-list-modal",
40309      aria: {
40310        describedby: (0,external_wp_compose_namespaceObject.useInstanceId)(ConvertToLinksModal, 'wp-block-page-list-modal__description')
40311      },
40312      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40313        id: (0,external_wp_compose_namespaceObject.useInstanceId)(ConvertToLinksModal, 'wp-block-page-list-modal__description'),
40314        children: convertDescription
40315      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
40316        className: "wp-block-page-list-modal-buttons",
40317        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
40318          __next40pxDefaultSize: true,
40319          variant: "tertiary",
40320          onClick: onClose,
40321          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
40322        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
40323          __next40pxDefaultSize: true,
40324          variant: "primary",
40325          accessibleWhenDisabled: true,
40326          disabled: disabled,
40327          onClick: onClick,
40328          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
40329        })]
40330      })]
40331    });
40332  }
40333  
40334  ;// ./node_modules/@wordpress/block-library/build-module/page-list/edit.js
40335  /**
40336   * External dependencies
40337   */
40338  
40339  
40340  /**
40341   * WordPress dependencies
40342   */
40343  
40344  
40345  
40346  
40347  
40348  
40349  
40350  
40351  /**
40352   * Internal dependencies
40353   */
40354  
40355  
40356  
40357  
40358  // We only show the edit option when page count is <= MAX_PAGE_COUNT
40359  // Performance of Navigation Links is not good past this value.
40360  
40361  const MAX_PAGE_COUNT = 100;
40362  const NOOP = () => {};
40363  function BlockContent({
40364    blockProps,
40365    innerBlocksProps,
40366    hasResolvedPages,
40367    blockList,
40368    pages,
40369    parentPageID
40370  }) {
40371    if (!hasResolvedPages) {
40372      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40373        ...blockProps,
40374        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40375          className: "wp-block-page-list__loading-indicator-container",
40376          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {
40377            className: "wp-block-page-list__loading-indicator"
40378          })
40379        })
40380      });
40381    }
40382    if (pages === null) {
40383      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40384        ...blockProps,
40385        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
40386          status: "warning",
40387          isDismissible: false,
40388          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
40389        })
40390      });
40391    }
40392    if (pages.length === 0) {
40393      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40394        ...blockProps,
40395        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
40396          status: "info",
40397          isDismissible: false,
40398          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
40399        })
40400      });
40401    }
40402    if (blockList.length === 0) {
40403      const parentPageDetails = pages.find(page => page.id === parentPageID);
40404      if (parentPageDetails?.title?.rendered) {
40405        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40406          ...blockProps,
40407          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
40408            children: (0,external_wp_i18n_namespaceObject.sprintf)(
40409            // translators: %s: Page title.
40410            (0,external_wp_i18n_namespaceObject.__)('Page List: "%s" page has no children.'), parentPageDetails.title.rendered)
40411          })
40412        });
40413      }
40414      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
40415        ...blockProps,
40416        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
40417          status: "warning",
40418          isDismissible: false,
40419          children: (0,external_wp_i18n_namespaceObject.__)('Page List: Cannot retrieve Pages.')
40420        })
40421      });
40422    }
40423    if (pages.length > 0) {
40424      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
40425        ...innerBlocksProps
40426      });
40427    }
40428  }
40429  function PageListEdit({
40430    context,
40431    clientId,
40432    attributes,
40433    setAttributes
40434  }) {
40435    const {
40436      parentPageID
40437    } = attributes;
40438    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
40439    const openModal = (0,external_wp_element_namespaceObject.useCallback)(() => setOpen(true), []);
40440    const closeModal = () => setOpen(false);
40441    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
40442    const {
40443      records: pages,
40444      hasResolved: hasResolvedPages
40445    } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', 'page', {
40446      per_page: MAX_PAGE_COUNT,
40447      _fields: ['id', 'link', 'menu_order', 'parent', 'title', 'type'],
40448      // TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby
40449      // values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent
40450      // sort.
40451      orderby: 'menu_order',
40452      order: 'asc'
40453    });
40454    const allowConvertToLinks = 'showSubmenuIcon' in context && pages?.length > 0 && pages?.length <= MAX_PAGE_COUNT;
40455    const pagesByParentId = (0,external_wp_element_namespaceObject.useMemo)(() => {
40456      if (pages === null) {
40457        return new Map();
40458      }
40459  
40460      // TODO: Once the REST API supports passing multiple values to
40461      // 'orderby', this can be removed.
40462      // https://core.trac.wordpress.org/ticket/39037
40463      const sortedPages = pages.sort((a, b) => {
40464        if (a.menu_order === b.menu_order) {
40465          return a.title.rendered.localeCompare(b.title.rendered);
40466        }
40467        return a.menu_order - b.menu_order;
40468      });
40469      return sortedPages.reduce((accumulator, page) => {
40470        const {
40471          parent
40472        } = page;
40473        if (accumulator.has(parent)) {
40474          accumulator.get(parent).push(page);
40475        } else {
40476          accumulator.set(parent, [page]);
40477        }
40478        return accumulator;
40479      }, new Map());
40480    }, [pages]);
40481    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
40482      className: dist_clsx('wp-block-page-list', {
40483        'has-text-color': !!context.textColor,
40484        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', context.textColor)]: !!context.textColor,
40485        'has-background': !!context.backgroundColor,
40486        [(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', context.backgroundColor)]: !!context.backgroundColor
40487      }),
40488      style: {
40489        ...context.style?.color
40490      }
40491    });
40492    const pagesTree = (0,external_wp_element_namespaceObject.useMemo)(function makePagesTree(parentId = 0, level = 0) {
40493      const childPages = pagesByParentId.get(parentId);
40494      if (!childPages?.length) {
40495        return [];
40496      }
40497      return childPages.reduce((tree, page) => {
40498        const hasChildren = pagesByParentId.has(page.id);
40499        const item = {
40500          value: page.id,
40501          label: '— '.repeat(level) + page.title.rendered,
40502          rawName: page.title.rendered
40503        };
40504        tree.push(item);
40505        if (hasChildren) {
40506          tree.push(...makePagesTree(page.id, level + 1));
40507        }
40508        return tree;
40509      }, []);
40510    }, [pagesByParentId]);
40511    const blockList = (0,external_wp_element_namespaceObject.useMemo)(function getBlockList(parentId = parentPageID) {
40512      const childPages = pagesByParentId.get(parentId);
40513      if (!childPages?.length) {
40514        return [];
40515      }
40516      return childPages.reduce((template, page) => {
40517        const hasChildren = pagesByParentId.has(page.id);
40518        const pageProps = {
40519          id: page.id,
40520          label:
40521          // translators: displayed when a page has an empty title.
40522          page.title?.rendered?.trim() !== '' ? page.title?.rendered : (0,external_wp_i18n_namespaceObject.__)('(no title)'),
40523          title:
40524          // translators: displayed when a page has an empty title.
40525          page.title?.rendered?.trim() !== '' ? page.title?.rendered : (0,external_wp_i18n_namespaceObject.__)('(no title)'),
40526          link: page.url,
40527          hasChildren
40528        };
40529        let item = null;
40530        const children = getBlockList(page.id);
40531        item = (0,external_wp_blocks_namespaceObject.createBlock)('core/page-list-item', pageProps, children);
40532        template.push(item);
40533        return template;
40534      }, []);
40535    }, [pagesByParentId, parentPageID]);
40536    const {
40537      isNested,
40538      hasSelectedChild,
40539      parentClientId,
40540      hasDraggedChild,
40541      isChildOfNavigation
40542    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
40543      const {
40544        getBlockParentsByBlockName,
40545        hasSelectedInnerBlock,
40546        hasDraggedInnerBlock
40547      } = select(external_wp_blockEditor_namespaceObject.store);
40548      const blockParents = getBlockParentsByBlockName(clientId, 'core/navigation-submenu', true);
40549      const navigationBlockParents = getBlockParentsByBlockName(clientId, 'core/navigation', true);
40550      return {
40551        isNested: blockParents.length > 0,
40552        isChildOfNavigation: navigationBlockParents.length > 0,
40553        hasSelectedChild: hasSelectedInnerBlock(clientId, true),
40554        hasDraggedChild: hasDraggedInnerBlock(clientId, true),
40555        parentClientId: navigationBlockParents[0]
40556      };
40557    }, [clientId]);
40558    const convertToNavigationLinks = useConvertToNavigationLinks({
40559      clientId,
40560      pages,
40561      parentClientId,
40562      parentPageID
40563    });
40564    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
40565      renderAppender: false,
40566      __unstableDisableDropZone: true,
40567      templateLock: isChildOfNavigation ? false : 'all',
40568      onInput: NOOP,
40569      onChange: NOOP,
40570      value: blockList
40571    });
40572    const {
40573      selectBlock
40574    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
40575    (0,external_wp_element_namespaceObject.useEffect)(() => {
40576      if (hasSelectedChild || hasDraggedChild) {
40577        openModal();
40578        selectBlock(parentClientId);
40579      }
40580    }, [hasSelectedChild, hasDraggedChild, parentClientId, selectBlock, openModal]);
40581    (0,external_wp_element_namespaceObject.useEffect)(() => {
40582      setAttributes({
40583        isNested
40584      });
40585    }, [isNested, setAttributes]);
40586    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40587      children: [(pagesTree.length > 0 || allowConvertToLinks) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
40588        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
40589          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
40590          resetAll: () => {
40591            setAttributes({
40592              parentPageID: 0
40593            });
40594          },
40595          dropdownMenuProps: dropdownMenuProps,
40596          children: [pagesTree.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
40597            label: (0,external_wp_i18n_namespaceObject.__)('Parent Page'),
40598            hasValue: () => parentPageID !== 0,
40599            onDeselect: () => setAttributes({
40600              parentPageID: 0
40601            }),
40602            isShownByDefault: true,
40603            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
40604              __nextHasNoMarginBottom: true,
40605              __next40pxDefaultSize: true,
40606              className: "editor-page-attributes__parent",
40607              label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
40608              value: parentPageID,
40609              options: pagesTree,
40610              onChange: value => setAttributes({
40611                parentPageID: value !== null && value !== void 0 ? value : 0
40612              }),
40613              help: (0,external_wp_i18n_namespaceObject.__)('Choose a page to show only its subpages.')
40614            })
40615          }), allowConvertToLinks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
40616            style: {
40617              gridColumn: '1 / -1'
40618            },
40619            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
40620              children: convertDescription
40621            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
40622              __next40pxDefaultSize: true,
40623              variant: "primary",
40624              accessibleWhenDisabled: true,
40625              disabled: !hasResolvedPages,
40626              onClick: convertToNavigationLinks,
40627              children: (0,external_wp_i18n_namespaceObject.__)('Edit')
40628            })]
40629          })]
40630        })
40631      }), allowConvertToLinks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40632        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
40633          group: "other",
40634          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
40635            title: (0,external_wp_i18n_namespaceObject.__)('Edit'),
40636            onClick: openModal,
40637            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
40638          })
40639        }), isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ConvertToLinksModal, {
40640          onClick: convertToNavigationLinks,
40641          onClose: closeModal,
40642          disabled: !hasResolvedPages
40643        })]
40644      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockContent, {
40645        blockProps: blockProps,
40646        innerBlocksProps: innerBlocksProps,
40647        hasResolvedPages: hasResolvedPages,
40648        blockList: blockList,
40649        pages: pages,
40650        parentPageID: parentPageID
40651      })]
40652    });
40653  }
40654  
40655  ;// ./node_modules/@wordpress/block-library/build-module/page-list/index.js
40656  /**
40657   * WordPress dependencies
40658   */
40659  
40660  
40661  /**
40662   * Internal dependencies
40663   */
40664  
40665  const page_list_metadata = {
40666    $schema: "https://schemas.wp.org/trunk/block.json",
40667    apiVersion: 3,
40668    name: "core/page-list",
40669    title: "Page List",
40670    category: "widgets",
40671    allowedBlocks: ["core/page-list-item"],
40672    description: "Display a list of all pages.",
40673    keywords: ["menu", "navigation"],
40674    textdomain: "default",
40675    attributes: {
40676      parentPageID: {
40677        type: "integer",
40678        "default": 0
40679      },
40680      isNested: {
40681        type: "boolean",
40682        "default": false
40683      }
40684    },
40685    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
40686    supports: {
40687      reusable: false,
40688      html: false,
40689      typography: {
40690        fontSize: true,
40691        lineHeight: true,
40692        __experimentalFontFamily: true,
40693        __experimentalFontWeight: true,
40694        __experimentalFontStyle: true,
40695        __experimentalTextTransform: true,
40696        __experimentalTextDecoration: true,
40697        __experimentalLetterSpacing: true,
40698        __experimentalDefaultControls: {
40699          fontSize: true
40700        }
40701      },
40702      interactivity: {
40703        clientNavigation: true
40704      },
40705      color: {
40706        text: true,
40707        background: true,
40708        link: true,
40709        gradients: true,
40710        __experimentalDefaultControls: {
40711          background: true,
40712          text: true,
40713          link: true
40714        }
40715      },
40716      __experimentalBorder: {
40717        radius: true,
40718        color: true,
40719        width: true,
40720        style: true
40721      },
40722      spacing: {
40723        padding: true,
40724        margin: true,
40725        __experimentalDefaultControls: {
40726          padding: false,
40727          margin: false
40728        }
40729      }
40730    },
40731    editorStyle: "wp-block-page-list-editor",
40732    style: "wp-block-page-list"
40733  };
40734  
40735  const {
40736    name: page_list_name
40737  } = page_list_metadata;
40738  
40739  const page_list_settings = {
40740    icon: library_pages,
40741    example: {},
40742    edit: PageListEdit
40743  };
40744  const page_list_init = () => initBlock({
40745    name: page_list_name,
40746    metadata: page_list_metadata,
40747    settings: page_list_settings
40748  });
40749  
40750  ;// ./node_modules/@wordpress/block-library/build-module/navigation-link/icons.js
40751  /**
40752   * WordPress dependencies
40753   */
40754  
40755  
40756  const icons_ItemSubmenuIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
40757    xmlns: "http://www.w3.org/2000/svg",
40758    width: "12",
40759    height: "12",
40760    viewBox: "0 0 12 12",
40761    fill: "none",
40762    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
40763      d: "M1.50002 4L6.00002 8L10.5 4",
40764      strokeWidth: "1.5"
40765    })
40766  });
40767  
40768  ;// ./node_modules/@wordpress/block-library/build-module/page-list-item/edit.js
40769  /**
40770   * External dependencies
40771   */
40772  
40773  /**
40774   * WordPress dependencies
40775   */
40776  
40777  
40778  
40779  
40780  
40781  /**
40782   * Internal dependencies
40783   */
40784  
40785  
40786  
40787  function useFrontPageId() {
40788    return (0,external_wp_data_namespaceObject.useSelect)(select => {
40789      const canReadSettings = select(external_wp_coreData_namespaceObject.store).canUser('read', {
40790        kind: 'root',
40791        name: 'site'
40792      });
40793      if (!canReadSettings) {
40794        return undefined;
40795      }
40796      const site = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'site');
40797      return site?.show_on_front === 'page' && site?.page_on_front;
40798    }, []);
40799  }
40800  function PageListItemEdit({
40801    context,
40802    attributes
40803  }) {
40804    const {
40805      id,
40806      label,
40807      link,
40808      hasChildren,
40809      title
40810    } = attributes;
40811    const isNavigationChild = 'showSubmenuIcon' in context;
40812    const frontPageId = useFrontPageId();
40813    const innerBlocksColors = getColors(context, true);
40814    const navigationChildBlockProps = getNavigationChildBlockProps(innerBlocksColors);
40815    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)(navigationChildBlockProps, {
40816      className: 'wp-block-pages-list__item'
40817    });
40818    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps);
40819    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
40820      className: dist_clsx('wp-block-pages-list__item', {
40821        'has-child': hasChildren,
40822        'wp-block-navigation-item': isNavigationChild,
40823        'open-on-click': context.openSubmenusOnClick,
40824        'open-on-hover-click': !context.openSubmenusOnClick && context.showSubmenuIcon,
40825        'menu-item-home': id === frontPageId
40826      }),
40827      children: [hasChildren && context.openSubmenusOnClick ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40828        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
40829          type: "button",
40830          className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle",
40831          "aria-expanded": "false",
40832          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(label)
40833        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
40834          className: "wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
40835          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icons_ItemSubmenuIcon, {})
40836        })]
40837      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
40838        className: dist_clsx('wp-block-pages-list__item__link', {
40839          'wp-block-navigation-item__content': isNavigationChild
40840        }),
40841        href: link,
40842        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title)
40843      }), hasChildren && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
40844        children: [!context.openSubmenusOnClick && context.showSubmenuIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
40845          className: "wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon",
40846          "aria-expanded": "false",
40847          type: "button",
40848          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icons_ItemSubmenuIcon, {})
40849        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
40850          ...innerBlocksProps
40851        })]
40852      })]
40853    }, id);
40854  }
40855  
40856  ;// ./node_modules/@wordpress/block-library/build-module/page-list-item/index.js
40857  /**
40858   * WordPress dependencies
40859   */
40860  
40861  
40862  /**
40863   * Internal dependencies
40864   */
40865  
40866  const page_list_item_metadata = {
40867    $schema: "https://schemas.wp.org/trunk/block.json",
40868    apiVersion: 3,
40869    name: "core/page-list-item",
40870    title: "Page List Item",
40871    category: "widgets",
40872    parent: ["core/page-list"],
40873    description: "Displays a page inside a list of all pages.",
40874    keywords: ["page", "menu", "navigation"],
40875    textdomain: "default",
40876    attributes: {
40877      id: {
40878        type: "number"
40879      },
40880      label: {
40881        type: "string"
40882      },
40883      title: {
40884        type: "string"
40885      },
40886      link: {
40887        type: "string"
40888      },
40889      hasChildren: {
40890        type: "boolean"
40891      }
40892    },
40893    usesContext: ["textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick"],
40894    supports: {
40895      reusable: false,
40896      html: false,
40897      lock: false,
40898      inserter: false,
40899      __experimentalToolbar: false,
40900      interactivity: {
40901        clientNavigation: true
40902      }
40903    },
40904    editorStyle: "wp-block-page-list-editor",
40905    style: "wp-block-page-list"
40906  };
40907  
40908  const {
40909    name: page_list_item_name
40910  } = page_list_item_metadata;
40911  
40912  const page_list_item_settings = {
40913    __experimentalLabel: ({
40914      label
40915    }) => label,
40916    icon: library_page,
40917    example: {},
40918    edit: PageListItemEdit
40919  };
40920  const page_list_item_init = () => initBlock({
40921    name: page_list_item_name,
40922    metadata: page_list_item_metadata,
40923    settings: page_list_item_settings
40924  });
40925  
40926  ;// ./node_modules/@wordpress/icons/build-module/library/paragraph.js
40927  /**
40928   * WordPress dependencies
40929   */
40930  
40931  
40932  const paragraph = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
40933    xmlns: "http://www.w3.org/2000/svg",
40934    viewBox: "0 0 24 24",
40935    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
40936      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"
40937    })
40938  });
40939  /* harmony default export */ const library_paragraph = (paragraph);
40940  
40941  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js
40942  /**
40943   * External dependencies
40944   */
40945  
40946  
40947  /**
40948   * WordPress dependencies
40949   */
40950  
40951  
40952  
40953  
40954  const deprecated_supports = {
40955    className: false
40956  };
40957  const paragraph_deprecated_blockAttributes = {
40958    align: {
40959      type: 'string'
40960    },
40961    content: {
40962      type: 'string',
40963      source: 'html',
40964      selector: 'p',
40965      default: ''
40966    },
40967    dropCap: {
40968      type: 'boolean',
40969      default: false
40970    },
40971    placeholder: {
40972      type: 'string'
40973    },
40974    textColor: {
40975      type: 'string'
40976    },
40977    backgroundColor: {
40978      type: 'string'
40979    },
40980    fontSize: {
40981      type: 'string'
40982    },
40983    direction: {
40984      type: 'string',
40985      enum: ['ltr', 'rtl']
40986    },
40987    style: {
40988      type: 'object'
40989    }
40990  };
40991  const migrateCustomColorsAndFontSizes = attributes => {
40992    if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) {
40993      return attributes;
40994    }
40995    const style = {};
40996    if (attributes.customTextColor || attributes.customBackgroundColor) {
40997      style.color = {};
40998    }
40999    if (attributes.customTextColor) {
41000      style.color.text = attributes.customTextColor;
41001    }
41002    if (attributes.customBackgroundColor) {
41003      style.color.background = attributes.customBackgroundColor;
41004    }
41005    if (attributes.customFontSize) {
41006      style.typography = {
41007        fontSize: attributes.customFontSize
41008      };
41009    }
41010    const {
41011      customTextColor,
41012      customBackgroundColor,
41013      customFontSize,
41014      ...restAttributes
41015    } = attributes;
41016    return {
41017      ...restAttributes,
41018      style
41019    };
41020  };
41021  const {
41022    style,
41023    ...restBlockAttributes
41024  } = paragraph_deprecated_blockAttributes;
41025  const paragraph_deprecated_deprecated = [
41026  // Version without drop cap on aligned text.
41027  {
41028    supports: deprecated_supports,
41029    attributes: {
41030      ...restBlockAttributes,
41031      customTextColor: {
41032        type: 'string'
41033      },
41034      customBackgroundColor: {
41035        type: 'string'
41036      },
41037      customFontSize: {
41038        type: 'number'
41039      }
41040    },
41041    save({
41042      attributes
41043    }) {
41044      const {
41045        align,
41046        content,
41047        dropCap,
41048        direction
41049      } = attributes;
41050      const className = dist_clsx({
41051        'has-drop-cap': align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center' ? false : dropCap,
41052        [`has-text-align-$align}`]: align
41053      });
41054      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
41055        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
41056          className,
41057          dir: direction
41058        }),
41059        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41060          value: content
41061        })
41062      });
41063    }
41064  }, {
41065    supports: deprecated_supports,
41066    attributes: {
41067      ...restBlockAttributes,
41068      customTextColor: {
41069        type: 'string'
41070      },
41071      customBackgroundColor: {
41072        type: 'string'
41073      },
41074      customFontSize: {
41075        type: 'number'
41076      }
41077    },
41078    migrate: migrateCustomColorsAndFontSizes,
41079    save({
41080      attributes
41081    }) {
41082      const {
41083        align,
41084        content,
41085        dropCap,
41086        backgroundColor,
41087        textColor,
41088        customBackgroundColor,
41089        customTextColor,
41090        fontSize,
41091        customFontSize,
41092        direction
41093      } = attributes;
41094      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
41095      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
41096      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
41097      const className = dist_clsx({
41098        'has-text-color': textColor || customTextColor,
41099        'has-background': backgroundColor || customBackgroundColor,
41100        'has-drop-cap': dropCap,
41101        [`has-text-align-$align}`]: align,
41102        [fontSizeClass]: fontSizeClass,
41103        [textClass]: textClass,
41104        [backgroundClass]: backgroundClass
41105      });
41106      const styles = {
41107        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
41108        color: textClass ? undefined : customTextColor,
41109        fontSize: fontSizeClass ? undefined : customFontSize
41110      };
41111      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41112        tagName: "p",
41113        style: styles,
41114        className: className ? className : undefined,
41115        value: content,
41116        dir: direction
41117      });
41118    }
41119  }, {
41120    supports: deprecated_supports,
41121    attributes: {
41122      ...restBlockAttributes,
41123      customTextColor: {
41124        type: 'string'
41125      },
41126      customBackgroundColor: {
41127        type: 'string'
41128      },
41129      customFontSize: {
41130        type: 'number'
41131      }
41132    },
41133    migrate: migrateCustomColorsAndFontSizes,
41134    save({
41135      attributes
41136    }) {
41137      const {
41138        align,
41139        content,
41140        dropCap,
41141        backgroundColor,
41142        textColor,
41143        customBackgroundColor,
41144        customTextColor,
41145        fontSize,
41146        customFontSize,
41147        direction
41148      } = attributes;
41149      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
41150      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
41151      const fontSizeClass = (0,external_wp_blockEditor_namespaceObject.getFontSizeClass)(fontSize);
41152      const className = dist_clsx({
41153        'has-text-color': textColor || customTextColor,
41154        'has-background': backgroundColor || customBackgroundColor,
41155        'has-drop-cap': dropCap,
41156        [fontSizeClass]: fontSizeClass,
41157        [textClass]: textClass,
41158        [backgroundClass]: backgroundClass
41159      });
41160      const styles = {
41161        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
41162        color: textClass ? undefined : customTextColor,
41163        fontSize: fontSizeClass ? undefined : customFontSize,
41164        textAlign: align
41165      };
41166      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41167        tagName: "p",
41168        style: styles,
41169        className: className ? className : undefined,
41170        value: content,
41171        dir: direction
41172      });
41173    }
41174  }, {
41175    supports: deprecated_supports,
41176    attributes: {
41177      ...restBlockAttributes,
41178      customTextColor: {
41179        type: 'string'
41180      },
41181      customBackgroundColor: {
41182        type: 'string'
41183      },
41184      customFontSize: {
41185        type: 'number'
41186      },
41187      width: {
41188        type: 'string'
41189      }
41190    },
41191    migrate: migrateCustomColorsAndFontSizes,
41192    save({
41193      attributes
41194    }) {
41195      const {
41196        width,
41197        align,
41198        content,
41199        dropCap,
41200        backgroundColor,
41201        textColor,
41202        customBackgroundColor,
41203        customTextColor,
41204        fontSize,
41205        customFontSize
41206      } = attributes;
41207      const textClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
41208      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
41209      const fontSizeClass = fontSize && `is-$fontSize}-text`;
41210      const className = dist_clsx({
41211        [`align$width}`]: width,
41212        'has-background': backgroundColor || customBackgroundColor,
41213        'has-drop-cap': dropCap,
41214        [fontSizeClass]: fontSizeClass,
41215        [textClass]: textClass,
41216        [backgroundClass]: backgroundClass
41217      });
41218      const styles = {
41219        backgroundColor: backgroundClass ? undefined : customBackgroundColor,
41220        color: textClass ? undefined : customTextColor,
41221        fontSize: fontSizeClass ? undefined : customFontSize,
41222        textAlign: align
41223      };
41224      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41225        tagName: "p",
41226        style: styles,
41227        className: className ? className : undefined,
41228        value: content
41229      });
41230    }
41231  }, {
41232    supports: deprecated_supports,
41233    attributes: {
41234      ...restBlockAttributes,
41235      fontSize: {
41236        type: 'number'
41237      }
41238    },
41239    save({
41240      attributes
41241    }) {
41242      const {
41243        width,
41244        align,
41245        content,
41246        dropCap,
41247        backgroundColor,
41248        textColor,
41249        fontSize
41250      } = attributes;
41251      const className = dist_clsx({
41252        [`align$width}`]: width,
41253        'has-background': backgroundColor,
41254        'has-drop-cap': dropCap
41255      });
41256      const styles = {
41257        backgroundColor,
41258        color: textColor,
41259        fontSize,
41260        textAlign: align
41261      };
41262      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
41263        style: styles,
41264        className: className ? className : undefined,
41265        children: content
41266      });
41267    },
41268    migrate(attributes) {
41269      return migrateCustomColorsAndFontSizes({
41270        ...attributes,
41271        customFontSize: Number.isFinite(attributes.fontSize) ? attributes.fontSize : undefined,
41272        customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,
41273        customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined
41274      });
41275    }
41276  }, {
41277    supports: deprecated_supports,
41278    attributes: {
41279      ...paragraph_deprecated_blockAttributes,
41280      content: {
41281        type: 'string',
41282        source: 'html',
41283        default: ''
41284      }
41285    },
41286    save({
41287      attributes
41288    }) {
41289      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
41290        children: attributes.content
41291      });
41292    },
41293    migrate(attributes) {
41294      return attributes;
41295    }
41296  }];
41297  /* harmony default export */ const paragraph_deprecated = (paragraph_deprecated_deprecated);
41298  
41299  ;// ./node_modules/@wordpress/icons/build-module/library/format-ltr.js
41300  /**
41301   * WordPress dependencies
41302   */
41303  
41304  
41305  const formatLtr = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41306    xmlns: "http://www.w3.org/2000/svg",
41307    viewBox: "-2 -2 24 24",
41308    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41309      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"
41310    })
41311  });
41312  /* harmony default export */ const format_ltr = (formatLtr);
41313  
41314  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/use-enter.js
41315  /**
41316   * WordPress dependencies
41317   */
41318  
41319  
41320  
41321  
41322  
41323  
41324  function useOnEnter(props) {
41325    const {
41326      batch
41327    } = (0,external_wp_data_namespaceObject.useRegistry)();
41328    const {
41329      moveBlocksToPosition,
41330      replaceInnerBlocks,
41331      duplicateBlocks,
41332      insertBlock
41333    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
41334    const {
41335      getBlockRootClientId,
41336      getBlockIndex,
41337      getBlockOrder,
41338      getBlockName,
41339      getBlock,
41340      getNextBlockClientId,
41341      canInsertBlockType
41342    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
41343    const propsRef = (0,external_wp_element_namespaceObject.useRef)(props);
41344    propsRef.current = props;
41345    return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
41346      function onKeyDown(event) {
41347        if (event.defaultPrevented) {
41348          return;
41349        }
41350        if (event.keyCode !== external_wp_keycodes_namespaceObject.ENTER) {
41351          return;
41352        }
41353        const {
41354          content,
41355          clientId
41356        } = propsRef.current;
41357  
41358        // The paragraph should be empty.
41359        if (content.length) {
41360          return;
41361        }
41362        const wrapperClientId = getBlockRootClientId(clientId);
41363        if (!(0,external_wp_blocks_namespaceObject.hasBlockSupport)(getBlockName(wrapperClientId), '__experimentalOnEnter', false)) {
41364          return;
41365        }
41366        const order = getBlockOrder(wrapperClientId);
41367        const position = order.indexOf(clientId);
41368  
41369        // If it is the last block, exit.
41370        if (position === order.length - 1) {
41371          let newWrapperClientId = wrapperClientId;
41372          while (!canInsertBlockType(getBlockName(clientId), getBlockRootClientId(newWrapperClientId))) {
41373            newWrapperClientId = getBlockRootClientId(newWrapperClientId);
41374          }
41375          if (typeof newWrapperClientId === 'string') {
41376            event.preventDefault();
41377            moveBlocksToPosition([clientId], wrapperClientId, getBlockRootClientId(newWrapperClientId), getBlockIndex(newWrapperClientId) + 1);
41378          }
41379          return;
41380        }
41381        const defaultBlockName = (0,external_wp_blocks_namespaceObject.getDefaultBlockName)();
41382        if (!canInsertBlockType(defaultBlockName, getBlockRootClientId(wrapperClientId))) {
41383          return;
41384        }
41385        event.preventDefault();
41386  
41387        // If it is in the middle, split the block in two.
41388        const wrapperBlock = getBlock(wrapperClientId);
41389        batch(() => {
41390          duplicateBlocks([wrapperClientId]);
41391          const blockIndex = getBlockIndex(wrapperClientId);
41392          replaceInnerBlocks(wrapperClientId, wrapperBlock.innerBlocks.slice(0, position));
41393          replaceInnerBlocks(getNextBlockClientId(wrapperClientId), wrapperBlock.innerBlocks.slice(position + 1));
41394          insertBlock((0,external_wp_blocks_namespaceObject.createBlock)(defaultBlockName), blockIndex + 1, getBlockRootClientId(wrapperClientId), true);
41395        });
41396      }
41397      element.addEventListener('keydown', onKeyDown);
41398      return () => {
41399        element.removeEventListener('keydown', onKeyDown);
41400      };
41401    }, []);
41402  }
41403  
41404  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js
41405  /**
41406   * External dependencies
41407   */
41408  
41409  
41410  /**
41411   * WordPress dependencies
41412   */
41413  
41414  
41415  
41416  
41417  
41418  /**
41419   * Internal dependencies
41420   */
41421  
41422  
41423  function ParagraphRTLControl({
41424    direction,
41425    setDirection
41426  }) {
41427    return (0,external_wp_i18n_namespaceObject.isRTL)() && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
41428      icon: format_ltr,
41429      title: (0,external_wp_i18n_namespaceObject._x)('Left to right', 'editor button'),
41430      isActive: direction === 'ltr',
41431      onClick: () => {
41432        setDirection(direction === 'ltr' ? undefined : 'ltr');
41433      }
41434    });
41435  }
41436  function hasDropCapDisabled(align) {
41437    return align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center';
41438  }
41439  function DropCapControl({
41440    clientId,
41441    attributes,
41442    setAttributes,
41443    name
41444  }) {
41445    // Please do not add a useSelect call to the paragraph block unconditionally.
41446    // Every useSelect added to a (frequently used) block will degrade load
41447    // and type performance. By moving it within InspectorControls, the subscription is
41448    // now only added for the selected block(s).
41449    const [isDropCapFeatureEnabled] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.dropCap');
41450    if (!isDropCapFeatureEnabled) {
41451      return null;
41452    }
41453    const {
41454      align,
41455      dropCap
41456    } = attributes;
41457    let helpText;
41458    if (hasDropCapDisabled(align)) {
41459      helpText = (0,external_wp_i18n_namespaceObject.__)('Not available for aligned text.');
41460    } else if (dropCap) {
41461      helpText = (0,external_wp_i18n_namespaceObject.__)('Showing large initial letter.');
41462    } else {
41463      helpText = (0,external_wp_i18n_namespaceObject.__)('Show a large initial letter.');
41464    }
41465    const isDropCapControlEnabledByDefault = (0,external_wp_blocks_namespaceObject.getBlockSupport)(name, 'typography.defaultControls.dropCap', false);
41466    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
41467      group: "typography",
41468      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
41469        hasValue: () => !!dropCap,
41470        label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
41471        isShownByDefault: isDropCapControlEnabledByDefault,
41472        onDeselect: () => setAttributes({
41473          dropCap: undefined
41474        }),
41475        resetAllFilter: () => ({
41476          dropCap: undefined
41477        }),
41478        panelId: clientId,
41479        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
41480          __nextHasNoMarginBottom: true,
41481          label: (0,external_wp_i18n_namespaceObject.__)('Drop cap'),
41482          checked: !!dropCap,
41483          onChange: () => setAttributes({
41484            dropCap: !dropCap
41485          }),
41486          help: helpText,
41487          disabled: hasDropCapDisabled(align)
41488        })
41489      })
41490    });
41491  }
41492  function ParagraphBlock({
41493    attributes,
41494    mergeBlocks,
41495    onReplace,
41496    onRemove,
41497    setAttributes,
41498    clientId,
41499    isSelected: isSingleSelected,
41500    name
41501  }) {
41502    const {
41503      align,
41504      content,
41505      direction,
41506      dropCap,
41507      placeholder
41508    } = attributes;
41509    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41510      ref: useOnEnter({
41511        clientId,
41512        content
41513      }),
41514      className: dist_clsx({
41515        'has-drop-cap': hasDropCapDisabled(align) ? false : dropCap,
41516        [`has-text-align-$align}`]: align
41517      }),
41518      style: {
41519        direction
41520      }
41521    });
41522    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
41523    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41524      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
41525        group: "block",
41526        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
41527          value: align,
41528          onChange: newAlign => setAttributes({
41529            align: newAlign,
41530            dropCap: hasDropCapDisabled(newAlign) ? false : dropCap
41531          })
41532        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ParagraphRTLControl, {
41533          direction: direction,
41534          setDirection: newDirection => setAttributes({
41535            direction: newDirection
41536          })
41537        })]
41538      }), isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DropCapControl, {
41539        name: name,
41540        clientId: clientId,
41541        attributes: attributes,
41542        setAttributes: setAttributes
41543      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
41544        identifier: "content",
41545        tagName: "p",
41546        ...blockProps,
41547        value: content,
41548        onChange: newContent => setAttributes({
41549          content: newContent
41550        }),
41551        onMerge: mergeBlocks,
41552        onReplace: onReplace,
41553        onRemove: onRemove,
41554        "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'),
41555        "data-empty": external_wp_blockEditor_namespaceObject.RichText.isEmpty(content),
41556        placeholder: placeholder || (0,external_wp_i18n_namespaceObject.__)('Type / to choose a block'),
41557        "data-custom-placeholder": placeholder ? true : undefined,
41558        __unstableEmbedURLOnPaste: true,
41559        __unstableAllowPrefixTransformations: true
41560      })]
41561    });
41562  }
41563  /* harmony default export */ const paragraph_edit = (ParagraphBlock);
41564  
41565  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/save.js
41566  /**
41567   * External dependencies
41568   */
41569  
41570  
41571  /**
41572   * WordPress dependencies
41573   */
41574  
41575  
41576  
41577  function paragraph_save_save({
41578    attributes
41579  }) {
41580    const {
41581      align,
41582      content,
41583      dropCap,
41584      direction
41585    } = attributes;
41586    const className = dist_clsx({
41587      'has-drop-cap': align === ((0,external_wp_i18n_namespaceObject.isRTL)() ? 'left' : 'right') || align === 'center' ? false : dropCap,
41588      [`has-text-align-$align}`]: align
41589    });
41590    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
41591      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
41592        className,
41593        dir: direction
41594      }),
41595      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
41596        value: content
41597      })
41598    });
41599  }
41600  
41601  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js
41602  /**
41603   * WordPress dependencies
41604   */
41605  
41606  
41607  /**
41608   * Internal dependencies
41609   */
41610  const {
41611    name: transforms_name
41612  } = {
41613    $schema: "https://schemas.wp.org/trunk/block.json",
41614    apiVersion: 3,
41615    name: "core/paragraph",
41616    title: "Paragraph",
41617    category: "text",
41618    description: "Start with the basic building block of all narrative.",
41619    keywords: ["text"],
41620    textdomain: "default",
41621    attributes: {
41622      align: {
41623        type: "string"
41624      },
41625      content: {
41626        type: "rich-text",
41627        source: "rich-text",
41628        selector: "p",
41629        role: "content"
41630      },
41631      dropCap: {
41632        type: "boolean",
41633        "default": false
41634      },
41635      placeholder: {
41636        type: "string"
41637      },
41638      direction: {
41639        type: "string",
41640        "enum": ["ltr", "rtl"]
41641      }
41642    },
41643    supports: {
41644      splitting: true,
41645      anchor: true,
41646      className: false,
41647      __experimentalBorder: {
41648        color: true,
41649        radius: true,
41650        style: true,
41651        width: true
41652      },
41653      color: {
41654        gradients: true,
41655        link: true,
41656        __experimentalDefaultControls: {
41657          background: true,
41658          text: true
41659        }
41660      },
41661      spacing: {
41662        margin: true,
41663        padding: true,
41664        __experimentalDefaultControls: {
41665          margin: false,
41666          padding: false
41667        }
41668      },
41669      typography: {
41670        fontSize: true,
41671        lineHeight: true,
41672        __experimentalFontFamily: true,
41673        __experimentalTextDecoration: true,
41674        __experimentalFontStyle: true,
41675        __experimentalFontWeight: true,
41676        __experimentalLetterSpacing: true,
41677        __experimentalTextTransform: true,
41678        __experimentalWritingMode: true,
41679        __experimentalDefaultControls: {
41680          fontSize: true
41681        }
41682      },
41683      __experimentalSelector: "p",
41684      __unstablePasteTextInline: true,
41685      interactivity: {
41686        clientNavigation: true
41687      }
41688    },
41689    editorStyle: "wp-block-paragraph-editor",
41690    style: "wp-block-paragraph"
41691  };
41692  const paragraph_transforms_transforms = {
41693    from: [{
41694      type: 'raw',
41695      // Paragraph is a fallback and should be matched last.
41696      priority: 20,
41697      selector: 'p',
41698      schema: ({
41699        phrasingContentSchema,
41700        isPaste
41701      }) => ({
41702        p: {
41703          children: phrasingContentSchema,
41704          attributes: isPaste ? [] : ['style', 'id']
41705        }
41706      }),
41707      transform(node) {
41708        const attributes = (0,external_wp_blocks_namespaceObject.getBlockAttributes)(transforms_name, node.outerHTML);
41709        const {
41710          textAlign
41711        } = node.style || {};
41712        if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
41713          attributes.align = textAlign;
41714        }
41715        return (0,external_wp_blocks_namespaceObject.createBlock)(transforms_name, attributes);
41716      }
41717    }]
41718  };
41719  /* harmony default export */ const paragraph_transforms = (paragraph_transforms_transforms);
41720  
41721  ;// ./node_modules/@wordpress/block-library/build-module/paragraph/index.js
41722  /**
41723   * WordPress dependencies
41724   */
41725  
41726  
41727  
41728  /**
41729   * Internal dependencies
41730   */
41731  
41732  
41733  
41734  const paragraph_metadata = {
41735    $schema: "https://schemas.wp.org/trunk/block.json",
41736    apiVersion: 3,
41737    name: "core/paragraph",
41738    title: "Paragraph",
41739    category: "text",
41740    description: "Start with the basic building block of all narrative.",
41741    keywords: ["text"],
41742    textdomain: "default",
41743    attributes: {
41744      align: {
41745        type: "string"
41746      },
41747      content: {
41748        type: "rich-text",
41749        source: "rich-text",
41750        selector: "p",
41751        role: "content"
41752      },
41753      dropCap: {
41754        type: "boolean",
41755        "default": false
41756      },
41757      placeholder: {
41758        type: "string"
41759      },
41760      direction: {
41761        type: "string",
41762        "enum": ["ltr", "rtl"]
41763      }
41764    },
41765    supports: {
41766      splitting: true,
41767      anchor: true,
41768      className: false,
41769      __experimentalBorder: {
41770        color: true,
41771        radius: true,
41772        style: true,
41773        width: true
41774      },
41775      color: {
41776        gradients: true,
41777        link: true,
41778        __experimentalDefaultControls: {
41779          background: true,
41780          text: true
41781        }
41782      },
41783      spacing: {
41784        margin: true,
41785        padding: true,
41786        __experimentalDefaultControls: {
41787          margin: false,
41788          padding: false
41789        }
41790      },
41791      typography: {
41792        fontSize: true,
41793        lineHeight: true,
41794        __experimentalFontFamily: true,
41795        __experimentalTextDecoration: true,
41796        __experimentalFontStyle: true,
41797        __experimentalFontWeight: true,
41798        __experimentalLetterSpacing: true,
41799        __experimentalTextTransform: true,
41800        __experimentalWritingMode: true,
41801        __experimentalDefaultControls: {
41802          fontSize: true
41803        }
41804      },
41805      __experimentalSelector: "p",
41806      __unstablePasteTextInline: true,
41807      interactivity: {
41808        clientNavigation: true
41809      }
41810    },
41811    editorStyle: "wp-block-paragraph-editor",
41812    style: "wp-block-paragraph"
41813  };
41814  
41815  
41816  const {
41817    name: paragraph_name
41818  } = paragraph_metadata;
41819  
41820  const paragraph_settings = {
41821    icon: library_paragraph,
41822    example: {
41823      attributes: {
41824        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.')
41825      }
41826    },
41827    __experimentalLabel(attributes, {
41828      context
41829    }) {
41830      const customName = attributes?.metadata?.name;
41831      if (context === 'list-view' && customName) {
41832        return customName;
41833      }
41834      if (context === 'accessibility') {
41835        if (customName) {
41836          return customName;
41837        }
41838        const {
41839          content
41840        } = attributes;
41841        return !content || content.length === 0 ? (0,external_wp_i18n_namespaceObject.__)('Empty') : content;
41842      }
41843    },
41844    transforms: paragraph_transforms,
41845    deprecated: paragraph_deprecated,
41846    merge(attributes, attributesToMerge) {
41847      return {
41848        content: (attributes.content || '') + (attributesToMerge.content || '')
41849      };
41850    },
41851    edit: paragraph_edit,
41852    save: paragraph_save_save
41853  };
41854  const paragraph_init = () => initBlock({
41855    name: paragraph_name,
41856    metadata: paragraph_metadata,
41857    settings: paragraph_settings
41858  });
41859  
41860  ;// ./node_modules/@wordpress/icons/build-module/library/post-author.js
41861  /**
41862   * WordPress dependencies
41863   */
41864  
41865  
41866  const postAuthor = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
41867    viewBox: "0 0 24 24",
41868    xmlns: "http://www.w3.org/2000/svg",
41869    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
41870      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",
41871      fillRule: "evenodd",
41872      clipRule: "evenodd"
41873    })
41874  });
41875  /* harmony default export */ const post_author = (postAuthor);
41876  
41877  ;// ./node_modules/@wordpress/block-library/build-module/post-author/edit.js
41878  /**
41879   * External dependencies
41880   */
41881  
41882  
41883  /**
41884   * WordPress dependencies
41885   */
41886  
41887  
41888  
41889  
41890  
41891  
41892  const minimumUsersForCombobox = 25;
41893  const edit_AUTHORS_QUERY = {
41894    who: 'authors',
41895    per_page: 100
41896  };
41897  function PostAuthorEdit({
41898    isSelected,
41899    context: {
41900      postType,
41901      postId,
41902      queryId
41903    },
41904    attributes,
41905    setAttributes
41906  }) {
41907    const isDescendentOfQueryLoop = Number.isFinite(queryId);
41908    const {
41909      authorId,
41910      authorDetails,
41911      authors,
41912      supportsAuthor
41913    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
41914      var _getPostType$supports;
41915      const {
41916        getEditedEntityRecord,
41917        getUser,
41918        getUsers,
41919        getPostType
41920      } = select(external_wp_coreData_namespaceObject.store);
41921      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
41922      return {
41923        authorId: _authorId,
41924        authorDetails: _authorId ? getUser(_authorId) : null,
41925        authors: getUsers(edit_AUTHORS_QUERY),
41926        supportsAuthor: (_getPostType$supports = getPostType(postType)?.supports?.author) !== null && _getPostType$supports !== void 0 ? _getPostType$supports : false
41927      };
41928    }, [postType, postId]);
41929    const {
41930      editEntityRecord
41931    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
41932    const {
41933      textAlign,
41934      showAvatar,
41935      showBio,
41936      byline,
41937      isLink,
41938      linkTarget
41939    } = attributes;
41940    const avatarSizes = [];
41941    const authorName = authorDetails?.name || (0,external_wp_i18n_namespaceObject.__)('Post Author');
41942    if (authorDetails?.avatar_urls) {
41943      Object.keys(authorDetails.avatar_urls).forEach(size => {
41944        avatarSizes.push({
41945          value: size,
41946          label: `$size} x $size}`
41947        });
41948      });
41949    }
41950    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
41951      className: dist_clsx({
41952        [`has-text-align-$textAlign}`]: textAlign
41953      })
41954    });
41955    const authorOptions = authors?.length ? authors.map(({
41956      id,
41957      name
41958    }) => {
41959      return {
41960        value: id,
41961        label: name
41962      };
41963    }) : [];
41964    const handleSelect = nextAuthorId => {
41965      editEntityRecord('postType', postType, postId, {
41966        author: nextAuthorId
41967      });
41968    };
41969    const showCombobox = authorOptions.length >= minimumUsersForCombobox;
41970    const showAuthorControl = !!postId && !isDescendentOfQueryLoop && authorOptions.length > 0;
41971    if (!supportsAuthor && postType !== undefined) {
41972      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
41973        ...blockProps,
41974        children: (0,external_wp_i18n_namespaceObject.sprintf)(
41975        // translators: %s: Name of the post type e.g: "post".
41976        (0,external_wp_i18n_namespaceObject.__)('This post type (%s) does not support the author.'), postType)
41977      });
41978    }
41979    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
41980      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
41981        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
41982          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
41983          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
41984            spacing: 4,
41985            className: "wp-block-post-author__inspector-settings",
41986            children: [showAuthorControl && (showCombobox && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
41987              __next40pxDefaultSize: true,
41988              __nextHasNoMarginBottom: true,
41989              label: (0,external_wp_i18n_namespaceObject.__)('Author'),
41990              options: authorOptions,
41991              value: authorId,
41992              onChange: handleSelect,
41993              allowReset: false
41994            }) || /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
41995              __next40pxDefaultSize: true,
41996              __nextHasNoMarginBottom: true,
41997              label: (0,external_wp_i18n_namespaceObject.__)('Author'),
41998              value: authorId,
41999              options: authorOptions,
42000              onChange: handleSelect
42001            })), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42002              __nextHasNoMarginBottom: true,
42003              label: (0,external_wp_i18n_namespaceObject.__)('Show avatar'),
42004              checked: showAvatar,
42005              onChange: () => setAttributes({
42006                showAvatar: !showAvatar
42007              })
42008            }), showAvatar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
42009              __next40pxDefaultSize: true,
42010              __nextHasNoMarginBottom: true,
42011              label: (0,external_wp_i18n_namespaceObject.__)('Avatar size'),
42012              value: attributes.avatarSize,
42013              options: avatarSizes,
42014              onChange: size => {
42015                setAttributes({
42016                  avatarSize: Number(size)
42017                });
42018              }
42019            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42020              __nextHasNoMarginBottom: true,
42021              label: (0,external_wp_i18n_namespaceObject.__)('Show bio'),
42022              checked: showBio,
42023              onChange: () => setAttributes({
42024                showBio: !showBio
42025              })
42026            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42027              __nextHasNoMarginBottom: true,
42028              label: (0,external_wp_i18n_namespaceObject.__)('Link author name to author page'),
42029              checked: isLink,
42030              onChange: () => setAttributes({
42031                isLink: !isLink
42032              })
42033            }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42034              __nextHasNoMarginBottom: true,
42035              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
42036              onChange: value => setAttributes({
42037                linkTarget: value ? '_blank' : '_self'
42038              }),
42039              checked: linkTarget === '_blank'
42040            })]
42041          })
42042        })
42043      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42044        group: "block",
42045        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42046          value: textAlign,
42047          onChange: nextAlign => {
42048            setAttributes({
42049              textAlign: nextAlign
42050            });
42051          }
42052        })
42053      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42054        ...blockProps,
42055        children: [showAvatar && authorDetails?.avatar_urls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42056          className: "wp-block-post-author__avatar",
42057          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
42058            width: attributes.avatarSize,
42059            src: authorDetails.avatar_urls[attributes.avatarSize],
42060            alt: authorDetails.name
42061          })
42062        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42063          className: "wp-block-post-author__content",
42064          children: [(!external_wp_blockEditor_namespaceObject.RichText.isEmpty(byline) || isSelected) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
42065            identifier: "byline",
42066            className: "wp-block-post-author__byline",
42067            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Post author byline text'),
42068            placeholder: (0,external_wp_i18n_namespaceObject.__)('Write byline…'),
42069            value: byline,
42070            onChange: value => setAttributes({
42071              byline: value
42072            })
42073          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42074            className: "wp-block-post-author__name",
42075            children: isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
42076              href: "#post-author-pseudo-link",
42077              onClick: event => event.preventDefault(),
42078              children: authorName
42079            }) : authorName
42080          }), showBio && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
42081            className: "wp-block-post-author__bio",
42082            dangerouslySetInnerHTML: {
42083              __html: authorDetails?.description
42084            }
42085          })]
42086        })]
42087      })]
42088    });
42089  }
42090  /* harmony default export */ const post_author_edit = (PostAuthorEdit);
42091  
42092  ;// ./node_modules/@wordpress/block-library/build-module/post-author/index.js
42093  /**
42094   * WordPress dependencies
42095   */
42096  
42097  
42098  
42099  /**
42100   * Internal dependencies
42101   */
42102  
42103  const post_author_metadata = {
42104    $schema: "https://schemas.wp.org/trunk/block.json",
42105    apiVersion: 3,
42106    name: "core/post-author",
42107    title: "Author",
42108    category: "theme",
42109    description: "Display post author details such as name, avatar, and bio.",
42110    textdomain: "default",
42111    attributes: {
42112      textAlign: {
42113        type: "string"
42114      },
42115      avatarSize: {
42116        type: "number",
42117        "default": 48
42118      },
42119      showAvatar: {
42120        type: "boolean",
42121        "default": true
42122      },
42123      showBio: {
42124        type: "boolean"
42125      },
42126      byline: {
42127        type: "string"
42128      },
42129      isLink: {
42130        type: "boolean",
42131        "default": false,
42132        role: "content"
42133      },
42134      linkTarget: {
42135        type: "string",
42136        "default": "_self",
42137        role: "content"
42138      }
42139    },
42140    usesContext: ["postType", "postId", "queryId"],
42141    supports: {
42142      html: false,
42143      spacing: {
42144        margin: true,
42145        padding: true
42146      },
42147      typography: {
42148        fontSize: true,
42149        lineHeight: true,
42150        __experimentalFontFamily: true,
42151        __experimentalFontWeight: true,
42152        __experimentalFontStyle: true,
42153        __experimentalTextTransform: true,
42154        __experimentalTextDecoration: true,
42155        __experimentalLetterSpacing: true,
42156        __experimentalDefaultControls: {
42157          fontSize: true
42158        }
42159      },
42160      color: {
42161        gradients: true,
42162        link: true,
42163        __experimentalDuotone: ".wp-block-post-author__avatar img",
42164        __experimentalDefaultControls: {
42165          background: true,
42166          text: true
42167        }
42168      },
42169      interactivity: {
42170        clientNavigation: true
42171      },
42172      __experimentalBorder: {
42173        radius: true,
42174        color: true,
42175        width: true,
42176        style: true,
42177        __experimentalDefaultControls: {
42178          radius: true,
42179          color: true,
42180          width: true,
42181          style: true
42182        }
42183      }
42184    },
42185    editorStyle: "wp-block-post-author-editor",
42186    style: "wp-block-post-author"
42187  };
42188  
42189  const {
42190    name: post_author_name
42191  } = post_author_metadata;
42192  
42193  const post_author_settings = {
42194    icon: post_author,
42195    example: {
42196      viewportWidth: 350,
42197      attributes: {
42198        showBio: true,
42199        byline: (0,external_wp_i18n_namespaceObject.__)('Posted by')
42200      }
42201    },
42202    edit: post_author_edit
42203  };
42204  const post_author_init = () => initBlock({
42205    name: post_author_name,
42206    metadata: post_author_metadata,
42207    settings: post_author_settings
42208  });
42209  
42210  ;// ./node_modules/@wordpress/block-library/build-module/post-author-name/edit.js
42211  /**
42212   * External dependencies
42213   */
42214  
42215  
42216  /**
42217   * WordPress dependencies
42218   */
42219  
42220  
42221  
42222  
42223  
42224  
42225  /**
42226   * Internal dependencies
42227   */
42228  
42229  
42230  function PostAuthorNameEdit({
42231    context: {
42232      postType,
42233      postId
42234    },
42235    attributes: {
42236      textAlign,
42237      isLink,
42238      linkTarget
42239    },
42240    setAttributes
42241  }) {
42242    const {
42243      authorName,
42244      supportsAuthor
42245    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
42246      var _getPostType$supports;
42247      const {
42248        getEditedEntityRecord,
42249        getUser,
42250        getPostType
42251      } = select(external_wp_coreData_namespaceObject.store);
42252      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
42253      return {
42254        authorName: _authorId ? getUser(_authorId) : null,
42255        supportsAuthor: (_getPostType$supports = getPostType(postType)?.supports?.author) !== null && _getPostType$supports !== void 0 ? _getPostType$supports : false
42256      };
42257    }, [postType, postId]);
42258    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42259      className: dist_clsx({
42260        [`has-text-align-$textAlign}`]: textAlign
42261      })
42262    });
42263    const displayName = authorName?.name || (0,external_wp_i18n_namespaceObject.__)('Author Name');
42264    const displayAuthor = isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
42265      href: "#author-pseudo-link",
42266      onClick: event => event.preventDefault(),
42267      className: "wp-block-post-author-name__link",
42268      children: displayName
42269    }) : displayName;
42270    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
42271    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42272      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42273        group: "block",
42274        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42275          value: textAlign,
42276          onChange: nextAlign => {
42277            setAttributes({
42278              textAlign: nextAlign
42279            });
42280          }
42281        })
42282      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
42283        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
42284          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
42285          resetAll: () => {
42286            setAttributes({
42287              isLink: false,
42288              linkTarget: '_self'
42289            });
42290          },
42291          dropdownMenuProps: dropdownMenuProps,
42292          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
42293            label: (0,external_wp_i18n_namespaceObject.__)('Link to author archive'),
42294            isShownByDefault: true,
42295            hasValue: () => isLink,
42296            onDeselect: () => setAttributes({
42297              isLink: false
42298            }),
42299            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42300              __nextHasNoMarginBottom: true,
42301              label: (0,external_wp_i18n_namespaceObject.__)('Link to author archive'),
42302              onChange: () => setAttributes({
42303                isLink: !isLink
42304              }),
42305              checked: isLink
42306            })
42307          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
42308            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
42309            isShownByDefault: true,
42310            hasValue: () => linkTarget !== '_self',
42311            onDeselect: () => setAttributes({
42312              linkTarget: '_self'
42313            }),
42314            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
42315              __nextHasNoMarginBottom: true,
42316              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
42317              onChange: value => setAttributes({
42318                linkTarget: value ? '_blank' : '_self'
42319              }),
42320              checked: linkTarget === '_blank'
42321            })
42322          })]
42323        })
42324      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42325        ...blockProps,
42326        children: !supportsAuthor && postType !== undefined ? (0,external_wp_i18n_namespaceObject.sprintf)(
42327        // translators: %s: Name of the post type e.g: "post".
42328        (0,external_wp_i18n_namespaceObject.__)('This post type (%s) does not support the author.'), postType) : displayAuthor
42329      })]
42330    });
42331  }
42332  /* harmony default export */ const post_author_name_edit = (PostAuthorNameEdit);
42333  
42334  ;// ./node_modules/@wordpress/block-library/build-module/post-author-name/transforms.js
42335  /**
42336   * WordPress dependencies
42337   */
42338  
42339  const post_author_name_transforms_transforms = {
42340    from: [{
42341      type: 'block',
42342      blocks: ['core/post-author'],
42343      transform: ({
42344        textAlign
42345      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-author-name', {
42346        textAlign
42347      })
42348    }],
42349    to: [{
42350      type: 'block',
42351      blocks: ['core/post-author'],
42352      transform: ({
42353        textAlign
42354      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-author', {
42355        textAlign
42356      })
42357    }]
42358  };
42359  /* harmony default export */ const post_author_name_transforms = (post_author_name_transforms_transforms);
42360  
42361  ;// ./node_modules/@wordpress/block-library/build-module/post-author-name/index.js
42362  /**
42363   * WordPress dependencies
42364   */
42365  
42366  
42367  /**
42368   * Internal dependencies
42369   */
42370  
42371  const post_author_name_metadata = {
42372    $schema: "https://schemas.wp.org/trunk/block.json",
42373    apiVersion: 3,
42374    name: "core/post-author-name",
42375    title: "Author Name",
42376    category: "theme",
42377    description: "The author name.",
42378    textdomain: "default",
42379    attributes: {
42380      textAlign: {
42381        type: "string"
42382      },
42383      isLink: {
42384        type: "boolean",
42385        "default": false,
42386        role: "content"
42387      },
42388      linkTarget: {
42389        type: "string",
42390        "default": "_self",
42391        role: "content"
42392      }
42393    },
42394    usesContext: ["postType", "postId"],
42395    example: {
42396      viewportWidth: 350
42397    },
42398    supports: {
42399      html: false,
42400      spacing: {
42401        margin: true,
42402        padding: true
42403      },
42404      color: {
42405        gradients: true,
42406        link: true,
42407        __experimentalDefaultControls: {
42408          background: true,
42409          text: true,
42410          link: true
42411        }
42412      },
42413      typography: {
42414        fontSize: true,
42415        lineHeight: true,
42416        __experimentalFontFamily: true,
42417        __experimentalFontWeight: true,
42418        __experimentalFontStyle: true,
42419        __experimentalTextTransform: true,
42420        __experimentalTextDecoration: true,
42421        __experimentalLetterSpacing: true,
42422        __experimentalDefaultControls: {
42423          fontSize: true
42424        }
42425      },
42426      interactivity: {
42427        clientNavigation: true
42428      },
42429      __experimentalBorder: {
42430        radius: true,
42431        color: true,
42432        width: true,
42433        style: true,
42434        __experimentalDefaultControls: {
42435          radius: true,
42436          color: true,
42437          width: true,
42438          style: true
42439        }
42440      }
42441    },
42442    style: "wp-block-post-author-name"
42443  };
42444  
42445  
42446  const {
42447    name: post_author_name_name
42448  } = post_author_name_metadata;
42449  
42450  const post_author_name_settings = {
42451    icon: post_author,
42452    transforms: post_author_name_transforms,
42453    edit: post_author_name_edit
42454  };
42455  const post_author_name_init = () => initBlock({
42456    name: post_author_name_name,
42457    metadata: post_author_name_metadata,
42458    settings: post_author_name_settings
42459  });
42460  
42461  ;// ./node_modules/@wordpress/block-library/build-module/post-author-biography/edit.js
42462  /**
42463   * External dependencies
42464   */
42465  
42466  
42467  /**
42468   * WordPress dependencies
42469   */
42470  
42471  
42472  
42473  
42474  
42475  function PostAuthorBiographyEdit({
42476    context: {
42477      postType,
42478      postId
42479    },
42480    attributes: {
42481      textAlign
42482    },
42483    setAttributes
42484  }) {
42485    const {
42486      authorDetails
42487    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
42488      const {
42489        getEditedEntityRecord,
42490        getUser
42491      } = select(external_wp_coreData_namespaceObject.store);
42492      const _authorId = getEditedEntityRecord('postType', postType, postId)?.author;
42493      return {
42494        authorDetails: _authorId ? getUser(_authorId) : null
42495      };
42496    }, [postType, postId]);
42497    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42498      className: dist_clsx({
42499        [`has-text-align-$textAlign}`]: textAlign
42500      })
42501    });
42502    const displayAuthorBiography = authorDetails?.description || (0,external_wp_i18n_namespaceObject.__)('Author Biography');
42503    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42504      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42505        group: "block",
42506        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42507          value: textAlign,
42508          onChange: nextAlign => {
42509            setAttributes({
42510              textAlign: nextAlign
42511            });
42512          }
42513        })
42514      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42515        ...blockProps,
42516        dangerouslySetInnerHTML: {
42517          __html: displayAuthorBiography
42518        }
42519      })]
42520    });
42521  }
42522  /* harmony default export */ const post_author_biography_edit = (PostAuthorBiographyEdit);
42523  
42524  ;// ./node_modules/@wordpress/block-library/build-module/post-author-biography/index.js
42525  /**
42526   * WordPress dependencies
42527   */
42528  
42529  
42530  /**
42531   * Internal dependencies
42532   */
42533  
42534  const post_author_biography_metadata = {
42535    $schema: "https://schemas.wp.org/trunk/block.json",
42536    apiVersion: 3,
42537    name: "core/post-author-biography",
42538    title: "Author Biography",
42539    category: "theme",
42540    description: "The author biography.",
42541    textdomain: "default",
42542    attributes: {
42543      textAlign: {
42544        type: "string"
42545      }
42546    },
42547    usesContext: ["postType", "postId"],
42548    example: {
42549      viewportWidth: 350
42550    },
42551    supports: {
42552      spacing: {
42553        margin: true,
42554        padding: true
42555      },
42556      color: {
42557        gradients: true,
42558        link: true,
42559        __experimentalDefaultControls: {
42560          background: true,
42561          text: true
42562        }
42563      },
42564      typography: {
42565        fontSize: true,
42566        lineHeight: true,
42567        __experimentalFontFamily: true,
42568        __experimentalFontWeight: true,
42569        __experimentalFontStyle: true,
42570        __experimentalTextTransform: true,
42571        __experimentalTextDecoration: true,
42572        __experimentalLetterSpacing: true,
42573        __experimentalDefaultControls: {
42574          fontSize: true
42575        }
42576      },
42577      interactivity: {
42578        clientNavigation: true
42579      },
42580      __experimentalBorder: {
42581        radius: true,
42582        color: true,
42583        width: true,
42584        style: true,
42585        __experimentalDefaultControls: {
42586          radius: true,
42587          color: true,
42588          width: true,
42589          style: true
42590        }
42591      }
42592    },
42593    style: "wp-block-post-author-biography"
42594  };
42595  
42596  const {
42597    name: post_author_biography_name
42598  } = post_author_biography_metadata;
42599  
42600  const post_author_biography_settings = {
42601    icon: post_author,
42602    edit: post_author_biography_edit
42603  };
42604  const post_author_biography_init = () => initBlock({
42605    name: post_author_biography_name,
42606    metadata: post_author_biography_metadata,
42607    settings: post_author_biography_settings
42608  });
42609  
42610  ;// ./node_modules/@wordpress/icons/build-module/library/block-default.js
42611  /**
42612   * WordPress dependencies
42613   */
42614  
42615  
42616  const blockDefault = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42617    xmlns: "http://www.w3.org/2000/svg",
42618    viewBox: "0 0 24 24",
42619    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42620      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"
42621    })
42622  });
42623  /* harmony default export */ const block_default = (blockDefault);
42624  
42625  ;// ./node_modules/@wordpress/block-library/build-module/post-comment/edit.js
42626  /**
42627   * WordPress dependencies
42628   */
42629  
42630  
42631  
42632  
42633  
42634  
42635  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']];
42636  function post_comment_edit_Edit({
42637    attributes: {
42638      commentId
42639    },
42640    setAttributes
42641  }) {
42642    const [commentIdInput, setCommentIdInput] = (0,external_wp_element_namespaceObject.useState)(commentId);
42643    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
42644    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
42645      template: post_comment_edit_TEMPLATE
42646    });
42647    if (!commentId) {
42648      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42649        ...blockProps,
42650        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
42651          icon: block_default,
42652          label: (0,external_wp_i18n_namespaceObject._x)('Post Comment', 'block title'),
42653          instructions: (0,external_wp_i18n_namespaceObject.__)('To show a comment, input the comment ID.'),
42654          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
42655            __next40pxDefaultSize: true,
42656            __nextHasNoMarginBottom: true,
42657            value: commentId,
42658            onChange: val => setCommentIdInput(parseInt(val))
42659          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
42660            __next40pxDefaultSize: true,
42661            variant: "primary",
42662            onClick: () => {
42663              setAttributes({
42664                commentId: commentIdInput
42665              });
42666            },
42667            children: (0,external_wp_i18n_namespaceObject.__)('Save')
42668          })]
42669        })
42670      });
42671    }
42672    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42673      ...innerBlocksProps
42674    });
42675  }
42676  
42677  ;// ./node_modules/@wordpress/block-library/build-module/post-comment/save.js
42678  /**
42679   * WordPress dependencies
42680   */
42681  
42682  
42683  function post_comment_save_save() {
42684    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
42685    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
42686    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42687      ...innerBlocksProps
42688    });
42689  }
42690  
42691  ;// ./node_modules/@wordpress/block-library/build-module/post-comment/index.js
42692  /**
42693   * WordPress dependencies
42694   */
42695  
42696  
42697  /**
42698   * Internal dependencies
42699   */
42700  
42701  const post_comment_metadata = {
42702    $schema: "https://schemas.wp.org/trunk/block.json",
42703    apiVersion: 3,
42704    __experimental: "fse",
42705    name: "core/post-comment",
42706    title: "Comment (deprecated)",
42707    category: "theme",
42708    allowedBlocks: ["core/avatar", "core/comment-author-name", "core/comment-content", "core/comment-date", "core/comment-edit-link", "core/comment-reply-link"],
42709    description: "This block is deprecated. Please use the Comments block instead.",
42710    textdomain: "default",
42711    attributes: {
42712      commentId: {
42713        type: "number"
42714      }
42715    },
42716    providesContext: {
42717      commentId: "commentId"
42718    },
42719    supports: {
42720      html: false,
42721      inserter: false,
42722      interactivity: {
42723        clientNavigation: true
42724      }
42725    }
42726  };
42727  
42728  
42729  const {
42730    name: post_comment_name
42731  } = post_comment_metadata;
42732  
42733  const post_comment_settings = {
42734    icon: library_comment,
42735    edit: post_comment_edit_Edit,
42736    save: post_comment_save_save
42737  };
42738  const post_comment_init = () => initBlock({
42739    name: post_comment_name,
42740    metadata: post_comment_metadata,
42741    settings: post_comment_settings
42742  });
42743  
42744  ;// ./node_modules/@wordpress/icons/build-module/library/post-comments-count.js
42745  /**
42746   * WordPress dependencies
42747   */
42748  
42749  
42750  const postCommentsCount = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42751    xmlns: "http://www.w3.org/2000/svg",
42752    viewBox: "0 0 24 24",
42753    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42754      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"
42755    })
42756  });
42757  /* harmony default export */ const post_comments_count = (postCommentsCount);
42758  
42759  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-count/edit.js
42760  /**
42761   * External dependencies
42762   */
42763  
42764  
42765  /**
42766   * WordPress dependencies
42767   */
42768  
42769  
42770  
42771  
42772  
42773  
42774  function PostCommentsCountEdit({
42775    attributes,
42776    context,
42777    setAttributes
42778  }) {
42779    const {
42780      textAlign
42781    } = attributes;
42782    const {
42783      postId
42784    } = context;
42785    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
42786    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42787      className: dist_clsx({
42788        [`has-text-align-$textAlign}`]: textAlign
42789      })
42790    });
42791    (0,external_wp_element_namespaceObject.useEffect)(() => {
42792      if (!postId) {
42793        return;
42794      }
42795      const currentPostId = postId;
42796      external_wp_apiFetch_default()({
42797        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
42798          post: postId
42799        }),
42800        parse: false
42801      }).then(res => {
42802        // Stale requests will have the `currentPostId` of an older closure.
42803        if (currentPostId === postId) {
42804          setCommentsCount(res.headers.get('X-WP-Total'));
42805        }
42806      });
42807    }, [postId]);
42808    const hasPostAndComments = postId && commentsCount !== undefined;
42809    const blockStyles = {
42810      ...blockProps.style,
42811      textDecoration: hasPostAndComments ? blockProps.style?.textDecoration : undefined
42812    };
42813    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42814      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42815        group: "block",
42816        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42817          value: textAlign,
42818          onChange: nextAlign => {
42819            setAttributes({
42820              textAlign: nextAlign
42821            });
42822          }
42823        })
42824      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
42825        ...blockProps,
42826        style: blockStyles,
42827        children: hasPostAndComments ? commentsCount : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
42828          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Count block: post not found.')
42829        })
42830      })]
42831    });
42832  }
42833  
42834  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-count/index.js
42835  /**
42836   * WordPress dependencies
42837   */
42838  
42839  
42840  /**
42841   * Internal dependencies
42842   */
42843  
42844  const post_comments_count_metadata = {
42845    $schema: "https://schemas.wp.org/trunk/block.json",
42846    apiVersion: 3,
42847    __experimental: "fse",
42848    name: "core/post-comments-count",
42849    title: "Comments Count",
42850    category: "theme",
42851    description: "Display a post's comments count.",
42852    textdomain: "default",
42853    attributes: {
42854      textAlign: {
42855        type: "string"
42856      }
42857    },
42858    usesContext: ["postId"],
42859    supports: {
42860      html: false,
42861      color: {
42862        gradients: true,
42863        __experimentalDefaultControls: {
42864          background: true,
42865          text: true
42866        }
42867      },
42868      spacing: {
42869        margin: true,
42870        padding: true
42871      },
42872      typography: {
42873        fontSize: true,
42874        lineHeight: true,
42875        __experimentalFontFamily: true,
42876        __experimentalFontWeight: true,
42877        __experimentalFontStyle: true,
42878        __experimentalTextTransform: true,
42879        __experimentalTextDecoration: true,
42880        __experimentalLetterSpacing: true,
42881        __experimentalDefaultControls: {
42882          fontSize: true
42883        }
42884      },
42885      __experimentalBorder: {
42886        radius: true,
42887        color: true,
42888        width: true,
42889        style: true
42890      },
42891      interactivity: {
42892        clientNavigation: true
42893      }
42894    },
42895    style: "wp-block-post-comments-count"
42896  };
42897  
42898  const {
42899    name: post_comments_count_name
42900  } = post_comments_count_metadata;
42901  
42902  const post_comments_count_settings = {
42903    icon: post_comments_count,
42904    edit: PostCommentsCountEdit
42905  };
42906  const post_comments_count_init = () => initBlock({
42907    name: post_comments_count_name,
42908    metadata: post_comments_count_metadata,
42909    settings: post_comments_count_settings
42910  });
42911  
42912  ;// ./node_modules/@wordpress/icons/build-module/library/post-comments-form.js
42913  /**
42914   * WordPress dependencies
42915   */
42916  
42917  
42918  const postCommentsForm = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
42919    xmlns: "http://www.w3.org/2000/svg",
42920    viewBox: "0 0 24 24",
42921    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
42922      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"
42923    })
42924  });
42925  /* harmony default export */ const post_comments_form = (postCommentsForm);
42926  
42927  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-form/edit.js
42928  /**
42929   * External dependencies
42930   */
42931  
42932  
42933  /**
42934   * WordPress dependencies
42935   */
42936  
42937  
42938  
42939  
42940  
42941  /**
42942   * Internal dependencies
42943   */
42944  
42945  
42946  function PostCommentsFormEdit({
42947    attributes,
42948    context,
42949    setAttributes
42950  }) {
42951    const {
42952      textAlign
42953    } = attributes;
42954    const {
42955      postId,
42956      postType
42957    } = context;
42958    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostCommentsFormEdit);
42959    const instanceIdDesc = (0,external_wp_i18n_namespaceObject.sprintf)('comments-form-edit-%d-desc', instanceId);
42960    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
42961      className: dist_clsx({
42962        [`has-text-align-$textAlign}`]: textAlign
42963      }),
42964      'aria-describedby': instanceIdDesc
42965    });
42966    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
42967      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
42968        group: "block",
42969        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
42970          value: textAlign,
42971          onChange: nextAlign => {
42972            setAttributes({
42973              textAlign: nextAlign
42974            });
42975          }
42976        })
42977      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
42978        ...blockProps,
42979        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_comments_form_form, {
42980          postId: postId,
42981          postType: postType
42982        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
42983          id: instanceIdDesc,
42984          children: (0,external_wp_i18n_namespaceObject.__)('Comments form disabled in editor.')
42985        })]
42986      })]
42987    });
42988  }
42989  
42990  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-form/index.js
42991  /**
42992   * WordPress dependencies
42993   */
42994  
42995  
42996  /**
42997   * Internal dependencies
42998   */
42999  
43000  const post_comments_form_metadata = {
43001    $schema: "https://schemas.wp.org/trunk/block.json",
43002    apiVersion: 3,
43003    name: "core/post-comments-form",
43004    title: "Comments Form",
43005    category: "theme",
43006    description: "Display a post's comments form.",
43007    textdomain: "default",
43008    attributes: {
43009      textAlign: {
43010        type: "string"
43011      }
43012    },
43013    usesContext: ["postId", "postType"],
43014    supports: {
43015      html: false,
43016      color: {
43017        gradients: true,
43018        heading: true,
43019        link: true,
43020        __experimentalDefaultControls: {
43021          background: true,
43022          text: true
43023        }
43024      },
43025      spacing: {
43026        margin: true,
43027        padding: true
43028      },
43029      typography: {
43030        fontSize: true,
43031        lineHeight: true,
43032        __experimentalFontStyle: true,
43033        __experimentalFontWeight: true,
43034        __experimentalLetterSpacing: true,
43035        __experimentalTextTransform: true,
43036        __experimentalDefaultControls: {
43037          fontSize: true
43038        }
43039      },
43040      __experimentalBorder: {
43041        radius: true,
43042        color: true,
43043        width: true,
43044        style: true,
43045        __experimentalDefaultControls: {
43046          radius: true,
43047          color: true,
43048          width: true,
43049          style: true
43050        }
43051      }
43052    },
43053    editorStyle: "wp-block-post-comments-form-editor",
43054    style: ["wp-block-post-comments-form", "wp-block-buttons", "wp-block-button"],
43055    example: {
43056      attributes: {
43057        textAlign: "center"
43058      }
43059    }
43060  };
43061  
43062  const {
43063    name: post_comments_form_name
43064  } = post_comments_form_metadata;
43065  
43066  const post_comments_form_settings = {
43067    icon: post_comments_form,
43068    edit: PostCommentsFormEdit
43069  };
43070  const post_comments_form_init = () => initBlock({
43071    name: post_comments_form_name,
43072    metadata: post_comments_form_metadata,
43073    settings: post_comments_form_settings
43074  });
43075  
43076  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-link/edit.js
43077  /**
43078   * External dependencies
43079   */
43080  
43081  
43082  /**
43083   * WordPress dependencies
43084   */
43085  
43086  
43087  
43088  
43089  
43090  
43091  
43092  
43093  function PostCommentsLinkEdit({
43094    context,
43095    attributes,
43096    setAttributes
43097  }) {
43098    const {
43099      textAlign
43100    } = attributes;
43101    const {
43102      postType,
43103      postId
43104    } = context;
43105    const [commentsCount, setCommentsCount] = (0,external_wp_element_namespaceObject.useState)();
43106    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43107      className: dist_clsx({
43108        [`has-text-align-$textAlign}`]: textAlign
43109      })
43110    });
43111    (0,external_wp_element_namespaceObject.useEffect)(() => {
43112      if (!postId) {
43113        return;
43114      }
43115      const currentPostId = postId;
43116      external_wp_apiFetch_default()({
43117        path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp/v2/comments', {
43118          post: postId
43119        }),
43120        parse: false
43121      }).then(res => {
43122        // Stale requests will have the `currentPostId` of an older closure.
43123        if (currentPostId === postId) {
43124          setCommentsCount(res.headers.get('X-WP-Total'));
43125        }
43126      });
43127    }, [postId]);
43128    const post = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', postType, postId), [postType, postId]);
43129    if (!post) {
43130      return null;
43131    }
43132    const {
43133      link
43134    } = post;
43135    let commentsText;
43136    if (commentsCount !== undefined) {
43137      const commentsNumber = parseInt(commentsCount);
43138      if (commentsNumber === 0) {
43139        commentsText = (0,external_wp_i18n_namespaceObject.__)('No comments');
43140      } else {
43141        commentsText = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Number of comments */
43142        (0,external_wp_i18n_namespaceObject._n)('%s comment', '%s comments', commentsNumber), commentsNumber.toLocaleString());
43143      }
43144    }
43145    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43146      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
43147        group: "block",
43148        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
43149          value: textAlign,
43150          onChange: nextAlign => {
43151            setAttributes({
43152              textAlign: nextAlign
43153            });
43154          }
43155        })
43156      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43157        ...blockProps,
43158        children: link && commentsText !== undefined ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43159          href: link + '#comments',
43160          onClick: event => event.preventDefault(),
43161          children: commentsText
43162        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
43163          children: (0,external_wp_i18n_namespaceObject.__)('Post Comments Link block: post not found.')
43164        })
43165      })]
43166    });
43167  }
43168  /* harmony default export */ const post_comments_link_edit = (PostCommentsLinkEdit);
43169  
43170  ;// ./node_modules/@wordpress/block-library/build-module/post-comments-link/index.js
43171  /**
43172   * WordPress dependencies
43173   */
43174  
43175  
43176  /**
43177   * Internal dependencies
43178   */
43179  
43180  const post_comments_link_metadata = {
43181    $schema: "https://schemas.wp.org/trunk/block.json",
43182    apiVersion: 3,
43183    __experimental: "fse",
43184    name: "core/post-comments-link",
43185    title: "Comments Link",
43186    category: "theme",
43187    description: "Displays the link to the current post comments.",
43188    textdomain: "default",
43189    usesContext: ["postType", "postId"],
43190    attributes: {
43191      textAlign: {
43192        type: "string"
43193      }
43194    },
43195    supports: {
43196      html: false,
43197      color: {
43198        link: true,
43199        text: false,
43200        __experimentalDefaultControls: {
43201          background: true,
43202          link: true
43203        }
43204      },
43205      spacing: {
43206        margin: true,
43207        padding: true
43208      },
43209      typography: {
43210        fontSize: true,
43211        lineHeight: true,
43212        __experimentalFontFamily: true,
43213        __experimentalFontWeight: true,
43214        __experimentalFontStyle: true,
43215        __experimentalTextTransform: true,
43216        __experimentalTextDecoration: true,
43217        __experimentalLetterSpacing: true,
43218        __experimentalDefaultControls: {
43219          fontSize: true
43220        }
43221      },
43222      interactivity: {
43223        clientNavigation: true
43224      },
43225      __experimentalBorder: {
43226        radius: true,
43227        color: true,
43228        width: true,
43229        style: true,
43230        __experimentalDefaultControls: {
43231          radius: true,
43232          color: true,
43233          width: true,
43234          style: true
43235        }
43236      }
43237    },
43238    style: "wp-block-post-comments-link"
43239  };
43240  
43241  const {
43242    name: post_comments_link_name
43243  } = post_comments_link_metadata;
43244  
43245  const post_comments_link_settings = {
43246    edit: post_comments_link_edit,
43247    icon: post_comments_count
43248  };
43249  const post_comments_link_init = () => initBlock({
43250    name: post_comments_link_name,
43251    metadata: post_comments_link_metadata,
43252    settings: post_comments_link_settings
43253  });
43254  
43255  ;// ./node_modules/@wordpress/icons/build-module/library/post-content.js
43256  /**
43257   * WordPress dependencies
43258   */
43259  
43260  
43261  const postContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
43262    xmlns: "http://www.w3.org/2000/svg",
43263    viewBox: "0 0 24 24",
43264    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
43265      d: "M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z"
43266    })
43267  });
43268  /* harmony default export */ const post_content = (postContent);
43269  
43270  ;// ./node_modules/@wordpress/block-library/build-module/post-content/edit.js
43271  /**
43272   * WordPress dependencies
43273   */
43274  
43275  
43276  
43277  
43278  
43279  
43280  
43281  /**
43282   * Internal dependencies
43283   */
43284  
43285  
43286  function ReadOnlyContent({
43287    parentLayout,
43288    layoutClassNames,
43289    userCanEdit,
43290    postType,
43291    postId
43292  }) {
43293    const [,, content] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
43294    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43295      className: layoutClassNames
43296    });
43297    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
43298      return content?.raw ? (0,external_wp_blocks_namespaceObject.parse)(content.raw) : [];
43299    }, [content?.raw]);
43300    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
43301      blocks,
43302      props: blockProps,
43303      layout: parentLayout
43304    });
43305    if (userCanEdit) {
43306      /*
43307       * Rendering the block preview using the raw content blocks allows for
43308       * block support styles to be generated and applied by the editor.
43309       *
43310       * The preview using the raw blocks can only be presented to users with
43311       * edit permissions for the post to prevent potential exposure of private
43312       * block content.
43313       */
43314      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43315        ...blockPreviewProps
43316      });
43317    }
43318    return content?.protected ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43319      ...blockProps,
43320      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
43321        children: (0,external_wp_i18n_namespaceObject.__)('This content is password protected.')
43322      })
43323    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43324      ...blockProps,
43325      dangerouslySetInnerHTML: {
43326        __html: content?.rendered
43327      }
43328    });
43329  }
43330  function EditableContent({
43331    context = {}
43332  }) {
43333    const {
43334      postType,
43335      postId
43336    } = context;
43337    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
43338      id: postId
43339    });
43340    const entityRecord = (0,external_wp_data_namespaceObject.useSelect)(select => {
43341      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, postId);
43342    }, [postType, postId]);
43343    const hasInnerBlocks = !!entityRecord?.content?.raw || blocks?.length;
43344    const initialInnerBlocks = [['core/paragraph']];
43345    const props = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)((0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43346      className: 'entry-content'
43347    }), {
43348      value: blocks,
43349      onInput,
43350      onChange,
43351      template: !hasInnerBlocks ? initialInnerBlocks : undefined
43352    });
43353    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43354      ...props
43355    });
43356  }
43357  function Content(props) {
43358    const {
43359      context: {
43360        queryId,
43361        postType,
43362        postId
43363      } = {},
43364      layoutClassNames
43365    } = props;
43366    const userCanEdit = useCanEditEntity('postType', postType, postId);
43367    if (userCanEdit === undefined) {
43368      return null;
43369    }
43370    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43371    const isEditable = userCanEdit && !isDescendentOfQueryLoop;
43372    return isEditable ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditableContent, {
43373      ...props
43374    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReadOnlyContent, {
43375      parentLayout: props.parentLayout,
43376      layoutClassNames: layoutClassNames,
43377      userCanEdit: userCanEdit,
43378      postType: postType,
43379      postId: postId
43380    });
43381  }
43382  function edit_Placeholder({
43383    layoutClassNames
43384  }) {
43385    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43386      className: layoutClassNames
43387    });
43388    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
43389      ...blockProps,
43390      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43391        children: (0,external_wp_i18n_namespaceObject.__)('This is the Content block, it will display all the blocks in any single post or page.')
43392      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43393        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.')
43394      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
43395        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.')
43396      })]
43397    });
43398  }
43399  function RecursionError() {
43400    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
43401    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43402      ...blockProps,
43403      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
43404        children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
43405      })
43406    });
43407  }
43408  function PostContentEdit({
43409    context,
43410    __unstableLayoutClassNames: layoutClassNames,
43411    __unstableParentLayout: parentLayout
43412  }) {
43413    const {
43414      postId: contextPostId,
43415      postType: contextPostType
43416    } = context;
43417    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(contextPostId);
43418    if (contextPostId && contextPostType && hasAlreadyRendered) {
43419      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionError, {});
43420    }
43421    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
43422      uniqueId: contextPostId,
43423      children: contextPostId && contextPostType ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Content, {
43424        context: context,
43425        parentLayout: parentLayout,
43426        layoutClassNames: layoutClassNames
43427      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_Placeholder, {
43428        layoutClassNames: layoutClassNames
43429      })
43430    });
43431  }
43432  
43433  ;// ./node_modules/@wordpress/block-library/build-module/post-content/index.js
43434  /**
43435   * WordPress dependencies
43436   */
43437  
43438  
43439  /**
43440   * Internal dependencies
43441   */
43442  
43443  const post_content_metadata = {
43444    $schema: "https://schemas.wp.org/trunk/block.json",
43445    apiVersion: 3,
43446    name: "core/post-content",
43447    title: "Content",
43448    category: "theme",
43449    description: "Displays the contents of a post or page.",
43450    textdomain: "default",
43451    usesContext: ["postId", "postType", "queryId"],
43452    example: {
43453      viewportWidth: 350
43454    },
43455    supports: {
43456      align: ["wide", "full"],
43457      html: false,
43458      layout: true,
43459      background: {
43460        backgroundImage: true,
43461        backgroundSize: true,
43462        __experimentalDefaultControls: {
43463          backgroundImage: true
43464        }
43465      },
43466      dimensions: {
43467        minHeight: true
43468      },
43469      spacing: {
43470        blockGap: true,
43471        padding: true,
43472        margin: true,
43473        __experimentalDefaultControls: {
43474          margin: false,
43475          padding: false
43476        }
43477      },
43478      color: {
43479        gradients: true,
43480        heading: true,
43481        link: true,
43482        __experimentalDefaultControls: {
43483          background: false,
43484          text: false
43485        }
43486      },
43487      typography: {
43488        fontSize: true,
43489        lineHeight: true,
43490        __experimentalFontFamily: true,
43491        __experimentalFontWeight: true,
43492        __experimentalFontStyle: true,
43493        __experimentalTextTransform: true,
43494        __experimentalTextDecoration: true,
43495        __experimentalLetterSpacing: true,
43496        __experimentalDefaultControls: {
43497          fontSize: true
43498        }
43499      },
43500      __experimentalBorder: {
43501        radius: true,
43502        color: true,
43503        width: true,
43504        style: true,
43505        __experimentalDefaultControls: {
43506          radius: true,
43507          color: true,
43508          width: true,
43509          style: true
43510        }
43511      }
43512    },
43513    style: "wp-block-post-content",
43514    editorStyle: "wp-block-post-content-editor"
43515  };
43516  
43517  const {
43518    name: post_content_name
43519  } = post_content_metadata;
43520  
43521  const post_content_settings = {
43522    icon: post_content,
43523    edit: PostContentEdit
43524  };
43525  const post_content_init = () => initBlock({
43526    name: post_content_name,
43527    metadata: post_content_metadata,
43528    settings: post_content_settings
43529  });
43530  
43531  ;// ./node_modules/@wordpress/block-library/build-module/post-date/edit.js
43532  /**
43533   * External dependencies
43534   */
43535  
43536  
43537  /**
43538   * WordPress dependencies
43539   */
43540  
43541  
43542  
43543  
43544  
43545  
43546  
43547  
43548  
43549  
43550  /**
43551   * Internal dependencies
43552   */
43553  
43554  
43555  function PostDateEdit({
43556    attributes: {
43557      textAlign,
43558      format,
43559      isLink,
43560      displayType
43561    },
43562    context: {
43563      postId,
43564      postType: postTypeSlug,
43565      queryId
43566    },
43567    setAttributes
43568  }) {
43569    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43570      className: dist_clsx({
43571        [`has-text-align-$textAlign}`]: textAlign,
43572        [`wp-block-post-date__modified-date`]: displayType === 'modified'
43573      })
43574    });
43575    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
43576  
43577    // Use internal state instead of a ref to make sure that the component
43578    // re-renders when the popover's anchor updates.
43579    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
43580    // Memoize popoverProps to avoid returning a new object every time.
43581    const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
43582      anchor: popoverAnchor
43583    }), [popoverAnchor]);
43584    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43585    const dateSettings = (0,external_wp_date_namespaceObject.getSettings)();
43586    const [siteFormat = dateSettings.formats.date] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'date_format');
43587    const [siteTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format');
43588    const [date, setDate] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, displayType, postId);
43589    const postType = (0,external_wp_data_namespaceObject.useSelect)(select => postTypeSlug ? select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug) : null, [postTypeSlug]);
43590    const dateLabel = displayType === 'date' ? (0,external_wp_i18n_namespaceObject.__)('Post Date') : (0,external_wp_i18n_namespaceObject.__)('Post Modified Date');
43591    let postDate = date ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
43592      dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date),
43593      ref: setPopoverAnchor,
43594      children: format === 'human-diff' ? (0,external_wp_date_namespaceObject.humanTimeDiff)(date) : (0,external_wp_date_namespaceObject.dateI18n)(format || siteFormat, date)
43595    }) : dateLabel;
43596    if (isLink && date) {
43597      postDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
43598        href: "#post-date-pseudo-link",
43599        onClick: event => event.preventDefault(),
43600        children: postDate
43601      });
43602    }
43603    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
43604      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
43605        group: "block",
43606        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
43607          value: textAlign,
43608          onChange: nextAlign => {
43609            setAttributes({
43610              textAlign: nextAlign
43611            });
43612          }
43613        }), date && displayType === 'date' && !isDescendentOfQueryLoop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
43614          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
43615            popoverProps: popoverProps,
43616            renderContent: ({
43617              onClose
43618            }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalPublishDateTimePicker, {
43619              currentDate: date,
43620              onChange: setDate,
43621              is12Hour: is12HourFormat(siteTimeFormat),
43622              onClose: onClose,
43623              dateOrder: /* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
43624              (0,external_wp_i18n_namespaceObject._x)('dmy', 'date order')
43625            }),
43626            renderToggle: ({
43627              isOpen,
43628              onToggle
43629            }) => {
43630              const openOnArrowDown = event => {
43631                if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
43632                  event.preventDefault();
43633                  onToggle();
43634                }
43635              };
43636              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
43637                "aria-expanded": isOpen,
43638                icon: library_edit,
43639                title: (0,external_wp_i18n_namespaceObject.__)('Change Date'),
43640                onClick: onToggle,
43641                onKeyDown: openOnArrowDown
43642              });
43643            }
43644          })
43645        })]
43646      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
43647        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
43648          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
43649          resetAll: () => {
43650            setAttributes({
43651              format: undefined,
43652              isLink: false,
43653              displayType: 'date'
43654            });
43655          },
43656          dropdownMenuProps: dropdownMenuProps,
43657          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43658            hasValue: () => !!format,
43659            label: (0,external_wp_i18n_namespaceObject.__)('Date Format'),
43660            onDeselect: () => setAttributes({
43661              format: undefined
43662            }),
43663            isShownByDefault: true,
43664            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalDateFormatPicker, {
43665              format: format,
43666              defaultFormat: siteFormat,
43667              onChange: nextFormat => setAttributes({
43668                format: nextFormat
43669              })
43670            })
43671          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43672            hasValue: () => isLink !== false,
43673            label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
43674            // translators: %s: Name of the post type e.g: "post".
43675            (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
43676            onDeselect: () => setAttributes({
43677              isLink: false
43678            }),
43679            isShownByDefault: true,
43680            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43681              __nextHasNoMarginBottom: true,
43682              label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
43683              // translators: %s: Name of the post type e.g: "post".
43684              (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name.toLowerCase()) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
43685              onChange: () => setAttributes({
43686                isLink: !isLink
43687              }),
43688              checked: isLink
43689            })
43690          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
43691            hasValue: () => displayType !== 'date',
43692            label: (0,external_wp_i18n_namespaceObject.__)('Display last modified date'),
43693            onDeselect: () => setAttributes({
43694              displayType: 'date'
43695            }),
43696            isShownByDefault: true,
43697            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
43698              __nextHasNoMarginBottom: true,
43699              label: (0,external_wp_i18n_namespaceObject.__)('Display last modified date'),
43700              onChange: value => setAttributes({
43701                displayType: value ? 'modified' : 'date'
43702              }),
43703              checked: displayType === 'modified',
43704              help: (0,external_wp_i18n_namespaceObject.__)('Only shows if the post has been modified')
43705            })
43706          })]
43707        })
43708      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
43709        ...blockProps,
43710        children: postDate
43711      })]
43712    });
43713  }
43714  function is12HourFormat(format) {
43715    // To know if the time format is a 12 hour time, look for any of the 12 hour
43716    // format characters: 'a', 'A', 'g', and 'h'. The character must be
43717    // unescaped, i.e. not preceded by a '\'. Coincidentally, 'aAgh' is how I
43718    // feel when working with regular expressions.
43719    // https://www.php.net/manual/en/datetime.format.php
43720    return /(?:^|[^\\])[aAgh]/.test(format);
43721  }
43722  
43723  ;// ./node_modules/@wordpress/block-library/build-module/post-date/deprecated.js
43724  /**
43725   * Internal dependencies
43726   */
43727  
43728  const post_date_deprecated_v1 = {
43729    attributes: {
43730      textAlign: {
43731        type: 'string'
43732      },
43733      format: {
43734        type: 'string'
43735      },
43736      isLink: {
43737        type: 'boolean',
43738        default: false
43739      }
43740    },
43741    supports: {
43742      html: false,
43743      color: {
43744        gradients: true,
43745        link: true
43746      },
43747      typography: {
43748        fontSize: true,
43749        lineHeight: true,
43750        __experimentalFontFamily: true,
43751        __experimentalFontWeight: true,
43752        __experimentalFontStyle: true,
43753        __experimentalTextTransform: true,
43754        __experimentalLetterSpacing: true
43755      }
43756    },
43757    save() {
43758      return null;
43759    },
43760    migrate: migrate_font_family,
43761    isEligible({
43762      style
43763    }) {
43764      return style?.typography?.fontFamily;
43765    }
43766  };
43767  
43768  /**
43769   * New deprecations need to be placed first
43770   * for them to have higher priority.
43771   *
43772   * Old deprecations may need to be updated as well.
43773   *
43774   * See block-deprecation.md
43775   */
43776  /* harmony default export */ const post_date_deprecated = ([post_date_deprecated_v1]);
43777  
43778  ;// ./node_modules/@wordpress/block-library/build-module/post-date/variations.js
43779  /**
43780   * WordPress dependencies
43781   */
43782  
43783  
43784  const post_date_variations_variations = [{
43785    name: 'post-date-modified',
43786    title: (0,external_wp_i18n_namespaceObject.__)('Modified Date'),
43787    description: (0,external_wp_i18n_namespaceObject.__)("Display a post's last updated date."),
43788    attributes: {
43789      displayType: 'modified'
43790    },
43791    scope: ['block', 'inserter'],
43792    isActive: blockAttributes => blockAttributes.displayType === 'modified',
43793    icon: post_date
43794  }];
43795  /* harmony default export */ const post_date_variations = (post_date_variations_variations);
43796  
43797  ;// ./node_modules/@wordpress/block-library/build-module/post-date/index.js
43798  /**
43799   * WordPress dependencies
43800   */
43801  
43802  
43803  /**
43804   * Internal dependencies
43805   */
43806  
43807  const post_date_metadata = {
43808    $schema: "https://schemas.wp.org/trunk/block.json",
43809    apiVersion: 3,
43810    name: "core/post-date",
43811    title: "Date",
43812    category: "theme",
43813    description: "Display the publish date for an entry such as a post or page.",
43814    textdomain: "default",
43815    attributes: {
43816      textAlign: {
43817        type: "string"
43818      },
43819      format: {
43820        type: "string"
43821      },
43822      isLink: {
43823        type: "boolean",
43824        "default": false,
43825        role: "content"
43826      },
43827      displayType: {
43828        type: "string",
43829        "default": "date"
43830      }
43831    },
43832    usesContext: ["postId", "postType", "queryId"],
43833    example: {
43834      viewportWidth: 350
43835    },
43836    supports: {
43837      html: false,
43838      color: {
43839        gradients: true,
43840        link: true,
43841        __experimentalDefaultControls: {
43842          background: true,
43843          text: true,
43844          link: true
43845        }
43846      },
43847      spacing: {
43848        margin: true,
43849        padding: true
43850      },
43851      typography: {
43852        fontSize: true,
43853        lineHeight: true,
43854        __experimentalFontFamily: true,
43855        __experimentalFontWeight: true,
43856        __experimentalFontStyle: true,
43857        __experimentalTextTransform: true,
43858        __experimentalTextDecoration: true,
43859        __experimentalLetterSpacing: true,
43860        __experimentalDefaultControls: {
43861          fontSize: true
43862        }
43863      },
43864      interactivity: {
43865        clientNavigation: true
43866      },
43867      __experimentalBorder: {
43868        radius: true,
43869        color: true,
43870        width: true,
43871        style: true,
43872        __experimentalDefaultControls: {
43873          radius: true,
43874          color: true,
43875          width: true,
43876          style: true
43877        }
43878      }
43879    }
43880  };
43881  
43882  
43883  
43884  const {
43885    name: post_date_name
43886  } = post_date_metadata;
43887  
43888  const post_date_settings = {
43889    icon: post_date,
43890    edit: PostDateEdit,
43891    deprecated: post_date_deprecated,
43892    variations: post_date_variations
43893  };
43894  const post_date_init = () => initBlock({
43895    name: post_date_name,
43896    metadata: post_date_metadata,
43897    settings: post_date_settings
43898  });
43899  
43900  ;// ./node_modules/@wordpress/icons/build-module/library/post-excerpt.js
43901  /**
43902   * WordPress dependencies
43903   */
43904  
43905  
43906  const postExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
43907    xmlns: "http://www.w3.org/2000/svg",
43908    viewBox: "0 0 24 24",
43909    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
43910      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"
43911    })
43912  });
43913  /* harmony default export */ const post_excerpt = (postExcerpt);
43914  
43915  ;// ./node_modules/@wordpress/block-library/build-module/post-excerpt/edit.js
43916  /**
43917   * External dependencies
43918   */
43919  
43920  
43921  /**
43922   * WordPress dependencies
43923   */
43924  
43925  
43926  
43927  
43928  
43929  
43930  
43931  /**
43932   * Internal dependencies
43933   */
43934  
43935  
43936  const ELLIPSIS = '…';
43937  function PostExcerptEditor({
43938    attributes: {
43939      textAlign,
43940      moreText,
43941      showMoreOnNewLine,
43942      excerptLength
43943    },
43944    setAttributes,
43945    isSelected,
43946    context: {
43947      postId,
43948      postType,
43949      queryId
43950    }
43951  }) {
43952    const isDescendentOfQueryLoop = Number.isFinite(queryId);
43953    const userCanEdit = useCanEditEntity('postType', postType, postId);
43954    const [rawExcerpt, setExcerpt, {
43955      rendered: renderedExcerpt,
43956      protected: isProtected
43957    } = {}] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'excerpt', postId);
43958    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
43959  
43960    /**
43961     * Check if the post type supports excerpts.
43962     * Add an exception and return early for the "page" post type,
43963     * which is registered without support for the excerpt UI,
43964     * but supports saving the excerpt to the database.
43965     * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65
43966     * Without this exception, users that have excerpts saved to the database will
43967     * not be able to edit the excerpts.
43968     */
43969    const postTypeSupportsExcerpts = (0,external_wp_data_namespaceObject.useSelect)(select => {
43970      if (postType === 'page') {
43971        return true;
43972      }
43973      return !!select(external_wp_coreData_namespaceObject.store).getPostType(postType)?.supports?.excerpt;
43974    }, [postType]);
43975  
43976    /**
43977     * The excerpt is editable if:
43978     * - The user can edit the post
43979     * - It is not a descendent of a Query Loop block
43980     * - The post type supports excerpts
43981     */
43982    const isEditable = userCanEdit && !isDescendentOfQueryLoop && postTypeSupportsExcerpts;
43983    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
43984      className: dist_clsx({
43985        [`has-text-align-$textAlign}`]: textAlign
43986      })
43987    });
43988  
43989    /**
43990     * translators: If your word count is based on single characters (e.g. East Asian characters),
43991     * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
43992     * Do not translate into your own language.
43993     */
43994    const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
43995  
43996    /**
43997     * When excerpt is editable, strip the html tags from
43998     * rendered excerpt. This will be used if the entity's
43999     * excerpt has been produced from the content.
44000     */
44001    const strippedRenderedExcerpt = (0,external_wp_element_namespaceObject.useMemo)(() => {
44002      if (!renderedExcerpt) {
44003        return '';
44004      }
44005      const document = new window.DOMParser().parseFromString(renderedExcerpt, 'text/html');
44006      return document.body.textContent || document.body.innerText || '';
44007    }, [renderedExcerpt]);
44008    if (!postType || !postId) {
44009      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44010        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44011          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
44012            value: textAlign,
44013            onChange: newAlign => setAttributes({
44014              textAlign: newAlign
44015            })
44016          })
44017        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
44018          ...blockProps,
44019          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
44020            children: (0,external_wp_i18n_namespaceObject.__)('This block will display the excerpt.')
44021          })
44022        })]
44023      });
44024    }
44025    if (isProtected && !userCanEdit) {
44026      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
44027        ...blockProps,
44028        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
44029          children: (0,external_wp_i18n_namespaceObject.__)('The content is currently protected and does not have the available excerpt.')
44030        })
44031      });
44032    }
44033    const readMoreLink = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
44034      identifier: "moreText",
44035      className: "wp-block-post-excerpt__more-link",
44036      tagName: "a",
44037      "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
44038      placeholder: (0,external_wp_i18n_namespaceObject.__)('Add "read more" link text'),
44039      value: moreText,
44040      onChange: newMoreText => setAttributes({
44041        moreText: newMoreText
44042      }),
44043      withoutInteractiveFormatting: true
44044    });
44045    const excerptClassName = dist_clsx('wp-block-post-excerpt__excerpt', {
44046      'is-inline': !showMoreOnNewLine
44047    });
44048  
44049    /**
44050     * The excerpt length setting needs to be applied to both
44051     * the raw and the rendered excerpt depending on which is being used.
44052     */
44053    const rawOrRenderedExcerpt = (rawExcerpt || strippedRenderedExcerpt).trim();
44054    let trimmedExcerpt = '';
44055    if (wordCountType === 'words') {
44056      trimmedExcerpt = rawOrRenderedExcerpt.split(' ', excerptLength).join(' ');
44057    } else if (wordCountType === 'characters_excluding_spaces') {
44058      /*
44059       * 1. Split the excerpt at the character limit,
44060       * then join the substrings back into one string.
44061       * 2. Count the number of spaces in the excerpt
44062       * by comparing the lengths of the string with and without spaces.
44063       * 3. Add the number to the length of the visible excerpt,
44064       * so that the spaces are excluded from the word count.
44065       */
44066      const excerptWithSpaces = rawOrRenderedExcerpt.split('', excerptLength).join('');
44067      const numberOfSpaces = excerptWithSpaces.length - excerptWithSpaces.replaceAll(' ', '').length;
44068      trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength + numberOfSpaces).join('');
44069    } else if (wordCountType === 'characters_including_spaces') {
44070      trimmedExcerpt = rawOrRenderedExcerpt.split('', excerptLength).join('');
44071    }
44072    const isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;
44073    const excerptContent = isEditable ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
44074      className: excerptClassName,
44075      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Excerpt text'),
44076      value: isSelected ? rawOrRenderedExcerpt : (!isTrimmed ? rawOrRenderedExcerpt : trimmedExcerpt + ELLIPSIS) || (0,external_wp_i18n_namespaceObject.__)('No excerpt found'),
44077      onChange: setExcerpt,
44078      tagName: "p"
44079    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
44080      className: excerptClassName,
44081      children: !isTrimmed ? rawOrRenderedExcerpt || (0,external_wp_i18n_namespaceObject.__)('No excerpt found') : trimmedExcerpt + ELLIPSIS
44082    });
44083    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44084      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44085        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
44086          value: textAlign,
44087          onChange: newAlign => setAttributes({
44088            textAlign: newAlign
44089          })
44090        })
44091      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44092        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
44093          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
44094          resetAll: () => {
44095            setAttributes({
44096              showMoreOnNewLine: true,
44097              excerptLength: 55
44098            });
44099          },
44100          dropdownMenuProps: dropdownMenuProps,
44101          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44102            hasValue: () => showMoreOnNewLine !== true,
44103            label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
44104            onDeselect: () => setAttributes({
44105              showMoreOnNewLine: true
44106            }),
44107            isShownByDefault: true,
44108            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
44109              __nextHasNoMarginBottom: true,
44110              label: (0,external_wp_i18n_namespaceObject.__)('Show link on new line'),
44111              checked: showMoreOnNewLine,
44112              onChange: newShowMoreOnNewLine => setAttributes({
44113                showMoreOnNewLine: newShowMoreOnNewLine
44114              })
44115            })
44116          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44117            hasValue: () => excerptLength !== 55,
44118            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
44119            onDeselect: () => setAttributes({
44120              excerptLength: 55
44121            }),
44122            isShownByDefault: true,
44123            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
44124              __next40pxDefaultSize: true,
44125              __nextHasNoMarginBottom: true,
44126              label: (0,external_wp_i18n_namespaceObject.__)('Max number of words'),
44127              value: excerptLength,
44128              onChange: value => {
44129                setAttributes({
44130                  excerptLength: value
44131                });
44132              },
44133              min: "10",
44134              max: "100"
44135            })
44136          })]
44137        })
44138      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
44139        ...blockProps,
44140        children: [excerptContent, !showMoreOnNewLine && ' ', showMoreOnNewLine ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
44141          className: "wp-block-post-excerpt__more-text",
44142          children: readMoreLink
44143        }) : readMoreLink]
44144      })]
44145    });
44146  }
44147  
44148  ;// ./node_modules/@wordpress/block-library/build-module/post-excerpt/transforms.js
44149  /**
44150   * WordPress dependencies
44151   */
44152  
44153  const post_excerpt_transforms_transforms = {
44154    from: [{
44155      type: 'block',
44156      blocks: ['core/post-content'],
44157      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-excerpt')
44158    }],
44159    to: [{
44160      type: 'block',
44161      blocks: ['core/post-content'],
44162      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content')
44163    }]
44164  };
44165  /* harmony default export */ const post_excerpt_transforms = (post_excerpt_transforms_transforms);
44166  
44167  ;// ./node_modules/@wordpress/block-library/build-module/post-excerpt/index.js
44168  /**
44169   * WordPress dependencies
44170   */
44171  
44172  
44173  /**
44174   * Internal dependencies
44175   */
44176  
44177  const post_excerpt_metadata = {
44178    $schema: "https://schemas.wp.org/trunk/block.json",
44179    apiVersion: 3,
44180    name: "core/post-excerpt",
44181    title: "Excerpt",
44182    category: "theme",
44183    description: "Display the excerpt.",
44184    textdomain: "default",
44185    attributes: {
44186      textAlign: {
44187        type: "string"
44188      },
44189      moreText: {
44190        type: "string"
44191      },
44192      showMoreOnNewLine: {
44193        type: "boolean",
44194        "default": true
44195      },
44196      excerptLength: {
44197        type: "number",
44198        "default": 55
44199      }
44200    },
44201    usesContext: ["postId", "postType", "queryId"],
44202    example: {
44203      viewportWidth: 350
44204    },
44205    supports: {
44206      html: false,
44207      color: {
44208        gradients: true,
44209        link: true,
44210        __experimentalDefaultControls: {
44211          background: true,
44212          text: true,
44213          link: true
44214        }
44215      },
44216      spacing: {
44217        margin: true,
44218        padding: true
44219      },
44220      typography: {
44221        fontSize: true,
44222        lineHeight: true,
44223        __experimentalFontFamily: true,
44224        __experimentalFontWeight: true,
44225        __experimentalFontStyle: true,
44226        __experimentalTextTransform: true,
44227        __experimentalTextDecoration: true,
44228        __experimentalLetterSpacing: true,
44229        __experimentalDefaultControls: {
44230          fontSize: true
44231        }
44232      },
44233      interactivity: {
44234        clientNavigation: true
44235      },
44236      __experimentalBorder: {
44237        radius: true,
44238        color: true,
44239        width: true,
44240        style: true,
44241        __experimentalDefaultControls: {
44242          radius: true,
44243          color: true,
44244          width: true,
44245          style: true
44246        }
44247      }
44248    },
44249    editorStyle: "wp-block-post-excerpt-editor",
44250    style: "wp-block-post-excerpt"
44251  };
44252  
44253  
44254  const {
44255    name: post_excerpt_name
44256  } = post_excerpt_metadata;
44257  
44258  const post_excerpt_settings = {
44259    icon: post_excerpt,
44260    transforms: post_excerpt_transforms,
44261    edit: PostExcerptEditor
44262  };
44263  const post_excerpt_init = () => initBlock({
44264    name: post_excerpt_name,
44265    metadata: post_excerpt_metadata,
44266    settings: post_excerpt_settings
44267  });
44268  
44269  ;// ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js
44270  /**
44271   * WordPress dependencies
44272   */
44273  
44274  
44275  const postFeaturedImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
44276    xmlns: "http://www.w3.org/2000/svg",
44277    viewBox: "0 0 24 24",
44278    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
44279      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"
44280    })
44281  });
44282  /* harmony default export */ const post_featured_image = (postFeaturedImage);
44283  
44284  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/dimension-controls.js
44285  /**
44286   * WordPress dependencies
44287   */
44288  
44289  
44290  
44291  
44292  const SCALE_OPTIONS = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44293    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
44294      value: "cover",
44295      label: (0,external_wp_i18n_namespaceObject._x)('Cover', 'Scale option for Image dimension control')
44296    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
44297      value: "contain",
44298      label: (0,external_wp_i18n_namespaceObject._x)('Contain', 'Scale option for Image dimension control')
44299    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
44300      value: "fill",
44301      label: (0,external_wp_i18n_namespaceObject._x)('Fill', 'Scale option for Image dimension control')
44302    })]
44303  });
44304  const DEFAULT_SCALE = 'cover';
44305  const scaleHelp = {
44306    cover: (0,external_wp_i18n_namespaceObject.__)('Image is scaled and cropped to fill the entire space without being distorted.'),
44307    contain: (0,external_wp_i18n_namespaceObject.__)('Image is scaled to fill the space without clipping nor distorting.'),
44308    fill: (0,external_wp_i18n_namespaceObject.__)('Image will be stretched and distorted to completely fill the space.')
44309  };
44310  const DimensionControls = ({
44311    clientId,
44312    attributes: {
44313      aspectRatio,
44314      width,
44315      height,
44316      scale
44317    },
44318    setAttributes
44319  }) => {
44320    const [availableUnits, defaultRatios, themeRatios, showDefaultRatios] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units', 'dimensions.aspectRatios.default', 'dimensions.aspectRatios.theme', 'dimensions.defaultAspectRatios');
44321    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
44322      availableUnits: availableUnits || ['px', '%', 'vw', 'em', 'rem']
44323    });
44324    const onDimensionChange = (dimension, nextValue) => {
44325      const parsedValue = parseFloat(nextValue);
44326      /**
44327       * If we have no value set and we change the unit,
44328       * we don't want to set the attribute, as it would
44329       * end up having the unit as value without any number.
44330       */
44331      if (isNaN(parsedValue) && nextValue) {
44332        return;
44333      }
44334      setAttributes({
44335        [dimension]: parsedValue < 0 ? '0' : nextValue
44336      });
44337    };
44338    const scaleLabel = (0,external_wp_i18n_namespaceObject._x)('Scale', 'Image scaling options');
44339    const showScaleControl = height || aspectRatio && aspectRatio !== 'auto';
44340    const themeOptions = themeRatios?.map(({
44341      name,
44342      ratio
44343    }) => ({
44344      label: name,
44345      value: ratio
44346    }));
44347    const defaultOptions = defaultRatios?.map(({
44348      name,
44349      ratio
44350    }) => ({
44351      label: name,
44352      value: ratio
44353    }));
44354    const aspectRatioOptions = [{
44355      label: (0,external_wp_i18n_namespaceObject._x)('Original', 'Aspect ratio option for dimensions control'),
44356      value: 'auto'
44357    }, ...(showDefaultRatios ? defaultOptions : []), ...(themeOptions ? themeOptions : [])];
44358    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44359      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44360        hasValue: () => !!aspectRatio,
44361        label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'),
44362        onDeselect: () => setAttributes({
44363          aspectRatio: undefined
44364        }),
44365        resetAllFilter: () => ({
44366          aspectRatio: undefined
44367        }),
44368        isShownByDefault: true,
44369        panelId: clientId,
44370        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
44371          __next40pxDefaultSize: true,
44372          __nextHasNoMarginBottom: true,
44373          label: (0,external_wp_i18n_namespaceObject.__)('Aspect ratio'),
44374          value: aspectRatio,
44375          options: aspectRatioOptions,
44376          onChange: nextAspectRatio => setAttributes({
44377            aspectRatio: nextAspectRatio
44378          })
44379        })
44380      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44381        className: "single-column",
44382        hasValue: () => !!height,
44383        label: (0,external_wp_i18n_namespaceObject.__)('Height'),
44384        onDeselect: () => setAttributes({
44385          height: undefined
44386        }),
44387        resetAllFilter: () => ({
44388          height: undefined
44389        }),
44390        isShownByDefault: true,
44391        panelId: clientId,
44392        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
44393          __next40pxDefaultSize: true,
44394          label: (0,external_wp_i18n_namespaceObject.__)('Height'),
44395          labelPosition: "top",
44396          value: height || '',
44397          min: 0,
44398          onChange: nextHeight => onDimensionChange('height', nextHeight),
44399          units: units
44400        })
44401      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44402        className: "single-column",
44403        hasValue: () => !!width,
44404        label: (0,external_wp_i18n_namespaceObject.__)('Width'),
44405        onDeselect: () => setAttributes({
44406          width: undefined
44407        }),
44408        resetAllFilter: () => ({
44409          width: undefined
44410        }),
44411        isShownByDefault: true,
44412        panelId: clientId,
44413        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
44414          __next40pxDefaultSize: true,
44415          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
44416          labelPosition: "top",
44417          value: width || '',
44418          min: 0,
44419          onChange: nextWidth => onDimensionChange('width', nextWidth),
44420          units: units
44421        })
44422      }), showScaleControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44423        hasValue: () => !!scale && scale !== DEFAULT_SCALE,
44424        label: scaleLabel,
44425        onDeselect: () => setAttributes({
44426          scale: DEFAULT_SCALE
44427        }),
44428        resetAllFilter: () => ({
44429          scale: DEFAULT_SCALE
44430        }),
44431        isShownByDefault: true,
44432        panelId: clientId,
44433        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
44434          __next40pxDefaultSize: true,
44435          __nextHasNoMarginBottom: true,
44436          label: scaleLabel,
44437          value: scale,
44438          help: scaleHelp[scale],
44439          onChange: value => setAttributes({
44440            scale: value
44441          }),
44442          isBlock: true,
44443          children: SCALE_OPTIONS
44444        })
44445      })]
44446    });
44447  };
44448  /* harmony default export */ const dimension_controls = (DimensionControls);
44449  
44450  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/overlay-controls.js
44451  /**
44452   * WordPress dependencies
44453   */
44454  
44455  
44456  
44457  
44458  
44459  const Overlay = ({
44460    clientId,
44461    attributes,
44462    setAttributes,
44463    overlayColor,
44464    setOverlayColor
44465  }) => {
44466    const {
44467      dimRatio
44468    } = attributes;
44469    const {
44470      gradientValue,
44471      setGradient
44472    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
44473    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
44474    if (!colorGradientSettings.hasColorsOrGradients) {
44475      return null;
44476    }
44477    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44478      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
44479        __experimentalIsRenderedInSidebar: true,
44480        settings: [{
44481          colorValue: overlayColor.color,
44482          gradientValue,
44483          label: (0,external_wp_i18n_namespaceObject.__)('Overlay'),
44484          onColorChange: setOverlayColor,
44485          onGradientChange: setGradient,
44486          isShownByDefault: true,
44487          resetAllFilter: () => ({
44488            overlayColor: undefined,
44489            customOverlayColor: undefined,
44490            gradient: undefined,
44491            customGradient: undefined
44492          }),
44493          clearable: true
44494        }],
44495        panelId: clientId,
44496        ...colorGradientSettings
44497      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44498        hasValue: () => dimRatio !== undefined,
44499        label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
44500        onDeselect: () => setAttributes({
44501          dimRatio: 0
44502        }),
44503        resetAllFilter: () => ({
44504          dimRatio: 0
44505        }),
44506        isShownByDefault: true,
44507        panelId: clientId,
44508        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
44509          __nextHasNoMarginBottom: true,
44510          label: (0,external_wp_i18n_namespaceObject.__)('Overlay opacity'),
44511          value: dimRatio,
44512          onChange: newDimRatio => setAttributes({
44513            dimRatio: newDimRatio
44514          }),
44515          min: 0,
44516          max: 100,
44517          step: 10,
44518          required: true,
44519          __next40pxDefaultSize: true
44520        })
44521      })]
44522    });
44523  };
44524  /* harmony default export */ const overlay_controls = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
44525    overlayColor: 'background-color'
44526  })])(Overlay));
44527  
44528  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/utils.js
44529  /**
44530   * Generates the opacity/dim class based on given number.
44531   *
44532   * @param {number} ratio Dim/opacity number.
44533   *
44534   * @return {string} Generated class.
44535   */
44536  function utils_dimRatioToClass(ratio) {
44537    return ratio === undefined ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);
44538  }
44539  
44540  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/overlay.js
44541  /**
44542   * External dependencies
44543   */
44544  
44545  
44546  /**
44547   * WordPress dependencies
44548   */
44549  
44550  
44551  
44552  /**
44553   * Internal dependencies
44554   */
44555  
44556  
44557  const overlay_Overlay = ({
44558    attributes,
44559    overlayColor
44560  }) => {
44561    const {
44562      dimRatio
44563    } = attributes;
44564    const {
44565      gradientClass,
44566      gradientValue
44567    } = (0,external_wp_blockEditor_namespaceObject.__experimentalUseGradient)();
44568    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
44569    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
44570    const overlayStyles = {
44571      backgroundColor: overlayColor.color,
44572      backgroundImage: gradientValue,
44573      ...borderProps.style
44574    };
44575    if (!colorGradientSettings.hasColorsOrGradients || !dimRatio) {
44576      return null;
44577    }
44578    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
44579      "aria-hidden": "true",
44580      className: dist_clsx('wp-block-post-featured-image__overlay', utils_dimRatioToClass(dimRatio), {
44581        [overlayColor.class]: overlayColor.class,
44582        'has-background-dim': dimRatio !== undefined,
44583        'has-background-gradient': gradientValue,
44584        [gradientClass]: gradientClass
44585      }, borderProps.className),
44586      style: overlayStyles
44587    });
44588  };
44589  /* harmony default export */ const overlay = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_blockEditor_namespaceObject.withColors)({
44590    overlayColor: 'background-color'
44591  })])(overlay_Overlay));
44592  
44593  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/edit.js
44594  /**
44595   * External dependencies
44596   */
44597  
44598  
44599  /**
44600   * WordPress dependencies
44601   */
44602  
44603  
44604  
44605  
44606  
44607  
44608  
44609  
44610  
44611  
44612  /**
44613   * Internal dependencies
44614   */
44615  
44616  
44617  
44618  
44619  
44620  
44621  const post_featured_image_edit_ALLOWED_MEDIA_TYPES = ['image'];
44622  const {
44623    ResolutionTool: post_featured_image_edit_ResolutionTool
44624  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
44625  const edit_DEFAULT_MEDIA_SIZE_SLUG = 'full';
44626  function FeaturedImageResolutionTool({
44627    image,
44628    value,
44629    onChange
44630  }) {
44631    const {
44632      imageSizes
44633    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44634      const {
44635        getSettings
44636      } = select(external_wp_blockEditor_namespaceObject.store);
44637      return {
44638        imageSizes: getSettings().imageSizes
44639      };
44640    }, []);
44641    if (!imageSizes?.length) {
44642      return null;
44643    }
44644    const imageSizeOptions = imageSizes.filter(({
44645      slug
44646    }) => image?.media_details?.sizes?.[slug]?.source_url).map(({
44647      name,
44648      slug
44649    }) => ({
44650      value: slug,
44651      label: name
44652    }));
44653    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image_edit_ResolutionTool, {
44654      value: value,
44655      defaultValue: edit_DEFAULT_MEDIA_SIZE_SLUG,
44656      options: imageSizeOptions,
44657      onChange: onChange
44658    });
44659  }
44660  function PostFeaturedImageEdit({
44661    clientId,
44662    attributes,
44663    setAttributes,
44664    context: {
44665      postId,
44666      postType: postTypeSlug,
44667      queryId
44668    }
44669  }) {
44670    const isDescendentOfQueryLoop = Number.isFinite(queryId);
44671    const {
44672      isLink,
44673      aspectRatio,
44674      height,
44675      width,
44676      scale,
44677      sizeSlug,
44678      rel,
44679      linkTarget,
44680      useFirstImageFromPost
44681    } = attributes;
44682    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
44683    const [storedFeaturedImage, setFeaturedImage] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'featured_media', postId);
44684  
44685    // Fallback to post content if no featured image is set.
44686    // This is needed for the "Use first image from post" option.
44687    const [postContent] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postTypeSlug, 'content', postId);
44688    const featuredImage = (0,external_wp_element_namespaceObject.useMemo)(() => {
44689      if (storedFeaturedImage) {
44690        return storedFeaturedImage;
44691      }
44692      if (!useFirstImageFromPost) {
44693        return;
44694      }
44695      const imageOpener = /<!--\s+wp:(?:core\/)?image\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\s+\/?-->).)*)?}\s+)?-->/.exec(postContent);
44696      const imageId = imageOpener?.groups?.attrs && JSON.parse(imageOpener.groups.attrs)?.id;
44697      return imageId;
44698    }, [storedFeaturedImage, useFirstImageFromPost, postContent]);
44699    const {
44700      media,
44701      postType,
44702      postPermalink
44703    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
44704      const {
44705        getMedia,
44706        getPostType,
44707        getEditedEntityRecord
44708      } = select(external_wp_coreData_namespaceObject.store);
44709      return {
44710        media: featuredImage && getMedia(featuredImage, {
44711          context: 'view'
44712        }),
44713        postType: postTypeSlug && getPostType(postTypeSlug),
44714        postPermalink: getEditedEntityRecord('postType', postTypeSlug, postId)?.link
44715      };
44716    }, [featuredImage, postTypeSlug, postId]);
44717    const mediaUrl = media?.media_details?.sizes?.[sizeSlug]?.source_url || media?.source_url;
44718    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
44719      style: {
44720        width,
44721        height,
44722        aspectRatio
44723      },
44724      className: dist_clsx({
44725        'is-transient': temporaryURL
44726      })
44727    });
44728    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
44729    const shadowProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetShadowClassesAndStyles)(attributes);
44730    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
44731    const placeholder = content => {
44732      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
44733        className: dist_clsx('block-editor-media-placeholder', borderProps.className),
44734        withIllustration: true,
44735        style: {
44736          height: !!aspectRatio && '100%',
44737          width: !!aspectRatio && '100%',
44738          ...borderProps.style,
44739          ...shadowProps.style
44740        },
44741        children: content
44742      });
44743    };
44744    const onSelectImage = value => {
44745      if (value?.id) {
44746        setFeaturedImage(value.id);
44747      }
44748      if (value?.url && (0,external_wp_blob_namespaceObject.isBlobURL)(value.url)) {
44749        setTemporaryURL(value.url);
44750      }
44751    };
44752  
44753    // Reset temporary url when media is available.
44754    (0,external_wp_element_namespaceObject.useEffect)(() => {
44755      if (mediaUrl && temporaryURL) {
44756        setTemporaryURL();
44757      }
44758    }, [mediaUrl, temporaryURL]);
44759    const {
44760      createErrorNotice
44761    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
44762    const onUploadError = message => {
44763      createErrorNotice(message, {
44764        type: 'snackbar'
44765      });
44766      setTemporaryURL();
44767    };
44768    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
44769    const controls = blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44770      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44771        group: "color",
44772        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay_controls, {
44773          attributes: attributes,
44774          setAttributes: setAttributes,
44775          clientId: clientId
44776        })
44777      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44778        group: "dimensions",
44779        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(dimension_controls, {
44780          clientId: clientId,
44781          attributes: attributes,
44782          setAttributes: setAttributes,
44783          media: media
44784        })
44785      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
44786        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
44787          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
44788          resetAll: () => {
44789            setAttributes({
44790              isLink: false,
44791              linkTarget: '_self',
44792              rel: ''
44793            });
44794          },
44795          dropdownMenuProps: dropdownMenuProps,
44796          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44797            label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
44798            // translators: %s: Name of the post type e.g: "post".
44799            (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
44800            isShownByDefault: true,
44801            hasValue: () => !!isLink,
44802            onDeselect: () => setAttributes({
44803              isLink: false
44804            }),
44805            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
44806              __nextHasNoMarginBottom: true,
44807              label: postType?.labels.singular_name ? (0,external_wp_i18n_namespaceObject.sprintf)(
44808              // translators: %s: Name of the post type e.g: "post".
44809              (0,external_wp_i18n_namespaceObject.__)('Link to %s'), postType.labels.singular_name) : (0,external_wp_i18n_namespaceObject.__)('Link to post'),
44810              onChange: () => setAttributes({
44811                isLink: !isLink
44812              }),
44813              checked: isLink
44814            })
44815          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44816            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
44817            isShownByDefault: true,
44818            hasValue: () => '_self' !== linkTarget,
44819            onDeselect: () => setAttributes({
44820              linkTarget: '_self'
44821            }),
44822            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
44823              __nextHasNoMarginBottom: true,
44824              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
44825              onChange: value => setAttributes({
44826                linkTarget: value ? '_blank' : '_self'
44827              }),
44828              checked: linkTarget === '_blank'
44829            })
44830          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
44831            label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
44832            isShownByDefault: true,
44833            hasValue: () => !!rel,
44834            onDeselect: () => setAttributes({
44835              rel: ''
44836            }),
44837            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
44838              __next40pxDefaultSize: true,
44839              __nextHasNoMarginBottom: true,
44840              label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
44841              value: rel,
44842              onChange: newRel => setAttributes({
44843                rel: newRel
44844              })
44845            })
44846          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FeaturedImageResolutionTool, {
44847            image: media,
44848            value: sizeSlug,
44849            onChange: nextSizeSlug => setAttributes({
44850              sizeSlug: nextSizeSlug
44851            })
44852          })]
44853        })
44854      })]
44855    });
44856    let image;
44857  
44858    /**
44859     * A Post Featured Image block should not have image replacement
44860     * or upload options in the following cases:
44861     * - Is placed in a Query Loop. This is a conscious decision to
44862     * prevent content editing of different posts in Query Loop, and
44863     * this could change in the future.
44864     * - Is in a context where it does not have a postId (for example
44865     * in a template or template part).
44866     */
44867    if (!featuredImage && (isDescendentOfQueryLoop || !postId)) {
44868      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44869        children: [controls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
44870          ...blockProps,
44871          children: [!!isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
44872            href: postPermalink,
44873            target: linkTarget,
44874            children: placeholder()
44875          }) : placeholder(), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay, {
44876            attributes: attributes,
44877            setAttributes: setAttributes,
44878            clientId: clientId
44879          })]
44880        })]
44881      });
44882    }
44883    const label = (0,external_wp_i18n_namespaceObject.__)('Add a featured image');
44884    const imageStyles = {
44885      ...borderProps.style,
44886      ...shadowProps.style,
44887      height: aspectRatio ? '100%' : height,
44888      width: !!aspectRatio && '100%',
44889      objectFit: !!(height || aspectRatio) && scale
44890    };
44891  
44892    /**
44893     * When the post featured image block is placed in a context where:
44894     * - It has a postId (for example in a single post)
44895     * - It is not inside a query loop
44896     * - It has no image assigned yet
44897     * Then display the placeholder with the image upload option.
44898     */
44899    if (!featuredImage && !temporaryURL) {
44900      image = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
44901        onSelect: onSelectImage,
44902        accept: "image/*",
44903        allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
44904        onError: onUploadError,
44905        placeholder: placeholder,
44906        mediaLibraryButton: ({
44907          open
44908        }) => {
44909          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
44910            __next40pxDefaultSize: true,
44911            icon: library_upload,
44912            variant: "primary",
44913            label: label,
44914            showTooltip: true,
44915            tooltipPosition: "top center",
44916            onClick: e => {
44917              e.preventDefault();
44918              open();
44919            }
44920          });
44921        }
44922      });
44923    } else {
44924      // We have a Featured image so show a Placeholder if is loading.
44925      image = !media && !temporaryURL ? placeholder() : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44926        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
44927          className: borderProps.className,
44928          src: temporaryURL || mediaUrl,
44929          alt: media && media?.alt_text ? (0,external_wp_i18n_namespaceObject.sprintf)(
44930          // translators: %s: The image's alt text.
44931          (0,external_wp_i18n_namespaceObject.__)('Featured image: %s'), media.alt_text) : (0,external_wp_i18n_namespaceObject.__)('Featured image'),
44932          style: imageStyles
44933        }), temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
44934      });
44935    }
44936  
44937    /**
44938     * When the post featured image block:
44939     * - Has an image assigned
44940     * - Is not inside a query loop
44941     * Then display the image and the image replacement option.
44942     */
44943    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
44944      children: [!temporaryURL && controls, !!media && !isDescendentOfQueryLoop && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
44945        group: "other",
44946        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
44947          mediaId: featuredImage,
44948          mediaURL: mediaUrl,
44949          allowedTypes: post_featured_image_edit_ALLOWED_MEDIA_TYPES,
44950          accept: "image/*",
44951          onSelect: onSelectImage,
44952          onError: onUploadError,
44953          onReset: () => setFeaturedImage(0)
44954        })
44955      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
44956        ...blockProps,
44957        children: [!!isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
44958          href: postPermalink,
44959          target: linkTarget,
44960          children: image
44961        }) : image, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(overlay, {
44962          attributes: attributes,
44963          setAttributes: setAttributes,
44964          clientId: clientId
44965        })]
44966      })]
44967    });
44968  }
44969  
44970  ;// ./node_modules/@wordpress/block-library/build-module/post-featured-image/index.js
44971  /**
44972   * WordPress dependencies
44973   */
44974  
44975  
44976  /**
44977   * Internal dependencies
44978   */
44979  
44980  const post_featured_image_metadata = {
44981    $schema: "https://schemas.wp.org/trunk/block.json",
44982    apiVersion: 3,
44983    name: "core/post-featured-image",
44984    title: "Featured Image",
44985    category: "theme",
44986    description: "Display a post's featured image.",
44987    textdomain: "default",
44988    attributes: {
44989      isLink: {
44990        type: "boolean",
44991        "default": false,
44992        role: "content"
44993      },
44994      aspectRatio: {
44995        type: "string"
44996      },
44997      width: {
44998        type: "string"
44999      },
45000      height: {
45001        type: "string"
45002      },
45003      scale: {
45004        type: "string",
45005        "default": "cover"
45006      },
45007      sizeSlug: {
45008        type: "string"
45009      },
45010      rel: {
45011        type: "string",
45012        attribute: "rel",
45013        "default": "",
45014        role: "content"
45015      },
45016      linkTarget: {
45017        type: "string",
45018        "default": "_self",
45019        role: "content"
45020      },
45021      overlayColor: {
45022        type: "string"
45023      },
45024      customOverlayColor: {
45025        type: "string"
45026      },
45027      dimRatio: {
45028        type: "number",
45029        "default": 0
45030      },
45031      gradient: {
45032        type: "string"
45033      },
45034      customGradient: {
45035        type: "string"
45036      },
45037      useFirstImageFromPost: {
45038        type: "boolean",
45039        "default": false
45040      }
45041    },
45042    usesContext: ["postId", "postType", "queryId"],
45043    example: {
45044      viewportWidth: 350
45045    },
45046    supports: {
45047      align: ["left", "right", "center", "wide", "full"],
45048      color: {
45049        text: false,
45050        background: false
45051      },
45052      __experimentalBorder: {
45053        color: true,
45054        radius: true,
45055        width: true,
45056        __experimentalSkipSerialization: true,
45057        __experimentalDefaultControls: {
45058          color: true,
45059          radius: true,
45060          width: true
45061        }
45062      },
45063      filter: {
45064        duotone: true
45065      },
45066      shadow: {
45067        __experimentalSkipSerialization: true
45068      },
45069      html: false,
45070      spacing: {
45071        margin: true,
45072        padding: true
45073      },
45074      interactivity: {
45075        clientNavigation: true
45076      }
45077    },
45078    selectors: {
45079      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",
45080      shadow: ".wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder",
45081      filter: {
45082        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"
45083      }
45084    },
45085    editorStyle: "wp-block-post-featured-image-editor",
45086    style: "wp-block-post-featured-image"
45087  };
45088  
45089  const {
45090    name: post_featured_image_name
45091  } = post_featured_image_metadata;
45092  
45093  const post_featured_image_settings = {
45094    icon: post_featured_image,
45095    edit: PostFeaturedImageEdit
45096  };
45097  const post_featured_image_init = () => initBlock({
45098    name: post_featured_image_name,
45099    metadata: post_featured_image_metadata,
45100    settings: post_featured_image_settings
45101  });
45102  
45103  ;// ./node_modules/@wordpress/block-library/build-module/post-navigation-link/edit.js
45104  /**
45105   * External dependencies
45106   */
45107  
45108  
45109  /**
45110   * WordPress dependencies
45111   */
45112  
45113  
45114  
45115  
45116  
45117  
45118  function PostNavigationLinkEdit({
45119    context: {
45120      postType
45121    },
45122    attributes: {
45123      type,
45124      label,
45125      showTitle,
45126      textAlign,
45127      linkLabel,
45128      arrow,
45129      taxonomy
45130    },
45131    setAttributes
45132  }) {
45133    const isNext = type === 'next';
45134    let placeholder = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next') : (0,external_wp_i18n_namespaceObject.__)('Previous');
45135    const arrowMap = {
45136      none: '',
45137      arrow: isNext ? '→' : '←',
45138      chevron: isNext ? '»' : '«'
45139    };
45140    const displayArrow = arrowMap[arrow];
45141    if (showTitle) {
45142      placeholder = isNext ? /* translators: Label before for next and previous post. There is a space after the colon. */
45143      (0,external_wp_i18n_namespaceObject.__)('Next: ') // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
45144      : /* translators: Label before for next and previous post. There is a space after the colon. */
45145      (0,external_wp_i18n_namespaceObject.__)('Previous: '); // eslint-disable-line @wordpress/i18n-no-flanking-whitespace
45146    }
45147    const ariaLabel = isNext ? (0,external_wp_i18n_namespaceObject.__)('Next post') : (0,external_wp_i18n_namespaceObject.__)('Previous post');
45148    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45149      className: dist_clsx({
45150        [`has-text-align-$textAlign}`]: textAlign
45151      })
45152    });
45153    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
45154      const {
45155        getTaxonomies
45156      } = select(external_wp_coreData_namespaceObject.store);
45157      const filteredTaxonomies = getTaxonomies({
45158        type: postType,
45159        per_page: -1
45160      });
45161      return filteredTaxonomies;
45162    }, [postType]);
45163    const getTaxonomyOptions = () => {
45164      const selectOption = {
45165        label: (0,external_wp_i18n_namespaceObject.__)('Unfiltered'),
45166        value: ''
45167      };
45168      const taxonomyOptions = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(({
45169        visibility
45170      }) => !!visibility?.publicly_queryable).map(item => {
45171        return {
45172          value: item.slug,
45173          label: item.name
45174        };
45175      });
45176      return [selectOption, ...taxonomyOptions];
45177    };
45178    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45179      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45180        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
45181          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
45182            __nextHasNoMarginBottom: true,
45183            label: (0,external_wp_i18n_namespaceObject.__)('Display the title as a link'),
45184            help: (0,external_wp_i18n_namespaceObject.__)('If you have entered a custom label, it will be prepended before the title.'),
45185            checked: !!showTitle,
45186            onChange: () => setAttributes({
45187              showTitle: !showTitle
45188            })
45189          }), showTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
45190            __nextHasNoMarginBottom: true,
45191            label: (0,external_wp_i18n_namespaceObject.__)('Include the label as part of the link'),
45192            checked: !!linkLabel,
45193            onChange: () => setAttributes({
45194              linkLabel: !linkLabel
45195            })
45196          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
45197            __next40pxDefaultSize: true,
45198            __nextHasNoMarginBottom: true,
45199            label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
45200            value: arrow,
45201            onChange: value => {
45202              setAttributes({
45203                arrow: value
45204              });
45205            },
45206            help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow for the next and previous link.'),
45207            isBlock: true,
45208            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
45209              value: "none",
45210              label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Next/Previous link')
45211            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
45212              value: "arrow",
45213              label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Next/Previous link')
45214            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
45215              value: "chevron",
45216              label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Next/Previous link')
45217            })]
45218          })]
45219        })
45220      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45221        group: "advanced",
45222        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
45223          __next40pxDefaultSize: true,
45224          __nextHasNoMarginBottom: true,
45225          label: (0,external_wp_i18n_namespaceObject.__)('Filter by taxonomy'),
45226          value: taxonomy,
45227          options: getTaxonomyOptions(),
45228          onChange: value => setAttributes({
45229            taxonomy: value
45230          }),
45231          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.')
45232        })
45233      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
45234        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
45235          value: textAlign,
45236          onChange: nextAlign => {
45237            setAttributes({
45238              textAlign: nextAlign
45239            });
45240          }
45241        })
45242      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
45243        ...blockProps,
45244        children: [!isNext && displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45245          className: `wp-block-post-navigation-link__arrow-previous is-arrow-$arrow}`,
45246          children: displayArrow
45247        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
45248          tagName: "a",
45249          identifier: "label",
45250          "aria-label": ariaLabel,
45251          placeholder: placeholder,
45252          value: label,
45253          withoutInteractiveFormatting: true,
45254          onChange: newLabel => setAttributes({
45255            label: newLabel
45256          })
45257        }), showTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
45258          href: "#post-navigation-pseudo-link",
45259          onClick: event => event.preventDefault(),
45260          children: (0,external_wp_i18n_namespaceObject.__)('An example title')
45261        }), isNext && displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45262          className: `wp-block-post-navigation-link__arrow-next is-arrow-$arrow}`,
45263          "aria-hidden": true,
45264          children: displayArrow
45265        })]
45266      })]
45267    });
45268  }
45269  
45270  ;// ./node_modules/@wordpress/icons/build-module/library/next.js
45271  /**
45272   * WordPress dependencies
45273   */
45274  
45275  
45276  const next = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45277    xmlns: "http://www.w3.org/2000/svg",
45278    viewBox: "0 0 24 24",
45279    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45280      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"
45281    })
45282  });
45283  /* harmony default export */ const library_next = (next);
45284  
45285  ;// ./node_modules/@wordpress/icons/build-module/library/previous.js
45286  /**
45287   * WordPress dependencies
45288   */
45289  
45290  
45291  const previous = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45292    xmlns: "http://www.w3.org/2000/svg",
45293    viewBox: "0 0 24 24",
45294    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45295      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"
45296    })
45297  });
45298  /* harmony default export */ const library_previous = (previous);
45299  
45300  ;// ./node_modules/@wordpress/block-library/build-module/post-navigation-link/variations.js
45301  /**
45302   * WordPress dependencies
45303   */
45304  
45305  
45306  const post_navigation_link_variations_variations = [{
45307    isDefault: true,
45308    name: 'post-next',
45309    title: (0,external_wp_i18n_namespaceObject.__)('Next Post'),
45310    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that follows the current post.'),
45311    icon: library_next,
45312    attributes: {
45313      type: 'next'
45314    },
45315    scope: ['inserter', 'transform'],
45316    example: {
45317      attributes: {
45318        label: (0,external_wp_i18n_namespaceObject.__)('Next post'),
45319        arrow: 'arrow'
45320      }
45321    }
45322  }, {
45323    name: 'post-previous',
45324    title: (0,external_wp_i18n_namespaceObject.__)('Previous Post'),
45325    description: (0,external_wp_i18n_namespaceObject.__)('Displays the post link that precedes the current post.'),
45326    icon: library_previous,
45327    attributes: {
45328      type: 'previous'
45329    },
45330    scope: ['inserter', 'transform'],
45331    example: {
45332      attributes: {
45333        label: (0,external_wp_i18n_namespaceObject.__)('Previous post'),
45334        arrow: 'arrow'
45335      }
45336    }
45337  }];
45338  
45339  /**
45340   * Add `isActive` function to all `post-navigation-link` variations, if not defined.
45341   * `isActive` function is used to find a variation match from a created
45342   *  Block by providing its attributes.
45343   */
45344  post_navigation_link_variations_variations.forEach(variation => {
45345    if (variation.isActive) {
45346      return;
45347    }
45348    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
45349  });
45350  /* harmony default export */ const post_navigation_link_variations = (post_navigation_link_variations_variations);
45351  
45352  ;// ./node_modules/@wordpress/block-library/build-module/post-navigation-link/index.js
45353  /**
45354   * WordPress dependencies
45355   */
45356  
45357  
45358  /**
45359   * Internal dependencies
45360   */
45361  
45362  const post_navigation_link_metadata = {
45363    $schema: "https://schemas.wp.org/trunk/block.json",
45364    apiVersion: 3,
45365    name: "core/post-navigation-link",
45366    title: "Post Navigation Link",
45367    category: "theme",
45368    description: "Displays the next or previous post link that is adjacent to the current post.",
45369    textdomain: "default",
45370    attributes: {
45371      textAlign: {
45372        type: "string"
45373      },
45374      type: {
45375        type: "string",
45376        "default": "next"
45377      },
45378      label: {
45379        type: "string"
45380      },
45381      showTitle: {
45382        type: "boolean",
45383        "default": false
45384      },
45385      linkLabel: {
45386        type: "boolean",
45387        "default": false
45388      },
45389      arrow: {
45390        type: "string",
45391        "default": "none"
45392      },
45393      taxonomy: {
45394        type: "string",
45395        "default": ""
45396      }
45397    },
45398    usesContext: ["postType"],
45399    supports: {
45400      reusable: false,
45401      html: false,
45402      color: {
45403        link: true
45404      },
45405      typography: {
45406        fontSize: true,
45407        lineHeight: true,
45408        __experimentalFontFamily: true,
45409        __experimentalFontWeight: true,
45410        __experimentalFontStyle: true,
45411        __experimentalTextTransform: true,
45412        __experimentalTextDecoration: true,
45413        __experimentalLetterSpacing: true,
45414        __experimentalWritingMode: true,
45415        __experimentalDefaultControls: {
45416          fontSize: true
45417        }
45418      },
45419      interactivity: {
45420        clientNavigation: true
45421      }
45422    },
45423    style: "wp-block-post-navigation-link"
45424  };
45425  
45426  
45427  const {
45428    name: post_navigation_link_name
45429  } = post_navigation_link_metadata;
45430  
45431  const post_navigation_link_settings = {
45432    edit: PostNavigationLinkEdit,
45433    variations: post_navigation_link_variations,
45434    example: {
45435      attributes: {
45436        label: (0,external_wp_i18n_namespaceObject.__)('Next post'),
45437        arrow: 'arrow'
45438      }
45439    }
45440  };
45441  const post_navigation_link_init = () => initBlock({
45442    name: post_navigation_link_name,
45443    metadata: post_navigation_link_metadata,
45444    settings: post_navigation_link_settings
45445  });
45446  
45447  ;// ./node_modules/@wordpress/block-library/build-module/post-template/edit.js
45448  /**
45449   * External dependencies
45450   */
45451  
45452  
45453  /**
45454   * WordPress dependencies
45455   */
45456  
45457  
45458  
45459  
45460  
45461  
45462  
45463  
45464  const post_template_edit_TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];
45465  function PostTemplateInnerBlocks({
45466    classList
45467  }) {
45468    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)({
45469      className: dist_clsx('wp-block-post', classList)
45470    }, {
45471      template: post_template_edit_TEMPLATE,
45472      __unstableDisableLayoutClassNames: true
45473    });
45474    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
45475      ...innerBlocksProps
45476    });
45477  }
45478  function PostTemplateBlockPreview({
45479    blocks,
45480    blockContextId,
45481    classList,
45482    isHidden,
45483    setActiveBlockContextId
45484  }) {
45485    const blockPreviewProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBlockPreview)({
45486      blocks,
45487      props: {
45488        className: dist_clsx('wp-block-post', classList)
45489      }
45490    });
45491    const handleOnClick = () => {
45492      setActiveBlockContextId(blockContextId);
45493    };
45494    const style = {
45495      display: isHidden ? 'none' : undefined
45496    };
45497    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
45498      ...blockPreviewProps,
45499      tabIndex: 0
45500      // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
45501      ,
45502      role: "button",
45503      onClick: handleOnClick,
45504      onKeyPress: handleOnClick,
45505      style: style
45506    });
45507  }
45508  const MemoizedPostTemplateBlockPreview = (0,external_wp_element_namespaceObject.memo)(PostTemplateBlockPreview);
45509  function PostTemplateEdit({
45510    setAttributes,
45511    clientId,
45512    context: {
45513      query: {
45514        perPage,
45515        offset = 0,
45516        postType,
45517        order,
45518        orderBy,
45519        author,
45520        search,
45521        exclude,
45522        sticky,
45523        inherit,
45524        taxQuery,
45525        parents,
45526        pages,
45527        format,
45528        // We gather extra query args to pass to the REST API call.
45529        // This way extenders of Query Loop can add their own query args,
45530        // and have accurate previews in the editor.
45531        // Noting though that these args should either be supported by the
45532        // REST API or be handled by custom REST filters like `rest_{$this->post_type}_query`.
45533        ...restQueryArgs
45534      } = {},
45535      templateSlug,
45536      previewPostType
45537    },
45538    attributes: {
45539      layout
45540    },
45541    __unstableLayoutClassNames
45542  }) {
45543    const {
45544      type: layoutType,
45545      columnCount = 3
45546    } = layout || {};
45547    const [activeBlockContextId, setActiveBlockContextId] = (0,external_wp_element_namespaceObject.useState)();
45548    const {
45549      posts,
45550      blocks
45551    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
45552      const {
45553        getEntityRecords,
45554        getTaxonomies
45555      } = select(external_wp_coreData_namespaceObject.store);
45556      const {
45557        getBlocks
45558      } = select(external_wp_blockEditor_namespaceObject.store);
45559      const templateCategory = inherit && templateSlug?.startsWith('category-') && getEntityRecords('taxonomy', 'category', {
45560        context: 'view',
45561        per_page: 1,
45562        _fields: ['id'],
45563        slug: templateSlug.replace('category-', '')
45564      });
45565      const templateTag = inherit && templateSlug?.startsWith('tag-') && getEntityRecords('taxonomy', 'post_tag', {
45566        context: 'view',
45567        per_page: 1,
45568        _fields: ['id'],
45569        slug: templateSlug.replace('tag-', '')
45570      });
45571      const query = {
45572        offset: offset || 0,
45573        order,
45574        orderby: orderBy
45575      };
45576      // There is no need to build the taxQuery if we inherit.
45577      if (taxQuery && !inherit) {
45578        const taxonomies = getTaxonomies({
45579          type: postType,
45580          per_page: -1,
45581          context: 'view'
45582        });
45583        // We have to build the tax query for the REST API and use as
45584        // keys the taxonomies `rest_base` with the `term ids` as values.
45585        const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, [taxonomySlug, terms]) => {
45586          const taxonomy = taxonomies?.find(({
45587            slug
45588          }) => slug === taxonomySlug);
45589          if (taxonomy?.rest_base) {
45590            accumulator[taxonomy?.rest_base] = terms;
45591          }
45592          return accumulator;
45593        }, {});
45594        if (!!Object.keys(builtTaxQuery).length) {
45595          Object.assign(query, builtTaxQuery);
45596        }
45597      }
45598      if (perPage) {
45599        query.per_page = perPage;
45600      }
45601      if (author) {
45602        query.author = author;
45603      }
45604      if (search) {
45605        query.search = search;
45606      }
45607      if (exclude?.length) {
45608        query.exclude = exclude;
45609      }
45610      if (parents?.length) {
45611        query.parent = parents;
45612      }
45613      if (format?.length) {
45614        query.format = format;
45615      }
45616  
45617      /*
45618       * Handle cases where sticky is set to `exclude` or `only`.
45619       * Which works as a `post__in/post__not_in` query for sticky posts.
45620       */
45621      if (['exclude', 'only'].includes(sticky)) {
45622        query.sticky = sticky === 'only';
45623      }
45624  
45625      // Empty string represents the default behavior of including sticky posts.
45626      if (['', 'ignore'].includes(sticky)) {
45627        // Remove any leftover sticky query parameter.
45628        delete query.sticky;
45629        query.ignore_sticky = sticky === 'ignore';
45630      }
45631  
45632      // If `inherit` is truthy, adjust conditionally the query to create a better preview.
45633      let currentPostType = postType;
45634      if (inherit) {
45635        // Change the post-type if needed.
45636        if (templateSlug?.startsWith('archive-')) {
45637          query.postType = templateSlug.replace('archive-', '');
45638          currentPostType = query.postType;
45639        } else if (templateCategory) {
45640          query.categories = templateCategory[0]?.id;
45641        } else if (templateTag) {
45642          query.tags = templateTag[0]?.id;
45643        } else if (templateSlug?.startsWith('taxonomy-post_format')) {
45644          // Get the post format slug from the template slug by removing the prefix.
45645          query.format = templateSlug.replace('taxonomy-post_format-post-format-', '');
45646        }
45647      }
45648      // When we preview Query Loop blocks we should prefer the current
45649      // block's postType, which is passed through block context.
45650      const usedPostType = previewPostType || currentPostType;
45651      return {
45652        posts: getEntityRecords('postType', usedPostType, {
45653          ...query,
45654          ...restQueryArgs
45655        }),
45656        blocks: getBlocks(clientId)
45657      };
45658    }, [perPage, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery, parents, format, restQueryArgs, previewPostType]);
45659    const blockContexts = (0,external_wp_element_namespaceObject.useMemo)(() => posts?.map(post => {
45660      var _post$class_list;
45661      return {
45662        postType: post.type,
45663        postId: post.id,
45664        classList: (_post$class_list = post.class_list) !== null && _post$class_list !== void 0 ? _post$class_list : ''
45665      };
45666    }), [posts]);
45667    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45668      className: dist_clsx(__unstableLayoutClassNames, {
45669        [`columns-$columnCount}`]: layoutType === 'grid' && columnCount // Ensure column count is flagged via classname for backwards compatibility.
45670      })
45671    });
45672    if (!posts) {
45673      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
45674        ...blockProps,
45675        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
45676      });
45677    }
45678    if (!posts.length) {
45679      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
45680        ...blockProps,
45681        children: [" ", (0,external_wp_i18n_namespaceObject.__)('No results found.')]
45682      });
45683    }
45684    const setDisplayLayout = newDisplayLayout => setAttributes({
45685      layout: {
45686        ...layout,
45687        ...newDisplayLayout
45688      }
45689    });
45690    const displayLayoutControls = [{
45691      icon: library_list,
45692      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'Post template block display setting'),
45693      onClick: () => setDisplayLayout({
45694        type: 'default'
45695      }),
45696      isActive: layoutType === 'default' || layoutType === 'constrained'
45697    }, {
45698      icon: library_grid,
45699      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'Post template block display setting'),
45700      onClick: () => setDisplayLayout({
45701        type: 'grid',
45702        columnCount
45703      }),
45704      isActive: layoutType === 'grid'
45705    }];
45706  
45707    // To avoid flicker when switching active block contexts, a preview is rendered
45708    // for each block context, but the preview for the active block context is hidden.
45709    // This ensures that when it is displayed again, the cached rendering of the
45710    // block preview is used, instead of having to re-render the preview from scratch.
45711    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45712      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
45713        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
45714          controls: displayLayoutControls
45715        })
45716      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
45717        ...blockProps,
45718        children: blockContexts && blockContexts.map(blockContext => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
45719          value: blockContext,
45720          children: [blockContext.postId === (activeBlockContextId || blockContexts[0]?.postId) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTemplateInnerBlocks, {
45721            classList: blockContext.classList
45722          }) : null, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MemoizedPostTemplateBlockPreview, {
45723            blocks: blocks,
45724            blockContextId: blockContext.postId,
45725            classList: blockContext.classList,
45726            setActiveBlockContextId: setActiveBlockContextId,
45727            isHidden: blockContext.postId === (activeBlockContextId || blockContexts[0]?.postId)
45728          })]
45729        }, blockContext.postId))
45730      })]
45731    });
45732  }
45733  
45734  ;// ./node_modules/@wordpress/block-library/build-module/post-template/save.js
45735  /**
45736   * WordPress dependencies
45737   */
45738  
45739  
45740  function PostTemplateSave() {
45741    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
45742  }
45743  
45744  ;// ./node_modules/@wordpress/block-library/build-module/post-template/index.js
45745  /**
45746   * WordPress dependencies
45747   */
45748  
45749  
45750  /**
45751   * Internal dependencies
45752   */
45753  
45754  const post_template_metadata = {
45755    $schema: "https://schemas.wp.org/trunk/block.json",
45756    apiVersion: 3,
45757    name: "core/post-template",
45758    title: "Post Template",
45759    category: "theme",
45760    ancestor: ["core/query"],
45761    description: "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.",
45762    textdomain: "default",
45763    usesContext: ["queryId", "query", "displayLayout", "templateSlug", "previewPostType", "enhancedPagination", "postType"],
45764    supports: {
45765      reusable: false,
45766      html: false,
45767      align: ["wide", "full"],
45768      layout: true,
45769      color: {
45770        gradients: true,
45771        link: true,
45772        __experimentalDefaultControls: {
45773          background: true,
45774          text: true
45775        }
45776      },
45777      typography: {
45778        fontSize: true,
45779        lineHeight: true,
45780        __experimentalFontFamily: true,
45781        __experimentalFontWeight: true,
45782        __experimentalFontStyle: true,
45783        __experimentalTextTransform: true,
45784        __experimentalTextDecoration: true,
45785        __experimentalLetterSpacing: true,
45786        __experimentalDefaultControls: {
45787          fontSize: true
45788        }
45789      },
45790      spacing: {
45791        margin: true,
45792        padding: true,
45793        blockGap: {
45794          __experimentalDefault: "1.25em"
45795        },
45796        __experimentalDefaultControls: {
45797          blockGap: true,
45798          padding: false,
45799          margin: false
45800        }
45801      },
45802      interactivity: {
45803        clientNavigation: true
45804      },
45805      __experimentalBorder: {
45806        radius: true,
45807        color: true,
45808        width: true,
45809        style: true
45810      }
45811    },
45812    style: "wp-block-post-template",
45813    editorStyle: "wp-block-post-template-editor"
45814  };
45815  
45816  
45817  const {
45818    name: post_template_name
45819  } = post_template_metadata;
45820  
45821  const post_template_settings = {
45822    icon: library_layout,
45823    edit: PostTemplateEdit,
45824    save: PostTemplateSave
45825  };
45826  const post_template_init = () => initBlock({
45827    name: post_template_name,
45828    metadata: post_template_metadata,
45829    settings: post_template_settings
45830  });
45831  
45832  ;// ./node_modules/@wordpress/icons/build-module/library/post-categories.js
45833  /**
45834   * WordPress dependencies
45835   */
45836  
45837  
45838  const postCategories = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
45839    viewBox: "0 0 24 24",
45840    xmlns: "http://www.w3.org/2000/svg",
45841    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
45842      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",
45843      fillRule: "evenodd",
45844      clipRule: "evenodd"
45845    })
45846  });
45847  /* harmony default export */ const post_categories = (postCategories);
45848  
45849  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/use-post-terms.js
45850  /**
45851   * WordPress dependencies
45852   */
45853  
45854  
45855  const use_post_terms_EMPTY_ARRAY = [];
45856  function usePostTerms({
45857    postId,
45858    term
45859  }) {
45860    const {
45861      slug
45862    } = term;
45863    return (0,external_wp_data_namespaceObject.useSelect)(select => {
45864      const visible = term?.visibility?.publicly_queryable;
45865      if (!visible) {
45866        return {
45867          postTerms: use_post_terms_EMPTY_ARRAY,
45868          isLoading: false,
45869          hasPostTerms: false
45870        };
45871      }
45872      const {
45873        getEntityRecords,
45874        isResolving
45875      } = select(external_wp_coreData_namespaceObject.store);
45876      const taxonomyArgs = ['taxonomy', slug, {
45877        post: postId,
45878        per_page: -1,
45879        context: 'view'
45880      }];
45881      const terms = getEntityRecords(...taxonomyArgs);
45882      return {
45883        postTerms: terms,
45884        isLoading: isResolving('getEntityRecords', taxonomyArgs),
45885        hasPostTerms: !!terms?.length
45886      };
45887    }, [postId, term?.visibility?.publicly_queryable, slug]);
45888  }
45889  
45890  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/edit.js
45891  /**
45892   * External dependencies
45893   */
45894  
45895  
45896  /**
45897   * WordPress dependencies
45898   */
45899  
45900  
45901  
45902  
45903  
45904  
45905  
45906  
45907  /**
45908   * Internal dependencies
45909   */
45910  
45911  
45912  // Allowed formats for the prefix and suffix fields.
45913  
45914  const ALLOWED_FORMATS = ['core/bold', 'core/image', 'core/italic', 'core/link', 'core/strikethrough', 'core/text-color'];
45915  function PostTermsEdit({
45916    attributes,
45917    clientId,
45918    context,
45919    isSelected,
45920    setAttributes,
45921    insertBlocksAfter
45922  }) {
45923    const {
45924      term,
45925      textAlign,
45926      separator,
45927      prefix,
45928      suffix
45929    } = attributes;
45930    const {
45931      postId,
45932      postType
45933    } = context;
45934    const selectedTerm = (0,external_wp_data_namespaceObject.useSelect)(select => {
45935      if (!term) {
45936        return {};
45937      }
45938      const {
45939        getTaxonomy
45940      } = select(external_wp_coreData_namespaceObject.store);
45941      const taxonomy = getTaxonomy(term);
45942      return taxonomy?.visibility?.publicly_queryable ? taxonomy : {};
45943    }, [term]);
45944    const {
45945      postTerms,
45946      hasPostTerms,
45947      isLoading
45948    } = usePostTerms({
45949      postId,
45950      term: selectedTerm
45951    });
45952    const hasPost = postId && postType;
45953    const blockInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(clientId);
45954    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
45955      className: dist_clsx({
45956        [`has-text-align-$textAlign}`]: textAlign,
45957        [`taxonomy-$term}`]: term
45958      })
45959    });
45960    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
45961      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
45962        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
45963          value: textAlign,
45964          onChange: nextAlign => {
45965            setAttributes({
45966              textAlign: nextAlign
45967            });
45968          }
45969        })
45970      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
45971        group: "advanced",
45972        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
45973          __next40pxDefaultSize: true,
45974          __nextHasNoMarginBottom: true,
45975          autoComplete: "off",
45976          label: (0,external_wp_i18n_namespaceObject.__)('Separator'),
45977          value: separator || '',
45978          onChange: nextValue => {
45979            setAttributes({
45980              separator: nextValue
45981            });
45982          },
45983          help: (0,external_wp_i18n_namespaceObject.__)('Enter character(s) used to separate terms.')
45984        })
45985      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
45986        ...blockProps,
45987        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, {
45988          identifier: "prefix",
45989          allowedFormats: ALLOWED_FORMATS,
45990          className: "wp-block-post-terms__prefix",
45991          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Prefix'),
45992          placeholder: (0,external_wp_i18n_namespaceObject.__)('Prefix') + ' ',
45993          value: prefix,
45994          onChange: value => setAttributes({
45995            prefix: value
45996          }),
45997          tagName: "span"
45998        }), (!hasPost || !term) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
45999          children: blockInformation.title
46000        }), hasPost && !isLoading && hasPostTerms && postTerms.map(postTerm => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
46001          href: postTerm.link,
46002          onClick: event => event.preventDefault(),
46003          rel: "tag",
46004          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postTerm.name)
46005        }, postTerm.id)).reduce((prev, curr) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46006          children: [prev, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
46007            className: "wp-block-post-terms__separator",
46008            children: separator || ' '
46009          }), curr]
46010        })), 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, {
46011          identifier: "suffix",
46012          allowedFormats: ALLOWED_FORMATS,
46013          className: "wp-block-post-terms__suffix",
46014          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Suffix'),
46015          placeholder: ' ' + (0,external_wp_i18n_namespaceObject.__)('Suffix'),
46016          value: suffix,
46017          onChange: value => setAttributes({
46018            suffix: value
46019          }),
46020          tagName: "span",
46021          __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
46022        })]
46023      })]
46024    });
46025  }
46026  
46027  ;// ./node_modules/@wordpress/icons/build-module/library/post-terms.js
46028  /**
46029   * WordPress dependencies
46030   */
46031  
46032  
46033  const postTerms = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46034    viewBox: "0 0 24 24",
46035    xmlns: "http://www.w3.org/2000/svg",
46036    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46037      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"
46038    })
46039  });
46040  /* harmony default export */ const post_terms = (postTerms);
46041  
46042  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/hooks.js
46043  /**
46044   * WordPress dependencies
46045   */
46046  
46047  const variationIconMap = {
46048    category: post_categories,
46049    post_tag: post_terms
46050  };
46051  
46052  // We add `icons` to categories and tags. The remaining ones use
46053  // the block's default icon.
46054  function enhanceVariations(settings, name) {
46055    if (name !== 'core/post-terms') {
46056      return settings;
46057    }
46058    const variations = settings.variations.map(variation => {
46059      var _variationIconMap$var;
46060      return {
46061        ...variation,
46062        ...{
46063          icon: (_variationIconMap$var = variationIconMap[variation.name]) !== null && _variationIconMap$var !== void 0 ? _variationIconMap$var : post_categories
46064        }
46065      };
46066    });
46067    return {
46068      ...settings,
46069      variations
46070    };
46071  }
46072  
46073  ;// ./node_modules/@wordpress/block-library/build-module/post-terms/index.js
46074  /**
46075   * WordPress dependencies
46076   */
46077  
46078  
46079  
46080  /**
46081   * Internal dependencies
46082   */
46083  
46084  const post_terms_metadata = {
46085    $schema: "https://schemas.wp.org/trunk/block.json",
46086    apiVersion: 3,
46087    name: "core/post-terms",
46088    title: "Post Terms",
46089    category: "theme",
46090    description: "Post terms.",
46091    textdomain: "default",
46092    attributes: {
46093      term: {
46094        type: "string"
46095      },
46096      textAlign: {
46097        type: "string"
46098      },
46099      separator: {
46100        type: "string",
46101        "default": ", "
46102      },
46103      prefix: {
46104        type: "string",
46105        "default": ""
46106      },
46107      suffix: {
46108        type: "string",
46109        "default": ""
46110      }
46111    },
46112    usesContext: ["postId", "postType"],
46113    example: {
46114      viewportWidth: 350
46115    },
46116    supports: {
46117      html: false,
46118      color: {
46119        gradients: true,
46120        link: true,
46121        __experimentalDefaultControls: {
46122          background: true,
46123          text: true,
46124          link: true
46125        }
46126      },
46127      spacing: {
46128        margin: true,
46129        padding: true
46130      },
46131      typography: {
46132        fontSize: true,
46133        lineHeight: true,
46134        __experimentalFontFamily: true,
46135        __experimentalFontWeight: true,
46136        __experimentalFontStyle: true,
46137        __experimentalTextTransform: true,
46138        __experimentalTextDecoration: true,
46139        __experimentalLetterSpacing: true,
46140        __experimentalDefaultControls: {
46141          fontSize: true
46142        }
46143      },
46144      interactivity: {
46145        clientNavigation: true
46146      },
46147      __experimentalBorder: {
46148        radius: true,
46149        color: true,
46150        width: true,
46151        style: true,
46152        __experimentalDefaultControls: {
46153          radius: true,
46154          color: true,
46155          width: true,
46156          style: true
46157        }
46158      }
46159    },
46160    style: "wp-block-post-terms"
46161  };
46162  
46163  
46164  const {
46165    name: post_terms_name
46166  } = post_terms_metadata;
46167  
46168  const post_terms_settings = {
46169    icon: post_categories,
46170    edit: PostTermsEdit
46171  };
46172  const post_terms_init = () => {
46173    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceVariations);
46174    return initBlock({
46175      name: post_terms_name,
46176      metadata: post_terms_metadata,
46177      settings: post_terms_settings
46178    });
46179  };
46180  
46181  ;// external ["wp","wordcount"]
46182  const external_wp_wordcount_namespaceObject = window["wp"]["wordcount"];
46183  ;// ./node_modules/@wordpress/block-library/build-module/post-time-to-read/edit.js
46184  /**
46185   * External dependencies
46186   */
46187  
46188  
46189  /**
46190   * WordPress dependencies
46191   */
46192  
46193  
46194  
46195  
46196  
46197  
46198  
46199  /**
46200   * Average reading rate - based on average taken from
46201   * https://irisreading.com/average-reading-speed-in-various-languages/
46202   * (Characters/minute used for Chinese rather than words).
46203   */
46204  
46205  const AVERAGE_READING_RATE = 189;
46206  function PostTimeToReadEdit({
46207    attributes,
46208    setAttributes,
46209    context
46210  }) {
46211    const {
46212      textAlign
46213    } = attributes;
46214    const {
46215      postId,
46216      postType
46217    } = context;
46218    const [contentStructure] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'content', postId);
46219    const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
46220      id: postId
46221    });
46222    const minutesToReadString = (0,external_wp_element_namespaceObject.useMemo)(() => {
46223      // Replicates the logic found in getEditedPostContent().
46224      let content;
46225      if (contentStructure instanceof Function) {
46226        content = contentStructure({
46227          blocks
46228        });
46229      } else if (blocks) {
46230        // If we have parsed blocks already, they should be our source of truth.
46231        // Parsing applies block deprecations and legacy block conversions that
46232        // unparsed content will not have.
46233        content = (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocks);
46234      } else {
46235        content = contentStructure;
46236      }
46237  
46238      /*
46239       * translators: If your word count is based on single characters (e.g. East Asian characters),
46240       * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
46241       * Do not translate into your own language.
46242       */
46243      const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
46244      const minutesToRead = Math.max(1, Math.round((0,external_wp_wordcount_namespaceObject.count)(content || '', wordCountType) / AVERAGE_READING_RATE));
46245      return (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: the number of minutes to read the post. */
46246      (0,external_wp_i18n_namespaceObject._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
46247    }, [contentStructure, blocks]);
46248    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46249      className: dist_clsx({
46250        [`has-text-align-$textAlign}`]: textAlign
46251      })
46252    });
46253    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46254      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
46255        group: "block",
46256        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
46257          value: textAlign,
46258          onChange: nextAlign => {
46259            setAttributes({
46260              textAlign: nextAlign
46261            });
46262          }
46263        })
46264      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
46265        ...blockProps,
46266        children: minutesToReadString
46267      })]
46268    });
46269  }
46270  /* harmony default export */ const post_time_to_read_edit = (PostTimeToReadEdit);
46271  
46272  ;// ./node_modules/@wordpress/block-library/build-module/post-time-to-read/icon.js
46273  /**
46274   * WordPress dependencies
46275   */
46276  
46277  
46278  /* harmony default export */ const icon = (/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
46279    xmlns: "http://www.w3.org/2000/svg",
46280    width: "24",
46281    height: "24",
46282    viewBox: "0 0 24 24",
46283    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
46284      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"
46285    })
46286  }));
46287  
46288  ;// ./node_modules/@wordpress/block-library/build-module/post-time-to-read/index.js
46289  /**
46290   * Internal dependencies
46291   */
46292  
46293  const post_time_to_read_metadata = {
46294    $schema: "https://schemas.wp.org/trunk/block.json",
46295    apiVersion: 3,
46296    __experimental: true,
46297    name: "core/post-time-to-read",
46298    title: "Time to Read",
46299    category: "theme",
46300    description: "Show minutes required to finish reading the post.",
46301    textdomain: "default",
46302    usesContext: ["postId", "postType"],
46303    attributes: {
46304      textAlign: {
46305        type: "string"
46306      }
46307    },
46308    supports: {
46309      color: {
46310        gradients: true,
46311        __experimentalDefaultControls: {
46312          background: true,
46313          text: true
46314        }
46315      },
46316      html: false,
46317      spacing: {
46318        margin: true,
46319        padding: true,
46320        __experimentalDefaultControls: {
46321          margin: false,
46322          padding: false
46323        }
46324      },
46325      typography: {
46326        fontSize: true,
46327        lineHeight: true,
46328        __experimentalFontFamily: true,
46329        __experimentalFontWeight: true,
46330        __experimentalFontStyle: true,
46331        __experimentalTextTransform: true,
46332        __experimentalTextDecoration: true,
46333        __experimentalLetterSpacing: true,
46334        __experimentalDefaultControls: {
46335          fontSize: true
46336        }
46337      },
46338      interactivity: {
46339        clientNavigation: true
46340      },
46341      __experimentalBorder: {
46342        radius: true,
46343        color: true,
46344        width: true,
46345        style: true
46346      }
46347    }
46348  };
46349  
46350  
46351  const {
46352    name: post_time_to_read_name
46353  } = post_time_to_read_metadata;
46354  
46355  const post_time_to_read_settings = {
46356    icon: icon,
46357    edit: post_time_to_read_edit,
46358    example: {}
46359  };
46360  const post_time_to_read_init = () => initBlock({
46361    name: post_time_to_read_name,
46362    metadata: post_time_to_read_metadata,
46363    settings: post_time_to_read_settings
46364  });
46365  
46366  ;// ./node_modules/@wordpress/block-library/build-module/post-title/edit.js
46367  /**
46368   * External dependencies
46369   */
46370  
46371  
46372  /**
46373   * WordPress dependencies
46374   */
46375  
46376  
46377  
46378  
46379  
46380  
46381  
46382  function PostTitleEdit({
46383    attributes: {
46384      level,
46385      levelOptions,
46386      textAlign,
46387      isLink,
46388      rel,
46389      linkTarget
46390    },
46391    setAttributes,
46392    context: {
46393      postType,
46394      postId,
46395      queryId
46396    },
46397    insertBlocksAfter
46398  }) {
46399    const TagName = level === 0 ? 'p' : `h$level}`;
46400    const isDescendentOfQueryLoop = Number.isFinite(queryId);
46401    const userCanEdit = (0,external_wp_data_namespaceObject.useSelect)(select => {
46402      /**
46403       * useCanEditEntity may trigger an OPTIONS request to the REST API
46404       * via the canUser resolver. However, when the Post Title is a
46405       * descendant of a Query Loop block, the title cannot be edited. In
46406       * order to avoid these unnecessary requests, we call the hook
46407       * without the proper data, resulting in returning early without
46408       * making them.
46409       */
46410      if (isDescendentOfQueryLoop) {
46411        return false;
46412      }
46413      return select(external_wp_coreData_namespaceObject.store).canUser('update', {
46414        kind: 'postType',
46415        name: postType,
46416        id: postId
46417      });
46418    }, [isDescendentOfQueryLoop, postType, postId]);
46419    const [rawTitle = '', setTitle, fullTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'title', postId);
46420    const [link] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'link', postId);
46421    const onSplitAtEnd = () => {
46422      insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()));
46423    };
46424    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46425      className: dist_clsx({
46426        [`has-text-align-$textAlign}`]: textAlign
46427      })
46428    });
46429    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
46430    let titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46431      ...blockProps,
46432      children: (0,external_wp_i18n_namespaceObject.__)('Title')
46433    });
46434    if (postType && postId) {
46435      titleElement = userCanEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
46436        tagName: TagName,
46437        placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
46438        value: rawTitle,
46439        onChange: setTitle,
46440        __experimentalVersion: 2,
46441        __unstableOnSplitAtEnd: onSplitAtEnd,
46442        ...blockProps
46443      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46444        ...blockProps,
46445        dangerouslySetInnerHTML: {
46446          __html: fullTitle?.rendered
46447        }
46448      });
46449    }
46450    if (isLink && postType && postId) {
46451      titleElement = userCanEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46452        ...blockProps,
46453        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
46454          tagName: "a",
46455          href: link,
46456          target: linkTarget,
46457          rel: rel,
46458          placeholder: !rawTitle.length ? (0,external_wp_i18n_namespaceObject.__)('No title') : null,
46459          value: rawTitle,
46460          onChange: setTitle,
46461          __experimentalVersion: 2,
46462          __unstableOnSplitAtEnd: onSplitAtEnd
46463        })
46464      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
46465        ...blockProps,
46466        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
46467          href: link,
46468          target: linkTarget,
46469          rel: rel,
46470          onClick: event => event.preventDefault(),
46471          dangerouslySetInnerHTML: {
46472            __html: fullTitle?.rendered
46473          }
46474        })
46475      });
46476    }
46477    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46478      children: [blockEditingMode === 'default' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46479        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
46480          group: "block",
46481          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
46482            value: level,
46483            options: levelOptions,
46484            onChange: newLevel => setAttributes({
46485              level: newLevel
46486            })
46487          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
46488            value: textAlign,
46489            onChange: nextAlign => {
46490              setAttributes({
46491                textAlign: nextAlign
46492              });
46493            }
46494          })]
46495        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
46496          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
46497            title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
46498            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
46499              __nextHasNoMarginBottom: true,
46500              label: (0,external_wp_i18n_namespaceObject.__)('Make title a link'),
46501              onChange: () => setAttributes({
46502                isLink: !isLink
46503              }),
46504              checked: isLink
46505            }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
46506              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
46507                __nextHasNoMarginBottom: true,
46508                label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
46509                onChange: value => setAttributes({
46510                  linkTarget: value ? '_blank' : '_self'
46511                }),
46512                checked: linkTarget === '_blank'
46513              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
46514                __next40pxDefaultSize: true,
46515                __nextHasNoMarginBottom: true,
46516                label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
46517                value: rel,
46518                onChange: newRel => setAttributes({
46519                  rel: newRel
46520                })
46521              })]
46522            })]
46523          })
46524        })]
46525      }), titleElement]
46526    });
46527  }
46528  
46529  ;// ./node_modules/@wordpress/block-library/build-module/post-title/deprecated.js
46530  /**
46531   * Internal dependencies
46532   */
46533  
46534  const post_title_deprecated_v1 = {
46535    attributes: {
46536      textAlign: {
46537        type: 'string'
46538      },
46539      level: {
46540        type: 'number',
46541        default: 2
46542      },
46543      isLink: {
46544        type: 'boolean',
46545        default: false
46546      },
46547      rel: {
46548        type: 'string',
46549        attribute: 'rel',
46550        default: ''
46551      },
46552      linkTarget: {
46553        type: 'string',
46554        default: '_self'
46555      }
46556    },
46557    supports: {
46558      align: ['wide', 'full'],
46559      html: false,
46560      color: {
46561        gradients: true,
46562        link: true
46563      },
46564      spacing: {
46565        margin: true
46566      },
46567      typography: {
46568        fontSize: true,
46569        lineHeight: true,
46570        __experimentalFontFamily: true,
46571        __experimentalFontWeight: true,
46572        __experimentalFontStyle: true,
46573        __experimentalTextTransform: true
46574      }
46575    },
46576    save() {
46577      return null;
46578    },
46579    migrate: migrate_font_family,
46580    isEligible({
46581      style
46582    }) {
46583      return style?.typography?.fontFamily;
46584    }
46585  };
46586  
46587  /**
46588   * New deprecations need to be placed first
46589   * for them to have higher priority.
46590   *
46591   * Old deprecations may need to be updated as well.
46592   *
46593   * See block-deprecation.md
46594   */
46595  /* harmony default export */ const post_title_deprecated = ([post_title_deprecated_v1]);
46596  
46597  ;// ./node_modules/@wordpress/block-library/build-module/post-title/index.js
46598  /**
46599   * WordPress dependencies
46600   */
46601  
46602  
46603  /**
46604   * Internal dependencies
46605   */
46606  
46607  const post_title_metadata = {
46608    $schema: "https://schemas.wp.org/trunk/block.json",
46609    apiVersion: 3,
46610    name: "core/post-title",
46611    title: "Title",
46612    category: "theme",
46613    description: "Displays the title of a post, page, or any other content-type.",
46614    textdomain: "default",
46615    usesContext: ["postId", "postType", "queryId"],
46616    attributes: {
46617      textAlign: {
46618        type: "string"
46619      },
46620      level: {
46621        type: "number",
46622        "default": 2
46623      },
46624      levelOptions: {
46625        type: "array"
46626      },
46627      isLink: {
46628        type: "boolean",
46629        "default": false,
46630        role: "content"
46631      },
46632      rel: {
46633        type: "string",
46634        attribute: "rel",
46635        "default": "",
46636        role: "content"
46637      },
46638      linkTarget: {
46639        type: "string",
46640        "default": "_self",
46641        role: "content"
46642      }
46643    },
46644    example: {
46645      viewportWidth: 350
46646    },
46647    supports: {
46648      align: ["wide", "full"],
46649      html: false,
46650      color: {
46651        gradients: true,
46652        link: true,
46653        __experimentalDefaultControls: {
46654          background: true,
46655          text: true,
46656          link: true
46657        }
46658      },
46659      spacing: {
46660        margin: true,
46661        padding: true
46662      },
46663      typography: {
46664        fontSize: true,
46665        lineHeight: true,
46666        __experimentalFontFamily: true,
46667        __experimentalFontWeight: true,
46668        __experimentalFontStyle: true,
46669        __experimentalTextTransform: true,
46670        __experimentalTextDecoration: true,
46671        __experimentalLetterSpacing: true,
46672        __experimentalDefaultControls: {
46673          fontSize: true
46674        }
46675      },
46676      interactivity: {
46677        clientNavigation: true
46678      },
46679      __experimentalBorder: {
46680        radius: true,
46681        color: true,
46682        width: true,
46683        style: true,
46684        __experimentalDefaultControls: {
46685          radius: true,
46686          color: true,
46687          width: true,
46688          style: true
46689        }
46690      }
46691    },
46692    style: "wp-block-post-title"
46693  };
46694  
46695  
46696  const {
46697    name: post_title_name
46698  } = post_title_metadata;
46699  
46700  const post_title_settings = {
46701    icon: library_title,
46702    edit: PostTitleEdit,
46703    deprecated: post_title_deprecated
46704  };
46705  const post_title_init = () => initBlock({
46706    name: post_title_name,
46707    metadata: post_title_metadata,
46708    settings: post_title_settings
46709  });
46710  
46711  ;// ./node_modules/@wordpress/icons/build-module/library/preformatted.js
46712  /**
46713   * WordPress dependencies
46714   */
46715  
46716  
46717  const preformatted = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46718    viewBox: "0 0 24 24",
46719    xmlns: "http://www.w3.org/2000/svg",
46720    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46721      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"
46722    })
46723  });
46724  /* harmony default export */ const library_preformatted = (preformatted);
46725  
46726  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js
46727  /**
46728   * WordPress dependencies
46729   */
46730  
46731  
46732  
46733  
46734  function PreformattedEdit({
46735    attributes,
46736    mergeBlocks,
46737    setAttributes,
46738    onRemove,
46739    insertBlocksAfter,
46740    style
46741  }) {
46742    const {
46743      content
46744    } = attributes;
46745    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
46746      style
46747    });
46748    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
46749      tagName: "pre",
46750      identifier: "content",
46751      preserveWhiteSpace: true,
46752      value: content,
46753      onChange: nextContent => {
46754        setAttributes({
46755          content: nextContent
46756        });
46757      },
46758      onRemove: onRemove,
46759      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preformatted text'),
46760      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write preformatted text…'),
46761      onMerge: mergeBlocks,
46762      ...blockProps,
46763      __unstablePastePlainText: true,
46764      __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
46765    });
46766  }
46767  
46768  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/save.js
46769  /**
46770   * WordPress dependencies
46771   */
46772  
46773  
46774  function preformatted_save_save({
46775    attributes
46776  }) {
46777    const {
46778      content
46779    } = attributes;
46780    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
46781      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
46782      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
46783        value: content
46784      })
46785    });
46786  }
46787  
46788  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js
46789  /**
46790   * WordPress dependencies
46791   */
46792  
46793  const preformatted_transforms_transforms = {
46794    from: [{
46795      type: 'block',
46796      blocks: ['core/code', 'core/paragraph'],
46797      transform: ({
46798        content,
46799        anchor
46800      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/preformatted', {
46801        content,
46802        anchor
46803      })
46804    }, {
46805      type: 'raw',
46806      isMatch: node => node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE'),
46807      schema: ({
46808        phrasingContentSchema
46809      }) => ({
46810        pre: {
46811          children: phrasingContentSchema
46812        }
46813      })
46814    }],
46815    to: [{
46816      type: 'block',
46817      blocks: ['core/paragraph'],
46818      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
46819    }, {
46820      type: 'block',
46821      blocks: ['core/code'],
46822      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/code', attributes)
46823    }]
46824  };
46825  /* harmony default export */ const preformatted_transforms = (preformatted_transforms_transforms);
46826  
46827  ;// ./node_modules/@wordpress/block-library/build-module/preformatted/index.js
46828  /**
46829   * WordPress dependencies
46830   */
46831  
46832  
46833  
46834  /**
46835   * Internal dependencies
46836   */
46837  
46838  
46839  const preformatted_metadata = {
46840    $schema: "https://schemas.wp.org/trunk/block.json",
46841    apiVersion: 3,
46842    name: "core/preformatted",
46843    title: "Preformatted",
46844    category: "text",
46845    description: "Add text that respects your spacing and tabs, and also allows styling.",
46846    textdomain: "default",
46847    attributes: {
46848      content: {
46849        type: "rich-text",
46850        source: "rich-text",
46851        selector: "pre",
46852        __unstablePreserveWhiteSpace: true,
46853        role: "content"
46854      }
46855    },
46856    supports: {
46857      anchor: true,
46858      color: {
46859        gradients: true,
46860        __experimentalDefaultControls: {
46861          background: true,
46862          text: true
46863        }
46864      },
46865      spacing: {
46866        padding: true,
46867        margin: true
46868      },
46869      typography: {
46870        fontSize: true,
46871        lineHeight: true,
46872        __experimentalFontFamily: true,
46873        __experimentalFontWeight: true,
46874        __experimentalFontStyle: true,
46875        __experimentalTextTransform: true,
46876        __experimentalTextDecoration: true,
46877        __experimentalLetterSpacing: true,
46878        __experimentalDefaultControls: {
46879          fontSize: true
46880        }
46881      },
46882      interactivity: {
46883        clientNavigation: true
46884      },
46885      __experimentalBorder: {
46886        radius: true,
46887        color: true,
46888        width: true,
46889        style: true,
46890        __experimentalDefaultControls: {
46891          radius: true,
46892          color: true,
46893          width: true,
46894          style: true
46895        }
46896      }
46897    },
46898    style: "wp-block-preformatted"
46899  };
46900  
46901  
46902  const {
46903    name: preformatted_name
46904  } = preformatted_metadata;
46905  
46906  const preformatted_settings = {
46907    icon: library_preformatted,
46908    example: {
46909      attributes: {
46910        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
46911        // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.
46912        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;')
46913        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
46914      }
46915    },
46916    transforms: preformatted_transforms,
46917    edit: PreformattedEdit,
46918    save: preformatted_save_save,
46919    merge(attributes, attributesToMerge) {
46920      return {
46921        content: attributes.content + '\n\n' + attributesToMerge.content
46922      };
46923    }
46924  };
46925  const preformatted_init = () => initBlock({
46926    name: preformatted_name,
46927    metadata: preformatted_metadata,
46928    settings: preformatted_settings
46929  });
46930  
46931  ;// ./node_modules/@wordpress/icons/build-module/library/pullquote.js
46932  /**
46933   * WordPress dependencies
46934   */
46935  
46936  
46937  const pullquote = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
46938    viewBox: "0 0 24 24",
46939    xmlns: "http://www.w3.org/2000/svg",
46940    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
46941      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"
46942    })
46943  });
46944  /* harmony default export */ const library_pullquote = (pullquote);
46945  
46946  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js
46947  const SOLID_COLOR_CLASS = `is-style-solid-color`;
46948  
46949  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js
46950  /**
46951   * External dependencies
46952   */
46953  
46954  
46955  /**
46956   * WordPress dependencies
46957   */
46958  
46959  
46960  
46961  /**
46962   * Internal dependencies
46963   */
46964  
46965  
46966  const pullquote_deprecated_blockAttributes = {
46967    value: {
46968      type: 'string',
46969      source: 'html',
46970      selector: 'blockquote',
46971      multiline: 'p'
46972    },
46973    citation: {
46974      type: 'string',
46975      source: 'html',
46976      selector: 'cite',
46977      default: ''
46978    },
46979    mainColor: {
46980      type: 'string'
46981    },
46982    customMainColor: {
46983      type: 'string'
46984    },
46985    textColor: {
46986      type: 'string'
46987    },
46988    customTextColor: {
46989      type: 'string'
46990    }
46991  };
46992  function parseBorderColor(styleString) {
46993    if (!styleString) {
46994      return;
46995    }
46996    const matches = styleString.match(/border-color:([^;]+)[;]?/);
46997    if (matches && matches[1]) {
46998      return matches[1];
46999    }
47000  }
47001  function multilineToInline(value) {
47002    value = value || `<p></p>`;
47003    const padded = `</p>$value}<p>`;
47004    const values = padded.split(`</p><p>`);
47005    values.shift();
47006    values.pop();
47007    return values.join('<br>');
47008  }
47009  const pullquote_deprecated_v5 = {
47010    attributes: {
47011      value: {
47012        type: 'string',
47013        source: 'html',
47014        selector: 'blockquote',
47015        multiline: 'p',
47016        role: 'content'
47017      },
47018      citation: {
47019        type: 'string',
47020        source: 'html',
47021        selector: 'cite',
47022        default: '',
47023        role: 'content'
47024      },
47025      textAlign: {
47026        type: 'string'
47027      }
47028    },
47029    save({
47030      attributes
47031    }) {
47032      const {
47033        textAlign,
47034        citation,
47035        value
47036      } = attributes;
47037      const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
47038      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47039        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
47040          className: dist_clsx({
47041            [`has-text-align-$textAlign}`]: textAlign
47042          })
47043        }),
47044        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47045          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47046            value: value,
47047            multiline: true
47048          }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47049            tagName: "cite",
47050            value: citation
47051          })]
47052        })
47053      });
47054    },
47055    migrate({
47056      value,
47057      ...attributes
47058    }) {
47059      return {
47060        value: multilineToInline(value),
47061        ...attributes
47062      };
47063    }
47064  };
47065  
47066  // 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
47067  
47068  const pullquote_deprecated_v4 = {
47069    attributes: {
47070      ...pullquote_deprecated_blockAttributes
47071    },
47072    save({
47073      attributes
47074    }) {
47075      const {
47076        mainColor,
47077        customMainColor,
47078        customTextColor,
47079        textColor,
47080        value,
47081        citation,
47082        className
47083      } = attributes;
47084      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47085      let figureClasses, figureStyles;
47086  
47087      // Is solid color style
47088      if (isSolidColorStyle) {
47089        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
47090        figureClasses = dist_clsx({
47091          'has-background': backgroundClass || customMainColor,
47092          [backgroundClass]: backgroundClass
47093        });
47094        figureStyles = {
47095          backgroundColor: backgroundClass ? undefined : customMainColor
47096        };
47097        // Is normal style and a custom color is being used ( we can set a style directly with its value)
47098      } else if (customMainColor) {
47099        figureStyles = {
47100          borderColor: customMainColor
47101        };
47102      }
47103      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
47104      const blockquoteClasses = dist_clsx({
47105        'has-text-color': textColor || customTextColor,
47106        [blockquoteTextColorClass]: blockquoteTextColorClass
47107      });
47108      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
47109        color: customTextColor
47110      };
47111      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47112        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
47113          className: figureClasses,
47114          style: figureStyles
47115        }),
47116        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47117          className: blockquoteClasses,
47118          style: blockquoteStyles,
47119          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47120            value: value,
47121            multiline: true
47122          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47123            tagName: "cite",
47124            value: citation
47125          })]
47126        })
47127      });
47128    },
47129    migrate({
47130      value,
47131      className,
47132      mainColor,
47133      customMainColor,
47134      customTextColor,
47135      ...attributes
47136    }) {
47137      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47138      let style;
47139      if (customMainColor) {
47140        if (!isSolidColorStyle) {
47141          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
47142          style = {
47143            border: {
47144              color: customMainColor
47145            }
47146          };
47147        } else {
47148          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
47149          style = {
47150            color: {
47151              background: customMainColor
47152            }
47153          };
47154        }
47155      }
47156  
47157      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
47158      if (customTextColor && style) {
47159        style.color = {
47160          ...style.color,
47161          text: customTextColor
47162        };
47163      }
47164      return {
47165        value: multilineToInline(value),
47166        className,
47167        backgroundColor: isSolidColorStyle ? mainColor : undefined,
47168        borderColor: isSolidColorStyle ? undefined : mainColor,
47169        textAlign: isSolidColorStyle ? 'left' : undefined,
47170        style,
47171        ...attributes
47172      };
47173    }
47174  };
47175  const pullquote_deprecated_v3 = {
47176    attributes: {
47177      ...pullquote_deprecated_blockAttributes,
47178      // figureStyle is an attribute that never existed.
47179      // We are using it as a way to access the styles previously applied to the figure.
47180      figureStyle: {
47181        source: 'attribute',
47182        selector: 'figure',
47183        attribute: 'style'
47184      }
47185    },
47186    save({
47187      attributes
47188    }) {
47189      const {
47190        mainColor,
47191        customMainColor,
47192        textColor,
47193        customTextColor,
47194        value,
47195        citation,
47196        className,
47197        figureStyle
47198      } = attributes;
47199      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47200      let figureClasses, figureStyles;
47201  
47202      // Is solid color style
47203      if (isSolidColorStyle) {
47204        const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
47205        figureClasses = dist_clsx({
47206          'has-background': backgroundClass || customMainColor,
47207          [backgroundClass]: backgroundClass
47208        });
47209        figureStyles = {
47210          backgroundColor: backgroundClass ? undefined : customMainColor
47211        };
47212        // Is normal style and a custom color is being used ( we can set a style directly with its value)
47213      } else if (customMainColor) {
47214        figureStyles = {
47215          borderColor: customMainColor
47216        };
47217        // If normal style and a named color are being used, we need to retrieve the color value to set the style,
47218        // as there is no expectation that themes create classes that set border colors.
47219      } else if (mainColor) {
47220        // Previously here we queried the color settings to know the color value
47221        // of a named color. This made the save function impure and the block was refactored,
47222        // because meanwhile a change in the editor made it impossible to query color settings in the save function.
47223        // Here instead of querying the color settings to know the color value, we retrieve the value
47224        // directly from the style previously serialized.
47225        const borderColor = parseBorderColor(figureStyle);
47226        figureStyles = {
47227          borderColor
47228        };
47229      }
47230      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
47231      const blockquoteClasses = (textColor || customTextColor) && dist_clsx('has-text-color', {
47232        [blockquoteTextColorClass]: blockquoteTextColorClass
47233      });
47234      const blockquoteStyles = blockquoteTextColorClass ? undefined : {
47235        color: customTextColor
47236      };
47237      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47238        className: figureClasses,
47239        style: figureStyles,
47240        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47241          className: blockquoteClasses,
47242          style: blockquoteStyles,
47243          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47244            value: value,
47245            multiline: true
47246          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47247            tagName: "cite",
47248            value: citation
47249          })]
47250        })
47251      });
47252    },
47253    migrate({
47254      value,
47255      className,
47256      figureStyle,
47257      mainColor,
47258      customMainColor,
47259      customTextColor,
47260      ...attributes
47261    }) {
47262      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47263      let style;
47264      if (customMainColor) {
47265        if (!isSolidColorStyle) {
47266          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
47267          style = {
47268            border: {
47269              color: customMainColor
47270            }
47271          };
47272        } else {
47273          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
47274          style = {
47275            color: {
47276              background: customMainColor
47277            }
47278          };
47279        }
47280      }
47281  
47282      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
47283      if (customTextColor && style) {
47284        style.color = {
47285          ...style.color,
47286          text: customTextColor
47287        };
47288      }
47289      // If is the default style, and a main color is set,
47290      // migrate the main color value into a custom border color.
47291      // The custom border color value is retrieved by parsing the figure styles.
47292      if (!isSolidColorStyle && mainColor && figureStyle) {
47293        const borderColor = parseBorderColor(figureStyle);
47294        if (borderColor) {
47295          return {
47296            value: multilineToInline(value),
47297            ...attributes,
47298            className,
47299            // Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style.
47300            style: {
47301              border: {
47302                color: borderColor
47303              }
47304            }
47305          };
47306        }
47307      }
47308      return {
47309        value: multilineToInline(value),
47310        className,
47311        backgroundColor: isSolidColorStyle ? mainColor : undefined,
47312        borderColor: isSolidColorStyle ? undefined : mainColor,
47313        textAlign: isSolidColorStyle ? 'left' : undefined,
47314        style,
47315        ...attributes
47316      };
47317    }
47318  };
47319  const pullquote_deprecated_v2 = {
47320    attributes: pullquote_deprecated_blockAttributes,
47321    save({
47322      attributes
47323    }) {
47324      const {
47325        mainColor,
47326        customMainColor,
47327        textColor,
47328        customTextColor,
47329        value,
47330        citation,
47331        className
47332      } = attributes;
47333      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47334      let figureClass, figureStyles;
47335      // Is solid color style
47336      if (isSolidColorStyle) {
47337        figureClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', mainColor);
47338        if (!figureClass) {
47339          figureStyles = {
47340            backgroundColor: customMainColor
47341          };
47342        }
47343        // Is normal style and a custom color is being used ( we can set a style directly with its value)
47344      } else if (customMainColor) {
47345        figureStyles = {
47346          borderColor: customMainColor
47347        };
47348        // Is normal style and a named color is being used, we need to retrieve the color value to set the style,
47349        // as there is no expectation that themes create classes that set border colors.
47350      } else if (mainColor) {
47351        var _select$getSettings$c;
47352        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 : [];
47353        const colorObject = (0,external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues)(colors, mainColor);
47354        figureStyles = {
47355          borderColor: colorObject.color
47356        };
47357      }
47358      const blockquoteTextColorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor);
47359      const blockquoteClasses = textColor || customTextColor ? dist_clsx('has-text-color', {
47360        [blockquoteTextColorClass]: blockquoteTextColorClass
47361      }) : undefined;
47362      const blockquoteStyle = blockquoteTextColorClass ? undefined : {
47363        color: customTextColor
47364      };
47365      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47366        className: figureClass,
47367        style: figureStyles,
47368        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47369          className: blockquoteClasses,
47370          style: blockquoteStyle,
47371          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47372            value: value,
47373            multiline: true
47374          }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47375            tagName: "cite",
47376            value: citation
47377          })]
47378        })
47379      });
47380    },
47381    migrate({
47382      value,
47383      className,
47384      mainColor,
47385      customMainColor,
47386      customTextColor,
47387      ...attributes
47388    }) {
47389      const isSolidColorStyle = className?.includes(SOLID_COLOR_CLASS);
47390      let style = {};
47391      if (customMainColor) {
47392        if (!isSolidColorStyle) {
47393          // Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.
47394          style = {
47395            border: {
47396              color: customMainColor
47397            }
47398          };
47399        } else {
47400          // Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.
47401          style = {
47402            color: {
47403              background: customMainColor
47404            }
47405          };
47406        }
47407      }
47408  
47409      // Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.
47410      if (customTextColor && style) {
47411        style.color = {
47412          ...style.color,
47413          text: customTextColor
47414        };
47415      }
47416      return {
47417        value: multilineToInline(value),
47418        className,
47419        backgroundColor: isSolidColorStyle ? mainColor : undefined,
47420        borderColor: isSolidColorStyle ? undefined : mainColor,
47421        textAlign: isSolidColorStyle ? 'left' : undefined,
47422        style,
47423        ...attributes
47424      };
47425    }
47426  };
47427  const pullquote_deprecated_v1 = {
47428    attributes: {
47429      ...pullquote_deprecated_blockAttributes
47430    },
47431    save({
47432      attributes
47433    }) {
47434      const {
47435        value,
47436        citation
47437      } = attributes;
47438      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47439        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47440          value: value,
47441          multiline: true
47442        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47443          tagName: "cite",
47444          value: citation
47445        })]
47446      });
47447    },
47448    migrate({
47449      value,
47450      ...attributes
47451    }) {
47452      return {
47453        value: multilineToInline(value),
47454        ...attributes
47455      };
47456    }
47457  };
47458  const deprecated_v0 = {
47459    attributes: {
47460      ...pullquote_deprecated_blockAttributes,
47461      citation: {
47462        type: 'string',
47463        source: 'html',
47464        selector: 'footer'
47465      },
47466      align: {
47467        type: 'string',
47468        default: 'none'
47469      }
47470    },
47471    save({
47472      attributes
47473    }) {
47474      const {
47475        value,
47476        citation,
47477        align
47478      } = attributes;
47479      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47480        className: `align$align}`,
47481        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47482          value: value,
47483          multiline: true
47484        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47485          tagName: "footer",
47486          value: citation
47487        })]
47488      });
47489    },
47490    migrate({
47491      value,
47492      ...attributes
47493    }) {
47494      return {
47495        value: multilineToInline(value),
47496        ...attributes
47497      };
47498    }
47499  };
47500  
47501  /**
47502   * New deprecations need to be placed first
47503   * for them to have higher priority.
47504   *
47505   * Old deprecations may need to be updated as well.
47506   *
47507   * See block-deprecation.md
47508   */
47509  /* harmony default export */ const pullquote_deprecated = ([pullquote_deprecated_v5, pullquote_deprecated_v4, pullquote_deprecated_v3, pullquote_deprecated_v2, pullquote_deprecated_v1, deprecated_v0]);
47510  
47511  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js
47512  const Figure = 'figure';
47513  
47514  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js
47515  const BlockQuote = 'blockquote';
47516  
47517  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js
47518  /**
47519   * External dependencies
47520   */
47521  
47522  
47523  /**
47524   * WordPress dependencies
47525   */
47526  
47527  
47528  
47529  
47530  
47531  /**
47532   * Internal dependencies
47533   */
47534  
47535  
47536  
47537  const isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
47538  function PullQuoteEdit({
47539    attributes,
47540    setAttributes,
47541    isSelected,
47542    insertBlocksAfter
47543  }) {
47544    const {
47545      textAlign,
47546      citation,
47547      value
47548    } = attributes;
47549    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
47550      className: dist_clsx({
47551        [`has-text-align-$textAlign}`]: textAlign
47552      })
47553    });
47554    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) || isSelected;
47555    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
47556      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
47557        group: "block",
47558        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
47559          value: textAlign,
47560          onChange: nextAlign => {
47561            setAttributes({
47562              textAlign: nextAlign
47563            });
47564          }
47565        })
47566      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Figure, {
47567        ...blockProps,
47568        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(BlockQuote, {
47569          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
47570            identifier: "value",
47571            tagName: "p",
47572            value: value,
47573            onChange: nextValue => setAttributes({
47574              value: nextValue
47575            }),
47576            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote text'),
47577            placeholder:
47578            // translators: placeholder text used for the quote
47579            (0,external_wp_i18n_namespaceObject.__)('Add quote'),
47580            textAlign: "center"
47581          }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
47582            identifier: "citation",
47583            tagName: isWebPlatform ? 'cite' : undefined,
47584            style: {
47585              display: 'block'
47586            },
47587            value: citation,
47588            "aria-label": (0,external_wp_i18n_namespaceObject.__)('Pullquote citation text'),
47589            placeholder:
47590            // translators: placeholder text used for the citation
47591            (0,external_wp_i18n_namespaceObject.__)('Add citation'),
47592            onChange: nextCitation => setAttributes({
47593              citation: nextCitation
47594            }),
47595            className: "wp-block-pullquote__citation",
47596            __unstableMobileNoFocusOnMount: true,
47597            textAlign: "center",
47598            __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
47599          })]
47600        })
47601      })]
47602    });
47603  }
47604  /* harmony default export */ const pullquote_edit = (PullQuoteEdit);
47605  
47606  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/save.js
47607  /**
47608   * External dependencies
47609   */
47610  
47611  
47612  /**
47613   * WordPress dependencies
47614   */
47615  
47616  
47617  function pullquote_save_save({
47618    attributes
47619  }) {
47620    const {
47621      textAlign,
47622      citation,
47623      value
47624    } = attributes;
47625    const shouldShowCitation = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation);
47626    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("figure", {
47627      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
47628        className: dist_clsx({
47629          [`has-text-align-$textAlign}`]: textAlign
47630        })
47631      }),
47632      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
47633        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47634          tagName: "p",
47635          value: value
47636        }), shouldShowCitation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
47637          tagName: "cite",
47638          value: citation
47639        })]
47640      })
47641    });
47642  }
47643  
47644  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js
47645  /**
47646   * WordPress dependencies
47647   */
47648  
47649  
47650  const pullquote_transforms_transforms = {
47651    from: [{
47652      type: 'block',
47653      isMultiBlock: true,
47654      blocks: ['core/paragraph'],
47655      transform: attributes => {
47656        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
47657          value: (0,external_wp_richText_namespaceObject.toHTMLString)({
47658            value: (0,external_wp_richText_namespaceObject.join)(attributes.map(({
47659              content
47660            }) => (0,external_wp_richText_namespaceObject.create)({
47661              html: content
47662            })), '\n')
47663          }),
47664          anchor: attributes.anchor
47665        });
47666      }
47667    }, {
47668      type: 'block',
47669      blocks: ['core/heading'],
47670      transform: ({
47671        content,
47672        anchor
47673      }) => {
47674        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
47675          value: content,
47676          anchor
47677        });
47678      }
47679    }],
47680    to: [{
47681      type: 'block',
47682      blocks: ['core/paragraph'],
47683      transform: ({
47684        value,
47685        citation
47686      }) => {
47687        const paragraphs = [];
47688        if (value) {
47689          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
47690            content: value
47691          }));
47692        }
47693        if (citation) {
47694          paragraphs.push((0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
47695            content: citation
47696          }));
47697        }
47698        if (paragraphs.length === 0) {
47699          return (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
47700            content: ''
47701          });
47702        }
47703        return paragraphs;
47704      }
47705    }, {
47706      type: 'block',
47707      blocks: ['core/heading'],
47708      transform: ({
47709        value,
47710        citation
47711      }) => {
47712        // If there is no pullquote content, use the citation as the
47713        // content of the resulting heading. A nonexistent citation
47714        // will result in an empty heading.
47715        if (!value) {
47716          return (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
47717            content: citation
47718          });
47719        }
47720        const headingBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
47721          content: value
47722        });
47723        if (!citation) {
47724          return headingBlock;
47725        }
47726        return [headingBlock, (0,external_wp_blocks_namespaceObject.createBlock)('core/heading', {
47727          content: citation
47728        })];
47729      }
47730    }]
47731  };
47732  /* harmony default export */ const pullquote_transforms = (pullquote_transforms_transforms);
47733  
47734  ;// ./node_modules/@wordpress/block-library/build-module/pullquote/index.js
47735  /**
47736   * WordPress dependencies
47737   */
47738  
47739  
47740  
47741  /**
47742   * Internal dependencies
47743   */
47744  
47745  
47746  
47747  const pullquote_metadata = {
47748    $schema: "https://schemas.wp.org/trunk/block.json",
47749    apiVersion: 3,
47750    name: "core/pullquote",
47751    title: "Pullquote",
47752    category: "text",
47753    description: "Give special visual emphasis to a quote from your text.",
47754    textdomain: "default",
47755    attributes: {
47756      value: {
47757        type: "rich-text",
47758        source: "rich-text",
47759        selector: "p",
47760        role: "content"
47761      },
47762      citation: {
47763        type: "rich-text",
47764        source: "rich-text",
47765        selector: "cite",
47766        role: "content"
47767      },
47768      textAlign: {
47769        type: "string"
47770      }
47771    },
47772    supports: {
47773      anchor: true,
47774      align: ["left", "right", "wide", "full"],
47775      background: {
47776        backgroundImage: true,
47777        backgroundSize: true,
47778        __experimentalDefaultControls: {
47779          backgroundImage: true
47780        }
47781      },
47782      color: {
47783        gradients: true,
47784        background: true,
47785        link: true,
47786        __experimentalDefaultControls: {
47787          background: true,
47788          text: true
47789        }
47790      },
47791      dimensions: {
47792        minHeight: true,
47793        __experimentalDefaultControls: {
47794          minHeight: false
47795        }
47796      },
47797      spacing: {
47798        margin: true,
47799        padding: true
47800      },
47801      typography: {
47802        fontSize: true,
47803        lineHeight: true,
47804        __experimentalFontFamily: true,
47805        __experimentalFontWeight: true,
47806        __experimentalFontStyle: true,
47807        __experimentalTextTransform: true,
47808        __experimentalTextDecoration: true,
47809        __experimentalLetterSpacing: true,
47810        __experimentalDefaultControls: {
47811          fontSize: true
47812        }
47813      },
47814      __experimentalBorder: {
47815        color: true,
47816        radius: true,
47817        style: true,
47818        width: true,
47819        __experimentalDefaultControls: {
47820          color: true,
47821          radius: true,
47822          style: true,
47823          width: true
47824        }
47825      },
47826      __experimentalStyle: {
47827        typography: {
47828          fontSize: "1.5em",
47829          lineHeight: "1.6"
47830        }
47831      },
47832      interactivity: {
47833        clientNavigation: true
47834      }
47835    },
47836    editorStyle: "wp-block-pullquote-editor",
47837    style: "wp-block-pullquote"
47838  };
47839  
47840  
47841  const {
47842    name: pullquote_name
47843  } = pullquote_metadata;
47844  
47845  const pullquote_settings = {
47846    icon: library_pullquote,
47847    example: {
47848      attributes: {
47849        value:
47850        // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.
47851        (0,external_wp_i18n_namespaceObject.__)('One of the hardest things to do in technology is disrupt yourself.'),
47852        citation: (0,external_wp_i18n_namespaceObject.__)('Matt Mullenweg')
47853      }
47854    },
47855    transforms: pullquote_transforms,
47856    edit: pullquote_edit,
47857    save: pullquote_save_save,
47858    deprecated: pullquote_deprecated
47859  };
47860  const pullquote_init = () => initBlock({
47861    name: pullquote_name,
47862    metadata: pullquote_metadata,
47863    settings: pullquote_settings
47864  });
47865  
47866  ;// ./node_modules/@wordpress/icons/build-module/library/loop.js
47867  /**
47868   * WordPress dependencies
47869   */
47870  
47871  
47872  const loop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
47873    viewBox: "0 0 24 24",
47874    xmlns: "http://www.w3.org/2000/svg",
47875    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
47876      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"
47877    })
47878  });
47879  /* harmony default export */ const library_loop = (loop);
47880  
47881  ;// ./node_modules/@wordpress/block-library/build-module/query/utils.js
47882  /**
47883   * WordPress dependencies
47884   */
47885  
47886  
47887  
47888  
47889  
47890  
47891  
47892  
47893  /** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */
47894  /** @typedef {import('@wordpress/components/build-types/query-controls/types').OrderByOption} OrderByOption */
47895  
47896  /**
47897   * @typedef IHasNameAndId
47898   * @property {string|number} id   The entity's id.
47899   * @property {string}        name The entity's name.
47900   */
47901  
47902  /**
47903   * The object used in Query block that contains info and helper mappings
47904   * from an array of IHasNameAndId objects.
47905   *
47906   * @typedef {Object} QueryEntitiesInfo
47907   * @property {IHasNameAndId[]}               entities  The array of entities.
47908   * @property {Object<string, IHasNameAndId>} mapById   Object mapping with the id as key and the entity as value.
47909   * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.
47910   * @property {string[]}                      names     Array with the entities' names.
47911   */
47912  
47913  /**
47914   * Returns a helper object with mapping from Objects that implement
47915   * the `IHasNameAndId` interface. The returned object is used for
47916   * integration with `FormTokenField` component.
47917   *
47918   * @param {IHasNameAndId[]} entities The entities to extract of helper object.
47919   * @return {QueryEntitiesInfo} The object with the entities information.
47920   */
47921  const getEntitiesInfo = entities => {
47922    const mapping = entities?.reduce((accumulator, entity) => {
47923      const {
47924        mapById,
47925        mapByName,
47926        names
47927      } = accumulator;
47928      mapById[entity.id] = entity;
47929      mapByName[entity.name] = entity;
47930      names.push(entity.name);
47931      return accumulator;
47932    }, {
47933      mapById: {},
47934      mapByName: {},
47935      names: []
47936    });
47937    return {
47938      entities,
47939      ...mapping
47940    };
47941  };
47942  
47943  /**
47944   * Helper util to return a value from a certain path of the object.
47945   * Path is specified as a string of properties, separated by dots,
47946   * for example: "parent.child".
47947   *
47948   * @param {Object} object Input object.
47949   * @param {string} path   Path to the object property.
47950   * @return {*} Value of the object property at the specified path.
47951   */
47952  const getValueFromObjectPath = (object, path) => {
47953    const normalizedPath = path.split('.');
47954    let value = object;
47955    normalizedPath.forEach(fieldName => {
47956      value = value?.[fieldName];
47957    });
47958    return value;
47959  };
47960  
47961  /**
47962   * Helper util to map records to add a `name` prop from a
47963   * provided path, in order to handle all entities in the same
47964   * fashion(implementing`IHasNameAndId` interface).
47965   *
47966   * @param {Object[]} entities The array of entities.
47967   * @param {string}   path     The path to map a `name` property from the entity.
47968   * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.
47969   */
47970  const mapToIHasNameAndId = (entities, path) => {
47971    return (entities || []).map(entity => ({
47972      ...entity,
47973      name: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(getValueFromObjectPath(entity, path))
47974    }));
47975  };
47976  
47977  /**
47978   * Returns a helper object that contains:
47979   * 1. An `options` object from the available post types, to be passed to a `SelectControl`.
47980   * 2. A helper map with available taxonomies per post type.
47981   * 3. A helper map with post format support per post type.
47982   *
47983   * @return {Object} The helper object related to post types.
47984   */
47985  const usePostTypes = () => {
47986    const postTypes = (0,external_wp_data_namespaceObject.useSelect)(select => {
47987      const {
47988        getPostTypes
47989      } = select(external_wp_coreData_namespaceObject.store);
47990      const excludedPostTypes = ['attachment'];
47991      const filteredPostTypes = getPostTypes({
47992        per_page: -1
47993      })?.filter(({
47994        viewable,
47995        slug
47996      }) => viewable && !excludedPostTypes.includes(slug));
47997      return filteredPostTypes;
47998    }, []);
47999    const postTypesTaxonomiesMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
48000      if (!postTypes?.length) {
48001        return;
48002      }
48003      return postTypes.reduce((accumulator, type) => {
48004        accumulator[type.slug] = type.taxonomies;
48005        return accumulator;
48006      }, {});
48007    }, [postTypes]);
48008    const postTypesSelectOptions = (0,external_wp_element_namespaceObject.useMemo)(() => (postTypes || []).map(({
48009      labels,
48010      slug
48011    }) => ({
48012      label: labels.singular_name,
48013      value: slug
48014    })), [postTypes]);
48015    const postTypeFormatSupportMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
48016      if (!postTypes?.length) {
48017        return {};
48018      }
48019      return postTypes.reduce((accumulator, type) => {
48020        accumulator[type.slug] = type.supports?.['post-formats'] || false;
48021        return accumulator;
48022      }, {});
48023    }, [postTypes]);
48024    return {
48025      postTypesTaxonomiesMap,
48026      postTypesSelectOptions,
48027      postTypeFormatSupportMap
48028    };
48029  };
48030  
48031  /**
48032   * Hook that returns the taxonomies associated with a specific post type.
48033   *
48034   * @param {string} postType The post type from which to retrieve the associated taxonomies.
48035   * @return {Object[]} An array of the associated taxonomies.
48036   */
48037  const useTaxonomies = postType => {
48038    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
48039      const {
48040        getTaxonomies,
48041        getPostType
48042      } = select(external_wp_coreData_namespaceObject.store);
48043      // Does the post type have taxonomies?
48044      if (getPostType(postType)?.taxonomies?.length > 0) {
48045        return getTaxonomies({
48046          type: postType,
48047          per_page: -1
48048        });
48049      }
48050      return [];
48051    }, [postType]);
48052    return (0,external_wp_element_namespaceObject.useMemo)(() => {
48053      return taxonomies?.filter(({
48054        visibility
48055      }) => !!visibility?.publicly_queryable);
48056    }, [taxonomies]);
48057  };
48058  
48059  /**
48060   * Hook that returns whether a specific post type is hierarchical.
48061   *
48062   * @param {string} postType The post type to check.
48063   * @return {boolean} Whether a specific post type is hierarchical.
48064   */
48065  function useIsPostTypeHierarchical(postType) {
48066    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48067      const type = select(external_wp_coreData_namespaceObject.store).getPostType(postType);
48068      return type?.viewable && type?.hierarchical;
48069    }, [postType]);
48070  }
48071  
48072  /**
48073   * List of avaiable options to order by.
48074   *
48075   * @param {string} postType The post type to check.
48076   * @return {OrderByOption[]} List of order options.
48077   */
48078  function useOrderByOptions(postType) {
48079    const supportsCustomOrder = (0,external_wp_data_namespaceObject.useSelect)(select => {
48080      const type = select(external_wp_coreData_namespaceObject.store).getPostType(postType);
48081      return !!type?.supports?.['page-attributes'];
48082    }, [postType]);
48083    return (0,external_wp_element_namespaceObject.useMemo)(() => {
48084      const orderByOptions = [{
48085        label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
48086        value: 'date/desc'
48087      }, {
48088        label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
48089        value: 'date/asc'
48090      }, {
48091        /* translators: Label for ordering posts by title in ascending order. */
48092        label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
48093        value: 'title/asc'
48094      }, {
48095        /* translators: Label for ordering posts by title in descending order. */
48096        label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
48097        value: 'title/desc'
48098      }];
48099      if (supportsCustomOrder) {
48100        orderByOptions.push({
48101          /* translators: Label for ordering posts by ascending menu order. */
48102          label: (0,external_wp_i18n_namespaceObject.__)('Ascending by order'),
48103          value: 'menu_order/asc'
48104        }, {
48105          /* translators: Label for ordering posts by descending menu order. */
48106          label: (0,external_wp_i18n_namespaceObject.__)('Descending by order'),
48107          value: 'menu_order/desc'
48108        });
48109      }
48110      return orderByOptions;
48111    }, [supportsCustomOrder]);
48112  }
48113  
48114  /**
48115   * Hook that returns the query properties' names defined by the active
48116   * block variation, to determine which block's filters to show.
48117   *
48118   * @param {Object} attributes Block attributes.
48119   * @return {string[]} An array of the query attributes.
48120   */
48121  function useAllowedControls(attributes) {
48122    return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blocks_namespaceObject.store).getActiveBlockVariation('core/query', attributes)?.allowedControls, [attributes]);
48123  }
48124  function isControlAllowed(allowedControls, key) {
48125    // Every controls is allowed if the list is not defined.
48126    if (!allowedControls) {
48127      return true;
48128    }
48129    return allowedControls.includes(key);
48130  }
48131  
48132  /**
48133   * Clones a pattern's blocks and then recurses over that list of blocks,
48134   * transforming them to retain some `query` attribute properties.
48135   * For now we retain the `postType` and `inherit` properties as they are
48136   * fundamental for the expected functionality of the block and don't affect
48137   * its design and presentation.
48138   *
48139   * Returns the cloned/transformed blocks and array of existing Query Loop
48140   * client ids for further manipulation, in order to avoid multiple recursions.
48141   *
48142   * @param {WPBlock[]}        blocks               The list of blocks to look through and transform(mutate).
48143   * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.
48144   * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.
48145   */
48146  const getTransformedBlocksFromPattern = (blocks, queryBlockAttributes) => {
48147    const {
48148      query: {
48149        postType,
48150        inherit
48151      },
48152      namespace
48153    } = queryBlockAttributes;
48154    const clonedBlocks = blocks.map(block => (0,external_wp_blocks_namespaceObject.cloneBlock)(block));
48155    const queryClientIds = [];
48156    const blocksQueue = [...clonedBlocks];
48157    while (blocksQueue.length > 0) {
48158      const block = blocksQueue.shift();
48159      if (block.name === 'core/query') {
48160        block.attributes.query = {
48161          ...block.attributes.query,
48162          postType,
48163          inherit
48164        };
48165        if (namespace) {
48166          block.attributes.namespace = namespace;
48167        }
48168        queryClientIds.push(block.clientId);
48169      }
48170      block.innerBlocks?.forEach(innerBlock => {
48171        blocksQueue.push(innerBlock);
48172      });
48173    }
48174    return {
48175      newBlocks: clonedBlocks,
48176      queryClientIds
48177    };
48178  };
48179  
48180  /**
48181   * Helper hook that determines if there is an active variation of the block
48182   * and if there are available specific patterns for this variation.
48183   * If there are, these patterns are going to be the only ones suggested to
48184   * the user in setup and replace flow, without including the default ones
48185   * for Query Loop.
48186   *
48187   * If there are no such patterns, the default ones for Query Loop are going
48188   * to be suggested.
48189   *
48190   * @param {string} clientId   The block's client ID.
48191   * @param {Object} attributes The block's attributes.
48192   * @return {string} The block name to be used in the patterns suggestions.
48193   */
48194  function useBlockNameForPatterns(clientId, attributes) {
48195    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48196      const activeVariationName = select(external_wp_blocks_namespaceObject.store).getActiveBlockVariation('core/query', attributes)?.name;
48197      if (!activeVariationName) {
48198        return 'core/query';
48199      }
48200      const {
48201        getBlockRootClientId,
48202        getPatternsByBlockTypes
48203      } = select(external_wp_blockEditor_namespaceObject.store);
48204      const rootClientId = getBlockRootClientId(clientId);
48205      const activePatterns = getPatternsByBlockTypes(`core/query/$activeVariationName}`, rootClientId);
48206      return activePatterns.length > 0 ? `core/query/$activeVariationName}` : 'core/query';
48207    }, [clientId, attributes]);
48208  }
48209  
48210  /**
48211   * Helper hook that determines if there is an active variation of the block
48212   * and if there are available specific scoped `block` variations connected with
48213   * this variation.
48214   *
48215   * If there are, these variations are going to be the only ones suggested
48216   * to the user in setup flow when clicking to `start blank`, without including
48217   * the default ones for Query Loop.
48218   *
48219   * If there are no such scoped `block` variations, the default ones for Query
48220   * Loop are going to be suggested.
48221   *
48222   * The way we determine such variations is with the convention that they have the `namespace`
48223   * attribute defined as an array. This array should contain the names(`name` property) of any
48224   * variations they want to be connected to.
48225   * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,
48226   * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.
48227   * If the user selects this variation, the `namespace` attribute will be overridden by the
48228   * main `inserter` variation.
48229   *
48230   * @param {Object} attributes The block's attributes.
48231   * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.
48232   */
48233  function useScopedBlockVariations(attributes) {
48234    const {
48235      activeVariationName,
48236      blockVariations
48237    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48238      const {
48239        getActiveBlockVariation,
48240        getBlockVariations
48241      } = select(external_wp_blocks_namespaceObject.store);
48242      return {
48243        activeVariationName: getActiveBlockVariation('core/query', attributes)?.name,
48244        blockVariations: getBlockVariations('core/query', 'block')
48245      };
48246    }, [attributes]);
48247    const variations = (0,external_wp_element_namespaceObject.useMemo)(() => {
48248      // Filter out the variations that have defined a `namespace` attribute,
48249      // which means they are 'connected' to specific variations of the block.
48250      const isNotConnected = variation => !variation.attributes?.namespace;
48251      if (!activeVariationName) {
48252        return blockVariations.filter(isNotConnected);
48253      }
48254      const connectedVariations = blockVariations.filter(variation => variation.attributes?.namespace?.includes(activeVariationName));
48255      if (!!connectedVariations.length) {
48256        return connectedVariations;
48257      }
48258      return blockVariations.filter(isNotConnected);
48259    }, [activeVariationName, blockVariations]);
48260    return variations;
48261  }
48262  
48263  /**
48264   * Hook that returns the block patterns for a specific block type.
48265   *
48266   * @param {string} clientId The block's client ID.
48267   * @param {string} name     The block type name.
48268   * @return {Object[]} An array of valid block patterns.
48269   */
48270  const usePatterns = (clientId, name) => {
48271    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48272      const {
48273        getBlockRootClientId,
48274        getPatternsByBlockTypes
48275      } = select(external_wp_blockEditor_namespaceObject.store);
48276      const rootClientId = getBlockRootClientId(clientId);
48277      return getPatternsByBlockTypes(name, rootClientId);
48278    }, [name, clientId]);
48279  };
48280  
48281  /**
48282   * The object returned by useUnsupportedBlocks with info about the type of
48283   * unsupported blocks present inside the Query block.
48284   *
48285   * @typedef  {Object}  UnsupportedBlocksInfo
48286   * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.
48287   * @property {boolean} hasPostContentBlock  True if a 'core/post-content' block is present.
48288   * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.
48289   */
48290  
48291  /**
48292   * Hook that returns an object with information about the unsupported blocks
48293   * present inside a Query Loop with the given `clientId`. The returned object
48294   * contains props that are true when a certain type of unsupported block is
48295   * present.
48296   *
48297   * @param {string} clientId The block's client ID.
48298   * @return {UnsupportedBlocksInfo} The object containing the information.
48299   */
48300  const useUnsupportedBlocks = clientId => {
48301    return (0,external_wp_data_namespaceObject.useSelect)(select => {
48302      const {
48303        getClientIdsOfDescendants,
48304        getBlockName
48305      } = select(external_wp_blockEditor_namespaceObject.store);
48306      const blocks = {};
48307      getClientIdsOfDescendants(clientId).forEach(descendantClientId => {
48308        const blockName = getBlockName(descendantClientId);
48309        /*
48310         * Client side navigation can be true in two states:
48311         *  - supports.interactivity = true;
48312         *  - supports.interactivity.clientNavigation = true;
48313         */
48314        const blockSupportsInteractivity = Object.is((0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'interactivity'), true);
48315        const blockSupportsInteractivityClientNavigation = (0,external_wp_blocks_namespaceObject.getBlockSupport)(blockName, 'interactivity.clientNavigation');
48316        const blockInteractivity = blockSupportsInteractivity || blockSupportsInteractivityClientNavigation;
48317        if (!blockInteractivity) {
48318          blocks.hasBlocksFromPlugins = true;
48319        } else if (blockName === 'core/post-content') {
48320          blocks.hasPostContentBlock = true;
48321        }
48322      });
48323      blocks.hasUnsupportedBlocks = blocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;
48324      return blocks;
48325    }, [clientId]);
48326  };
48327  
48328  /**
48329   * Helper function that returns the query context from the editor based on the
48330   * available template slug.
48331   *
48332   * @param {string} templateSlug Current template slug based on context.
48333   * @return {Object} An object with isSingular and templateType properties.
48334   */
48335  function getQueryContextFromTemplate(templateSlug) {
48336    // In the Post Editor, the template slug is not available.
48337    if (!templateSlug) {
48338      return {
48339        isSingular: true
48340      };
48341    }
48342    let isSingular = false;
48343    let templateType = templateSlug === 'wp' ? 'custom' : templateSlug;
48344    const singularTemplates = ['404', 'blank', 'single', 'page', 'custom'];
48345    const templateTypeFromSlug = templateSlug.includes('-') ? templateSlug.split('-', 1)[0] : templateSlug;
48346    const queryFromTemplateSlug = templateSlug.includes('-') ? templateSlug.split('-').slice(1).join('-') : '';
48347    if (queryFromTemplateSlug) {
48348      templateType = templateTypeFromSlug;
48349    }
48350    isSingular = singularTemplates.includes(templateType);
48351    return {
48352      isSingular,
48353      templateType
48354    };
48355  }
48356  
48357  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/enhanced-pagination-control.js
48358  /**
48359   * WordPress dependencies
48360   */
48361  
48362  
48363  
48364  /**
48365   * Internal dependencies
48366   */
48367  
48368  
48369  function EnhancedPaginationControl({
48370    enhancedPagination,
48371    setAttributes,
48372    clientId
48373  }) {
48374    const {
48375      hasUnsupportedBlocks
48376    } = useUnsupportedBlocks(clientId);
48377    const fullPageClientSideNavigation = window.__experimentalFullPageClientSideNavigation;
48378    let help = (0,external_wp_i18n_namespaceObject.__)('Reload the full page—instead of just the posts list—when visitors navigate between pages.');
48379    if (fullPageClientSideNavigation) {
48380      help = (0,external_wp_i18n_namespaceObject.__)('Experimental full-page client-side navigation setting enabled.');
48381    } else if (hasUnsupportedBlocks) {
48382      help = (0,external_wp_i18n_namespaceObject.__)('Enhancement disabled because there are non-compatible blocks inside the Query block.');
48383    }
48384    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
48385      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
48386        __nextHasNoMarginBottom: true,
48387        label: (0,external_wp_i18n_namespaceObject.__)('Reload full page'),
48388        help: help,
48389        checked: !enhancedPagination && !fullPageClientSideNavigation,
48390        disabled: hasUnsupportedBlocks || fullPageClientSideNavigation,
48391        onChange: value => {
48392          setAttributes({
48393            enhancedPagination: !value
48394          });
48395        }
48396      })
48397    });
48398  }
48399  
48400  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/order-control.js
48401  /**
48402   * WordPress dependencies
48403   */
48404  
48405  
48406  
48407  const defaultOrderByOptions = [{
48408    label: (0,external_wp_i18n_namespaceObject.__)('Newest to oldest'),
48409    value: 'date/desc'
48410  }, {
48411    label: (0,external_wp_i18n_namespaceObject.__)('Oldest to newest'),
48412    value: 'date/asc'
48413  }, {
48414    /* translators: Label for ordering posts by title in ascending order. */
48415    label: (0,external_wp_i18n_namespaceObject.__)('A → Z'),
48416    value: 'title/asc'
48417  }, {
48418    /* translators: Label for ordering posts by title in descending order. */
48419    label: (0,external_wp_i18n_namespaceObject.__)('Z → A'),
48420    value: 'title/desc'
48421  }];
48422  function OrderControl({
48423    order,
48424    orderBy,
48425    orderByOptions = defaultOrderByOptions,
48426    onChange
48427  }) {
48428    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
48429      __nextHasNoMarginBottom: true,
48430      __next40pxDefaultSize: true,
48431      label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
48432      value: `$orderBy}/$order}`,
48433      options: orderByOptions,
48434      onChange: value => {
48435        const [newOrderBy, newOrder] = value.split('/');
48436        onChange({
48437          order: newOrder,
48438          orderBy: newOrderBy
48439        });
48440      }
48441    });
48442  }
48443  /* harmony default export */ const order_control = (OrderControl);
48444  
48445  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/author-control.js
48446  /**
48447   * WordPress dependencies
48448   */
48449  
48450  
48451  
48452  
48453  
48454  /**
48455   * Internal dependencies
48456   */
48457  
48458  
48459  const author_control_AUTHORS_QUERY = {
48460    who: 'authors',
48461    per_page: -1,
48462    _fields: 'id,name',
48463    context: 'view'
48464  };
48465  function AuthorControl({
48466    value,
48467    onChange
48468  }) {
48469    const authorsList = (0,external_wp_data_namespaceObject.useSelect)(select => {
48470      const {
48471        getUsers
48472      } = select(external_wp_coreData_namespaceObject.store);
48473      return getUsers(author_control_AUTHORS_QUERY);
48474    }, []);
48475    if (!authorsList) {
48476      return null;
48477    }
48478    const authorsInfo = getEntitiesInfo(authorsList);
48479    /**
48480     * We need to normalize the value because the block operates on a
48481     * comma(`,`) separated string value and `FormTokenField` needs an
48482     * array.
48483     */
48484    const normalizedValue = !value ? [] : value.toString().split(',');
48485    // Returns only the existing authors ids. This prevents the component
48486    // from crashing in the editor, when non existing ids are provided.
48487    const sanitizedValue = normalizedValue.reduce((accumulator, authorId) => {
48488      const author = authorsInfo.mapById[authorId];
48489      if (author) {
48490        accumulator.push({
48491          id: authorId,
48492          value: author.name
48493        });
48494      }
48495      return accumulator;
48496    }, []);
48497    const getIdByValue = (entitiesMappedByName, authorValue) => {
48498      const id = authorValue?.id || entitiesMappedByName[authorValue]?.id;
48499      if (id) {
48500        return id;
48501      }
48502    };
48503    const onAuthorChange = newValue => {
48504      const ids = Array.from(newValue.reduce((accumulator, author) => {
48505        // Verify that new values point to existing entities.
48506        const id = getIdByValue(authorsInfo.mapByName, author);
48507        if (id) {
48508          accumulator.add(id);
48509        }
48510        return accumulator;
48511      }, new Set()));
48512      onChange({
48513        author: ids.join(',')
48514      });
48515    };
48516    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48517      label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
48518      value: sanitizedValue,
48519      suggestions: authorsInfo.names,
48520      onChange: onAuthorChange,
48521      __experimentalShowHowTo: false,
48522      __nextHasNoMarginBottom: true,
48523      __next40pxDefaultSize: true
48524    });
48525  }
48526  /* harmony default export */ const author_control = (AuthorControl);
48527  
48528  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/parent-control.js
48529  /**
48530   * WordPress dependencies
48531   */
48532  
48533  
48534  
48535  
48536  
48537  
48538  
48539  /**
48540   * Internal dependencies
48541   */
48542  
48543  
48544  const parent_control_EMPTY_ARRAY = [];
48545  const BASE_QUERY = {
48546    order: 'asc',
48547    _fields: 'id,title',
48548    context: 'view'
48549  };
48550  function ParentControl({
48551    parents,
48552    postType,
48553    onChange
48554  }) {
48555    const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
48556    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(parent_control_EMPTY_ARRAY);
48557    const [suggestions, setSuggestions] = (0,external_wp_element_namespaceObject.useState)(parent_control_EMPTY_ARRAY);
48558    const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 250);
48559    const {
48560      searchResults,
48561      searchHasResolved
48562    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48563      if (!search) {
48564        return {
48565          searchResults: parent_control_EMPTY_ARRAY,
48566          searchHasResolved: true
48567        };
48568      }
48569      const {
48570        getEntityRecords,
48571        hasFinishedResolution
48572      } = select(external_wp_coreData_namespaceObject.store);
48573      const selectorArgs = ['postType', postType, {
48574        ...BASE_QUERY,
48575        search,
48576        orderby: 'relevance',
48577        exclude: parents,
48578        per_page: 20
48579      }];
48580      return {
48581        searchResults: getEntityRecords(...selectorArgs),
48582        searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
48583      };
48584    }, [search, parents]);
48585    const currentParents = (0,external_wp_data_namespaceObject.useSelect)(select => {
48586      if (!parents?.length) {
48587        return parent_control_EMPTY_ARRAY;
48588      }
48589      const {
48590        getEntityRecords
48591      } = select(external_wp_coreData_namespaceObject.store);
48592      return getEntityRecords('postType', postType, {
48593        ...BASE_QUERY,
48594        include: parents,
48595        per_page: parents.length
48596      });
48597    }, [parents]);
48598    // Update the `value` state only after the selectors are resolved
48599    // to avoid emptying the input when we're changing parents.
48600    (0,external_wp_element_namespaceObject.useEffect)(() => {
48601      if (!parents?.length) {
48602        setValue(parent_control_EMPTY_ARRAY);
48603      }
48604      if (!currentParents?.length) {
48605        return;
48606      }
48607      const currentParentsInfo = getEntitiesInfo(mapToIHasNameAndId(currentParents, 'title.rendered'));
48608      // Returns only the existing entity ids. This prevents the component
48609      // from crashing in the editor, when non existing ids are provided.
48610      const sanitizedValue = parents.reduce((accumulator, id) => {
48611        const entity = currentParentsInfo.mapById[id];
48612        if (entity) {
48613          accumulator.push({
48614            id,
48615            value: entity.name
48616          });
48617        }
48618        return accumulator;
48619      }, []);
48620      setValue(sanitizedValue);
48621    }, [parents, currentParents]);
48622    const entitiesInfo = (0,external_wp_element_namespaceObject.useMemo)(() => {
48623      if (!searchResults?.length) {
48624        return parent_control_EMPTY_ARRAY;
48625      }
48626      return getEntitiesInfo(mapToIHasNameAndId(searchResults, 'title.rendered'));
48627    }, [searchResults]);
48628    // Update suggestions only when the query has resolved.
48629    (0,external_wp_element_namespaceObject.useEffect)(() => {
48630      if (!searchHasResolved) {
48631        return;
48632      }
48633      setSuggestions(entitiesInfo.names);
48634    }, [entitiesInfo.names, searchHasResolved]);
48635    const getIdByValue = (entitiesMappedByName, entity) => {
48636      const id = entity?.id || entitiesMappedByName?.[entity]?.id;
48637      if (id) {
48638        return id;
48639      }
48640    };
48641    const onParentChange = newValue => {
48642      const ids = Array.from(newValue.reduce((accumulator, entity) => {
48643        // Verify that new values point to existing entities.
48644        const id = getIdByValue(entitiesInfo.mapByName, entity);
48645        if (id) {
48646          accumulator.add(id);
48647        }
48648        return accumulator;
48649      }, new Set()));
48650      setSuggestions(parent_control_EMPTY_ARRAY);
48651      onChange({
48652        parents: ids
48653      });
48654    };
48655    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48656      __next40pxDefaultSize: true,
48657      label: (0,external_wp_i18n_namespaceObject.__)('Parents'),
48658      value: value,
48659      onInputChange: debouncedSearch,
48660      suggestions: suggestions,
48661      onChange: onParentChange,
48662      __experimentalShowHowTo: false,
48663      __nextHasNoMarginBottom: true
48664    });
48665  }
48666  /* harmony default export */ const parent_control = (ParentControl);
48667  
48668  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/taxonomy-controls.js
48669  /**
48670   * WordPress dependencies
48671   */
48672  
48673  
48674  
48675  
48676  
48677  
48678  
48679  /**
48680   * Internal dependencies
48681   */
48682  
48683  
48684  const taxonomy_controls_EMPTY_ARRAY = [];
48685  const taxonomy_controls_BASE_QUERY = {
48686    order: 'asc',
48687    _fields: 'id,name',
48688    context: 'view'
48689  };
48690  
48691  // Helper function to get the term id based on user input in terms `FormTokenField`.
48692  const getTermIdByTermValue = (terms, termValue) => {
48693    // First we check for exact match by `term.id` or case sensitive `term.name` match.
48694    const termId = termValue?.id || terms?.find(term => term.name === termValue)?.id;
48695    if (termId) {
48696      return termId;
48697    }
48698  
48699    /**
48700     * Here we make an extra check for entered terms in a non case sensitive way,
48701     * to match user expectations, due to `FormTokenField` behaviour that shows
48702     * suggestions which are case insensitive.
48703     *
48704     * Although WP tries to discourage users to add terms with the same name (case insensitive),
48705     * it's still possible if you manually change the name, as long as the terms have different slugs.
48706     * In this edge case we always apply the first match from the terms list.
48707     */
48708    const termValueLower = termValue.toLocaleLowerCase();
48709    return terms?.find(term => term.name.toLocaleLowerCase() === termValueLower)?.id;
48710  };
48711  function TaxonomyControls({
48712    onChange,
48713    query
48714  }) {
48715    const {
48716      postType,
48717      taxQuery
48718    } = query;
48719    const taxonomies = useTaxonomies(postType);
48720    if (!taxonomies || taxonomies.length === 0) {
48721      return null;
48722    }
48723    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
48724      spacing: 4,
48725      children: taxonomies.map(taxonomy => {
48726        const termIds = taxQuery?.[taxonomy.slug] || [];
48727        const handleChange = newTermIds => onChange({
48728          taxQuery: {
48729            ...taxQuery,
48730            [taxonomy.slug]: newTermIds
48731          }
48732        });
48733        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyItem, {
48734          taxonomy: taxonomy,
48735          termIds: termIds,
48736          onChange: handleChange
48737        }, taxonomy.slug);
48738      })
48739    });
48740  }
48741  
48742  /**
48743   * Renders a `FormTokenField` for a given taxonomy.
48744   *
48745   * @param {Object}   props          The props for the component.
48746   * @param {Object}   props.taxonomy The taxonomy object.
48747   * @param {number[]} props.termIds  An array with the block's term ids for the given taxonomy.
48748   * @param {Function} props.onChange Callback `onChange` function.
48749   * @return {JSX.Element} The rendered component.
48750   */
48751  function TaxonomyItem({
48752    taxonomy,
48753    termIds,
48754    onChange
48755  }) {
48756    const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
48757    const [value, setValue] = (0,external_wp_element_namespaceObject.useState)(taxonomy_controls_EMPTY_ARRAY);
48758    const [suggestions, setSuggestions] = (0,external_wp_element_namespaceObject.useState)(taxonomy_controls_EMPTY_ARRAY);
48759    const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 250);
48760    const {
48761      searchResults,
48762      searchHasResolved
48763    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48764      if (!search) {
48765        return {
48766          searchResults: taxonomy_controls_EMPTY_ARRAY,
48767          searchHasResolved: true
48768        };
48769      }
48770      const {
48771        getEntityRecords,
48772        hasFinishedResolution
48773      } = select(external_wp_coreData_namespaceObject.store);
48774      const selectorArgs = ['taxonomy', taxonomy.slug, {
48775        ...taxonomy_controls_BASE_QUERY,
48776        search,
48777        orderby: 'name',
48778        exclude: termIds,
48779        per_page: 20
48780      }];
48781      return {
48782        searchResults: getEntityRecords(...selectorArgs),
48783        searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
48784      };
48785    }, [search, termIds]);
48786    // `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.
48787    // They are used to extract the terms' names to populate the `FormTokenField` properly
48788    // and to sanitize the provided `termIds`, by setting only the ones that exist.
48789    const existingTerms = (0,external_wp_data_namespaceObject.useSelect)(select => {
48790      if (!termIds?.length) {
48791        return taxonomy_controls_EMPTY_ARRAY;
48792      }
48793      const {
48794        getEntityRecords
48795      } = select(external_wp_coreData_namespaceObject.store);
48796      return getEntityRecords('taxonomy', taxonomy.slug, {
48797        ...taxonomy_controls_BASE_QUERY,
48798        include: termIds,
48799        per_page: termIds.length
48800      });
48801    }, [termIds]);
48802    // Update the `value` state only after the selectors are resolved
48803    // to avoid emptying the input when we're changing terms.
48804    (0,external_wp_element_namespaceObject.useEffect)(() => {
48805      if (!termIds?.length) {
48806        setValue(taxonomy_controls_EMPTY_ARRAY);
48807      }
48808      if (!existingTerms?.length) {
48809        return;
48810      }
48811      // Returns only the existing entity ids. This prevents the component
48812      // from crashing in the editor, when non existing ids are provided.
48813      const sanitizedValue = termIds.reduce((accumulator, id) => {
48814        const entity = existingTerms.find(term => term.id === id);
48815        if (entity) {
48816          accumulator.push({
48817            id,
48818            value: entity.name
48819          });
48820        }
48821        return accumulator;
48822      }, []);
48823      setValue(sanitizedValue);
48824    }, [termIds, existingTerms]);
48825    // Update suggestions only when the query has resolved.
48826    (0,external_wp_element_namespaceObject.useEffect)(() => {
48827      if (!searchHasResolved) {
48828        return;
48829      }
48830      setSuggestions(searchResults.map(result => result.name));
48831    }, [searchResults, searchHasResolved]);
48832    const onTermsChange = newTermValues => {
48833      const newTermIds = new Set();
48834      for (const termValue of newTermValues) {
48835        const termId = getTermIdByTermValue(searchResults, termValue);
48836        if (termId) {
48837          newTermIds.add(termId);
48838        }
48839      }
48840      setSuggestions(taxonomy_controls_EMPTY_ARRAY);
48841      onChange(Array.from(newTermIds));
48842    };
48843    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
48844      className: "block-library-query-inspector__taxonomy-control",
48845      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48846        label: taxonomy.name,
48847        value: value,
48848        onInputChange: debouncedSearch,
48849        suggestions: suggestions,
48850        displayTransform: external_wp_htmlEntities_namespaceObject.decodeEntities,
48851        onChange: onTermsChange,
48852        __experimentalShowHowTo: false,
48853        __nextHasNoMarginBottom: true,
48854        __next40pxDefaultSize: true
48855      })
48856    });
48857  }
48858  
48859  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/format-controls.js
48860  /**
48861   * WordPress dependencies
48862   */
48863  
48864  
48865  
48866  
48867  
48868  // All WP post formats, sorted alphabetically by translated name.
48869  // Value is the post format slug. Label is the name.
48870  
48871  const POST_FORMATS = [{
48872    value: 'aside',
48873    label: (0,external_wp_i18n_namespaceObject.__)('Aside')
48874  }, {
48875    value: 'audio',
48876    label: (0,external_wp_i18n_namespaceObject.__)('Audio')
48877  }, {
48878    value: 'chat',
48879    label: (0,external_wp_i18n_namespaceObject.__)('Chat')
48880  }, {
48881    value: 'gallery',
48882    label: (0,external_wp_i18n_namespaceObject.__)('Gallery')
48883  }, {
48884    value: 'image',
48885    label: (0,external_wp_i18n_namespaceObject.__)('Image')
48886  }, {
48887    value: 'link',
48888    label: (0,external_wp_i18n_namespaceObject.__)('Link')
48889  }, {
48890    value: 'quote',
48891    label: (0,external_wp_i18n_namespaceObject.__)('Quote')
48892  }, {
48893    value: 'standard',
48894    label: (0,external_wp_i18n_namespaceObject.__)('Standard')
48895  }, {
48896    value: 'status',
48897    label: (0,external_wp_i18n_namespaceObject.__)('Status')
48898  }, {
48899    value: 'video',
48900    label: (0,external_wp_i18n_namespaceObject.__)('Video')
48901  }].sort((a, b) => {
48902    const normalizedA = a.label.toUpperCase();
48903    const normalizedB = b.label.toUpperCase();
48904    if (normalizedA < normalizedB) {
48905      return -1;
48906    }
48907    if (normalizedA > normalizedB) {
48908      return 1;
48909    }
48910    return 0;
48911  });
48912  
48913  // A helper function to convert translatable post format names into their static values.
48914  function formatNamesToValues(names, formats) {
48915    return names.map(name => {
48916      return formats.find(item => item.label.toLocaleLowerCase() === name.toLocaleLowerCase())?.value;
48917    }).filter(Boolean);
48918  }
48919  function FormatControls({
48920    onChange,
48921    query: {
48922      format
48923    }
48924  }) {
48925    // 'format' is expected to be an array. If it is not an array, for example
48926    // if a user has manually entered an invalid value in the block markup,
48927    // convert it to an array to prevent JavaScript errors.
48928    const normalizedFormats = Array.isArray(format) ? format : [format];
48929    const {
48930      supportedFormats
48931    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
48932      const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
48933      return {
48934        supportedFormats: themeSupports.formats
48935      };
48936    }, []);
48937    const formats = POST_FORMATS.filter(item => supportedFormats.includes(item.value));
48938    const values = normalizedFormats.map(name => formats.find(item => item.value === name)?.label).filter(Boolean);
48939    const suggestions = formats.filter(item => !normalizedFormats.includes(item.value)).map(item => item.label);
48940    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
48941      label: (0,external_wp_i18n_namespaceObject.__)('Formats'),
48942      value: values,
48943      suggestions: suggestions,
48944      onChange: newValues => {
48945        onChange({
48946          format: formatNamesToValues(newValues, formats)
48947        });
48948      },
48949      __experimentalShowHowTo: false,
48950      __experimentalExpandOnFocus: true,
48951      __nextHasNoMarginBottom: true,
48952      __next40pxDefaultSize: true
48953    });
48954  }
48955  
48956  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/sticky-control.js
48957  /**
48958   * WordPress dependencies
48959   */
48960  
48961  
48962  
48963  const stickyOptions = [{
48964    label: (0,external_wp_i18n_namespaceObject.__)('Include'),
48965    value: ''
48966  }, {
48967    label: (0,external_wp_i18n_namespaceObject.__)('Ignore'),
48968    value: 'ignore'
48969  }, {
48970    label: (0,external_wp_i18n_namespaceObject.__)('Exclude'),
48971    value: 'exclude'
48972  }, {
48973    label: (0,external_wp_i18n_namespaceObject.__)('Only'),
48974    value: 'only'
48975  }];
48976  function StickyControl({
48977    value,
48978    onChange
48979  }) {
48980    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
48981      __nextHasNoMarginBottom: true,
48982      __next40pxDefaultSize: true,
48983      label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
48984      options: stickyOptions,
48985      value: value,
48986      onChange: onChange,
48987      help: (0,external_wp_i18n_namespaceObject.__)('Sticky posts always appear first, regardless of their publish date.')
48988    });
48989  }
48990  
48991  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/per-page-control.js
48992  /**
48993   * WordPress dependencies
48994   */
48995  
48996  
48997  
48998  const MIN_POSTS_PER_PAGE = 1;
48999  const MAX_POSTS_PER_PAGE = 100;
49000  const PerPageControl = ({
49001    perPage,
49002    offset = 0,
49003    onChange
49004  }) => {
49005    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
49006      __next40pxDefaultSize: true,
49007      __nextHasNoMarginBottom: true,
49008      label: (0,external_wp_i18n_namespaceObject.__)('Items per page'),
49009      min: MIN_POSTS_PER_PAGE,
49010      max: MAX_POSTS_PER_PAGE,
49011      onChange: newPerPage => {
49012        if (isNaN(newPerPage) || newPerPage < MIN_POSTS_PER_PAGE || newPerPage > MAX_POSTS_PER_PAGE) {
49013          return;
49014        }
49015        onChange({
49016          perPage: newPerPage,
49017          offset
49018        });
49019      },
49020      value: parseInt(perPage, 10)
49021    });
49022  };
49023  /* harmony default export */ const per_page_control = (PerPageControl);
49024  
49025  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/offset-controls.js
49026  /**
49027   * WordPress dependencies
49028   */
49029  
49030  
49031  
49032  const MIN_OFFSET = 0;
49033  const MAX_OFFSET = 100;
49034  const OffsetControl = ({
49035    offset = 0,
49036    onChange
49037  }) => {
49038    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
49039      __next40pxDefaultSize: true,
49040      label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
49041      value: offset,
49042      min: MIN_OFFSET,
49043      onChange: newOffset => {
49044        if (isNaN(newOffset) || newOffset < MIN_OFFSET || newOffset > MAX_OFFSET) {
49045          return;
49046        }
49047        onChange({
49048          offset: newOffset
49049        });
49050      }
49051    });
49052  };
49053  /* harmony default export */ const offset_controls = (OffsetControl);
49054  
49055  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/pages-control.js
49056  /**
49057   * WordPress dependencies
49058   */
49059  
49060  
49061  
49062  const PagesControl = ({
49063    pages,
49064    onChange
49065  }) => {
49066    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
49067      __next40pxDefaultSize: true,
49068      label: (0,external_wp_i18n_namespaceObject.__)('Max pages to show'),
49069      value: pages,
49070      min: 0,
49071      onChange: newPages => {
49072        if (isNaN(newPages) || newPages < 0) {
49073          return;
49074        }
49075        onChange({
49076          pages: newPages
49077        });
49078      },
49079      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).')
49080    });
49081  };
49082  /* harmony default export */ const pages_control = (PagesControl);
49083  
49084  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/inspector-controls/index.js
49085  /**
49086   * WordPress dependencies
49087   */
49088  
49089  
49090  
49091  
49092  
49093  
49094  
49095  /**
49096   * Internal dependencies
49097   */
49098  
49099  
49100  
49101  
49102  
49103  
49104  
49105  
49106  
49107  
49108  
49109  
49110  function QueryInspectorControls(props) {
49111    const {
49112      attributes,
49113      setQuery,
49114      setDisplayLayout,
49115      isSingular
49116    } = props;
49117    const {
49118      query,
49119      displayLayout
49120    } = attributes;
49121    const {
49122      order,
49123      orderBy,
49124      author: authorIds,
49125      pages,
49126      postType,
49127      perPage,
49128      offset,
49129      sticky,
49130      inherit,
49131      taxQuery,
49132      parents,
49133      format
49134    } = query;
49135    const allowedControls = useAllowedControls(attributes);
49136    const showSticky = postType === 'post';
49137    const {
49138      postTypesTaxonomiesMap,
49139      postTypesSelectOptions,
49140      postTypeFormatSupportMap
49141    } = usePostTypes();
49142    const taxonomies = useTaxonomies(postType);
49143    const isPostTypeHierarchical = useIsPostTypeHierarchical(postType);
49144    const onPostTypeChange = newValue => {
49145      const updateQuery = {
49146        postType: newValue
49147      };
49148      // We need to dynamically update the `taxQuery` property,
49149      // by removing any not supported taxonomy from the query.
49150      const supportedTaxonomies = postTypesTaxonomiesMap[newValue];
49151      const updatedTaxQuery = Object.entries(taxQuery || {}).reduce((accumulator, [taxonomySlug, terms]) => {
49152        if (supportedTaxonomies.includes(taxonomySlug)) {
49153          accumulator[taxonomySlug] = terms;
49154        }
49155        return accumulator;
49156      }, {});
49157      updateQuery.taxQuery = !!Object.keys(updatedTaxQuery).length ? updatedTaxQuery : undefined;
49158      if (newValue !== 'post') {
49159        updateQuery.sticky = '';
49160      }
49161      // We need to reset `parents` because they are tied to each post type.
49162      updateQuery.parents = [];
49163      // Post types can register post format support with `add_post_type_support`.
49164      // But we need to reset the `format` property when switching to post types
49165      // that do not support post formats.
49166      const hasFormatSupport = postTypeFormatSupportMap[newValue];
49167      if (!hasFormatSupport) {
49168        updateQuery.format = [];
49169      }
49170      setQuery(updateQuery);
49171    };
49172    const [querySearch, setQuerySearch] = (0,external_wp_element_namespaceObject.useState)(query.search);
49173    const onChangeDebounced = (0,external_wp_element_namespaceObject.useCallback)((0,external_wp_compose_namespaceObject.debounce)(() => {
49174      if (query.search !== querySearch) {
49175        setQuery({
49176          search: querySearch
49177        });
49178      }
49179    }, 250), [querySearch, query.search]);
49180    (0,external_wp_element_namespaceObject.useEffect)(() => {
49181      onChangeDebounced();
49182      return onChangeDebounced.cancel;
49183    }, [querySearch, onChangeDebounced]);
49184    const orderByOptions = useOrderByOptions(postType);
49185    const showInheritControl = isControlAllowed(allowedControls, 'inherit');
49186    const showPostTypeControl = !inherit && isControlAllowed(allowedControls, 'postType');
49187    const postTypeControlLabel = (0,external_wp_i18n_namespaceObject.__)('Post type');
49188    const postTypeControlHelp = (0,external_wp_i18n_namespaceObject.__)('Select the type of content to display: posts, pages, or custom post types.');
49189    const showColumnsControl = false;
49190    const showOrderControl = !inherit && isControlAllowed(allowedControls, 'order');
49191    const showStickyControl = !inherit && showSticky && isControlAllowed(allowedControls, 'sticky');
49192    const showSettingsPanel = showInheritControl || showPostTypeControl || showColumnsControl || showOrderControl || showStickyControl;
49193    const showTaxControl = !!taxonomies?.length && isControlAllowed(allowedControls, 'taxQuery');
49194    const showAuthorControl = isControlAllowed(allowedControls, 'author');
49195    const showSearchControl = isControlAllowed(allowedControls, 'search');
49196    const showParentControl = isControlAllowed(allowedControls, 'parents') && isPostTypeHierarchical;
49197    const postTypeHasFormatSupport = postTypeFormatSupportMap[postType];
49198    const showFormatControl = (0,external_wp_data_namespaceObject.useSelect)(select => {
49199      // Check if the post type supports post formats and if the control is allowed.
49200      if (!postTypeHasFormatSupport || !isControlAllowed(allowedControls, 'format')) {
49201        return false;
49202      }
49203      const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
49204  
49205      // If there are no supported formats, getThemeSupports still includes the default 'standard' format,
49206      // and in this case the control should not be shown since the user has no other formats to choose from.
49207      return themeSupports.formats && themeSupports.formats.length > 0 && themeSupports.formats.some(type => type !== 'standard');
49208    }, [allowedControls, postTypeHasFormatSupport]);
49209    const showFiltersPanel = showTaxControl || showAuthorControl || showSearchControl || showParentControl || showFormatControl;
49210    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
49211    const showPostCountControl = isControlAllowed(allowedControls, 'postCount');
49212    const showOffSetControl = isControlAllowed(allowedControls, 'offset');
49213    const showPagesControl = isControlAllowed(allowedControls, 'pages');
49214    const showDisplayPanel = showPostCountControl || showOffSetControl || showPagesControl;
49215  
49216    // The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).
49217    // Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.
49218    const hasInheritanceWarning = isSingular && inherit;
49219    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49220      children: [showSettingsPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
49221        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
49222        resetAll: () => {
49223          setQuery({
49224            postType: 'post',
49225            order: 'desc',
49226            orderBy: 'date',
49227            sticky: '',
49228            inherit: true
49229          });
49230        },
49231        dropdownMenuProps: dropdownMenuProps,
49232        children: [showInheritControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49233          hasValue: () => !inherit,
49234          label: (0,external_wp_i18n_namespaceObject.__)('Query type'),
49235          onDeselect: () => setQuery({
49236            inherit: true
49237          }),
49238          isShownByDefault: true,
49239          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
49240            spacing: 4,
49241            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
49242              __next40pxDefaultSize: true,
49243              __nextHasNoMarginBottom: true,
49244              label: (0,external_wp_i18n_namespaceObject.__)('Query type'),
49245              isBlock: true,
49246              onChange: value => {
49247                setQuery({
49248                  inherit: value === 'default'
49249                });
49250              },
49251              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.'),
49252              value: !!inherit ? 'default' : 'custom',
49253              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49254                value: "default",
49255                label: (0,external_wp_i18n_namespaceObject.__)('Default')
49256              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49257                value: "custom",
49258                label: (0,external_wp_i18n_namespaceObject.__)('Custom')
49259              })]
49260            }), hasInheritanceWarning && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
49261              status: "warning",
49262              isDismissible: false,
49263              children: (0,external_wp_i18n_namespaceObject.__)('Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).')
49264            })]
49265          })
49266        }), showPostTypeControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49267          hasValue: () => postType !== 'post',
49268          label: postTypeControlLabel,
49269          onDeselect: () => onPostTypeChange('post'),
49270          isShownByDefault: true,
49271          children: postTypesSelectOptions.length > 2 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
49272            __nextHasNoMarginBottom: true,
49273            __next40pxDefaultSize: true,
49274            options: postTypesSelectOptions,
49275            value: postType,
49276            label: postTypeControlLabel,
49277            onChange: onPostTypeChange,
49278            help: postTypeControlHelp
49279          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
49280            __nextHasNoMarginBottom: true,
49281            __next40pxDefaultSize: true,
49282            isBlock: true,
49283            value: postType,
49284            label: postTypeControlLabel,
49285            onChange: onPostTypeChange,
49286            help: postTypeControlHelp,
49287            children: postTypesSelectOptions.map(option => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
49288              value: option.value,
49289              label: option.label
49290            }, option.value))
49291          })
49292        }), showColumnsControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49293          hasValue: () => displayLayout?.columns !== 2,
49294          label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
49295          onDeselect: () => setDisplayLayout({
49296            columns: 2
49297          }),
49298          isShownByDefault: true,
49299          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49300            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
49301              __nextHasNoMarginBottom: true,
49302              __next40pxDefaultSize: true,
49303              label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
49304              value: displayLayout.columns,
49305              onChange: value => setDisplayLayout({
49306                columns: value
49307              }),
49308              min: 2,
49309              max: Math.max(6, displayLayout.columns)
49310            }), displayLayout.columns > 6 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
49311              status: "warning",
49312              isDismissible: false,
49313              children: (0,external_wp_i18n_namespaceObject.__)('This column count exceeds the recommended amount and may cause visual breakage.')
49314            })]
49315          })
49316        }), showOrderControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49317          hasValue: () => order !== 'desc' || orderBy !== 'date',
49318          label: (0,external_wp_i18n_namespaceObject.__)('Order by'),
49319          onDeselect: () => setQuery({
49320            order: 'desc',
49321            orderBy: 'date'
49322          }),
49323          isShownByDefault: true,
49324          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(order_control, {
49325            order,
49326            orderBy,
49327            orderByOptions,
49328            onChange: setQuery
49329          })
49330        }), showStickyControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49331          hasValue: () => !!sticky,
49332          label: (0,external_wp_i18n_namespaceObject.__)('Sticky posts'),
49333          onDeselect: () => setQuery({
49334            sticky: ''
49335          }),
49336          isShownByDefault: true,
49337          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StickyControl, {
49338            value: sticky,
49339            onChange: value => setQuery({
49340              sticky: value
49341            })
49342          })
49343        })]
49344      }), !inherit && showDisplayPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
49345        className: "block-library-query-toolspanel__display",
49346        label: (0,external_wp_i18n_namespaceObject.__)('Display'),
49347        resetAll: () => {
49348          setQuery({
49349            offset: 0,
49350            pages: 0
49351          });
49352        },
49353        dropdownMenuProps: dropdownMenuProps,
49354        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49355          label: (0,external_wp_i18n_namespaceObject.__)('Items per page'),
49356          hasValue: () => perPage > 0,
49357          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(per_page_control, {
49358            perPage: perPage,
49359            offset: offset,
49360            onChange: setQuery
49361          })
49362        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49363          label: (0,external_wp_i18n_namespaceObject.__)('Offset'),
49364          hasValue: () => offset > 0,
49365          onDeselect: () => setQuery({
49366            offset: 0
49367          }),
49368          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(offset_controls, {
49369            offset: offset,
49370            onChange: setQuery
49371          })
49372        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49373          label: (0,external_wp_i18n_namespaceObject.__)('Max pages to show'),
49374          hasValue: () => pages > 0,
49375          onDeselect: () => setQuery({
49376            pages: 0
49377          }),
49378          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(pages_control, {
49379            pages: pages,
49380            onChange: setQuery
49381          })
49382        })]
49383      }), !inherit && showFiltersPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
49384        className: "block-library-query-toolspanel__filters" // unused but kept for backward compatibility
49385        ,
49386        label: (0,external_wp_i18n_namespaceObject.__)('Filters'),
49387        resetAll: () => {
49388          setQuery({
49389            author: '',
49390            parents: [],
49391            search: '',
49392            taxQuery: null,
49393            format: []
49394          });
49395          setQuerySearch('');
49396        },
49397        dropdownMenuProps: dropdownMenuProps,
49398        children: [showTaxControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49399          label: (0,external_wp_i18n_namespaceObject.__)('Taxonomies'),
49400          hasValue: () => Object.values(taxQuery || {}).some(terms => !!terms.length),
49401          onDeselect: () => setQuery({
49402            taxQuery: null
49403          }),
49404          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyControls, {
49405            onChange: setQuery,
49406            query: query
49407          })
49408        }), showAuthorControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49409          hasValue: () => !!authorIds,
49410          label: (0,external_wp_i18n_namespaceObject.__)('Authors'),
49411          onDeselect: () => setQuery({
49412            author: ''
49413          }),
49414          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(author_control, {
49415            value: authorIds,
49416            onChange: setQuery
49417          })
49418        }), showSearchControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49419          hasValue: () => !!querySearch,
49420          label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
49421          onDeselect: () => setQuerySearch(''),
49422          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
49423            __nextHasNoMarginBottom: true,
49424            __next40pxDefaultSize: true,
49425            label: (0,external_wp_i18n_namespaceObject.__)('Keyword'),
49426            value: querySearch,
49427            onChange: setQuerySearch
49428          })
49429        }), showParentControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49430          hasValue: () => !!parents?.length,
49431          label: (0,external_wp_i18n_namespaceObject.__)('Parents'),
49432          onDeselect: () => setQuery({
49433            parents: []
49434          }),
49435          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(parent_control, {
49436            parents: parents,
49437            postType: postType,
49438            onChange: setQuery
49439          })
49440        }), showFormatControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
49441          hasValue: () => !!format?.length,
49442          label: (0,external_wp_i18n_namespaceObject.__)('Formats'),
49443          onDeselect: () => setQuery({
49444            format: []
49445          }),
49446          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FormatControls, {
49447            onChange: setQuery,
49448            query: query
49449          })
49450        })]
49451      })]
49452    });
49453  }
49454  
49455  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/enhanced-pagination-modal.js
49456  /**
49457   * WordPress dependencies
49458   */
49459  
49460  
49461  
49462  
49463  /**
49464   * Internal dependencies
49465   */
49466  
49467  
49468  const modalDescriptionId = 'wp-block-query-enhanced-pagination-modal__description';
49469  function EnhancedPaginationModal({
49470    clientId,
49471    attributes: {
49472      enhancedPagination
49473    },
49474    setAttributes
49475  }) {
49476    const [isOpen, setOpen] = (0,external_wp_element_namespaceObject.useState)(false);
49477    const {
49478      hasBlocksFromPlugins,
49479      hasPostContentBlock,
49480      hasUnsupportedBlocks
49481    } = useUnsupportedBlocks(clientId);
49482    (0,external_wp_element_namespaceObject.useEffect)(() => {
49483      if (enhancedPagination && hasUnsupportedBlocks && !window.__experimentalFullPageClientSideNavigation) {
49484        setAttributes({
49485          enhancedPagination: false
49486        });
49487        setOpen(true);
49488      }
49489    }, [enhancedPagination, hasUnsupportedBlocks, setAttributes]);
49490    const closeModal = () => {
49491      setOpen(false);
49492    };
49493    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.');
49494    if (hasBlocksFromPlugins) {
49495      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;
49496    } else if (hasPostContentBlock) {
49497      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;
49498    }
49499    return isOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
49500      title: (0,external_wp_i18n_namespaceObject.__)('Query block: Reload full page enabled'),
49501      className: "wp-block-query__enhanced-pagination-modal",
49502      aria: {
49503        describedby: modalDescriptionId
49504      },
49505      role: "alertdialog",
49506      focusOnMount: "firstElement",
49507      isDismissible: false,
49508      onRequestClose: closeModal,
49509      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
49510        alignment: "right",
49511        spacing: 5,
49512        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
49513          id: modalDescriptionId,
49514          children: notice
49515        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
49516          __next40pxDefaultSize: true,
49517          variant: "primary",
49518          onClick: closeModal,
49519          children: (0,external_wp_i18n_namespaceObject.__)('OK')
49520        })]
49521      })
49522    });
49523  }
49524  
49525  ;// ./node_modules/@wordpress/block-library/build-module/utils/search-patterns.js
49526  /**
49527   * External dependencies
49528   */
49529  
49530  
49531  /**
49532   * Sanitizes the search input string.
49533   *
49534   * @param {string} input The search input to normalize.
49535   *
49536   * @return {string} The normalized search input.
49537   */
49538  function normalizeSearchInput(input = '') {
49539    // Disregard diacritics.
49540    input = remove_accents_default()(input);
49541  
49542    // Trim & Lowercase.
49543    input = input.trim().toLowerCase();
49544    return input;
49545  }
49546  
49547  /**
49548   * Get the search rank for a given pattern and a specific search term.
49549   *
49550   * @param {Object} pattern     Pattern to rank
49551   * @param {string} searchValue Search term
49552   * @return {number} A pattern search rank
49553   */
49554  function getPatternSearchRank(pattern, searchValue) {
49555    const normalizedSearchValue = normalizeSearchInput(searchValue);
49556    const normalizedTitle = normalizeSearchInput(pattern.title);
49557    let rank = 0;
49558    if (normalizedSearchValue === normalizedTitle) {
49559      rank += 30;
49560    } else if (normalizedTitle.startsWith(normalizedSearchValue)) {
49561      rank += 20;
49562    } else {
49563      const searchTerms = normalizedSearchValue.split(' ');
49564      const hasMatchedTerms = searchTerms.every(searchTerm => normalizedTitle.includes(searchTerm));
49565  
49566      // Prefer pattern with every search word in the title.
49567      if (hasMatchedTerms) {
49568        rank += 10;
49569      }
49570    }
49571    return rank;
49572  }
49573  
49574  /**
49575   * Filters an pattern list given a search term.
49576   *
49577   * @param {Array}  patterns    Item list
49578   * @param {string} searchValue Search input.
49579   *
49580   * @return {Array} Filtered pattern list.
49581   */
49582  function searchPatterns(patterns = [], searchValue = '') {
49583    if (!searchValue) {
49584      return patterns;
49585    }
49586    const rankedPatterns = patterns.map(pattern => {
49587      return [pattern, getPatternSearchRank(pattern, searchValue)];
49588    }).filter(([, rank]) => rank > 0);
49589    rankedPatterns.sort(([, rank1], [, rank2]) => rank2 - rank1);
49590    return rankedPatterns.map(([pattern]) => pattern);
49591  }
49592  
49593  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/pattern-selection.js
49594  /**
49595   * WordPress dependencies
49596   */
49597  
49598  
49599  
49600  
49601  
49602  
49603  /**
49604   * Internal dependencies
49605   */
49606  
49607  
49608  
49609  function PatternSelectionModal({
49610    clientId,
49611    attributes,
49612    setIsPatternSelectionModalOpen
49613  }) {
49614    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
49615      overlayClassName: "block-library-query-pattern__selection-modal",
49616      title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
49617      onRequestClose: () => setIsPatternSelectionModalOpen(false),
49618      isFullScreen: true,
49619      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelection, {
49620        clientId: clientId,
49621        attributes: attributes
49622      })
49623    });
49624  }
49625  function useBlockPatterns(clientId, attributes) {
49626    const blockNameForPatterns = useBlockNameForPatterns(clientId, attributes);
49627    return usePatterns(clientId, blockNameForPatterns);
49628  }
49629  function PatternSelection({
49630    clientId,
49631    attributes,
49632    showTitlesAsTooltip = false,
49633    showSearch = true
49634  }) {
49635    const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)('');
49636    const {
49637      replaceBlock,
49638      selectBlock
49639    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
49640    const blockPatterns = useBlockPatterns(clientId, attributes);
49641    /*
49642     * When we preview Query Loop blocks we should prefer the current
49643     * block's postType, which is passed through block context.
49644     */
49645    const blockPreviewContext = (0,external_wp_element_namespaceObject.useMemo)(() => ({
49646      previewPostType: attributes.query.postType
49647    }), [attributes.query.postType]);
49648    const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
49649      return searchPatterns(blockPatterns, searchValue);
49650    }, [blockPatterns, searchValue]);
49651    const onBlockPatternSelect = (pattern, blocks) => {
49652      const {
49653        newBlocks,
49654        queryClientIds
49655      } = getTransformedBlocksFromPattern(blocks, attributes);
49656      replaceBlock(clientId, newBlocks);
49657      if (queryClientIds[0]) {
49658        selectBlock(queryClientIds[0]);
49659      }
49660    };
49661    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
49662      className: "block-library-query-pattern__selection-content",
49663      children: [showSearch && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49664        className: "block-library-query-pattern__selection-search",
49665        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
49666          __nextHasNoMarginBottom: true,
49667          onChange: setSearchValue,
49668          value: searchValue,
49669          label: (0,external_wp_i18n_namespaceObject.__)('Search'),
49670          placeholder: (0,external_wp_i18n_namespaceObject.__)('Search')
49671        })
49672      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
49673        value: blockPreviewContext,
49674        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
49675          blockPatterns: filteredBlockPatterns,
49676          onClickPattern: onBlockPatternSelect,
49677          showTitlesAsTooltip: showTitlesAsTooltip
49678        })
49679      })]
49680    });
49681  }
49682  
49683  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/query-toolbar.js
49684  /**
49685   * WordPress dependencies
49686   */
49687  
49688  
49689  
49690  /**
49691   * Internal dependencies
49692   */
49693  
49694  
49695  function QueryToolbar({
49696    clientId,
49697    attributes
49698  }) {
49699    const hasPatterns = useBlockPatterns(clientId, attributes).length;
49700    if (!hasPatterns) {
49701      return null;
49702    }
49703    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
49704      className: "wp-block-template-part__block-control-group",
49705      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalDropdownContentWrapper, {
49706        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
49707          contentClassName: "block-editor-block-settings-menu__popover",
49708          focusOnMount: "firstElement",
49709          expandOnMobile: true,
49710          renderToggle: ({
49711            isOpen,
49712            onToggle
49713          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
49714            "aria-haspopup": "true",
49715            "aria-expanded": isOpen,
49716            onClick: onToggle,
49717            children: (0,external_wp_i18n_namespaceObject.__)('Change design')
49718          }),
49719          renderContent: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelection, {
49720            clientId: clientId,
49721            attributes: attributes,
49722            showSearch: false,
49723            showTitlesAsTooltip: true
49724          })
49725        })
49726      })
49727    });
49728  }
49729  
49730  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/query-content.js
49731  /**
49732   * WordPress dependencies
49733   */
49734  
49735  
49736  
49737  
49738  
49739  
49740  
49741  
49742  /**
49743   * Internal dependencies
49744   */
49745  
49746  
49747  
49748  
49749  
49750  
49751  
49752  const DEFAULTS_POSTS_PER_PAGE = 3;
49753  const query_content_TEMPLATE = [['core/post-template']];
49754  function QueryContent({
49755    attributes,
49756    setAttributes,
49757    clientId,
49758    context,
49759    name
49760  }) {
49761    const {
49762      queryId,
49763      query,
49764      displayLayout,
49765      enhancedPagination,
49766      tagName: TagName = 'div',
49767      query: {
49768        inherit
49769      } = {}
49770    } = attributes;
49771    const {
49772      templateSlug
49773    } = context;
49774    const {
49775      isSingular
49776    } = getQueryContextFromTemplate(templateSlug);
49777    const {
49778      __unstableMarkNextChangeAsNotPersistent
49779    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
49780    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(QueryContent);
49781    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49782    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
49783      template: query_content_TEMPLATE
49784    });
49785    const {
49786      postsPerPage
49787    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
49788      const {
49789        getSettings
49790      } = select(external_wp_blockEditor_namespaceObject.store);
49791      const {
49792        getEntityRecord,
49793        getEntityRecordEdits,
49794        canUser
49795      } = select(external_wp_coreData_namespaceObject.store);
49796      const settingPerPage = canUser('read', {
49797        kind: 'root',
49798        name: 'site'
49799      }) ? +getEntityRecord('root', 'site')?.posts_per_page : +getSettings().postsPerPage;
49800  
49801      // Gets changes made via the template area posts per page setting. These won't be saved
49802      // until the page is saved, but we should reflect this setting within the query loops
49803      // that inherit it.
49804      const editedSettingPerPage = +getEntityRecordEdits('root', 'site')?.posts_per_page;
49805      return {
49806        postsPerPage: editedSettingPerPage || settingPerPage || DEFAULTS_POSTS_PER_PAGE
49807      };
49808    }, []);
49809    // There are some effects running where some initialization logic is
49810    // happening and setting some values to some attributes (ex. queryId).
49811    // These updates can cause an `undo trap` where undoing will result in
49812    // resetting again, so we need to mark these changes as not persistent
49813    // with `__unstableMarkNextChangeAsNotPersistent`.
49814  
49815    // Changes in query property (which is an object) need to be in the same callback,
49816    // because updates are batched after the render and changes in different query properties
49817    // would cause to override previous wanted changes.
49818    const updateQuery = (0,external_wp_element_namespaceObject.useCallback)(newQuery => setAttributes({
49819      query: {
49820        ...query,
49821        ...newQuery
49822      }
49823    }), [query, setAttributes]);
49824    (0,external_wp_element_namespaceObject.useEffect)(() => {
49825      const newQuery = {};
49826      // When we inherit from global query always need to set the `perPage`
49827      // based on the reading settings.
49828      if (inherit && query.perPage !== postsPerPage) {
49829        newQuery.perPage = postsPerPage;
49830      } else if (!query.perPage && postsPerPage) {
49831        newQuery.perPage = postsPerPage;
49832      }
49833      if (!!Object.keys(newQuery).length) {
49834        __unstableMarkNextChangeAsNotPersistent();
49835        updateQuery(newQuery);
49836      }
49837    }, [query.perPage, inherit, postsPerPage, __unstableMarkNextChangeAsNotPersistent, updateQuery]);
49838    // We need this for multi-query block pagination.
49839    // Query parameters for each block are scoped to their ID.
49840    (0,external_wp_element_namespaceObject.useEffect)(() => {
49841      if (!Number.isFinite(queryId)) {
49842        __unstableMarkNextChangeAsNotPersistent();
49843        setAttributes({
49844          queryId: instanceId
49845        });
49846      }
49847    }, [queryId, instanceId, __unstableMarkNextChangeAsNotPersistent, setAttributes]);
49848    const updateDisplayLayout = newDisplayLayout => setAttributes({
49849      displayLayout: {
49850        ...displayLayout,
49851        ...newDisplayLayout
49852      }
49853    });
49854    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
49855      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnhancedPaginationModal, {
49856        attributes: attributes,
49857        setAttributes: setAttributes,
49858        clientId: clientId
49859      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
49860        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryInspectorControls, {
49861          name: name,
49862          attributes: attributes,
49863          setQuery: updateQuery,
49864          setDisplayLayout: updateDisplayLayout,
49865          setAttributes: setAttributes,
49866          clientId: clientId,
49867          isSingular: isSingular
49868        })
49869      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
49870        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryToolbar, {
49871          attributes: attributes,
49872          clientId: clientId
49873        })
49874      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
49875        group: "advanced",
49876        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
49877          __nextHasNoMarginBottom: true,
49878          __next40pxDefaultSize: true,
49879          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
49880          options: [{
49881            label: (0,external_wp_i18n_namespaceObject.__)('Default (<div>)'),
49882            value: 'div'
49883          }, {
49884            label: '<main>',
49885            value: 'main'
49886          }, {
49887            label: '<section>',
49888            value: 'section'
49889          }, {
49890            label: '<aside>',
49891            value: 'aside'
49892          }],
49893          value: TagName,
49894          onChange: value => setAttributes({
49895            tagName: value
49896          }),
49897          help: htmlElementMessages[TagName]
49898        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnhancedPaginationControl, {
49899          enhancedPagination: enhancedPagination,
49900          setAttributes: setAttributes,
49901          clientId: clientId
49902        })]
49903      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
49904        ...innerBlocksProps
49905      })]
49906    });
49907  }
49908  
49909  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/query-placeholder.js
49910  /**
49911   * WordPress dependencies
49912   */
49913  
49914  
49915  
49916  
49917  
49918  
49919  
49920  /**
49921   * Internal dependencies
49922   */
49923  
49924  
49925  
49926  function QueryPlaceholder({
49927    attributes,
49928    clientId,
49929    name,
49930    openPatternSelectionModal
49931  }) {
49932    const [isStartingBlank, setIsStartingBlank] = (0,external_wp_element_namespaceObject.useState)(false);
49933    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49934    const {
49935      blockType,
49936      activeBlockVariation
49937    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
49938      const {
49939        getActiveBlockVariation,
49940        getBlockType
49941      } = select(external_wp_blocks_namespaceObject.store);
49942      return {
49943        blockType: getBlockType(name),
49944        activeBlockVariation: getActiveBlockVariation(name, attributes)
49945      };
49946    }, [name, attributes]);
49947    const hasPatterns = !!useBlockPatterns(clientId, attributes).length;
49948    const icon = activeBlockVariation?.icon?.src || activeBlockVariation?.icon || blockType?.icon?.src;
49949    const label = activeBlockVariation?.title || blockType?.title;
49950    if (isStartingBlank) {
49951      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryVariationPicker, {
49952        clientId: clientId,
49953        attributes: attributes,
49954        icon: icon,
49955        label: label
49956      });
49957    }
49958    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49959      ...blockProps,
49960      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
49961        icon: icon,
49962        label: label,
49963        instructions: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern for the query loop or start blank.'),
49964        children: [!!hasPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
49965          __next40pxDefaultSize: true,
49966          variant: "primary",
49967          onClick: openPatternSelectionModal,
49968          children: (0,external_wp_i18n_namespaceObject.__)('Choose')
49969        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
49970          __next40pxDefaultSize: true,
49971          variant: "secondary",
49972          onClick: () => {
49973            setIsStartingBlank(true);
49974          },
49975          children: (0,external_wp_i18n_namespaceObject.__)('Start blank')
49976        })]
49977      })
49978    });
49979  }
49980  function QueryVariationPicker({
49981    clientId,
49982    attributes,
49983    icon,
49984    label
49985  }) {
49986    const scopeVariations = useScopedBlockVariations(attributes);
49987    const {
49988      replaceInnerBlocks
49989    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
49990    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
49991    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
49992      ...blockProps,
49993      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockVariationPicker, {
49994        icon: icon,
49995        label: label,
49996        variations: scopeVariations,
49997        onSelect: variation => {
49998          if (variation.innerBlocks) {
49999            replaceInnerBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlocksFromInnerBlocksTemplate)(variation.innerBlocks), false);
50000          }
50001        }
50002      })
50003    });
50004  }
50005  
50006  ;// ./node_modules/@wordpress/block-library/build-module/query/edit/index.js
50007  /**
50008   * WordPress dependencies
50009   */
50010  
50011  
50012  
50013  
50014  /**
50015   * Internal dependencies
50016   */
50017  
50018  
50019  
50020  
50021  const QueryEdit = props => {
50022    const {
50023      clientId,
50024      attributes
50025    } = props;
50026    const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
50027    const hasInnerBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlocks(clientId).length, [clientId]);
50028    const Component = hasInnerBlocks ? QueryContent : QueryPlaceholder;
50029    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50030      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
50031        ...props,
50032        openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
50033      }), isPatternSelectionModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelectionModal, {
50034        clientId: clientId,
50035        attributes: attributes,
50036        setIsPatternSelectionModalOpen: setIsPatternSelectionModalOpen
50037      })]
50038    });
50039  };
50040  /* harmony default export */ const query_edit = (QueryEdit);
50041  
50042  ;// ./node_modules/@wordpress/block-library/build-module/query/save.js
50043  /**
50044   * WordPress dependencies
50045   */
50046  
50047  
50048  function query_save_save({
50049    attributes: {
50050      tagName: Tag = 'div'
50051    }
50052  }) {
50053    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50054    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50055    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50056      ...innerBlocksProps
50057    });
50058  }
50059  
50060  ;// ./node_modules/@wordpress/block-library/build-module/query/icons.js
50061  /**
50062   * WordPress dependencies
50063   */
50064  
50065  
50066  const titleDate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50067    xmlns: "http://www.w3.org/2000/svg",
50068    viewBox: "0 0 48 48",
50069    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50070      d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z"
50071    })
50072  });
50073  const titleExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50074    xmlns: "http://www.w3.org/2000/svg",
50075    viewBox: "0 0 48 48",
50076    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50077      d: "M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z"
50078    })
50079  });
50080  const titleDateExcerpt = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50081    xmlns: "http://www.w3.org/2000/svg",
50082    viewBox: "0 0 48 48",
50083    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50084      d: "M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z"
50085    })
50086  });
50087  const imageDateTitle = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
50088    xmlns: "http://www.w3.org/2000/svg",
50089    viewBox: "0 0 48 48",
50090    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
50091      d: "M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z"
50092    })
50093  });
50094  
50095  ;// ./node_modules/@wordpress/block-library/build-module/query/variations.js
50096  /**
50097   * WordPress dependencies
50098   */
50099  
50100  
50101  /**
50102   * Internal dependencies
50103   */
50104  
50105  const query_variations_variations = [{
50106    name: 'title-date',
50107    title: (0,external_wp_i18n_namespaceObject.__)('Title & Date'),
50108    icon: titleDate,
50109    attributes: {},
50110    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date']]], ['core/query-pagination'], ['core/query-no-results']],
50111    scope: ['block']
50112  }, {
50113    name: 'title-excerpt',
50114    title: (0,external_wp_i18n_namespaceObject.__)('Title & Excerpt'),
50115    icon: titleExcerpt,
50116    attributes: {},
50117    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
50118    scope: ['block']
50119  }, {
50120    name: 'title-date-excerpt',
50121    title: (0,external_wp_i18n_namespaceObject.__)('Title, Date, & Excerpt'),
50122    icon: titleDateExcerpt,
50123    attributes: {},
50124    innerBlocks: [['core/post-template', {}, [['core/post-title'], ['core/post-date'], ['core/post-excerpt']]], ['core/query-pagination'], ['core/query-no-results']],
50125    scope: ['block']
50126  }, {
50127    name: 'image-date-title',
50128    title: (0,external_wp_i18n_namespaceObject.__)('Image, Date, & Title'),
50129    icon: imageDateTitle,
50130    attributes: {},
50131    innerBlocks: [['core/post-template', {}, [['core/post-featured-image'], ['core/post-date'], ['core/post-title']]], ['core/query-pagination'], ['core/query-no-results']],
50132    scope: ['block']
50133  }];
50134  /* harmony default export */ const query_variations = (query_variations_variations);
50135  
50136  ;// ./node_modules/@wordpress/block-library/build-module/query/deprecated.js
50137  /**
50138   * WordPress dependencies
50139   */
50140  
50141  
50142  
50143  /**
50144   * Internal dependencies
50145   */
50146  
50147  
50148  const {
50149    cleanEmptyObject: deprecated_cleanEmptyObject
50150  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
50151  const migrateToTaxQuery = attributes => {
50152    const {
50153      query
50154    } = attributes;
50155    const {
50156      categoryIds,
50157      tagIds,
50158      ...newQuery
50159    } = query;
50160    if (query.categoryIds?.length || query.tagIds?.length) {
50161      newQuery.taxQuery = {
50162        category: !!query.categoryIds?.length ? query.categoryIds : undefined,
50163        post_tag: !!query.tagIds?.length ? query.tagIds : undefined
50164      };
50165    }
50166    return {
50167      ...attributes,
50168      query: newQuery
50169    };
50170  };
50171  const migrateColors = (attributes, innerBlocks) => {
50172    // Remove color style attributes from the Query block.
50173    const {
50174      style,
50175      backgroundColor,
50176      gradient,
50177      textColor,
50178      ...newAttributes
50179    } = attributes;
50180    const hasColorStyles = backgroundColor || gradient || textColor || style?.color || style?.elements?.link;
50181  
50182    // If the query block doesn't currently have any color styles,
50183    // nothing needs migrating.
50184    if (!hasColorStyles) {
50185      return [attributes, innerBlocks];
50186    }
50187  
50188    // Clean color values from style attribute object.
50189    if (style) {
50190      newAttributes.style = deprecated_cleanEmptyObject({
50191        ...style,
50192        color: undefined,
50193        elements: {
50194          ...style.elements,
50195          link: undefined
50196        }
50197      });
50198    }
50199  
50200    // If the inner blocks are already wrapped in a single group
50201    // block, add the color support styles to that group block.
50202    if (hasSingleInnerGroupBlock(innerBlocks)) {
50203      const groupBlock = innerBlocks[0];
50204  
50205      // Create new styles for the group block.
50206      const hasStyles = style?.color || style?.elements?.link || groupBlock.attributes.style;
50207      const newStyles = hasStyles ? deprecated_cleanEmptyObject({
50208        ...groupBlock.attributes.style,
50209        color: style?.color,
50210        elements: style?.elements?.link ? {
50211          link: style?.elements?.link
50212        } : undefined
50213      }) : undefined;
50214  
50215      // Create a new Group block from the original.
50216      const updatedGroupBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
50217        ...groupBlock.attributes,
50218        backgroundColor,
50219        gradient,
50220        textColor,
50221        style: newStyles
50222      }, groupBlock.innerBlocks);
50223      return [newAttributes, [updatedGroupBlock]];
50224    }
50225  
50226    // When we don't have a single wrapping group block for the inner
50227    // blocks, wrap the current inner blocks in a group applying the
50228    // color styles to that.
50229    const newGroupBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
50230      backgroundColor,
50231      gradient,
50232      textColor,
50233      style: deprecated_cleanEmptyObject({
50234        color: style?.color,
50235        elements: style?.elements?.link ? {
50236          link: style?.elements?.link
50237        } : undefined
50238      })
50239    }, innerBlocks);
50240    return [newAttributes, [newGroupBlock]];
50241  };
50242  const hasSingleInnerGroupBlock = (innerBlocks = []) => innerBlocks.length === 1 && innerBlocks[0].name === 'core/group';
50243  const migrateToConstrainedLayout = attributes => {
50244    const {
50245      layout = null
50246    } = attributes;
50247    if (!layout) {
50248      return attributes;
50249    }
50250    const {
50251      inherit = null,
50252      contentSize = null,
50253      ...newLayout
50254    } = layout;
50255    if (inherit || contentSize) {
50256      return {
50257        ...attributes,
50258        layout: {
50259          ...newLayout,
50260          contentSize,
50261          type: 'constrained'
50262        }
50263      };
50264    }
50265    return attributes;
50266  };
50267  const findPostTemplateBlock = (innerBlocks = []) => {
50268    let foundBlock = null;
50269    for (const block of innerBlocks) {
50270      if (block.name === 'core/post-template') {
50271        foundBlock = block;
50272        break;
50273      } else if (block.innerBlocks.length) {
50274        foundBlock = findPostTemplateBlock(block.innerBlocks);
50275      }
50276    }
50277    return foundBlock;
50278  };
50279  const replacePostTemplateBlock = (innerBlocks = [], replacementBlock) => {
50280    innerBlocks.forEach((block, index) => {
50281      if (block.name === 'core/post-template') {
50282        innerBlocks.splice(index, 1, replacementBlock);
50283      } else if (block.innerBlocks.length) {
50284        block.innerBlocks = replacePostTemplateBlock(block.innerBlocks, replacementBlock);
50285      }
50286    });
50287    return innerBlocks;
50288  };
50289  const migrateDisplayLayout = (attributes, innerBlocks) => {
50290    const {
50291      displayLayout = null,
50292      ...newAttributes
50293    } = attributes;
50294    if (!displayLayout) {
50295      return [attributes, innerBlocks];
50296    }
50297    const postTemplateBlock = findPostTemplateBlock(innerBlocks);
50298    if (!postTemplateBlock) {
50299      return [attributes, innerBlocks];
50300    }
50301    const {
50302      type,
50303      columns
50304    } = displayLayout;
50305  
50306    // Convert custom displayLayout values to canonical layout types.
50307    const updatedLayoutType = type === 'flex' ? 'grid' : 'default';
50308    const newPostTemplateBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/post-template', {
50309      ...postTemplateBlock.attributes,
50310      layout: {
50311        type: updatedLayoutType,
50312        ...(columns && {
50313          columnCount: columns
50314        })
50315      }
50316    }, postTemplateBlock.innerBlocks);
50317    return [newAttributes, replacePostTemplateBlock(innerBlocks, newPostTemplateBlock)];
50318  };
50319  
50320  // Version with NO wrapper `div` element.
50321  const query_deprecated_v1 = {
50322    attributes: {
50323      queryId: {
50324        type: 'number'
50325      },
50326      query: {
50327        type: 'object',
50328        default: {
50329          perPage: null,
50330          pages: 0,
50331          offset: 0,
50332          postType: 'post',
50333          categoryIds: [],
50334          tagIds: [],
50335          order: 'desc',
50336          orderBy: 'date',
50337          author: '',
50338          search: '',
50339          exclude: [],
50340          sticky: '',
50341          inherit: true
50342        }
50343      },
50344      layout: {
50345        type: 'object',
50346        default: {
50347          type: 'list'
50348        }
50349      }
50350    },
50351    supports: {
50352      html: false
50353    },
50354    migrate(attributes, innerBlocks) {
50355      const withTaxQuery = migrateToTaxQuery(attributes);
50356      const {
50357        layout,
50358        ...restWithTaxQuery
50359      } = withTaxQuery;
50360      const newAttributes = {
50361        ...restWithTaxQuery,
50362        displayLayout: withTaxQuery.layout
50363      };
50364      return migrateDisplayLayout(newAttributes, innerBlocks);
50365    },
50366    save() {
50367      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
50368    }
50369  };
50370  
50371  // Version with `categoryIds and tagIds`.
50372  const query_deprecated_v2 = {
50373    attributes: {
50374      queryId: {
50375        type: 'number'
50376      },
50377      query: {
50378        type: 'object',
50379        default: {
50380          perPage: null,
50381          pages: 0,
50382          offset: 0,
50383          postType: 'post',
50384          categoryIds: [],
50385          tagIds: [],
50386          order: 'desc',
50387          orderBy: 'date',
50388          author: '',
50389          search: '',
50390          exclude: [],
50391          sticky: '',
50392          inherit: true
50393        }
50394      },
50395      tagName: {
50396        type: 'string',
50397        default: 'div'
50398      },
50399      displayLayout: {
50400        type: 'object',
50401        default: {
50402          type: 'list'
50403        }
50404      }
50405    },
50406    supports: {
50407      align: ['wide', 'full'],
50408      html: false,
50409      color: {
50410        gradients: true,
50411        link: true
50412      },
50413      layout: true
50414    },
50415    isEligible: ({
50416      query: {
50417        categoryIds,
50418        tagIds
50419      } = {}
50420    }) => categoryIds || tagIds,
50421    migrate(attributes, innerBlocks) {
50422      const withTaxQuery = migrateToTaxQuery(attributes);
50423      const [withColorAttributes, withColorInnerBlocks] = migrateColors(withTaxQuery, innerBlocks);
50424      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(withColorAttributes);
50425      return migrateDisplayLayout(withConstrainedLayoutAttributes, withColorInnerBlocks);
50426    },
50427    save({
50428      attributes: {
50429        tagName: Tag = 'div'
50430      }
50431    }) {
50432      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50433      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50434      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50435        ...innerBlocksProps
50436      });
50437    }
50438  };
50439  
50440  // Version with color support prior to moving it to the PostTemplate block.
50441  const query_deprecated_v3 = {
50442    attributes: {
50443      queryId: {
50444        type: 'number'
50445      },
50446      query: {
50447        type: 'object',
50448        default: {
50449          perPage: null,
50450          pages: 0,
50451          offset: 0,
50452          postType: 'post',
50453          order: 'desc',
50454          orderBy: 'date',
50455          author: '',
50456          search: '',
50457          exclude: [],
50458          sticky: '',
50459          inherit: true,
50460          taxQuery: null,
50461          parents: []
50462        }
50463      },
50464      tagName: {
50465        type: 'string',
50466        default: 'div'
50467      },
50468      displayLayout: {
50469        type: 'object',
50470        default: {
50471          type: 'list'
50472        }
50473      },
50474      namespace: {
50475        type: 'string'
50476      }
50477    },
50478    supports: {
50479      align: ['wide', 'full'],
50480      html: false,
50481      color: {
50482        gradients: true,
50483        link: true,
50484        __experimentalDefaultControls: {
50485          background: true,
50486          text: true
50487        }
50488      },
50489      layout: true
50490    },
50491    isEligible(attributes) {
50492      const {
50493        style,
50494        backgroundColor,
50495        gradient,
50496        textColor
50497      } = attributes;
50498      return backgroundColor || gradient || textColor || style?.color || style?.elements?.link;
50499    },
50500    migrate(attributes, innerBlocks) {
50501      const [withColorAttributes, withColorInnerBlocks] = migrateColors(attributes, innerBlocks);
50502      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(withColorAttributes);
50503      return migrateDisplayLayout(withConstrainedLayoutAttributes, withColorInnerBlocks);
50504    },
50505    save({
50506      attributes: {
50507        tagName: Tag = 'div'
50508      }
50509    }) {
50510      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50511      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50512      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50513        ...innerBlocksProps
50514      });
50515    }
50516  };
50517  const query_deprecated_v4 = {
50518    attributes: {
50519      queryId: {
50520        type: 'number'
50521      },
50522      query: {
50523        type: 'object',
50524        default: {
50525          perPage: null,
50526          pages: 0,
50527          offset: 0,
50528          postType: 'post',
50529          order: 'desc',
50530          orderBy: 'date',
50531          author: '',
50532          search: '',
50533          exclude: [],
50534          sticky: '',
50535          inherit: true,
50536          taxQuery: null,
50537          parents: []
50538        }
50539      },
50540      tagName: {
50541        type: 'string',
50542        default: 'div'
50543      },
50544      displayLayout: {
50545        type: 'object',
50546        default: {
50547          type: 'list'
50548        }
50549      },
50550      namespace: {
50551        type: 'string'
50552      }
50553    },
50554    supports: {
50555      align: ['wide', 'full'],
50556      html: false,
50557      color: {
50558        gradients: true,
50559        link: true,
50560        __experimentalDefaultControls: {
50561          background: true,
50562          text: true
50563        }
50564      },
50565      layout: true
50566    },
50567    save({
50568      attributes: {
50569        tagName: Tag = 'div'
50570      }
50571    }) {
50572      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50573      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50574      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50575        ...innerBlocksProps
50576      });
50577    },
50578    isEligible: ({
50579      layout
50580    }) => layout?.inherit || layout?.contentSize && layout?.type !== 'constrained',
50581    migrate(attributes, innerBlocks) {
50582      const withConstrainedLayoutAttributes = migrateToConstrainedLayout(attributes);
50583      return migrateDisplayLayout(withConstrainedLayoutAttributes, innerBlocks);
50584    }
50585  };
50586  const query_deprecated_v5 = {
50587    attributes: {
50588      queryId: {
50589        type: 'number'
50590      },
50591      query: {
50592        type: 'object',
50593        default: {
50594          perPage: null,
50595          pages: 0,
50596          offset: 0,
50597          postType: 'post',
50598          order: 'desc',
50599          orderBy: 'date',
50600          author: '',
50601          search: '',
50602          exclude: [],
50603          sticky: '',
50604          inherit: true,
50605          taxQuery: null,
50606          parents: []
50607        }
50608      },
50609      tagName: {
50610        type: 'string',
50611        default: 'div'
50612      },
50613      displayLayout: {
50614        type: 'object',
50615        default: {
50616          type: 'list'
50617        }
50618      },
50619      namespace: {
50620        type: 'string'
50621      }
50622    },
50623    supports: {
50624      align: ['wide', 'full'],
50625      anchor: true,
50626      html: false,
50627      layout: true
50628    },
50629    save({
50630      attributes: {
50631        tagName: Tag = 'div'
50632      }
50633    }) {
50634      const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save();
50635      const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
50636      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
50637        ...innerBlocksProps
50638      });
50639    },
50640    isEligible: ({
50641      displayLayout
50642    }) => {
50643      return !!displayLayout;
50644    },
50645    migrate: migrateDisplayLayout
50646  };
50647  const query_deprecated_deprecated = [query_deprecated_v5, query_deprecated_v4, query_deprecated_v3, query_deprecated_v2, query_deprecated_v1];
50648  /* harmony default export */ const query_deprecated = (query_deprecated_deprecated);
50649  
50650  ;// ./node_modules/@wordpress/block-library/build-module/query/index.js
50651  /**
50652   * WordPress dependencies
50653   */
50654  
50655  
50656  /**
50657   * Internal dependencies
50658   */
50659  
50660  const query_metadata = {
50661    $schema: "https://schemas.wp.org/trunk/block.json",
50662    apiVersion: 3,
50663    name: "core/query",
50664    title: "Query Loop",
50665    category: "theme",
50666    description: "An advanced block that allows displaying post types based on different query parameters and visual configurations.",
50667    keywords: ["posts", "list", "blog", "blogs", "custom post types"],
50668    textdomain: "default",
50669    attributes: {
50670      queryId: {
50671        type: "number"
50672      },
50673      query: {
50674        type: "object",
50675        "default": {
50676          perPage: null,
50677          pages: 0,
50678          offset: 0,
50679          postType: "post",
50680          order: "desc",
50681          orderBy: "date",
50682          author: "",
50683          search: "",
50684          exclude: [],
50685          sticky: "",
50686          inherit: true,
50687          taxQuery: null,
50688          parents: [],
50689          format: []
50690        }
50691      },
50692      tagName: {
50693        type: "string",
50694        "default": "div"
50695      },
50696      namespace: {
50697        type: "string"
50698      },
50699      enhancedPagination: {
50700        type: "boolean",
50701        "default": false
50702      }
50703    },
50704    usesContext: ["templateSlug"],
50705    providesContext: {
50706      queryId: "queryId",
50707      query: "query",
50708      displayLayout: "displayLayout",
50709      enhancedPagination: "enhancedPagination"
50710    },
50711    supports: {
50712      align: ["wide", "full"],
50713      html: false,
50714      layout: true,
50715      interactivity: true
50716    },
50717    editorStyle: "wp-block-query-editor"
50718  };
50719  
50720  
50721  
50722  
50723  const {
50724    name: query_name
50725  } = query_metadata;
50726  
50727  const query_settings = {
50728    icon: library_loop,
50729    edit: query_edit,
50730    example: {
50731      viewportWidth: 650,
50732      attributes: {
50733        namespace: 'core/posts-list',
50734        query: {
50735          perPage: 4,
50736          pages: 1,
50737          offset: 0,
50738          postType: 'post',
50739          order: 'desc',
50740          orderBy: 'date',
50741          author: '',
50742          search: '',
50743          sticky: 'exclude',
50744          inherit: false
50745        }
50746      },
50747      innerBlocks: [{
50748        name: 'core/post-template',
50749        attributes: {
50750          layout: {
50751            type: 'grid',
50752            columnCount: 2
50753          }
50754        },
50755        innerBlocks: [{
50756          name: 'core/post-title'
50757        }, {
50758          name: 'core/post-date'
50759        }, {
50760          name: 'core/post-excerpt'
50761        }]
50762      }]
50763    },
50764    save: query_save_save,
50765    variations: query_variations,
50766    deprecated: query_deprecated
50767  };
50768  const query_init = () => initBlock({
50769    name: query_name,
50770    metadata: query_metadata,
50771    settings: query_settings
50772  });
50773  
50774  ;// ./node_modules/@wordpress/block-library/build-module/query-no-results/edit.js
50775  /**
50776   * WordPress dependencies
50777   */
50778  
50779  
50780  
50781  const query_no_results_edit_TEMPLATE = [['core/paragraph', {
50782    placeholder: (0,external_wp_i18n_namespaceObject.__)('Add text or blocks that will display when a query returns no results.')
50783  }]];
50784  function QueryNoResultsEdit() {
50785    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
50786    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
50787      template: query_no_results_edit_TEMPLATE
50788    });
50789    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
50790      ...innerBlocksProps
50791    });
50792  }
50793  
50794  ;// ./node_modules/@wordpress/block-library/build-module/query-no-results/save.js
50795  /**
50796   * WordPress dependencies
50797   */
50798  
50799  
50800  function query_no_results_save_save() {
50801    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
50802  }
50803  
50804  ;// ./node_modules/@wordpress/block-library/build-module/query-no-results/index.js
50805  /**
50806   * WordPress dependencies
50807   */
50808  
50809  
50810  
50811  /**
50812   * Internal dependencies
50813   */
50814  
50815  const query_no_results_metadata = {
50816    $schema: "https://schemas.wp.org/trunk/block.json",
50817    apiVersion: 3,
50818    name: "core/query-no-results",
50819    title: "No Results",
50820    category: "theme",
50821    description: "Contains the block elements used to render content when no query results are found.",
50822    ancestor: ["core/query"],
50823    textdomain: "default",
50824    usesContext: ["queryId", "query"],
50825    supports: {
50826      align: true,
50827      reusable: false,
50828      html: false,
50829      color: {
50830        gradients: true,
50831        link: true
50832      },
50833      typography: {
50834        fontSize: true,
50835        lineHeight: true,
50836        __experimentalFontFamily: true,
50837        __experimentalFontWeight: true,
50838        __experimentalFontStyle: true,
50839        __experimentalTextTransform: true,
50840        __experimentalTextDecoration: true,
50841        __experimentalLetterSpacing: true,
50842        __experimentalDefaultControls: {
50843          fontSize: true
50844        }
50845      },
50846      interactivity: {
50847        clientNavigation: true
50848      }
50849    }
50850  };
50851  
50852  
50853  const {
50854    name: query_no_results_name
50855  } = query_no_results_metadata;
50856  
50857  const query_no_results_settings = {
50858    icon: library_loop,
50859    edit: QueryNoResultsEdit,
50860    save: query_no_results_save_save,
50861    example: {
50862      innerBlocks: [{
50863        name: 'core/paragraph',
50864        attributes: {
50865          content: (0,external_wp_i18n_namespaceObject.__)('No posts were found.')
50866        }
50867      }]
50868    }
50869  };
50870  const query_no_results_init = () => initBlock({
50871    name: query_no_results_name,
50872    metadata: query_no_results_metadata,
50873    settings: query_no_results_settings
50874  });
50875  
50876  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-arrow-controls.js
50877  /**
50878   * WordPress dependencies
50879   */
50880  
50881  
50882  
50883  function QueryPaginationArrowControls({
50884    value,
50885    onChange
50886  }) {
50887    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
50888      __next40pxDefaultSize: true,
50889      __nextHasNoMarginBottom: true,
50890      label: (0,external_wp_i18n_namespaceObject.__)('Arrow'),
50891      value: value,
50892      onChange: onChange,
50893      help: (0,external_wp_i18n_namespaceObject.__)('A decorative arrow appended to the next and previous page link.'),
50894      isBlock: true,
50895      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
50896        value: "none",
50897        label: (0,external_wp_i18n_namespaceObject._x)('None', 'Arrow option for Query Pagination Next/Previous blocks')
50898      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
50899        value: "arrow",
50900        label: (0,external_wp_i18n_namespaceObject._x)('Arrow', 'Arrow option for Query Pagination Next/Previous blocks')
50901      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
50902        value: "chevron",
50903        label: (0,external_wp_i18n_namespaceObject._x)('Chevron', 'Arrow option for Query Pagination Next/Previous blocks')
50904      })]
50905    });
50906  }
50907  
50908  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/query-pagination-label-control.js
50909  /**
50910   * WordPress dependencies
50911   */
50912  
50913  
50914  
50915  function QueryPaginationLabelControl({
50916    value,
50917    onChange
50918  }) {
50919    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
50920      __nextHasNoMarginBottom: true,
50921      label: (0,external_wp_i18n_namespaceObject.__)('Show label text'),
50922      help: (0,external_wp_i18n_namespaceObject.__)('Make label text visible, e.g. "Next Page".'),
50923      onChange: onChange,
50924      checked: value === true
50925    });
50926  }
50927  
50928  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/edit.js
50929  /**
50930   * WordPress dependencies
50931   */
50932  
50933  
50934  
50935  
50936  
50937  
50938  /**
50939   * Internal dependencies
50940   */
50941  
50942  
50943  
50944  
50945  const query_pagination_edit_TEMPLATE = [['core/query-pagination-previous'], ['core/query-pagination-numbers'], ['core/query-pagination-next']];
50946  function edit_QueryPaginationEdit({
50947    attributes: {
50948      paginationArrow,
50949      showLabel
50950    },
50951    setAttributes,
50952    clientId
50953  }) {
50954    const hasNextPreviousBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
50955      const {
50956        getBlocks
50957      } = select(external_wp_blockEditor_namespaceObject.store);
50958      const innerBlocks = getBlocks(clientId);
50959      /**
50960       * Show the `paginationArrow` and `showLabel` controls only if a
50961       * `QueryPaginationNext/Previous` block exists.
50962       */
50963      return innerBlocks?.find(innerBlock => {
50964        return ['core/query-pagination-next', 'core/query-pagination-previous'].includes(innerBlock.name);
50965      });
50966    }, [clientId]);
50967    const {
50968      __unstableMarkNextChangeAsNotPersistent
50969    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
50970    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
50971    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
50972    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
50973      template: query_pagination_edit_TEMPLATE
50974    });
50975  
50976    // Always show label text if paginationArrow is set to 'none'.
50977    (0,external_wp_element_namespaceObject.useEffect)(() => {
50978      if (paginationArrow === 'none' && !showLabel) {
50979        __unstableMarkNextChangeAsNotPersistent();
50980        setAttributes({
50981          showLabel: true
50982        });
50983      }
50984    }, [paginationArrow, setAttributes, showLabel, __unstableMarkNextChangeAsNotPersistent]);
50985    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
50986      children: [hasNextPreviousBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
50987        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
50988          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
50989          resetAll: () => {
50990            setAttributes({
50991              paginationArrow: 'none',
50992              showLabel: true
50993            });
50994          },
50995          dropdownMenuProps: dropdownMenuProps,
50996          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
50997            hasValue: () => paginationArrow !== 'none',
50998            label: (0,external_wp_i18n_namespaceObject.__)('Pagination arrow'),
50999            onDeselect: () => setAttributes({
51000              paginationArrow: 'none'
51001            }),
51002            isShownByDefault: true,
51003            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryPaginationArrowControls, {
51004              value: paginationArrow,
51005              onChange: value => {
51006                setAttributes({
51007                  paginationArrow: value
51008                });
51009              }
51010            })
51011          }), paginationArrow !== 'none' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51012            hasValue: () => !showLabel,
51013            label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
51014            onDeselect: () => setAttributes({
51015              showLabel: true
51016            }),
51017            isShownByDefault: true,
51018            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(QueryPaginationLabelControl, {
51019              value: showLabel,
51020              onChange: value => {
51021                setAttributes({
51022                  showLabel: value
51023                });
51024              }
51025            })
51026          })]
51027        })
51028      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
51029        ...innerBlocksProps
51030      })]
51031    });
51032  }
51033  
51034  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/save.js
51035  /**
51036   * WordPress dependencies
51037   */
51038  
51039  
51040  function query_pagination_save_save() {
51041    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {});
51042  }
51043  
51044  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/deprecated.js
51045  /**
51046   * WordPress dependencies
51047   */
51048  
51049  
51050  const query_pagination_deprecated_deprecated = [
51051  // Version with wrapper `div` element.
51052  {
51053    save() {
51054      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51055        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
51056        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
51057      });
51058    }
51059  }];
51060  /* harmony default export */ const query_pagination_deprecated = (query_pagination_deprecated_deprecated);
51061  
51062  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination/index.js
51063  /**
51064   * WordPress dependencies
51065   */
51066  
51067  
51068  /**
51069   * Internal dependencies
51070   */
51071  
51072  const query_pagination_metadata = {
51073    $schema: "https://schemas.wp.org/trunk/block.json",
51074    apiVersion: 3,
51075    name: "core/query-pagination",
51076    title: "Pagination",
51077    category: "theme",
51078    ancestor: ["core/query"],
51079    allowedBlocks: ["core/query-pagination-previous", "core/query-pagination-numbers", "core/query-pagination-next"],
51080    description: "Displays a paginated navigation to next/previous set of posts, when applicable.",
51081    textdomain: "default",
51082    attributes: {
51083      paginationArrow: {
51084        type: "string",
51085        "default": "none"
51086      },
51087      showLabel: {
51088        type: "boolean",
51089        "default": true
51090      }
51091    },
51092    usesContext: ["queryId", "query"],
51093    providesContext: {
51094      paginationArrow: "paginationArrow",
51095      showLabel: "showLabel"
51096    },
51097    supports: {
51098      align: true,
51099      reusable: false,
51100      html: false,
51101      color: {
51102        gradients: true,
51103        link: true,
51104        __experimentalDefaultControls: {
51105          background: true,
51106          text: true,
51107          link: true
51108        }
51109      },
51110      layout: {
51111        allowSwitching: false,
51112        allowInheriting: false,
51113        "default": {
51114          type: "flex"
51115        }
51116      },
51117      typography: {
51118        fontSize: true,
51119        lineHeight: true,
51120        __experimentalFontFamily: true,
51121        __experimentalFontWeight: true,
51122        __experimentalFontStyle: true,
51123        __experimentalTextTransform: true,
51124        __experimentalTextDecoration: true,
51125        __experimentalLetterSpacing: true,
51126        __experimentalDefaultControls: {
51127          fontSize: true
51128        }
51129      },
51130      interactivity: {
51131        clientNavigation: true
51132      }
51133    },
51134    editorStyle: "wp-block-query-pagination-editor",
51135    style: "wp-block-query-pagination"
51136  };
51137  
51138  
51139  
51140  const {
51141    name: query_pagination_name
51142  } = query_pagination_metadata;
51143  
51144  const query_pagination_settings = {
51145    icon: query_pagination,
51146    edit: edit_QueryPaginationEdit,
51147    save: query_pagination_save_save,
51148    deprecated: query_pagination_deprecated
51149  };
51150  const query_pagination_init = () => initBlock({
51151    name: query_pagination_name,
51152    metadata: query_pagination_metadata,
51153    settings: query_pagination_settings
51154  });
51155  
51156  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-next/edit.js
51157  /**
51158   * WordPress dependencies
51159   */
51160  
51161  
51162  
51163  const query_pagination_next_edit_arrowMap = {
51164    none: '',
51165    arrow: '→',
51166    chevron: '»'
51167  };
51168  function QueryPaginationNextEdit({
51169    attributes: {
51170      label
51171    },
51172    setAttributes,
51173    context: {
51174      paginationArrow,
51175      showLabel
51176    }
51177  }) {
51178    const displayArrow = query_pagination_next_edit_arrowMap[paginationArrow];
51179    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
51180      href: "#pagination-next-pseudo-link",
51181      onClick: event => event.preventDefault(),
51182      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
51183      children: [showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
51184        __experimentalVersion: 2,
51185        tagName: "span",
51186        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Next page link'),
51187        placeholder: (0,external_wp_i18n_namespaceObject.__)('Next Page'),
51188        value: label,
51189        onChange: newLabel => setAttributes({
51190          label: newLabel
51191        })
51192      }), displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
51193        className: `wp-block-query-pagination-next-arrow is-arrow-$paginationArrow}`,
51194        "aria-hidden": true,
51195        children: displayArrow
51196      })]
51197    });
51198  }
51199  
51200  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-next/index.js
51201  /**
51202   * WordPress dependencies
51203   */
51204  
51205  
51206  /**
51207   * Internal dependencies
51208   */
51209  
51210  const query_pagination_next_metadata = {
51211    $schema: "https://schemas.wp.org/trunk/block.json",
51212    apiVersion: 3,
51213    name: "core/query-pagination-next",
51214    title: "Next Page",
51215    category: "theme",
51216    parent: ["core/query-pagination"],
51217    description: "Displays the next posts page link.",
51218    textdomain: "default",
51219    attributes: {
51220      label: {
51221        type: "string"
51222      }
51223    },
51224    usesContext: ["queryId", "query", "paginationArrow", "showLabel", "enhancedPagination"],
51225    supports: {
51226      reusable: false,
51227      html: false,
51228      color: {
51229        gradients: true,
51230        text: false,
51231        __experimentalDefaultControls: {
51232          background: true
51233        }
51234      },
51235      typography: {
51236        fontSize: true,
51237        lineHeight: true,
51238        __experimentalFontFamily: true,
51239        __experimentalFontWeight: true,
51240        __experimentalFontStyle: true,
51241        __experimentalTextTransform: true,
51242        __experimentalTextDecoration: true,
51243        __experimentalLetterSpacing: true,
51244        __experimentalDefaultControls: {
51245          fontSize: true
51246        }
51247      },
51248      interactivity: {
51249        clientNavigation: true
51250      }
51251    }
51252  };
51253  
51254  const {
51255    name: query_pagination_next_name
51256  } = query_pagination_next_metadata;
51257  
51258  const query_pagination_next_settings = {
51259    icon: query_pagination_next,
51260    edit: QueryPaginationNextEdit
51261  };
51262  const query_pagination_next_init = () => initBlock({
51263    name: query_pagination_next_name,
51264    metadata: query_pagination_next_metadata,
51265    settings: query_pagination_next_settings
51266  });
51267  
51268  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/edit.js
51269  /**
51270   * WordPress dependencies
51271   */
51272  
51273  
51274  
51275  
51276  /**
51277   * Internal dependencies
51278   */
51279  
51280  
51281  const createPaginationItem = (content, Tag = 'a', extraClass = '') => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
51282    className: `page-numbers $extraClass}`,
51283    children: content
51284  }, content);
51285  const previewPaginationNumbers = midSize => {
51286    const paginationItems = [];
51287  
51288    // First set of pagination items.
51289    for (let i = 1; i <= midSize; i++) {
51290      paginationItems.push(createPaginationItem(i));
51291    }
51292  
51293    // Current pagination item.
51294    paginationItems.push(createPaginationItem(midSize + 1, 'span', 'current'));
51295  
51296    // Second set of pagination items.
51297    for (let i = 1; i <= midSize; i++) {
51298      paginationItems.push(createPaginationItem(midSize + 1 + i));
51299    }
51300  
51301    // Dots.
51302    paginationItems.push(createPaginationItem('...', 'span', 'dots'));
51303  
51304    // Last pagination item.
51305    paginationItems.push(createPaginationItem(midSize * 2 + 3));
51306    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51307      children: paginationItems
51308    });
51309  };
51310  function QueryPaginationNumbersEdit({
51311    attributes,
51312    setAttributes
51313  }) {
51314    const {
51315      midSize
51316    } = attributes;
51317    const paginationNumbers = previewPaginationNumbers(parseInt(midSize, 10));
51318    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
51319    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51320      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51321        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
51322          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51323          resetAll: () => setAttributes({
51324            midSize: 2
51325          }),
51326          dropdownMenuProps: dropdownMenuProps,
51327          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51328            label: (0,external_wp_i18n_namespaceObject.__)('Number of links'),
51329            hasValue: () => midSize !== 2,
51330            onDeselect: () => setAttributes({
51331              midSize: 2
51332            }),
51333            isShownByDefault: true,
51334            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
51335              __next40pxDefaultSize: true,
51336              __nextHasNoMarginBottom: true,
51337              label: (0,external_wp_i18n_namespaceObject.__)('Number of links'),
51338              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.'),
51339              value: midSize,
51340              onChange: value => {
51341                setAttributes({
51342                  midSize: parseInt(value, 10)
51343                });
51344              },
51345              min: 0,
51346              max: 5,
51347              withInputField: false
51348            })
51349          })
51350        })
51351      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51352        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
51353        children: paginationNumbers
51354      })]
51355    });
51356  }
51357  
51358  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-numbers/index.js
51359  /**
51360   * WordPress dependencies
51361   */
51362  
51363  
51364  /**
51365   * Internal dependencies
51366   */
51367  
51368  const query_pagination_numbers_metadata = {
51369    $schema: "https://schemas.wp.org/trunk/block.json",
51370    apiVersion: 3,
51371    name: "core/query-pagination-numbers",
51372    title: "Page Numbers",
51373    category: "theme",
51374    parent: ["core/query-pagination"],
51375    description: "Displays a list of page numbers for pagination.",
51376    textdomain: "default",
51377    attributes: {
51378      midSize: {
51379        type: "number",
51380        "default": 2
51381      }
51382    },
51383    usesContext: ["queryId", "query", "enhancedPagination"],
51384    supports: {
51385      reusable: false,
51386      html: false,
51387      color: {
51388        gradients: true,
51389        text: false,
51390        __experimentalDefaultControls: {
51391          background: true
51392        }
51393      },
51394      typography: {
51395        fontSize: true,
51396        lineHeight: true,
51397        __experimentalFontFamily: true,
51398        __experimentalFontWeight: true,
51399        __experimentalFontStyle: true,
51400        __experimentalTextTransform: true,
51401        __experimentalTextDecoration: true,
51402        __experimentalLetterSpacing: true,
51403        __experimentalDefaultControls: {
51404          fontSize: true
51405        }
51406      },
51407      interactivity: {
51408        clientNavigation: true
51409      }
51410    },
51411    editorStyle: "wp-block-query-pagination-numbers-editor"
51412  };
51413  
51414  const {
51415    name: query_pagination_numbers_name
51416  } = query_pagination_numbers_metadata;
51417  
51418  const query_pagination_numbers_settings = {
51419    icon: query_pagination_numbers,
51420    edit: QueryPaginationNumbersEdit,
51421    example: {}
51422  };
51423  const query_pagination_numbers_init = () => initBlock({
51424    name: query_pagination_numbers_name,
51425    metadata: query_pagination_numbers_metadata,
51426    settings: query_pagination_numbers_settings
51427  });
51428  
51429  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/edit.js
51430  /**
51431   * WordPress dependencies
51432   */
51433  
51434  
51435  
51436  const query_pagination_previous_edit_arrowMap = {
51437    none: '',
51438    arrow: '←',
51439    chevron: '«'
51440  };
51441  function QueryPaginationPreviousEdit({
51442    attributes: {
51443      label
51444    },
51445    setAttributes,
51446    context: {
51447      paginationArrow,
51448      showLabel
51449    }
51450  }) {
51451    const displayArrow = query_pagination_previous_edit_arrowMap[paginationArrow];
51452    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
51453      href: "#pagination-previous-pseudo-link",
51454      onClick: event => event.preventDefault(),
51455      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
51456      children: [displayArrow && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
51457        className: `wp-block-query-pagination-previous-arrow is-arrow-$paginationArrow}`,
51458        "aria-hidden": true,
51459        children: displayArrow
51460      }), showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
51461        __experimentalVersion: 2,
51462        tagName: "span",
51463        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Previous page link'),
51464        placeholder: (0,external_wp_i18n_namespaceObject.__)('Previous Page'),
51465        value: label,
51466        onChange: newLabel => setAttributes({
51467          label: newLabel
51468        })
51469      })]
51470    });
51471  }
51472  
51473  ;// ./node_modules/@wordpress/block-library/build-module/query-pagination-previous/index.js
51474  /**
51475   * WordPress dependencies
51476   */
51477  
51478  
51479  /**
51480   * Internal dependencies
51481   */
51482  
51483  const query_pagination_previous_metadata = {
51484    $schema: "https://schemas.wp.org/trunk/block.json",
51485    apiVersion: 3,
51486    name: "core/query-pagination-previous",
51487    title: "Previous Page",
51488    category: "theme",
51489    parent: ["core/query-pagination"],
51490    description: "Displays the previous posts page link.",
51491    textdomain: "default",
51492    attributes: {
51493      label: {
51494        type: "string"
51495      }
51496    },
51497    usesContext: ["queryId", "query", "paginationArrow", "showLabel", "enhancedPagination"],
51498    supports: {
51499      reusable: false,
51500      html: false,
51501      color: {
51502        gradients: true,
51503        text: false,
51504        __experimentalDefaultControls: {
51505          background: true
51506        }
51507      },
51508      typography: {
51509        fontSize: true,
51510        lineHeight: true,
51511        __experimentalFontFamily: true,
51512        __experimentalFontWeight: true,
51513        __experimentalFontStyle: true,
51514        __experimentalTextTransform: true,
51515        __experimentalTextDecoration: true,
51516        __experimentalLetterSpacing: true,
51517        __experimentalDefaultControls: {
51518          fontSize: true
51519        }
51520      },
51521      interactivity: {
51522        clientNavigation: true
51523      }
51524    }
51525  };
51526  
51527  const {
51528    name: query_pagination_previous_name
51529  } = query_pagination_previous_metadata;
51530  
51531  const query_pagination_previous_settings = {
51532    icon: query_pagination_previous,
51533    edit: QueryPaginationPreviousEdit
51534  };
51535  const query_pagination_previous_init = () => initBlock({
51536    name: query_pagination_previous_name,
51537    metadata: query_pagination_previous_metadata,
51538    settings: query_pagination_previous_settings
51539  });
51540  
51541  ;// ./node_modules/@wordpress/block-library/build-module/query-title/use-archive-label.js
51542  /**
51543   * WordPress dependencies
51544   */
51545  
51546  
51547  function useArchiveLabel() {
51548    const templateSlug = (0,external_wp_data_namespaceObject.useSelect)(select => {
51549      // @wordpress/block-library should not depend on @wordpress/editor.
51550      // Blocks can be loaded into a *non-post* block editor, so to avoid
51551      // declaring @wordpress/editor as a dependency, we must access its
51552      // store by string.
51553      // The solution here is to split WP specific blocks from generic blocks.
51554      // eslint-disable-next-line @wordpress/data-no-store-string-literals
51555      const {
51556        getCurrentPostId,
51557        getCurrentPostType,
51558        getCurrentTemplateId
51559      } = select('core/editor');
51560      const currentPostType = getCurrentPostType();
51561      const templateId = getCurrentTemplateId() || (currentPostType === 'wp_template' ? getCurrentPostId() : null);
51562      return templateId ? select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_template', templateId)?.slug : null;
51563    }, []);
51564    const taxonomyMatches = templateSlug?.match(/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/);
51565    let taxonomy;
51566    let term;
51567    let isAuthor = false;
51568    let authorSlug;
51569    if (taxonomyMatches) {
51570      // If is for a all taxonomies of a type
51571      if (taxonomyMatches[1]) {
51572        taxonomy = taxonomyMatches[2] ? taxonomyMatches[2] : taxonomyMatches[1];
51573      }
51574      // If is for a all taxonomies of a type
51575      else if (taxonomyMatches[3]) {
51576        taxonomy = taxonomyMatches[6] ? taxonomyMatches[6] : taxonomyMatches[4];
51577        term = taxonomyMatches[7];
51578      }
51579      taxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;
51580  
51581      //getTaxonomy( 'category' );
51582      //wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );
51583    } else {
51584      const authorMatches = templateSlug?.match(/^(author)$|^author-(.+)$/);
51585      if (authorMatches) {
51586        isAuthor = true;
51587        if (authorMatches[2]) {
51588          authorSlug = authorMatches[2];
51589        }
51590      }
51591    }
51592    return (0,external_wp_data_namespaceObject.useSelect)(select => {
51593      const {
51594        getEntityRecords,
51595        getTaxonomy,
51596        getAuthors
51597      } = select(external_wp_coreData_namespaceObject.store);
51598      let archiveTypeLabel;
51599      let archiveNameLabel;
51600      if (taxonomy) {
51601        archiveTypeLabel = getTaxonomy(taxonomy)?.labels?.singular_name;
51602      }
51603      if (term) {
51604        const records = getEntityRecords('taxonomy', taxonomy, {
51605          slug: term,
51606          per_page: 1
51607        });
51608        if (records && records[0]) {
51609          archiveNameLabel = records[0].name;
51610        }
51611      }
51612      if (isAuthor) {
51613        archiveTypeLabel = 'Author';
51614        if (authorSlug) {
51615          const authorRecords = getAuthors({
51616            slug: authorSlug
51617          });
51618          if (authorRecords && authorRecords[0]) {
51619            archiveNameLabel = authorRecords[0].name;
51620          }
51621        }
51622      }
51623      return {
51624        archiveTypeLabel,
51625        archiveNameLabel
51626      };
51627    }, [authorSlug, isAuthor, taxonomy, term]);
51628  }
51629  
51630  ;// ./node_modules/@wordpress/block-library/build-module/query-title/edit.js
51631  /**
51632   * External dependencies
51633   */
51634  
51635  
51636  /**
51637   * WordPress dependencies
51638   */
51639  
51640  
51641  
51642  
51643  /**
51644   * Internal dependencies
51645   */
51646  
51647  
51648  
51649  const SUPPORTED_TYPES = ['archive', 'search'];
51650  function QueryTitleEdit({
51651    attributes: {
51652      type,
51653      level,
51654      levelOptions,
51655      textAlign,
51656      showPrefix,
51657      showSearchTerm
51658    },
51659    setAttributes
51660  }) {
51661    const {
51662      archiveTypeLabel,
51663      archiveNameLabel
51664    } = useArchiveLabel();
51665    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
51666    const TagName = `h$level}`;
51667    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
51668      className: dist_clsx('wp-block-query-title__placeholder', {
51669        [`has-text-align-$textAlign}`]: textAlign
51670      })
51671    });
51672    if (!SUPPORTED_TYPES.includes(type)) {
51673      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
51674        ...blockProps,
51675        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
51676          children: (0,external_wp_i18n_namespaceObject.__)('Provided type is not supported.')
51677        })
51678      });
51679    }
51680    let titleElement;
51681    if (type === 'archive') {
51682      let title;
51683      if (archiveTypeLabel) {
51684        if (showPrefix) {
51685          if (archiveNameLabel) {
51686            title = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: 1: Archive type title e.g: "Category", 2: Label of the archive e.g: "Shoes" */
51687            (0,external_wp_i18n_namespaceObject._x)('%1$s: %2$s', 'archive label'), archiveTypeLabel, archiveNameLabel);
51688          } else {
51689            title = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Archive type title e.g: "Category", "Tag"... */
51690            (0,external_wp_i18n_namespaceObject.__)('%s: Name'), archiveTypeLabel);
51691          }
51692        } else if (archiveNameLabel) {
51693          title = archiveNameLabel;
51694        } else {
51695          title = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Archive type title e.g: "Category", "Tag"... */
51696          (0,external_wp_i18n_namespaceObject.__)('%s name'), archiveTypeLabel);
51697        }
51698      } else {
51699        title = showPrefix ? (0,external_wp_i18n_namespaceObject.__)('Archive type: Name') : (0,external_wp_i18n_namespaceObject.__)('Archive title');
51700      }
51701      titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51702        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51703          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
51704            label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51705            resetAll: () => setAttributes({
51706              showPrefix: true
51707            }),
51708            dropdownMenuProps: dropdownMenuProps,
51709            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51710              hasValue: () => !showPrefix,
51711              label: (0,external_wp_i18n_namespaceObject.__)('Show archive type in title'),
51712              onDeselect: () => setAttributes({
51713                showPrefix: true
51714              }),
51715              isShownByDefault: true,
51716              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
51717                __nextHasNoMarginBottom: true,
51718                label: (0,external_wp_i18n_namespaceObject.__)('Show archive type in title'),
51719                onChange: () => setAttributes({
51720                  showPrefix: !showPrefix
51721                }),
51722                checked: showPrefix
51723              })
51724            })
51725          })
51726        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
51727          ...blockProps,
51728          children: title
51729        })]
51730      });
51731    }
51732    if (type === 'search') {
51733      titleElement = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51734        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
51735          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
51736            label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
51737            resetAll: () => setAttributes({
51738              showSearchTerm: true
51739            }),
51740            dropdownMenuProps: dropdownMenuProps,
51741            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
51742              hasValue: () => !showSearchTerm,
51743              label: (0,external_wp_i18n_namespaceObject.__)('Show search term in title'),
51744              onDeselect: () => setAttributes({
51745                showSearchTerm: true
51746              }),
51747              isShownByDefault: true,
51748              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
51749                __nextHasNoMarginBottom: true,
51750                label: (0,external_wp_i18n_namespaceObject.__)('Show search term in title'),
51751                onChange: () => setAttributes({
51752                  showSearchTerm: !showSearchTerm
51753                }),
51754                checked: showSearchTerm
51755              })
51756            })
51757          })
51758        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
51759          ...blockProps,
51760          children: showSearchTerm ? (0,external_wp_i18n_namespaceObject.__)('Search results for: “search term”') : (0,external_wp_i18n_namespaceObject.__)('Search results')
51761        })]
51762      });
51763    }
51764    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
51765      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
51766        group: "block",
51767        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
51768          value: level,
51769          options: levelOptions,
51770          onChange: newLevel => setAttributes({
51771            level: newLevel
51772          })
51773        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
51774          value: textAlign,
51775          onChange: nextAlign => {
51776            setAttributes({
51777              textAlign: nextAlign
51778            });
51779          }
51780        })]
51781      }), titleElement]
51782    });
51783  }
51784  
51785  ;// ./node_modules/@wordpress/block-library/build-module/query-title/variations.js
51786  /**
51787   * WordPress dependencies
51788   */
51789  
51790  
51791  const query_title_variations_variations = [{
51792    isDefault: true,
51793    name: 'archive-title',
51794    title: (0,external_wp_i18n_namespaceObject.__)('Archive Title'),
51795    description: (0,external_wp_i18n_namespaceObject.__)('Display the archive title based on the queried object.'),
51796    icon: library_title,
51797    attributes: {
51798      type: 'archive'
51799    },
51800    scope: ['inserter']
51801  }, {
51802    isDefault: false,
51803    name: 'search-title',
51804    title: (0,external_wp_i18n_namespaceObject.__)('Search Results Title'),
51805    description: (0,external_wp_i18n_namespaceObject.__)('Display the search results title based on the queried object.'),
51806    icon: library_title,
51807    attributes: {
51808      type: 'search'
51809    },
51810    scope: ['inserter']
51811  }];
51812  
51813  /**
51814   * Add `isActive` function to all `query-title` variations, if not defined.
51815   * `isActive` function is used to find a variation match from a created
51816   *  Block by providing its attributes.
51817   */
51818  query_title_variations_variations.forEach(variation => {
51819    if (variation.isActive) {
51820      return;
51821    }
51822    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.type === variationAttributes.type;
51823  });
51824  /* harmony default export */ const query_title_variations = (query_title_variations_variations);
51825  
51826  ;// ./node_modules/@wordpress/block-library/build-module/query-title/deprecated.js
51827  /**
51828   * Internal dependencies
51829   */
51830  
51831  const query_title_deprecated_v1 = {
51832    attributes: {
51833      type: {
51834        type: 'string'
51835      },
51836      textAlign: {
51837        type: 'string'
51838      },
51839      level: {
51840        type: 'number',
51841        default: 1
51842      }
51843    },
51844    supports: {
51845      align: ['wide', 'full'],
51846      html: false,
51847      color: {
51848        gradients: true
51849      },
51850      spacing: {
51851        margin: true
51852      },
51853      typography: {
51854        fontSize: true,
51855        lineHeight: true,
51856        __experimentalFontFamily: true
51857      }
51858    },
51859    save() {
51860      return null;
51861    },
51862    migrate: migrate_font_family,
51863    isEligible({
51864      style
51865    }) {
51866      return style?.typography?.fontFamily;
51867    }
51868  };
51869  
51870  /**
51871   * New deprecations need to be placed first
51872   * for them to have higher priority.
51873   *
51874   * Old deprecations may need to be updated as well.
51875   *
51876   * See block-deprecation.md
51877   */
51878  /* harmony default export */ const query_title_deprecated = ([query_title_deprecated_v1]);
51879  
51880  ;// ./node_modules/@wordpress/block-library/build-module/query-title/index.js
51881  /**
51882   * WordPress dependencies
51883   */
51884  
51885  
51886  /**
51887   * Internal dependencies
51888   */
51889  
51890  const query_title_metadata = {
51891    $schema: "https://schemas.wp.org/trunk/block.json",
51892    apiVersion: 3,
51893    name: "core/query-title",
51894    title: "Query Title",
51895    category: "theme",
51896    description: "Display the query title.",
51897    textdomain: "default",
51898    attributes: {
51899      type: {
51900        type: "string"
51901      },
51902      textAlign: {
51903        type: "string"
51904      },
51905      level: {
51906        type: "number",
51907        "default": 1
51908      },
51909      levelOptions: {
51910        type: "array"
51911      },
51912      showPrefix: {
51913        type: "boolean",
51914        "default": true
51915      },
51916      showSearchTerm: {
51917        type: "boolean",
51918        "default": true
51919      }
51920    },
51921    example: {
51922      attributes: {
51923        type: "search"
51924      }
51925    },
51926    supports: {
51927      align: ["wide", "full"],
51928      html: false,
51929      color: {
51930        gradients: true,
51931        __experimentalDefaultControls: {
51932          background: true,
51933          text: true
51934        }
51935      },
51936      spacing: {
51937        margin: true,
51938        padding: true
51939      },
51940      typography: {
51941        fontSize: true,
51942        lineHeight: true,
51943        __experimentalFontFamily: true,
51944        __experimentalFontStyle: true,
51945        __experimentalFontWeight: true,
51946        __experimentalLetterSpacing: true,
51947        __experimentalTextTransform: true,
51948        __experimentalTextDecoration: true,
51949        __experimentalDefaultControls: {
51950          fontSize: true
51951        }
51952      },
51953      interactivity: {
51954        clientNavigation: true
51955      },
51956      __experimentalBorder: {
51957        radius: true,
51958        color: true,
51959        width: true,
51960        style: true,
51961        __experimentalDefaultControls: {
51962          radius: true,
51963          color: true,
51964          width: true,
51965          style: true
51966        }
51967      }
51968    },
51969    style: "wp-block-query-title"
51970  };
51971  
51972  
51973  
51974  const {
51975    name: query_title_name
51976  } = query_title_metadata;
51977  
51978  const query_title_settings = {
51979    icon: library_title,
51980    edit: QueryTitleEdit,
51981    variations: query_title_variations,
51982    deprecated: query_title_deprecated
51983  };
51984  const query_title_init = () => initBlock({
51985    name: query_title_name,
51986    metadata: query_title_metadata,
51987    settings: query_title_settings
51988  });
51989  
51990  ;// ./node_modules/@wordpress/block-library/build-module/query-total/icons.js
51991  /**
51992   * WordPress dependencies
51993   */
51994  
51995  
51996  const resultsFound = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
51997    xmlns: "http://www.w3.org/2000/svg",
51998    viewBox: "0 0 24 24",
51999    width: "24",
52000    height: "24",
52001    "aria-hidden": "true",
52002    focusable: "false",
52003    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
52004      d: "M4 11h4v2H4v-2zm6 0h6v2h-6v-2zm8 0h2v2h-2v-2z"
52005    })
52006  });
52007  const displayingResults = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
52008    xmlns: "http://www.w3.org/2000/svg",
52009    viewBox: "0 0 24 24",
52010    width: "24",
52011    height: "24",
52012    "aria-hidden": "true",
52013    focusable: "false",
52014    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
52015      d: "M4 13h2v-2H4v2zm4 0h10v-2H8v2zm12 0h2v-2h-2v2z"
52016    })
52017  });
52018  const queryTotal = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
52019    xmlns: "http://www.w3.org/2000/svg",
52020    viewBox: "0 0 24 24",
52021    width: "24",
52022    height: "24",
52023    "aria-hidden": "true",
52024    focusable: "false",
52025    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
52026      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"
52027    })
52028  });
52029  
52030  ;// ./node_modules/@wordpress/block-library/build-module/query-total/edit.js
52031  /**
52032   * WordPress dependencies
52033   */
52034  
52035  
52036  
52037  
52038  /**
52039   * Internal dependencies
52040   */
52041  
52042  
52043  function QueryTotalEdit({
52044    attributes,
52045    setAttributes
52046  }) {
52047    const {
52048      displayType
52049    } = attributes;
52050  
52051    // Block properties and classes.
52052    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
52053    const getButtonPositionIcon = () => {
52054      switch (displayType) {
52055        case 'total-results':
52056          return resultsFound;
52057        case 'range-display':
52058          return displayingResults;
52059      }
52060    };
52061    const buttonPositionControls = [{
52062      role: 'menuitemradio',
52063      title: (0,external_wp_i18n_namespaceObject.__)('Total results'),
52064      isActive: displayType === 'total-results',
52065      icon: resultsFound,
52066      onClick: () => {
52067        setAttributes({
52068          displayType: 'total-results'
52069        });
52070      }
52071    }, {
52072      role: 'menuitemradio',
52073      title: (0,external_wp_i18n_namespaceObject.__)('Range display'),
52074      isActive: displayType === 'range-display',
52075      icon: displayingResults,
52076      onClick: () => {
52077        setAttributes({
52078          displayType: 'range-display'
52079        });
52080      }
52081    }];
52082  
52083    // Controls for the block.
52084    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
52085      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
52086        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
52087          icon: getButtonPositionIcon(),
52088          label: (0,external_wp_i18n_namespaceObject.__)('Change display type'),
52089          controls: buttonPositionControls
52090        })
52091      })
52092    });
52093  
52094    // Render output based on the selected display type.
52095    const renderDisplay = () => {
52096      if (displayType === 'total-results') {
52097        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52098          children: (0,external_wp_i18n_namespaceObject.__)('12 results found')
52099        });
52100      }
52101      if (displayType === 'range-display') {
52102        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52103          children: (0,external_wp_i18n_namespaceObject.__)('Displaying 1 – 10 of 12')
52104        });
52105      }
52106      return null;
52107    };
52108    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
52109      ...blockProps,
52110      children: [controls, renderDisplay()]
52111    });
52112  }
52113  
52114  ;// ./node_modules/@wordpress/block-library/build-module/query-total/index.js
52115  /**
52116   * Internal dependencies
52117   */
52118  const query_total_metadata = {
52119    $schema: "https://schemas.wp.org/trunk/block.json",
52120    apiVersion: 3,
52121    name: "core/query-total",
52122    title: "Query Total",
52123    category: "theme",
52124    ancestor: ["core/query"],
52125    description: "Display the total number of results in a query.",
52126    textdomain: "default",
52127    attributes: {
52128      displayType: {
52129        type: "string",
52130        "default": "total-results"
52131      }
52132    },
52133    usesContext: ["queryId", "query"],
52134    supports: {
52135      align: ["wide", "full"],
52136      html: false,
52137      spacing: {
52138        margin: true,
52139        padding: true
52140      },
52141      color: {
52142        gradients: true,
52143        __experimentalDefaultControls: {
52144          background: true,
52145          text: true
52146        }
52147      },
52148      typography: {
52149        fontSize: true,
52150        lineHeight: true,
52151        __experimentalFontFamily: true,
52152        __experimentalFontWeight: true,
52153        __experimentalFontStyle: true,
52154        __experimentalTextTransform: true,
52155        __experimentalTextDecoration: true,
52156        __experimentalLetterSpacing: true,
52157        __experimentalDefaultControls: {
52158          fontSize: true
52159        }
52160      },
52161      __experimentalBorder: {
52162        radius: true,
52163        color: true,
52164        width: true,
52165        style: true,
52166        __experimentalDefaultControls: {
52167          radius: true,
52168          color: true,
52169          width: true,
52170          style: true
52171        }
52172      },
52173      interactivity: {
52174        clientNavigation: true
52175      }
52176    },
52177    style: "wp-block-query-total"
52178  };
52179  
52180  
52181  
52182  
52183  /* Block settings */
52184  const {
52185    name: query_total_name
52186  } = query_total_metadata;
52187  
52188  const query_total_settings = {
52189    icon: queryTotal,
52190    edit: QueryTotalEdit
52191  };
52192  const query_total_init = () => initBlock({
52193    name: query_total_name,
52194    metadata: query_total_metadata,
52195    settings: query_total_settings
52196  });
52197  
52198  ;// ./node_modules/@wordpress/icons/build-module/library/quote.js
52199  /**
52200   * WordPress dependencies
52201   */
52202  
52203  
52204  const quote = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
52205    viewBox: "0 0 24 24",
52206    xmlns: "http://www.w3.org/2000/svg",
52207    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
52208      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"
52209    })
52210  });
52211  /* harmony default export */ const library_quote = (quote);
52212  
52213  ;// ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js
52214  /**
52215   * External dependencies
52216   */
52217  
52218  
52219  /**
52220   * WordPress dependencies
52221   */
52222  
52223  
52224  
52225  const migrateToQuoteV2 = attributes => {
52226    const {
52227      value,
52228      ...restAttributes
52229    } = attributes;
52230    return [{
52231      ...restAttributes
52232    }, value ? (0,external_wp_blocks_namespaceObject.parseWithAttributeSchema)(value, {
52233      type: 'array',
52234      source: 'query',
52235      selector: 'p',
52236      query: {
52237        content: {
52238          type: 'string',
52239          source: 'html'
52240        }
52241      }
52242    }).map(({
52243      content
52244    }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52245      content
52246    })) : (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph')];
52247  };
52248  const deprecated_TEXT_ALIGN_OPTIONS = ['left', 'right', 'center'];
52249  
52250  // Migrate existing text alignment settings to the renamed attribute.
52251  const deprecated_migrateTextAlign = (attributes, innerBlocks) => {
52252    const {
52253      align,
52254      ...rest
52255    } = attributes;
52256    // Check if there are valid alignments stored in the old attribute
52257    // and assign them to the new attribute name.
52258    const migratedAttributes = deprecated_TEXT_ALIGN_OPTIONS.includes(align) ? {
52259      ...rest,
52260      textAlign: align
52261    } : attributes;
52262    return [migratedAttributes, innerBlocks];
52263  };
52264  
52265  // Migrate the v2 blocks with style === `2`;
52266  const migrateLargeStyle = (attributes, innerBlocks) => {
52267    return [{
52268      ...attributes,
52269      className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large'
52270    }, innerBlocks];
52271  };
52272  
52273  // Version before the 'align' attribute was replaced with 'textAlign'.
52274  const quote_deprecated_v4 = {
52275    attributes: {
52276      value: {
52277        type: 'string',
52278        source: 'html',
52279        selector: 'blockquote',
52280        multiline: 'p',
52281        default: '',
52282        role: 'content'
52283      },
52284      citation: {
52285        type: 'string',
52286        source: 'html',
52287        selector: 'cite',
52288        default: '',
52289        role: 'content'
52290      },
52291      align: {
52292        type: 'string'
52293      }
52294    },
52295    supports: {
52296      anchor: true,
52297      html: false,
52298      __experimentalOnEnter: true,
52299      __experimentalOnMerge: true,
52300      typography: {
52301        fontSize: true,
52302        lineHeight: true,
52303        __experimentalFontFamily: true,
52304        __experimentalFontWeight: true,
52305        __experimentalFontStyle: true,
52306        __experimentalTextTransform: true,
52307        __experimentalTextDecoration: true,
52308        __experimentalLetterSpacing: true,
52309        __experimentalDefaultControls: {
52310          fontSize: true,
52311          fontAppearance: true
52312        }
52313      },
52314      color: {
52315        gradients: true,
52316        heading: true,
52317        link: true,
52318        __experimentalDefaultControls: {
52319          background: true,
52320          text: true
52321        }
52322      }
52323    },
52324    isEligible: ({
52325      align
52326    }) => deprecated_TEXT_ALIGN_OPTIONS.includes(align),
52327    save({
52328      attributes
52329    }) {
52330      const {
52331        align,
52332        citation
52333      } = attributes;
52334      const className = dist_clsx({
52335        [`has-text-align-$align}`]: align
52336      });
52337      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52338        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
52339          className
52340        }),
52341        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, {
52342          tagName: "cite",
52343          value: citation
52344        })]
52345      });
52346    },
52347    migrate: deprecated_migrateTextAlign
52348  };
52349  const quote_deprecated_v3 = {
52350    attributes: {
52351      value: {
52352        type: 'string',
52353        source: 'html',
52354        selector: 'blockquote',
52355        multiline: 'p',
52356        default: '',
52357        role: 'content'
52358      },
52359      citation: {
52360        type: 'string',
52361        source: 'html',
52362        selector: 'cite',
52363        default: '',
52364        role: 'content'
52365      },
52366      align: {
52367        type: 'string'
52368      }
52369    },
52370    supports: {
52371      anchor: true,
52372      __experimentalSlashInserter: true,
52373      typography: {
52374        fontSize: true,
52375        lineHeight: true,
52376        __experimentalFontStyle: true,
52377        __experimentalFontWeight: true,
52378        __experimentalLetterSpacing: true,
52379        __experimentalTextTransform: true,
52380        __experimentalDefaultControls: {
52381          fontSize: true,
52382          fontAppearance: true
52383        }
52384      }
52385    },
52386    save({
52387      attributes
52388    }) {
52389      const {
52390        align,
52391        value,
52392        citation
52393      } = attributes;
52394      const className = dist_clsx({
52395        [`has-text-align-$align}`]: align
52396      });
52397      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52398        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
52399          className
52400        }),
52401        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52402          multiline: true,
52403          value: value
52404        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52405          tagName: "cite",
52406          value: citation
52407        })]
52408      });
52409    },
52410    migrate(attributes) {
52411      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52412    }
52413  };
52414  const quote_deprecated_v2 = {
52415    attributes: {
52416      value: {
52417        type: 'string',
52418        source: 'html',
52419        selector: 'blockquote',
52420        multiline: 'p',
52421        default: ''
52422      },
52423      citation: {
52424        type: 'string',
52425        source: 'html',
52426        selector: 'cite',
52427        default: ''
52428      },
52429      align: {
52430        type: 'string'
52431      }
52432    },
52433    migrate(attributes) {
52434      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52435    },
52436    save({
52437      attributes
52438    }) {
52439      const {
52440        align,
52441        value,
52442        citation
52443      } = attributes;
52444      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52445        style: {
52446          textAlign: align ? align : null
52447        },
52448        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52449          multiline: true,
52450          value: value
52451        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52452          tagName: "cite",
52453          value: citation
52454        })]
52455      });
52456    }
52457  };
52458  const quote_deprecated_v1 = {
52459    attributes: {
52460      value: {
52461        type: 'string',
52462        source: 'html',
52463        selector: 'blockquote',
52464        multiline: 'p',
52465        default: ''
52466      },
52467      citation: {
52468        type: 'string',
52469        source: 'html',
52470        selector: 'cite',
52471        default: ''
52472      },
52473      align: {
52474        type: 'string'
52475      },
52476      style: {
52477        type: 'number',
52478        default: 1
52479      }
52480    },
52481    migrate(attributes) {
52482      if (attributes.style === 2) {
52483        const {
52484          style,
52485          ...restAttributes
52486        } = attributes;
52487        return deprecated_migrateTextAlign(...migrateLargeStyle(...migrateToQuoteV2(restAttributes)));
52488      }
52489      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52490    },
52491    save({
52492      attributes
52493    }) {
52494      const {
52495        align,
52496        value,
52497        citation,
52498        style
52499      } = attributes;
52500      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52501        className: style === 2 ? 'is-large' : '',
52502        style: {
52503          textAlign: align ? align : null
52504        },
52505        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52506          multiline: true,
52507          value: value
52508        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52509          tagName: "cite",
52510          value: citation
52511        })]
52512      });
52513    }
52514  };
52515  const quote_deprecated_v0 = {
52516    attributes: {
52517      value: {
52518        type: 'string',
52519        source: 'html',
52520        selector: 'blockquote',
52521        multiline: 'p',
52522        default: ''
52523      },
52524      citation: {
52525        type: 'string',
52526        source: 'html',
52527        selector: 'footer',
52528        default: ''
52529      },
52530      align: {
52531        type: 'string'
52532      },
52533      style: {
52534        type: 'number',
52535        default: 1
52536      }
52537    },
52538    migrate(attributes) {
52539      if (!isNaN(parseInt(attributes.style))) {
52540        const {
52541          style,
52542          ...restAttributes
52543        } = attributes;
52544        return deprecated_migrateTextAlign(...migrateToQuoteV2(restAttributes));
52545      }
52546      return deprecated_migrateTextAlign(...migrateToQuoteV2(attributes));
52547    },
52548    save({
52549      attributes
52550    }) {
52551      const {
52552        align,
52553        value,
52554        citation,
52555        style
52556      } = attributes;
52557      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52558        className: `blocks-quote-style-$style}`,
52559        style: {
52560          textAlign: align ? align : null
52561        },
52562        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52563          multiline: true,
52564          value: value
52565        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
52566          tagName: "footer",
52567          value: citation
52568        })]
52569      });
52570    }
52571  };
52572  
52573  /**
52574   * New deprecations need to be placed first
52575   * for them to have higher priority.
52576   *
52577   * Old deprecations may need to be updated as well.
52578   *
52579   * See block-deprecation.md
52580   */
52581  /* harmony default export */ const quote_deprecated = ([quote_deprecated_v4, quote_deprecated_v3, quote_deprecated_v2, quote_deprecated_v1, quote_deprecated_v0]);
52582  
52583  ;// ./node_modules/@wordpress/icons/build-module/library/verse.js
52584  /**
52585   * WordPress dependencies
52586   */
52587  
52588  
52589  const verse = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
52590    viewBox: "0 0 24 24",
52591    xmlns: "http://www.w3.org/2000/svg",
52592    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
52593      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"
52594    })
52595  });
52596  /* harmony default export */ const library_verse = (verse);
52597  
52598  ;// ./node_modules/@wordpress/block-library/build-module/quote/edit.js
52599  /**
52600   * External dependencies
52601   */
52602  
52603  
52604  /**
52605   * WordPress dependencies
52606   */
52607  
52608  
52609  
52610  
52611  
52612  
52613  
52614  
52615  /**
52616   * Internal dependencies
52617   */
52618  
52619  
52620  
52621  const edit_isWebPlatform = external_wp_element_namespaceObject.Platform.OS === 'web';
52622  const quote_edit_TEMPLATE = [['core/paragraph', {}]];
52623  
52624  /**
52625   * At the moment, deprecations don't handle create blocks from attributes
52626   * (like when using CPT templates). For this reason, this hook is necessary
52627   * to avoid breaking templates using the old quote block format.
52628   *
52629   * @param {Object} attributes Block attributes.
52630   * @param {string} clientId   Block client ID.
52631   */
52632  const edit_useMigrateOnLoad = (attributes, clientId) => {
52633    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
52634    const {
52635      updateBlockAttributes,
52636      replaceInnerBlocks
52637    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
52638    (0,external_wp_element_namespaceObject.useEffect)(() => {
52639      // As soon as the block is loaded, migrate it to the new version.
52640  
52641      if (!attributes.value) {
52642        // No need to migrate if it doesn't have the value attribute.
52643        return;
52644      }
52645      const [newAttributes, newInnerBlocks] = migrateToQuoteV2(attributes);
52646      external_wp_deprecated_default()('Value attribute on the quote block', {
52647        since: '6.0',
52648        version: '6.5',
52649        alternative: 'inner blocks'
52650      });
52651      registry.batch(() => {
52652        updateBlockAttributes(clientId, newAttributes);
52653        replaceInnerBlocks(clientId, newInnerBlocks);
52654      });
52655    }, [attributes.value]);
52656  };
52657  function QuoteEdit({
52658    attributes,
52659    setAttributes,
52660    insertBlocksAfter,
52661    clientId,
52662    className,
52663    style,
52664    isSelected
52665  }) {
52666    const {
52667      textAlign
52668    } = attributes;
52669    edit_useMigrateOnLoad(attributes, clientId);
52670    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
52671      className: dist_clsx(className, {
52672        [`has-text-align-$textAlign}`]: textAlign
52673      }),
52674      ...(!edit_isWebPlatform && {
52675        style
52676      })
52677    });
52678    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
52679      template: quote_edit_TEMPLATE,
52680      templateInsertUpdatesSelection: true,
52681      __experimentalCaptureToolbars: true,
52682      renderAppender: false
52683    });
52684    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
52685      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
52686        group: "block",
52687        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
52688          value: textAlign,
52689          onChange: nextAlign => {
52690            setAttributes({
52691              textAlign: nextAlign
52692            });
52693          }
52694        })
52695      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.BlockQuotation, {
52696        ...innerBlocksProps,
52697        children: [innerBlocksProps.children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
52698          attributeKey: "citation",
52699          tagName: edit_isWebPlatform ? 'cite' : 'p',
52700          style: edit_isWebPlatform && {
52701            display: 'block'
52702          },
52703          isSelected: isSelected,
52704          attributes: attributes,
52705          setAttributes: setAttributes,
52706          __unstableMobileNoFocusOnMount: true,
52707          icon: library_verse,
52708          label: (0,external_wp_i18n_namespaceObject.__)('Quote citation'),
52709          placeholder:
52710          // translators: placeholder text used for the
52711          // citation
52712          (0,external_wp_i18n_namespaceObject.__)('Add citation'),
52713          addLabel: (0,external_wp_i18n_namespaceObject.__)('Add citation'),
52714          removeLabel: (0,external_wp_i18n_namespaceObject.__)('Remove citation'),
52715          excludeElementClassName: true,
52716          className: "wp-block-quote__citation",
52717          insertBlocksAfter: insertBlocksAfter,
52718          ...(!edit_isWebPlatform ? {
52719            textAlign
52720          } : {})
52721        })]
52722      })]
52723    });
52724  }
52725  
52726  ;// ./node_modules/@wordpress/block-library/build-module/quote/save.js
52727  /**
52728   * External dependencies
52729   */
52730  
52731  
52732  /**
52733   * WordPress dependencies
52734   */
52735  
52736  
52737  function quote_save_save({
52738    attributes
52739  }) {
52740    const {
52741      textAlign,
52742      citation
52743    } = attributes;
52744    const className = dist_clsx({
52745      [`has-text-align-$textAlign}`]: textAlign
52746    });
52747    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("blockquote", {
52748      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
52749        className
52750      }),
52751      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, {
52752        tagName: "cite",
52753        value: citation
52754      })]
52755    });
52756  }
52757  
52758  ;// ./node_modules/@wordpress/block-library/build-module/quote/transforms.js
52759  /**
52760   * WordPress dependencies
52761   */
52762  
52763  
52764  const quote_transforms_transforms = {
52765    from: [{
52766      type: 'block',
52767      blocks: ['core/pullquote'],
52768      transform: ({
52769        value,
52770        align,
52771        citation,
52772        anchor,
52773        fontSize,
52774        style
52775      }) => {
52776        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {
52777          align,
52778          citation,
52779          anchor,
52780          fontSize,
52781          style
52782        }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52783          content: value
52784        })]);
52785      }
52786    }, {
52787      type: 'prefix',
52788      prefix: '>',
52789      transform: content => (0,external_wp_blocks_namespaceObject.createBlock)('core/quote', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52790        content
52791      })])
52792    }, {
52793      type: 'raw',
52794      schema: () => ({
52795        blockquote: {
52796          children: '*'
52797        }
52798      }),
52799      selector: 'blockquote',
52800      transform: (node, handler) => {
52801        return (0,external_wp_blocks_namespaceObject.createBlock)('core/quote',
52802        // Don't try to parse any `cite` out of this content.
52803        // * There may be more than one cite.
52804        // * There may be more attribution text than just the cite.
52805        // * If the cite is nested in the quoted text, it's wrong to
52806        //   remove it.
52807        {}, handler({
52808          HTML: node.innerHTML,
52809          mode: 'BLOCKS'
52810        }));
52811      }
52812    }, {
52813      type: 'block',
52814      isMultiBlock: true,
52815      blocks: ['*'],
52816      isMatch: ({}, blocks) => {
52817        // When a single block is selected make the transformation
52818        // available only to specific blocks that make sense.
52819        if (blocks.length === 1) {
52820          return ['core/paragraph', 'core/heading', 'core/list', 'core/pullquote'].includes(blocks[0].name);
52821        }
52822        return !blocks.some(({
52823          name
52824        }) => name === 'core/quote');
52825      },
52826      __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)))
52827    }],
52828    to: [{
52829      type: 'block',
52830      blocks: ['core/pullquote'],
52831      isMatch: ({}, block) => {
52832        return block.innerBlocks.every(({
52833          name
52834        }) => name === 'core/paragraph');
52835      },
52836      transform: ({
52837        align,
52838        citation,
52839        anchor,
52840        fontSize,
52841        style
52842      }, innerBlocks) => {
52843        const value = innerBlocks.map(({
52844          attributes
52845        }) => `$attributes.content}`).join('<br>');
52846        return (0,external_wp_blocks_namespaceObject.createBlock)('core/pullquote', {
52847          value,
52848          align,
52849          citation,
52850          anchor,
52851          fontSize,
52852          style
52853        });
52854      }
52855    }, {
52856      type: 'block',
52857      blocks: ['core/paragraph'],
52858      transform: ({
52859        citation
52860      }, innerBlocks) => external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52861        content: citation
52862      })]
52863    }, {
52864      type: 'block',
52865      blocks: ['core/group'],
52866      transform: ({
52867        citation,
52868        anchor
52869      }, innerBlocks) => (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
52870        anchor
52871      }, external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52872        content: citation
52873      })])
52874    }],
52875    ungroup: ({
52876      citation
52877    }, innerBlocks) => external_wp_blockEditor_namespaceObject.RichText.isEmpty(citation) ? innerBlocks : [...innerBlocks, (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
52878      content: citation
52879    })]
52880  };
52881  /* harmony default export */ const quote_transforms = (quote_transforms_transforms);
52882  
52883  ;// ./node_modules/@wordpress/block-library/build-module/quote/index.js
52884  /**
52885   * WordPress dependencies
52886   */
52887  
52888  
52889  
52890  /**
52891   * Internal dependencies
52892   */
52893  
52894  
52895  
52896  const quote_metadata = {
52897    $schema: "https://schemas.wp.org/trunk/block.json",
52898    apiVersion: 3,
52899    name: "core/quote",
52900    title: "Quote",
52901    category: "text",
52902    description: "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" \u2014 Julio Cort\xE1zar",
52903    keywords: ["blockquote", "cite"],
52904    textdomain: "default",
52905    attributes: {
52906      value: {
52907        type: "string",
52908        source: "html",
52909        selector: "blockquote",
52910        multiline: "p",
52911        "default": "",
52912        role: "content"
52913      },
52914      citation: {
52915        type: "rich-text",
52916        source: "rich-text",
52917        selector: "cite",
52918        role: "content"
52919      },
52920      textAlign: {
52921        type: "string"
52922      }
52923    },
52924    supports: {
52925      anchor: true,
52926      align: ["left", "right", "wide", "full"],
52927      html: false,
52928      background: {
52929        backgroundImage: true,
52930        backgroundSize: true,
52931        __experimentalDefaultControls: {
52932          backgroundImage: true
52933        }
52934      },
52935      __experimentalBorder: {
52936        color: true,
52937        radius: true,
52938        style: true,
52939        width: true,
52940        __experimentalDefaultControls: {
52941          color: true,
52942          radius: true,
52943          style: true,
52944          width: true
52945        }
52946      },
52947      dimensions: {
52948        minHeight: true,
52949        __experimentalDefaultControls: {
52950          minHeight: false
52951        }
52952      },
52953      __experimentalOnEnter: true,
52954      __experimentalOnMerge: true,
52955      typography: {
52956        fontSize: true,
52957        lineHeight: true,
52958        __experimentalFontFamily: true,
52959        __experimentalFontWeight: true,
52960        __experimentalFontStyle: true,
52961        __experimentalTextTransform: true,
52962        __experimentalTextDecoration: true,
52963        __experimentalLetterSpacing: true,
52964        __experimentalDefaultControls: {
52965          fontSize: true
52966        }
52967      },
52968      color: {
52969        gradients: true,
52970        heading: true,
52971        link: true,
52972        __experimentalDefaultControls: {
52973          background: true,
52974          text: true
52975        }
52976      },
52977      layout: {
52978        allowEditing: false
52979      },
52980      spacing: {
52981        blockGap: true,
52982        padding: true,
52983        margin: true
52984      },
52985      interactivity: {
52986        clientNavigation: true
52987      }
52988    },
52989    styles: [{
52990      name: "default",
52991      label: "Default",
52992      isDefault: true
52993    }, {
52994      name: "plain",
52995      label: "Plain"
52996    }],
52997    editorStyle: "wp-block-quote-editor",
52998    style: "wp-block-quote"
52999  };
53000  
53001  
53002  const {
53003    name: quote_name
53004  } = quote_metadata;
53005  
53006  const quote_settings = {
53007    icon: library_quote,
53008    example: {
53009      attributes: {
53010        citation: 'Julio Cortázar'
53011      },
53012      innerBlocks: [{
53013        name: 'core/paragraph',
53014        attributes: {
53015          content: (0,external_wp_i18n_namespaceObject.__)('In quoting others, we cite ourselves.')
53016        }
53017      }]
53018    },
53019    transforms: quote_transforms,
53020    edit: QuoteEdit,
53021    save: quote_save_save,
53022    deprecated: quote_deprecated
53023  };
53024  const quote_init = () => initBlock({
53025    name: quote_name,
53026    metadata: quote_metadata,
53027    settings: quote_settings
53028  });
53029  
53030  ;// ./node_modules/@wordpress/icons/build-module/library/symbol.js
53031  /**
53032   * WordPress dependencies
53033   */
53034  
53035  
53036  const symbol = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53037    xmlns: "http://www.w3.org/2000/svg",
53038    viewBox: "0 0 24 24",
53039    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53040      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"
53041    })
53042  });
53043  /* harmony default export */ const library_symbol = (symbol);
53044  
53045  ;// external ["wp","patterns"]
53046  const external_wp_patterns_namespaceObject = window["wp"]["patterns"];
53047  ;// ./node_modules/@wordpress/block-library/build-module/block/edit.js
53048  /**
53049   * External dependencies
53050   */
53051  
53052  
53053  /**
53054   * WordPress dependencies
53055   */
53056  
53057  
53058  
53059  
53060  
53061  
53062  
53063  
53064  
53065  /**
53066   * Internal dependencies
53067   */
53068  
53069  
53070  const {
53071    useLayoutClasses
53072  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
53073  const {
53074    hasOverridableBlocks
53075  } = unlock(external_wp_patterns_namespaceObject.privateApis);
53076  const fullAlignments = ['full', 'wide', 'left', 'right'];
53077  const useInferredLayout = (blocks, parentLayout) => {
53078    const initialInferredAlignmentRef = (0,external_wp_element_namespaceObject.useRef)();
53079    return (0,external_wp_element_namespaceObject.useMemo)(() => {
53080      // Exit early if the pattern's blocks haven't loaded yet.
53081      if (!blocks?.length) {
53082        return {};
53083      }
53084      let alignment = initialInferredAlignmentRef.current;
53085  
53086      // Only track the initial alignment so that temporarily removed
53087      // alignments can be reapplied.
53088      if (alignment === undefined) {
53089        const isConstrained = parentLayout?.type === 'constrained';
53090        const hasFullAlignment = blocks.some(block => fullAlignments.includes(block.attributes.align));
53091        alignment = isConstrained && hasFullAlignment ? 'full' : null;
53092        initialInferredAlignmentRef.current = alignment;
53093      }
53094      const layout = alignment ? parentLayout : undefined;
53095      return {
53096        alignment,
53097        layout
53098      };
53099    }, [blocks, parentLayout]);
53100  };
53101  function RecursionWarning() {
53102    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
53103    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53104      ...blockProps,
53105      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
53106        children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
53107      })
53108    });
53109  }
53110  const edit_NOOP = () => {};
53111  
53112  // Wrap the main Edit function for the pattern block with a recursion wrapper
53113  // that allows short-circuiting rendering as early as possible, before any
53114  // of the other effects in the block edit have run.
53115  function ReusableBlockEditRecursionWrapper(props) {
53116    const {
53117      ref
53118    } = props.attributes;
53119    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(ref);
53120    if (hasAlreadyRendered) {
53121      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionWarning, {});
53122    }
53123    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
53124      uniqueId: ref,
53125      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReusableBlockEdit, {
53126        ...props
53127      })
53128    });
53129  }
53130  function ReusableBlockControl({
53131    recordId,
53132    canOverrideBlocks,
53133    hasContent,
53134    handleEditOriginal,
53135    resetContent
53136  }) {
53137    const canUserEdit = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_coreData_namespaceObject.store).canUser('update', {
53138      kind: 'postType',
53139      name: 'wp_block',
53140      id: recordId
53141    }), [recordId]);
53142    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53143      children: [canUserEdit && !!handleEditOriginal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53144        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
53145          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
53146            onClick: handleEditOriginal,
53147            children: (0,external_wp_i18n_namespaceObject.__)('Edit original')
53148          })
53149        })
53150      }), canOverrideBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53151        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
53152          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
53153            onClick: resetContent,
53154            disabled: !hasContent,
53155            children: (0,external_wp_i18n_namespaceObject.__)('Reset')
53156          })
53157        })
53158      })]
53159    });
53160  }
53161  function ReusableBlockEdit({
53162    name,
53163    attributes: {
53164      ref,
53165      content
53166    },
53167    __unstableParentLayout: parentLayout,
53168    setAttributes
53169  }) {
53170    const {
53171      record,
53172      hasResolved
53173    } = (0,external_wp_coreData_namespaceObject.useEntityRecord)('postType', 'wp_block', ref);
53174    const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_block', {
53175      id: ref
53176    });
53177    const isMissing = hasResolved && !record;
53178    const {
53179      __unstableMarkLastChangeAsPersistent
53180    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
53181    const {
53182      onNavigateToEntityRecord,
53183      hasPatternOverridesSource
53184    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
53185      const {
53186        getSettings
53187      } = select(external_wp_blockEditor_namespaceObject.store);
53188      // For editing link to the site editor if the theme and user permissions support it.
53189      return {
53190        onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
53191        hasPatternOverridesSource: !!(0,external_wp_blocks_namespaceObject.getBlockBindingsSource)('core/pattern-overrides')
53192      };
53193    }, []);
53194    const canOverrideBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => hasPatternOverridesSource && hasOverridableBlocks(blocks), [hasPatternOverridesSource, blocks]);
53195    const {
53196      alignment,
53197      layout
53198    } = useInferredLayout(blocks, parentLayout);
53199    const layoutClasses = useLayoutClasses({
53200      layout
53201    }, name);
53202    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
53203      className: dist_clsx('block-library-block__reusable-block-container', layout && layoutClasses, {
53204        [`align$alignment}`]: alignment
53205      })
53206    });
53207    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
53208      layout,
53209      value: blocks,
53210      onInput: edit_NOOP,
53211      onChange: edit_NOOP,
53212      renderAppender: blocks?.length ? undefined : external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
53213    });
53214    const handleEditOriginal = () => {
53215      onNavigateToEntityRecord({
53216        postId: ref,
53217        postType: 'wp_block'
53218      });
53219    };
53220    const resetContent = () => {
53221      if (content) {
53222        // Make sure any previous changes are persisted before resetting.
53223        __unstableMarkLastChangeAsPersistent();
53224        setAttributes({
53225          content: undefined
53226        });
53227      }
53228    };
53229    let children = null;
53230    if (isMissing) {
53231      children = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
53232        children: (0,external_wp_i18n_namespaceObject.__)('Block has been deleted or is unavailable.')
53233      });
53234    }
53235    if (!hasResolved) {
53236      children = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53237        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
53238      });
53239    }
53240    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53241      children: [hasResolved && !isMissing && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReusableBlockControl, {
53242        recordId: ref,
53243        canOverrideBlocks: canOverrideBlocks,
53244        hasContent: !!content,
53245        handleEditOriginal: onNavigateToEntityRecord ? handleEditOriginal : undefined,
53246        resetContent: resetContent
53247      }), children === null ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53248        ...innerBlocksProps
53249      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53250        ...blockProps,
53251        children: children
53252      })]
53253    });
53254  }
53255  
53256  ;// ./node_modules/@wordpress/block-library/build-module/block/deprecated.js
53257  const isObject = obj => typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
53258  
53259  // v2: Migrate to a more condensed version of the 'content' attribute attribute.
53260  const block_deprecated_v2 = {
53261    attributes: {
53262      ref: {
53263        type: 'number'
53264      },
53265      content: {
53266        type: 'object'
53267      }
53268    },
53269    supports: {
53270      customClassName: false,
53271      html: false,
53272      inserter: false,
53273      renaming: false
53274    },
53275    // Force this deprecation to run whenever there's a values sub-property that's an object.
53276    //
53277    // This could fail in the future if a block ever has binding to a `values` attribute.
53278    // Some extra protection is added to ensure `values` is an object, but this only reduces
53279    // the likelihood, it doesn't solve it completely.
53280    isEligible({
53281      content
53282    }) {
53283      return !!content && Object.keys(content).every(contentKey => content[contentKey].values && isObject(content[contentKey].values));
53284    },
53285    /*
53286     * Old attribute format:
53287     * content: {
53288     *     "V98q_x": {
53289     *                // The attribute values are now stored as a 'values' sub-property.
53290     *         values: { content: 'My content value' },
53291     *            // ... additional metadata, like the block name can be stored here.
53292     *     }
53293     * }
53294     *
53295     * New attribute format:
53296     * content: {
53297     *     "V98q_x": {
53298     *         content: 'My content value',
53299     *     }
53300     * }
53301     */
53302    migrate(attributes) {
53303      const {
53304        content,
53305        ...retainedAttributes
53306      } = attributes;
53307      if (content && Object.keys(content).length) {
53308        const updatedContent = {
53309          ...content
53310        };
53311        for (const contentKey in content) {
53312          updatedContent[contentKey] = content[contentKey].values;
53313        }
53314        return {
53315          ...retainedAttributes,
53316          content: updatedContent
53317        };
53318      }
53319      return attributes;
53320    }
53321  };
53322  
53323  // v1: Rename the `overrides` attribute to the `content` attribute.
53324  const block_deprecated_v1 = {
53325    attributes: {
53326      ref: {
53327        type: 'number'
53328      },
53329      overrides: {
53330        type: 'object'
53331      }
53332    },
53333    supports: {
53334      customClassName: false,
53335      html: false,
53336      inserter: false,
53337      renaming: false
53338    },
53339    // Force this deprecation to run whenever there's an `overrides` object.
53340    isEligible({
53341      overrides
53342    }) {
53343      return !!overrides;
53344    },
53345    /*
53346     * Old attribute format:
53347     * overrides: {
53348     *     // An key is an id that represents a block.
53349     *     // The values are the attribute values of the block.
53350     *     "V98q_x": { content: 'My content value' }
53351     * }
53352     *
53353     * New attribute format:
53354     * content: {
53355     *     "V98q_x": { content: 'My content value' }
53356     * }
53357     *
53358     */
53359    migrate(attributes) {
53360      const {
53361        overrides,
53362        ...retainedAttributes
53363      } = attributes;
53364      const content = {};
53365      Object.keys(overrides).forEach(id => {
53366        content[id] = overrides[id];
53367      });
53368      return {
53369        ...retainedAttributes,
53370        content
53371      };
53372    }
53373  };
53374  /* harmony default export */ const block_deprecated = ([block_deprecated_v2, block_deprecated_v1]);
53375  
53376  ;// ./node_modules/@wordpress/block-library/build-module/block/index.js
53377  /**
53378   * WordPress dependencies
53379   */
53380  
53381  
53382  
53383  
53384  
53385  /**
53386   * Internal dependencies
53387   */
53388  
53389  const block_metadata = {
53390    $schema: "https://schemas.wp.org/trunk/block.json",
53391    apiVersion: 3,
53392    name: "core/block",
53393    title: "Pattern",
53394    category: "reusable",
53395    description: "Reuse this design across your site.",
53396    keywords: ["reusable"],
53397    textdomain: "default",
53398    attributes: {
53399      ref: {
53400        type: "number"
53401      },
53402      content: {
53403        type: "object",
53404        "default": {}
53405      }
53406    },
53407    providesContext: {
53408      "pattern/overrides": "content"
53409    },
53410    supports: {
53411      customClassName: false,
53412      html: false,
53413      inserter: false,
53414      renaming: false,
53415      interactivity: {
53416        clientNavigation: true
53417      }
53418    }
53419  };
53420  
53421  
53422  const {
53423    name: block_name
53424  } = block_metadata;
53425  
53426  const block_settings = {
53427    deprecated: block_deprecated,
53428    edit: ReusableBlockEditRecursionWrapper,
53429    icon: library_symbol,
53430    __experimentalLabel: ({
53431      ref
53432    }) => {
53433      if (!ref) {
53434        return;
53435      }
53436      const entity = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', 'wp_block', ref);
53437      if (!entity?.title) {
53438        return;
53439      }
53440      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entity.title);
53441    }
53442  };
53443  const block_init = () => initBlock({
53444    name: block_name,
53445    metadata: block_metadata,
53446    settings: block_settings
53447  });
53448  
53449  ;// ./node_modules/@wordpress/block-library/build-module/read-more/edit.js
53450  /**
53451   * WordPress dependencies
53452   */
53453  
53454  
53455  
53456  
53457  
53458  /**
53459   * Internal dependencies
53460   */
53461  
53462  
53463  function ReadMore({
53464    attributes: {
53465      content,
53466      linkTarget
53467    },
53468    setAttributes,
53469    insertBlocksAfter
53470  }) {
53471    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
53472    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
53473    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53474      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
53475        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
53476          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
53477          resetAll: () => setAttributes({
53478            linkTarget: '_self'
53479          }),
53480          dropdownMenuProps: dropdownMenuProps,
53481          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
53482            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
53483            isShownByDefault: true,
53484            hasValue: () => linkTarget !== '_self',
53485            onDeselect: () => setAttributes({
53486              linkTarget: '_self'
53487            }),
53488            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53489              __nextHasNoMarginBottom: true,
53490              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
53491              onChange: value => setAttributes({
53492                linkTarget: value ? '_blank' : '_self'
53493              }),
53494              checked: linkTarget === '_blank'
53495            })
53496          })
53497        })
53498      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
53499        identifier: "content",
53500        tagName: "a",
53501        "aria-label": (0,external_wp_i18n_namespaceObject.__)('“Read more” link text'),
53502        placeholder: (0,external_wp_i18n_namespaceObject.__)('Read more'),
53503        value: content,
53504        onChange: newValue => setAttributes({
53505          content: newValue
53506        }),
53507        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
53508        withoutInteractiveFormatting: true,
53509        ...blockProps
53510      })]
53511    });
53512  }
53513  
53514  ;// ./node_modules/@wordpress/block-library/build-module/read-more/index.js
53515  /**
53516   * WordPress dependencies
53517   */
53518  
53519  
53520  
53521  /**
53522   * Internal dependencies
53523   */
53524  
53525  const read_more_metadata = {
53526    $schema: "https://schemas.wp.org/trunk/block.json",
53527    apiVersion: 3,
53528    name: "core/read-more",
53529    title: "Read More",
53530    category: "theme",
53531    description: "Displays the link of a post, page, or any other content-type.",
53532    textdomain: "default",
53533    attributes: {
53534      content: {
53535        type: "string"
53536      },
53537      linkTarget: {
53538        type: "string",
53539        "default": "_self"
53540      }
53541    },
53542    usesContext: ["postId"],
53543    supports: {
53544      html: false,
53545      color: {
53546        gradients: true,
53547        text: true
53548      },
53549      typography: {
53550        fontSize: true,
53551        lineHeight: true,
53552        __experimentalFontFamily: true,
53553        __experimentalFontWeight: true,
53554        __experimentalFontStyle: true,
53555        __experimentalTextTransform: true,
53556        __experimentalLetterSpacing: true,
53557        __experimentalTextDecoration: true,
53558        __experimentalDefaultControls: {
53559          fontSize: true,
53560          textDecoration: true
53561        }
53562      },
53563      spacing: {
53564        margin: ["top", "bottom"],
53565        padding: true,
53566        __experimentalDefaultControls: {
53567          padding: true
53568        }
53569      },
53570      __experimentalBorder: {
53571        color: true,
53572        radius: true,
53573        width: true,
53574        __experimentalDefaultControls: {
53575          width: true
53576        }
53577      },
53578      interactivity: {
53579        clientNavigation: true
53580      }
53581    },
53582    style: "wp-block-read-more"
53583  };
53584  
53585  const {
53586    name: read_more_name
53587  } = read_more_metadata;
53588  
53589  const read_more_settings = {
53590    icon: library_link,
53591    edit: ReadMore,
53592    example: {
53593      attributes: {
53594        content: (0,external_wp_i18n_namespaceObject.__)('Read more')
53595      }
53596    }
53597  };
53598  const read_more_init = () => initBlock({
53599    name: read_more_name,
53600    metadata: read_more_metadata,
53601    settings: read_more_settings
53602  });
53603  
53604  ;// ./node_modules/@wordpress/icons/build-module/library/rss.js
53605  /**
53606   * WordPress dependencies
53607   */
53608  
53609  
53610  const rss = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53611    xmlns: "http://www.w3.org/2000/svg",
53612    viewBox: "0 0 24 24",
53613    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53614      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"
53615    })
53616  });
53617  /* harmony default export */ const library_rss = (rss);
53618  
53619  ;// ./node_modules/@wordpress/block-library/build-module/rss/edit.js
53620  /**
53621   * WordPress dependencies
53622   */
53623  
53624  
53625  
53626  
53627  
53628  
53629  
53630  
53631  const DEFAULT_MIN_ITEMS = 1;
53632  const DEFAULT_MAX_ITEMS = 20;
53633  function RSSEdit({
53634    attributes,
53635    setAttributes
53636  }) {
53637    const [isEditing, setIsEditing] = (0,external_wp_element_namespaceObject.useState)(!attributes.feedURL);
53638    const {
53639      blockLayout,
53640      columns,
53641      displayAuthor,
53642      displayDate,
53643      displayExcerpt,
53644      excerptLength,
53645      feedURL,
53646      itemsToShow
53647    } = attributes;
53648    function toggleAttribute(propName) {
53649      return () => {
53650        const value = attributes[propName];
53651        setAttributes({
53652          [propName]: !value
53653        });
53654      };
53655    }
53656    function onSubmitURL(event) {
53657      event.preventDefault();
53658      if (feedURL) {
53659        setAttributes({
53660          feedURL: (0,external_wp_url_namespaceObject.prependHTTP)(feedURL)
53661        });
53662        setIsEditing(false);
53663      }
53664    }
53665    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
53666    const label = (0,external_wp_i18n_namespaceObject.__)('RSS URL');
53667    if (isEditing) {
53668      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53669        ...blockProps,
53670        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
53671          icon: library_rss,
53672          label: label,
53673          instructions: (0,external_wp_i18n_namespaceObject.__)('Display entries from any RSS or Atom feed.'),
53674          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
53675            onSubmit: onSubmitURL,
53676            className: "wp-block-rss__placeholder-form",
53677            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
53678              __next40pxDefaultSize: true,
53679              label: label,
53680              type: "url",
53681              hideLabelFromVision: true,
53682              placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter URL here…'),
53683              value: feedURL,
53684              onChange: value => setAttributes({
53685                feedURL: value
53686              }),
53687              className: "wp-block-rss__placeholder-input"
53688            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
53689              __next40pxDefaultSize: true,
53690              variant: "primary",
53691              type: "submit",
53692              children: (0,external_wp_i18n_namespaceObject.__)('Apply')
53693            })]
53694          })
53695        })
53696      });
53697    }
53698    const toolbarControls = [{
53699      icon: library_edit,
53700      title: (0,external_wp_i18n_namespaceObject.__)('Edit RSS URL'),
53701      onClick: () => setIsEditing(true)
53702    }, {
53703      icon: library_list,
53704      title: (0,external_wp_i18n_namespaceObject._x)('List view', 'RSS block display setting'),
53705      onClick: () => setAttributes({
53706        blockLayout: 'list'
53707      }),
53708      isActive: blockLayout === 'list'
53709    }, {
53710      icon: library_grid,
53711      title: (0,external_wp_i18n_namespaceObject._x)('Grid view', 'RSS block display setting'),
53712      onClick: () => setAttributes({
53713        blockLayout: 'grid'
53714      }),
53715      isActive: blockLayout === 'grid'
53716    }];
53717  
53718    /*
53719     * This function merges the existing attributes with additional style properties.
53720     * The `border` and `spacing` properties are set to `undefined` to ensure that
53721     * these styles are reset and not applied on the server side.
53722     */
53723    const serverSideAttributes = {
53724      ...attributes,
53725      style: {
53726        ...attributes?.style,
53727        border: undefined,
53728        spacing: undefined
53729      }
53730    };
53731    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
53732      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
53733        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
53734          controls: toolbarControls
53735        })
53736      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
53737        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
53738          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
53739          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53740            __nextHasNoMarginBottom: true,
53741            __next40pxDefaultSize: true,
53742            label: (0,external_wp_i18n_namespaceObject.__)('Number of items'),
53743            value: itemsToShow,
53744            onChange: value => setAttributes({
53745              itemsToShow: value
53746            }),
53747            min: DEFAULT_MIN_ITEMS,
53748            max: DEFAULT_MAX_ITEMS,
53749            required: true
53750          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53751            __nextHasNoMarginBottom: true,
53752            label: (0,external_wp_i18n_namespaceObject.__)('Display author'),
53753            checked: displayAuthor,
53754            onChange: toggleAttribute('displayAuthor')
53755          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53756            __nextHasNoMarginBottom: true,
53757            label: (0,external_wp_i18n_namespaceObject.__)('Display date'),
53758            checked: displayDate,
53759            onChange: toggleAttribute('displayDate')
53760          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
53761            __nextHasNoMarginBottom: true,
53762            label: (0,external_wp_i18n_namespaceObject.__)('Display excerpt'),
53763            checked: displayExcerpt,
53764            onChange: toggleAttribute('displayExcerpt')
53765          }), displayExcerpt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53766            __nextHasNoMarginBottom: true,
53767            __next40pxDefaultSize: true,
53768            label: (0,external_wp_i18n_namespaceObject.__)('Max number of words in excerpt'),
53769            value: excerptLength,
53770            onChange: value => setAttributes({
53771              excerptLength: value
53772            }),
53773            min: 10,
53774            max: 100,
53775            required: true
53776          }), blockLayout === 'grid' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
53777            __nextHasNoMarginBottom: true,
53778            __next40pxDefaultSize: true,
53779            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
53780            value: columns,
53781            onChange: value => setAttributes({
53782              columns: value
53783            }),
53784            min: 2,
53785            max: 6,
53786            required: true
53787          })]
53788        })
53789      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
53790        ...blockProps,
53791        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
53792          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
53793            block: "core/rss",
53794            attributes: serverSideAttributes
53795          })
53796        })
53797      })]
53798    });
53799  }
53800  
53801  ;// ./node_modules/@wordpress/block-library/build-module/rss/index.js
53802  /**
53803   * WordPress dependencies
53804   */
53805  
53806  
53807  /**
53808   * Internal dependencies
53809   */
53810  
53811  const rss_metadata = {
53812    $schema: "https://schemas.wp.org/trunk/block.json",
53813    apiVersion: 3,
53814    name: "core/rss",
53815    title: "RSS",
53816    category: "widgets",
53817    description: "Display entries from any RSS or Atom feed.",
53818    keywords: ["atom", "feed"],
53819    textdomain: "default",
53820    attributes: {
53821      columns: {
53822        type: "number",
53823        "default": 2
53824      },
53825      blockLayout: {
53826        type: "string",
53827        "default": "list"
53828      },
53829      feedURL: {
53830        type: "string",
53831        "default": ""
53832      },
53833      itemsToShow: {
53834        type: "number",
53835        "default": 5
53836      },
53837      displayExcerpt: {
53838        type: "boolean",
53839        "default": false
53840      },
53841      displayAuthor: {
53842        type: "boolean",
53843        "default": false
53844      },
53845      displayDate: {
53846        type: "boolean",
53847        "default": false
53848      },
53849      excerptLength: {
53850        type: "number",
53851        "default": 55
53852      }
53853    },
53854    supports: {
53855      align: true,
53856      html: false,
53857      interactivity: {
53858        clientNavigation: true
53859      },
53860      __experimentalBorder: {
53861        radius: true,
53862        color: true,
53863        width: true,
53864        style: true
53865      },
53866      spacing: {
53867        margin: true,
53868        padding: true,
53869        __experimentalDefaultControls: {
53870          padding: false,
53871          margin: false
53872        }
53873      },
53874      color: {
53875        background: true,
53876        text: true,
53877        gradients: true,
53878        link: true
53879      }
53880    },
53881    editorStyle: "wp-block-rss-editor",
53882    style: "wp-block-rss"
53883  };
53884  
53885  const {
53886    name: rss_name
53887  } = rss_metadata;
53888  
53889  const rss_settings = {
53890    icon: library_rss,
53891    example: {
53892      attributes: {
53893        feedURL: 'https://wordpress.org'
53894      }
53895    },
53896    edit: RSSEdit
53897  };
53898  const rss_init = () => initBlock({
53899    name: rss_name,
53900    metadata: rss_metadata,
53901    settings: rss_settings
53902  });
53903  
53904  ;// ./node_modules/@wordpress/icons/build-module/library/search.js
53905  /**
53906   * WordPress dependencies
53907   */
53908  
53909  
53910  const search = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
53911    xmlns: "http://www.w3.org/2000/svg",
53912    viewBox: "0 0 24 24",
53913    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
53914      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"
53915    })
53916  });
53917  /* harmony default export */ const library_search = (search);
53918  
53919  ;// ./node_modules/@wordpress/block-library/build-module/search/icons.js
53920  /**
53921   * WordPress dependencies
53922   */
53923  
53924  
53925  const buttonOnly = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
53926    xmlns: "http://www.w3.org/2000/svg",
53927    viewBox: "0 0 24 24",
53928    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53929      x: "7",
53930      y: "10",
53931      width: "10",
53932      height: "4",
53933      rx: "1",
53934      fill: "currentColor"
53935    })
53936  });
53937  const buttonOutside = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53938    xmlns: "http://www.w3.org/2000/svg",
53939    viewBox: "0 0 24 24",
53940    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53941      x: "4.75",
53942      y: "15.25",
53943      width: "6.5",
53944      height: "9.5",
53945      transform: "rotate(-90 4.75 15.25)",
53946      stroke: "currentColor",
53947      strokeWidth: "1.5",
53948      fill: "none"
53949    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53950      x: "16",
53951      y: "10",
53952      width: "4",
53953      height: "4",
53954      rx: "1",
53955      fill: "currentColor"
53956    })]
53957  });
53958  const buttonInside = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53959    xmlns: "http://www.w3.org/2000/svg",
53960    viewBox: "0 0 24 24",
53961    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53962      x: "4.75",
53963      y: "15.25",
53964      width: "6.5",
53965      height: "14.5",
53966      transform: "rotate(-90 4.75 15.25)",
53967      stroke: "currentColor",
53968      strokeWidth: "1.5",
53969      fill: "none"
53970    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53971      x: "14",
53972      y: "10",
53973      width: "4",
53974      height: "4",
53975      rx: "1",
53976      fill: "currentColor"
53977    })]
53978  });
53979  const noButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
53980    xmlns: "http://www.w3.org/2000/svg",
53981    viewBox: "0 0 24 24",
53982    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53983      x: "4.75",
53984      y: "15.25",
53985      width: "6.5",
53986      height: "14.5",
53987      transform: "rotate(-90 4.75 15.25)",
53988      stroke: "currentColor",
53989      fill: "none",
53990      strokeWidth: "1.5"
53991    })
53992  });
53993  const buttonWithIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
53994    xmlns: "http://www.w3.org/2000/svg",
53995    viewBox: "0 0 24 24",
53996    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
53997      x: "4.75",
53998      y: "7.75",
53999      width: "14.5",
54000      height: "8.5",
54001      rx: "1.25",
54002      stroke: "currentColor",
54003      fill: "none",
54004      strokeWidth: "1.5"
54005    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
54006      x: "8",
54007      y: "11",
54008      width: "8",
54009      height: "2",
54010      fill: "currentColor"
54011    })]
54012  });
54013  const toggleLabel = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
54014    xmlns: "http://www.w3.org/2000/svg",
54015    viewBox: "0 0 24 24",
54016    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
54017      x: "4.75",
54018      y: "17.25",
54019      width: "5.5",
54020      height: "14.5",
54021      transform: "rotate(-90 4.75 17.25)",
54022      stroke: "currentColor",
54023      fill: "none",
54024      strokeWidth: "1.5"
54025    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
54026      x: "4",
54027      y: "7",
54028      width: "10",
54029      height: "2",
54030      fill: "currentColor"
54031    })]
54032  });
54033  
54034  ;// ./node_modules/@wordpress/block-library/build-module/search/utils.js
54035  /**
54036   * Constants
54037   */
54038  const PC_WIDTH_DEFAULT = 50;
54039  const PX_WIDTH_DEFAULT = 350;
54040  const MIN_WIDTH = 220;
54041  
54042  /**
54043   * Returns a boolean whether passed unit is percentage
54044   *
54045   * @param {string} unit Block width unit.
54046   *
54047   * @return {boolean}     Whether unit is '%'.
54048   */
54049  function utils_isPercentageUnit(unit) {
54050    return unit === '%';
54051  }
54052  
54053  ;// ./node_modules/@wordpress/block-library/build-module/search/edit.js
54054  /**
54055   * External dependencies
54056   */
54057  
54058  
54059  /**
54060   * WordPress dependencies
54061   */
54062  
54063  
54064  
54065  
54066  
54067  
54068  
54069  
54070  
54071  /**
54072   * Internal dependencies
54073   */
54074  
54075  
54076  
54077  
54078  // Used to calculate border radius adjustment to avoid "fat" corners when
54079  // button is placed inside wrapper.
54080  
54081  const DEFAULT_INNER_PADDING = '4px';
54082  const PERCENTAGE_WIDTHS = [25, 50, 75, 100];
54083  function SearchEdit({
54084    className,
54085    attributes,
54086    setAttributes,
54087    toggleSelection,
54088    isSelected,
54089    clientId
54090  }) {
54091    const {
54092      label,
54093      showLabel,
54094      placeholder,
54095      width,
54096      widthUnit,
54097      align,
54098      buttonText,
54099      buttonPosition,
54100      buttonUseIcon,
54101      isSearchFieldHidden,
54102      style
54103    } = attributes;
54104    const wasJustInsertedIntoNavigationBlock = (0,external_wp_data_namespaceObject.useSelect)(select => {
54105      const {
54106        getBlockParentsByBlockName,
54107        wasBlockJustInserted
54108      } = select(external_wp_blockEditor_namespaceObject.store);
54109      return !!getBlockParentsByBlockName(clientId, 'core/navigation')?.length && wasBlockJustInserted(clientId);
54110    }, [clientId]);
54111    const {
54112      __unstableMarkNextChangeAsNotPersistent
54113    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
54114    (0,external_wp_element_namespaceObject.useEffect)(() => {
54115      if (wasJustInsertedIntoNavigationBlock) {
54116        // This side-effect should not create an undo level.
54117        __unstableMarkNextChangeAsNotPersistent();
54118        setAttributes({
54119          showLabel: false,
54120          buttonUseIcon: true,
54121          buttonPosition: 'button-inside'
54122        });
54123      }
54124    }, [__unstableMarkNextChangeAsNotPersistent, wasJustInsertedIntoNavigationBlock, setAttributes]);
54125    const borderRadius = style?.border?.radius;
54126    let borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
54127  
54128    // Check for old deprecated numerical border radius. Done as a separate
54129    // check so that a borderRadius style won't overwrite the longhand
54130    // per-corner styles.
54131    if (typeof borderRadius === 'number') {
54132      borderProps = {
54133        ...borderProps,
54134        style: {
54135          ...borderProps.style,
54136          borderRadius: `$borderRadius}px`
54137        }
54138      };
54139    }
54140    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
54141    const [fluidTypographySettings, layout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('typography.fluid', 'layout');
54142    const typographyProps = (0,external_wp_blockEditor_namespaceObject.getTypographyClassesAndStyles)(attributes, {
54143      typography: {
54144        fluid: fluidTypographySettings
54145      },
54146      layout: {
54147        wideSize: layout?.wideSize
54148      }
54149    });
54150    const unitControlInstanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl);
54151    const unitControlInputId = `wp-block-search__width-$unitControlInstanceId}`;
54152    const isButtonPositionInside = 'button-inside' === buttonPosition;
54153    const isButtonPositionOutside = 'button-outside' === buttonPosition;
54154    const hasNoButton = 'no-button' === buttonPosition;
54155    const hasOnlyButton = 'button-only' === buttonPosition;
54156    const searchFieldRef = (0,external_wp_element_namespaceObject.useRef)();
54157    const buttonRef = (0,external_wp_element_namespaceObject.useRef)();
54158    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
54159      availableUnits: ['%', 'px'],
54160      defaultValues: {
54161        '%': PC_WIDTH_DEFAULT,
54162        px: PX_WIDTH_DEFAULT
54163      }
54164    });
54165    (0,external_wp_element_namespaceObject.useEffect)(() => {
54166      if (hasOnlyButton && !isSelected) {
54167        setAttributes({
54168          isSearchFieldHidden: true
54169        });
54170      }
54171    }, [hasOnlyButton, isSelected, setAttributes]);
54172  
54173    // Show the search field when width changes.
54174    (0,external_wp_element_namespaceObject.useEffect)(() => {
54175      if (!hasOnlyButton || !isSelected) {
54176        return;
54177      }
54178      setAttributes({
54179        isSearchFieldHidden: false
54180      });
54181    }, [hasOnlyButton, isSelected, setAttributes, width]);
54182    const getBlockClassNames = () => {
54183      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);
54184    };
54185    const buttonPositionControls = [{
54186      role: 'menuitemradio',
54187      title: (0,external_wp_i18n_namespaceObject.__)('Button outside'),
54188      isActive: buttonPosition === 'button-outside',
54189      icon: buttonOutside,
54190      onClick: () => {
54191        setAttributes({
54192          buttonPosition: 'button-outside',
54193          isSearchFieldHidden: false
54194        });
54195      }
54196    }, {
54197      role: 'menuitemradio',
54198      title: (0,external_wp_i18n_namespaceObject.__)('Button inside'),
54199      isActive: buttonPosition === 'button-inside',
54200      icon: buttonInside,
54201      onClick: () => {
54202        setAttributes({
54203          buttonPosition: 'button-inside',
54204          isSearchFieldHidden: false
54205        });
54206      }
54207    }, {
54208      role: 'menuitemradio',
54209      title: (0,external_wp_i18n_namespaceObject.__)('No button'),
54210      isActive: buttonPosition === 'no-button',
54211      icon: noButton,
54212      onClick: () => {
54213        setAttributes({
54214          buttonPosition: 'no-button',
54215          isSearchFieldHidden: false
54216        });
54217      }
54218    }, {
54219      role: 'menuitemradio',
54220      title: (0,external_wp_i18n_namespaceObject.__)('Button only'),
54221      isActive: buttonPosition === 'button-only',
54222      icon: buttonOnly,
54223      onClick: () => {
54224        setAttributes({
54225          buttonPosition: 'button-only',
54226          isSearchFieldHidden: true
54227        });
54228      }
54229    }];
54230    const getButtonPositionIcon = () => {
54231      switch (buttonPosition) {
54232        case 'button-inside':
54233          return buttonInside;
54234        case 'button-outside':
54235          return buttonOutside;
54236        case 'no-button':
54237          return noButton;
54238        case 'button-only':
54239          return buttonOnly;
54240      }
54241    };
54242    const getResizableSides = () => {
54243      if (hasOnlyButton) {
54244        return {};
54245      }
54246      return {
54247        right: align !== 'right',
54248        left: align === 'right'
54249      };
54250    };
54251    const renderTextField = () => {
54252      // If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.
54253      const textFieldClasses = dist_clsx('wp-block-search__input', isButtonPositionInside ? undefined : borderProps.className, typographyProps.className);
54254      const textFieldStyles = {
54255        ...(isButtonPositionInside ? {
54256          borderRadius
54257        } : borderProps.style),
54258        ...typographyProps.style,
54259        textDecoration: undefined
54260      };
54261      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
54262        type: "search",
54263        className: textFieldClasses,
54264        style: textFieldStyles,
54265        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Optional placeholder text')
54266        // We hide the placeholder field's placeholder when there is a value. This
54267        // stops screen readers from reading the placeholder field's placeholder
54268        // which is confusing.
54269        ,
54270        placeholder: placeholder ? undefined : (0,external_wp_i18n_namespaceObject.__)('Optional placeholder…'),
54271        value: placeholder,
54272        onChange: event => setAttributes({
54273          placeholder: event.target.value
54274        }),
54275        ref: searchFieldRef
54276      });
54277    };
54278    const renderButton = () => {
54279      // If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.
54280      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'));
54281      const buttonStyles = {
54282        ...colorProps.style,
54283        ...typographyProps.style,
54284        ...(isButtonPositionInside ? {
54285          borderRadius
54286        } : borderProps.style)
54287      };
54288      const handleButtonClick = () => {
54289        if (hasOnlyButton) {
54290          setAttributes({
54291            isSearchFieldHidden: !isSearchFieldHidden
54292          });
54293        }
54294      };
54295      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54296        children: [buttonUseIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("button", {
54297          type: "button",
54298          className: buttonClasses,
54299          style: buttonStyles,
54300          "aria-label": buttonText ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(buttonText) : (0,external_wp_i18n_namespaceObject.__)('Search'),
54301          onClick: handleButtonClick,
54302          ref: buttonRef,
54303          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_icon, {
54304            icon: library_search
54305          })
54306        }), !buttonUseIcon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
54307          identifier: "buttonText",
54308          className: buttonClasses,
54309          style: buttonStyles,
54310          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Button text'),
54311          placeholder: (0,external_wp_i18n_namespaceObject.__)('Add button text…'),
54312          withoutInteractiveFormatting: true,
54313          value: buttonText,
54314          onChange: html => setAttributes({
54315            buttonText: html
54316          }),
54317          onClick: handleButtonClick
54318        })]
54319      });
54320    };
54321    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
54322    const controls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54323      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
54324        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ToolbarGroup, {
54325          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
54326            title: (0,external_wp_i18n_namespaceObject.__)('Show search label'),
54327            icon: toggleLabel,
54328            onClick: () => {
54329              setAttributes({
54330                showLabel: !showLabel
54331              });
54332            },
54333            className: showLabel ? 'is-pressed' : undefined
54334          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
54335            icon: getButtonPositionIcon(),
54336            label: (0,external_wp_i18n_namespaceObject.__)('Change button position'),
54337            controls: buttonPositionControls
54338          }), !hasNoButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
54339            title: (0,external_wp_i18n_namespaceObject.__)('Use button with icon'),
54340            icon: buttonWithIcon,
54341            onClick: () => {
54342              setAttributes({
54343                buttonUseIcon: !buttonUseIcon
54344              });
54345            },
54346            className: buttonUseIcon ? 'is-pressed' : undefined
54347          })]
54348        })
54349      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
54350        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
54351          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
54352          resetAll: () => {
54353            setAttributes({
54354              width: undefined,
54355              widthUnit: undefined
54356            });
54357          },
54358          dropdownMenuProps: dropdownMenuProps,
54359          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
54360            hasValue: () => !!width,
54361            label: (0,external_wp_i18n_namespaceObject.__)('Width'),
54362            onDeselect: () => {
54363              setAttributes({
54364                width: undefined,
54365                widthUnit: undefined
54366              });
54367            },
54368            isShownByDefault: true,
54369            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
54370              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
54371                __next40pxDefaultSize: true,
54372                label: (0,external_wp_i18n_namespaceObject.__)('Width'),
54373                id: unitControlInputId // Unused, kept for backwards compatibility
54374                ,
54375                min: utils_isPercentageUnit(widthUnit) ? 0 : MIN_WIDTH,
54376                max: utils_isPercentageUnit(widthUnit) ? 100 : undefined,
54377                step: 1,
54378                onChange: newWidth => {
54379                  const parsedNewWidth = newWidth === '' ? undefined : parseInt(newWidth, 10);
54380                  setAttributes({
54381                    width: parsedNewWidth
54382                  });
54383                },
54384                onUnitChange: newUnit => {
54385                  setAttributes({
54386                    width: '%' === newUnit ? PC_WIDTH_DEFAULT : PX_WIDTH_DEFAULT,
54387                    widthUnit: newUnit
54388                  });
54389                },
54390                __unstableInputWidth: "80px",
54391                value: `$width}$widthUnit}`,
54392                units: units
54393              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
54394                label: (0,external_wp_i18n_namespaceObject.__)('Percentage Width'),
54395                value: PERCENTAGE_WIDTHS.includes(width) && widthUnit === '%' ? width : undefined,
54396                hideLabelFromVision: true,
54397                onChange: newWidth => {
54398                  setAttributes({
54399                    width: newWidth,
54400                    widthUnit: '%'
54401                  });
54402                },
54403                isBlock: true,
54404                __next40pxDefaultSize: true,
54405                __nextHasNoMarginBottom: true,
54406                children: PERCENTAGE_WIDTHS.map(widthValue => {
54407                  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOption, {
54408                    value: widthValue,
54409                    label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: Percentage value. */
54410                    (0,external_wp_i18n_namespaceObject.__)('%d%%'), widthValue)
54411                  }, widthValue);
54412                })
54413              })]
54414            })
54415          })
54416        })
54417      })]
54418    });
54419    const padBorderRadius = radius => radius ? `calc($radius} + $DEFAULT_INNER_PADDING})` : undefined;
54420    const getWrapperStyles = () => {
54421      const styles = isButtonPositionInside ? borderProps.style : {
54422        borderRadius: borderProps.style?.borderRadius,
54423        borderTopLeftRadius: borderProps.style?.borderTopLeftRadius,
54424        borderTopRightRadius: borderProps.style?.borderTopRightRadius,
54425        borderBottomLeftRadius: borderProps.style?.borderBottomLeftRadius,
54426        borderBottomRightRadius: borderProps.style?.borderBottomRightRadius
54427      };
54428      const isNonZeroBorderRadius = borderRadius !== undefined && parseInt(borderRadius, 10) !== 0;
54429      if (isButtonPositionInside && isNonZeroBorderRadius) {
54430        // We have button inside wrapper and a border radius value to apply.
54431        // Add default padding so we don't get "fat" corners.
54432        //
54433        // CSS calc() is used here to support non-pixel units. The inline
54434        // style using calc() will only apply if both values have units.
54435  
54436        if (typeof borderRadius === 'object') {
54437          // Individual corner border radii present.
54438          const {
54439            topLeft,
54440            topRight,
54441            bottomLeft,
54442            bottomRight
54443          } = borderRadius;
54444          return {
54445            ...styles,
54446            borderTopLeftRadius: padBorderRadius(topLeft),
54447            borderTopRightRadius: padBorderRadius(topRight),
54448            borderBottomLeftRadius: padBorderRadius(bottomLeft),
54449            borderBottomRightRadius: padBorderRadius(bottomRight)
54450          };
54451        }
54452  
54453        // The inline style using calc() will only apply if both values
54454        // supplied to calc() have units. Deprecated block's may have
54455        // unitless integer.
54456        const radius = Number.isInteger(borderRadius) ? `$borderRadius}px` : borderRadius;
54457        styles.borderRadius = `calc($radius} + $DEFAULT_INNER_PADDING})`;
54458      }
54459      return styles;
54460    };
54461    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
54462      className: getBlockClassNames(),
54463      style: {
54464        ...typographyProps.style,
54465        // Input opts out of text decoration.
54466        textDecoration: undefined
54467      }
54468    });
54469    const labelClassnames = dist_clsx('wp-block-search__label', typographyProps.className);
54470    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
54471      ...blockProps,
54472      children: [controls, showLabel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
54473        identifier: "label",
54474        className: labelClassnames,
54475        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Label text'),
54476        placeholder: (0,external_wp_i18n_namespaceObject.__)('Add label…'),
54477        withoutInteractiveFormatting: true,
54478        value: label,
54479        onChange: html => setAttributes({
54480          label: html
54481        }),
54482        style: typographyProps.style
54483      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ResizableBox, {
54484        size: {
54485          width: width === undefined ? 'auto' : `$width}$widthUnit}`,
54486          height: 'auto'
54487        },
54488        className: dist_clsx('wp-block-search__inside-wrapper', isButtonPositionInside ? borderProps.className : undefined),
54489        style: getWrapperStyles(),
54490        minWidth: MIN_WIDTH,
54491        enable: getResizableSides(),
54492        onResizeStart: (event, direction, elt) => {
54493          setAttributes({
54494            width: parseInt(elt.offsetWidth, 10),
54495            widthUnit: 'px'
54496          });
54497          toggleSelection(false);
54498        },
54499        onResizeStop: (event, direction, elt, delta) => {
54500          setAttributes({
54501            width: parseInt(width + delta.width, 10)
54502          });
54503          toggleSelection(true);
54504        },
54505        showHandle: isSelected,
54506        children: [(isButtonPositionInside || isButtonPositionOutside || hasOnlyButton) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54507          children: [renderTextField(), renderButton()]
54508        }), hasNoButton && renderTextField()]
54509      })]
54510    });
54511  }
54512  
54513  ;// ./node_modules/@wordpress/block-library/build-module/search/variations.js
54514  /**
54515   * WordPress dependencies
54516   */
54517  
54518  const search_variations_variations = [{
54519    name: 'default',
54520    isDefault: true,
54521    attributes: {
54522      buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
54523      label: (0,external_wp_i18n_namespaceObject.__)('Search')
54524    }
54525  }];
54526  /* harmony default export */ const search_variations = (search_variations_variations);
54527  
54528  ;// ./node_modules/@wordpress/block-library/build-module/search/index.js
54529  /**
54530   * WordPress dependencies
54531   */
54532  
54533  
54534  
54535  /**
54536   * Internal dependencies
54537   */
54538  
54539  const search_metadata = {
54540    $schema: "https://schemas.wp.org/trunk/block.json",
54541    apiVersion: 3,
54542    name: "core/search",
54543    title: "Search",
54544    category: "widgets",
54545    description: "Help visitors find your content.",
54546    keywords: ["find"],
54547    textdomain: "default",
54548    attributes: {
54549      label: {
54550        type: "string",
54551        role: "content"
54552      },
54553      showLabel: {
54554        type: "boolean",
54555        "default": true
54556      },
54557      placeholder: {
54558        type: "string",
54559        "default": "",
54560        role: "content"
54561      },
54562      width: {
54563        type: "number"
54564      },
54565      widthUnit: {
54566        type: "string"
54567      },
54568      buttonText: {
54569        type: "string",
54570        role: "content"
54571      },
54572      buttonPosition: {
54573        type: "string",
54574        "default": "button-outside"
54575      },
54576      buttonUseIcon: {
54577        type: "boolean",
54578        "default": false
54579      },
54580      query: {
54581        type: "object",
54582        "default": {}
54583      },
54584      isSearchFieldHidden: {
54585        type: "boolean",
54586        "default": false
54587      }
54588    },
54589    supports: {
54590      align: ["left", "center", "right"],
54591      color: {
54592        gradients: true,
54593        __experimentalSkipSerialization: true,
54594        __experimentalDefaultControls: {
54595          background: true,
54596          text: true
54597        }
54598      },
54599      interactivity: true,
54600      typography: {
54601        __experimentalSkipSerialization: true,
54602        __experimentalSelector: ".wp-block-search__label, .wp-block-search__input, .wp-block-search__button",
54603        fontSize: true,
54604        lineHeight: true,
54605        __experimentalFontFamily: true,
54606        __experimentalFontWeight: true,
54607        __experimentalFontStyle: true,
54608        __experimentalTextTransform: true,
54609        __experimentalTextDecoration: true,
54610        __experimentalLetterSpacing: true,
54611        __experimentalDefaultControls: {
54612          fontSize: true
54613        }
54614      },
54615      __experimentalBorder: {
54616        color: true,
54617        radius: true,
54618        width: true,
54619        __experimentalSkipSerialization: true,
54620        __experimentalDefaultControls: {
54621          color: true,
54622          radius: true,
54623          width: true
54624        }
54625      },
54626      spacing: {
54627        margin: true
54628      },
54629      html: false
54630    },
54631    editorStyle: "wp-block-search-editor",
54632    style: "wp-block-search"
54633  };
54634  
54635  
54636  const {
54637    name: search_name
54638  } = search_metadata;
54639  
54640  const search_settings = {
54641    icon: library_search,
54642    example: {
54643      attributes: {
54644        buttonText: (0,external_wp_i18n_namespaceObject.__)('Search'),
54645        label: (0,external_wp_i18n_namespaceObject.__)('Search')
54646      },
54647      viewportWidth: 400
54648    },
54649    variations: search_variations,
54650    edit: SearchEdit
54651  };
54652  const search_init = () => initBlock({
54653    name: search_name,
54654    metadata: search_metadata,
54655    settings: search_settings
54656  });
54657  
54658  ;// ./node_modules/@wordpress/icons/build-module/library/separator.js
54659  /**
54660   * WordPress dependencies
54661   */
54662  
54663  
54664  const separator = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
54665    viewBox: "0 0 24 24",
54666    xmlns: "http://www.w3.org/2000/svg",
54667    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
54668      d: "M4.5 12.5v4H3V7h1.5v3.987h15V7H21v9.5h-1.5v-4h-15Z"
54669    })
54670  });
54671  /* harmony default export */ const library_separator = (separator);
54672  
54673  ;// ./node_modules/@wordpress/block-library/build-module/separator/use-deprecated-opacity.js
54674  /**
54675   * WordPress dependencies
54676   */
54677  
54678  
54679  function useDeprecatedOpacity(opacity, currentColor, setAttributes) {
54680    const [deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor] = (0,external_wp_element_namespaceObject.useState)(false);
54681    const previousColor = (0,external_wp_compose_namespaceObject.usePrevious)(currentColor);
54682  
54683    // A separator with no color set will always have previousColor set to undefined,
54684    // and we need to differentiate these from those with color set that will return
54685    // previousColor as undefined on the first render.
54686    (0,external_wp_element_namespaceObject.useEffect)(() => {
54687      if (opacity === 'css' && !currentColor && !previousColor) {
54688        setDeprecatedOpacityWithNoColor(true);
54689      }
54690    }, [currentColor, previousColor, opacity]);
54691  
54692    // For deprecated blocks, that have a default 0.4 css opacity set, we
54693    // need to remove this if the current color is changed, or a color is added.
54694    // In these instances the opacity attribute is set back to the default of
54695    // alpha-channel which allows a new custom opacity to be set via the color picker.
54696    (0,external_wp_element_namespaceObject.useEffect)(() => {
54697      if (opacity === 'css' && (deprecatedOpacityWithNoColor && currentColor || previousColor && currentColor !== previousColor)) {
54698        setAttributes({
54699          opacity: 'alpha-channel'
54700        });
54701        setDeprecatedOpacityWithNoColor(false);
54702      }
54703    }, [deprecatedOpacityWithNoColor, currentColor, previousColor]);
54704  }
54705  
54706  ;// ./node_modules/@wordpress/block-library/build-module/separator/edit.js
54707  /**
54708   * External dependencies
54709   */
54710  
54711  
54712  /**
54713   * WordPress dependencies
54714   */
54715  
54716  
54717  
54718  
54719  /**
54720   * Internal dependencies
54721   */
54722  
54723  
54724  
54725  function SeparatorEdit({
54726    attributes,
54727    setAttributes
54728  }) {
54729    const {
54730      backgroundColor,
54731      opacity,
54732      style,
54733      tagName
54734    } = attributes;
54735    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
54736    const currentColor = colorProps?.style?.backgroundColor;
54737    const hasCustomColor = !!style?.color?.background;
54738    useDeprecatedOpacity(opacity, currentColor, setAttributes);
54739  
54740    // The dots styles uses text for the dots, to change those dots color is
54741    // using color, not backgroundColor.
54742    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
54743    const className = dist_clsx({
54744      'has-text-color': backgroundColor || currentColor,
54745      [colorClass]: colorClass,
54746      'has-css-opacity': opacity === 'css',
54747      'has-alpha-channel-opacity': opacity === 'alpha-channel'
54748    }, colorProps.className);
54749    const styles = {
54750      color: currentColor,
54751      backgroundColor: currentColor
54752    };
54753    const Wrapper = tagName === 'hr' ? external_wp_components_namespaceObject.HorizontalRule : tagName;
54754    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
54755      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
54756        group: "advanced",
54757        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
54758          __nextHasNoMarginBottom: true,
54759          __next40pxDefaultSize: true,
54760          label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
54761          options: [{
54762            label: (0,external_wp_i18n_namespaceObject.__)('Default (<hr>)'),
54763            value: 'hr'
54764          }, {
54765            label: '<div>',
54766            value: 'div'
54767          }],
54768          value: tagName,
54769          onChange: value => setAttributes({
54770            tagName: value
54771          }),
54772          help: htmlElementMessages[tagName]
54773        })
54774      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wrapper, {
54775        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
54776          className,
54777          style: hasCustomColor ? styles : undefined
54778        })
54779      })]
54780    });
54781  }
54782  
54783  ;// ./node_modules/@wordpress/block-library/build-module/separator/save.js
54784  /**
54785   * External dependencies
54786   */
54787  
54788  
54789  /**
54790   * WordPress dependencies
54791   */
54792  
54793  
54794  function separatorSave({
54795    attributes
54796  }) {
54797    const {
54798      backgroundColor,
54799      style,
54800      opacity,
54801      tagName: Tag
54802    } = attributes;
54803    const customColor = style?.color?.background;
54804    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
54805    // The hr support changing color using border-color, since border-color
54806    // is not yet supported in the color palette, we use background-color.
54807  
54808    // The dots styles uses text for the dots, to change those dots color is
54809    // using color, not backgroundColor.
54810    const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', backgroundColor);
54811    const className = dist_clsx({
54812      'has-text-color': backgroundColor || customColor,
54813      [colorClass]: colorClass,
54814      'has-css-opacity': opacity === 'css',
54815      'has-alpha-channel-opacity': opacity === 'alpha-channel'
54816    }, colorProps.className);
54817    const styles = {
54818      backgroundColor: colorProps?.style?.backgroundColor,
54819      color: colorClass ? undefined : customColor
54820    };
54821    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
54822      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
54823        className,
54824        style: styles
54825      })
54826    });
54827  }
54828  
54829  ;// ./node_modules/@wordpress/block-library/build-module/separator/transforms.js
54830  /**
54831   * WordPress dependencies
54832   */
54833  
54834  const separator_transforms_transforms = {
54835    from: [{
54836      type: 'enter',
54837      regExp: /^-{3,}$/,
54838      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/separator')
54839    }, {
54840      type: 'raw',
54841      selector: 'hr',
54842      schema: {
54843        hr: {}
54844      }
54845    }],
54846    to: [{
54847      type: 'block',
54848      blocks: ['core/spacer'],
54849      // Transform to Spacer.
54850      transform: ({
54851        anchor
54852      }) => {
54853        return (0,external_wp_blocks_namespaceObject.createBlock)('core/spacer', {
54854          anchor: anchor || ''
54855        });
54856      }
54857    }]
54858  };
54859  /* harmony default export */ const separator_transforms = (separator_transforms_transforms);
54860  
54861  ;// ./node_modules/@wordpress/block-library/build-module/separator/deprecated.js
54862  /**
54863   * External dependencies
54864   */
54865  
54866  
54867  /**
54868   * WordPress dependencies
54869   */
54870  
54871  
54872  const separator_deprecated_v1 = {
54873    attributes: {
54874      color: {
54875        type: 'string'
54876      },
54877      customColor: {
54878        type: 'string'
54879      }
54880    },
54881    save({
54882      attributes
54883    }) {
54884      const {
54885        color,
54886        customColor
54887      } = attributes;
54888  
54889      // the hr support changing color using border-color, since border-color
54890      // is not yet supported in the color palette, we use background-color
54891      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', color);
54892      // the dots styles uses text for the dots, to change those dots color is
54893      // using color, not backgroundColor
54894      const colorClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', color);
54895      const className = dist_clsx({
54896        'has-text-color has-background': color || customColor,
54897        [backgroundClass]: backgroundClass,
54898        [colorClass]: colorClass
54899      });
54900      const style = {
54901        backgroundColor: backgroundClass ? undefined : customColor,
54902        color: colorClass ? undefined : customColor
54903      };
54904      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {
54905        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
54906          className,
54907          style
54908        })
54909      });
54910    },
54911    migrate(attributes) {
54912      const {
54913        color,
54914        customColor,
54915        ...restAttributes
54916      } = attributes;
54917      return {
54918        ...restAttributes,
54919        backgroundColor: color ? color : undefined,
54920        opacity: 'css',
54921        style: customColor ? {
54922          color: {
54923            background: customColor
54924          }
54925        } : undefined,
54926        tagName: 'hr'
54927      };
54928    }
54929  };
54930  /* harmony default export */ const separator_deprecated = ([separator_deprecated_v1]);
54931  
54932  ;// ./node_modules/@wordpress/block-library/build-module/separator/index.js
54933  /**
54934   * WordPress dependencies
54935   */
54936  
54937  
54938  /**
54939   * Internal dependencies
54940   */
54941  
54942  
54943  const separator_metadata = {
54944    $schema: "https://schemas.wp.org/trunk/block.json",
54945    apiVersion: 3,
54946    name: "core/separator",
54947    title: "Separator",
54948    category: "design",
54949    description: "Create a break between ideas or sections with a horizontal separator.",
54950    keywords: ["horizontal-line", "hr", "divider"],
54951    textdomain: "default",
54952    attributes: {
54953      opacity: {
54954        type: "string",
54955        "default": "alpha-channel"
54956      },
54957      tagName: {
54958        type: "string",
54959        "enum": ["hr", "div"],
54960        "default": "hr"
54961      }
54962    },
54963    supports: {
54964      anchor: true,
54965      align: ["center", "wide", "full"],
54966      color: {
54967        enableContrastChecker: false,
54968        __experimentalSkipSerialization: true,
54969        gradients: true,
54970        background: true,
54971        text: false,
54972        __experimentalDefaultControls: {
54973          background: true
54974        }
54975      },
54976      spacing: {
54977        margin: ["top", "bottom"]
54978      },
54979      interactivity: {
54980        clientNavigation: true
54981      }
54982    },
54983    styles: [{
54984      name: "default",
54985      label: "Default",
54986      isDefault: true
54987    }, {
54988      name: "wide",
54989      label: "Wide Line"
54990    }, {
54991      name: "dots",
54992      label: "Dots"
54993    }],
54994    editorStyle: "wp-block-separator-editor",
54995    style: "wp-block-separator"
54996  };
54997  
54998  
54999  
55000  const {
55001    name: separator_name
55002  } = separator_metadata;
55003  
55004  const separator_settings = {
55005    icon: library_separator,
55006    example: {
55007      attributes: {
55008        customColor: '#065174',
55009        className: 'is-style-wide'
55010      }
55011    },
55012    transforms: separator_transforms,
55013    edit: SeparatorEdit,
55014    save: separatorSave,
55015    deprecated: separator_deprecated
55016  };
55017  const separator_init = () => initBlock({
55018    name: separator_name,
55019    metadata: separator_metadata,
55020    settings: separator_settings
55021  });
55022  
55023  ;// ./node_modules/@wordpress/icons/build-module/library/shortcode.js
55024  /**
55025   * WordPress dependencies
55026   */
55027  
55028  
55029  const shortcode = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55030    viewBox: "0 0 24 24",
55031    xmlns: "http://www.w3.org/2000/svg",
55032    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55033      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"
55034    })
55035  });
55036  /* harmony default export */ const library_shortcode = (shortcode);
55037  
55038  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js
55039  /**
55040   * WordPress dependencies
55041   */
55042  
55043  
55044  
55045  
55046  
55047  
55048  function ShortcodeEdit({
55049    attributes,
55050    setAttributes
55051  }) {
55052    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(ShortcodeEdit);
55053    const inputId = `blocks-shortcode-input-$instanceId}`;
55054    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55055      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
55056      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
55057        icon: library_shortcode,
55058        label: (0,external_wp_i18n_namespaceObject.__)('Shortcode'),
55059        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.PlainText, {
55060          className: "blocks-shortcode__textarea",
55061          id: inputId,
55062          value: attributes.text,
55063          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Shortcode text'),
55064          placeholder: (0,external_wp_i18n_namespaceObject.__)('Write shortcode here…'),
55065          onChange: text => setAttributes({
55066            text
55067          })
55068        })
55069      })
55070    });
55071  }
55072  
55073  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/save.js
55074  /**
55075   * WordPress dependencies
55076   */
55077  
55078  
55079  function shortcode_save_save({
55080    attributes
55081  }) {
55082    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
55083      children: attributes.text
55084    });
55085  }
55086  
55087  ;// external ["wp","autop"]
55088  const external_wp_autop_namespaceObject = window["wp"]["autop"];
55089  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js
55090  /**
55091   * WordPress dependencies
55092   */
55093  
55094  const shortcode_transforms_transforms = {
55095    from: [{
55096      type: 'shortcode',
55097      // Per "Shortcode names should be all lowercase and use all
55098      // letters, but numbers and underscores should work fine too.
55099      // Be wary of using hyphens (dashes), you'll be better off not
55100      // using them." in https://codex.wordpress.org/Shortcode_API
55101      // Require that the first character be a letter. This notably
55102      // prevents footnote markings ([1]) from being caught as
55103      // shortcodes.
55104      tag: '[a-z][a-z0-9_-]*',
55105      attributes: {
55106        text: {
55107          type: 'string',
55108          shortcode: (attrs, {
55109            content
55110          }) => {
55111            return (0,external_wp_autop_namespaceObject.removep)((0,external_wp_autop_namespaceObject.autop)(content));
55112          }
55113        }
55114      },
55115      priority: 20
55116    }]
55117  };
55118  /* harmony default export */ const shortcode_transforms = (shortcode_transforms_transforms);
55119  
55120  ;// ./node_modules/@wordpress/block-library/build-module/shortcode/index.js
55121  /**
55122   * WordPress dependencies
55123   */
55124  
55125  
55126  /**
55127   * Internal dependencies
55128   */
55129  
55130  
55131  
55132  
55133  const shortcode_metadata = {
55134    $schema: "https://schemas.wp.org/trunk/block.json",
55135    apiVersion: 3,
55136    name: "core/shortcode",
55137    title: "Shortcode",
55138    category: "widgets",
55139    description: "Insert additional custom elements with a WordPress shortcode.",
55140    textdomain: "default",
55141    attributes: {
55142      text: {
55143        type: "string",
55144        source: "raw"
55145      }
55146    },
55147    supports: {
55148      className: false,
55149      customClassName: false,
55150      html: false
55151    },
55152    editorStyle: "wp-block-shortcode-editor"
55153  };
55154  const {
55155    name: shortcode_name
55156  } = shortcode_metadata;
55157  
55158  const shortcode_settings = {
55159    icon: library_shortcode,
55160    transforms: shortcode_transforms,
55161    edit: ShortcodeEdit,
55162    save: shortcode_save_save
55163  };
55164  const shortcode_init = () => initBlock({
55165    name: shortcode_name,
55166    metadata: shortcode_metadata,
55167    settings: shortcode_settings
55168  });
55169  
55170  ;// ./node_modules/@wordpress/icons/build-module/library/site-logo.js
55171  /**
55172   * WordPress dependencies
55173   */
55174  
55175  
55176  const siteLogo = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
55177    xmlns: "http://www.w3.org/2000/svg",
55178    viewBox: "0 0 24 24",
55179    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
55180      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"
55181    })
55182  });
55183  /* harmony default export */ const site_logo = (siteLogo);
55184  
55185  ;// ./node_modules/@wordpress/block-library/build-module/site-logo/edit.js
55186  /**
55187   * External dependencies
55188   */
55189  
55190  
55191  /**
55192   * WordPress dependencies
55193   */
55194  
55195  
55196  
55197  
55198  
55199  
55200  
55201  
55202  
55203  
55204  
55205  /**
55206   * Internal dependencies
55207   */
55208  
55209  
55210  const site_logo_edit_ALLOWED_MEDIA_TYPES = ['image'];
55211  const ACCEPT_MEDIA_STRING = 'image/*';
55212  const SiteLogo = ({
55213    alt,
55214    attributes: {
55215      align,
55216      width,
55217      height,
55218      isLink,
55219      linkTarget,
55220      shouldSyncIcon
55221    },
55222    isSelected,
55223    setAttributes,
55224    setLogo,
55225    logoUrl,
55226    siteUrl,
55227    logoId,
55228    iconId,
55229    setIcon,
55230    canUserEdit
55231  }) => {
55232    const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
55233    const isWideAligned = ['wide', 'full'].includes(align);
55234    const isResizable = !isWideAligned && isLargeViewport;
55235    const [{
55236      naturalWidth,
55237      naturalHeight
55238    }, setNaturalSize] = (0,external_wp_element_namespaceObject.useState)({});
55239    const [isEditingImage, setIsEditingImage] = (0,external_wp_element_namespaceObject.useState)(false);
55240    const {
55241      toggleSelection
55242    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
55243    const {
55244      imageEditing,
55245      maxWidth,
55246      title
55247    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
55248      const settings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
55249      const siteEntities = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase');
55250      return {
55251        title: siteEntities?.name,
55252        imageEditing: settings.imageEditing,
55253        maxWidth: settings.maxWidth
55254      };
55255    }, []);
55256    (0,external_wp_element_namespaceObject.useEffect)(() => {
55257      // Turn the `Use as site icon` toggle off if it is on but the logo and icon have
55258      // fallen out of sync. This can happen if the toggle is saved in the `on` position,
55259      // but changes are later made to the site icon in the Customizer.
55260      if (shouldSyncIcon && logoId !== iconId) {
55261        setAttributes({
55262          shouldSyncIcon: false
55263        });
55264      }
55265    }, []);
55266    (0,external_wp_element_namespaceObject.useEffect)(() => {
55267      if (!isSelected) {
55268        setIsEditingImage(false);
55269      }
55270    }, [isSelected]);
55271    function onResizeStart() {
55272      toggleSelection(false);
55273    }
55274    function onResizeStop() {
55275      toggleSelection(true);
55276    }
55277    const img = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55278      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
55279        className: "custom-logo",
55280        src: logoUrl,
55281        alt: alt,
55282        onLoad: event => {
55283          setNaturalSize({
55284            naturalWidth: event.target.naturalWidth,
55285            naturalHeight: event.target.naturalHeight
55286          });
55287        }
55288      }), (0,external_wp_blob_namespaceObject.isBlobURL)(logoUrl) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
55289    });
55290    let imgWrapper = img;
55291  
55292    // Disable reason: Image itself is not meant to be interactive, but
55293    // should direct focus to block.
55294    if (isLink) {
55295      imgWrapper =
55296      /*#__PURE__*/
55297      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
55298      (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
55299        href: siteUrl,
55300        className: "custom-logo-link",
55301        rel: "home",
55302        title: title,
55303        onClick: event => event.preventDefault(),
55304        children: img
55305      })
55306      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */;
55307    }
55308    if (!isResizable || !naturalWidth || !naturalHeight) {
55309      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55310        style: {
55311          width,
55312          height
55313        },
55314        children: imgWrapper
55315      });
55316    }
55317  
55318    // Set the default width to a responsible size.
55319    // Note that this width is also set in the attached frontend CSS file.
55320    const defaultWidth = 120;
55321    const currentWidth = width || defaultWidth;
55322    const ratio = naturalWidth / naturalHeight;
55323    const currentHeight = currentWidth / ratio;
55324    const minWidth = naturalWidth < naturalHeight ? constants_MIN_SIZE : Math.ceil(constants_MIN_SIZE * ratio);
55325    const minHeight = naturalHeight < naturalWidth ? constants_MIN_SIZE : Math.ceil(constants_MIN_SIZE / ratio);
55326  
55327    // With the current implementation of ResizableBox, an image needs an
55328    // explicit pixel value for the max-width. In absence of being able to
55329    // set the content-width, this max-width is currently dictated by the
55330    // vanilla editor style. The following variable adds a buffer to this
55331    // vanilla style, so 3rd party themes have some wiggleroom. This does,
55332    // in most cases, allow you to scale the image beyond the width of the
55333    // main column, though not infinitely.
55334    // @todo It would be good to revisit this once a content-width variable
55335    // becomes available.
55336    const maxWidthBuffer = maxWidth * 2.5;
55337    let showRightHandle = false;
55338    let showLeftHandle = false;
55339  
55340    /* eslint-disable no-lonely-if */
55341    // See https://github.com/WordPress/gutenberg/issues/7584.
55342    if (align === 'center') {
55343      // When the image is centered, show both handles.
55344      showRightHandle = true;
55345      showLeftHandle = true;
55346    } else if ((0,external_wp_i18n_namespaceObject.isRTL)()) {
55347      // In RTL mode the image is on the right by default.
55348      // Show the right handle and hide the left handle only when it is
55349      // aligned left. Otherwise always show the left handle.
55350      if (align === 'left') {
55351        showRightHandle = true;
55352      } else {
55353        showLeftHandle = true;
55354      }
55355    } else {
55356      // Show the left handle and hide the right handle only when the
55357      // image is aligned right. Otherwise always show the right handle.
55358      if (align === 'right') {
55359        showLeftHandle = true;
55360      } else {
55361        showRightHandle = true;
55362      }
55363    }
55364    /* eslint-enable no-lonely-if */
55365  
55366    const canEditImage = logoId && naturalWidth && naturalHeight && imageEditing;
55367    const imgEdit = canEditImage && isEditingImage ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalImageEditor, {
55368      id: logoId,
55369      url: logoUrl,
55370      width: currentWidth,
55371      height: currentHeight,
55372      naturalHeight: naturalHeight,
55373      naturalWidth: naturalWidth,
55374      onSaveImage: imageAttributes => {
55375        setLogo(imageAttributes.id);
55376      },
55377      onFinishEditing: () => {
55378        setIsEditingImage(false);
55379      }
55380    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
55381      size: {
55382        width: currentWidth,
55383        height: currentHeight
55384      },
55385      showHandle: isSelected,
55386      minWidth: minWidth,
55387      maxWidth: maxWidthBuffer,
55388      minHeight: minHeight,
55389      maxHeight: maxWidthBuffer / ratio,
55390      lockAspectRatio: true,
55391      enable: {
55392        top: false,
55393        right: showRightHandle,
55394        bottom: true,
55395        left: showLeftHandle
55396      },
55397      onResizeStart: onResizeStart,
55398      onResizeStop: (event, direction, elt, delta) => {
55399        onResizeStop();
55400        setAttributes({
55401          width: parseInt(currentWidth + delta.width, 10),
55402          height: parseInt(currentHeight + delta.height, 10)
55403        });
55404      },
55405      children: imgWrapper
55406    });
55407  
55408    // Support the previous location for the Site Icon settings. To be removed
55409    // when the required WP core version for Gutenberg is >= 6.5.0.
55410    const shouldUseNewUrl = !window?.__experimentalUseCustomizerSiteLogoUrl;
55411    const siteIconSettingsUrl = shouldUseNewUrl ? siteUrl + '/wp-admin/options-general.php' : siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';
55412    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>.'), {
55413      a:
55414      /*#__PURE__*/
55415      // eslint-disable-next-line jsx-a11y/anchor-has-content
55416      (0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
55417        href: siteIconSettingsUrl,
55418        target: "_blank",
55419        rel: "noopener noreferrer"
55420      })
55421    });
55422    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55423      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
55424        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
55425          title: (0,external_wp_i18n_namespaceObject.__)('Settings'),
55426          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
55427            __nextHasNoMarginBottom: true,
55428            __next40pxDefaultSize: true,
55429            label: (0,external_wp_i18n_namespaceObject.__)('Image width'),
55430            onChange: newWidth => setAttributes({
55431              width: newWidth
55432            }),
55433            min: minWidth,
55434            max: maxWidthBuffer,
55435            initialPosition: Math.min(defaultWidth, maxWidthBuffer),
55436            value: width || '',
55437            disabled: !isResizable
55438          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
55439            __nextHasNoMarginBottom: true,
55440            label: (0,external_wp_i18n_namespaceObject.__)('Link image to home'),
55441            onChange: () => setAttributes({
55442              isLink: !isLink
55443            }),
55444            checked: isLink
55445          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55446            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
55447              __nextHasNoMarginBottom: true,
55448              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
55449              onChange: value => setAttributes({
55450                linkTarget: value ? '_blank' : '_self'
55451              }),
55452              checked: linkTarget === '_blank'
55453            })
55454          }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55455            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
55456              __nextHasNoMarginBottom: true,
55457              label: (0,external_wp_i18n_namespaceObject.__)('Use as Site Icon'),
55458              onChange: value => {
55459                setAttributes({
55460                  shouldSyncIcon: value
55461                });
55462                setIcon(value ? logoId : undefined);
55463              },
55464              checked: !!shouldSyncIcon,
55465              help: syncSiteIconHelpText
55466            })
55467          })]
55468        })
55469      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
55470        group: "block",
55471        children: canEditImage && !isEditingImage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
55472          onClick: () => setIsEditingImage(true),
55473          icon: library_crop,
55474          label: (0,external_wp_i18n_namespaceObject.__)('Crop')
55475        })
55476      }), imgEdit]
55477    });
55478  };
55479  
55480  // This is a light wrapper around MediaReplaceFlow because the block has two
55481  // different MediaReplaceFlows, one for the inspector and one for the toolbar.
55482  function SiteLogoReplaceFlow({
55483    mediaURL,
55484    ...mediaReplaceProps
55485  }) {
55486    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
55487      ...mediaReplaceProps,
55488      mediaURL: mediaURL,
55489      allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
55490      accept: ACCEPT_MEDIA_STRING
55491    });
55492  }
55493  const InspectorLogoPreview = ({
55494    media,
55495    itemGroupProps
55496  }) => {
55497    const {
55498      alt_text: alt,
55499      source_url: logoUrl,
55500      slug: logoSlug,
55501      media_details: logoMediaDetails
55502    } = media !== null && media !== void 0 ? media : {};
55503    const logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;
55504    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalItemGroup, {
55505      ...itemGroupProps,
55506      as: "span",
55507      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
55508        justify: "flex-start",
55509        as: "span",
55510        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
55511          src: logoUrl,
55512          alt: alt
55513        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
55514          as: "span",
55515          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalTruncate, {
55516            numberOfLines: 1,
55517            className: "block-library-site-logo__inspector-media-replace-title",
55518            children: logoLabel
55519          })
55520        })]
55521      })
55522    });
55523  };
55524  function LogoEdit({
55525    attributes,
55526    className,
55527    setAttributes,
55528    isSelected
55529  }) {
55530    const {
55531      width,
55532      shouldSyncIcon
55533    } = attributes;
55534    const {
55535      siteLogoId,
55536      canUserEdit,
55537      url,
55538      siteIconId,
55539      mediaItemData,
55540      isRequestingMediaItem
55541    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
55542      const {
55543        canUser,
55544        getEntityRecord,
55545        getEditedEntityRecord
55546      } = select(external_wp_coreData_namespaceObject.store);
55547      const _canUserEdit = canUser('update', {
55548        kind: 'root',
55549        name: 'site'
55550      });
55551      const siteSettings = _canUserEdit ? getEditedEntityRecord('root', 'site') : undefined;
55552      const siteData = getEntityRecord('root', '__unstableBase');
55553      const _siteLogoId = _canUserEdit ? siteSettings?.site_logo : siteData?.site_logo;
55554      const _siteIconId = siteSettings?.site_icon;
55555      const mediaItem = _siteLogoId && select(external_wp_coreData_namespaceObject.store).getMedia(_siteLogoId, {
55556        context: 'view'
55557      });
55558      const _isRequestingMediaItem = !!_siteLogoId && !select(external_wp_coreData_namespaceObject.store).hasFinishedResolution('getMedia', [_siteLogoId, {
55559        context: 'view'
55560      }]);
55561      return {
55562        siteLogoId: _siteLogoId,
55563        canUserEdit: _canUserEdit,
55564        url: siteData?.home,
55565        mediaItemData: mediaItem,
55566        isRequestingMediaItem: _isRequestingMediaItem,
55567        siteIconId: _siteIconId
55568      };
55569    }, []);
55570    const {
55571      getSettings
55572    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
55573    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)();
55574    const {
55575      editEntityRecord
55576    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
55577    const setLogo = (newValue, shouldForceSync = false) => {
55578      // `shouldForceSync` is used to force syncing when the attribute
55579      // may not have updated yet.
55580      if (shouldSyncIcon || shouldForceSync) {
55581        setIcon(newValue);
55582      }
55583      editEntityRecord('root', 'site', undefined, {
55584        site_logo: newValue
55585      });
55586    };
55587    const setIcon = newValue =>
55588    // The new value needs to be `null` to reset the Site Icon.
55589    editEntityRecord('root', 'site', undefined, {
55590      site_icon: newValue !== null && newValue !== void 0 ? newValue : null
55591    });
55592    const {
55593      alt_text: alt,
55594      source_url: logoUrl
55595    } = mediaItemData !== null && mediaItemData !== void 0 ? mediaItemData : {};
55596    const onInitialSelectLogo = media => {
55597      // Initialize the syncSiteIcon toggle. If we currently have no Site logo and no
55598      // site icon, automatically sync the logo to the icon.
55599      if (shouldSyncIcon === undefined) {
55600        const shouldForceSync = !siteIconId;
55601        setAttributes({
55602          shouldSyncIcon: shouldForceSync
55603        });
55604  
55605        // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by
55606        // the time `setLogo` is called, pass an argument to force the syncing.
55607        onSelectLogo(media, shouldForceSync);
55608        return;
55609      }
55610      onSelectLogo(media);
55611    };
55612    const onSelectLogo = (media, shouldForceSync = false) => {
55613      if (!media) {
55614        return;
55615      }
55616      if (!media.id && media.url) {
55617        // This is a temporary blob image.
55618        setTemporaryURL(media.url);
55619        setLogo(undefined);
55620        return;
55621      }
55622      setLogo(media.id, shouldForceSync);
55623    };
55624    const onRemoveLogo = () => {
55625      setLogo(null);
55626      setAttributes({
55627        width: undefined
55628      });
55629    };
55630    const {
55631      createErrorNotice
55632    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
55633    const onUploadError = message => {
55634      createErrorNotice(message, {
55635        type: 'snackbar'
55636      });
55637      setTemporaryURL();
55638    };
55639    const onFilesDrop = filesList => {
55640      getSettings().mediaUpload({
55641        allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
55642        filesList,
55643        onFileChange([image]) {
55644          if ((0,external_wp_blob_namespaceObject.isBlobURL)(image?.url)) {
55645            setTemporaryURL(image.url);
55646            return;
55647          }
55648          onInitialSelectLogo(image);
55649        },
55650        onError: onUploadError,
55651        multiple: false
55652      });
55653    };
55654    const mediaReplaceFlowProps = {
55655      mediaURL: logoUrl,
55656      name: !logoUrl ? (0,external_wp_i18n_namespaceObject.__)('Choose logo') : (0,external_wp_i18n_namespaceObject.__)('Replace'),
55657      onSelect: onSelectLogo,
55658      onError: onUploadError,
55659      onReset: onRemoveLogo
55660    };
55661    const controls = canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
55662      group: "other",
55663      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogoReplaceFlow, {
55664        ...mediaReplaceFlowProps
55665      })
55666    });
55667    let logoImage;
55668    const isLoading = siteLogoId === undefined || isRequestingMediaItem;
55669    if (isLoading) {
55670      logoImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {});
55671    }
55672  
55673    // Reset temporary url when logoUrl is available.
55674    (0,external_wp_element_namespaceObject.useEffect)(() => {
55675      if (logoUrl && temporaryURL) {
55676        setTemporaryURL();
55677      }
55678    }, [logoUrl, temporaryURL]);
55679    if (!!logoUrl || !!temporaryURL) {
55680      logoImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55681        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogo, {
55682          alt: alt,
55683          attributes: attributes,
55684          className: className,
55685          isSelected: isSelected,
55686          setAttributes: setAttributes,
55687          logoUrl: temporaryURL || logoUrl,
55688          setLogo: setLogo,
55689          logoId: mediaItemData?.id || siteLogoId,
55690          siteUrl: url,
55691          setIcon: setIcon,
55692          iconId: siteIconId,
55693          canUserEdit: canUserEdit
55694        }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropZone, {
55695          onFilesDrop: onFilesDrop
55696        })]
55697      });
55698    }
55699    const placeholder = content => {
55700      const placeholderClassName = dist_clsx('block-editor-media-placeholder', className);
55701      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
55702        className: placeholderClassName,
55703        preview: logoImage,
55704        withIllustration: true,
55705        style: {
55706          width
55707        },
55708        children: content
55709      });
55710    };
55711    const classes = dist_clsx(className, {
55712      'is-default-size': !width,
55713      'is-transient': temporaryURL
55714    });
55715    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
55716      className: classes
55717    });
55718    const mediaInspectorPanel = (canUserEdit || logoUrl) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
55719      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
55720        title: (0,external_wp_i18n_namespaceObject.__)('Media'),
55721        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
55722          className: "block-library-site-logo__inspector-media-replace-container",
55723          children: !canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorLogoPreview, {
55724            media: mediaItemData,
55725            itemGroupProps: {
55726              isBordered: true,
55727              className: 'block-library-site-logo__inspector-readonly-logo-preview'
55728            }
55729          }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55730            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteLogoReplaceFlow, {
55731              ...mediaReplaceFlowProps,
55732              name: !!logoUrl ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorLogoPreview, {
55733                media: mediaItemData
55734              }) : (0,external_wp_i18n_namespaceObject.__)('Choose logo'),
55735              renderToggle: props => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
55736                ...props,
55737                __next40pxDefaultSize: true,
55738                children: temporaryURL ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : props.children
55739              })
55740            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropZone, {
55741              onFilesDrop: onFilesDrop
55742            })]
55743          })
55744        })
55745      })
55746    });
55747    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
55748      ...blockProps,
55749      children: [controls, mediaInspectorPanel, (!!logoUrl || !!temporaryURL) && logoImage, (isLoading || !temporaryURL && !logoUrl && !canUserEdit) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
55750        className: "site-logo_placeholder",
55751        withIllustration: true,
55752        children: isLoading && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
55753          className: "components-placeholder__preview",
55754          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
55755        })
55756      }), !isLoading && !temporaryURL && !logoUrl && canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
55757        onSelect: onInitialSelectLogo,
55758        accept: ACCEPT_MEDIA_STRING,
55759        allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
55760        onError: onUploadError,
55761        placeholder: placeholder,
55762        mediaLibraryButton: ({
55763          open
55764        }) => {
55765          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
55766            __next40pxDefaultSize: true,
55767            icon: library_upload,
55768            variant: "primary",
55769            label: (0,external_wp_i18n_namespaceObject.__)('Choose logo'),
55770            showTooltip: true,
55771            tooltipPosition: "middle right",
55772            onClick: () => {
55773              open();
55774            }
55775          });
55776        }
55777      })]
55778    });
55779  }
55780  
55781  ;// ./node_modules/@wordpress/block-library/build-module/site-logo/transforms.js
55782  /**
55783   * WordPress dependencies
55784   */
55785  
55786  const site_logo_transforms_transforms = {
55787    to: [{
55788      type: 'block',
55789      blocks: ['core/site-title'],
55790      transform: ({
55791        isLink,
55792        linkTarget
55793      }) => {
55794        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-title', {
55795          isLink,
55796          linkTarget
55797        });
55798      }
55799    }]
55800  };
55801  /* harmony default export */ const site_logo_transforms = (site_logo_transforms_transforms);
55802  
55803  ;// ./node_modules/@wordpress/block-library/build-module/site-logo/index.js
55804  /**
55805   * WordPress dependencies
55806   */
55807  
55808  
55809  /**
55810   * Internal dependencies
55811   */
55812  
55813  const site_logo_metadata = {
55814    $schema: "https://schemas.wp.org/trunk/block.json",
55815    apiVersion: 3,
55816    name: "core/site-logo",
55817    title: "Site Logo",
55818    category: "theme",
55819    description: "Display an image to represent this site. Update this block and the changes apply everywhere.",
55820    textdomain: "default",
55821    attributes: {
55822      width: {
55823        type: "number"
55824      },
55825      isLink: {
55826        type: "boolean",
55827        "default": true,
55828        role: "content"
55829      },
55830      linkTarget: {
55831        type: "string",
55832        "default": "_self",
55833        role: "content"
55834      },
55835      shouldSyncIcon: {
55836        type: "boolean"
55837      }
55838    },
55839    example: {
55840      viewportWidth: 500,
55841      attributes: {
55842        width: 350,
55843        className: "block-editor-block-types-list__site-logo-example"
55844      }
55845    },
55846    supports: {
55847      html: false,
55848      align: true,
55849      alignWide: false,
55850      color: {
55851        __experimentalDuotone: "img, .components-placeholder__illustration, .components-placeholder::before",
55852        text: false,
55853        background: false
55854      },
55855      spacing: {
55856        margin: true,
55857        padding: true,
55858        __experimentalDefaultControls: {
55859          margin: false,
55860          padding: false
55861        }
55862      },
55863      interactivity: {
55864        clientNavigation: true
55865      }
55866    },
55867    styles: [{
55868      name: "default",
55869      label: "Default",
55870      isDefault: true
55871    }, {
55872      name: "rounded",
55873      label: "Rounded"
55874    }],
55875    editorStyle: "wp-block-site-logo-editor",
55876    style: "wp-block-site-logo"
55877  };
55878  
55879  
55880  const {
55881    name: site_logo_name
55882  } = site_logo_metadata;
55883  
55884  const site_logo_settings = {
55885    icon: site_logo,
55886    example: {},
55887    edit: LogoEdit,
55888    transforms: site_logo_transforms
55889  };
55890  const site_logo_init = () => initBlock({
55891    name: site_logo_name,
55892    metadata: site_logo_metadata,
55893    settings: site_logo_settings
55894  });
55895  
55896  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/edit.js
55897  /**
55898   * External dependencies
55899   */
55900  
55901  
55902  /**
55903   * WordPress dependencies
55904   */
55905  
55906  
55907  
55908  
55909  
55910  
55911  function SiteTaglineEdit({
55912    attributes,
55913    setAttributes,
55914    insertBlocksAfter
55915  }) {
55916    const {
55917      textAlign,
55918      level,
55919      levelOptions
55920    } = attributes;
55921    const {
55922      canUserEdit,
55923      tagline
55924    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
55925      const {
55926        canUser,
55927        getEntityRecord,
55928        getEditedEntityRecord
55929      } = select(external_wp_coreData_namespaceObject.store);
55930      const canEdit = canUser('update', {
55931        kind: 'root',
55932        name: 'site'
55933      });
55934      const settings = canEdit ? getEditedEntityRecord('root', 'site') : {};
55935      const readOnlySettings = getEntityRecord('root', '__unstableBase');
55936      return {
55937        canUserEdit: canEdit,
55938        tagline: canEdit ? settings?.description : readOnlySettings?.description
55939      };
55940    }, []);
55941    const TagName = level === 0 ? 'p' : `h$level}`;
55942    const {
55943      editEntityRecord
55944    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
55945    function setTagline(newTagline) {
55946      editEntityRecord('root', 'site', undefined, {
55947        description: newTagline
55948      });
55949    }
55950    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
55951      className: dist_clsx({
55952        [`has-text-align-$textAlign}`]: textAlign,
55953        'wp-block-site-tagline__placeholder': !canUserEdit && !tagline
55954      })
55955    });
55956    const siteTaglineContent = canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
55957      allowedFormats: [],
55958      onChange: setTagline,
55959      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site tagline text'),
55960      placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site tagline…'),
55961      tagName: TagName,
55962      value: tagline,
55963      disableLineBreaks: true,
55964      __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)())),
55965      ...blockProps
55966    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
55967      ...blockProps,
55968      children: tagline || (0,external_wp_i18n_namespaceObject.__)('Site Tagline placeholder')
55969    });
55970    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
55971      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
55972        group: "block",
55973        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
55974          value: level,
55975          options: levelOptions,
55976          onChange: newLevel => setAttributes({
55977            level: newLevel
55978          })
55979        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
55980          onChange: newAlign => setAttributes({
55981            textAlign: newAlign
55982          }),
55983          value: textAlign
55984        })]
55985      }), siteTaglineContent]
55986    });
55987  }
55988  
55989  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/icon.js
55990  /**
55991   * WordPress dependencies
55992   */
55993  
55994  
55995  /* harmony default export */ const site_tagline_icon = (/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SVG, {
55996    xmlns: "http://www.w3.org/2000/svg",
55997    width: "24",
55998    height: "24",
55999    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
56000      d: "M4 10.5h16V9H4v1.5ZM4 15h9v-1.5H4V15Z"
56001    })
56002  }));
56003  
56004  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/deprecated.js
56005  /**
56006   * Internal dependencies
56007   */
56008  
56009  const site_tagline_deprecated_v1 = {
56010    attributes: {
56011      textAlign: {
56012        type: 'string'
56013      }
56014    },
56015    supports: {
56016      align: ['wide', 'full'],
56017      html: false,
56018      color: {
56019        gradients: true
56020      },
56021      spacing: {
56022        margin: true,
56023        padding: true
56024      },
56025      typography: {
56026        fontSize: true,
56027        lineHeight: true,
56028        __experimentalFontFamily: true,
56029        __experimentalTextTransform: true,
56030        __experimentalFontStyle: true,
56031        __experimentalFontWeight: true,
56032        __experimentalLetterSpacing: true
56033      }
56034    },
56035    save() {
56036      return null;
56037    },
56038    migrate: migrate_font_family,
56039    isEligible({
56040      style
56041    }) {
56042      return style?.typography?.fontFamily;
56043    }
56044  };
56045  
56046  /**
56047   * New deprecations need to be placed first
56048   * for them to have higher priority.
56049   *
56050   * Old deprecations may need to be updated as well.
56051   *
56052   * See block-deprecation.md
56053   */
56054  /* harmony default export */ const site_tagline_deprecated = ([site_tagline_deprecated_v1]);
56055  
56056  ;// ./node_modules/@wordpress/block-library/build-module/site-tagline/index.js
56057  /**
56058   * Internal dependencies
56059   */
56060  
56061  const site_tagline_metadata = {
56062    $schema: "https://schemas.wp.org/trunk/block.json",
56063    apiVersion: 3,
56064    name: "core/site-tagline",
56065    title: "Site Tagline",
56066    category: "theme",
56067    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.",
56068    keywords: ["description"],
56069    textdomain: "default",
56070    attributes: {
56071      textAlign: {
56072        type: "string"
56073      },
56074      level: {
56075        type: "number",
56076        "default": 0
56077      },
56078      levelOptions: {
56079        type: "array",
56080        "default": [0, 1, 2, 3, 4, 5, 6]
56081      }
56082    },
56083    example: {
56084      viewportWidth: 350,
56085      attributes: {
56086        textAlign: "center"
56087      }
56088    },
56089    supports: {
56090      align: ["wide", "full"],
56091      html: false,
56092      color: {
56093        gradients: true,
56094        __experimentalDefaultControls: {
56095          background: true,
56096          text: true
56097        }
56098      },
56099      spacing: {
56100        margin: true,
56101        padding: true,
56102        __experimentalDefaultControls: {
56103          margin: false,
56104          padding: false
56105        }
56106      },
56107      typography: {
56108        fontSize: true,
56109        lineHeight: true,
56110        __experimentalFontFamily: true,
56111        __experimentalTextTransform: true,
56112        __experimentalTextDecoration: true,
56113        __experimentalFontStyle: true,
56114        __experimentalFontWeight: true,
56115        __experimentalLetterSpacing: true,
56116        __experimentalWritingMode: true,
56117        __experimentalDefaultControls: {
56118          fontSize: true
56119        }
56120      },
56121      interactivity: {
56122        clientNavigation: true
56123      },
56124      __experimentalBorder: {
56125        radius: true,
56126        color: true,
56127        width: true,
56128        style: true
56129      }
56130    },
56131    editorStyle: "wp-block-site-tagline-editor",
56132    style: "wp-block-site-tagline"
56133  };
56134  
56135  
56136  
56137  const {
56138    name: site_tagline_name
56139  } = site_tagline_metadata;
56140  
56141  const site_tagline_settings = {
56142    icon: site_tagline_icon,
56143    edit: SiteTaglineEdit,
56144    deprecated: site_tagline_deprecated
56145  };
56146  const site_tagline_init = () => initBlock({
56147    name: site_tagline_name,
56148    metadata: site_tagline_metadata,
56149    settings: site_tagline_settings
56150  });
56151  
56152  ;// ./node_modules/@wordpress/icons/build-module/library/map-marker.js
56153  /**
56154   * WordPress dependencies
56155   */
56156  
56157  
56158  const mapMarker = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56159    xmlns: "http://www.w3.org/2000/svg",
56160    viewBox: "0 0 24 24",
56161    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56162      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"
56163    })
56164  });
56165  /* harmony default export */ const map_marker = (mapMarker);
56166  
56167  ;// ./node_modules/@wordpress/block-library/build-module/site-title/edit.js
56168  /**
56169   * External dependencies
56170   */
56171  
56172  
56173  /**
56174   * WordPress dependencies
56175   */
56176  
56177  
56178  
56179  
56180  
56181  
56182  
56183  
56184  /**
56185   * Internal dependencies
56186   */
56187  
56188  
56189  function SiteTitleEdit({
56190    attributes,
56191    setAttributes,
56192    insertBlocksAfter
56193  }) {
56194    const {
56195      level,
56196      levelOptions,
56197      textAlign,
56198      isLink,
56199      linkTarget
56200    } = attributes;
56201    const {
56202      canUserEdit,
56203      title
56204    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
56205      const {
56206        canUser,
56207        getEntityRecord,
56208        getEditedEntityRecord
56209      } = select(external_wp_coreData_namespaceObject.store);
56210      const canEdit = canUser('update', {
56211        kind: 'root',
56212        name: 'site'
56213      });
56214      const settings = canEdit ? getEditedEntityRecord('root', 'site') : {};
56215      const readOnlySettings = getEntityRecord('root', '__unstableBase');
56216      return {
56217        canUserEdit: canEdit,
56218        title: canEdit ? settings?.title : readOnlySettings?.name
56219      };
56220    }, []);
56221    const {
56222      editEntityRecord
56223    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
56224    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
56225    function setTitle(newTitle) {
56226      editEntityRecord('root', 'site', undefined, {
56227        title: newTitle
56228      });
56229    }
56230    const TagName = level === 0 ? 'p' : `h$level}`;
56231    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
56232      className: dist_clsx({
56233        [`has-text-align-$textAlign}`]: textAlign,
56234        'wp-block-site-title__placeholder': !canUserEdit && !title
56235      })
56236    });
56237    const siteTitleContent = canUserEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
56238      ...blockProps,
56239      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
56240        tagName: isLink ? 'a' : 'span',
56241        href: isLink ? '#site-title-pseudo-link' : undefined,
56242        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Site title text'),
56243        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write site title…'),
56244        value: title,
56245        onChange: setTitle,
56246        allowedFormats: [],
56247        disableLineBreaks: true,
56248        __unstableOnSplitAtEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
56249      })
56250    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
56251      ...blockProps,
56252      children: isLink ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
56253        href: "#site-title-pseudo-link",
56254        onClick: event => event.preventDefault(),
56255        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title) || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')
56256      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
56257        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title) || (0,external_wp_i18n_namespaceObject.__)('Site Title placeholder')
56258      })
56259    });
56260    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
56261      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.BlockControls, {
56262        group: "block",
56263        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.HeadingLevelDropdown, {
56264          value: level,
56265          options: levelOptions,
56266          onChange: newLevel => setAttributes({
56267            level: newLevel
56268          })
56269        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
56270          value: textAlign,
56271          onChange: nextAlign => {
56272            setAttributes({
56273              textAlign: nextAlign
56274            });
56275          }
56276        })]
56277      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
56278        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
56279          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
56280          resetAll: () => {
56281            setAttributes({
56282              isLink: true,
56283              linkTarget: '_self'
56284            });
56285          },
56286          dropdownMenuProps: dropdownMenuProps,
56287          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
56288            hasValue: () => !isLink,
56289            label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
56290            onDeselect: () => setAttributes({
56291              isLink: true
56292            }),
56293            isShownByDefault: true,
56294            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
56295              __nextHasNoMarginBottom: true,
56296              label: (0,external_wp_i18n_namespaceObject.__)('Make title link to home'),
56297              onChange: () => setAttributes({
56298                isLink: !isLink
56299              }),
56300              checked: isLink
56301            })
56302          }), isLink && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
56303            hasValue: () => linkTarget !== '_self',
56304            label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
56305            onDeselect: () => setAttributes({
56306              linkTarget: '_self'
56307            }),
56308            isShownByDefault: true,
56309            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
56310              __nextHasNoMarginBottom: true,
56311              label: (0,external_wp_i18n_namespaceObject.__)('Open in new tab'),
56312              onChange: value => setAttributes({
56313                linkTarget: value ? '_blank' : '_self'
56314              }),
56315              checked: linkTarget === '_blank'
56316            })
56317          })]
56318        })
56319      }), siteTitleContent]
56320    });
56321  }
56322  
56323  ;// ./node_modules/@wordpress/block-library/build-module/site-title/deprecated.js
56324  /**
56325   * Internal dependencies
56326   */
56327  
56328  const site_title_deprecated_v1 = {
56329    attributes: {
56330      level: {
56331        type: 'number',
56332        default: 1
56333      },
56334      textAlign: {
56335        type: 'string'
56336      },
56337      isLink: {
56338        type: 'boolean',
56339        default: true
56340      },
56341      linkTarget: {
56342        type: 'string',
56343        default: '_self'
56344      }
56345    },
56346    supports: {
56347      align: ['wide', 'full'],
56348      html: false,
56349      color: {
56350        gradients: true,
56351        link: true
56352      },
56353      spacing: {
56354        padding: true,
56355        margin: true
56356      },
56357      typography: {
56358        fontSize: true,
56359        lineHeight: true,
56360        __experimentalFontFamily: true,
56361        __experimentalTextTransform: true,
56362        __experimentalFontStyle: true,
56363        __experimentalFontWeight: true,
56364        __experimentalLetterSpacing: true
56365      }
56366    },
56367    save() {
56368      return null;
56369    },
56370    migrate: migrate_font_family,
56371    isEligible({
56372      style
56373    }) {
56374      return style?.typography?.fontFamily;
56375    }
56376  };
56377  
56378  /**
56379   * New deprecations need to be placed first
56380   * for them to have higher priority.
56381   *
56382   * Old deprecations may need to be updated as well.
56383   *
56384   * See block-deprecation.md
56385   */
56386  /* harmony default export */ const site_title_deprecated = ([site_title_deprecated_v1]);
56387  
56388  ;// ./node_modules/@wordpress/block-library/build-module/site-title/transforms.js
56389  /**
56390   * WordPress dependencies
56391   */
56392  
56393  const site_title_transforms_transforms = {
56394    to: [{
56395      type: 'block',
56396      blocks: ['core/site-logo'],
56397      transform: ({
56398        isLink,
56399        linkTarget
56400      }) => {
56401        return (0,external_wp_blocks_namespaceObject.createBlock)('core/site-logo', {
56402          isLink,
56403          linkTarget
56404        });
56405      }
56406    }]
56407  };
56408  /* harmony default export */ const site_title_transforms = (site_title_transforms_transforms);
56409  
56410  ;// ./node_modules/@wordpress/block-library/build-module/site-title/index.js
56411  /**
56412   * WordPress dependencies
56413   */
56414  
56415  
56416  /**
56417   * Internal dependencies
56418   */
56419  
56420  const site_title_metadata = {
56421    $schema: "https://schemas.wp.org/trunk/block.json",
56422    apiVersion: 3,
56423    name: "core/site-title",
56424    title: "Site Title",
56425    category: "theme",
56426    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.",
56427    textdomain: "default",
56428    attributes: {
56429      level: {
56430        type: "number",
56431        "default": 1
56432      },
56433      levelOptions: {
56434        type: "array",
56435        "default": [0, 1, 2, 3, 4, 5, 6]
56436      },
56437      textAlign: {
56438        type: "string"
56439      },
56440      isLink: {
56441        type: "boolean",
56442        "default": true,
56443        role: "content"
56444      },
56445      linkTarget: {
56446        type: "string",
56447        "default": "_self",
56448        role: "content"
56449      }
56450    },
56451    example: {
56452      viewportWidth: 500
56453    },
56454    supports: {
56455      align: ["wide", "full"],
56456      html: false,
56457      color: {
56458        gradients: true,
56459        link: true,
56460        __experimentalDefaultControls: {
56461          background: true,
56462          text: true,
56463          link: true
56464        }
56465      },
56466      spacing: {
56467        padding: true,
56468        margin: true,
56469        __experimentalDefaultControls: {
56470          margin: false,
56471          padding: false
56472        }
56473      },
56474      typography: {
56475        fontSize: true,
56476        lineHeight: true,
56477        __experimentalFontFamily: true,
56478        __experimentalTextTransform: true,
56479        __experimentalTextDecoration: true,
56480        __experimentalFontStyle: true,
56481        __experimentalFontWeight: true,
56482        __experimentalLetterSpacing: true,
56483        __experimentalWritingMode: true,
56484        __experimentalDefaultControls: {
56485          fontSize: true
56486        }
56487      },
56488      interactivity: {
56489        clientNavigation: true
56490      },
56491      __experimentalBorder: {
56492        radius: true,
56493        color: true,
56494        width: true,
56495        style: true
56496      }
56497    },
56498    editorStyle: "wp-block-site-title-editor",
56499    style: "wp-block-site-title"
56500  };
56501  
56502  
56503  
56504  const {
56505    name: site_title_name
56506  } = site_title_metadata;
56507  
56508  const site_title_settings = {
56509    icon: map_marker,
56510    example: {
56511      viewportWidth: 350,
56512      attributes: {
56513        textAlign: 'center'
56514      }
56515    },
56516    edit: SiteTitleEdit,
56517    transforms: site_title_transforms,
56518    deprecated: site_title_deprecated
56519  };
56520  const site_title_init = () => initBlock({
56521    name: site_title_name,
56522    metadata: site_title_metadata,
56523    settings: site_title_settings
56524  });
56525  
56526  ;// ./node_modules/@wordpress/icons/build-module/library/share.js
56527  /**
56528   * WordPress dependencies
56529   */
56530  
56531  
56532  const share = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56533    viewBox: "0 0 24 24",
56534    xmlns: "http://www.w3.org/2000/svg",
56535    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56536      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"
56537    })
56538  });
56539  /* harmony default export */ const library_share = (share);
56540  
56541  ;// ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js
56542  /**
56543   * WordPress dependencies
56544   */
56545  
56546  
56547  const keyboardReturn = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56548    xmlns: "http://www.w3.org/2000/svg",
56549    viewBox: "0 0 24 24",
56550    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56551      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"
56552    })
56553  });
56554  /* harmony default export */ const keyboard_return = (keyboardReturn);
56555  
56556  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js
56557  /**
56558   * WordPress dependencies
56559   */
56560  
56561  
56562  const WordPressIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56563    width: "24",
56564    height: "24",
56565    viewBox: "0 0 24 24",
56566    version: "1.1",
56567    xmlns: "http://www.w3.org/2000/svg",
56568    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56569      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"
56570    })
56571  });
56572  
56573  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js
56574  /**
56575   * WordPress dependencies
56576   */
56577  
56578  
56579  const FivehundredpxIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56580    width: "24",
56581    height: "24",
56582    viewBox: "0 0 24 24",
56583    version: "1.1",
56584    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56585      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"
56586    })
56587  });
56588  
56589  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js
56590  /**
56591   * WordPress dependencies
56592   */
56593  
56594  
56595  const AmazonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56596    width: "24",
56597    height: "24",
56598    viewBox: "0 0 24 24",
56599    version: "1.1",
56600    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56601      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"
56602    })
56603  });
56604  
56605  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js
56606  /**
56607   * WordPress dependencies
56608   */
56609  
56610  
56611  
56612  const BandcampIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56613    width: "24",
56614    height: "24",
56615    viewBox: "0 0 24 24",
56616    version: "1.1",
56617    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56618      d: "M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"
56619    })
56620  });
56621  
56622  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js
56623  /**
56624   * WordPress dependencies
56625   */
56626  
56627  
56628  const BehanceIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56629    width: "24",
56630    height: "24",
56631    viewBox: "0 0 24 24",
56632    version: "1.1",
56633    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56634      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"
56635    })
56636  });
56637  
56638  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/bluesky.js
56639  /**
56640   * WordPress dependencies
56641   */
56642  
56643  
56644  const BlueskyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56645    width: "24",
56646    height: "24",
56647    viewBox: "0 0 24 24",
56648    version: "1.1",
56649    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56650      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"
56651    })
56652  });
56653  
56654  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js
56655  /**
56656   * WordPress dependencies
56657   */
56658  
56659  
56660  const ChainIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56661    width: "24",
56662    height: "24",
56663    viewBox: "0 0 24 24",
56664    version: "1.1",
56665    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56666      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"
56667    })
56668  });
56669  
56670  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js
56671  /**
56672   * WordPress dependencies
56673   */
56674  
56675  
56676  const CodepenIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56677    width: "24",
56678    height: "24",
56679    viewBox: "0 0 24 24",
56680    version: "1.1",
56681    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56682      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"
56683    })
56684  });
56685  
56686  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js
56687  /**
56688   * WordPress dependencies
56689   */
56690  
56691  
56692  const DeviantArtIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56693    width: "24",
56694    height: "24",
56695    viewBox: "0 0 24 24",
56696    version: "1.1",
56697    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56698      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"
56699    })
56700  });
56701  
56702  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/discord.js
56703  /**
56704   * WordPress dependencies
56705   */
56706  
56707  
56708  const DiscordIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56709    width: "24",
56710    height: "24",
56711    viewBox: "0 0 24 24",
56712    version: "1.1",
56713    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56714      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"
56715    })
56716  });
56717  
56718  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js
56719  /**
56720   * WordPress dependencies
56721   */
56722  
56723  
56724  const DribbbleIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56725    width: "24",
56726    height: "24",
56727    viewBox: "0 0 24 24",
56728    version: "1.1",
56729    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56730      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"
56731    })
56732  });
56733  
56734  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js
56735  /**
56736   * WordPress dependencies
56737   */
56738  
56739  
56740  const DropboxIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56741    width: "24",
56742    height: "24",
56743    viewBox: "0 0 24 24",
56744    version: "1.1",
56745    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56746      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"
56747    })
56748  });
56749  
56750  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js
56751  /**
56752   * WordPress dependencies
56753   */
56754  
56755  
56756  const EtsyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56757    width: "24",
56758    height: "24",
56759    viewBox: "0 0 24 24",
56760    version: "1.1",
56761    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56762      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"
56763    })
56764  });
56765  
56766  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js
56767  /**
56768   * WordPress dependencies
56769   */
56770  
56771  
56772  const FacebookIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56773    width: "24",
56774    height: "24",
56775    viewBox: "0 0 24 24",
56776    version: "1.1",
56777    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56778      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"
56779    })
56780  });
56781  
56782  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js
56783  /**
56784   * WordPress dependencies
56785   */
56786  
56787  
56788  const FeedIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56789    width: "24",
56790    height: "24",
56791    viewBox: "0 0 24 24",
56792    version: "1.1",
56793    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56794      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"
56795    })
56796  });
56797  
56798  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js
56799  /**
56800   * WordPress dependencies
56801   */
56802  
56803  
56804  const FlickrIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56805    width: "24",
56806    height: "24",
56807    viewBox: "0 0 24 24",
56808    version: "1.1",
56809    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56810      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"
56811    })
56812  });
56813  
56814  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js
56815  /**
56816   * WordPress dependencies
56817   */
56818  
56819  
56820  const FoursquareIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56821    width: "24",
56822    height: "24",
56823    viewBox: "0 0 24 24",
56824    version: "1.1",
56825    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56826      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"
56827    })
56828  });
56829  
56830  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js
56831  /**
56832   * WordPress dependencies
56833   */
56834  
56835  
56836  const GoodreadsIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56837    width: "24",
56838    height: "24",
56839    viewBox: "0 0 24 24",
56840    version: "1.1",
56841    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56842      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"
56843    })
56844  });
56845  
56846  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js
56847  /**
56848   * WordPress dependencies
56849   */
56850  
56851  
56852  const GoogleIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56853    width: "24",
56854    height: "24",
56855    viewBox: "0 0 24 24",
56856    version: "1.1",
56857    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56858      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"
56859    })
56860  });
56861  
56862  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js
56863  /**
56864   * WordPress dependencies
56865   */
56866  
56867  
56868  const GitHubIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56869    width: "24",
56870    height: "24",
56871    viewBox: "0 0 24 24",
56872    version: "1.1",
56873    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56874      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"
56875    })
56876  });
56877  
56878  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/gravatar.js
56879  /**
56880   * WordPress dependencies
56881   */
56882  
56883  
56884  const GravatarIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56885    width: "24",
56886    height: "24",
56887    viewBox: "0 0 24 24",
56888    version: "1.1",
56889    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56890      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"
56891    })
56892  });
56893  
56894  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js
56895  /**
56896   * WordPress dependencies
56897   */
56898  
56899  
56900  const InstagramIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56901    width: "24",
56902    height: "24",
56903    viewBox: "0 0 24 24",
56904    version: "1.1",
56905    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56906      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"
56907    })
56908  });
56909  
56910  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js
56911  /**
56912   * WordPress dependencies
56913   */
56914  
56915  
56916  const LastfmIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56917    width: "24",
56918    height: "24",
56919    viewBox: "0 0 24 24",
56920    version: "1.1",
56921    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56922      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"
56923    })
56924  });
56925  
56926  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js
56927  /**
56928   * WordPress dependencies
56929   */
56930  
56931  
56932  const LinkedInIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56933    width: "24",
56934    height: "24",
56935    viewBox: "0 0 24 24",
56936    version: "1.1",
56937    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56938      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"
56939    })
56940  });
56941  
56942  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js
56943  /**
56944   * WordPress dependencies
56945   */
56946  
56947  
56948  const MailIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56949    width: "24",
56950    height: "24",
56951    viewBox: "0 0 24 24",
56952    version: "1.1",
56953    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56954      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"
56955    })
56956  });
56957  
56958  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js
56959  /**
56960   * WordPress dependencies
56961   */
56962  
56963  
56964  const MastodonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56965    width: "24",
56966    height: "24",
56967    viewBox: "0 0 24 24",
56968    version: "1.1",
56969    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56970      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"
56971    })
56972  });
56973  
56974  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js
56975  /**
56976   * WordPress dependencies
56977   */
56978  
56979  
56980  const MeetupIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56981    width: "24",
56982    height: "24",
56983    viewBox: "0 0 24 24",
56984    version: "1.1",
56985    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
56986      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"
56987    })
56988  });
56989  
56990  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js
56991  /**
56992   * WordPress dependencies
56993   */
56994  
56995  
56996  const MediumIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
56997    width: "24",
56998    height: "24",
56999    viewBox: "0 0 24 24",
57000    version: "1.1",
57001    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57002      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"
57003    })
57004  });
57005  
57006  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/patreon.js
57007  /**
57008   * WordPress dependencies
57009   */
57010  
57011  
57012  const PatreonIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57013    width: "24",
57014    height: "24",
57015    viewBox: "0 0 24 24",
57016    version: "1.1",
57017    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57018      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"
57019    })
57020  });
57021  
57022  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js
57023  /**
57024   * WordPress dependencies
57025   */
57026  
57027  
57028  const PinterestIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57029    width: "24",
57030    height: "24",
57031    viewBox: "0 0 24 24",
57032    version: "1.1",
57033    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57034      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"
57035    })
57036  });
57037  
57038  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js
57039  /**
57040   * WordPress dependencies
57041   */
57042  
57043  
57044  const PocketIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57045    width: "24",
57046    height: "24",
57047    viewBox: "0 0 24 24",
57048    version: "1.1",
57049    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57050      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"
57051    })
57052  });
57053  
57054  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js
57055  /**
57056   * WordPress dependencies
57057   */
57058  
57059  
57060  const RedditIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57061    width: "24",
57062    height: "24",
57063    viewBox: "0 0 24 24",
57064    version: "1.1",
57065    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57066      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"
57067    })
57068  });
57069  
57070  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js
57071  /**
57072   * WordPress dependencies
57073   */
57074  
57075  
57076  const SkypeIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57077    width: "24",
57078    height: "24",
57079    viewBox: "0 0 24 24",
57080    version: "1.1",
57081    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57082      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"
57083    })
57084  });
57085  
57086  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js
57087  /**
57088   * WordPress dependencies
57089   */
57090  
57091  
57092  const SnapchatIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57093    width: "24",
57094    height: "24",
57095    viewBox: "0 0 24 24",
57096    version: "1.1",
57097    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57098      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"
57099    })
57100  });
57101  
57102  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js
57103  /**
57104   * WordPress dependencies
57105   */
57106  
57107  
57108  const SoundCloudIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57109    width: "24",
57110    height: "24",
57111    viewBox: "0 0 24 24",
57112    version: "1.1",
57113    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57114      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"
57115    })
57116  });
57117  
57118  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js
57119  /**
57120   * WordPress dependencies
57121   */
57122  
57123  
57124  const SpotifyIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57125    width: "24",
57126    height: "24",
57127    viewBox: "0 0 24 24",
57128    version: "1.1",
57129    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57130      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"
57131    })
57132  });
57133  
57134  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/telegram.js
57135  /**
57136   * WordPress dependencies
57137   */
57138  
57139  
57140  const TelegramIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57141    width: "24",
57142    height: "24",
57143    viewBox: "0 0 128 128",
57144    version: "1.1",
57145    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57146      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"
57147    })
57148  });
57149  
57150  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/threads.js
57151  /**
57152   * WordPress dependencies
57153   */
57154  
57155  
57156  const ThreadsIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57157    width: "24",
57158    height: "24",
57159    viewBox: "0 0 24 24",
57160    version: "1.1",
57161    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57162      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"
57163    })
57164  });
57165  
57166  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/tiktok.js
57167  /**
57168   * WordPress dependencies
57169   */
57170  
57171  
57172  const TiktokIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57173    width: "24",
57174    height: "24",
57175    viewBox: "0 0 32 32",
57176    version: "1.1",
57177    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57178      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"
57179    })
57180  });
57181  
57182  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js
57183  /**
57184   * WordPress dependencies
57185   */
57186  
57187  
57188  const TumblrIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57189    width: "24",
57190    height: "24",
57191    viewBox: "0 0 24 24",
57192    version: "1.1",
57193    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57194      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"
57195    })
57196  });
57197  
57198  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js
57199  /**
57200   * WordPress dependencies
57201   */
57202  
57203  
57204  const TwitchIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57205    width: "24",
57206    height: "24",
57207    viewBox: "0 0 24 24",
57208    version: "1.1",
57209    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57210      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"
57211    })
57212  });
57213  
57214  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js
57215  /**
57216   * WordPress dependencies
57217   */
57218  
57219  
57220  const TwitterIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57221    width: "24",
57222    height: "24",
57223    viewBox: "0 0 24 24",
57224    version: "1.1",
57225    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57226      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"
57227    })
57228  });
57229  
57230  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js
57231  /**
57232   * WordPress dependencies
57233   */
57234  
57235  
57236  const VimeoIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57237    width: "24",
57238    height: "24",
57239    viewBox: "0 0 24 24",
57240    version: "1.1",
57241    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57242      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"
57243    })
57244  });
57245  
57246  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js
57247  /**
57248   * WordPress dependencies
57249   */
57250  
57251  
57252  const VkIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57253    width: "24",
57254    height: "24",
57255    viewBox: "0 0 24 24",
57256    version: "1.1",
57257    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57258      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"
57259    })
57260  });
57261  
57262  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/whatsapp.js
57263  /**
57264   * WordPress dependencies
57265   */
57266  
57267  
57268  const WhatsAppIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57269    width: "24",
57270    height: "24",
57271    viewBox: "0 0 24 24",
57272    version: "1.1",
57273    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57274      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"
57275    })
57276  });
57277  
57278  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/x.js
57279  /**
57280   * WordPress dependencies
57281   */
57282  
57283  
57284  const XIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57285    width: "24",
57286    height: "24",
57287    viewBox: "0 0 24 24",
57288    version: "1.1",
57289    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57290      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"
57291    })
57292  });
57293  
57294  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js
57295  /**
57296   * WordPress dependencies
57297   */
57298  
57299  
57300  const YelpIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57301    width: "24",
57302    height: "24",
57303    viewBox: "0 0 24 24",
57304    version: "1.1",
57305    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57306      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"
57307    })
57308  });
57309  
57310  ;// ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js
57311  /**
57312   * WordPress dependencies
57313   */
57314  
57315  
57316  const YouTubeIcon = () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
57317    width: "24",
57318    height: "24",
57319    viewBox: "0 0 24 24",
57320    version: "1.1",
57321    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
57322      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"
57323    })
57324  });
57325  
57326  ;// ./node_modules/@wordpress/block-library/build-module/social-link/variations.js
57327  /**
57328   * Internal dependencies
57329   */
57330  
57331  const social_link_variations_variations = [{
57332    isDefault: true,
57333    name: 'wordpress',
57334    attributes: {
57335      service: 'wordpress'
57336    },
57337    title: 'WordPress',
57338    icon: WordPressIcon
57339  }, {
57340    name: 'fivehundredpx',
57341    attributes: {
57342      service: 'fivehundredpx'
57343    },
57344    title: '500px',
57345    icon: FivehundredpxIcon
57346  }, {
57347    name: 'amazon',
57348    attributes: {
57349      service: 'amazon'
57350    },
57351    title: 'Amazon',
57352    icon: AmazonIcon
57353  }, {
57354    name: 'bandcamp',
57355    attributes: {
57356      service: 'bandcamp'
57357    },
57358    title: 'Bandcamp',
57359    icon: BandcampIcon
57360  }, {
57361    name: 'behance',
57362    attributes: {
57363      service: 'behance'
57364    },
57365    title: 'Behance',
57366    icon: BehanceIcon
57367  }, {
57368    name: 'bluesky',
57369    attributes: {
57370      service: 'bluesky'
57371    },
57372    title: 'Bluesky',
57373    icon: BlueskyIcon
57374  }, {
57375    name: 'chain',
57376    attributes: {
57377      service: 'chain'
57378    },
57379    title: 'Link',
57380    icon: ChainIcon
57381  }, {
57382    name: 'codepen',
57383    attributes: {
57384      service: 'codepen'
57385    },
57386    title: 'CodePen',
57387    icon: CodepenIcon
57388  }, {
57389    name: 'deviantart',
57390    attributes: {
57391      service: 'deviantart'
57392    },
57393    title: 'DeviantArt',
57394    icon: DeviantArtIcon
57395  }, {
57396    name: 'discord',
57397    attributes: {
57398      service: 'discord'
57399    },
57400    title: 'Discord',
57401    icon: DiscordIcon
57402  }, {
57403    name: 'dribbble',
57404    attributes: {
57405      service: 'dribbble'
57406    },
57407    title: 'Dribbble',
57408    icon: DribbbleIcon
57409  }, {
57410    name: 'dropbox',
57411    attributes: {
57412      service: 'dropbox'
57413    },
57414    title: 'Dropbox',
57415    icon: DropboxIcon
57416  }, {
57417    name: 'etsy',
57418    attributes: {
57419      service: 'etsy'
57420    },
57421    title: 'Etsy',
57422    icon: EtsyIcon
57423  }, {
57424    name: 'facebook',
57425    attributes: {
57426      service: 'facebook'
57427    },
57428    title: 'Facebook',
57429    icon: FacebookIcon
57430  }, {
57431    name: 'feed',
57432    attributes: {
57433      service: 'feed'
57434    },
57435    title: 'RSS Feed',
57436    icon: FeedIcon
57437  }, {
57438    name: 'flickr',
57439    attributes: {
57440      service: 'flickr'
57441    },
57442    title: 'Flickr',
57443    icon: FlickrIcon
57444  }, {
57445    name: 'foursquare',
57446    attributes: {
57447      service: 'foursquare'
57448    },
57449    title: 'Foursquare',
57450    icon: FoursquareIcon
57451  }, {
57452    name: 'goodreads',
57453    attributes: {
57454      service: 'goodreads'
57455    },
57456    title: 'Goodreads',
57457    icon: GoodreadsIcon
57458  }, {
57459    name: 'google',
57460    attributes: {
57461      service: 'google'
57462    },
57463    title: 'Google',
57464    icon: GoogleIcon
57465  }, {
57466    name: 'github',
57467    attributes: {
57468      service: 'github'
57469    },
57470    title: 'GitHub',
57471    icon: GitHubIcon
57472  }, {
57473    name: 'gravatar',
57474    attributes: {
57475      service: 'gravatar'
57476    },
57477    title: 'Gravatar',
57478    icon: GravatarIcon
57479  }, {
57480    name: 'instagram',
57481    attributes: {
57482      service: 'instagram'
57483    },
57484    title: 'Instagram',
57485    icon: InstagramIcon
57486  }, {
57487    name: 'lastfm',
57488    attributes: {
57489      service: 'lastfm'
57490    },
57491    title: 'Last.fm',
57492    icon: LastfmIcon
57493  }, {
57494    name: 'linkedin',
57495    attributes: {
57496      service: 'linkedin'
57497    },
57498    title: 'LinkedIn',
57499    icon: LinkedInIcon
57500  }, {
57501    name: 'mail',
57502    attributes: {
57503      service: 'mail'
57504    },
57505    title: 'Mail',
57506    keywords: ['email', 'e-mail'],
57507    icon: MailIcon
57508  }, {
57509    name: 'mastodon',
57510    attributes: {
57511      service: 'mastodon'
57512    },
57513    title: 'Mastodon',
57514    icon: MastodonIcon
57515  }, {
57516    name: 'meetup',
57517    attributes: {
57518      service: 'meetup'
57519    },
57520    title: 'Meetup',
57521    icon: MeetupIcon
57522  }, {
57523    name: 'medium',
57524    attributes: {
57525      service: 'medium'
57526    },
57527    title: 'Medium',
57528    icon: MediumIcon
57529  }, {
57530    name: 'patreon',
57531    attributes: {
57532      service: 'patreon'
57533    },
57534    title: 'Patreon',
57535    icon: PatreonIcon
57536  }, {
57537    name: 'pinterest',
57538    attributes: {
57539      service: 'pinterest'
57540    },
57541    title: 'Pinterest',
57542    icon: PinterestIcon
57543  }, {
57544    name: 'pocket',
57545    attributes: {
57546      service: 'pocket'
57547    },
57548    title: 'Pocket',
57549    icon: PocketIcon
57550  }, {
57551    name: 'reddit',
57552    attributes: {
57553      service: 'reddit'
57554    },
57555    title: 'Reddit',
57556    icon: RedditIcon
57557  }, {
57558    name: 'skype',
57559    attributes: {
57560      service: 'skype'
57561    },
57562    title: 'Skype',
57563    icon: SkypeIcon
57564  }, {
57565    name: 'snapchat',
57566    attributes: {
57567      service: 'snapchat'
57568    },
57569    title: 'Snapchat',
57570    icon: SnapchatIcon
57571  }, {
57572    name: 'soundcloud',
57573    attributes: {
57574      service: 'soundcloud'
57575    },
57576    title: 'SoundCloud',
57577    icon: SoundCloudIcon
57578  }, {
57579    name: 'spotify',
57580    attributes: {
57581      service: 'spotify'
57582    },
57583    title: 'Spotify',
57584    icon: SpotifyIcon
57585  }, {
57586    name: 'telegram',
57587    attributes: {
57588      service: 'telegram'
57589    },
57590    title: 'Telegram',
57591    icon: TelegramIcon
57592  }, {
57593    name: 'threads',
57594    attributes: {
57595      service: 'threads'
57596    },
57597    title: 'Threads',
57598    icon: ThreadsIcon
57599  }, {
57600    name: 'tiktok',
57601    attributes: {
57602      service: 'tiktok'
57603    },
57604    title: 'TikTok',
57605    icon: TiktokIcon
57606  }, {
57607    name: 'tumblr',
57608    attributes: {
57609      service: 'tumblr'
57610    },
57611    title: 'Tumblr',
57612    icon: TumblrIcon
57613  }, {
57614    name: 'twitch',
57615    attributes: {
57616      service: 'twitch'
57617    },
57618    title: 'Twitch',
57619    icon: TwitchIcon
57620  }, {
57621    name: 'twitter',
57622    attributes: {
57623      service: 'twitter'
57624    },
57625    title: 'Twitter',
57626    icon: TwitterIcon
57627  }, {
57628    name: 'vimeo',
57629    attributes: {
57630      service: 'vimeo'
57631    },
57632    title: 'Vimeo',
57633    icon: VimeoIcon
57634  }, {
57635    name: 'vk',
57636    attributes: {
57637      service: 'vk'
57638    },
57639    title: 'VK',
57640    icon: VkIcon
57641  }, {
57642    name: 'whatsapp',
57643    attributes: {
57644      service: 'whatsapp'
57645    },
57646    title: 'WhatsApp',
57647    icon: WhatsAppIcon
57648  }, {
57649    name: 'x',
57650    attributes: {
57651      service: 'x'
57652    },
57653    keywords: ['twitter'],
57654    title: 'X',
57655    icon: XIcon
57656  }, {
57657    name: 'yelp',
57658    attributes: {
57659      service: 'yelp'
57660    },
57661    title: 'Yelp',
57662    icon: YelpIcon
57663  }, {
57664    name: 'youtube',
57665    attributes: {
57666      service: 'youtube'
57667    },
57668    title: 'YouTube',
57669    icon: YouTubeIcon
57670  }];
57671  
57672  /**
57673   * Add `isActive` function to all `social link` variations, if not defined.
57674   * `isActive` function is used to find a variation match from a created
57675   *  Block by providing its attributes.
57676   */
57677  social_link_variations_variations.forEach(variation => {
57678    if (variation.isActive) {
57679      return;
57680    }
57681    variation.isActive = (blockAttributes, variationAttributes) => blockAttributes.service === variationAttributes.service;
57682  });
57683  /* harmony default export */ const social_link_variations = (social_link_variations_variations);
57684  
57685  ;// ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js
57686  /**
57687   * WordPress dependencies
57688   */
57689  
57690  
57691  /**
57692   * Internal dependencies
57693   */
57694  
57695  
57696  
57697  /**
57698   * Retrieves the social service's icon component.
57699   *
57700   * @param {string} name key for a social service (lowercase slug)
57701   *
57702   * @return {Component} Icon component for social service.
57703   */
57704  const getIconBySite = name => {
57705    const variation = social_link_variations.find(v => v.name === name);
57706    return variation ? variation.icon : ChainIcon;
57707  };
57708  
57709  /**
57710   * Retrieves the display name for the social service.
57711   *
57712   * @param {string} name key for a social service (lowercase slug)
57713   *
57714   * @return {string} Display name for social service
57715   */
57716  const getNameBySite = name => {
57717    const variation = social_link_variations.find(v => v.name === name);
57718    return variation ? variation.title : (0,external_wp_i18n_namespaceObject.__)('Social Icon');
57719  };
57720  
57721  ;// ./node_modules/@wordpress/block-library/build-module/social-link/edit.js
57722  /**
57723   * External dependencies
57724   */
57725  
57726  
57727  /**
57728   * WordPress dependencies
57729   */
57730  
57731  
57732  
57733  
57734  
57735  
57736  
57737  
57738  
57739  /**
57740   * Internal dependencies
57741   */
57742  
57743  
57744  
57745  const SocialLinkURLPopover = ({
57746    url,
57747    setAttributes,
57748    setPopover,
57749    popoverAnchor,
57750    clientId
57751  }) => {
57752    const {
57753      removeBlock
57754    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
57755    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.URLPopover, {
57756      anchor: popoverAnchor,
57757      "aria-label": (0,external_wp_i18n_namespaceObject.__)('Edit social link'),
57758      onClose: () => {
57759        setPopover(false);
57760        popoverAnchor?.focus();
57761      },
57762      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
57763        className: "block-editor-url-popover__link-editor",
57764        onSubmit: event => {
57765          event.preventDefault();
57766          setPopover(false);
57767          popoverAnchor?.focus();
57768        },
57769        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
57770          className: "block-editor-url-input",
57771          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.URLInput, {
57772            value: url,
57773            onChange: nextURL => setAttributes({
57774              url: nextURL
57775            }),
57776            placeholder: (0,external_wp_i18n_namespaceObject.__)('Enter social link'),
57777            label: (0,external_wp_i18n_namespaceObject.__)('Enter social link'),
57778            hideLabelFromVision: true,
57779            disableSuggestions: true,
57780            onKeyDown: event => {
57781              if (!!url || event.defaultPrevented || ![external_wp_keycodes_namespaceObject.BACKSPACE, external_wp_keycodes_namespaceObject.DELETE].includes(event.keyCode)) {
57782                return;
57783              }
57784              removeBlock(clientId);
57785            },
57786            suffix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControlSuffixWrapper, {
57787              variant: "control",
57788              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
57789                icon: keyboard_return,
57790                label: (0,external_wp_i18n_namespaceObject.__)('Apply'),
57791                type: "submit",
57792                size: "small"
57793              })
57794            })
57795          })
57796        })
57797      })
57798    });
57799  };
57800  const SocialLinkEdit = ({
57801    attributes,
57802    context,
57803    isSelected,
57804    setAttributes,
57805    clientId
57806  }) => {
57807    const {
57808      url,
57809      service,
57810      label = '',
57811      rel
57812    } = attributes;
57813    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
57814    const {
57815      showLabels,
57816      iconColor,
57817      iconColorValue,
57818      iconBackgroundColor,
57819      iconBackgroundColorValue
57820    } = context;
57821    const [showURLPopover, setPopover] = (0,external_wp_element_namespaceObject.useState)(false);
57822    const wrapperClasses = dist_clsx('wp-social-link',
57823    // Manually adding this class for backwards compatibility of CSS when moving the
57824    // blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883
57825    'wp-block-social-link', 'wp-social-link-' + service, {
57826      'wp-social-link__is-incomplete': !url,
57827      [`has-$iconColor}-color`]: iconColor,
57828      [`has-$iconBackgroundColor}-background-color`]: iconBackgroundColor
57829    });
57830  
57831    // Use internal state instead of a ref to make sure that the component
57832    // re-renders when the popover's anchor updates.
57833    const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
57834    const isContentOnlyMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)() === 'contentOnly';
57835    const IconComponent = getIconBySite(service);
57836    const socialLinkName = getNameBySite(service);
57837    // The initial label (ie. the link text) is an empty string.
57838    // We want to prevent empty links so that the link text always fallbacks to
57839    // the social name, even when users enter and save an empty string or only
57840    // spaces. The PHP render callback fallbacks to the social name as well.
57841    const socialLinkText = label.trim() === '' ? socialLinkName : label;
57842    const ref = (0,external_wp_element_namespaceObject.useRef)();
57843    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
57844      className: 'wp-block-social-link-anchor',
57845      ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([setPopoverAnchor, ref]),
57846      onClick: () => setPopover(true),
57847      onKeyDown: event => {
57848        if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER) {
57849          event.preventDefault();
57850          setPopover(true);
57851        }
57852      }
57853    });
57854    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
57855      children: [isContentOnlyMode && showLabels &&
57856      /*#__PURE__*/
57857      // Add an extra control to modify the label attribute when content only mode is active.
57858      // With content only mode active, the inspector is hidden, so users need another way
57859      // to edit this attribute.
57860      (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
57861        group: "other",
57862        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
57863          popoverProps: {
57864            position: 'bottom right'
57865          },
57866          renderToggle: ({
57867            isOpen,
57868            onToggle
57869          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
57870            onClick: onToggle,
57871            "aria-haspopup": "true",
57872            "aria-expanded": isOpen,
57873            children: (0,external_wp_i18n_namespaceObject.__)('Text')
57874          }),
57875          renderContent: () => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
57876            __next40pxDefaultSize: true,
57877            __nextHasNoMarginBottom: true,
57878            className: "wp-block-social-link__toolbar_content_text",
57879            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
57880            help: (0,external_wp_i18n_namespaceObject.__)('Provide a text label or use the default.'),
57881            value: label,
57882            onChange: value => setAttributes({
57883              label: value
57884            }),
57885            placeholder: socialLinkName
57886          })
57887        })
57888      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
57889        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
57890          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
57891          resetAll: () => {
57892            setAttributes({
57893              label: undefined
57894            });
57895          },
57896          dropdownMenuProps: dropdownMenuProps,
57897          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
57898            isShownByDefault: true,
57899            label: (0,external_wp_i18n_namespaceObject.__)('Text'),
57900            hasValue: () => !!label,
57901            onDeselect: () => {
57902              setAttributes({
57903                label: undefined
57904              });
57905            },
57906            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
57907              __next40pxDefaultSize: true,
57908              __nextHasNoMarginBottom: true,
57909              label: (0,external_wp_i18n_namespaceObject.__)('Text'),
57910              help: (0,external_wp_i18n_namespaceObject.__)('The text is visible when enabled from the parent Social Icons block.'),
57911              value: label,
57912              onChange: value => setAttributes({
57913                label: value
57914              }),
57915              placeholder: socialLinkName
57916            })
57917          })
57918        })
57919      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
57920        group: "advanced",
57921        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
57922          __next40pxDefaultSize: true,
57923          __nextHasNoMarginBottom: true,
57924          label: (0,external_wp_i18n_namespaceObject.__)('Link rel'),
57925          value: rel || '',
57926          onChange: value => setAttributes({
57927            rel: value
57928          })
57929        })
57930      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
57931        role: "presentation",
57932        className: wrapperClasses,
57933        style: {
57934          color: iconColorValue,
57935          backgroundColor: iconBackgroundColorValue
57936        },
57937        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("button", {
57938          "aria-haspopup": "dialog",
57939          ...blockProps,
57940          role: "button",
57941          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(IconComponent, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
57942            className: dist_clsx('wp-block-social-link-label', {
57943              'screen-reader-text': !showLabels
57944            }),
57945            children: socialLinkText
57946          })]
57947        }), isSelected && showURLPopover && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SocialLinkURLPopover, {
57948          url: url,
57949          setAttributes: setAttributes,
57950          setPopover: setPopover,
57951          popoverAnchor: popoverAnchor,
57952          clientId: clientId
57953        })]
57954      })]
57955    });
57956  };
57957  /* harmony default export */ const social_link_edit = (SocialLinkEdit);
57958  
57959  ;// ./node_modules/@wordpress/block-library/build-module/social-link/index.js
57960  /**
57961   * WordPress dependencies
57962   */
57963  
57964  
57965  /**
57966   * Internal dependencies
57967   */
57968  
57969  
57970  const social_link_metadata = {
57971    $schema: "https://schemas.wp.org/trunk/block.json",
57972    apiVersion: 3,
57973    name: "core/social-link",
57974    title: "Social Icon",
57975    category: "widgets",
57976    parent: ["core/social-links"],
57977    description: "Display an icon linking to a social profile or site.",
57978    textdomain: "default",
57979    attributes: {
57980      url: {
57981        type: "string",
57982        role: "content"
57983      },
57984      service: {
57985        type: "string"
57986      },
57987      label: {
57988        type: "string",
57989        role: "content"
57990      },
57991      rel: {
57992        type: "string"
57993      }
57994    },
57995    usesContext: ["openInNewTab", "showLabels", "iconColor", "iconColorValue", "iconBackgroundColor", "iconBackgroundColorValue"],
57996    supports: {
57997      reusable: false,
57998      html: false,
57999      interactivity: {
58000        clientNavigation: true
58001      }
58002    },
58003    editorStyle: "wp-block-social-link-editor"
58004  };
58005  
58006  const {
58007    name: social_link_name
58008  } = social_link_metadata;
58009  
58010  const social_link_settings = {
58011    icon: library_share,
58012    edit: social_link_edit,
58013    variations: social_link_variations
58014  };
58015  const social_link_init = () => initBlock({
58016    name: social_link_name,
58017    metadata: social_link_metadata,
58018    settings: social_link_settings
58019  });
58020  
58021  ;// ./node_modules/@wordpress/block-library/build-module/social-links/deprecated.js
58022  /**
58023   * External dependencies
58024   */
58025  
58026  
58027  /**
58028   * WordPress dependencies
58029   */
58030  
58031  
58032  /**
58033   * The specific handling by `className` below is needed because `itemsJustification`
58034   * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't
58035   * declared in block.json.
58036   *
58037   * @param {Object} attributes Block's attributes.
58038   */
58039  
58040  const social_links_deprecated_migrateWithLayout = attributes => {
58041    if (!!attributes.layout) {
58042      return attributes;
58043    }
58044    const {
58045      className
58046    } = attributes;
58047    // Matches classes with `items-justified-` prefix.
58048    const prefix = `items-justified-`;
58049    const justifiedItemsRegex = new RegExp(`\\b$prefix}[^ ]*[ ]?\\b`, 'g');
58050    const newAttributes = {
58051      ...attributes,
58052      className: className?.replace(justifiedItemsRegex, '').trim()
58053    };
58054    /**
58055     * Add `layout` prop only if `justifyContent` is defined, for backwards
58056     * compatibility. In other cases the block's default layout will be used.
58057     * Also noting that due to the missing attribute, it's possible for a block
58058     * to have more than one of `justified` classes.
58059     */
58060    const justifyContent = className?.match(justifiedItemsRegex)?.[0]?.trim();
58061    if (justifyContent) {
58062      Object.assign(newAttributes, {
58063        layout: {
58064          type: 'flex',
58065          justifyContent: justifyContent.slice(prefix.length)
58066        }
58067      });
58068    }
58069    return newAttributes;
58070  };
58071  
58072  // Social Links block deprecations.
58073  const social_links_deprecated_deprecated = [
58074  // V1. Remove CSS variable use for colors.
58075  {
58076    attributes: {
58077      iconColor: {
58078        type: 'string'
58079      },
58080      customIconColor: {
58081        type: 'string'
58082      },
58083      iconColorValue: {
58084        type: 'string'
58085      },
58086      iconBackgroundColor: {
58087        type: 'string'
58088      },
58089      customIconBackgroundColor: {
58090        type: 'string'
58091      },
58092      iconBackgroundColorValue: {
58093        type: 'string'
58094      },
58095      openInNewTab: {
58096        type: 'boolean',
58097        default: false
58098      },
58099      size: {
58100        type: 'string'
58101      }
58102    },
58103    providesContext: {
58104      openInNewTab: 'openInNewTab'
58105    },
58106    supports: {
58107      align: ['left', 'center', 'right'],
58108      anchor: true
58109    },
58110    migrate: social_links_deprecated_migrateWithLayout,
58111    save: props => {
58112      const {
58113        attributes: {
58114          iconBackgroundColorValue,
58115          iconColorValue,
58116          itemsJustification,
58117          size
58118        }
58119      } = props;
58120      const className = dist_clsx(size, {
58121        'has-icon-color': iconColorValue,
58122        'has-icon-background-color': iconBackgroundColorValue,
58123        [`items-justified-$itemsJustification}`]: itemsJustification
58124      });
58125      const style = {
58126        '--wp--social-links--icon-color': iconColorValue,
58127        '--wp--social-links--icon-background-color': iconBackgroundColorValue
58128      };
58129      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
58130        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
58131          className,
58132          style
58133        }),
58134        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InnerBlocks.Content, {})
58135      });
58136    }
58137  }];
58138  /* harmony default export */ const social_links_deprecated = (social_links_deprecated_deprecated);
58139  
58140  ;// ./node_modules/@wordpress/icons/build-module/library/check.js
58141  /**
58142   * WordPress dependencies
58143   */
58144  
58145  
58146  const check = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58147    xmlns: "http://www.w3.org/2000/svg",
58148    viewBox: "0 0 24 24",
58149    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58150      d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
58151    })
58152  });
58153  /* harmony default export */ const library_check = (check);
58154  
58155  ;// ./node_modules/@wordpress/block-library/build-module/social-links/edit.js
58156  /**
58157   * External dependencies
58158   */
58159  
58160  
58161  /**
58162   * WordPress dependencies
58163   */
58164  
58165  
58166  
58167  
58168  
58169  
58170  
58171  /**
58172   * Internal dependencies
58173   */
58174  
58175  
58176  const sizeOptions = [{
58177    name: (0,external_wp_i18n_namespaceObject.__)('Small'),
58178    value: 'has-small-icon-size'
58179  }, {
58180    name: (0,external_wp_i18n_namespaceObject.__)('Normal'),
58181    value: 'has-normal-icon-size'
58182  }, {
58183    name: (0,external_wp_i18n_namespaceObject.__)('Large'),
58184    value: 'has-large-icon-size'
58185  }, {
58186    name: (0,external_wp_i18n_namespaceObject.__)('Huge'),
58187    value: 'has-huge-icon-size'
58188  }];
58189  function SocialLinksEdit(props) {
58190    var _attributes$layout$or;
58191    const {
58192      clientId,
58193      attributes,
58194      iconBackgroundColor,
58195      iconColor,
58196      isSelected,
58197      setAttributes,
58198      setIconBackgroundColor,
58199      setIconColor
58200    } = props;
58201    const {
58202      iconBackgroundColorValue,
58203      customIconBackgroundColor,
58204      iconColorValue,
58205      openInNewTab,
58206      showLabels,
58207      size
58208    } = attributes;
58209    const hasSelectedChild = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).hasSelectedInnerBlock(clientId), [clientId]);
58210    const hasAnySelected = isSelected || hasSelectedChild;
58211    const logosOnly = attributes.className?.includes('is-style-logos-only');
58212    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
58213  
58214    // Remove icon background color when logos only style is selected or
58215    // restore it when any other style is selected.
58216    const backgroundBackupRef = (0,external_wp_element_namespaceObject.useRef)({});
58217    (0,external_wp_element_namespaceObject.useEffect)(() => {
58218      if (logosOnly) {
58219        backgroundBackupRef.current = {
58220          iconBackgroundColor,
58221          iconBackgroundColorValue,
58222          customIconBackgroundColor
58223        };
58224        setAttributes({
58225          iconBackgroundColor: undefined,
58226          customIconBackgroundColor: undefined,
58227          iconBackgroundColorValue: undefined
58228        });
58229      } else {
58230        setAttributes({
58231          ...backgroundBackupRef.current
58232        });
58233      }
58234    }, [logosOnly]);
58235    const SocialPlaceholder = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
58236      className: "wp-block-social-links__social-placeholder",
58237      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
58238        className: "wp-block-social-links__social-placeholder-icons",
58239        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58240          className: "wp-social-link wp-social-link-twitter"
58241        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58242          className: "wp-social-link wp-social-link-facebook"
58243        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58244          className: "wp-social-link wp-social-link-instagram"
58245        })]
58246      })
58247    });
58248  
58249    // Fallback color values are used maintain selections in case switching
58250    // themes and named colors in palette do not match.
58251    const className = dist_clsx(size, {
58252      'has-visible-labels': showLabels,
58253      'has-icon-color': iconColor.color || iconColorValue,
58254      'has-icon-background-color': iconBackgroundColor.color || iconBackgroundColorValue
58255    });
58256    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
58257      className
58258    });
58259    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
58260      placeholder: !isSelected && SocialPlaceholder,
58261      templateLock: false,
58262      orientation: (_attributes$layout$or = attributes.layout?.orientation) !== null && _attributes$layout$or !== void 0 ? _attributes$layout$or : 'horizontal',
58263      __experimentalAppenderTagName: 'li',
58264      renderAppender: hasAnySelected && external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender
58265    });
58266    const POPOVER_PROPS = {
58267      position: 'bottom right'
58268    };
58269    const colorSettings = [{
58270      // Use custom attribute as fallback to prevent loss of named color selection when
58271      // switching themes to a new theme that does not have a matching named color.
58272      value: iconColor.color || iconColorValue,
58273      onChange: colorValue => {
58274        setIconColor(colorValue);
58275        setAttributes({
58276          iconColorValue: colorValue
58277        });
58278      },
58279      label: (0,external_wp_i18n_namespaceObject.__)('Icon color'),
58280      resetAllFilter: () => {
58281        setIconColor(undefined);
58282        setAttributes({
58283          iconColorValue: undefined
58284        });
58285      }
58286    }];
58287    if (!logosOnly) {
58288      colorSettings.push({
58289        // Use custom attribute as fallback to prevent loss of named color selection when
58290        // switching themes to a new theme that does not have a matching named color.
58291        value: iconBackgroundColor.color || iconBackgroundColorValue,
58292        onChange: colorValue => {
58293          setIconBackgroundColor(colorValue);
58294          setAttributes({
58295            iconBackgroundColorValue: colorValue
58296          });
58297        },
58298        label: (0,external_wp_i18n_namespaceObject.__)('Icon background'),
58299        resetAllFilter: () => {
58300          setIconBackgroundColor(undefined);
58301          setAttributes({
58302            iconBackgroundColorValue: undefined
58303          });
58304        }
58305      });
58306    }
58307    const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
58308    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58309      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
58310        group: "other",
58311        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
58312          label: (0,external_wp_i18n_namespaceObject.__)('Size'),
58313          text: (0,external_wp_i18n_namespaceObject.__)('Size'),
58314          icon: null,
58315          popoverProps: POPOVER_PROPS,
58316          children: ({
58317            onClose
58318          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
58319            children: sizeOptions.map(entry => {
58320              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
58321                icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && library_check,
58322                isSelected: size === entry.value,
58323                onClick: () => {
58324                  setAttributes({
58325                    size: entry.value
58326                  });
58327                },
58328                onClose: onClose,
58329                role: "menuitemradio",
58330                children: entry.name
58331              }, entry.value);
58332            })
58333          })
58334        })
58335      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58336        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
58337          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
58338          resetAll: () => {
58339            setAttributes({
58340              openInNewTab: false,
58341              showLabels: false
58342            });
58343          },
58344          dropdownMenuProps: dropdownMenuProps,
58345          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58346            isShownByDefault: true,
58347            label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
58348            hasValue: () => !!openInNewTab,
58349            onDeselect: () => setAttributes({
58350              openInNewTab: false
58351            }),
58352            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58353              __nextHasNoMarginBottom: true,
58354              label: (0,external_wp_i18n_namespaceObject.__)('Open links in new tab'),
58355              checked: openInNewTab,
58356              onChange: () => setAttributes({
58357                openInNewTab: !openInNewTab
58358              })
58359            })
58360          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58361            isShownByDefault: true,
58362            label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
58363            hasValue: () => !!showLabels,
58364            onDeselect: () => setAttributes({
58365              showLabels: false
58366            }),
58367            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
58368              __nextHasNoMarginBottom: true,
58369              label: (0,external_wp_i18n_namespaceObject.__)('Show text'),
58370              checked: showLabels,
58371              onChange: () => setAttributes({
58372                showLabels: !showLabels
58373              })
58374            })
58375          })]
58376        })
58377      }), colorGradientSettings.hasColorsOrGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58378        group: "color",
58379        children: [colorSettings.map(({
58380          onChange,
58381          label,
58382          value,
58383          resetAllFilter
58384        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalColorGradientSettingsDropdown, {
58385          __experimentalIsRenderedInSidebar: true,
58386          settings: [{
58387            colorValue: value,
58388            label,
58389            onColorChange: onChange,
58390            isShownByDefault: true,
58391            resetAllFilter,
58392            enableAlpha: true,
58393            clearable: true
58394          }],
58395          panelId: clientId,
58396          ...colorGradientSettings
58397        }, `social-links-color-$label}`)), !logosOnly && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.ContrastChecker, {
58398          textColor: iconColorValue,
58399          backgroundColor: iconBackgroundColorValue,
58400          isLargeText: false
58401        })]
58402      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
58403        ...innerBlocksProps
58404      })]
58405    });
58406  }
58407  const iconColorAttributes = {
58408    iconColor: 'icon-color',
58409    iconBackgroundColor: 'icon-background-color'
58410  };
58411  /* harmony default export */ const social_links_edit = ((0,external_wp_blockEditor_namespaceObject.withColors)(iconColorAttributes)(SocialLinksEdit));
58412  
58413  ;// ./node_modules/@wordpress/block-library/build-module/social-links/save.js
58414  /**
58415   * External dependencies
58416   */
58417  
58418  
58419  /**
58420   * WordPress dependencies
58421   */
58422  
58423  
58424  function social_links_save_save(props) {
58425    const {
58426      attributes: {
58427        iconBackgroundColorValue,
58428        iconColorValue,
58429        showLabels,
58430        size
58431      }
58432    } = props;
58433    const className = dist_clsx(size, {
58434      'has-visible-labels': showLabels,
58435      'has-icon-color': iconColorValue,
58436      'has-icon-background-color': iconBackgroundColorValue
58437    });
58438    const blockProps = external_wp_blockEditor_namespaceObject.useBlockProps.save({
58439      className
58440    });
58441    const innerBlocksProps = external_wp_blockEditor_namespaceObject.useInnerBlocksProps.save(blockProps);
58442    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
58443      ...innerBlocksProps
58444    });
58445  }
58446  
58447  ;// ./node_modules/@wordpress/block-library/build-module/social-links/index.js
58448  /**
58449   * WordPress dependencies
58450   */
58451  
58452  
58453  /**
58454   * Internal dependencies
58455   */
58456  
58457  
58458  
58459  const social_links_metadata = {
58460    $schema: "https://schemas.wp.org/trunk/block.json",
58461    apiVersion: 3,
58462    name: "core/social-links",
58463    title: "Social Icons",
58464    category: "widgets",
58465    allowedBlocks: ["core/social-link"],
58466    description: "Display icons linking to your social profiles or sites.",
58467    keywords: ["links"],
58468    textdomain: "default",
58469    attributes: {
58470      iconColor: {
58471        type: "string"
58472      },
58473      customIconColor: {
58474        type: "string"
58475      },
58476      iconColorValue: {
58477        type: "string"
58478      },
58479      iconBackgroundColor: {
58480        type: "string"
58481      },
58482      customIconBackgroundColor: {
58483        type: "string"
58484      },
58485      iconBackgroundColorValue: {
58486        type: "string"
58487      },
58488      openInNewTab: {
58489        type: "boolean",
58490        "default": false
58491      },
58492      showLabels: {
58493        type: "boolean",
58494        "default": false
58495      },
58496      size: {
58497        type: "string"
58498      }
58499    },
58500    providesContext: {
58501      openInNewTab: "openInNewTab",
58502      showLabels: "showLabels",
58503      iconColor: "iconColor",
58504      iconColorValue: "iconColorValue",
58505      iconBackgroundColor: "iconBackgroundColor",
58506      iconBackgroundColorValue: "iconBackgroundColorValue"
58507    },
58508    supports: {
58509      align: ["left", "center", "right"],
58510      anchor: true,
58511      __experimentalExposeControlsToChildren: true,
58512      layout: {
58513        allowSwitching: false,
58514        allowInheriting: false,
58515        allowVerticalAlignment: false,
58516        "default": {
58517          type: "flex"
58518        }
58519      },
58520      color: {
58521        enableContrastChecker: false,
58522        background: true,
58523        gradients: true,
58524        text: false,
58525        __experimentalDefaultControls: {
58526          background: false
58527        }
58528      },
58529      spacing: {
58530        blockGap: ["horizontal", "vertical"],
58531        margin: true,
58532        padding: true,
58533        units: ["px", "em", "rem", "vh", "vw"],
58534        __experimentalDefaultControls: {
58535          blockGap: true,
58536          margin: true,
58537          padding: false
58538        }
58539      },
58540      interactivity: {
58541        clientNavigation: true
58542      },
58543      __experimentalBorder: {
58544        radius: true,
58545        color: true,
58546        width: true,
58547        style: true,
58548        __experimentalDefaultControls: {
58549          radius: true,
58550          color: true,
58551          width: true,
58552          style: true
58553        }
58554      }
58555    },
58556    styles: [{
58557      name: "default",
58558      label: "Default",
58559      isDefault: true
58560    }, {
58561      name: "logos-only",
58562      label: "Logos Only"
58563    }, {
58564      name: "pill-shape",
58565      label: "Pill Shape"
58566    }],
58567    editorStyle: "wp-block-social-links-editor",
58568    style: "wp-block-social-links"
58569  };
58570  
58571  const {
58572    name: social_links_name
58573  } = social_links_metadata;
58574  
58575  const social_links_settings = {
58576    example: {
58577      innerBlocks: [{
58578        name: 'core/social-link',
58579        attributes: {
58580          service: 'wordpress',
58581          url: 'https://wordpress.org'
58582        }
58583      }, {
58584        name: 'core/social-link',
58585        attributes: {
58586          service: 'facebook',
58587          url: 'https://www.facebook.com/WordPress/'
58588        }
58589      }, {
58590        name: 'core/social-link',
58591        attributes: {
58592          service: 'twitter',
58593          url: 'https://twitter.com/WordPress'
58594        }
58595      }]
58596    },
58597    icon: library_share,
58598    edit: social_links_edit,
58599    save: social_links_save_save,
58600    deprecated: social_links_deprecated
58601  };
58602  const social_links_init = () => initBlock({
58603    name: social_links_name,
58604    metadata: social_links_metadata,
58605    settings: social_links_settings
58606  });
58607  
58608  ;// ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js
58609  /**
58610   * WordPress dependencies
58611   */
58612  
58613  
58614  const resizeCornerNE = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
58615    viewBox: "0 0 24 24",
58616    xmlns: "http://www.w3.org/2000/svg",
58617    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
58618      d: "M7 18h4.5v1.5h-7v-7H6V17L17 6h-4.5V4.5h7v7H18V7L7 18Z"
58619    })
58620  });
58621  /* harmony default export */ const resize_corner_n_e = (resizeCornerNE);
58622  
58623  ;// ./node_modules/@wordpress/block-library/build-module/spacer/deprecated.js
58624  /**
58625   * WordPress dependencies
58626   */
58627  
58628  
58629  const spacer_deprecated_deprecated = [{
58630    attributes: {
58631      height: {
58632        type: 'number',
58633        default: 100
58634      },
58635      width: {
58636        type: 'number'
58637      }
58638    },
58639    migrate(attributes) {
58640      const {
58641        height,
58642        width
58643      } = attributes;
58644      return {
58645        ...attributes,
58646        width: width !== undefined ? `$width}px` : undefined,
58647        height: height !== undefined ? `$height}px` : undefined
58648      };
58649    },
58650    save({
58651      attributes
58652    }) {
58653      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
58654        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
58655          style: {
58656            height: attributes.height,
58657            width: attributes.width
58658          },
58659          'aria-hidden': true
58660        })
58661      });
58662    }
58663  }];
58664  /* harmony default export */ const spacer_deprecated = (spacer_deprecated_deprecated);
58665  
58666  ;// ./node_modules/@wordpress/block-library/build-module/spacer/constants.js
58667  const MIN_SPACER_SIZE = 0;
58668  
58669  ;// ./node_modules/@wordpress/block-library/build-module/spacer/controls.js
58670  /**
58671   * WordPress dependencies
58672   */
58673  
58674  
58675  
58676  
58677  
58678  
58679  /**
58680   * Internal dependencies
58681   */
58682  
58683  
58684  
58685  
58686  const {
58687    useSpacingSizes
58688  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
58689  function DimensionInput({
58690    label,
58691    onChange,
58692    isResizing,
58693    value = ''
58694  }) {
58695    const inputId = (0,external_wp_compose_namespaceObject.useInstanceId)(external_wp_components_namespaceObject.__experimentalUnitControl, 'block-spacer-height-input');
58696    const spacingSizes = useSpacingSizes();
58697    const [spacingUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
58698    // In most contexts the spacer size cannot meaningfully be set to a
58699    // percentage, since this is relative to the parent container. This
58700    // unit is disabled from the UI.
58701    const availableUnits = spacingUnits ? spacingUnits.filter(unit => unit !== '%') : ['px', 'em', 'rem', 'vw', 'vh'];
58702    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
58703      availableUnits,
58704      defaultValues: {
58705        px: 100,
58706        em: 10,
58707        rem: 10,
58708        vw: 10,
58709        vh: 25
58710      }
58711    });
58712  
58713    // Force the unit to update to `px` when the Spacer is being resized.
58714    const [parsedQuantity, parsedUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(value);
58715    const computedValue = (0,external_wp_blockEditor_namespaceObject.isValueSpacingPreset)(value) ? value : [parsedQuantity, isResizing ? 'px' : parsedUnit].join('');
58716    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
58717      children: spacingSizes?.length < 2 ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
58718        id: inputId,
58719        isResetValueOnUnitChange: true,
58720        min: MIN_SPACER_SIZE,
58721        onChange: onChange,
58722        value: computedValue,
58723        units: units,
58724        label: label,
58725        __next40pxDefaultSize: true
58726      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
58727        className: "tools-panel-item-spacing",
58728        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalSpacingSizesControl, {
58729          values: {
58730            all: computedValue
58731          },
58732          onChange: ({
58733            all
58734          }) => {
58735            onChange(all);
58736          },
58737          label: label,
58738          sides: ['all'],
58739          units: units,
58740          allowReset: false,
58741          splitOnAxis: false,
58742          showSideInLabel: false
58743        })
58744      })
58745    });
58746  }
58747  function SpacerControls({
58748    setAttributes,
58749    orientation,
58750    height,
58751    width,
58752    isResizing
58753  }) {
58754    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
58755    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
58756      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
58757        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
58758        resetAll: () => {
58759          setAttributes({
58760            width: undefined,
58761            height: '100px'
58762          });
58763        },
58764        dropdownMenuProps: dropdownMenuProps,
58765        children: [orientation === 'horizontal' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58766          label: (0,external_wp_i18n_namespaceObject.__)('Width'),
58767          isShownByDefault: true,
58768          hasValue: () => width !== undefined,
58769          onDeselect: () => setAttributes({
58770            width: undefined
58771          }),
58772          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionInput, {
58773            label: (0,external_wp_i18n_namespaceObject.__)('Width'),
58774            value: width,
58775            onChange: nextWidth => setAttributes({
58776              width: nextWidth
58777            }),
58778            isResizing: isResizing
58779          })
58780        }), orientation !== 'horizontal' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
58781          label: (0,external_wp_i18n_namespaceObject.__)('Height'),
58782          isShownByDefault: true,
58783          hasValue: () => height !== '100px',
58784          onDeselect: () => setAttributes({
58785            height: '100px'
58786          }),
58787          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DimensionInput, {
58788            label: (0,external_wp_i18n_namespaceObject.__)('Height'),
58789            value: height,
58790            onChange: nextHeight => setAttributes({
58791              height: nextHeight
58792            }),
58793            isResizing: isResizing
58794          })
58795        })]
58796      })
58797    });
58798  }
58799  
58800  ;// ./node_modules/@wordpress/block-library/build-module/spacer/edit.js
58801  /**
58802   * External dependencies
58803   */
58804  
58805  
58806  /**
58807   * WordPress dependencies
58808   */
58809  
58810  
58811  
58812  
58813  
58814  
58815  /**
58816   * Internal dependencies
58817   */
58818  
58819  
58820  
58821  
58822  const {
58823    useSpacingSizes: edit_useSpacingSizes
58824  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
58825  const ResizableSpacer = ({
58826    orientation,
58827    onResizeStart,
58828    onResize,
58829    onResizeStop,
58830    isSelected,
58831    isResizing,
58832    setIsResizing,
58833    ...props
58834  }) => {
58835    const getCurrentSize = elt => {
58836      return orientation === 'horizontal' ? elt.clientWidth : elt.clientHeight;
58837    };
58838    const getNextVal = elt => {
58839      return `$getCurrentSize(elt)}px`;
58840    };
58841    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
58842      className: dist_clsx('block-library-spacer__resize-container', {
58843        'resize-horizontal': orientation === 'horizontal',
58844        'is-resizing': isResizing,
58845        'is-selected': isSelected
58846      }),
58847      onResizeStart: (_event, _direction, elt) => {
58848        const nextVal = getNextVal(elt);
58849        onResizeStart(nextVal);
58850        onResize(nextVal);
58851      },
58852      onResize: (_event, _direction, elt) => {
58853        onResize(getNextVal(elt));
58854        if (!isResizing) {
58855          setIsResizing(true);
58856        }
58857      },
58858      onResizeStop: (_event, _direction, elt) => {
58859        const nextVal = getCurrentSize(elt);
58860        onResizeStop(`$nextVal}px`);
58861        setIsResizing(false);
58862      },
58863      __experimentalShowTooltip: true,
58864      __experimentalTooltipProps: {
58865        axis: orientation === 'horizontal' ? 'x' : 'y',
58866        position: 'corner',
58867        isVisible: isResizing
58868      },
58869      showHandle: isSelected,
58870      ...props
58871    });
58872  };
58873  const SpacerEdit = ({
58874    attributes,
58875    isSelected,
58876    setAttributes,
58877    toggleSelection,
58878    context,
58879    __unstableParentLayout: parentLayout,
58880    className
58881  }) => {
58882    const disableCustomSpacingSizes = (0,external_wp_data_namespaceObject.useSelect)(select => {
58883      const editorSettings = select(external_wp_blockEditor_namespaceObject.store).getSettings();
58884      return editorSettings?.disableCustomSpacingSizes;
58885    });
58886    const {
58887      orientation
58888    } = context;
58889    const {
58890      orientation: parentOrientation,
58891      type,
58892      default: {
58893        type: defaultType
58894      } = {}
58895    } = parentLayout || {};
58896    // Check if the spacer is inside a flex container.
58897    const isFlexLayout = type === 'flex' || !type && defaultType === 'flex';
58898    // If the spacer is inside a flex container, it should either inherit the orientation
58899    // of the parent or use the flex default orientation.
58900    const inheritedOrientation = !parentOrientation && isFlexLayout ? 'horizontal' : parentOrientation || orientation;
58901    const {
58902      height,
58903      width,
58904      style: blockStyle = {}
58905    } = attributes;
58906    const {
58907      layout = {}
58908    } = blockStyle;
58909    const {
58910      selfStretch,
58911      flexSize
58912    } = layout;
58913    const spacingSizes = edit_useSpacingSizes();
58914    const [isResizing, setIsResizing] = (0,external_wp_element_namespaceObject.useState)(false);
58915    const [temporaryHeight, setTemporaryHeight] = (0,external_wp_element_namespaceObject.useState)(null);
58916    const [temporaryWidth, setTemporaryWidth] = (0,external_wp_element_namespaceObject.useState)(null);
58917    const onResizeStart = () => toggleSelection(false);
58918    const onResizeStop = () => toggleSelection(true);
58919    const {
58920      __unstableMarkNextChangeAsNotPersistent
58921    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
58922    const handleOnVerticalResizeStop = newHeight => {
58923      onResizeStop();
58924      if (isFlexLayout) {
58925        setAttributes({
58926          style: {
58927            ...blockStyle,
58928            layout: {
58929              ...layout,
58930              flexSize: newHeight,
58931              selfStretch: 'fixed'
58932            }
58933          }
58934        });
58935      }
58936      setAttributes({
58937        height: newHeight
58938      });
58939      setTemporaryHeight(null);
58940    };
58941    const handleOnHorizontalResizeStop = newWidth => {
58942      onResizeStop();
58943      if (isFlexLayout) {
58944        setAttributes({
58945          style: {
58946            ...blockStyle,
58947            layout: {
58948              ...layout,
58949              flexSize: newWidth,
58950              selfStretch: 'fixed'
58951            }
58952          }
58953        });
58954      }
58955      setAttributes({
58956        width: newWidth
58957      });
58958      setTemporaryWidth(null);
58959    };
58960    const getHeightForVerticalBlocks = () => {
58961      if (isFlexLayout) {
58962        return undefined;
58963      }
58964      return temporaryHeight || (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(height) || undefined;
58965    };
58966    const getWidthForHorizontalBlocks = () => {
58967      if (isFlexLayout) {
58968        return undefined;
58969      }
58970      return temporaryWidth || (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(width) || undefined;
58971    };
58972    const sizeConditionalOnOrientation = inheritedOrientation === 'horizontal' ? temporaryWidth || flexSize : temporaryHeight || flexSize;
58973    const style = {
58974      height: inheritedOrientation === 'horizontal' ? 24 : getHeightForVerticalBlocks(),
58975      width: inheritedOrientation === 'horizontal' ? getWidthForHorizontalBlocks() : undefined,
58976      // In vertical flex containers, the spacer shrinks to nothing without a minimum width.
58977      minWidth: inheritedOrientation === 'vertical' && isFlexLayout ? 48 : undefined,
58978      // Add flex-basis so temporary sizes are respected.
58979      flexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,
58980      // Remove flex-grow when resizing.
58981      flexGrow: isFlexLayout && isResizing ? 0 : undefined
58982    };
58983    const resizableBoxWithOrientation = blockOrientation => {
58984      if (blockOrientation === 'horizontal') {
58985        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableSpacer, {
58986          minWidth: MIN_SPACER_SIZE,
58987          enable: {
58988            top: false,
58989            right: true,
58990            bottom: false,
58991            left: false,
58992            topRight: false,
58993            bottomRight: false,
58994            bottomLeft: false,
58995            topLeft: false
58996          },
58997          orientation: blockOrientation,
58998          onResizeStart: onResizeStart,
58999          onResize: setTemporaryWidth,
59000          onResizeStop: handleOnHorizontalResizeStop,
59001          isSelected: isSelected,
59002          isResizing: isResizing,
59003          setIsResizing: setIsResizing
59004        });
59005      }
59006      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
59007        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizableSpacer, {
59008          minHeight: MIN_SPACER_SIZE,
59009          enable: {
59010            top: false,
59011            right: false,
59012            bottom: true,
59013            left: false,
59014            topRight: false,
59015            bottomRight: false,
59016            bottomLeft: false,
59017            topLeft: false
59018          },
59019          orientation: blockOrientation,
59020          onResizeStart: onResizeStart,
59021          onResize: setTemporaryHeight,
59022          onResizeStop: handleOnVerticalResizeStop,
59023          isSelected: isSelected,
59024          isResizing: isResizing,
59025          setIsResizing: setIsResizing
59026        })
59027      });
59028    };
59029    (0,external_wp_element_namespaceObject.useEffect)(() => {
59030      // To avoid interfering with undo/redo operations any changes in this
59031      // effect must not make history and should be preceded by
59032      // `__unstableMarkNextChangeAsNotPersistent()`.
59033      const setAttributesCovertly = nextAttributes => {
59034        __unstableMarkNextChangeAsNotPersistent();
59035        setAttributes(nextAttributes);
59036      };
59037      if (isFlexLayout && selfStretch !== 'fill' && selfStretch !== 'fit' && flexSize === undefined) {
59038        if (inheritedOrientation === 'horizontal') {
59039          // If spacer is moving from a vertical container to a horizontal container,
59040          // it might not have width but have height instead.
59041          const newSize = (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(width, spacingSizes) || (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(height, spacingSizes) || '100px';
59042          setAttributesCovertly({
59043            width: '0px',
59044            style: {
59045              ...blockStyle,
59046              layout: {
59047                ...layout,
59048                flexSize: newSize,
59049                selfStretch: 'fixed'
59050              }
59051            }
59052          });
59053        } else {
59054          const newSize = (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(height, spacingSizes) || (0,external_wp_blockEditor_namespaceObject.getCustomValueFromPreset)(width, spacingSizes) || '100px';
59055          setAttributesCovertly({
59056            height: '0px',
59057            style: {
59058              ...blockStyle,
59059              layout: {
59060                ...layout,
59061                flexSize: newSize,
59062                selfStretch: 'fixed'
59063              }
59064            }
59065          });
59066        }
59067      } else if (isFlexLayout && (selfStretch === 'fill' || selfStretch === 'fit')) {
59068        setAttributesCovertly(inheritedOrientation === 'horizontal' ? {
59069          width: undefined
59070        } : {
59071          height: undefined
59072        });
59073      } else if (!isFlexLayout && (selfStretch || flexSize)) {
59074        setAttributesCovertly({
59075          ...(inheritedOrientation === 'horizontal' ? {
59076            width: flexSize
59077          } : {
59078            height: flexSize
59079          }),
59080          style: {
59081            ...blockStyle,
59082            layout: {
59083              ...layout,
59084              flexSize: undefined,
59085              selfStretch: undefined
59086            }
59087          }
59088        });
59089      }
59090    }, [blockStyle, flexSize, height, inheritedOrientation, isFlexLayout, layout, selfStretch, setAttributes, spacingSizes, width, __unstableMarkNextChangeAsNotPersistent]);
59091    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
59092      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.View, {
59093        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
59094          style,
59095          className: dist_clsx(className, {
59096            'custom-sizes-disabled': disableCustomSpacingSizes
59097          })
59098        }),
59099        children: resizableBoxWithOrientation(inheritedOrientation)
59100      }), !isFlexLayout && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SpacerControls, {
59101        setAttributes: setAttributes,
59102        height: temporaryHeight || height,
59103        width: temporaryWidth || width,
59104        orientation: inheritedOrientation,
59105        isResizing: isResizing
59106      })]
59107    });
59108  };
59109  /* harmony default export */ const spacer_edit = (SpacerEdit);
59110  
59111  ;// ./node_modules/@wordpress/block-library/build-module/spacer/transforms.js
59112  /**
59113   * WordPress dependencies
59114   */
59115  
59116  const spacer_transforms_transforms = {
59117    to: [{
59118      type: 'block',
59119      blocks: ['core/separator'],
59120      // Transform to Separator.
59121      transform: ({
59122        anchor
59123      }) => {
59124        return (0,external_wp_blocks_namespaceObject.createBlock)('core/separator', {
59125          anchor: anchor || ''
59126        });
59127      }
59128    }]
59129  };
59130  /* harmony default export */ const spacer_transforms = (spacer_transforms_transforms);
59131  
59132  ;// ./node_modules/@wordpress/block-library/build-module/spacer/save.js
59133  /**
59134   * WordPress dependencies
59135   */
59136  
59137  
59138  function spacer_save_save({
59139    attributes
59140  }) {
59141    const {
59142      height,
59143      width,
59144      style
59145    } = attributes;
59146    const {
59147      layout: {
59148        selfStretch
59149      } = {}
59150    } = style || {};
59151    // If selfStretch is set to 'fill' or 'fit', don't set default height.
59152    const finalHeight = selfStretch === 'fill' || selfStretch === 'fit' ? undefined : height;
59153    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
59154      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
59155        style: {
59156          height: (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(finalHeight),
59157          width: (0,external_wp_blockEditor_namespaceObject.getSpacingPresetCssVar)(width)
59158        },
59159        'aria-hidden': true
59160      })
59161    });
59162  }
59163  
59164  ;// ./node_modules/@wordpress/block-library/build-module/spacer/index.js
59165  /**
59166   * WordPress dependencies
59167   */
59168  
59169  
59170  /**
59171   * Internal dependencies
59172   */
59173  
59174  
59175  
59176  const spacer_metadata = {
59177    $schema: "https://schemas.wp.org/trunk/block.json",
59178    apiVersion: 3,
59179    name: "core/spacer",
59180    title: "Spacer",
59181    category: "design",
59182    description: "Add white space between blocks and customize its height.",
59183    textdomain: "default",
59184    attributes: {
59185      height: {
59186        type: "string",
59187        "default": "100px"
59188      },
59189      width: {
59190        type: "string"
59191      }
59192    },
59193    usesContext: ["orientation"],
59194    supports: {
59195      anchor: true,
59196      spacing: {
59197        margin: ["top", "bottom"],
59198        __experimentalDefaultControls: {
59199          margin: true
59200        }
59201      },
59202      interactivity: {
59203        clientNavigation: true
59204      }
59205    },
59206    editorStyle: "wp-block-spacer-editor",
59207    style: "wp-block-spacer"
59208  };
59209  
59210  
59211  const {
59212    name: spacer_name
59213  } = spacer_metadata;
59214  
59215  const spacer_settings = {
59216    icon: resize_corner_n_e,
59217    transforms: spacer_transforms,
59218    edit: spacer_edit,
59219    save: spacer_save_save,
59220    deprecated: spacer_deprecated
59221  };
59222  const spacer_init = () => initBlock({
59223    name: spacer_name,
59224    metadata: spacer_metadata,
59225    settings: spacer_settings
59226  });
59227  
59228  ;// ./node_modules/@wordpress/icons/build-module/library/block-table.js
59229  /**
59230   * WordPress dependencies
59231   */
59232  
59233  
59234  const blockTable = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
59235    viewBox: "0 0 24 24",
59236    xmlns: "http://www.w3.org/2000/svg",
59237    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
59238      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"
59239    })
59240  });
59241  /* harmony default export */ const block_table = (blockTable);
59242  
59243  ;// ./node_modules/@wordpress/block-library/build-module/table/deprecated.js
59244  /**
59245   * External dependencies
59246   */
59247  
59248  
59249  /**
59250   * WordPress dependencies
59251   */
59252  
59253  
59254  // As the previous arbitrary colors won't match theme color palettes, the hex
59255  // value will be mapped to the style.color.background attribute as if it was
59256  // a custom color selection.
59257  
59258  const oldColors = {
59259    'subtle-light-gray': '#f3f4f5',
59260    'subtle-pale-green': '#e9fbe5',
59261    'subtle-pale-blue': '#e7f5fe',
59262    'subtle-pale-pink': '#fcf0ef'
59263  };
59264  
59265  // Fixed width table cells on by default.
59266  const v4Query = {
59267    content: {
59268      type: 'rich-text',
59269      source: 'rich-text'
59270    },
59271    tag: {
59272      type: 'string',
59273      default: 'td',
59274      source: 'tag'
59275    },
59276    scope: {
59277      type: 'string',
59278      source: 'attribute',
59279      attribute: 'scope'
59280    },
59281    align: {
59282      type: 'string',
59283      source: 'attribute',
59284      attribute: 'data-align'
59285    },
59286    colspan: {
59287      type: 'string',
59288      source: 'attribute',
59289      attribute: 'colspan'
59290    },
59291    rowspan: {
59292      type: 'string',
59293      source: 'attribute',
59294      attribute: 'rowspan'
59295    }
59296  };
59297  const table_deprecated_v4 = {
59298    attributes: {
59299      hasFixedLayout: {
59300        type: 'boolean',
59301        default: false
59302      },
59303      caption: {
59304        type: 'rich-text',
59305        source: 'rich-text',
59306        selector: 'figcaption'
59307      },
59308      head: {
59309        type: 'array',
59310        default: [],
59311        source: 'query',
59312        selector: 'thead tr',
59313        query: {
59314          cells: {
59315            type: 'array',
59316            default: [],
59317            source: 'query',
59318            selector: 'td,th',
59319            query: v4Query
59320          }
59321        }
59322      },
59323      body: {
59324        type: 'array',
59325        default: [],
59326        source: 'query',
59327        selector: 'tbody tr',
59328        query: {
59329          cells: {
59330            type: 'array',
59331            default: [],
59332            source: 'query',
59333            selector: 'td,th',
59334            query: v4Query
59335          }
59336        }
59337      },
59338      foot: {
59339        type: 'array',
59340        default: [],
59341        source: 'query',
59342        selector: 'tfoot tr',
59343        query: {
59344          cells: {
59345            type: 'array',
59346            default: [],
59347            source: 'query',
59348            selector: 'td,th',
59349            query: v4Query
59350          }
59351        }
59352      }
59353    },
59354    supports: {
59355      anchor: true,
59356      align: true,
59357      color: {
59358        __experimentalSkipSerialization: true,
59359        gradients: true,
59360        __experimentalDefaultControls: {
59361          background: true,
59362          text: true
59363        }
59364      },
59365      spacing: {
59366        margin: true,
59367        padding: true,
59368        __experimentalDefaultControls: {
59369          margin: false,
59370          padding: false
59371        }
59372      },
59373      typography: {
59374        fontSize: true,
59375        lineHeight: true,
59376        __experimentalFontFamily: true,
59377        __experimentalFontStyle: true,
59378        __experimentalFontWeight: true,
59379        __experimentalLetterSpacing: true,
59380        __experimentalTextTransform: true,
59381        __experimentalTextDecoration: true,
59382        __experimentalDefaultControls: {
59383          fontSize: true
59384        }
59385      },
59386      __experimentalBorder: {
59387        __experimentalSkipSerialization: true,
59388        color: true,
59389        style: true,
59390        width: true,
59391        __experimentalDefaultControls: {
59392          color: true,
59393          style: true,
59394          width: true
59395        }
59396      },
59397      __experimentalSelector: '.wp-block-table > table',
59398      interactivity: {
59399        clientNavigation: true
59400      }
59401    },
59402    save({
59403      attributes
59404    }) {
59405      const {
59406        hasFixedLayout,
59407        head,
59408        body,
59409        foot,
59410        caption
59411      } = attributes;
59412      const isEmpty = !head.length && !body.length && !foot.length;
59413      if (isEmpty) {
59414        return null;
59415      }
59416      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
59417      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
59418      const classes = dist_clsx(colorProps.className, borderProps.className, {
59419        'has-fixed-layout': hasFixedLayout
59420      });
59421      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
59422      const Section = ({
59423        type,
59424        rows
59425      }) => {
59426        if (!rows.length) {
59427          return null;
59428        }
59429        const Tag = `t$type}`;
59430        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59431          children: rows.map(({
59432            cells
59433          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59434            children: cells.map(({
59435              content,
59436              tag,
59437              scope,
59438              align,
59439              colspan,
59440              rowspan
59441            }, cellIndex) => {
59442              const cellClasses = dist_clsx({
59443                [`has-text-align-$align}`]: align
59444              });
59445              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59446                className: cellClasses ? cellClasses : undefined,
59447                "data-align": align,
59448                tagName: tag,
59449                value: content,
59450                scope: tag === 'th' ? scope : undefined,
59451                colSpan: colspan,
59452                rowSpan: rowspan
59453              }, cellIndex);
59454            })
59455          }, rowIndex))
59456        });
59457      };
59458      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59459        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59460        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59461          className: classes === '' ? undefined : classes,
59462          style: {
59463            ...colorProps.style,
59464            ...borderProps.style
59465          },
59466          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59467            type: "head",
59468            rows: head
59469          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59470            type: "body",
59471            rows: body
59472          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59473            type: "foot",
59474            rows: foot
59475          })]
59476        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59477          tagName: "figcaption",
59478          value: caption,
59479          className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
59480        })]
59481      });
59482    }
59483  };
59484  
59485  // In #41140 support was added to global styles for caption elements which
59486  // added a `wp-element-caption` classname to the embed figcaption element.
59487  const v3Query = {
59488    content: {
59489      type: 'string',
59490      source: 'html'
59491    },
59492    tag: {
59493      type: 'string',
59494      default: 'td',
59495      source: 'tag'
59496    },
59497    scope: {
59498      type: 'string',
59499      source: 'attribute',
59500      attribute: 'scope'
59501    },
59502    align: {
59503      type: 'string',
59504      source: 'attribute',
59505      attribute: 'data-align'
59506    }
59507  };
59508  const table_deprecated_v3 = {
59509    attributes: {
59510      hasFixedLayout: {
59511        type: 'boolean',
59512        default: false
59513      },
59514      caption: {
59515        type: 'string',
59516        source: 'html',
59517        selector: 'figcaption',
59518        default: ''
59519      },
59520      head: {
59521        type: 'array',
59522        default: [],
59523        source: 'query',
59524        selector: 'thead tr',
59525        query: {
59526          cells: {
59527            type: 'array',
59528            default: [],
59529            source: 'query',
59530            selector: 'td,th',
59531            query: v3Query
59532          }
59533        }
59534      },
59535      body: {
59536        type: 'array',
59537        default: [],
59538        source: 'query',
59539        selector: 'tbody tr',
59540        query: {
59541          cells: {
59542            type: 'array',
59543            default: [],
59544            source: 'query',
59545            selector: 'td,th',
59546            query: v3Query
59547          }
59548        }
59549      },
59550      foot: {
59551        type: 'array',
59552        default: [],
59553        source: 'query',
59554        selector: 'tfoot tr',
59555        query: {
59556          cells: {
59557            type: 'array',
59558            default: [],
59559            source: 'query',
59560            selector: 'td,th',
59561            query: v3Query
59562          }
59563        }
59564      }
59565    },
59566    supports: {
59567      anchor: true,
59568      align: true,
59569      color: {
59570        __experimentalSkipSerialization: true,
59571        gradients: true,
59572        __experimentalDefaultControls: {
59573          background: true,
59574          text: true
59575        }
59576      },
59577      spacing: {
59578        margin: true,
59579        padding: true
59580      },
59581      typography: {
59582        fontSize: true,
59583        lineHeight: true,
59584        __experimentalFontFamily: true,
59585        __experimentalFontStyle: true,
59586        __experimentalFontWeight: true,
59587        __experimentalLetterSpacing: true,
59588        __experimentalTextTransform: true,
59589        __experimentalTextDecoration: true,
59590        __experimentalDefaultControls: {
59591          fontSize: true
59592        }
59593      },
59594      __experimentalBorder: {
59595        __experimentalSkipSerialization: true,
59596        color: true,
59597        style: true,
59598        width: true,
59599        __experimentalDefaultControls: {
59600          color: true,
59601          style: true,
59602          width: true
59603        }
59604      },
59605      __experimentalSelector: '.wp-block-table > table'
59606    },
59607    save({
59608      attributes
59609    }) {
59610      const {
59611        hasFixedLayout,
59612        head,
59613        body,
59614        foot,
59615        caption
59616      } = attributes;
59617      const isEmpty = !head.length && !body.length && !foot.length;
59618      if (isEmpty) {
59619        return null;
59620      }
59621      const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
59622      const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
59623      const classes = dist_clsx(colorProps.className, borderProps.className, {
59624        'has-fixed-layout': hasFixedLayout
59625      });
59626      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
59627      const Section = ({
59628        type,
59629        rows
59630      }) => {
59631        if (!rows.length) {
59632          return null;
59633        }
59634        const Tag = `t$type}`;
59635        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59636          children: rows.map(({
59637            cells
59638          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59639            children: cells.map(({
59640              content,
59641              tag,
59642              scope,
59643              align
59644            }, cellIndex) => {
59645              const cellClasses = dist_clsx({
59646                [`has-text-align-$align}`]: align
59647              });
59648              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59649                className: cellClasses ? cellClasses : undefined,
59650                "data-align": align,
59651                tagName: tag,
59652                value: content,
59653                scope: tag === 'th' ? scope : undefined
59654              }, cellIndex);
59655            })
59656          }, rowIndex))
59657        });
59658      };
59659      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59660        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59661        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59662          className: classes === '' ? undefined : classes,
59663          style: {
59664            ...colorProps.style,
59665            ...borderProps.style
59666          },
59667          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59668            type: "head",
59669            rows: head
59670          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59671            type: "body",
59672            rows: body
59673          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59674            type: "foot",
59675            rows: foot
59676          })]
59677        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59678          tagName: "figcaption",
59679          value: caption
59680        })]
59681      });
59682    }
59683  };
59684  
59685  // Deprecation migrating table block to use colors block support feature.
59686  const v2Query = {
59687    content: {
59688      type: 'string',
59689      source: 'html'
59690    },
59691    tag: {
59692      type: 'string',
59693      default: 'td',
59694      source: 'tag'
59695    },
59696    scope: {
59697      type: 'string',
59698      source: 'attribute',
59699      attribute: 'scope'
59700    },
59701    align: {
59702      type: 'string',
59703      source: 'attribute',
59704      attribute: 'data-align'
59705    }
59706  };
59707  const table_deprecated_v2 = {
59708    attributes: {
59709      hasFixedLayout: {
59710        type: 'boolean',
59711        default: false
59712      },
59713      backgroundColor: {
59714        type: 'string'
59715      },
59716      caption: {
59717        type: 'string',
59718        source: 'html',
59719        selector: 'figcaption',
59720        default: ''
59721      },
59722      head: {
59723        type: 'array',
59724        default: [],
59725        source: 'query',
59726        selector: 'thead tr',
59727        query: {
59728          cells: {
59729            type: 'array',
59730            default: [],
59731            source: 'query',
59732            selector: 'td,th',
59733            query: v2Query
59734          }
59735        }
59736      },
59737      body: {
59738        type: 'array',
59739        default: [],
59740        source: 'query',
59741        selector: 'tbody tr',
59742        query: {
59743          cells: {
59744            type: 'array',
59745            default: [],
59746            source: 'query',
59747            selector: 'td,th',
59748            query: v2Query
59749          }
59750        }
59751      },
59752      foot: {
59753        type: 'array',
59754        default: [],
59755        source: 'query',
59756        selector: 'tfoot tr',
59757        query: {
59758          cells: {
59759            type: 'array',
59760            default: [],
59761            source: 'query',
59762            selector: 'td,th',
59763            query: v2Query
59764          }
59765        }
59766      }
59767    },
59768    supports: {
59769      anchor: true,
59770      align: true,
59771      __experimentalSelector: '.wp-block-table > table'
59772    },
59773    save: ({
59774      attributes
59775    }) => {
59776      const {
59777        hasFixedLayout,
59778        head,
59779        body,
59780        foot,
59781        backgroundColor,
59782        caption
59783      } = attributes;
59784      const isEmpty = !head.length && !body.length && !foot.length;
59785      if (isEmpty) {
59786        return null;
59787      }
59788      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
59789      const classes = dist_clsx(backgroundClass, {
59790        'has-fixed-layout': hasFixedLayout,
59791        'has-background': !!backgroundClass
59792      });
59793      const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
59794      const Section = ({
59795        type,
59796        rows
59797      }) => {
59798        if (!rows.length) {
59799          return null;
59800        }
59801        const Tag = `t$type}`;
59802        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59803          children: rows.map(({
59804            cells
59805          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59806            children: cells.map(({
59807              content,
59808              tag,
59809              scope,
59810              align
59811            }, cellIndex) => {
59812              const cellClasses = dist_clsx({
59813                [`has-text-align-$align}`]: align
59814              });
59815              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59816                className: cellClasses ? cellClasses : undefined,
59817                "data-align": align,
59818                tagName: tag,
59819                value: content,
59820                scope: tag === 'th' ? scope : undefined
59821              }, cellIndex);
59822            })
59823          }, rowIndex))
59824        });
59825      };
59826      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
59827        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
59828        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59829          className: classes === '' ? undefined : classes,
59830          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59831            type: "head",
59832            rows: head
59833          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59834            type: "body",
59835            rows: body
59836          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59837            type: "foot",
59838            rows: foot
59839          })]
59840        }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59841          tagName: "figcaption",
59842          value: caption
59843        })]
59844      });
59845    },
59846    isEligible: attributes => {
59847      return attributes.backgroundColor && attributes.backgroundColor in oldColors && !attributes.style;
59848    },
59849    // This version is the first to introduce the style attribute to the
59850    // table block. As a result, we'll explicitly override that.
59851    migrate: attributes => {
59852      return {
59853        ...attributes,
59854        backgroundColor: undefined,
59855        style: {
59856          color: {
59857            background: oldColors[attributes.backgroundColor]
59858          }
59859        }
59860      };
59861    }
59862  };
59863  const v1Query = {
59864    content: {
59865      type: 'string',
59866      source: 'html'
59867    },
59868    tag: {
59869      type: 'string',
59870      default: 'td',
59871      source: 'tag'
59872    },
59873    scope: {
59874      type: 'string',
59875      source: 'attribute',
59876      attribute: 'scope'
59877    }
59878  };
59879  const table_deprecated_v1 = {
59880    attributes: {
59881      hasFixedLayout: {
59882        type: 'boolean',
59883        default: false
59884      },
59885      backgroundColor: {
59886        type: 'string'
59887      },
59888      head: {
59889        type: 'array',
59890        default: [],
59891        source: 'query',
59892        selector: 'thead tr',
59893        query: {
59894          cells: {
59895            type: 'array',
59896            default: [],
59897            source: 'query',
59898            selector: 'td,th',
59899            query: v1Query
59900          }
59901        }
59902      },
59903      body: {
59904        type: 'array',
59905        default: [],
59906        source: 'query',
59907        selector: 'tbody tr',
59908        query: {
59909          cells: {
59910            type: 'array',
59911            default: [],
59912            source: 'query',
59913            selector: 'td,th',
59914            query: v1Query
59915          }
59916        }
59917      },
59918      foot: {
59919        type: 'array',
59920        default: [],
59921        source: 'query',
59922        selector: 'tfoot tr',
59923        query: {
59924          cells: {
59925            type: 'array',
59926            default: [],
59927            source: 'query',
59928            selector: 'td,th',
59929            query: v1Query
59930          }
59931        }
59932      }
59933    },
59934    supports: {
59935      align: true
59936    },
59937    save({
59938      attributes
59939    }) {
59940      const {
59941        hasFixedLayout,
59942        head,
59943        body,
59944        foot,
59945        backgroundColor
59946      } = attributes;
59947      const isEmpty = !head.length && !body.length && !foot.length;
59948      if (isEmpty) {
59949        return null;
59950      }
59951      const backgroundClass = (0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor);
59952      const classes = dist_clsx(backgroundClass, {
59953        'has-fixed-layout': hasFixedLayout,
59954        'has-background': !!backgroundClass
59955      });
59956      const Section = ({
59957        type,
59958        rows
59959      }) => {
59960        if (!rows.length) {
59961          return null;
59962        }
59963        const Tag = `t$type}`;
59964        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
59965          children: rows.map(({
59966            cells
59967          }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
59968            children: cells.map(({
59969              content,
59970              tag,
59971              scope
59972            }, cellIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
59973              tagName: tag,
59974              value: content,
59975              scope: tag === 'th' ? scope : undefined
59976            }, cellIndex))
59977          }, rowIndex))
59978        });
59979      };
59980      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
59981        className: classes,
59982        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59983          type: "head",
59984          rows: head
59985        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59986          type: "body",
59987          rows: body
59988        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
59989          type: "foot",
59990          rows: foot
59991        })]
59992      });
59993    }
59994  };
59995  
59996  /**
59997   * New deprecations need to be placed first
59998   * for them to have higher priority.
59999   *
60000   * Old deprecations may need to be updated as well.
60001   *
60002   * See block-deprecation.md
60003   */
60004  /* harmony default export */ const table_deprecated = ([table_deprecated_v4, table_deprecated_v3, table_deprecated_v2, table_deprecated_v1]);
60005  
60006  ;// ./node_modules/@wordpress/icons/build-module/library/align-left.js
60007  /**
60008   * WordPress dependencies
60009   */
60010  
60011  
60012  const alignLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60013    xmlns: "http://www.w3.org/2000/svg",
60014    viewBox: "0 0 24 24",
60015    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60016      d: "M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z"
60017    })
60018  });
60019  /* harmony default export */ const align_left = (alignLeft);
60020  
60021  ;// ./node_modules/@wordpress/icons/build-module/library/align-center.js
60022  /**
60023   * WordPress dependencies
60024   */
60025  
60026  
60027  const alignCenter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60028    xmlns: "http://www.w3.org/2000/svg",
60029    viewBox: "0 0 24 24",
60030    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60031      d: "M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z"
60032    })
60033  });
60034  /* harmony default export */ const align_center = (alignCenter);
60035  
60036  ;// ./node_modules/@wordpress/icons/build-module/library/align-right.js
60037  /**
60038   * WordPress dependencies
60039   */
60040  
60041  
60042  const alignRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60043    xmlns: "http://www.w3.org/2000/svg",
60044    viewBox: "0 0 24 24",
60045    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60046      d: "M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z"
60047    })
60048  });
60049  /* harmony default export */ const align_right = (alignRight);
60050  
60051  ;// ./node_modules/@wordpress/icons/build-module/library/table-row-before.js
60052  /**
60053   * WordPress dependencies
60054   */
60055  
60056  
60057  const tableRowBefore = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60058    xmlns: "http://www.w3.org/2000/svg",
60059    viewBox: "-2 -2 24 24",
60060    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60061      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"
60062    })
60063  });
60064  /* harmony default export */ const table_row_before = (tableRowBefore);
60065  
60066  ;// ./node_modules/@wordpress/icons/build-module/library/table-row-after.js
60067  /**
60068   * WordPress dependencies
60069   */
60070  
60071  
60072  const tableRowAfter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60073    xmlns: "http://www.w3.org/2000/svg",
60074    viewBox: "-2 -2 24 24",
60075    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60076      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"
60077    })
60078  });
60079  /* harmony default export */ const table_row_after = (tableRowAfter);
60080  
60081  ;// ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js
60082  /**
60083   * WordPress dependencies
60084   */
60085  
60086  
60087  const tableRowDelete = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60088    xmlns: "http://www.w3.org/2000/svg",
60089    viewBox: "-2 -2 24 24",
60090    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60091      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"
60092    })
60093  });
60094  /* harmony default export */ const table_row_delete = (tableRowDelete);
60095  
60096  ;// ./node_modules/@wordpress/icons/build-module/library/table-column-before.js
60097  /**
60098   * WordPress dependencies
60099   */
60100  
60101  
60102  const tableColumnBefore = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60103    xmlns: "http://www.w3.org/2000/svg",
60104    viewBox: "-2 -2 24 24",
60105    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60106      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"
60107    })
60108  });
60109  /* harmony default export */ const table_column_before = (tableColumnBefore);
60110  
60111  ;// ./node_modules/@wordpress/icons/build-module/library/table-column-after.js
60112  /**
60113   * WordPress dependencies
60114   */
60115  
60116  
60117  const tableColumnAfter = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60118    xmlns: "http://www.w3.org/2000/svg",
60119    viewBox: "-2 -2 24 24",
60120    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60121      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"
60122    })
60123  });
60124  /* harmony default export */ const table_column_after = (tableColumnAfter);
60125  
60126  ;// ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js
60127  /**
60128   * WordPress dependencies
60129   */
60130  
60131  
60132  const tableColumnDelete = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60133    xmlns: "http://www.w3.org/2000/svg",
60134    viewBox: "-2 -2 24 24",
60135    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60136      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"
60137    })
60138  });
60139  /* harmony default export */ const table_column_delete = (tableColumnDelete);
60140  
60141  ;// ./node_modules/@wordpress/icons/build-module/library/table.js
60142  /**
60143   * WordPress dependencies
60144   */
60145  
60146  
60147  const table = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
60148    xmlns: "http://www.w3.org/2000/svg",
60149    viewBox: "0 0 24 24",
60150    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
60151      d: "M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z"
60152    })
60153  });
60154  /* harmony default export */ const library_table = (table);
60155  
60156  ;// ./node_modules/@wordpress/block-library/build-module/table/state.js
60157  const INHERITED_COLUMN_ATTRIBUTES = ['align'];
60158  
60159  /**
60160   * Creates a table state.
60161   *
60162   * @param {Object} options
60163   * @param {number} options.rowCount    Row count for the table to create.
60164   * @param {number} options.columnCount Column count for the table to create.
60165   *
60166   * @return {Object} New table state.
60167   */
60168  function createTable({
60169    rowCount,
60170    columnCount
60171  }) {
60172    return {
60173      body: Array.from({
60174        length: rowCount
60175      }).map(() => ({
60176        cells: Array.from({
60177          length: columnCount
60178        }).map(() => ({
60179          content: '',
60180          tag: 'td'
60181        }))
60182      }))
60183    };
60184  }
60185  
60186  /**
60187   * Returns the first row in the table.
60188   *
60189   * @param {Object} state Current table state.
60190   *
60191   * @return {Object | undefined} The first table row.
60192   */
60193  function getFirstRow(state) {
60194    if (!isEmptyTableSection(state.head)) {
60195      return state.head[0];
60196    }
60197    if (!isEmptyTableSection(state.body)) {
60198      return state.body[0];
60199    }
60200    if (!isEmptyTableSection(state.foot)) {
60201      return state.foot[0];
60202    }
60203  }
60204  
60205  /**
60206   * Gets an attribute for a cell.
60207   *
60208   * @param {Object} state         Current table state.
60209   * @param {Object} cellLocation  The location of the cell
60210   * @param {string} attributeName The name of the attribute to get the value of.
60211   *
60212   * @return {*} The attribute value.
60213   */
60214  function getCellAttribute(state, cellLocation, attributeName) {
60215    const {
60216      sectionName,
60217      rowIndex,
60218      columnIndex
60219    } = cellLocation;
60220    return state[sectionName]?.[rowIndex]?.cells?.[columnIndex]?.[attributeName];
60221  }
60222  
60223  /**
60224   * Returns updated cell attributes after applying the `updateCell` function to the selection.
60225   *
60226   * @param {Object}   state      The block attributes.
60227   * @param {Object}   selection  The selection of cells to update.
60228   * @param {Function} updateCell A function to update the selected cell attributes.
60229   *
60230   * @return {Object} New table state including the updated cells.
60231   */
60232  function updateSelectedCell(state, selection, updateCell) {
60233    if (!selection) {
60234      return state;
60235    }
60236    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
60237    const {
60238      sectionName: selectionSectionName,
60239      rowIndex: selectionRowIndex
60240    } = selection;
60241    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
60242      if (selectionSectionName && selectionSectionName !== sectionName) {
60243        return [sectionName, section];
60244      }
60245      return [sectionName, section.map((row, rowIndex) => {
60246        if (selectionRowIndex && selectionRowIndex !== rowIndex) {
60247          return row;
60248        }
60249        return {
60250          cells: row.cells.map((cellAttributes, columnIndex) => {
60251            const cellLocation = {
60252              sectionName,
60253              columnIndex,
60254              rowIndex
60255            };
60256            if (!isCellSelected(cellLocation, selection)) {
60257              return cellAttributes;
60258            }
60259            return updateCell(cellAttributes);
60260          })
60261        };
60262      })];
60263    }));
60264  }
60265  
60266  /**
60267   * Returns whether the cell at `cellLocation` is included in the selection `selection`.
60268   *
60269   * @param {Object} cellLocation An object containing cell location properties.
60270   * @param {Object} selection    An object containing selection properties.
60271   *
60272   * @return {boolean} True if the cell is selected, false otherwise.
60273   */
60274  function isCellSelected(cellLocation, selection) {
60275    if (!cellLocation || !selection) {
60276      return false;
60277    }
60278    switch (selection.type) {
60279      case 'column':
60280        return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex;
60281      case 'cell':
60282        return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex;
60283    }
60284  }
60285  
60286  /**
60287   * Inserts a row in the table state.
60288   *
60289   * @param {Object} state               Current table state.
60290   * @param {Object} options
60291   * @param {string} options.sectionName Section in which to insert the row.
60292   * @param {number} options.rowIndex    Row index at which to insert the row.
60293   * @param {number} options.columnCount Column count for the table to create.
60294   *
60295   * @return {Object} New table state.
60296   */
60297  function insertRow(state, {
60298    sectionName,
60299    rowIndex,
60300    columnCount
60301  }) {
60302    const firstRow = getFirstRow(state);
60303    const cellCount = columnCount === undefined ? firstRow?.cells?.length : columnCount;
60304  
60305    // Bail early if the function cannot determine how many cells to add.
60306    if (!cellCount) {
60307      return state;
60308    }
60309    return {
60310      [sectionName]: [...state[sectionName].slice(0, rowIndex), {
60311        cells: Array.from({
60312          length: cellCount
60313        }).map((_, index) => {
60314          var _firstRow$cells$index;
60315          const firstCellInColumn = (_firstRow$cells$index = firstRow?.cells?.[index]) !== null && _firstRow$cells$index !== void 0 ? _firstRow$cells$index : {};
60316          const inheritedAttributes = Object.fromEntries(Object.entries(firstCellInColumn).filter(([key]) => INHERITED_COLUMN_ATTRIBUTES.includes(key)));
60317          return {
60318            ...inheritedAttributes,
60319            content: '',
60320            tag: sectionName === 'head' ? 'th' : 'td'
60321          };
60322        })
60323      }, ...state[sectionName].slice(rowIndex)]
60324    };
60325  }
60326  
60327  /**
60328   * Deletes a row from the table state.
60329   *
60330   * @param {Object} state               Current table state.
60331   * @param {Object} options
60332   * @param {string} options.sectionName Section in which to delete the row.
60333   * @param {number} options.rowIndex    Row index to delete.
60334   *
60335   * @return {Object} New table state.
60336   */
60337  function deleteRow(state, {
60338    sectionName,
60339    rowIndex
60340  }) {
60341    return {
60342      [sectionName]: state[sectionName].filter((row, index) => index !== rowIndex)
60343    };
60344  }
60345  
60346  /**
60347   * Inserts a column in the table state.
60348   *
60349   * @param {Object} state               Current table state.
60350   * @param {Object} options
60351   * @param {number} options.columnIndex Column index at which to insert the column.
60352   *
60353   * @return {Object} New table state.
60354   */
60355  function insertColumn(state, {
60356    columnIndex
60357  }) {
60358    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
60359    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
60360      // Bail early if the table section is empty.
60361      if (isEmptyTableSection(section)) {
60362        return [sectionName, section];
60363      }
60364      return [sectionName, section.map(row => {
60365        // Bail early if the row is empty or it's an attempt to insert past
60366        // the last possible index of the array.
60367        if (isEmptyRow(row) || row.cells.length < columnIndex) {
60368          return row;
60369        }
60370        return {
60371          cells: [...row.cells.slice(0, columnIndex), {
60372            content: '',
60373            tag: sectionName === 'head' ? 'th' : 'td'
60374          }, ...row.cells.slice(columnIndex)]
60375        };
60376      })];
60377    }));
60378  }
60379  
60380  /**
60381   * Deletes a column from the table state.
60382   *
60383   * @param {Object} state               Current table state.
60384   * @param {Object} options
60385   * @param {number} options.columnIndex Column index to delete.
60386   *
60387   * @return {Object} New table state.
60388   */
60389  function deleteColumn(state, {
60390    columnIndex
60391  }) {
60392    const tableSections = Object.fromEntries(Object.entries(state).filter(([key]) => ['head', 'body', 'foot'].includes(key)));
60393    return Object.fromEntries(Object.entries(tableSections).map(([sectionName, section]) => {
60394      // Bail early if the table section is empty.
60395      if (isEmptyTableSection(section)) {
60396        return [sectionName, section];
60397      }
60398      return [sectionName, section.map(row => ({
60399        cells: row.cells.length >= columnIndex ? row.cells.filter((cell, index) => index !== columnIndex) : row.cells
60400      })).filter(row => row.cells.length)];
60401    }));
60402  }
60403  
60404  /**
60405   * Toggles the existence of a section.
60406   *
60407   * @param {Object} state       Current table state.
60408   * @param {string} sectionName Name of the section to toggle.
60409   *
60410   * @return {Object} New table state.
60411   */
60412  function toggleSection(state, sectionName) {
60413    var _state$body$0$cells$l;
60414    // Section exists, replace it with an empty row to remove it.
60415    if (!isEmptyTableSection(state[sectionName])) {
60416      return {
60417        [sectionName]: []
60418      };
60419    }
60420  
60421    // Get the length of the first row of the body to use when creating the header.
60422    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;
60423  
60424    // Section doesn't exist, insert an empty row to create the section.
60425    return insertRow(state, {
60426      sectionName,
60427      rowIndex: 0,
60428      columnCount
60429    });
60430  }
60431  
60432  /**
60433   * Determines whether a table section is empty.
60434   *
60435   * @param {Object} section Table section state.
60436   *
60437   * @return {boolean} True if the table section is empty, false otherwise.
60438   */
60439  function isEmptyTableSection(section) {
60440    return !section || !section.length || section.every(isEmptyRow);
60441  }
60442  
60443  /**
60444   * Determines whether a table row is empty.
60445   *
60446   * @param {Object} row Table row state.
60447   *
60448   * @return {boolean} True if the table section is empty, false otherwise.
60449   */
60450  function isEmptyRow(row) {
60451    return !(row.cells && row.cells.length);
60452  }
60453  
60454  ;// ./node_modules/@wordpress/block-library/build-module/table/edit.js
60455  /**
60456   * External dependencies
60457   */
60458  
60459  
60460  /**
60461   * WordPress dependencies
60462   */
60463  
60464  
60465  
60466  
60467  
60468  
60469  /**
60470   * Internal dependencies
60471   */
60472  
60473  
60474  
60475  
60476  const ALIGNMENT_CONTROLS = [{
60477    icon: align_left,
60478    title: (0,external_wp_i18n_namespaceObject.__)('Align column left'),
60479    align: 'left'
60480  }, {
60481    icon: align_center,
60482    title: (0,external_wp_i18n_namespaceObject.__)('Align column center'),
60483    align: 'center'
60484  }, {
60485    icon: align_right,
60486    title: (0,external_wp_i18n_namespaceObject.__)('Align column right'),
60487    align: 'right'
60488  }];
60489  const cellAriaLabel = {
60490    head: (0,external_wp_i18n_namespaceObject.__)('Header cell text'),
60491    body: (0,external_wp_i18n_namespaceObject.__)('Body cell text'),
60492    foot: (0,external_wp_i18n_namespaceObject.__)('Footer cell text')
60493  };
60494  const edit_placeholder = {
60495    head: (0,external_wp_i18n_namespaceObject.__)('Header label'),
60496    foot: (0,external_wp_i18n_namespaceObject.__)('Footer label')
60497  };
60498  function TSection({
60499    name,
60500    ...props
60501  }) {
60502    const TagName = `t$name}`;
60503    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
60504      ...props
60505    });
60506  }
60507  function TableEdit({
60508    attributes,
60509    setAttributes,
60510    insertBlocksAfter,
60511    isSelected: isSingleSelected
60512  }) {
60513    const {
60514      hasFixedLayout,
60515      head,
60516      foot
60517    } = attributes;
60518    const [initialRowCount, setInitialRowCount] = (0,external_wp_element_namespaceObject.useState)(2);
60519    const [initialColumnCount, setInitialColumnCount] = (0,external_wp_element_namespaceObject.useState)(2);
60520    const [selectedCell, setSelectedCell] = (0,external_wp_element_namespaceObject.useState)();
60521    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseColorProps)(attributes);
60522    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalUseBorderProps)(attributes);
60523    const tableRef = (0,external_wp_element_namespaceObject.useRef)();
60524    const [hasTableCreated, setHasTableCreated] = (0,external_wp_element_namespaceObject.useState)(false);
60525    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
60526  
60527    /**
60528     * Updates the initial column count used for table creation.
60529     *
60530     * @param {number} count New initial column count.
60531     */
60532    function onChangeInitialColumnCount(count) {
60533      setInitialColumnCount(count);
60534    }
60535  
60536    /**
60537     * Updates the initial row count used for table creation.
60538     *
60539     * @param {number} count New initial row count.
60540     */
60541    function onChangeInitialRowCount(count) {
60542      setInitialRowCount(count);
60543    }
60544  
60545    /**
60546     * Creates a table based on dimensions in local state.
60547     *
60548     * @param {Object} event Form submit event.
60549     */
60550    function onCreateTable(event) {
60551      event.preventDefault();
60552      setAttributes(createTable({
60553        rowCount: parseInt(initialRowCount, 10) || 2,
60554        columnCount: parseInt(initialColumnCount, 10) || 2
60555      }));
60556      setHasTableCreated(true);
60557    }
60558  
60559    /**
60560     * Toggles whether the table has a fixed layout or not.
60561     */
60562    function onChangeFixedLayout() {
60563      setAttributes({
60564        hasFixedLayout: !hasFixedLayout
60565      });
60566    }
60567  
60568    /**
60569     * Changes the content of the currently selected cell.
60570     *
60571     * @param {Array} content A RichText content value.
60572     */
60573    function onChange(content) {
60574      if (!selectedCell) {
60575        return;
60576      }
60577      setAttributes(updateSelectedCell(attributes, selectedCell, cellAttributes => ({
60578        ...cellAttributes,
60579        content
60580      })));
60581    }
60582  
60583    /**
60584     * Align text within the a column.
60585     *
60586     * @param {string} align The new alignment to apply to the column.
60587     */
60588    function onChangeColumnAlignment(align) {
60589      if (!selectedCell) {
60590        return;
60591      }
60592  
60593      // Convert the cell selection to a column selection so that alignment
60594      // is applied to the entire column.
60595      const columnSelection = {
60596        type: 'column',
60597        columnIndex: selectedCell.columnIndex
60598      };
60599      const newAttributes = updateSelectedCell(attributes, columnSelection, cellAttributes => ({
60600        ...cellAttributes,
60601        align
60602      }));
60603      setAttributes(newAttributes);
60604    }
60605  
60606    /**
60607     * Get the alignment of the currently selected cell.
60608     *
60609     * @return {string | undefined} The new alignment to apply to the column.
60610     */
60611    function getCellAlignment() {
60612      if (!selectedCell) {
60613        return;
60614      }
60615      return getCellAttribute(attributes, selectedCell, 'align');
60616    }
60617  
60618    /**
60619     * Add or remove a `head` table section.
60620     */
60621    function onToggleHeaderSection() {
60622      setAttributes(toggleSection(attributes, 'head'));
60623    }
60624  
60625    /**
60626     * Add or remove a `foot` table section.
60627     */
60628    function onToggleFooterSection() {
60629      setAttributes(toggleSection(attributes, 'foot'));
60630    }
60631  
60632    /**
60633     * Inserts a row at the currently selected row index, plus `delta`.
60634     *
60635     * @param {number} delta Offset for selected row index at which to insert.
60636     */
60637    function onInsertRow(delta) {
60638      if (!selectedCell) {
60639        return;
60640      }
60641      const {
60642        sectionName,
60643        rowIndex
60644      } = selectedCell;
60645      const newRowIndex = rowIndex + delta;
60646      setAttributes(insertRow(attributes, {
60647        sectionName,
60648        rowIndex: newRowIndex
60649      }));
60650      // Select the first cell of the new row.
60651      setSelectedCell({
60652        sectionName,
60653        rowIndex: newRowIndex,
60654        columnIndex: 0,
60655        type: 'cell'
60656      });
60657    }
60658  
60659    /**
60660     * Inserts a row before the currently selected row.
60661     */
60662    function onInsertRowBefore() {
60663      onInsertRow(0);
60664    }
60665  
60666    /**
60667     * Inserts a row after the currently selected row.
60668     */
60669    function onInsertRowAfter() {
60670      onInsertRow(1);
60671    }
60672  
60673    /**
60674     * Deletes the currently selected row.
60675     */
60676    function onDeleteRow() {
60677      if (!selectedCell) {
60678        return;
60679      }
60680      const {
60681        sectionName,
60682        rowIndex
60683      } = selectedCell;
60684      setSelectedCell();
60685      setAttributes(deleteRow(attributes, {
60686        sectionName,
60687        rowIndex
60688      }));
60689    }
60690  
60691    /**
60692     * Inserts a column at the currently selected column index, plus `delta`.
60693     *
60694     * @param {number} delta Offset for selected column index at which to insert.
60695     */
60696    function onInsertColumn(delta = 0) {
60697      if (!selectedCell) {
60698        return;
60699      }
60700      const {
60701        columnIndex
60702      } = selectedCell;
60703      const newColumnIndex = columnIndex + delta;
60704      setAttributes(insertColumn(attributes, {
60705        columnIndex: newColumnIndex
60706      }));
60707      // Select the first cell of the new column.
60708      setSelectedCell({
60709        rowIndex: 0,
60710        columnIndex: newColumnIndex,
60711        type: 'cell'
60712      });
60713    }
60714  
60715    /**
60716     * Inserts a column before the currently selected column.
60717     */
60718    function onInsertColumnBefore() {
60719      onInsertColumn(0);
60720    }
60721  
60722    /**
60723     * Inserts a column after the currently selected column.
60724     */
60725    function onInsertColumnAfter() {
60726      onInsertColumn(1);
60727    }
60728  
60729    /**
60730     * Deletes the currently selected column.
60731     */
60732    function onDeleteColumn() {
60733      if (!selectedCell) {
60734        return;
60735      }
60736      const {
60737        sectionName,
60738        columnIndex
60739      } = selectedCell;
60740      setSelectedCell();
60741      setAttributes(deleteColumn(attributes, {
60742        sectionName,
60743        columnIndex
60744      }));
60745    }
60746    (0,external_wp_element_namespaceObject.useEffect)(() => {
60747      if (!isSingleSelected) {
60748        setSelectedCell();
60749      }
60750    }, [isSingleSelected]);
60751    (0,external_wp_element_namespaceObject.useEffect)(() => {
60752      if (hasTableCreated) {
60753        tableRef?.current?.querySelector('td div[contentEditable="true"]')?.focus();
60754        setHasTableCreated(false);
60755      }
60756    }, [hasTableCreated]);
60757    const sections = ['head', 'body', 'foot'].filter(name => !isEmptyTableSection(attributes[name]));
60758    const tableControls = [{
60759      icon: table_row_before,
60760      title: (0,external_wp_i18n_namespaceObject.__)('Insert row before'),
60761      isDisabled: !selectedCell,
60762      onClick: onInsertRowBefore
60763    }, {
60764      icon: table_row_after,
60765      title: (0,external_wp_i18n_namespaceObject.__)('Insert row after'),
60766      isDisabled: !selectedCell,
60767      onClick: onInsertRowAfter
60768    }, {
60769      icon: table_row_delete,
60770      title: (0,external_wp_i18n_namespaceObject.__)('Delete row'),
60771      isDisabled: !selectedCell,
60772      onClick: onDeleteRow
60773    }, {
60774      icon: table_column_before,
60775      title: (0,external_wp_i18n_namespaceObject.__)('Insert column before'),
60776      isDisabled: !selectedCell,
60777      onClick: onInsertColumnBefore
60778    }, {
60779      icon: table_column_after,
60780      title: (0,external_wp_i18n_namespaceObject.__)('Insert column after'),
60781      isDisabled: !selectedCell,
60782      onClick: onInsertColumnAfter
60783    }, {
60784      icon: table_column_delete,
60785      title: (0,external_wp_i18n_namespaceObject.__)('Delete column'),
60786      isDisabled: !selectedCell,
60787      onClick: onDeleteColumn
60788    }];
60789    const renderedSections = sections.map(name => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TSection, {
60790      name: name,
60791      children: attributes[name].map(({
60792        cells
60793      }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
60794        children: cells.map(({
60795          content,
60796          tag: CellTag,
60797          scope,
60798          align,
60799          colspan,
60800          rowspan
60801        }, columnIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CellTag, {
60802          scope: CellTag === 'th' ? scope : undefined,
60803          colSpan: colspan,
60804          rowSpan: rowspan,
60805          className: dist_clsx({
60806            [`has-text-align-$align}`]: align
60807          }, 'wp-block-table__cell-content'),
60808          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
60809            value: content,
60810            onChange: onChange,
60811            onFocus: () => {
60812              setSelectedCell({
60813                sectionName: name,
60814                rowIndex,
60815                columnIndex,
60816                type: 'cell'
60817              });
60818            },
60819            "aria-label": cellAriaLabel[name],
60820            placeholder: edit_placeholder[name]
60821          })
60822        }, columnIndex))
60823      }, rowIndex))
60824    }, name));
60825    const isEmpty = !sections.length;
60826    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
60827      ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
60828        ref: tableRef
60829      }),
60830      children: [!isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
60831        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
60832          group: "block",
60833          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
60834            label: (0,external_wp_i18n_namespaceObject.__)('Change column alignment'),
60835            alignmentControls: ALIGNMENT_CONTROLS,
60836            value: getCellAlignment(),
60837            onChange: nextAlign => onChangeColumnAlignment(nextAlign)
60838          })
60839        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
60840          group: "other",
60841          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarDropdownMenu, {
60842            icon: library_table,
60843            label: (0,external_wp_i18n_namespaceObject.__)('Edit table'),
60844            controls: tableControls
60845          })
60846        })]
60847      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
60848        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
60849          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
60850          resetAll: () => {
60851            setAttributes({
60852              hasFixedLayout: true,
60853              head: [],
60854              foot: []
60855            });
60856          },
60857          dropdownMenuProps: dropdownMenuProps,
60858          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
60859            hasValue: () => hasFixedLayout !== true,
60860            label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
60861            onDeselect: () => setAttributes({
60862              hasFixedLayout: true
60863            }),
60864            isShownByDefault: true,
60865            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60866              __nextHasNoMarginBottom: true,
60867              label: (0,external_wp_i18n_namespaceObject.__)('Fixed width table cells'),
60868              checked: !!hasFixedLayout,
60869              onChange: onChangeFixedLayout
60870            })
60871          }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
60872            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
60873              hasValue: () => head && head.length,
60874              label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
60875              onDeselect: () => setAttributes({
60876                head: []
60877              }),
60878              isShownByDefault: true,
60879              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60880                __nextHasNoMarginBottom: true,
60881                label: (0,external_wp_i18n_namespaceObject.__)('Header section'),
60882                checked: !!(head && head.length),
60883                onChange: onToggleHeaderSection
60884              })
60885            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
60886              hasValue: () => foot && foot.length,
60887              label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
60888              onDeselect: () => setAttributes({
60889                foot: []
60890              }),
60891              isShownByDefault: true,
60892              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
60893                __nextHasNoMarginBottom: true,
60894                label: (0,external_wp_i18n_namespaceObject.__)('Footer section'),
60895                checked: !!(foot && foot.length),
60896                onChange: onToggleFooterSection
60897              })
60898            })]
60899          })]
60900        })
60901      }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("table", {
60902        className: dist_clsx(colorProps.className, borderProps.className, {
60903          'has-fixed-layout': hasFixedLayout,
60904          // This is required in the editor only to overcome
60905          // the fact the editor rewrites individual border
60906          // widths into a shorthand format.
60907          'has-individual-borders': (0,external_wp_components_namespaceObject.__experimentalHasSplitBorders)(attributes?.style?.border)
60908        }),
60909        style: {
60910          ...colorProps.style,
60911          ...borderProps.style
60912        },
60913        children: renderedSections
60914      }), isEmpty ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
60915        label: (0,external_wp_i18n_namespaceObject.__)('Table'),
60916        icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
60917          icon: block_table,
60918          showColors: true
60919        }),
60920        instructions: (0,external_wp_i18n_namespaceObject.__)('Insert a table for sharing data.'),
60921        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("form", {
60922          className: "blocks-table__placeholder-form",
60923          onSubmit: onCreateTable,
60924          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
60925            __nextHasNoMarginBottom: true,
60926            __next40pxDefaultSize: true,
60927            type: "number",
60928            label: (0,external_wp_i18n_namespaceObject.__)('Column count'),
60929            value: initialColumnCount,
60930            onChange: onChangeInitialColumnCount,
60931            min: "1",
60932            className: "blocks-table__placeholder-input"
60933          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
60934            __nextHasNoMarginBottom: true,
60935            __next40pxDefaultSize: true,
60936            type: "number",
60937            label: (0,external_wp_i18n_namespaceObject.__)('Row count'),
60938            value: initialRowCount,
60939            onChange: onChangeInitialRowCount,
60940            min: "1",
60941            className: "blocks-table__placeholder-input"
60942          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
60943            __next40pxDefaultSize: true,
60944            variant: "primary",
60945            type: "submit",
60946            children: (0,external_wp_i18n_namespaceObject.__)('Create Table')
60947          })]
60948        })
60949      }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
60950        attributes: attributes,
60951        setAttributes: setAttributes,
60952        isSelected: isSingleSelected,
60953        insertBlocksAfter: insertBlocksAfter,
60954        label: (0,external_wp_i18n_namespaceObject.__)('Table caption text'),
60955        showToolbarButton: isSingleSelected
60956      })]
60957    });
60958  }
60959  /* harmony default export */ const table_edit = (TableEdit);
60960  
60961  ;// ./node_modules/@wordpress/block-library/build-module/table/save.js
60962  /**
60963   * External dependencies
60964   */
60965  
60966  
60967  /**
60968   * WordPress dependencies
60969   */
60970  
60971  
60972  function table_save_save({
60973    attributes
60974  }) {
60975    const {
60976      hasFixedLayout,
60977      head,
60978      body,
60979      foot,
60980      caption
60981    } = attributes;
60982    const isEmpty = !head.length && !body.length && !foot.length;
60983    if (isEmpty) {
60984      return null;
60985    }
60986    const colorProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetColorClassesAndStyles)(attributes);
60987    const borderProps = (0,external_wp_blockEditor_namespaceObject.__experimentalGetBorderClassesAndStyles)(attributes);
60988    const classes = dist_clsx(colorProps.className, borderProps.className, {
60989      'has-fixed-layout': hasFixedLayout
60990    });
60991    const hasCaption = !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption);
60992    const Section = ({
60993      type,
60994      rows
60995    }) => {
60996      if (!rows.length) {
60997        return null;
60998      }
60999      const Tag = `t$type}`;
61000      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
61001        children: rows.map(({
61002          cells
61003        }, rowIndex) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("tr", {
61004          children: cells.map(({
61005            content,
61006            tag,
61007            scope,
61008            align,
61009            colspan,
61010            rowspan
61011          }, cellIndex) => {
61012            const cellClasses = dist_clsx({
61013              [`has-text-align-$align}`]: align
61014            });
61015            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
61016              className: cellClasses ? cellClasses : undefined,
61017              "data-align": align,
61018              tagName: tag,
61019              value: content,
61020              scope: tag === 'th' ? scope : undefined,
61021              colSpan: colspan,
61022              rowSpan: rowspan
61023            }, cellIndex);
61024          })
61025        }, rowIndex))
61026      });
61027    };
61028    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
61029      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
61030      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("table", {
61031        className: classes === '' ? undefined : classes,
61032        style: {
61033          ...colorProps.style,
61034          ...borderProps.style
61035        },
61036        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
61037          type: "head",
61038          rows: head
61039        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
61040          type: "body",
61041          rows: body
61042        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Section, {
61043          type: "foot",
61044          rows: foot
61045        })]
61046      }), hasCaption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
61047        tagName: "figcaption",
61048        value: caption,
61049        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption')
61050      })]
61051    });
61052  }
61053  
61054  ;// ./node_modules/@wordpress/block-library/build-module/table/utils.js
61055  /**
61056   * Normalize the rowspan/colspan value.
61057   * Returns undefined if the parameter is not a positive number
61058   * or the default value (1) for rowspan/colspan.
61059   *
61060   * @param {number|undefined} rowColSpan rowspan/colspan value.
61061   *
61062   * @return {string|undefined} normalized rowspan/colspan value.
61063   */
61064  function normalizeRowColSpan(rowColSpan) {
61065    const parsedValue = parseInt(rowColSpan, 10);
61066    if (!Number.isInteger(parsedValue)) {
61067      return undefined;
61068    }
61069    return parsedValue < 0 || parsedValue === 1 ? undefined : parsedValue.toString();
61070  }
61071  
61072  ;// ./node_modules/@wordpress/block-library/build-module/table/transforms.js
61073  /**
61074   * WordPress dependencies
61075   */
61076  
61077  
61078  /**
61079   * Internal dependencies
61080   */
61081  
61082  const tableContentPasteSchema = ({
61083    phrasingContentSchema
61084  }) => ({
61085    tr: {
61086      allowEmpty: true,
61087      children: {
61088        th: {
61089          allowEmpty: true,
61090          children: phrasingContentSchema,
61091          attributes: ['scope', 'colspan', 'rowspan']
61092        },
61093        td: {
61094          allowEmpty: true,
61095          children: phrasingContentSchema,
61096          attributes: ['colspan', 'rowspan']
61097        }
61098      }
61099    }
61100  });
61101  const tablePasteSchema = args => ({
61102    table: {
61103      children: {
61104        thead: {
61105          allowEmpty: true,
61106          children: tableContentPasteSchema(args)
61107        },
61108        tfoot: {
61109          allowEmpty: true,
61110          children: tableContentPasteSchema(args)
61111        },
61112        tbody: {
61113          allowEmpty: true,
61114          children: tableContentPasteSchema(args)
61115        }
61116      }
61117    }
61118  });
61119  const table_transforms_transforms = {
61120    from: [{
61121      type: 'raw',
61122      selector: 'table',
61123      schema: tablePasteSchema,
61124      transform: node => {
61125        const attributes = Array.from(node.children).reduce((sectionAcc, section) => {
61126          if (!section.children.length) {
61127            return sectionAcc;
61128          }
61129          const sectionName = section.nodeName.toLowerCase().slice(1);
61130          const sectionAttributes = Array.from(section.children).reduce((rowAcc, row) => {
61131            if (!row.children.length) {
61132              return rowAcc;
61133            }
61134            const rowAttributes = Array.from(row.children).reduce((colAcc, col) => {
61135              const rowspan = normalizeRowColSpan(col.getAttribute('rowspan'));
61136              const colspan = normalizeRowColSpan(col.getAttribute('colspan'));
61137              colAcc.push({
61138                tag: col.nodeName.toLowerCase(),
61139                content: col.innerHTML,
61140                rowspan,
61141                colspan
61142              });
61143              return colAcc;
61144            }, []);
61145            rowAcc.push({
61146              cells: rowAttributes
61147            });
61148            return rowAcc;
61149          }, []);
61150          sectionAcc[sectionName] = sectionAttributes;
61151          return sectionAcc;
61152        }, {});
61153        return (0,external_wp_blocks_namespaceObject.createBlock)('core/table', attributes);
61154      }
61155    }]
61156  };
61157  /* harmony default export */ const table_transforms = (table_transforms_transforms);
61158  
61159  ;// ./node_modules/@wordpress/block-library/build-module/table/index.js
61160  /**
61161   * WordPress dependencies
61162   */
61163  
61164  
61165  
61166  /**
61167   * Internal dependencies
61168   */
61169  
61170  
61171  
61172  const table_metadata = {
61173    $schema: "https://schemas.wp.org/trunk/block.json",
61174    apiVersion: 3,
61175    name: "core/table",
61176    title: "Table",
61177    category: "text",
61178    description: "Create structured content in rows and columns to display information.",
61179    textdomain: "default",
61180    attributes: {
61181      hasFixedLayout: {
61182        type: "boolean",
61183        "default": true
61184      },
61185      caption: {
61186        type: "rich-text",
61187        source: "rich-text",
61188        selector: "figcaption"
61189      },
61190      head: {
61191        type: "array",
61192        "default": [],
61193        source: "query",
61194        selector: "thead tr",
61195        query: {
61196          cells: {
61197            type: "array",
61198            "default": [],
61199            source: "query",
61200            selector: "td,th",
61201            query: {
61202              content: {
61203                type: "rich-text",
61204                source: "rich-text"
61205              },
61206              tag: {
61207                type: "string",
61208                "default": "td",
61209                source: "tag"
61210              },
61211              scope: {
61212                type: "string",
61213                source: "attribute",
61214                attribute: "scope"
61215              },
61216              align: {
61217                type: "string",
61218                source: "attribute",
61219                attribute: "data-align"
61220              },
61221              colspan: {
61222                type: "string",
61223                source: "attribute",
61224                attribute: "colspan"
61225              },
61226              rowspan: {
61227                type: "string",
61228                source: "attribute",
61229                attribute: "rowspan"
61230              }
61231            }
61232          }
61233        }
61234      },
61235      body: {
61236        type: "array",
61237        "default": [],
61238        source: "query",
61239        selector: "tbody tr",
61240        query: {
61241          cells: {
61242            type: "array",
61243            "default": [],
61244            source: "query",
61245            selector: "td,th",
61246            query: {
61247              content: {
61248                type: "rich-text",
61249                source: "rich-text"
61250              },
61251              tag: {
61252                type: "string",
61253                "default": "td",
61254                source: "tag"
61255              },
61256              scope: {
61257                type: "string",
61258                source: "attribute",
61259                attribute: "scope"
61260              },
61261              align: {
61262                type: "string",
61263                source: "attribute",
61264                attribute: "data-align"
61265              },
61266              colspan: {
61267                type: "string",
61268                source: "attribute",
61269                attribute: "colspan"
61270              },
61271              rowspan: {
61272                type: "string",
61273                source: "attribute",
61274                attribute: "rowspan"
61275              }
61276            }
61277          }
61278        }
61279      },
61280      foot: {
61281        type: "array",
61282        "default": [],
61283        source: "query",
61284        selector: "tfoot tr",
61285        query: {
61286          cells: {
61287            type: "array",
61288            "default": [],
61289            source: "query",
61290            selector: "td,th",
61291            query: {
61292              content: {
61293                type: "rich-text",
61294                source: "rich-text"
61295              },
61296              tag: {
61297                type: "string",
61298                "default": "td",
61299                source: "tag"
61300              },
61301              scope: {
61302                type: "string",
61303                source: "attribute",
61304                attribute: "scope"
61305              },
61306              align: {
61307                type: "string",
61308                source: "attribute",
61309                attribute: "data-align"
61310              },
61311              colspan: {
61312                type: "string",
61313                source: "attribute",
61314                attribute: "colspan"
61315              },
61316              rowspan: {
61317                type: "string",
61318                source: "attribute",
61319                attribute: "rowspan"
61320              }
61321            }
61322          }
61323        }
61324      }
61325    },
61326    supports: {
61327      anchor: true,
61328      align: true,
61329      color: {
61330        __experimentalSkipSerialization: true,
61331        gradients: true,
61332        __experimentalDefaultControls: {
61333          background: true,
61334          text: true
61335        }
61336      },
61337      spacing: {
61338        margin: true,
61339        padding: true,
61340        __experimentalDefaultControls: {
61341          margin: false,
61342          padding: false
61343        }
61344      },
61345      typography: {
61346        fontSize: true,
61347        lineHeight: true,
61348        __experimentalFontFamily: true,
61349        __experimentalFontStyle: true,
61350        __experimentalFontWeight: true,
61351        __experimentalLetterSpacing: true,
61352        __experimentalTextTransform: true,
61353        __experimentalTextDecoration: true,
61354        __experimentalDefaultControls: {
61355          fontSize: true
61356        }
61357      },
61358      __experimentalBorder: {
61359        __experimentalSkipSerialization: true,
61360        color: true,
61361        style: true,
61362        width: true,
61363        __experimentalDefaultControls: {
61364          color: true,
61365          style: true,
61366          width: true
61367        }
61368      },
61369      interactivity: {
61370        clientNavigation: true
61371      }
61372    },
61373    selectors: {
61374      root: ".wp-block-table > table",
61375      spacing: ".wp-block-table"
61376    },
61377    styles: [{
61378      name: "regular",
61379      label: "Default",
61380      isDefault: true
61381    }, {
61382      name: "stripes",
61383      label: "Stripes"
61384    }],
61385    editorStyle: "wp-block-table-editor",
61386    style: "wp-block-table"
61387  };
61388  
61389  
61390  const {
61391    name: table_name
61392  } = table_metadata;
61393  
61394  const table_settings = {
61395    icon: block_table,
61396    example: {
61397      attributes: {
61398        head: [{
61399          cells: [{
61400            content: (0,external_wp_i18n_namespaceObject.__)('Version'),
61401            tag: 'th'
61402          }, {
61403            content: (0,external_wp_i18n_namespaceObject.__)('Jazz Musician'),
61404            tag: 'th'
61405          }, {
61406            content: (0,external_wp_i18n_namespaceObject.__)('Release Date'),
61407            tag: 'th'
61408          }]
61409        }],
61410        body: [{
61411          cells: [{
61412            content: '5.2',
61413            tag: 'td'
61414          }, {
61415            content: 'Jaco Pastorius',
61416            tag: 'td'
61417          }, {
61418            content: (0,external_wp_i18n_namespaceObject.__)('May 7, 2019'),
61419            tag: 'td'
61420          }]
61421        }, {
61422          cells: [{
61423            content: '5.1',
61424            tag: 'td'
61425          }, {
61426            content: 'Betty Carter',
61427            tag: 'td'
61428          }, {
61429            content: (0,external_wp_i18n_namespaceObject.__)('February 21, 2019'),
61430            tag: 'td'
61431          }]
61432        }, {
61433          cells: [{
61434            content: '5.0',
61435            tag: 'td'
61436          }, {
61437            content: 'Bebo Valdés',
61438            tag: 'td'
61439          }, {
61440            content: (0,external_wp_i18n_namespaceObject.__)('December 6, 2018'),
61441            tag: 'td'
61442          }]
61443        }]
61444      },
61445      viewportWidth: 450
61446    },
61447    transforms: table_transforms,
61448    edit: table_edit,
61449    save: table_save_save,
61450    deprecated: table_deprecated
61451  };
61452  const table_init = () => initBlock({
61453    name: table_name,
61454    metadata: table_metadata,
61455    settings: table_settings
61456  });
61457  
61458  ;// ./node_modules/@wordpress/icons/build-module/library/table-of-contents.js
61459  /**
61460   * WordPress dependencies
61461   */
61462  
61463  
61464  const tableOfContents = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
61465    xmlns: "http://www.w3.org/2000/svg",
61466    viewBox: "0 0 24 24",
61467    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61468      fillRule: "evenodd",
61469      clipRule: "evenodd",
61470      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"
61471    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
61472      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"
61473    })]
61474  });
61475  /* harmony default export */ const table_of_contents = (tableOfContents);
61476  
61477  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/list.js
61478  
61479  /**
61480   * External dependencies
61481   */
61482  
61483  /**
61484   * Internal dependencies
61485   */
61486  
61487  const ENTRY_CLASS_NAME = 'wp-block-table-of-contents__entry';
61488  function TableOfContentsList({
61489    nestedHeadingList,
61490    disableLinkActivation,
61491    onClick
61492  }) {
61493    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61494      children: nestedHeadingList.map((node, index) => {
61495        const {
61496          content,
61497          link
61498        } = node.heading;
61499        const entry = link ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
61500          className: ENTRY_CLASS_NAME,
61501          href: link,
61502          "aria-disabled": disableLinkActivation || undefined,
61503          onClick: disableLinkActivation && 'function' === typeof onClick ? onClick : undefined,
61504          children: content
61505        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
61506          className: ENTRY_CLASS_NAME,
61507          children: content
61508        });
61509        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
61510          children: [entry, node.children ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
61511            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61512              nestedHeadingList: node.children,
61513              disableLinkActivation: disableLinkActivation,
61514              onClick: disableLinkActivation && 'function' === typeof onClick ? onClick : undefined
61515            })
61516          }) : null]
61517        }, index);
61518      })
61519    });
61520  }
61521  
61522  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/utils.js
61523  /**
61524   * Takes a flat list of heading parameters and nests them based on each header's
61525   * immediate parent's level.
61526   *
61527   * @param headingList The flat list of headings to nest.
61528   *
61529   * @return The nested list of headings.
61530   */
61531  function linearToNestedHeadingList(headingList) {
61532    const nestedHeadingList = [];
61533    headingList.forEach((heading, key) => {
61534      if (heading.content === '') {
61535        return;
61536      }
61537  
61538      // Make sure we are only working with the same level as the first iteration in our set.
61539      if (heading.level === headingList[0].level) {
61540        // Check that the next iteration will return a value.
61541        // If it does and the next level is greater than the current level,
61542        // the next iteration becomes a child of the current iteration.
61543        if (headingList[key + 1]?.level > heading.level) {
61544          // We must calculate the last index before the next iteration that
61545          // has the same level (siblings). We then use this index to slice
61546          // the array for use in recursion. This prevents duplicate nodes.
61547          let endOfSlice = headingList.length;
61548          for (let i = key + 1; i < headingList.length; i++) {
61549            if (headingList[i].level === heading.level) {
61550              endOfSlice = i;
61551              break;
61552            }
61553          }
61554  
61555          // We found a child node: Push a new node onto the return array
61556          // with children.
61557          nestedHeadingList.push({
61558            heading,
61559            children: linearToNestedHeadingList(headingList.slice(key + 1, endOfSlice))
61560          });
61561        } else {
61562          // No child node: Push a new node onto the return array.
61563          nestedHeadingList.push({
61564            heading,
61565            children: null
61566          });
61567        }
61568      }
61569    });
61570    return nestedHeadingList;
61571  }
61572  
61573  // EXTERNAL MODULE: ./node_modules/fast-deep-equal/es6/index.js
61574  var es6 = __webpack_require__(7734);
61575  var es6_default = /*#__PURE__*/__webpack_require__.n(es6);
61576  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/hooks.js
61577  /**
61578   * External dependencies
61579   */
61580  
61581  
61582  /**
61583   * WordPress dependencies
61584   */
61585  
61586  
61587  
61588  
61589  
61590  function getLatestHeadings(select, clientId) {
61591    var _select$getPermalink, _getBlockAttributes;
61592    const {
61593      getBlockAttributes,
61594      getBlockName,
61595      getClientIdsWithDescendants,
61596      getBlocksByName
61597    } = select(external_wp_blockEditor_namespaceObject.store);
61598  
61599    // FIXME: @wordpress/block-library should not depend on @wordpress/editor.
61600    // Blocks can be loaded into a *non-post* block editor, so to avoid
61601    // declaring @wordpress/editor as a dependency, we must access its
61602    // store by string. When the store is not available, editorSelectors
61603    // will be null, and the block's saved markup will lack permalinks.
61604    // eslint-disable-next-line @wordpress/data-no-store-string-literals
61605    const permalink = (_select$getPermalink = select('core/editor').getPermalink()) !== null && _select$getPermalink !== void 0 ? _select$getPermalink : null;
61606    const isPaginated = getBlocksByName('core/nextpage').length !== 0;
61607    const {
61608      onlyIncludeCurrentPage
61609    } = (_getBlockAttributes = getBlockAttributes(clientId)) !== null && _getBlockAttributes !== void 0 ? _getBlockAttributes : {};
61610  
61611    // Get the client ids of all blocks in the editor.
61612    const allBlockClientIds = getClientIdsWithDescendants();
61613  
61614    // 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.
61615    let tocPage = 1;
61616    if (isPaginated && onlyIncludeCurrentPage) {
61617      // We can't use getBlockIndex because it only returns the index
61618      // relative to sibling blocks.
61619      const tocIndex = allBlockClientIds.indexOf(clientId);
61620      for (const [blockIndex, blockClientId] of allBlockClientIds.entries()) {
61621        // If we've reached blocks after the Table of Contents, we've
61622        // finished calculating which page the block is on.
61623        if (blockIndex >= tocIndex) {
61624          break;
61625        }
61626        if (getBlockName(blockClientId) === 'core/nextpage') {
61627          tocPage++;
61628        }
61629      }
61630    }
61631    const latestHeadings = [];
61632  
61633    /** The page (of a paginated post) a heading will be part of. */
61634    let headingPage = 1;
61635    let headingPageLink = null;
61636  
61637    // If the core/editor store is available, we can add permalinks to the
61638    // generated table of contents.
61639    if (typeof permalink === 'string') {
61640      headingPageLink = isPaginated ? (0,external_wp_url_namespaceObject.addQueryArgs)(permalink, {
61641        page: headingPage
61642      }) : permalink;
61643    }
61644    for (const blockClientId of allBlockClientIds) {
61645      const blockName = getBlockName(blockClientId);
61646      if (blockName === 'core/nextpage') {
61647        headingPage++;
61648  
61649        // If we're only including headings from the current page (of
61650        // a paginated post), then exit the loop if we've reached the
61651        // pages after the one with the Table of Contents block.
61652        if (onlyIncludeCurrentPage && headingPage > tocPage) {
61653          break;
61654        }
61655        if (typeof permalink === 'string') {
61656          headingPageLink = (0,external_wp_url_namespaceObject.addQueryArgs)((0,external_wp_url_namespaceObject.removeQueryArgs)(permalink, ['page']), {
61657            page: headingPage
61658          });
61659        }
61660      }
61661      // If we're including all headings or we've reached headings on
61662      // the same page as the Table of Contents block, add them to the
61663      // list.
61664      else if (!onlyIncludeCurrentPage || headingPage === tocPage) {
61665        if (blockName === 'core/heading') {
61666          const headingAttributes = getBlockAttributes(blockClientId);
61667          const canBeLinked = typeof headingPageLink === 'string' && typeof headingAttributes.anchor === 'string' && headingAttributes.anchor !== '';
61668          latestHeadings.push({
61669            // Convert line breaks to spaces, and get rid of HTML tags in the headings.
61670            content: (0,external_wp_dom_namespaceObject.__unstableStripHTML)(headingAttributes.content.replace(/(<br *\/?>)+/g, ' ')),
61671            level: headingAttributes.level,
61672            link: canBeLinked ? `$headingPageLink}#${headingAttributes.anchor}` : null
61673          });
61674        }
61675      }
61676    }
61677    return latestHeadings;
61678  }
61679  function observeCallback(select, dispatch, clientId) {
61680    const {
61681      getBlockAttributes
61682    } = select(external_wp_blockEditor_namespaceObject.store);
61683    const {
61684      updateBlockAttributes,
61685      __unstableMarkNextChangeAsNotPersistent
61686    } = dispatch(external_wp_blockEditor_namespaceObject.store);
61687  
61688    /**
61689     * If the block no longer exists in the store, skip the update.
61690     * The "undo" action recreates the block and provides a new `clientId`.
61691     * The hook still might be observing the changes while the old block unmounts.
61692     */
61693    const attributes = getBlockAttributes(clientId);
61694    if (attributes === null) {
61695      return;
61696    }
61697    const headings = getLatestHeadings(select, clientId);
61698    if (!es6_default()(headings, attributes.headings)) {
61699      __unstableMarkNextChangeAsNotPersistent();
61700      updateBlockAttributes(clientId, {
61701        headings
61702      });
61703    }
61704  }
61705  function useObserveHeadings(clientId) {
61706    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
61707    (0,external_wp_element_namespaceObject.useEffect)(() => {
61708      // Todo: Limit subscription to block editor store when data no longer depends on `getPermalink`.
61709      // See: https://github.com/WordPress/gutenberg/pull/45513
61710      return registry.subscribe(() => observeCallback(registry.select, registry.dispatch, clientId));
61711    }, [registry, clientId]);
61712  }
61713  
61714  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/edit.js
61715  /**
61716   * WordPress dependencies
61717   */
61718  
61719  
61720  
61721  
61722  
61723  
61724  
61725  
61726  
61727  
61728  /**
61729   * Internal dependencies
61730   */
61731  
61732  
61733  
61734  
61735  
61736  /** @typedef {import('./utils').HeadingData} HeadingData */
61737  
61738  /**
61739   * Table of Contents block edit component.
61740   *
61741   * @param {Object}                       props                                   The props.
61742   * @param {Object}                       props.attributes                        The block attributes.
61743   * @param {HeadingData[]}                props.attributes.headings               A list of data for each heading in the post.
61744   * @param {boolean}                      props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).
61745   * @param {string}                       props.clientId
61746   * @param {(attributes: Object) => void} props.setAttributes
61747   *
61748   * @return {Component} The component.
61749   */
61750  
61751  function TableOfContentsEdit({
61752    attributes: {
61753      headings = [],
61754      onlyIncludeCurrentPage
61755    },
61756    clientId,
61757    setAttributes
61758  }) {
61759    useObserveHeadings(clientId);
61760    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
61761    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(TableOfContentsEdit, 'table-of-contents');
61762  
61763    // If a user clicks to a link prevent redirection and show a warning.
61764    const {
61765      createWarningNotice
61766    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
61767    const showRedirectionPreventedNotice = event => {
61768      event.preventDefault();
61769      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('Links are disabled in the editor.'), {
61770        id: `block-library/core/table-of-contents/redirection-prevented/$instanceId}`,
61771        type: 'snackbar'
61772      });
61773    };
61774    const canInsertList = (0,external_wp_data_namespaceObject.useSelect)(select => {
61775      const {
61776        getBlockRootClientId,
61777        canInsertBlockType
61778      } = select(external_wp_blockEditor_namespaceObject.store);
61779      const rootClientId = getBlockRootClientId(clientId);
61780      return canInsertBlockType('core/list', rootClientId);
61781    }, [clientId]);
61782    const {
61783      replaceBlocks
61784    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
61785    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
61786    const headingTree = linearToNestedHeadingList(headings);
61787    const toolbarControls = canInsertList && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
61788      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
61789        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
61790          onClick: () => replaceBlocks(clientId, (0,external_wp_blocks_namespaceObject.createBlock)('core/list', {
61791            ordered: true,
61792            values: (0,external_wp_element_namespaceObject.renderToString)(/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61793              nestedHeadingList: headingTree
61794            }))
61795          })),
61796          children: (0,external_wp_i18n_namespaceObject.__)('Convert to static list')
61797        })
61798      })
61799    });
61800    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
61801      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
61802        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
61803        resetAll: () => {
61804          setAttributes({
61805            onlyIncludeCurrentPage: false
61806          });
61807        },
61808        dropdownMenuProps: dropdownMenuProps,
61809        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
61810          hasValue: () => !!onlyIncludeCurrentPage,
61811          label: (0,external_wp_i18n_namespaceObject.__)('Only include current page'),
61812          onDeselect: () => setAttributes({
61813            onlyIncludeCurrentPage: false
61814          }),
61815          isShownByDefault: true,
61816          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
61817            __nextHasNoMarginBottom: true,
61818            label: (0,external_wp_i18n_namespaceObject.__)('Only include current page'),
61819            checked: onlyIncludeCurrentPage,
61820            onChange: value => setAttributes({
61821              onlyIncludeCurrentPage: value
61822            }),
61823            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).')
61824          })
61825        })
61826      })
61827    });
61828  
61829    // If there are no headings or the only heading is empty.
61830    // Note that the toolbar controls are intentionally omitted since the
61831    // "Convert to static list" option is useless to the placeholder state.
61832    if (headings.length === 0) {
61833      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61834        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
61835          ...blockProps,
61836          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
61837            icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
61838              icon: table_of_contents
61839            }),
61840            label: (0,external_wp_i18n_namespaceObject.__)('Table of Contents'),
61841            instructions: (0,external_wp_i18n_namespaceObject.__)('Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.')
61842          })
61843        }), inspectorControls]
61844      });
61845    }
61846    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
61847      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
61848        ...blockProps,
61849        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
61850          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61851            nestedHeadingList: headingTree,
61852            disableLinkActivation: true,
61853            onClick: showRedirectionPreventedNotice
61854          })
61855        })
61856      }), toolbarControls, inspectorControls]
61857    });
61858  }
61859  
61860  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/save.js
61861  /**
61862   * WordPress dependencies
61863   */
61864  
61865  
61866  /**
61867   * Internal dependencies
61868   */
61869  
61870  
61871  
61872  function table_of_contents_save_save({
61873    attributes: {
61874      headings = []
61875    }
61876  }) {
61877    if (headings.length === 0) {
61878      return null;
61879    }
61880    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("nav", {
61881      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
61882      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
61883        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TableOfContentsList, {
61884          nestedHeadingList: linearToNestedHeadingList(headings)
61885        })
61886      })
61887    });
61888  }
61889  
61890  ;// ./node_modules/@wordpress/block-library/build-module/table-of-contents/index.js
61891  /**
61892   * WordPress dependencies
61893   */
61894  
61895  
61896  
61897  /**
61898   * Internal dependencies
61899   */
61900  
61901  const table_of_contents_metadata = {
61902    $schema: "https://schemas.wp.org/trunk/block.json",
61903    apiVersion: 3,
61904    __experimental: true,
61905    name: "core/table-of-contents",
61906    title: "Table of Contents",
61907    category: "design",
61908    description: "Summarize your post with a list of headings. Add HTML anchors to Heading blocks to link them here.",
61909    keywords: ["document outline", "summary"],
61910    textdomain: "default",
61911    attributes: {
61912      headings: {
61913        type: "array",
61914        items: {
61915          type: "object"
61916        },
61917        "default": []
61918      },
61919      onlyIncludeCurrentPage: {
61920        type: "boolean",
61921        "default": false
61922      }
61923    },
61924    supports: {
61925      html: false,
61926      color: {
61927        text: true,
61928        background: true,
61929        gradients: true,
61930        link: true
61931      },
61932      spacing: {
61933        margin: true,
61934        padding: true
61935      },
61936      typography: {
61937        fontSize: true,
61938        lineHeight: true,
61939        __experimentalFontFamily: true,
61940        __experimentalFontWeight: true,
61941        __experimentalFontStyle: true,
61942        __experimentalTextTransform: true,
61943        __experimentalTextDecoration: true,
61944        __experimentalLetterSpacing: true,
61945        __experimentalDefaultControls: {
61946          fontSize: true
61947        }
61948      },
61949      interactivity: {
61950        clientNavigation: true
61951      },
61952      __experimentalBorder: {
61953        radius: true,
61954        color: true,
61955        width: true,
61956        style: true,
61957        __experimentalDefaultControls: {
61958          radius: true,
61959          color: true,
61960          width: true,
61961          style: true
61962        }
61963      }
61964    },
61965    style: "wp-block-table-of-contents"
61966  };
61967  
61968  
61969  const {
61970    name: table_of_contents_name
61971  } = table_of_contents_metadata;
61972  
61973  const table_of_contents_settings = {
61974    icon: table_of_contents,
61975    edit: TableOfContentsEdit,
61976    save: table_of_contents_save_save,
61977    example: {
61978      innerBlocks: [{
61979        name: 'core/heading',
61980        attributes: {
61981          level: 2,
61982          content: (0,external_wp_i18n_namespaceObject.__)('Heading')
61983        }
61984      }, {
61985        name: 'core/heading',
61986        attributes: {
61987          level: 3,
61988          content: (0,external_wp_i18n_namespaceObject.__)('Subheading')
61989        }
61990      }, {
61991        name: 'core/heading',
61992        attributes: {
61993          level: 2,
61994          content: (0,external_wp_i18n_namespaceObject.__)('Heading')
61995        }
61996      }, {
61997        name: 'core/heading',
61998        attributes: {
61999          level: 3,
62000          content: (0,external_wp_i18n_namespaceObject.__)('Subheading')
62001        }
62002      }],
62003      attributes: {
62004        headings: [{
62005          content: (0,external_wp_i18n_namespaceObject.__)('Heading'),
62006          level: 2
62007        }, {
62008          content: (0,external_wp_i18n_namespaceObject.__)('Subheading'),
62009          level: 3
62010        }, {
62011          content: (0,external_wp_i18n_namespaceObject.__)('Heading'),
62012          level: 2
62013        }, {
62014          content: (0,external_wp_i18n_namespaceObject.__)('Subheading'),
62015          level: 3
62016        }]
62017      }
62018    }
62019  };
62020  const table_of_contents_init = () => initBlock({
62021    name: table_of_contents_name,
62022    metadata: table_of_contents_metadata,
62023    settings: table_of_contents_settings
62024  });
62025  
62026  ;// ./node_modules/@wordpress/block-library/build-module/tag-cloud/transforms.js
62027  /**
62028   * WordPress dependencies
62029   */
62030  
62031  const tag_cloud_transforms_transforms = {
62032    from: [{
62033      type: 'block',
62034      blocks: ['core/categories'],
62035      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/tag-cloud')
62036    }],
62037    to: [{
62038      type: 'block',
62039      blocks: ['core/categories'],
62040      transform: () => (0,external_wp_blocks_namespaceObject.createBlock)('core/categories')
62041    }]
62042  };
62043  /* harmony default export */ const tag_cloud_transforms = (tag_cloud_transforms_transforms);
62044  
62045  ;// ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js
62046  /**
62047   * WordPress dependencies
62048   */
62049  
62050  
62051  
62052  
62053  
62054  
62055  
62056  /**
62057   * Internal dependencies
62058   */
62059  
62060  
62061  /**
62062   * Minimum number of tags a user can show using this block.
62063   *
62064   * @type {number}
62065   */
62066  
62067  const MIN_TAGS = 1;
62068  
62069  /**
62070   * Maximum number of tags a user can show using this block.
62071   *
62072   * @type {number}
62073   */
62074  const MAX_TAGS = 100;
62075  const MIN_FONT_SIZE = 0.1;
62076  const MAX_FONT_SIZE = 100;
62077  function TagCloudEdit({
62078    attributes,
62079    setAttributes
62080  }) {
62081    const {
62082      taxonomy,
62083      showTagCounts,
62084      numberOfTags,
62085      smallestFontSize,
62086      largestFontSize
62087    } = attributes;
62088    const [availableUnits] = (0,external_wp_blockEditor_namespaceObject.useSettings)('spacing.units');
62089    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
62090  
62091    // The `pt` unit is used as the default value and is therefore
62092    // always considered an available unit.
62093    const units = (0,external_wp_components_namespaceObject.__experimentalUseCustomUnits)({
62094      availableUnits: availableUnits ? [...availableUnits, 'pt'] : ['%', 'px', 'em', 'rem', 'pt']
62095    });
62096    const taxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getTaxonomies({
62097      per_page: -1
62098    }), []);
62099    const getTaxonomyOptions = () => {
62100      const selectOption = {
62101        label: (0,external_wp_i18n_namespaceObject.__)('- Select -'),
62102        value: '',
62103        disabled: true
62104      };
62105      const taxonomyOptions = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(tax => !!tax.show_cloud).map(item => {
62106        return {
62107          value: item.slug,
62108          label: item.name
62109        };
62110      });
62111      return [selectOption, ...taxonomyOptions];
62112    };
62113    const onFontSizeChange = (fontSizeLabel, newValue) => {
62114      // eslint-disable-next-line @wordpress/no-unused-vars-before-return
62115      const [quantity, newUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(newValue);
62116      if (!Number.isFinite(quantity)) {
62117        return;
62118      }
62119      const updateObj = {
62120        [fontSizeLabel]: newValue
62121      };
62122      // We need to keep in sync the `unit` changes to both `smallestFontSize`
62123      // and `largestFontSize` attributes.
62124      Object.entries({
62125        smallestFontSize,
62126        largestFontSize
62127      }).forEach(([attribute, currentValue]) => {
62128        const [currentQuantity, currentUnit] = (0,external_wp_components_namespaceObject.__experimentalParseQuantityAndUnitFromRawValue)(currentValue);
62129        // Only add an update if the other font size attribute has a different unit.
62130        if (attribute !== fontSizeLabel && currentUnit !== newUnit) {
62131          updateObj[attribute] = `$currentQuantity}$newUnit}`;
62132        }
62133      });
62134      setAttributes(updateObj);
62135    };
62136  
62137    // Remove border styles from the server-side attributes to prevent duplicate border.
62138    const serverSideAttributes = {
62139      ...attributes,
62140      style: {
62141        ...attributes?.style,
62142        border: undefined
62143      }
62144    };
62145    const inspectorControls = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
62146      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
62147        label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
62148        resetAll: () => {
62149          setAttributes({
62150            taxonomy: 'post_tag',
62151            showTagCounts: false,
62152            numberOfTags: 45,
62153            smallestFontSize: '8pt',
62154            largestFontSize: '22pt'
62155          });
62156        },
62157        dropdownMenuProps: dropdownMenuProps,
62158        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62159          hasValue: () => taxonomy !== 'post_tag',
62160          label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
62161          onDeselect: () => setAttributes({
62162            taxonomy: 'post_tag'
62163          }),
62164          isShownByDefault: true,
62165          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
62166            __nextHasNoMarginBottom: true,
62167            __next40pxDefaultSize: true,
62168            label: (0,external_wp_i18n_namespaceObject.__)('Taxonomy'),
62169            options: getTaxonomyOptions(),
62170            value: taxonomy,
62171            onChange: selectedTaxonomy => setAttributes({
62172              taxonomy: selectedTaxonomy
62173            })
62174          })
62175        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62176          hasValue: () => smallestFontSize !== '8pt' || largestFontSize !== '22pt',
62177          label: (0,external_wp_i18n_namespaceObject.__)('Font size'),
62178          onDeselect: () => setAttributes({
62179            smallestFontSize: '8pt',
62180            largestFontSize: '22pt'
62181          }),
62182          isShownByDefault: true,
62183          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
62184            gap: 4,
62185            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
62186              isBlock: true,
62187              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
62188                label: (0,external_wp_i18n_namespaceObject.__)('Smallest size'),
62189                value: smallestFontSize,
62190                onChange: value => {
62191                  onFontSizeChange('smallestFontSize', value);
62192                },
62193                units: units,
62194                min: MIN_FONT_SIZE,
62195                max: MAX_FONT_SIZE,
62196                size: "__unstable-large"
62197              })
62198            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
62199              isBlock: true,
62200              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalUnitControl, {
62201                label: (0,external_wp_i18n_namespaceObject.__)('Largest size'),
62202                value: largestFontSize,
62203                onChange: value => {
62204                  onFontSizeChange('largestFontSize', value);
62205                },
62206                units: units,
62207                min: MIN_FONT_SIZE,
62208                max: MAX_FONT_SIZE,
62209                size: "__unstable-large"
62210              })
62211            })]
62212          })
62213        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62214          hasValue: () => numberOfTags !== 45,
62215          label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
62216          onDeselect: () => setAttributes({
62217            numberOfTags: 45
62218          }),
62219          isShownByDefault: true,
62220          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
62221            __nextHasNoMarginBottom: true,
62222            __next40pxDefaultSize: true,
62223            label: (0,external_wp_i18n_namespaceObject.__)('Number of tags'),
62224            value: numberOfTags,
62225            onChange: value => setAttributes({
62226              numberOfTags: value
62227            }),
62228            min: MIN_TAGS,
62229            max: MAX_TAGS,
62230            required: true
62231          })
62232        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
62233          hasValue: () => showTagCounts !== false,
62234          label: (0,external_wp_i18n_namespaceObject.__)('Show tag counts'),
62235          onDeselect: () => setAttributes({
62236            showTagCounts: false
62237          }),
62238          isShownByDefault: true,
62239          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
62240            __nextHasNoMarginBottom: true,
62241            label: (0,external_wp_i18n_namespaceObject.__)('Show tag counts'),
62242            checked: showTagCounts,
62243            onChange: () => setAttributes({
62244              showTagCounts: !showTagCounts
62245            })
62246          })
62247        })]
62248      })
62249    });
62250    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
62251      children: [inspectorControls, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
62252        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)(),
62253        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
62254          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)((external_wp_serverSideRender_default()), {
62255            skipBlockSupportAttributes: true,
62256            block: "core/tag-cloud",
62257            attributes: serverSideAttributes
62258          })
62259        })
62260      })]
62261    });
62262  }
62263  /* harmony default export */ const tag_cloud_edit = (TagCloudEdit);
62264  
62265  ;// ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js
62266  /**
62267   * WordPress dependencies
62268   */
62269  
62270  
62271  /**
62272   * Internal dependencies
62273   */
62274  
62275  
62276  const tag_cloud_metadata = {
62277    $schema: "https://schemas.wp.org/trunk/block.json",
62278    apiVersion: 3,
62279    name: "core/tag-cloud",
62280    title: "Tag Cloud",
62281    category: "widgets",
62282    description: "A cloud of popular keywords, each sized by how often it appears.",
62283    textdomain: "default",
62284    attributes: {
62285      numberOfTags: {
62286        type: "number",
62287        "default": 45,
62288        minimum: 1,
62289        maximum: 100
62290      },
62291      taxonomy: {
62292        type: "string",
62293        "default": "post_tag"
62294      },
62295      showTagCounts: {
62296        type: "boolean",
62297        "default": false
62298      },
62299      smallestFontSize: {
62300        type: "string",
62301        "default": "8pt"
62302      },
62303      largestFontSize: {
62304        type: "string",
62305        "default": "22pt"
62306      }
62307    },
62308    styles: [{
62309      name: "default",
62310      label: "Default",
62311      isDefault: true
62312    }, {
62313      name: "outline",
62314      label: "Outline"
62315    }],
62316    supports: {
62317      html: false,
62318      align: true,
62319      spacing: {
62320        margin: true,
62321        padding: true
62322      },
62323      typography: {
62324        lineHeight: true,
62325        __experimentalFontFamily: true,
62326        __experimentalFontWeight: true,
62327        __experimentalFontStyle: true,
62328        __experimentalTextTransform: true,
62329        __experimentalLetterSpacing: true
62330      },
62331      interactivity: {
62332        clientNavigation: true
62333      },
62334      __experimentalBorder: {
62335        radius: true,
62336        color: true,
62337        width: true,
62338        style: true,
62339        __experimentalDefaultControls: {
62340          radius: true,
62341          color: true,
62342          width: true,
62343          style: true
62344        }
62345      }
62346    },
62347    editorStyle: "wp-block-tag-cloud-editor"
62348  };
62349  
62350  const {
62351    name: tag_cloud_name
62352  } = tag_cloud_metadata;
62353  
62354  const tag_cloud_settings = {
62355    icon: library_tag,
62356    example: {},
62357    edit: tag_cloud_edit,
62358    transforms: tag_cloud_transforms
62359  };
62360  const tag_cloud_init = () => initBlock({
62361    name: tag_cloud_name,
62362    metadata: tag_cloud_metadata,
62363    settings: tag_cloud_settings
62364  });
62365  
62366  ;// ./node_modules/tslib/tslib.es6.mjs
62367  /******************************************************************************
62368  Copyright (c) Microsoft Corporation.
62369  
62370  Permission to use, copy, modify, and/or distribute this software for any
62371  purpose with or without fee is hereby granted.
62372  
62373  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
62374  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
62375  AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
62376  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
62377  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
62378  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
62379  PERFORMANCE OF THIS SOFTWARE.
62380  ***************************************************************************** */
62381  /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
62382  
62383  var extendStatics = function(d, b) {
62384    extendStatics = Object.setPrototypeOf ||
62385        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
62386        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
62387    return extendStatics(d, b);
62388  };
62389  
62390  function __extends(d, b) {
62391    if (typeof b !== "function" && b !== null)
62392        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
62393    extendStatics(d, b);
62394    function __() { this.constructor = d; }
62395    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
62396  }
62397  
62398  var __assign = function() {
62399    __assign = Object.assign || function __assign(t) {
62400        for (var s, i = 1, n = arguments.length; i < n; i++) {
62401            s = arguments[i];
62402            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
62403        }
62404        return t;
62405    }
62406    return __assign.apply(this, arguments);
62407  }
62408  
62409  function __rest(s, e) {
62410    var t = {};
62411    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
62412        t[p] = s[p];
62413    if (s != null && typeof Object.getOwnPropertySymbols === "function")
62414        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
62415            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
62416                t[p[i]] = s[p[i]];
62417        }
62418    return t;
62419  }
62420  
62421  function __decorate(decorators, target, key, desc) {
62422    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
62423    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
62424    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;
62425    return c > 3 && r && Object.defineProperty(target, key, r), r;
62426  }
62427  
62428  function __param(paramIndex, decorator) {
62429    return function (target, key) { decorator(target, key, paramIndex); }
62430  }
62431  
62432  function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
62433    function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
62434    var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
62435    var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
62436    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
62437    var _, done = false;
62438    for (var i = decorators.length - 1; i >= 0; i--) {
62439        var context = {};
62440        for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
62441        for (var p in contextIn.access) context.access[p] = contextIn.access[p];
62442        context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
62443        var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
62444        if (kind === "accessor") {
62445            if (result === void 0) continue;
62446            if (result === null || typeof result !== "object") throw new TypeError("Object expected");
62447            if (_ = accept(result.get)) descriptor.get = _;
62448            if (_ = accept(result.set)) descriptor.set = _;
62449            if (_ = accept(result.init)) initializers.unshift(_);
62450        }
62451        else if (_ = accept(result)) {
62452            if (kind === "field") initializers.unshift(_);
62453            else descriptor[key] = _;
62454        }
62455    }
62456    if (target) Object.defineProperty(target, contextIn.name, descriptor);
62457    done = true;
62458  };
62459  
62460  function __runInitializers(thisArg, initializers, value) {
62461    var useValue = arguments.length > 2;
62462    for (var i = 0; i < initializers.length; i++) {
62463        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
62464    }
62465    return useValue ? value : void 0;
62466  };
62467  
62468  function __propKey(x) {
62469    return typeof x === "symbol" ? x : "".concat(x);
62470  };
62471  
62472  function __setFunctionName(f, name, prefix) {
62473    if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
62474    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
62475  };
62476  
62477  function __metadata(metadataKey, metadataValue) {
62478    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
62479  }
62480  
62481  function __awaiter(thisArg, _arguments, P, generator) {
62482    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
62483    return new (P || (P = Promise))(function (resolve, reject) {
62484        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
62485        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
62486        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
62487        step((generator = generator.apply(thisArg, _arguments || [])).next());
62488    });
62489  }
62490  
62491  function __generator(thisArg, body) {
62492    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);
62493    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
62494    function verb(n) { return function (v) { return step([n, v]); }; }
62495    function step(op) {
62496        if (f) throw new TypeError("Generator is already executing.");
62497        while (g && (g = 0, op[0] && (_ = 0)), _) try {
62498            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;
62499            if (y = 0, t) op = [op[0] & 2, t.value];
62500            switch (op[0]) {
62501                case 0: case 1: t = op; break;
62502                case 4: _.label++; return { value: op[1], done: false };
62503                case 5: _.label++; y = op[1]; op = [0]; continue;
62504                case 7: op = _.ops.pop(); _.trys.pop(); continue;
62505                default:
62506                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
62507                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62508                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62509                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
62510                    if (t[2]) _.ops.pop();
62511                    _.trys.pop(); continue;
62512            }
62513            op = body.call(thisArg, _);
62514        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
62515        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62516    }
62517  }
62518  
62519  var __createBinding = Object.create ? (function(o, m, k, k2) {
62520    if (k2 === undefined) k2 = k;
62521    var desc = Object.getOwnPropertyDescriptor(m, k);
62522    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
62523        desc = { enumerable: true, get: function() { return m[k]; } };
62524    }
62525    Object.defineProperty(o, k2, desc);
62526  }) : (function(o, m, k, k2) {
62527    if (k2 === undefined) k2 = k;
62528    o[k2] = m[k];
62529  });
62530  
62531  function __exportStar(m, o) {
62532    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
62533  }
62534  
62535  function __values(o) {
62536    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
62537    if (m) return m.call(o);
62538    if (o && typeof o.length === "number") return {
62539        next: function () {
62540            if (o && i >= o.length) o = void 0;
62541            return { value: o && o[i++], done: !o };
62542        }
62543    };
62544    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
62545  }
62546  
62547  function __read(o, n) {
62548    var m = typeof Symbol === "function" && o[Symbol.iterator];
62549    if (!m) return o;
62550    var i = m.call(o), r, ar = [], e;
62551    try {
62552        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
62553    }
62554    catch (error) { e = { error: error }; }
62555    finally {
62556        try {
62557            if (r && !r.done && (m = i["return"])) m.call(i);
62558        }
62559        finally { if (e) throw e.error; }
62560    }
62561    return ar;
62562  }
62563  
62564  /** @deprecated */
62565  function __spread() {
62566    for (var ar = [], i = 0; i < arguments.length; i++)
62567        ar = ar.concat(__read(arguments[i]));
62568    return ar;
62569  }
62570  
62571  /** @deprecated */
62572  function __spreadArrays() {
62573    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
62574    for (var r = Array(s), k = 0, i = 0; i < il; i++)
62575        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
62576            r[k] = a[j];
62577    return r;
62578  }
62579  
62580  function __spreadArray(to, from, pack) {
62581    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62582        if (ar || !(i in from)) {
62583            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
62584            ar[i] = from[i];
62585        }
62586    }
62587    return to.concat(ar || Array.prototype.slice.call(from));
62588  }
62589  
62590  function __await(v) {
62591    return this instanceof __await ? (this.v = v, this) : new __await(v);
62592  }
62593  
62594  function __asyncGenerator(thisArg, _arguments, generator) {
62595    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
62596    var g = generator.apply(thisArg, _arguments || []), i, q = [];
62597    return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
62598    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
62599    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]); } }
62600    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
62601    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
62602    function fulfill(value) { resume("next", value); }
62603    function reject(value) { resume("throw", value); }
62604    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
62605  }
62606  
62607  function __asyncDelegator(o) {
62608    var i, p;
62609    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
62610    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; }
62611  }
62612  
62613  function __asyncValues(o) {
62614    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
62615    var m = o[Symbol.asyncIterator], i;
62616    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);
62617    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); }); }; }
62618    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
62619  }
62620  
62621  function __makeTemplateObject(cooked, raw) {
62622    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
62623    return cooked;
62624  };
62625  
62626  var __setModuleDefault = Object.create ? (function(o, v) {
62627    Object.defineProperty(o, "default", { enumerable: true, value: v });
62628  }) : function(o, v) {
62629    o["default"] = v;
62630  };
62631  
62632  var ownKeys = function(o) {
62633    ownKeys = Object.getOwnPropertyNames || function (o) {
62634      var ar = [];
62635      for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
62636      return ar;
62637    };
62638    return ownKeys(o);
62639  };
62640  
62641  function __importStar(mod) {
62642    if (mod && mod.__esModule) return mod;
62643    var result = {};
62644    if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
62645    __setModuleDefault(result, mod);
62646    return result;
62647  }
62648  
62649  function __importDefault(mod) {
62650    return (mod && mod.__esModule) ? mod : { default: mod };
62651  }
62652  
62653  function __classPrivateFieldGet(receiver, state, kind, f) {
62654    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
62655    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");
62656    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
62657  }
62658  
62659  function __classPrivateFieldSet(receiver, state, value, kind, f) {
62660    if (kind === "m") throw new TypeError("Private method is not writable");
62661    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
62662    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");
62663    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
62664  }
62665  
62666  function __classPrivateFieldIn(state, receiver) {
62667    if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
62668    return typeof state === "function" ? receiver === state : state.has(receiver);
62669  }
62670  
62671  function __addDisposableResource(env, value, async) {
62672    if (value !== null && value !== void 0) {
62673      if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
62674      var dispose, inner;
62675      if (async) {
62676        if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
62677        dispose = value[Symbol.asyncDispose];
62678      }
62679      if (dispose === void 0) {
62680        if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
62681        dispose = value[Symbol.dispose];
62682        if (async) inner = dispose;
62683      }
62684      if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
62685      if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
62686      env.stack.push({ value: value, dispose: dispose, async: async });
62687    }
62688    else if (async) {
62689      env.stack.push({ async: true });
62690    }
62691    return value;
62692  }
62693  
62694  var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
62695    var e = new Error(message);
62696    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
62697  };
62698  
62699  function __disposeResources(env) {
62700    function fail(e) {
62701      env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
62702      env.hasError = true;
62703    }
62704    var r, s = 0;
62705    function next() {
62706      while (r = env.stack.pop()) {
62707        try {
62708          if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
62709          if (r.dispose) {
62710            var result = r.dispose.call(r.value);
62711            if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
62712          }
62713          else s |= 1;
62714        }
62715        catch (e) {
62716          fail(e);
62717        }
62718      }
62719      if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
62720      if (env.hasError) throw env.error;
62721    }
62722    return next();
62723  }
62724  
62725  function __rewriteRelativeImportExtension(path, preserveJsx) {
62726    if (typeof path === "string" && /^\.\.?\//.test(path)) {
62727        return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
62728            return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
62729        });
62730    }
62731    return path;
62732  }
62733  
62734  /* harmony default export */ const tslib_es6 = ({
62735    __extends,
62736    __assign,
62737    __rest,
62738    __decorate,
62739    __param,
62740    __esDecorate,
62741    __runInitializers,
62742    __propKey,
62743    __setFunctionName,
62744    __metadata,
62745    __awaiter,
62746    __generator,
62747    __createBinding,
62748    __exportStar,
62749    __values,
62750    __read,
62751    __spread,
62752    __spreadArrays,
62753    __spreadArray,
62754    __await,
62755    __asyncGenerator,
62756    __asyncDelegator,
62757    __asyncValues,
62758    __makeTemplateObject,
62759    __importStar,
62760    __importDefault,
62761    __classPrivateFieldGet,
62762    __classPrivateFieldSet,
62763    __classPrivateFieldIn,
62764    __addDisposableResource,
62765    __disposeResources,
62766    __rewriteRelativeImportExtension,
62767  });
62768  
62769  ;// ./node_modules/lower-case/dist.es2015/index.js
62770  /**
62771   * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
62772   */
62773  var SUPPORTED_LOCALE = {
62774      tr: {
62775          regexp: /\u0130|\u0049|\u0049\u0307/g,
62776          map: {
62777              İ: "\u0069",
62778              I: "\u0131",
62779              İ: "\u0069",
62780          },
62781      },
62782      az: {
62783          regexp: /\u0130/g,
62784          map: {
62785              İ: "\u0069",
62786              I: "\u0131",
62787              İ: "\u0069",
62788          },
62789      },
62790      lt: {
62791          regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g,
62792          map: {
62793              I: "\u0069\u0307",
62794              J: "\u006A\u0307",
62795              Į: "\u012F\u0307",
62796              Ì: "\u0069\u0307\u0300",
62797              Í: "\u0069\u0307\u0301",
62798              Ĩ: "\u0069\u0307\u0303",
62799          },
62800      },
62801  };
62802  /**
62803   * Localized lower case.
62804   */
62805  function localeLowerCase(str, locale) {
62806      var lang = SUPPORTED_LOCALE[locale.toLowerCase()];
62807      if (lang)
62808          return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));
62809      return lowerCase(str);
62810  }
62811  /**
62812   * Lower case as a function.
62813   */
62814  function lowerCase(str) {
62815      return str.toLowerCase();
62816  }
62817  
62818  ;// ./node_modules/no-case/dist.es2015/index.js
62819  
62820  // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
62821  var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
62822  // Remove all non-word characters.
62823  var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
62824  /**
62825   * Normalize the string into something other libraries can manipulate easier.
62826   */
62827  function noCase(input, options) {
62828      if (options === void 0) { options = {}; }
62829      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;
62830      var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
62831      var start = 0;
62832      var end = result.length;
62833      // Trim the delimiter from around the output string.
62834      while (result.charAt(start) === "\0")
62835          start++;
62836      while (result.charAt(end - 1) === "\0")
62837          end--;
62838      // Transform each token independently.
62839      return result.slice(start, end).split("\0").map(transform).join(delimiter);
62840  }
62841  /**
62842   * Replace `re` in the input string with the replacement value.
62843   */
62844  function replace(input, re, value) {
62845      if (re instanceof RegExp)
62846          return input.replace(re, value);
62847      return re.reduce(function (input, re) { return input.replace(re, value); }, input);
62848  }
62849  
62850  ;// ./node_modules/upper-case-first/dist.es2015/index.js
62851  /**
62852   * Upper case the first character of an input string.
62853   */
62854  function upperCaseFirst(input) {
62855      return input.charAt(0).toUpperCase() + input.substr(1);
62856  }
62857  
62858  ;// ./node_modules/capital-case/dist.es2015/index.js
62859  
62860  
62861  
62862  function capitalCaseTransform(input) {
62863      return upperCaseFirst(input.toLowerCase());
62864  }
62865  function capitalCase(input, options) {
62866      if (options === void 0) { options = {}; }
62867      return noCase(input, __assign({ delimiter: " ", transform: capitalCaseTransform }, options));
62868  }
62869  
62870  ;// ./node_modules/dot-case/dist.es2015/index.js
62871  
62872  
62873  function dotCase(input, options) {
62874      if (options === void 0) { options = {}; }
62875      return noCase(input, __assign({ delimiter: "." }, options));
62876  }
62877  
62878  ;// ./node_modules/param-case/dist.es2015/index.js
62879  
62880  
62881  function paramCase(input, options) {
62882      if (options === void 0) { options = {}; }
62883      return dotCase(input, __assign({ delimiter: "-" }, options));
62884  }
62885  
62886  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/hooks.js
62887  /**
62888   * External dependencies
62889   */
62890  
62891  
62892  /**
62893   * WordPress dependencies
62894   */
62895  
62896  
62897  
62898  
62899  
62900  
62901  
62902  /**
62903   * Internal dependencies
62904   */
62905  
62906  
62907  /**
62908   * Retrieves the available template parts for the given area.
62909   *
62910   * @param {string} area       Template part area.
62911   * @param {string} excludedId Template part ID to exclude.
62912   *
62913   * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.
62914   */
62915  function useAlternativeTemplateParts(area, excludedId) {
62916    const {
62917      templateParts,
62918      isResolving
62919    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
62920      const {
62921        getEntityRecords,
62922        isResolving: _isResolving
62923      } = select(external_wp_coreData_namespaceObject.store);
62924      const query = {
62925        per_page: -1
62926      };
62927      return {
62928        templateParts: getEntityRecords('postType', 'wp_template_part', query),
62929        isResolving: _isResolving('getEntityRecords', ['postType', 'wp_template_part', query])
62930      };
62931    }, []);
62932    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
62933      if (!templateParts) {
62934        return [];
62935      }
62936      return templateParts.filter(templatePart => createTemplatePartId(templatePart.theme, templatePart.slug) !== excludedId && (!area || 'uncategorized' === area || templatePart.area === area)) || [];
62937    }, [templateParts, area, excludedId]);
62938    return {
62939      templateParts: filteredTemplateParts,
62940      isResolving
62941    };
62942  }
62943  
62944  /**
62945   * Retrieves the available block patterns for the given area.
62946   *
62947   * @param {string} area     Template part area.
62948   * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).
62949   *
62950   * @return {Array} array of block patterns.
62951   */
62952  function useAlternativeBlockPatterns(area, clientId) {
62953    return (0,external_wp_data_namespaceObject.useSelect)(select => {
62954      const blockNameWithArea = area ? `core/template-part/$area}` : 'core/template-part';
62955      const {
62956        getBlockRootClientId,
62957        getPatternsByBlockTypes
62958      } = select(external_wp_blockEditor_namespaceObject.store);
62959      const rootClientId = getBlockRootClientId(clientId);
62960      return getPatternsByBlockTypes(blockNameWithArea, rootClientId);
62961    }, [area, clientId]);
62962  }
62963  function useCreateTemplatePartFromBlocks(area, setAttributes) {
62964    const {
62965      saveEntityRecord
62966    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
62967    return async (blocks = [], title = (0,external_wp_i18n_namespaceObject.__)('Untitled Template Part')) => {
62968      // Currently template parts only allow latin chars.
62969      // Fallback slug will receive suffix by default.
62970      const cleanSlug = paramCase(title).replace(/[^\w-]+/g, '') || 'wp-custom-part';
62971  
62972      // If we have `area` set from block attributes, means an exposed
62973      // block variation was inserted. So add this prop to the template
62974      // part entity on creation. Afterwards remove `area` value from
62975      // block attributes.
62976      const record = {
62977        title,
62978        slug: cleanSlug,
62979        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
62980        // `area` is filterable on the server and defaults to `UNCATEGORIZED`
62981        // if provided value is not allowed.
62982        area
62983      };
62984      const templatePart = await saveEntityRecord('postType', 'wp_template_part', record);
62985      setAttributes({
62986        slug: templatePart.slug,
62987        theme: templatePart.theme,
62988        area: undefined
62989      });
62990    };
62991  }
62992  
62993  /**
62994   * Retrieves the template part area object.
62995   *
62996   * @param {string} area Template part area identifier.
62997   *
62998   * @return {{icon: Object, label: string, tagName: string}} Template Part area.
62999   */
63000  function useTemplatePartArea(area) {
63001    return (0,external_wp_data_namespaceObject.useSelect)(select => {
63002      var _selectedArea$area_ta;
63003      const definedAreas = select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas || [];
63004      const selectedArea = definedAreas.find(definedArea => definedArea.area === area);
63005      const defaultArea = definedAreas.find(definedArea => definedArea.area === 'uncategorized');
63006      return {
63007        icon: selectedArea?.icon || defaultArea?.icon,
63008        label: selectedArea?.label || (0,external_wp_i18n_namespaceObject.__)('Template Part'),
63009        tagName: (_selectedArea$area_ta = selectedArea?.area_tag) !== null && _selectedArea$area_ta !== void 0 ? _selectedArea$area_ta : 'div'
63010      };
63011    }, [area]);
63012  }
63013  
63014  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/title-modal.js
63015  /**
63016   * WordPress dependencies
63017   */
63018  
63019  
63020  
63021  
63022  function TitleModal({
63023    areaLabel,
63024    onClose,
63025    onSubmit
63026  }) {
63027    // Restructure onCreate to set the blocks on local state.
63028    // Add modal to confirm title and trigger onCreate.
63029    const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)('');
63030    const submitForCreation = event => {
63031      event.preventDefault();
63032      onSubmit(title);
63033    };
63034    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
63035      title: (0,external_wp_i18n_namespaceObject.sprintf)(
63036      // Translators: %s as template part area title ("Header", "Footer", etc.).
63037      (0,external_wp_i18n_namespaceObject.__)('Create new %s'), areaLabel.toLowerCase()),
63038      onRequestClose: onClose,
63039      focusOnMount: "firstContentElement",
63040      size: "small",
63041      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
63042        onSubmit: submitForCreation,
63043        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
63044          spacing: "5",
63045          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
63046            label: (0,external_wp_i18n_namespaceObject.__)('Name'),
63047            value: title,
63048            onChange: setTitle,
63049            placeholder: (0,external_wp_i18n_namespaceObject.__)('Custom Template Part'),
63050            __nextHasNoMarginBottom: true,
63051            __next40pxDefaultSize: true
63052          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
63053            justify: "right",
63054            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63055              __next40pxDefaultSize: true,
63056              variant: "tertiary",
63057              onClick: () => {
63058                onClose();
63059                setTitle('');
63060              },
63061              children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
63062            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63063              variant: "primary",
63064              type: "submit",
63065              accessibleWhenDisabled: true,
63066              disabled: !title.length,
63067              __next40pxDefaultSize: true,
63068              children: (0,external_wp_i18n_namespaceObject.__)('Create')
63069            })]
63070          })]
63071        })
63072      })
63073    });
63074  }
63075  
63076  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/placeholder.js
63077  /**
63078   * WordPress dependencies
63079   */
63080  
63081  
63082  
63083  
63084  
63085  
63086  /**
63087   * Internal dependencies
63088   */
63089  
63090  
63091  
63092  function TemplatePartPlaceholder({
63093    area,
63094    clientId,
63095    templatePartId,
63096    onOpenSelectionModal,
63097    setAttributes
63098  }) {
63099    const {
63100      templateParts,
63101      isResolving
63102    } = useAlternativeTemplateParts(area, templatePartId);
63103    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
63104    const {
63105      isBlockBasedTheme,
63106      canCreateTemplatePart
63107    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63108      const {
63109        getCurrentTheme,
63110        canUser
63111      } = select(external_wp_coreData_namespaceObject.store);
63112      return {
63113        isBlockBasedTheme: getCurrentTheme()?.is_block_theme,
63114        canCreateTemplatePart: canUser('create', {
63115          kind: 'postType',
63116          name: 'wp_template_part'
63117        })
63118      };
63119    }, []);
63120    const [showTitleModal, setShowTitleModal] = (0,external_wp_element_namespaceObject.useState)(false);
63121    const areaObject = useTemplatePartArea(area);
63122    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
63123    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Placeholder, {
63124      icon: areaObject.icon,
63125      label: areaObject.label,
63126      instructions: isBlockBasedTheme ? (0,external_wp_i18n_namespaceObject.sprintf)(
63127      // Translators: %s as template part area title ("Header", "Footer", etc.).
63128      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase()) : (0,external_wp_i18n_namespaceObject.sprintf)(
63129      // Translators: %s as template part area title ("Header", "Footer", etc.).
63130      (0,external_wp_i18n_namespaceObject.__)('Choose an existing %s.'), areaObject.label.toLowerCase()),
63131      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, {
63132        __next40pxDefaultSize: true,
63133        variant: "primary",
63134        onClick: onOpenSelectionModal,
63135        children: (0,external_wp_i18n_namespaceObject.__)('Choose')
63136      }), !isResolving && isBlockBasedTheme && canCreateTemplatePart && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63137        __next40pxDefaultSize: true,
63138        variant: "secondary",
63139        onClick: () => {
63140          setShowTitleModal(true);
63141        },
63142        children: (0,external_wp_i18n_namespaceObject.__)('Start blank')
63143      }), showTitleModal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TitleModal, {
63144        areaLabel: areaObject.label,
63145        onClose: () => setShowTitleModal(false),
63146        onSubmit: title => {
63147          createFromBlocks([], title);
63148        }
63149      })]
63150    });
63151  }
63152  
63153  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js
63154  /**
63155   * WordPress dependencies
63156   */
63157  
63158  
63159  /**
63160   * Internal dependencies
63161   */
63162  
63163  
63164  /**
63165   * This maps the properties of a template part to those of a block pattern.
63166   * @param {Object} templatePart
63167   * @return {Object} The template part in the shape of block pattern.
63168   */
63169  function mapTemplatePartToBlockPattern(templatePart) {
63170    return {
63171      name: createTemplatePartId(templatePart.theme, templatePart.slug),
63172      title: templatePart.title.rendered,
63173      blocks: (0,external_wp_blocks_namespaceObject.parse)(templatePart.content.raw),
63174      templatePart
63175    };
63176  }
63177  
63178  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/selection-modal.js
63179  /**
63180   * WordPress dependencies
63181   */
63182  
63183  
63184  
63185  
63186  
63187  
63188  
63189  /**
63190   * Internal dependencies
63191   */
63192  
63193  
63194  
63195  
63196  function TemplatePartSelectionModal({
63197    setAttributes,
63198    onClose,
63199    templatePartId = null,
63200    area,
63201    clientId
63202  }) {
63203    const [searchValue, setSearchValue] = (0,external_wp_element_namespaceObject.useState)('');
63204    const {
63205      templateParts
63206    } = useAlternativeTemplateParts(area, templatePartId);
63207  
63208    // We can map template parts to block patters to reuse the BlockPatternsList UI
63209    const filteredTemplateParts = (0,external_wp_element_namespaceObject.useMemo)(() => {
63210      const partsAsPatterns = templateParts.map(templatePart => mapTemplatePartToBlockPattern(templatePart));
63211      return searchPatterns(partsAsPatterns, searchValue);
63212    }, [templateParts, searchValue]);
63213    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
63214    const filteredBlockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
63215      return searchPatterns(blockPatterns, searchValue);
63216    }, [blockPatterns, searchValue]);
63217    const {
63218      createSuccessNotice
63219    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63220    const onTemplatePartSelect = templatePart => {
63221      setAttributes({
63222        slug: templatePart.slug,
63223        theme: templatePart.theme,
63224        area: undefined
63225      });
63226      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template part title. */
63227      (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" inserted.'), templatePart.title?.rendered || templatePart.slug), {
63228        type: 'snackbar'
63229      });
63230      onClose();
63231    };
63232    const hasTemplateParts = !!filteredTemplateParts.length;
63233    const hasBlockPatterns = !!filteredBlockPatterns.length;
63234    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
63235      className: "block-library-template-part__selection-content",
63236      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
63237        className: "block-library-template-part__selection-search",
63238        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
63239          __nextHasNoMarginBottom: true,
63240          onChange: setSearchValue,
63241          value: searchValue,
63242          label: (0,external_wp_i18n_namespaceObject.__)('Search'),
63243          placeholder: (0,external_wp_i18n_namespaceObject.__)('Search')
63244        })
63245      }), hasTemplateParts && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
63246        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
63247          children: (0,external_wp_i18n_namespaceObject.__)('Existing template parts')
63248        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
63249          blockPatterns: filteredTemplateParts,
63250          onClickPattern: pattern => {
63251            onTemplatePartSelect(pattern.templatePart);
63252          }
63253        })]
63254      }), !hasTemplateParts && !hasBlockPatterns && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHStack, {
63255        alignment: "center",
63256        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
63257          children: (0,external_wp_i18n_namespaceObject.__)('No results found.')
63258        })
63259      })]
63260    });
63261  }
63262  
63263  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/utils/transformers.js
63264  /**
63265   * WordPress dependencies
63266   */
63267  
63268  
63269  /**
63270   * Converts a widget entity record into a block.
63271   *
63272   * @param {Object} widget The widget entity record.
63273   * @return {Object} a block (converted from the entity record).
63274   */
63275  function transformWidgetToBlock(widget) {
63276    if (widget.id_base !== 'block') {
63277      let attributes;
63278      if (widget._embedded.about[0].is_multi) {
63279        attributes = {
63280          idBase: widget.id_base,
63281          instance: widget.instance
63282        };
63283      } else {
63284        attributes = {
63285          id: widget.id
63286        };
63287      }
63288      return switchLegacyWidgetType((0,external_wp_blocks_namespaceObject.createBlock)('core/legacy-widget', attributes));
63289    }
63290    const parsedBlocks = (0,external_wp_blocks_namespaceObject.parse)(widget.instance.raw.content, {
63291      __unstableSkipAutop: true
63292    });
63293    if (!parsedBlocks.length) {
63294      return undefined;
63295    }
63296    const block = parsedBlocks[0];
63297    if (block.name === 'core/widget-group') {
63298      return (0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getGroupingBlockName)(), undefined, transformInnerBlocks(block.innerBlocks));
63299    }
63300    if (block.innerBlocks.length > 0) {
63301      return (0,external_wp_blocks_namespaceObject.cloneBlock)(block, undefined, transformInnerBlocks(block.innerBlocks));
63302    }
63303    return block;
63304  }
63305  
63306  /**
63307   * Switch Legacy Widget to the first matching transformation block.
63308   *
63309   * @param {Object} block Legacy Widget block object
63310   * @return {Object|undefined} a block
63311   */
63312  function switchLegacyWidgetType(block) {
63313    const transforms = (0,external_wp_blocks_namespaceObject.getPossibleBlockTransformations)([block]).filter(item => {
63314      // The block without any transformations can't be a wildcard.
63315      if (!item.transforms) {
63316        return true;
63317      }
63318      const hasWildCardFrom = item.transforms?.from?.find(from => from.blocks && from.blocks.includes('*'));
63319      const hasWildCardTo = item.transforms?.to?.find(to => to.blocks && to.blocks.includes('*'));
63320  
63321      // Skip wildcard transformations.
63322      return !hasWildCardFrom && !hasWildCardTo;
63323    });
63324    if (!transforms.length) {
63325      return undefined;
63326    }
63327    return (0,external_wp_blocks_namespaceObject.switchToBlockType)(block, transforms[0].name);
63328  }
63329  function transformInnerBlocks(innerBlocks = []) {
63330    return innerBlocks.flatMap(block => {
63331      if (block.name === 'core/legacy-widget') {
63332        return switchLegacyWidgetType(block);
63333      }
63334      return (0,external_wp_blocks_namespaceObject.createBlock)(block.name, block.attributes, transformInnerBlocks(block.innerBlocks));
63335    }).filter(block => !!block);
63336  }
63337  
63338  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/import-controls.js
63339  /**
63340   * WordPress dependencies
63341   */
63342  
63343  
63344  
63345  
63346  
63347  
63348  
63349  /**
63350   * Internal dependencies
63351   */
63352  
63353  
63354  
63355  const SIDEBARS_QUERY = {
63356    per_page: -1,
63357    _fields: 'id,name,description,status,widgets'
63358  };
63359  function TemplatePartImportControls({
63360    area,
63361    setAttributes
63362  }) {
63363    const [selectedSidebar, setSelectedSidebar] = (0,external_wp_element_namespaceObject.useState)('');
63364    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
63365    const registry = (0,external_wp_data_namespaceObject.useRegistry)();
63366    const {
63367      sidebars,
63368      hasResolved
63369    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63370      const {
63371        getSidebars,
63372        hasFinishedResolution
63373      } = select(external_wp_coreData_namespaceObject.store);
63374      return {
63375        sidebars: getSidebars(SIDEBARS_QUERY),
63376        hasResolved: hasFinishedResolution('getSidebars', [SIDEBARS_QUERY])
63377      };
63378    }, []);
63379    const {
63380      createErrorNotice
63381    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63382    const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
63383    const options = (0,external_wp_element_namespaceObject.useMemo)(() => {
63384      const sidebarOptions = (sidebars !== null && sidebars !== void 0 ? sidebars : []).filter(widgetArea => widgetArea.id !== 'wp_inactive_widgets' && widgetArea.widgets.length > 0).map(widgetArea => {
63385        return {
63386          value: widgetArea.id,
63387          label: widgetArea.name
63388        };
63389      });
63390      if (!sidebarOptions.length) {
63391        return [];
63392      }
63393      return [{
63394        value: '',
63395        label: (0,external_wp_i18n_namespaceObject.__)('Select widget area')
63396      }, ...sidebarOptions];
63397    }, [sidebars]);
63398  
63399    // Render an empty node while data is loading to avoid SlotFill re-positioning bug.
63400    // See: https://github.com/WordPress/gutenberg/issues/15641.
63401    if (!hasResolved) {
63402      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {
63403        marginBottom: "0"
63404      });
63405    }
63406    if (hasResolved && !options.length) {
63407      return null;
63408    }
63409    async function createFromWidgets(event) {
63410      event.preventDefault();
63411      if (isBusy || !selectedSidebar) {
63412        return;
63413      }
63414      setIsBusy(true);
63415      const sidebar = options.find(({
63416        value
63417      }) => value === selectedSidebar);
63418      const {
63419        getWidgets
63420      } = registry.resolveSelect(external_wp_coreData_namespaceObject.store);
63421  
63422      // The widgets API always returns a successful response.
63423      const widgets = await getWidgets({
63424        sidebar: sidebar.value,
63425        _embed: 'about'
63426      });
63427      const skippedWidgets = new Set();
63428      const blocks = widgets.flatMap(widget => {
63429        const block = transformWidgetToBlock(widget);
63430  
63431        // Skip the block if we have no matching transformations.
63432        if (!block) {
63433          skippedWidgets.add(widget.id_base);
63434          return [];
63435        }
63436        return block;
63437      });
63438      await createFromBlocks(blocks, /* translators: %s: name of the widget area */
63439      (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Widget area: %s'), sidebar.label));
63440      if (skippedWidgets.size) {
63441        createErrorNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: the list of widgets */
63442        (0,external_wp_i18n_namespaceObject.__)('Unable to import the following widgets: %s.'), Array.from(skippedWidgets).join(', ')), {
63443          type: 'snackbar'
63444        });
63445      }
63446      setIsBusy(false);
63447    }
63448    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {
63449      marginBottom: "4",
63450      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
63451        as: "form",
63452        onSubmit: createFromWidgets,
63453        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexBlock, {
63454          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63455            label: (0,external_wp_i18n_namespaceObject.__)('Import widget area'),
63456            value: selectedSidebar,
63457            options: options,
63458            onChange: value => setSelectedSidebar(value),
63459            disabled: !options.length,
63460            __next40pxDefaultSize: true,
63461            __nextHasNoMarginBottom: true
63462          })
63463        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
63464          style: {
63465            marginBottom: '8px',
63466            marginTop: 'auto'
63467          },
63468          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
63469            __next40pxDefaultSize: true,
63470            variant: "primary",
63471            type: "submit",
63472            isBusy: isBusy,
63473            "aria-disabled": isBusy || !selectedSidebar,
63474            children: (0,external_wp_i18n_namespaceObject._x)('Import', 'button label')
63475          })
63476        })]
63477      })
63478    });
63479  }
63480  
63481  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/advanced-controls.js
63482  /**
63483   * WordPress dependencies
63484   */
63485  
63486  
63487  
63488  
63489  
63490  /**
63491   * Internal dependencies
63492   */
63493  
63494  
63495  
63496  function TemplatePartAdvancedControls({
63497    tagName,
63498    setAttributes,
63499    isEntityAvailable,
63500    templatePartId,
63501    defaultWrapper,
63502    hasInnerBlocks
63503  }) {
63504    const [area, setArea] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'area', templatePartId);
63505    const [title, setTitle] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', 'wp_template_part', 'title', templatePartId);
63506    const defaultTemplatePartAreas = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas || [], []);
63507    const areaOptions = defaultTemplatePartAreas.map(({
63508      label,
63509      area: _area
63510    }) => ({
63511      label,
63512      value: _area
63513    }));
63514    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63515      children: [isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63516        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
63517          __next40pxDefaultSize: true,
63518          __nextHasNoMarginBottom: true,
63519          label: (0,external_wp_i18n_namespaceObject.__)('Title'),
63520          value: title,
63521          onChange: value => {
63522            setTitle(value);
63523          },
63524          onFocus: event => event.target.select()
63525        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63526          __next40pxDefaultSize: true,
63527          __nextHasNoMarginBottom: true,
63528          label: (0,external_wp_i18n_namespaceObject.__)('Area'),
63529          labelPosition: "top",
63530          options: areaOptions,
63531          value: area,
63532          onChange: setArea
63533        })]
63534      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
63535        __nextHasNoMarginBottom: true,
63536        __next40pxDefaultSize: true,
63537        label: (0,external_wp_i18n_namespaceObject.__)('HTML element'),
63538        options: [{
63539          label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: HTML tag based on area. */
63540          (0,external_wp_i18n_namespaceObject.__)('Default based on area (%s)'), `<$defaultWrapper}>`),
63541          value: ''
63542        }, {
63543          label: '<header>',
63544          value: 'header'
63545        }, {
63546          label: '<main>',
63547          value: 'main'
63548        }, {
63549          label: '<section>',
63550          value: 'section'
63551        }, {
63552          label: '<article>',
63553          value: 'article'
63554        }, {
63555          label: '<aside>',
63556          value: 'aside'
63557        }, {
63558          label: '<footer>',
63559          value: 'footer'
63560        }, {
63561          label: '<div>',
63562          value: 'div'
63563        }],
63564        value: tagName || '',
63565        onChange: value => setAttributes({
63566          tagName: value
63567        }),
63568        help: htmlElementMessages[tagName]
63569      }), !hasInnerBlocks && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartImportControls, {
63570        area: area,
63571        setAttributes: setAttributes
63572      })]
63573    });
63574  }
63575  
63576  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/inner-blocks.js
63577  /**
63578   * WordPress dependencies
63579   */
63580  
63581  
63582  
63583  
63584  
63585  
63586  function useRenderAppender(hasInnerBlocks) {
63587    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
63588    // Disable appending when the editing mode is 'contentOnly'. This is so that the user can't
63589    // append into a template part when editing a page in the site editor. See
63590    // DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a
63591    // block editor API for achieving this.
63592    if (blockEditingMode === 'contentOnly') {
63593      return false;
63594    }
63595    if (!hasInnerBlocks) {
63596      return external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender;
63597    }
63598  }
63599  function useLayout(layout) {
63600    const themeSupportsLayout = (0,external_wp_data_namespaceObject.useSelect)(select => {
63601      const {
63602        getSettings
63603      } = select(external_wp_blockEditor_namespaceObject.store);
63604      return getSettings()?.supportsLayout;
63605    }, []);
63606    const [defaultLayout] = (0,external_wp_blockEditor_namespaceObject.useSettings)('layout');
63607    if (themeSupportsLayout) {
63608      return layout?.inherit ? defaultLayout || {} : layout;
63609    }
63610  }
63611  function NonEditableTemplatePartPreview({
63612    postId: id,
63613    layout,
63614    tagName: TagName,
63615    blockProps
63616  }) {
63617    (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)('disabled');
63618    const {
63619      content,
63620      editedBlocks
63621    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63622      if (!id) {
63623        return {};
63624      }
63625      const {
63626        getEditedEntityRecord
63627      } = select(external_wp_coreData_namespaceObject.store);
63628      const editedRecord = getEditedEntityRecord('postType', 'wp_template_part', id, {
63629        context: 'view'
63630      });
63631      return {
63632        editedBlocks: editedRecord.blocks,
63633        content: editedRecord.content
63634      };
63635    }, [id]);
63636    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
63637      if (!id) {
63638        return undefined;
63639      }
63640      if (editedBlocks) {
63641        return editedBlocks;
63642      }
63643      if (!content || typeof content !== 'string') {
63644        return [];
63645      }
63646      return (0,external_wp_blocks_namespaceObject.parse)(content);
63647    }, [id, editedBlocks, content]);
63648    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
63649      value: blocks,
63650      onInput: () => {},
63651      onChange: () => {},
63652      renderAppender: false,
63653      layout: useLayout(layout)
63654    });
63655    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63656      ...innerBlocksProps
63657    });
63658  }
63659  function EditableTemplatePartInnerBlocks({
63660    postId: id,
63661    hasInnerBlocks,
63662    layout,
63663    tagName: TagName,
63664    blockProps
63665  }) {
63666    const onNavigateToEntityRecord = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getSettings().onNavigateToEntityRecord, []);
63667    const [blocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', 'wp_template_part', {
63668      id
63669    });
63670    const innerBlocksProps = (0,external_wp_blockEditor_namespaceObject.useInnerBlocksProps)(blockProps, {
63671      value: blocks,
63672      onInput,
63673      onChange,
63674      renderAppender: useRenderAppender(hasInnerBlocks),
63675      layout: useLayout(layout)
63676    });
63677    const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
63678    const customProps = blockEditingMode === 'contentOnly' && onNavigateToEntityRecord ? {
63679      onDoubleClick: () => onNavigateToEntityRecord({
63680        postId: id,
63681        postType: 'wp_template_part'
63682      })
63683    } : {};
63684    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63685      ...innerBlocksProps,
63686      ...customProps
63687    });
63688  }
63689  function TemplatePartInnerBlocks({
63690    postId: id,
63691    hasInnerBlocks,
63692    layout,
63693    tagName: TagName,
63694    blockProps
63695  }) {
63696    const {
63697      canViewTemplatePart,
63698      canEditTemplatePart
63699    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63700      return {
63701        canViewTemplatePart: !!select(external_wp_coreData_namespaceObject.store).canUser('read', {
63702          kind: 'postType',
63703          name: 'wp_template_part',
63704          id
63705        }),
63706        canEditTemplatePart: !!select(external_wp_coreData_namespaceObject.store).canUser('update', {
63707          kind: 'postType',
63708          name: 'wp_template_part',
63709          id
63710        })
63711      };
63712    }, [id]);
63713    if (!canViewTemplatePart) {
63714      return null;
63715    }
63716    const TemplatePartInnerBlocksComponent = canEditTemplatePart ? EditableTemplatePartInnerBlocks : NonEditableTemplatePartPreview;
63717    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartInnerBlocksComponent, {
63718      postId: id,
63719      hasInnerBlocks: hasInnerBlocks,
63720      layout: layout,
63721      tagName: TagName,
63722      blockProps: blockProps
63723    });
63724  }
63725  
63726  ;// ./node_modules/@wordpress/block-library/build-module/template-part/edit/index.js
63727  /**
63728   * WordPress dependencies
63729   */
63730  
63731  
63732  
63733  
63734  
63735  
63736  
63737  
63738  
63739  /**
63740   * Internal dependencies
63741   */
63742  
63743  
63744  
63745  
63746  
63747  
63748  
63749  function ReplaceButton({
63750    isEntityAvailable,
63751    area,
63752    templatePartId,
63753    isTemplatePartSelectionOpen,
63754    setIsTemplatePartSelectionOpen
63755  }) {
63756    // This hook fetches patterns, so don't run it unconditionally in the main
63757    // edit function!
63758    const {
63759      templateParts
63760    } = useAlternativeTemplateParts(area, templatePartId);
63761    const hasReplacements = !!templateParts.length;
63762    const canReplace = isEntityAvailable && hasReplacements && (area === 'header' || area === 'footer');
63763    if (!canReplace) {
63764      return null;
63765    }
63766    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
63767      onClick: () => {
63768        setIsTemplatePartSelectionOpen(true);
63769      },
63770      "aria-expanded": isTemplatePartSelectionOpen,
63771      "aria-haspopup": "dialog",
63772      children: (0,external_wp_i18n_namespaceObject.__)('Replace')
63773    });
63774  }
63775  function TemplatesList({
63776    area,
63777    clientId,
63778    isEntityAvailable,
63779    onSelect
63780  }) {
63781    // This hook fetches patterns, so don't run it unconditionally in the main
63782    // edit function!
63783    const blockPatterns = useAlternativeBlockPatterns(area, clientId);
63784    const canReplace = isEntityAvailable && !!blockPatterns.length && (area === 'header' || area === 'footer');
63785    if (!canReplace) {
63786      return null;
63787    }
63788    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
63789      title: (0,external_wp_i18n_namespaceObject.__)('Design'),
63790      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
63791        label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
63792        blockPatterns: blockPatterns,
63793        onClickPattern: onSelect,
63794        showTitlesAsTooltip: true
63795      })
63796    });
63797  }
63798  function TemplatePartEdit({
63799    attributes,
63800    setAttributes,
63801    clientId
63802  }) {
63803    const {
63804      createSuccessNotice
63805    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
63806    const {
63807      editEntityRecord
63808    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
63809    const currentTheme = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet, []);
63810    const {
63811      slug,
63812      theme = currentTheme,
63813      tagName,
63814      layout = {}
63815    } = attributes;
63816    const templatePartId = createTemplatePartId(theme, slug);
63817    const hasAlreadyRendered = (0,external_wp_blockEditor_namespaceObject.useHasRecursion)(templatePartId);
63818    const [isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen] = (0,external_wp_element_namespaceObject.useState)(false);
63819    const {
63820      isResolved,
63821      hasInnerBlocks,
63822      isMissing,
63823      area,
63824      onNavigateToEntityRecord,
63825      title,
63826      canUserEdit
63827    } = (0,external_wp_data_namespaceObject.useSelect)(select => {
63828      const {
63829        getEditedEntityRecord,
63830        hasFinishedResolution
63831      } = select(external_wp_coreData_namespaceObject.store);
63832      const {
63833        getBlockCount,
63834        getSettings
63835      } = select(external_wp_blockEditor_namespaceObject.store);
63836      const getEntityArgs = ['postType', 'wp_template_part', templatePartId];
63837      const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null;
63838      const _area = entityRecord?.area || attributes.area;
63839      const hasResolvedEntity = templatePartId ? hasFinishedResolution('getEditedEntityRecord', getEntityArgs) : false;
63840      const _canUserEdit = hasResolvedEntity ? select(external_wp_coreData_namespaceObject.store).canUser('update', {
63841        kind: 'postType',
63842        name: 'wp_template_part',
63843        id: templatePartId
63844      }) : false;
63845      return {
63846        hasInnerBlocks: getBlockCount(clientId) > 0,
63847        isResolved: hasResolvedEntity,
63848        isMissing: hasResolvedEntity && (!entityRecord || Object.keys(entityRecord).length === 0),
63849        area: _area,
63850        onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
63851        title: entityRecord?.title,
63852        canUserEdit: !!_canUserEdit
63853      };
63854    }, [templatePartId, attributes.area, clientId]);
63855    const areaObject = useTemplatePartArea(area);
63856    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
63857    const isPlaceholder = !slug;
63858    const isEntityAvailable = !isPlaceholder && !isMissing && isResolved;
63859    const TagName = tagName || areaObject.tagName;
63860    const onPatternSelect = async pattern => {
63861      await editEntityRecord('postType', 'wp_template_part', templatePartId, {
63862        blocks: pattern.blocks,
63863        content: (0,external_wp_blocks_namespaceObject.serialize)(pattern.blocks)
63864      });
63865      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template part title. */
63866      (0,external_wp_i18n_namespaceObject.__)('Template Part "%s" updated.'), title || slug), {
63867        type: 'snackbar'
63868      });
63869    };
63870  
63871    // We don't want to render a missing state if we have any inner blocks.
63872    // A new template part is automatically created if we have any inner blocks but no entity.
63873    if (!hasInnerBlocks && (slug && !theme || slug && isMissing)) {
63874      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63875        ...blockProps,
63876        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
63877          children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Template part slug. */
63878          (0,external_wp_i18n_namespaceObject.__)('Template part has been deleted or is unavailable: %s'), slug)
63879        })
63880      });
63881    }
63882    if (isEntityAvailable && hasAlreadyRendered) {
63883      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63884        ...blockProps,
63885        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.Warning, {
63886          children: (0,external_wp_i18n_namespaceObject.__)('Block cannot be rendered inside itself.')
63887        })
63888      });
63889    }
63890    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
63891      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
63892        uniqueId: templatePartId,
63893        children: [isEntityAvailable && onNavigateToEntityRecord && canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
63894          group: "other",
63895          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
63896            onClick: () => onNavigateToEntityRecord({
63897              postId: templatePartId,
63898              postType: 'wp_template_part'
63899            }),
63900            children: (0,external_wp_i18n_namespaceObject.__)('Edit')
63901          })
63902        }), canUserEdit && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
63903          group: "advanced",
63904          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartAdvancedControls, {
63905            tagName: tagName,
63906            setAttributes: setAttributes,
63907            isEntityAvailable: isEntityAvailable,
63908            templatePartId: templatePartId,
63909            defaultWrapper: areaObject.tagName,
63910            hasInnerBlocks: hasInnerBlocks
63911          })
63912        }), isPlaceholder && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63913          ...blockProps,
63914          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartPlaceholder, {
63915            area: attributes.area,
63916            templatePartId: templatePartId,
63917            clientId: clientId,
63918            setAttributes: setAttributes,
63919            onOpenSelectionModal: () => setIsTemplatePartSelectionOpen(true)
63920          })
63921        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
63922          children: ({
63923            selectedClientIds
63924          }) => {
63925            // Only enable for single selection that matches the current block.
63926            // Ensures menu item doesn't render multiple times.
63927            if (!(selectedClientIds.length === 1 && clientId === selectedClientIds[0])) {
63928              return null;
63929            }
63930            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ReplaceButton, {
63931              isEntityAvailable,
63932              area,
63933              clientId,
63934              templatePartId,
63935              isTemplatePartSelectionOpen,
63936              setIsTemplatePartSelectionOpen
63937            });
63938          }
63939        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
63940          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatesList, {
63941            area: area,
63942            clientId: clientId,
63943            isEntityAvailable: isEntityAvailable,
63944            onSelect: pattern => onPatternSelect(pattern)
63945          })
63946        }), isEntityAvailable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartInnerBlocks, {
63947          tagName: TagName,
63948          blockProps: blockProps,
63949          postId: templatePartId,
63950          hasInnerBlocks: hasInnerBlocks,
63951          layout: layout
63952        }), !isPlaceholder && !isResolved && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagName, {
63953          ...blockProps,
63954          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})
63955        })]
63956      }), isTemplatePartSelectionOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
63957        overlayClassName: "block-editor-template-part__selection-modal",
63958        title: (0,external_wp_i18n_namespaceObject.sprintf)(
63959        // Translators: %s as template part area title ("Header", "Footer", etc.).
63960        (0,external_wp_i18n_namespaceObject.__)('Choose a %s'), areaObject.label.toLowerCase()),
63961        onRequestClose: () => setIsTemplatePartSelectionOpen(false),
63962        isFullScreen: true,
63963        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartSelectionModal, {
63964          templatePartId: templatePartId,
63965          clientId: clientId,
63966          area: area,
63967          setAttributes: setAttributes,
63968          onClose: () => setIsTemplatePartSelectionOpen(false)
63969        })
63970      })]
63971    });
63972  }
63973  
63974  ;// ./node_modules/@wordpress/block-library/build-module/template-part/variations.js
63975  /**
63976   * WordPress dependencies
63977   */
63978  
63979  
63980  
63981  /**
63982   * Internal dependencies
63983   */
63984  
63985  function enhanceTemplatePartVariations(settings, name) {
63986    if (name !== 'core/template-part') {
63987      return settings;
63988    }
63989    if (settings.variations) {
63990      const isActive = (blockAttributes, variationAttributes) => {
63991        const {
63992          area,
63993          theme,
63994          slug
63995        } = blockAttributes;
63996        // We first check the `area` block attribute which is set during insertion.
63997        // This property is removed on the creation of a template part.
63998        if (area) {
63999          return area === variationAttributes.area;
64000        }
64001        // Find a matching variation from the created template part
64002        // by checking the entity's `area` property.
64003        if (!slug) {
64004          return false;
64005        }
64006        const {
64007          getCurrentTheme,
64008          getEntityRecord
64009        } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
64010        const entity = getEntityRecord('postType', 'wp_template_part', `$theme || getCurrentTheme()?.stylesheet}//${slug}`);
64011        if (entity?.slug) {
64012          return entity.slug === variationAttributes.slug;
64013        }
64014        return entity?.area === variationAttributes.area;
64015      };
64016      const variations = settings.variations.map(variation => {
64017        return {
64018          ...variation,
64019          ...(!variation.isActive && {
64020            isActive
64021          }),
64022          ...(typeof variation.icon === 'string' && {
64023            icon: getTemplatePartIcon(variation.icon)
64024          })
64025        };
64026      });
64027      return {
64028        ...settings,
64029        variations
64030      };
64031    }
64032    return settings;
64033  }
64034  
64035  ;// ./node_modules/@wordpress/block-library/build-module/template-part/index.js
64036  /**
64037   * External dependencies
64038   */
64039  
64040  
64041  /**
64042   * WordPress dependencies
64043   */
64044  
64045  
64046  
64047  
64048  
64049  
64050  /**
64051   * Internal dependencies
64052   */
64053  
64054  const template_part_metadata = {
64055    $schema: "https://schemas.wp.org/trunk/block.json",
64056    apiVersion: 3,
64057    name: "core/template-part",
64058    title: "Template Part",
64059    category: "theme",
64060    description: "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.",
64061    textdomain: "default",
64062    attributes: {
64063      slug: {
64064        type: "string"
64065      },
64066      theme: {
64067        type: "string"
64068      },
64069      tagName: {
64070        type: "string"
64071      },
64072      area: {
64073        type: "string"
64074      }
64075    },
64076    supports: {
64077      align: true,
64078      html: false,
64079      reusable: false,
64080      renaming: false,
64081      interactivity: {
64082        clientNavigation: true
64083      }
64084    },
64085    editorStyle: "wp-block-template-part-editor"
64086  };
64087  
64088  
64089  const {
64090    name: template_part_name
64091  } = template_part_metadata;
64092  
64093  const template_part_settings = {
64094    icon: symbol_filled,
64095    __experimentalLabel: ({
64096      slug,
64097      theme
64098    }) => {
64099      // Attempt to find entity title if block is a template part.
64100      // Require slug to request, otherwise entity is uncreated and will throw 404.
64101      if (!slug) {
64102        return;
64103      }
64104      const {
64105        getCurrentTheme,
64106        getEditedEntityRecord
64107      } = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store);
64108      const entity = getEditedEntityRecord('postType', 'wp_template_part', (theme || getCurrentTheme()?.stylesheet) + '//' + slug);
64109      if (!entity) {
64110        return;
64111      }
64112      return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entity.title) || capitalCase(entity.slug || '');
64113    },
64114    edit: TemplatePartEdit
64115  };
64116  const template_part_init = () => {
64117    (0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations);
64118  
64119    // Prevent adding template parts inside post templates.
64120    const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content'];
64121    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'core/block-library/removeTemplatePartsFromPostTemplates', (canInsert, blockType, rootClientId, {
64122      getBlock,
64123      getBlockParentsByBlockName
64124    }) => {
64125      if (blockType.name !== 'core/template-part') {
64126        return canInsert;
64127      }
64128      for (const disallowedParentType of DISALLOWED_PARENTS) {
64129        const hasDisallowedParent = getBlock(rootClientId)?.name === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
64130        if (hasDisallowedParent) {
64131          return false;
64132        }
64133      }
64134      return true;
64135    });
64136    return initBlock({
64137      name: template_part_name,
64138      metadata: template_part_metadata,
64139      settings: template_part_settings
64140    });
64141  };
64142  
64143  ;// ./node_modules/@wordpress/icons/build-module/library/term-description.js
64144  /**
64145   * WordPress dependencies
64146   */
64147  
64148  
64149  const term_description_tag = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
64150    xmlns: "http://www.w3.org/2000/svg",
64151    viewBox: "0 0 24 24",
64152    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
64153      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"
64154    })
64155  });
64156  /* harmony default export */ const term_description = (term_description_tag);
64157  
64158  ;// ./node_modules/@wordpress/block-library/build-module/term-description/edit.js
64159  /**
64160   * External dependencies
64161   */
64162  
64163  
64164  /**
64165   * WordPress dependencies
64166   */
64167  
64168  
64169  
64170  function TermDescriptionEdit({
64171    attributes,
64172    setAttributes,
64173    mergedStyle
64174  }) {
64175    const {
64176      textAlign
64177    } = attributes;
64178    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
64179      className: dist_clsx({
64180        [`has-text-align-$textAlign}`]: textAlign
64181      }),
64182      style: mergedStyle
64183    });
64184    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
64185      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
64186        group: "block",
64187        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentControl, {
64188          value: textAlign,
64189          onChange: nextAlign => {
64190            setAttributes({
64191              textAlign: nextAlign
64192            });
64193          }
64194        })
64195      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64196        ...blockProps,
64197        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64198          className: "wp-block-term-description__placeholder",
64199          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
64200            children: (0,external_wp_i18n_namespaceObject.__)('Term Description')
64201          })
64202        })
64203      })]
64204    });
64205  }
64206  
64207  ;// ./node_modules/@wordpress/block-library/build-module/term-description/index.js
64208  /**
64209   * WordPress dependencies
64210   */
64211  
64212  
64213  /**
64214   * Internal dependencies
64215   */
64216  
64217  const term_description_metadata = {
64218    $schema: "https://schemas.wp.org/trunk/block.json",
64219    apiVersion: 3,
64220    name: "core/term-description",
64221    title: "Term Description",
64222    category: "theme",
64223    description: "Display the description of categories, tags and custom taxonomies when viewing an archive.",
64224    textdomain: "default",
64225    attributes: {
64226      textAlign: {
64227        type: "string"
64228      }
64229    },
64230    supports: {
64231      align: ["wide", "full"],
64232      html: false,
64233      color: {
64234        link: true,
64235        __experimentalDefaultControls: {
64236          background: true,
64237          text: true
64238        }
64239      },
64240      spacing: {
64241        padding: true,
64242        margin: true
64243      },
64244      typography: {
64245        fontSize: true,
64246        lineHeight: true,
64247        __experimentalFontFamily: true,
64248        __experimentalFontWeight: true,
64249        __experimentalFontStyle: true,
64250        __experimentalTextTransform: true,
64251        __experimentalTextDecoration: true,
64252        __experimentalLetterSpacing: true,
64253        __experimentalDefaultControls: {
64254          fontSize: true
64255        }
64256      },
64257      interactivity: {
64258        clientNavigation: true
64259      },
64260      __experimentalBorder: {
64261        radius: true,
64262        color: true,
64263        width: true,
64264        style: true,
64265        __experimentalDefaultControls: {
64266          radius: true,
64267          color: true,
64268          width: true,
64269          style: true
64270        }
64271      }
64272    }
64273  };
64274  
64275  const {
64276    name: term_description_name
64277  } = term_description_metadata;
64278  
64279  const term_description_settings = {
64280    icon: term_description,
64281    edit: TermDescriptionEdit,
64282    example: {}
64283  };
64284  const term_description_init = () => initBlock({
64285    name: term_description_name,
64286    metadata: term_description_metadata,
64287    settings: term_description_settings
64288  });
64289  
64290  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js
64291  /**
64292   * WordPress dependencies
64293   */
64294  
64295  
64296  
64297  
64298  
64299  function TextColumnsEdit({
64300    attributes,
64301    setAttributes
64302  }) {
64303    const {
64304      width,
64305      content,
64306      columns
64307    } = attributes;
64308    external_wp_deprecated_default()('The Text Columns block', {
64309      since: '5.3',
64310      alternative: 'the Columns block'
64311    });
64312    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
64313      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
64314        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar, {
64315          value: width,
64316          onChange: nextWidth => setAttributes({
64317            width: nextWidth
64318          }),
64319          controls: ['center', 'wide', 'full']
64320        })
64321      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
64322        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
64323          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RangeControl, {
64324            __nextHasNoMarginBottom: true,
64325            __next40pxDefaultSize: true,
64326            label: (0,external_wp_i18n_namespaceObject.__)('Columns'),
64327            value: columns,
64328            onChange: value => setAttributes({
64329              columns: value
64330            }),
64331            min: 2,
64332            max: 4,
64333            required: true
64334          })
64335        })
64336      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64337        ...(0,external_wp_blockEditor_namespaceObject.useBlockProps)({
64338          className: `align$width} columns-$columns}`
64339        }),
64340        children: Array.from({
64341          length: columns
64342        }).map((_, index) => {
64343          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64344            className: "wp-block-column",
64345            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
64346              tagName: "p",
64347              value: content?.[index]?.children,
64348              onChange: nextContent => {
64349                setAttributes({
64350                  content: [...content.slice(0, index), {
64351                    children: nextContent
64352                  }, ...content.slice(index + 1)]
64353                });
64354              },
64355              "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
64356              // translators: %d: column index (starting with 1)
64357              (0,external_wp_i18n_namespaceObject.__)('Column %d text'), index + 1),
64358              placeholder: (0,external_wp_i18n_namespaceObject.__)('New Column')
64359            })
64360          }, `column-$index}`);
64361        })
64362      })]
64363    });
64364  }
64365  
64366  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/save.js
64367  /**
64368   * WordPress dependencies
64369   */
64370  
64371  
64372  function text_columns_save_save({
64373    attributes
64374  }) {
64375    const {
64376      width,
64377      content,
64378      columns
64379    } = attributes;
64380    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64381      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
64382        className: `align$width} columns-$columns}`
64383      }),
64384      children: Array.from({
64385        length: columns
64386      }).map((_, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
64387        className: "wp-block-column",
64388        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64389          tagName: "p",
64390          value: content?.[index]?.children
64391        })
64392      }, `column-$index}`))
64393    });
64394  }
64395  
64396  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js
64397  /**
64398   * WordPress dependencies
64399   */
64400  
64401  const text_columns_transforms_transforms = {
64402    to: [{
64403      type: 'block',
64404      blocks: ['core/columns'],
64405      transform: ({
64406        className,
64407        columns,
64408        content,
64409        width
64410      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/columns', {
64411        align: 'wide' === width || 'full' === width ? width : undefined,
64412        className,
64413        columns
64414      }, content.map(({
64415        children
64416      }) => (0,external_wp_blocks_namespaceObject.createBlock)('core/column', {}, [(0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', {
64417        content: children
64418      })])))
64419    }]
64420  };
64421  /* harmony default export */ const text_columns_transforms = (text_columns_transforms_transforms);
64422  
64423  ;// ./node_modules/@wordpress/block-library/build-module/text-columns/index.js
64424  /**
64425   * Internal dependencies
64426   */
64427  
64428  
64429  const text_columns_metadata = {
64430    $schema: "https://schemas.wp.org/trunk/block.json",
64431    apiVersion: 3,
64432    name: "core/text-columns",
64433    title: "Text Columns (deprecated)",
64434    icon: "columns",
64435    category: "design",
64436    description: "This block is deprecated. Please use the Columns block instead.",
64437    textdomain: "default",
64438    attributes: {
64439      content: {
64440        type: "array",
64441        source: "query",
64442        selector: "p",
64443        query: {
64444          children: {
64445            type: "string",
64446            source: "html"
64447          }
64448        },
64449        "default": [{}, {}]
64450      },
64451      columns: {
64452        type: "number",
64453        "default": 2
64454      },
64455      width: {
64456        type: "string"
64457      }
64458    },
64459    supports: {
64460      inserter: false,
64461      interactivity: {
64462        clientNavigation: true
64463      }
64464    },
64465    editorStyle: "wp-block-text-columns-editor",
64466    style: "wp-block-text-columns"
64467  };
64468  
64469  
64470  const {
64471    name: text_columns_name
64472  } = text_columns_metadata;
64473  
64474  const text_columns_settings = {
64475    transforms: text_columns_transforms,
64476    getEditWrapperProps(attributes) {
64477      const {
64478        width
64479      } = attributes;
64480      if ('wide' === width || 'full' === width) {
64481        return {
64482          'data-align': width
64483        };
64484      }
64485    },
64486    edit: TextColumnsEdit,
64487    save: text_columns_save_save
64488  };
64489  const text_columns_init = () => initBlock({
64490    name: text_columns_name,
64491    metadata: text_columns_metadata,
64492    settings: text_columns_settings
64493  });
64494  
64495  ;// ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js
64496  /**
64497   * External dependencies
64498   */
64499  
64500  
64501  /**
64502   * WordPress dependencies
64503   */
64504  
64505  
64506  /**
64507   * Internal dependencies
64508   */
64509  
64510  
64511  const verse_deprecated_v1 = {
64512    attributes: {
64513      content: {
64514        type: 'string',
64515        source: 'html',
64516        selector: 'pre',
64517        default: ''
64518      },
64519      textAlign: {
64520        type: 'string'
64521      }
64522    },
64523    save({
64524      attributes
64525    }) {
64526      const {
64527        textAlign,
64528        content
64529      } = attributes;
64530      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64531        tagName: "pre",
64532        style: {
64533          textAlign
64534        },
64535        value: content
64536      });
64537    }
64538  };
64539  const verse_deprecated_v2 = {
64540    attributes: {
64541      content: {
64542        type: 'string',
64543        source: 'html',
64544        selector: 'pre',
64545        default: '',
64546        __unstablePreserveWhiteSpace: true,
64547        role: 'content'
64548      },
64549      textAlign: {
64550        type: 'string'
64551      }
64552    },
64553    supports: {
64554      anchor: true,
64555      color: {
64556        gradients: true,
64557        link: true
64558      },
64559      typography: {
64560        fontSize: true,
64561        __experimentalFontFamily: true
64562      },
64563      spacing: {
64564        padding: true
64565      }
64566    },
64567    save({
64568      attributes
64569    }) {
64570      const {
64571        textAlign,
64572        content
64573      } = attributes;
64574      const className = dist_clsx({
64575        [`has-text-align-$textAlign}`]: textAlign
64576      });
64577      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
64578        ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
64579          className
64580        }),
64581        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64582          value: content
64583        })
64584      });
64585    },
64586    migrate: migrate_font_family,
64587    isEligible({
64588      style
64589    }) {
64590      return style?.typography?.fontFamily;
64591    }
64592  };
64593  
64594  /**
64595   * New deprecations need to be placed first
64596   * for them to have higher priority.
64597   *
64598   * Old deprecations may need to be updated as well.
64599   *
64600   * See block-deprecation.md
64601   */
64602  /* harmony default export */ const verse_deprecated = ([verse_deprecated_v2, verse_deprecated_v1]);
64603  
64604  ;// ./node_modules/@wordpress/block-library/build-module/verse/edit.js
64605  /**
64606   * External dependencies
64607   */
64608  
64609  
64610  /**
64611   * WordPress dependencies
64612   */
64613  
64614  
64615  
64616  
64617  function VerseEdit({
64618    attributes,
64619    setAttributes,
64620    mergeBlocks,
64621    onRemove,
64622    insertBlocksAfter,
64623    style
64624  }) {
64625    const {
64626      textAlign,
64627      content
64628    } = attributes;
64629    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
64630      className: dist_clsx({
64631        [`has-text-align-$textAlign}`]: textAlign
64632      }),
64633      style
64634    });
64635    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
64636      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
64637        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.AlignmentToolbar, {
64638          value: textAlign,
64639          onChange: nextAlign => {
64640            setAttributes({
64641              textAlign: nextAlign
64642            });
64643          }
64644        })
64645      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
64646        tagName: "pre",
64647        identifier: "content",
64648        preserveWhiteSpace: true,
64649        value: content,
64650        onChange: nextContent => {
64651          setAttributes({
64652            content: nextContent
64653          });
64654        },
64655        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Verse text'),
64656        placeholder: (0,external_wp_i18n_namespaceObject.__)('Write verse…'),
64657        onRemove: onRemove,
64658        onMerge: mergeBlocks,
64659        textAlign: textAlign,
64660        ...blockProps,
64661        __unstablePastePlainText: true,
64662        __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0,external_wp_blocks_namespaceObject.createBlock)((0,external_wp_blocks_namespaceObject.getDefaultBlockName)()))
64663      })]
64664    });
64665  }
64666  
64667  ;// ./node_modules/@wordpress/block-library/build-module/verse/save.js
64668  /**
64669   * External dependencies
64670   */
64671  
64672  
64673  /**
64674   * WordPress dependencies
64675   */
64676  
64677  
64678  function verse_save_save({
64679    attributes
64680  }) {
64681    const {
64682      textAlign,
64683      content
64684    } = attributes;
64685    const className = dist_clsx({
64686      [`has-text-align-$textAlign}`]: textAlign
64687    });
64688    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("pre", {
64689      ...external_wp_blockEditor_namespaceObject.useBlockProps.save({
64690        className
64691      }),
64692      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
64693        value: content
64694      })
64695    });
64696  }
64697  
64698  ;// ./node_modules/@wordpress/block-library/build-module/verse/transforms.js
64699  /**
64700   * WordPress dependencies
64701   */
64702  
64703  const verse_transforms_transforms = {
64704    from: [{
64705      type: 'block',
64706      blocks: ['core/paragraph'],
64707      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/verse', attributes)
64708    }],
64709    to: [{
64710      type: 'block',
64711      blocks: ['core/paragraph'],
64712      transform: attributes => (0,external_wp_blocks_namespaceObject.createBlock)('core/paragraph', attributes)
64713    }]
64714  };
64715  /* harmony default export */ const verse_transforms = (verse_transforms_transforms);
64716  
64717  ;// ./node_modules/@wordpress/block-library/build-module/verse/index.js
64718  /**
64719   * WordPress dependencies
64720   */
64721  
64722  
64723  
64724  /**
64725   * Internal dependencies
64726   */
64727  
64728  
64729  
64730  const verse_metadata = {
64731    $schema: "https://schemas.wp.org/trunk/block.json",
64732    apiVersion: 3,
64733    name: "core/verse",
64734    title: "Verse",
64735    category: "text",
64736    description: "Insert poetry. Use special spacing formats. Or quote song lyrics.",
64737    keywords: ["poetry", "poem"],
64738    textdomain: "default",
64739    attributes: {
64740      content: {
64741        type: "rich-text",
64742        source: "rich-text",
64743        selector: "pre",
64744        __unstablePreserveWhiteSpace: true,
64745        role: "content"
64746      },
64747      textAlign: {
64748        type: "string"
64749      }
64750    },
64751    supports: {
64752      anchor: true,
64753      background: {
64754        backgroundImage: true,
64755        backgroundSize: true,
64756        __experimentalDefaultControls: {
64757          backgroundImage: true
64758        }
64759      },
64760      color: {
64761        gradients: true,
64762        link: true,
64763        __experimentalDefaultControls: {
64764          background: true,
64765          text: true
64766        }
64767      },
64768      dimensions: {
64769        minHeight: true,
64770        __experimentalDefaultControls: {
64771          minHeight: false
64772        }
64773      },
64774      typography: {
64775        fontSize: true,
64776        __experimentalFontFamily: true,
64777        lineHeight: true,
64778        __experimentalFontStyle: true,
64779        __experimentalFontWeight: true,
64780        __experimentalLetterSpacing: true,
64781        __experimentalTextTransform: true,
64782        __experimentalTextDecoration: true,
64783        __experimentalWritingMode: true,
64784        __experimentalDefaultControls: {
64785          fontSize: true
64786        }
64787      },
64788      spacing: {
64789        margin: true,
64790        padding: true,
64791        __experimentalDefaultControls: {
64792          margin: false,
64793          padding: false
64794        }
64795      },
64796      __experimentalBorder: {
64797        radius: true,
64798        width: true,
64799        color: true,
64800        style: true
64801      },
64802      interactivity: {
64803        clientNavigation: true
64804      }
64805    },
64806    style: "wp-block-verse",
64807    editorStyle: "wp-block-verse-editor"
64808  };
64809  
64810  
64811  const {
64812    name: verse_name
64813  } = verse_metadata;
64814  
64815  const verse_settings = {
64816    icon: library_verse,
64817    example: {
64818      attributes: {
64819        /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */
64820        // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.
64821        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.')
64822        /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */
64823      }
64824    },
64825    transforms: verse_transforms,
64826    deprecated: verse_deprecated,
64827    merge(attributes, attributesToMerge) {
64828      return {
64829        content: attributes.content + '\n\n' + attributesToMerge.content
64830      };
64831    },
64832    edit: VerseEdit,
64833    save: verse_save_save
64834  };
64835  const verse_init = () => initBlock({
64836    name: verse_name,
64837    metadata: verse_metadata,
64838    settings: verse_settings
64839  });
64840  
64841  ;// ./node_modules/@wordpress/icons/build-module/library/video.js
64842  /**
64843   * WordPress dependencies
64844   */
64845  
64846  
64847  const video = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
64848    viewBox: "0 0 24 24",
64849    xmlns: "http://www.w3.org/2000/svg",
64850    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
64851      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"
64852    })
64853  });
64854  /* harmony default export */ const library_video = (video);
64855  
64856  ;// ./node_modules/@wordpress/block-library/build-module/video/tracks.js
64857  
64858  function Tracks({
64859    tracks = []
64860  }) {
64861    return tracks.map(track => {
64862      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("track", {
64863        ...track
64864      }, track.src);
64865    });
64866  }
64867  
64868  ;// ./node_modules/@wordpress/block-library/build-module/video/deprecated.js
64869  /**
64870   * WordPress dependencies
64871   */
64872  
64873  
64874  /**
64875   * Internal dependencies
64876   */
64877  const video_deprecated_metadata = {
64878    $schema: "https://schemas.wp.org/trunk/block.json",
64879    apiVersion: 3,
64880    name: "core/video",
64881    title: "Video",
64882    category: "media",
64883    description: "Embed a video from your media library or upload a new one.",
64884    keywords: ["movie"],
64885    textdomain: "default",
64886    attributes: {
64887      autoplay: {
64888        type: "boolean",
64889        source: "attribute",
64890        selector: "video",
64891        attribute: "autoplay"
64892      },
64893      caption: {
64894        type: "rich-text",
64895        source: "rich-text",
64896        selector: "figcaption",
64897        role: "content"
64898      },
64899      controls: {
64900        type: "boolean",
64901        source: "attribute",
64902        selector: "video",
64903        attribute: "controls",
64904        "default": true
64905      },
64906      id: {
64907        type: "number",
64908        role: "content"
64909      },
64910      loop: {
64911        type: "boolean",
64912        source: "attribute",
64913        selector: "video",
64914        attribute: "loop"
64915      },
64916      muted: {
64917        type: "boolean",
64918        source: "attribute",
64919        selector: "video",
64920        attribute: "muted"
64921      },
64922      poster: {
64923        type: "string",
64924        source: "attribute",
64925        selector: "video",
64926        attribute: "poster"
64927      },
64928      preload: {
64929        type: "string",
64930        source: "attribute",
64931        selector: "video",
64932        attribute: "preload",
64933        "default": "metadata"
64934      },
64935      blob: {
64936        type: "string",
64937        role: "local"
64938      },
64939      src: {
64940        type: "string",
64941        source: "attribute",
64942        selector: "video",
64943        attribute: "src",
64944        role: "content"
64945      },
64946      playsInline: {
64947        type: "boolean",
64948        source: "attribute",
64949        selector: "video",
64950        attribute: "playsinline"
64951      },
64952      tracks: {
64953        role: "content",
64954        type: "array",
64955        items: {
64956          type: "object"
64957        },
64958        "default": []
64959      }
64960    },
64961    supports: {
64962      anchor: true,
64963      align: true,
64964      spacing: {
64965        margin: true,
64966        padding: true,
64967        __experimentalDefaultControls: {
64968          margin: false,
64969          padding: false
64970        }
64971      },
64972      interactivity: {
64973        clientNavigation: true
64974      }
64975    },
64976    editorStyle: "wp-block-video-editor",
64977    style: "wp-block-video"
64978  };
64979  
64980  
64981  const {
64982    attributes: video_deprecated_blockAttributes
64983  } = video_deprecated_metadata;
64984  
64985  // In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname
64986  // to the video figcaption element.
64987  const video_deprecated_v1 = {
64988    attributes: video_deprecated_blockAttributes,
64989    save({
64990      attributes
64991    }) {
64992      const {
64993        autoplay,
64994        caption,
64995        controls,
64996        loop,
64997        muted,
64998        poster,
64999        preload,
65000        src,
65001        playsInline,
65002        tracks
65003      } = attributes;
65004      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
65005        ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
65006        children: [src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
65007          autoPlay: autoplay,
65008          controls: controls,
65009          loop: loop,
65010          muted: muted,
65011          poster: poster,
65012          preload: preload !== 'metadata' ? preload : undefined,
65013          src: src,
65014          playsInline: playsInline,
65015          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
65016            tracks: tracks
65017          })
65018        }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
65019          tagName: "figcaption",
65020          value: caption
65021        })]
65022      });
65023    }
65024  };
65025  const video_deprecated_deprecated = [video_deprecated_v1];
65026  /* harmony default export */ const video_deprecated = (video_deprecated_deprecated);
65027  
65028  ;// ./node_modules/@wordpress/block-library/build-module/video/poster-image.js
65029  /**
65030   * WordPress dependencies
65031   */
65032  
65033  
65034  
65035  
65036  
65037  function PosterImage({
65038    poster,
65039    setAttributes,
65040    instanceId
65041  }) {
65042    const posterImageButton = (0,external_wp_element_namespaceObject.useRef)();
65043    const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
65044    const videoPosterDescription = `video-block__poster-image-description-$instanceId}`;
65045    function onSelectPoster(image) {
65046      setAttributes({
65047        poster: image.url
65048      });
65049    }
65050    function onRemovePoster() {
65051      setAttributes({
65052        poster: undefined
65053      });
65054  
65055      // Move focus back to the Media Upload button.
65056      posterImageButton.current.focus();
65057    }
65058    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65059      label: (0,external_wp_i18n_namespaceObject.__)('Poster image'),
65060      isShownByDefault: true,
65061      hasValue: () => !!poster,
65062      onDeselect: () => {
65063        setAttributes({
65064          poster: ''
65065        });
65066      },
65067      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
65068        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
65069          className: "editor-video-poster-control",
65070          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
65071            children: (0,external_wp_i18n_namespaceObject.__)('Poster image')
65072          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
65073            title: (0,external_wp_i18n_namespaceObject.__)('Select poster image'),
65074            onSelect: onSelectPoster,
65075            allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,
65076            render: ({
65077              open
65078            }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65079              __next40pxDefaultSize: true,
65080              variant: "primary",
65081              onClick: open,
65082              ref: posterImageButton,
65083              "aria-describedby": videoPosterDescription,
65084              children: !poster ? (0,external_wp_i18n_namespaceObject.__)('Select') : (0,external_wp_i18n_namespaceObject.__)('Replace')
65085            })
65086          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
65087            id: videoPosterDescription,
65088            hidden: true,
65089            children: poster ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: poster image URL. */
65090            (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')
65091          }), !!poster && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65092            __next40pxDefaultSize: true,
65093            onClick: onRemovePoster,
65094            variant: "tertiary",
65095            children: (0,external_wp_i18n_namespaceObject.__)('Remove')
65096          })]
65097        })
65098      })
65099    });
65100  }
65101  /* harmony default export */ const poster_image = (PosterImage);
65102  
65103  ;// ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js
65104  /**
65105   * WordPress dependencies
65106   */
65107  
65108  
65109  
65110  
65111  const options = [{
65112    value: 'auto',
65113    label: (0,external_wp_i18n_namespaceObject.__)('Auto')
65114  }, {
65115    value: 'metadata',
65116    label: (0,external_wp_i18n_namespaceObject.__)('Metadata')
65117  }, {
65118    value: 'none',
65119    label: (0,external_wp_i18n_namespaceObject._x)('None', 'Preload value')
65120  }];
65121  const VideoSettings = ({
65122    setAttributes,
65123    attributes
65124  }) => {
65125    const {
65126      autoplay,
65127      controls,
65128      loop,
65129      muted,
65130      playsInline,
65131      preload
65132    } = attributes;
65133    const autoPlayHelpText = (0,external_wp_i18n_namespaceObject.__)('Autoplay may cause usability issues for some users.');
65134    const getAutoplayHelp = external_wp_element_namespaceObject.Platform.select({
65135      web: (0,external_wp_element_namespaceObject.useCallback)(checked => {
65136        return checked ? autoPlayHelpText : null;
65137      }, []),
65138      native: autoPlayHelpText
65139    });
65140    const toggleFactory = (0,external_wp_element_namespaceObject.useMemo)(() => {
65141      const toggleAttribute = attribute => {
65142        return newValue => {
65143          setAttributes({
65144            [attribute]: newValue,
65145            // Set muted when autoplay changes
65146            ...(attribute === 'autoplay' && {
65147              muted: newValue
65148            })
65149          });
65150        };
65151      };
65152      return {
65153        autoplay: toggleAttribute('autoplay'),
65154        loop: toggleAttribute('loop'),
65155        muted: toggleAttribute('muted'),
65156        controls: toggleAttribute('controls'),
65157        playsInline: toggleAttribute('playsInline')
65158      };
65159    }, []);
65160    const onChangePreload = (0,external_wp_element_namespaceObject.useCallback)(value => {
65161      setAttributes({
65162        preload: value
65163      });
65164    }, []);
65165    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65166      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65167        label: (0,external_wp_i18n_namespaceObject.__)('Autoplay'),
65168        isShownByDefault: true,
65169        hasValue: () => !!autoplay,
65170        onDeselect: () => {
65171          setAttributes({
65172            autoplay: false,
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.__)('Autoplay'),
65179          onChange: toggleFactory.autoplay,
65180          checked: !!autoplay,
65181          help: getAutoplayHelp
65182        })
65183      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65184        label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
65185        isShownByDefault: true,
65186        hasValue: () => !!loop,
65187        onDeselect: () => {
65188          setAttributes({
65189            loop: false
65190          });
65191        },
65192        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65193          __nextHasNoMarginBottom: true,
65194          label: (0,external_wp_i18n_namespaceObject.__)('Loop'),
65195          onChange: toggleFactory.loop,
65196          checked: !!loop
65197        })
65198      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65199        label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
65200        isShownByDefault: true,
65201        hasValue: () => !!muted,
65202        onDeselect: () => {
65203          setAttributes({
65204            muted: false
65205          });
65206        },
65207        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65208          __nextHasNoMarginBottom: true,
65209          label: (0,external_wp_i18n_namespaceObject.__)('Muted'),
65210          onChange: toggleFactory.muted,
65211          checked: !!muted,
65212          disabled: autoplay,
65213          help: autoplay ? (0,external_wp_i18n_namespaceObject.__)('Muted because of Autoplay.') : null
65214        })
65215      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65216        label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
65217        isShownByDefault: true,
65218        hasValue: () => !controls,
65219        onDeselect: () => {
65220          setAttributes({
65221            controls: true
65222          });
65223        },
65224        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65225          __nextHasNoMarginBottom: true,
65226          label: (0,external_wp_i18n_namespaceObject.__)('Playback controls'),
65227          onChange: toggleFactory.controls,
65228          checked: !!controls
65229        })
65230      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65231        label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
65232        isShownByDefault: true,
65233        hasValue: () => !!playsInline,
65234        onDeselect: () => {
65235          setAttributes({
65236            playsInline: false
65237          });
65238        },
65239        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
65240          __nextHasNoMarginBottom: true
65241          /* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */,
65242          label: (0,external_wp_i18n_namespaceObject.__)('Play inline'),
65243          onChange: toggleFactory.playsInline,
65244          checked: !!playsInline,
65245          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.')
65246        })
65247      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToolsPanelItem, {
65248        label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
65249        isShownByDefault: true,
65250        hasValue: () => preload !== 'metadata',
65251        onDeselect: () => {
65252          setAttributes({
65253            preload: 'metadata'
65254          });
65255        },
65256        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
65257          __next40pxDefaultSize: true,
65258          __nextHasNoMarginBottom: true,
65259          label: (0,external_wp_i18n_namespaceObject.__)('Preload'),
65260          value: preload,
65261          onChange: onChangePreload,
65262          options: options,
65263          hideCancelButton: true
65264        })
65265      })]
65266    });
65267  };
65268  /* harmony default export */ const edit_common_settings = (VideoSettings);
65269  
65270  ;// ./node_modules/@wordpress/block-library/build-module/video/tracks-editor.js
65271  /**
65272   * WordPress dependencies
65273   */
65274  
65275  
65276  
65277  
65278  
65279  
65280  
65281  
65282  const ALLOWED_TYPES = ['text/vtt'];
65283  const DEFAULT_KIND = 'subtitles';
65284  const KIND_OPTIONS = [{
65285    label: (0,external_wp_i18n_namespaceObject.__)('Subtitles'),
65286    value: 'subtitles'
65287  }, {
65288    label: (0,external_wp_i18n_namespaceObject.__)('Captions'),
65289    value: 'captions'
65290  }, {
65291    label: (0,external_wp_i18n_namespaceObject.__)('Descriptions'),
65292    value: 'descriptions'
65293  }, {
65294    label: (0,external_wp_i18n_namespaceObject.__)('Chapters'),
65295    value: 'chapters'
65296  }, {
65297    label: (0,external_wp_i18n_namespaceObject.__)('Metadata'),
65298    value: 'metadata'
65299  }];
65300  function TrackList({
65301    tracks,
65302    onEditPress
65303  }) {
65304    const content = tracks.map((track, index) => {
65305      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
65306        className: "block-library-video-tracks-editor__track-list-track",
65307        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
65308          children: track.label
65309        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65310          __next40pxDefaultSize: true,
65311          variant: "tertiary",
65312          onClick: () => onEditPress(index),
65313          "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Label of the video text track e.g: "French subtitles". */
65314          (0,external_wp_i18n_namespaceObject._x)('Edit %s', 'text tracks'), track.label),
65315          children: (0,external_wp_i18n_namespaceObject.__)('Edit')
65316        })]
65317      }, index);
65318    });
65319    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
65320      label: (0,external_wp_i18n_namespaceObject.__)('Text tracks'),
65321      className: "block-library-video-tracks-editor__track-list",
65322      children: content
65323    });
65324  }
65325  function SingleTrackEditor({
65326    track,
65327    onChange,
65328    onClose,
65329    onRemove
65330  }) {
65331    const {
65332      src = '',
65333      label = '',
65334      srcLang = '',
65335      kind = DEFAULT_KIND
65336    } = track;
65337    const fileName = src.startsWith('blob:') ? '' : (0,external_wp_url_namespaceObject.getFilename)(src) || '';
65338    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
65339      className: "block-library-video-tracks-editor__single-track-editor",
65340      spacing: "4",
65341      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
65342        className: "block-library-video-tracks-editor__single-track-editor-edit-track-label",
65343        children: (0,external_wp_i18n_namespaceObject.__)('Edit track')
65344      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
65345        children: [(0,external_wp_i18n_namespaceObject.__)('File'), ": ", /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("b", {
65346          children: fileName
65347        })]
65348      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalGrid, {
65349        columns: 2,
65350        gap: 4,
65351        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
65352          __next40pxDefaultSize: true,
65353          __nextHasNoMarginBottom: true,
65354          onChange: newLabel => onChange({
65355            ...track,
65356            label: newLabel
65357          }),
65358          label: (0,external_wp_i18n_namespaceObject.__)('Label'),
65359          value: label,
65360          help: (0,external_wp_i18n_namespaceObject.__)('Title of track')
65361        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
65362          __next40pxDefaultSize: true,
65363          __nextHasNoMarginBottom: true,
65364          onChange: newSrcLang => onChange({
65365            ...track,
65366            srcLang: newSrcLang
65367          }),
65368          label: (0,external_wp_i18n_namespaceObject.__)('Source language'),
65369          value: srcLang,
65370          help: (0,external_wp_i18n_namespaceObject.__)('Language tag (en, fr, etc.)')
65371        })]
65372      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
65373        spacing: "8",
65374        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
65375          __next40pxDefaultSize: true,
65376          __nextHasNoMarginBottom: true,
65377          className: "block-library-video-tracks-editor__single-track-editor-kind-select",
65378          options: KIND_OPTIONS,
65379          value: kind,
65380          label: (0,external_wp_i18n_namespaceObject.__)('Kind'),
65381          onChange: newKind => {
65382            onChange({
65383              ...track,
65384              kind: newKind
65385            });
65386          }
65387        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
65388          className: "block-library-video-tracks-editor__single-track-editor-buttons-container",
65389          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65390            __next40pxDefaultSize: true,
65391            isDestructive: true,
65392            variant: "link",
65393            onClick: onRemove,
65394            children: (0,external_wp_i18n_namespaceObject.__)('Remove track')
65395          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
65396            __next40pxDefaultSize: true,
65397            variant: "primary",
65398            onClick: () => {
65399              const changes = {};
65400              let hasChanges = false;
65401              if (label === '') {
65402                changes.label = (0,external_wp_i18n_namespaceObject.__)('English');
65403                hasChanges = true;
65404              }
65405              if (srcLang === '') {
65406                changes.srcLang = 'en';
65407                hasChanges = true;
65408              }
65409              if (track.kind === undefined) {
65410                changes.kind = DEFAULT_KIND;
65411                hasChanges = true;
65412              }
65413              if (hasChanges) {
65414                onChange({
65415                  ...track,
65416                  ...changes
65417                });
65418              }
65419              onClose();
65420            },
65421            children: (0,external_wp_i18n_namespaceObject.__)('Apply')
65422          })]
65423        })]
65424      })]
65425    });
65426  }
65427  function TracksEditor({
65428    tracks = [],
65429    onChange
65430  }) {
65431    const mediaUpload = (0,external_wp_data_namespaceObject.useSelect)(select => {
65432      return select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload;
65433    }, []);
65434    const [trackBeingEdited, setTrackBeingEdited] = (0,external_wp_element_namespaceObject.useState)(null);
65435    const dropdownPopoverRef = (0,external_wp_element_namespaceObject.useRef)();
65436    (0,external_wp_element_namespaceObject.useEffect)(() => {
65437      dropdownPopoverRef.current?.focus();
65438    }, [trackBeingEdited]);
65439    if (!mediaUpload) {
65440      return null;
65441    }
65442    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
65443      contentClassName: "block-library-video-tracks-editor",
65444      focusOnMount: true,
65445      popoverProps: {
65446        ref: dropdownPopoverRef
65447      },
65448      renderToggle: ({
65449        isOpen,
65450        onToggle
65451      }) => {
65452        const handleOnToggle = () => {
65453          if (!isOpen) {
65454            // When the Popover opens make sure the initial view is
65455            // always the track list rather than the edit track UI.
65456            setTrackBeingEdited(null);
65457          }
65458          onToggle();
65459        };
65460        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarGroup, {
65461          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
65462            "aria-expanded": isOpen,
65463            "aria-haspopup": "true",
65464            onClick: handleOnToggle,
65465            children: (0,external_wp_i18n_namespaceObject.__)('Text tracks')
65466          })
65467        });
65468      },
65469      renderContent: () => {
65470        if (trackBeingEdited !== null) {
65471          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SingleTrackEditor, {
65472            track: tracks[trackBeingEdited],
65473            onChange: newTrack => {
65474              const newTracks = [...tracks];
65475              newTracks[trackBeingEdited] = newTrack;
65476              onChange(newTracks);
65477            },
65478            onClose: () => setTrackBeingEdited(null),
65479            onRemove: () => {
65480              onChange(tracks.filter((_track, index) => index !== trackBeingEdited));
65481              setTrackBeingEdited(null);
65482            }
65483          });
65484        }
65485        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65486          children: [tracks.length === 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
65487            className: "block-library-video-tracks-editor__tracks-informative-message",
65488            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
65489              className: "block-library-video-tracks-editor__tracks-informative-message-title",
65490              children: (0,external_wp_i18n_namespaceObject.__)('Text tracks')
65491            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
65492              className: "block-library-video-tracks-editor__tracks-informative-message-description",
65493              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.')
65494            })]
65495          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.NavigableMenu, {
65496            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TrackList, {
65497              tracks: tracks,
65498              onEditPress: setTrackBeingEdited
65499            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
65500              className: "block-library-video-tracks-editor__add-tracks-container",
65501              label: (0,external_wp_i18n_namespaceObject.__)('Add tracks'),
65502              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
65503                onSelect: ({
65504                  url
65505                }) => {
65506                  const trackIndex = tracks.length;
65507                  onChange([...tracks, {
65508                    src: url
65509                  }]);
65510                  setTrackBeingEdited(trackIndex);
65511                },
65512                allowedTypes: ALLOWED_TYPES,
65513                render: ({
65514                  open
65515                }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
65516                  icon: library_media,
65517                  onClick: open,
65518                  children: (0,external_wp_i18n_namespaceObject.__)('Open Media Library')
65519                })
65520              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
65521                children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormFileUpload, {
65522                  onChange: event => {
65523                    const files = event.target.files;
65524                    const trackIndex = tracks.length;
65525                    mediaUpload({
65526                      allowedTypes: ALLOWED_TYPES,
65527                      filesList: files,
65528                      onFileChange: ([{
65529                        url
65530                      }]) => {
65531                        const newTracks = [...tracks];
65532                        if (!newTracks[trackIndex]) {
65533                          newTracks[trackIndex] = {};
65534                        }
65535                        newTracks[trackIndex] = {
65536                          ...tracks[trackIndex],
65537                          src: url
65538                        };
65539                        onChange(newTracks);
65540                        setTrackBeingEdited(trackIndex);
65541                      }
65542                    });
65543                  },
65544                  accept: ".vtt,text/vtt",
65545                  render: ({
65546                    openFileDialog
65547                  }) => {
65548                    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
65549                      icon: library_upload,
65550                      onClick: () => {
65551                        openFileDialog();
65552                      },
65553                      children: (0,external_wp_i18n_namespaceObject._x)('Upload', 'verb')
65554                    });
65555                  }
65556                })
65557              })]
65558            })]
65559          })]
65560        });
65561      }
65562    });
65563  }
65564  
65565  ;// ./node_modules/@wordpress/block-library/build-module/video/edit.js
65566  /**
65567   * External dependencies
65568   */
65569  
65570  
65571  /**
65572   * WordPress dependencies
65573   */
65574  
65575  
65576  
65577  
65578  
65579  
65580  
65581  
65582  
65583  
65584  /**
65585   * Internal dependencies
65586   */
65587  
65588  
65589  
65590  
65591  
65592  
65593  
65594  
65595  const video_edit_ALLOWED_MEDIA_TYPES = ['video'];
65596  function VideoEdit({
65597    isSelected: isSingleSelected,
65598    attributes,
65599    className,
65600    setAttributes,
65601    insertBlocksAfter,
65602    onReplace
65603  }) {
65604    const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(VideoEdit);
65605    const videoPlayer = (0,external_wp_element_namespaceObject.useRef)();
65606    const {
65607      id,
65608      controls,
65609      poster,
65610      src,
65611      tracks
65612    } = attributes;
65613    const [temporaryURL, setTemporaryURL] = (0,external_wp_element_namespaceObject.useState)(attributes.blob);
65614    const dropdownMenuProps = useToolsPanelDropdownMenuProps();
65615    useUploadMediaFromBlobURL({
65616      url: temporaryURL,
65617      allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
65618      onChange: onSelectVideo,
65619      onError: onUploadError
65620    });
65621    (0,external_wp_element_namespaceObject.useEffect)(() => {
65622      // Placeholder may be rendered.
65623      if (videoPlayer.current) {
65624        videoPlayer.current.load();
65625      }
65626    }, [poster]);
65627    function onSelectVideo(media) {
65628      if (!media || !media.url) {
65629        // In this case there was an error
65630        // previous attributes should be removed
65631        // because they may be temporary blob urls.
65632        setAttributes({
65633          src: undefined,
65634          id: undefined,
65635          poster: undefined,
65636          caption: undefined,
65637          blob: undefined
65638        });
65639        setTemporaryURL();
65640        return;
65641      }
65642      if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
65643        setTemporaryURL(media.url);
65644        return;
65645      }
65646  
65647      // Sets the block's attribute and updates the edit component from the
65648      // selected media.
65649      setAttributes({
65650        blob: undefined,
65651        src: media.url,
65652        id: media.id,
65653        poster: media.image?.src !== media.icon ? media.image?.src : undefined,
65654        caption: media.caption
65655      });
65656      setTemporaryURL();
65657    }
65658    function onSelectURL(newSrc) {
65659      if (newSrc !== src) {
65660        // Check if there's an embed block that handles this URL.
65661        const embedBlock = createUpgradedEmbedBlock({
65662          attributes: {
65663            url: newSrc
65664          }
65665        });
65666        if (undefined !== embedBlock && onReplace) {
65667          onReplace(embedBlock);
65668          return;
65669        }
65670        setAttributes({
65671          blob: undefined,
65672          src: newSrc,
65673          id: undefined,
65674          poster: undefined
65675        });
65676        setTemporaryURL();
65677      }
65678    }
65679    const {
65680      createErrorNotice
65681    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
65682    function onUploadError(message) {
65683      createErrorNotice(message, {
65684        type: 'snackbar'
65685      });
65686    }
65687  
65688    // Much of this description is duplicated from MediaPlaceholder.
65689    const placeholder = content => {
65690      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
65691        className: "block-editor-media-placeholder",
65692        withIllustration: !isSingleSelected,
65693        icon: library_video,
65694        label: (0,external_wp_i18n_namespaceObject.__)('Video'),
65695        instructions: (0,external_wp_i18n_namespaceObject.__)('Drag and drop a video, upload, or choose from your library.'),
65696        children: content
65697      });
65698    };
65699    const classes = dist_clsx(className, {
65700      'is-transient': !!temporaryURL
65701    });
65702    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
65703      className: classes
65704    });
65705    if (!src && !temporaryURL) {
65706      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
65707        ...blockProps,
65708        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaPlaceholder, {
65709          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
65710            icon: library_video
65711          }),
65712          onSelect: onSelectVideo,
65713          onSelectURL: onSelectURL,
65714          accept: "video/*",
65715          allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
65716          value: attributes,
65717          onError: onUploadError,
65718          placeholder: placeholder
65719        })
65720      });
65721    }
65722    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65723      children: [isSingleSelected && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
65724        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
65725          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TracksEditor, {
65726            tracks: tracks,
65727            onChange: newTracks => {
65728              setAttributes({
65729                tracks: newTracks
65730              });
65731            }
65732          })
65733        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockControls, {
65734          group: "other",
65735          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaReplaceFlow, {
65736            mediaId: id,
65737            mediaURL: src,
65738            allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,
65739            accept: "video/*",
65740            onSelect: onSelectVideo,
65741            onSelectURL: onSelectURL,
65742            onError: onUploadError,
65743            onReset: () => onSelectVideo(undefined)
65744          })
65745        })]
65746      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.InspectorControls, {
65747        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
65748          label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
65749          resetAll: () => {
65750            setAttributes({
65751              autoplay: false,
65752              controls: true,
65753              loop: false,
65754              muted: false,
65755              playsInline: false,
65756              preload: 'metadata',
65757              poster: ''
65758            });
65759          },
65760          dropdownMenuProps: dropdownMenuProps,
65761          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(edit_common_settings, {
65762            setAttributes: setAttributes,
65763            attributes: attributes
65764          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(poster_image, {
65765            poster: poster,
65766            setAttributes: setAttributes,
65767            instanceId: instanceId
65768          })]
65769        })
65770      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
65771        ...blockProps,
65772        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Disabled, {
65773          isDisabled: !isSingleSelected,
65774          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
65775            controls: controls,
65776            poster: poster,
65777            src: src || temporaryURL,
65778            ref: videoPlayer,
65779            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
65780              tracks: tracks
65781            })
65782          })
65783        }), !!temporaryURL && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Caption, {
65784          attributes: attributes,
65785          setAttributes: setAttributes,
65786          isSelected: isSingleSelected,
65787          insertBlocksAfter: insertBlocksAfter,
65788          label: (0,external_wp_i18n_namespaceObject.__)('Video caption text'),
65789          showToolbarButton: isSingleSelected
65790        })]
65791      })]
65792    });
65793  }
65794  /* harmony default export */ const video_edit = (VideoEdit);
65795  
65796  ;// ./node_modules/@wordpress/block-library/build-module/video/save.js
65797  /**
65798   * WordPress dependencies
65799   */
65800  
65801  
65802  /**
65803   * Internal dependencies
65804   */
65805  
65806  
65807  function video_save_save({
65808    attributes
65809  }) {
65810    const {
65811      autoplay,
65812      caption,
65813      controls,
65814      loop,
65815      muted,
65816      poster,
65817      preload,
65818      src,
65819      playsInline,
65820      tracks
65821    } = attributes;
65822    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("figure", {
65823      ...external_wp_blockEditor_namespaceObject.useBlockProps.save(),
65824      children: [src && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("video", {
65825        autoPlay: autoplay,
65826        controls: controls,
65827        loop: loop,
65828        muted: muted,
65829        poster: poster,
65830        preload: preload !== 'metadata' ? preload : undefined,
65831        src: src,
65832        playsInline: playsInline,
65833        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tracks, {
65834          tracks: tracks
65835        })
65836      }), !external_wp_blockEditor_namespaceObject.RichText.isEmpty(caption) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText.Content, {
65837        className: (0,external_wp_blockEditor_namespaceObject.__experimentalGetElementClassName)('caption'),
65838        tagName: "figcaption",
65839        value: caption
65840      })]
65841    });
65842  }
65843  
65844  ;// ./node_modules/@wordpress/block-library/build-module/video/transforms.js
65845  /**
65846   * WordPress dependencies
65847   */
65848  
65849  
65850  const video_transforms_transforms = {
65851    from: [{
65852      type: 'files',
65853      isMatch(files) {
65854        return files.length === 1 && files[0].type.indexOf('video/') === 0;
65855      },
65856      transform(files) {
65857        const file = files[0];
65858        // We don't need to upload the media directly here
65859        // It's already done as part of the `componentDidMount`
65860        // in the video block
65861        const block = (0,external_wp_blocks_namespaceObject.createBlock)('core/video', {
65862          blob: (0,external_wp_blob_namespaceObject.createBlobURL)(file)
65863        });
65864        return block;
65865      }
65866    }, {
65867      type: 'shortcode',
65868      tag: 'video',
65869      attributes: {
65870        src: {
65871          type: 'string',
65872          shortcode: ({
65873            named: {
65874              src,
65875              mp4,
65876              m4v,
65877              webm,
65878              ogv,
65879              flv
65880            }
65881          }) => {
65882            return src || mp4 || m4v || webm || ogv || flv;
65883          }
65884        },
65885        poster: {
65886          type: 'string',
65887          shortcode: ({
65888            named: {
65889              poster
65890            }
65891          }) => {
65892            return poster;
65893          }
65894        },
65895        loop: {
65896          type: 'string',
65897          shortcode: ({
65898            named: {
65899              loop
65900            }
65901          }) => {
65902            return loop;
65903          }
65904        },
65905        autoplay: {
65906          type: 'string',
65907          shortcode: ({
65908            named: {
65909              autoplay
65910            }
65911          }) => {
65912            return autoplay;
65913          }
65914        },
65915        preload: {
65916          type: 'string',
65917          shortcode: ({
65918            named: {
65919              preload
65920            }
65921          }) => {
65922            return preload;
65923          }
65924        }
65925      }
65926    }, {
65927      type: 'raw',
65928      isMatch: node => node.nodeName === 'P' && node.children.length === 1 && node.firstChild.nodeName === 'VIDEO',
65929      transform: node => {
65930        const videoElement = node.firstChild;
65931        const attributes = {
65932          autoplay: videoElement.hasAttribute('autoplay') ? true : undefined,
65933          controls: videoElement.hasAttribute('controls') ? undefined : false,
65934          loop: videoElement.hasAttribute('loop') ? true : undefined,
65935          muted: videoElement.hasAttribute('muted') ? true : undefined,
65936          preload: videoElement.getAttribute('preload') || undefined,
65937          playsInline: videoElement.hasAttribute('playsinline') ? true : undefined,
65938          poster: videoElement.getAttribute('poster') || undefined,
65939          src: videoElement.getAttribute('src') || undefined
65940        };
65941        if ((0,external_wp_blob_namespaceObject.isBlobURL)(attributes.src)) {
65942          attributes.blob = attributes.src;
65943          delete attributes.src;
65944        }
65945        return (0,external_wp_blocks_namespaceObject.createBlock)('core/video', attributes);
65946      }
65947    }]
65948  };
65949  /* harmony default export */ const video_transforms = (video_transforms_transforms);
65950  
65951  ;// ./node_modules/@wordpress/block-library/build-module/video/index.js
65952  /**
65953   * WordPress dependencies
65954   */
65955  
65956  
65957  
65958  /**
65959   * Internal dependencies
65960   */
65961  
65962  
65963  
65964  const video_metadata = {
65965    $schema: "https://schemas.wp.org/trunk/block.json",
65966    apiVersion: 3,
65967    name: "core/video",
65968    title: "Video",
65969    category: "media",
65970    description: "Embed a video from your media library or upload a new one.",
65971    keywords: ["movie"],
65972    textdomain: "default",
65973    attributes: {
65974      autoplay: {
65975        type: "boolean",
65976        source: "attribute",
65977        selector: "video",
65978        attribute: "autoplay"
65979      },
65980      caption: {
65981        type: "rich-text",
65982        source: "rich-text",
65983        selector: "figcaption",
65984        role: "content"
65985      },
65986      controls: {
65987        type: "boolean",
65988        source: "attribute",
65989        selector: "video",
65990        attribute: "controls",
65991        "default": true
65992      },
65993      id: {
65994        type: "number",
65995        role: "content"
65996      },
65997      loop: {
65998        type: "boolean",
65999        source: "attribute",
66000        selector: "video",
66001        attribute: "loop"
66002      },
66003      muted: {
66004        type: "boolean",
66005        source: "attribute",
66006        selector: "video",
66007        attribute: "muted"
66008      },
66009      poster: {
66010        type: "string",
66011        source: "attribute",
66012        selector: "video",
66013        attribute: "poster"
66014      },
66015      preload: {
66016        type: "string",
66017        source: "attribute",
66018        selector: "video",
66019        attribute: "preload",
66020        "default": "metadata"
66021      },
66022      blob: {
66023        type: "string",
66024        role: "local"
66025      },
66026      src: {
66027        type: "string",
66028        source: "attribute",
66029        selector: "video",
66030        attribute: "src",
66031        role: "content"
66032      },
66033      playsInline: {
66034        type: "boolean",
66035        source: "attribute",
66036        selector: "video",
66037        attribute: "playsinline"
66038      },
66039      tracks: {
66040        role: "content",
66041        type: "array",
66042        items: {
66043          type: "object"
66044        },
66045        "default": []
66046      }
66047    },
66048    supports: {
66049      anchor: true,
66050      align: true,
66051      spacing: {
66052        margin: true,
66053        padding: true,
66054        __experimentalDefaultControls: {
66055          margin: false,
66056          padding: false
66057        }
66058      },
66059      interactivity: {
66060        clientNavigation: true
66061      }
66062    },
66063    editorStyle: "wp-block-video-editor",
66064    style: "wp-block-video"
66065  };
66066  
66067  
66068  const {
66069    name: video_name
66070  } = video_metadata;
66071  
66072  const video_settings = {
66073    icon: library_video,
66074    example: {
66075      attributes: {
66076        src: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',
66077        // translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.
66078        caption: (0,external_wp_i18n_namespaceObject.__)('Wood thrush singing in Central Park, NYC.')
66079      }
66080    },
66081    transforms: video_transforms,
66082    deprecated: video_deprecated,
66083    edit: video_edit,
66084    save: video_save_save
66085  };
66086  const video_init = () => initBlock({
66087    name: video_name,
66088    metadata: video_metadata,
66089    settings: video_settings
66090  });
66091  
66092  ;// ./node_modules/@wordpress/block-library/build-module/footnotes/edit.js
66093  /**
66094   * WordPress dependencies
66095   */
66096  
66097  
66098  
66099  
66100  
66101  
66102  function FootnotesEdit({
66103    context: {
66104      postType,
66105      postId
66106    }
66107  }) {
66108    const [meta, updateMeta] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'meta', postId);
66109    const footnotesSupported = 'string' === typeof meta?.footnotes;
66110    const footnotes = meta?.footnotes ? JSON.parse(meta.footnotes) : [];
66111    const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)();
66112    if (!footnotesSupported) {
66113      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
66114        ...blockProps,
66115        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
66116          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
66117            icon: format_list_numbered
66118          }),
66119          label: (0,external_wp_i18n_namespaceObject.__)('Footnotes'),
66120          instructions: (0,external_wp_i18n_namespaceObject.__)('Footnotes are not supported here. Add this block to post or page content.')
66121        })
66122      });
66123    }
66124    if (!footnotes.length) {
66125      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
66126        ...blockProps,
66127        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Placeholder, {
66128          icon: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
66129            icon: format_list_numbered
66130          }),
66131          label: (0,external_wp_i18n_namespaceObject.__)('Footnotes'),
66132          instructions: (0,external_wp_i18n_namespaceObject.__)('Footnotes found in blocks within this document will be displayed here.')
66133        })
66134      });
66135    }
66136    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ol", {
66137      ...blockProps,
66138      children: footnotes.map(({
66139        id,
66140        content
66141      }) =>
66142      /*#__PURE__*/
66143      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
66144      (0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
66145        onMouseDown: event => {
66146          // When clicking on the list item (not on descendants),
66147          // focus the rich text element since it's only 1px wide when
66148          // empty.
66149          if (event.target === event.currentTarget) {
66150            event.target.firstElementChild.focus();
66151            event.preventDefault();
66152          }
66153        },
66154        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichText, {
66155          id: id,
66156          tagName: "span",
66157          value: content,
66158          identifier: id
66159          // To do: figure out why the browser is not scrolling
66160          // into view when it receives focus.
66161          ,
66162          onFocus: event => {
66163            if (!event.target.textContent.trim()) {
66164              event.target.scrollIntoView();
66165            }
66166          },
66167          onChange: nextFootnote => {
66168            updateMeta({
66169              ...meta,
66170              footnotes: JSON.stringify(footnotes.map(footnote => {
66171                return footnote.id === id ? {
66172                  content: nextFootnote,
66173                  id
66174                } : footnote;
66175              }))
66176            });
66177          }
66178        }), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
66179          href: `#$id}-link`,
66180          children: "\u21A9\uFE0E"
66181        })]
66182      }, id))
66183    });
66184  }
66185  
66186  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/native.js
66187  const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
66188  /* harmony default export */ const esm_browser_native = ({
66189    randomUUID
66190  });
66191  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/rng.js
66192  // Unique ID creation requires a high quality random # generator. In the browser we therefore
66193  // require the crypto API and do not support built-in fallback to lower quality random number
66194  // generators (like Math.random()).
66195  let getRandomValues;
66196  const rnds8 = new Uint8Array(16);
66197  function rng() {
66198    // lazy load so that environments that need to polyfill have a chance to do so
66199    if (!getRandomValues) {
66200      // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
66201      getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
66202  
66203      if (!getRandomValues) {
66204        throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
66205      }
66206    }
66207  
66208    return getRandomValues(rnds8);
66209  }
66210  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/stringify.js
66211  
66212  /**
66213   * Convert array of 16 byte values to UUID string format of the form:
66214   * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
66215   */
66216  
66217  const byteToHex = [];
66218  
66219  for (let i = 0; i < 256; ++i) {
66220    byteToHex.push((i + 0x100).toString(16).slice(1));
66221  }
66222  
66223  function unsafeStringify(arr, offset = 0) {
66224    // Note: Be careful editing this code!  It's been tuned for performance
66225    // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
66226    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]];
66227  }
66228  
66229  function stringify(arr, offset = 0) {
66230    const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID.  If this throws, it's likely due to one
66231    // of the following:
66232    // - One or more input array values don't map to a hex octet (leading to
66233    // "undefined" in the uuid)
66234    // - Invalid input values for the RFC `version` or `variant` fields
66235  
66236    if (!validate(uuid)) {
66237      throw TypeError('Stringified UUID is invalid');
66238    }
66239  
66240    return uuid;
66241  }
66242  
66243  /* harmony default export */ const esm_browser_stringify = ((/* unused pure expression or super */ null && (stringify)));
66244  ;// ./node_modules/@wordpress/block-library/node_modules/uuid/dist/esm-browser/v4.js
66245  
66246  
66247  
66248  
66249  function v4_v4(options, buf, offset) {
66250    if (esm_browser_native.randomUUID && !buf && !options) {
66251      return esm_browser_native.randomUUID();
66252    }
66253  
66254    options = options || {};
66255    const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
66256  
66257    rnds[6] = rnds[6] & 0x0f | 0x40;
66258    rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
66259  
66260    if (buf) {
66261      offset = offset || 0;
66262  
66263      for (let i = 0; i < 16; ++i) {
66264        buf[offset + i] = rnds[i];
66265      }
66266  
66267      return buf;
66268    }
66269  
66270    return unsafeStringify(rnds);
66271  }
66272  
66273  /* harmony default export */ const esm_browser_v4 = (v4_v4);
66274  ;// ./node_modules/@wordpress/block-library/build-module/footnotes/format.js
66275  /**
66276   * External dependencies
66277   */
66278  
66279  
66280  /**
66281   * WordPress dependencies
66282   */
66283  
66284  
66285  
66286  
66287  
66288  
66289  
66290  
66291  /**
66292   * Internal dependencies
66293   */
66294  
66295  
66296  const {
66297    usesContextKey
66298  } = unlock(external_wp_blockEditor_namespaceObject.privateApis);
66299  const formatName = 'core/footnote';
66300  const POST_CONTENT_BLOCK_NAME = 'core/post-content';
66301  const SYNCED_PATTERN_BLOCK_NAME = 'core/block';
66302  const format = {
66303    title: (0,external_wp_i18n_namespaceObject.__)('Footnote'),
66304    tagName: 'sup',
66305    className: 'fn',
66306    attributes: {
66307      'data-fn': 'data-fn'
66308    },
66309    interactive: true,
66310    contentEditable: false,
66311    [usesContextKey]: ['postType', 'postId'],
66312    edit: function Edit({
66313      value,
66314      onChange,
66315      isObjectActive,
66316      context: {
66317        postType,
66318        postId
66319      }
66320    }) {
66321      const registry = (0,external_wp_data_namespaceObject.useRegistry)();
66322      const {
66323        getSelectedBlockClientId,
66324        getBlocks,
66325        getBlockRootClientId,
66326        getBlockName,
66327        getBlockParentsByBlockName
66328      } = registry.select(external_wp_blockEditor_namespaceObject.store);
66329      const isFootnotesSupported = (0,external_wp_data_namespaceObject.useSelect)(select => {
66330        if (!select(external_wp_blocks_namespaceObject.store).getBlockType('core/footnotes')) {
66331          return false;
66332        }
66333        const allowedBlocks = select(external_wp_blockEditor_namespaceObject.store).getSettings().allowedBlockTypes;
66334        if (allowedBlocks === false || Array.isArray(allowedBlocks) && !allowedBlocks.includes('core/footnotes')) {
66335          return false;
66336        }
66337        const entityRecord = select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, postId);
66338        if ('string' !== typeof entityRecord?.meta?.footnotes) {
66339          return false;
66340        }
66341  
66342        // Checks if the selected block lives within a pattern.
66343        const {
66344          getBlockParentsByBlockName: _getBlockParentsByBlockName,
66345          getSelectedBlockClientId: _getSelectedBlockClientId
66346        } = select(external_wp_blockEditor_namespaceObject.store);
66347        const parentCoreBlocks = _getBlockParentsByBlockName(_getSelectedBlockClientId(), SYNCED_PATTERN_BLOCK_NAME);
66348        return !parentCoreBlocks || parentCoreBlocks.length === 0;
66349      }, [postType, postId]);
66350      const {
66351        selectionChange,
66352        insertBlock
66353      } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
66354      if (!isFootnotesSupported) {
66355        return null;
66356      }
66357      function onClick() {
66358        registry.batch(() => {
66359          let id;
66360          if (isObjectActive) {
66361            const object = value.replacements[value.start];
66362            id = object?.attributes?.['data-fn'];
66363          } else {
66364            id = esm_browser_v4();
66365            const newValue = (0,external_wp_richText_namespaceObject.insertObject)(value, {
66366              type: formatName,
66367              attributes: {
66368                'data-fn': id
66369              },
66370              innerHTML: `<a href="#$id}" id="$id}-link">*</a>`
66371            }, value.end, value.end);
66372            newValue.start = newValue.end - 1;
66373            onChange(newValue);
66374          }
66375          const selectedClientId = getSelectedBlockClientId();
66376  
66377          /*
66378           * Attempts to find a common parent post content block.
66379           * This allows for locating blocks within a page edited in the site editor.
66380           */
66381          const parentPostContent = getBlockParentsByBlockName(selectedClientId, POST_CONTENT_BLOCK_NAME);
66382  
66383          // When called with a post content block, getBlocks will return
66384          // the block with controlled inner blocks included.
66385          const blocks = parentPostContent.length ? getBlocks(parentPostContent[0]) : getBlocks();
66386  
66387          // BFS search to find the first footnote block.
66388          let fnBlock = null;
66389          {
66390            const queue = [...blocks];
66391            while (queue.length) {
66392              const block = queue.shift();
66393              if (block.name === 'core/footnotes') {
66394                fnBlock = block;
66395                break;
66396              }
66397              queue.push(...block.innerBlocks);
66398            }
66399          }
66400  
66401          // Maybe this should all also be moved to the entity provider.
66402          // When there is no footnotes block in the post, create one and
66403          // insert it at the bottom.
66404          if (!fnBlock) {
66405            let rootClientId = getBlockRootClientId(selectedClientId);
66406            while (rootClientId && getBlockName(rootClientId) !== POST_CONTENT_BLOCK_NAME) {
66407              rootClientId = getBlockRootClientId(rootClientId);
66408            }
66409            fnBlock = (0,external_wp_blocks_namespaceObject.createBlock)('core/footnotes');
66410            insertBlock(fnBlock, undefined, rootClientId);
66411          }
66412          selectionChange(fnBlock.clientId, id, 0, 0);
66413        });
66414      }
66415      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.RichTextToolbarButton, {
66416        icon: format_list_numbered,
66417        title: (0,external_wp_i18n_namespaceObject.__)('Footnote'),
66418        onClick: onClick,
66419        isActive: isObjectActive
66420      });
66421    }
66422  };
66423  
66424  ;// ./node_modules/@wordpress/block-library/build-module/footnotes/index.js
66425  /**
66426   * WordPress dependencies
66427   */
66428  
66429  
66430  
66431  /**
66432   * Internal dependencies
66433   */
66434  
66435  
66436  const footnotes_metadata = {
66437    $schema: "https://schemas.wp.org/trunk/block.json",
66438    apiVersion: 3,
66439    name: "core/footnotes",
66440    title: "Footnotes",
66441    category: "text",
66442    description: "Display footnotes added to the page.",
66443    keywords: ["references"],
66444    textdomain: "default",
66445    usesContext: ["postId", "postType"],
66446    supports: {
66447      __experimentalBorder: {
66448        radius: true,
66449        color: true,
66450        width: true,
66451        style: true,
66452        __experimentalDefaultControls: {
66453          radius: false,
66454          color: false,
66455          width: false,
66456          style: false
66457        }
66458      },
66459      color: {
66460        background: true,
66461        link: true,
66462        text: true,
66463        __experimentalDefaultControls: {
66464          link: true,
66465          text: true
66466        }
66467      },
66468      html: false,
66469      multiple: false,
66470      reusable: false,
66471      inserter: false,
66472      spacing: {
66473        margin: true,
66474        padding: true,
66475        __experimentalDefaultControls: {
66476          margin: false,
66477          padding: false
66478        }
66479      },
66480      typography: {
66481        fontSize: true,
66482        lineHeight: true,
66483        __experimentalFontFamily: true,
66484        __experimentalTextDecoration: true,
66485        __experimentalFontStyle: true,
66486        __experimentalFontWeight: true,
66487        __experimentalLetterSpacing: true,
66488        __experimentalTextTransform: true,
66489        __experimentalWritingMode: true,
66490        __experimentalDefaultControls: {
66491          fontSize: true
66492        }
66493      },
66494      interactivity: {
66495        clientNavigation: true
66496      }
66497    },
66498    style: "wp-block-footnotes"
66499  };
66500  
66501  const {
66502    name: footnotes_name
66503  } = footnotes_metadata;
66504  
66505  const footnotes_settings = {
66506    icon: format_list_numbered,
66507    edit: FootnotesEdit
66508  };
66509  const footnotes_init = () => {
66510    (0,external_wp_richText_namespaceObject.registerFormatType)(formatName, format);
66511    initBlock({
66512      name: footnotes_name,
66513      metadata: footnotes_metadata,
66514      settings: footnotes_settings
66515    });
66516  };
66517  
66518  // EXTERNAL MODULE: ./node_modules/@wordpress/block-library/build-module/utils/is-block-metadata-experimental.js
66519  var is_block_metadata_experimental = __webpack_require__(2321);
66520  var is_block_metadata_experimental_default = /*#__PURE__*/__webpack_require__.n(is_block_metadata_experimental);
66521  ;// external ["wp","keyboardShortcuts"]
66522  const external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"];
66523  ;// ./node_modules/@wordpress/block-library/build-module/block-keyboard-shortcuts/index.js
66524  /**
66525   * WordPress dependencies
66526   */
66527  
66528  
66529  
66530  
66531  
66532  
66533  function BlockKeyboardShortcuts() {
66534    const {
66535      registerShortcut
66536    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
66537    const {
66538      replaceBlocks
66539    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
66540    const {
66541      getBlockName,
66542      getSelectedBlockClientId,
66543      getBlockAttributes
66544    } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
66545    const handleTransformHeadingAndParagraph = (event, level) => {
66546      event.preventDefault();
66547      const currentClientId = getSelectedBlockClientId();
66548      if (currentClientId === null) {
66549        return;
66550      }
66551      const blockName = getBlockName(currentClientId);
66552      const isParagraph = blockName === 'core/paragraph';
66553      const isHeading = blockName === 'core/heading';
66554      if (!isParagraph && !isHeading) {
66555        return;
66556      }
66557      const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
66558      const attributes = getBlockAttributes(currentClientId);
66559  
66560      // Avoid unnecessary block transform when attempting to transform to
66561      // the same block type and/or same level.
66562      if (isParagraph && level === 0 || isHeading && attributes.level === level) {
66563        return;
66564      }
66565      const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
66566      const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
66567      replaceBlocks(currentClientId, (0,external_wp_blocks_namespaceObject.createBlock)(destinationBlockName, {
66568        level,
66569        content: attributes.content,
66570        ...{
66571          [destinationTextAlign]: attributes[textAlign]
66572        }
66573      }));
66574    };
66575    (0,external_wp_element_namespaceObject.useEffect)(() => {
66576      registerShortcut({
66577        name: 'core/block-editor/transform-heading-to-paragraph',
66578        category: 'block-library',
66579        description: (0,external_wp_i18n_namespaceObject.__)('Transform heading to paragraph.'),
66580        keyCombination: {
66581          modifier: 'access',
66582          character: '0'
66583        },
66584        aliases: [{
66585          modifier: 'access',
66586          character: '7'
66587        }]
66588      });
66589      [1, 2, 3, 4, 5, 6].forEach(level => {
66590        registerShortcut({
66591          name: `core/block-editor/transform-paragraph-to-heading-$level}`,
66592          category: 'block-library',
66593          description: (0,external_wp_i18n_namespaceObject.__)('Transform paragraph to heading.'),
66594          keyCombination: {
66595            modifier: 'access',
66596            character: `$level}`
66597          }
66598        });
66599      });
66600    }, [registerShortcut]);
66601    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
66602    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-1', event => handleTransformHeadingAndParagraph(event, 1));
66603    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-2', event => handleTransformHeadingAndParagraph(event, 2));
66604    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-3', event => handleTransformHeadingAndParagraph(event, 3));
66605    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-4', event => handleTransformHeadingAndParagraph(event, 4));
66606    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-5', event => handleTransformHeadingAndParagraph(event, 5));
66607    (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/block-editor/transform-paragraph-to-heading-6', event => handleTransformHeadingAndParagraph(event, 6));
66608    return null;
66609  }
66610  /* harmony default export */ const block_keyboard_shortcuts = (BlockKeyboardShortcuts);
66611  
66612  ;// ./node_modules/@wordpress/block-library/build-module/private-apis.js
66613  /**
66614   * Internal dependencies
66615   */
66616  
66617  
66618  
66619  /**
66620   * @private
66621   */
66622  const privateApis = {};
66623  lock(privateApis, {
66624    BlockKeyboardShortcuts: block_keyboard_shortcuts
66625  });
66626  
66627  ;// ./node_modules/@wordpress/block-library/build-module/index.js
66628  /* wp:polyfill */
66629  /**
66630   * WordPress dependencies
66631   */
66632  
66633  
66634  /**
66635   * Internal dependencies
66636   */
66637  // When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks
66638  // are transformed by packages/block-library/src/index.js as follows:
66639  //    import * as experimentalBlock from './experimental-block'
66640  // becomes
66641  //    const experimentalBlock = null;
66642  // This enables webpack to eliminate the experimental blocks code from the
66643  // production build to make the final bundle smaller.
66644  //
66645  // See https://github.com/WordPress/gutenberg/pull/40655 for more context.
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  
66721  
66722  
66723  
66724  
66725  
66726  
66727  
66728  
66729  
66730  
66731  
66732  
66733  
66734  
66735  
66736  
66737  
66738  
66739  
66740  
66741  
66742  
66743  
66744  
66745  
66746  
66747  
66748  
66749  
66750  /**
66751   * Function to get all the block-library blocks in an array
66752   */
66753  const getAllBlocks = () => {
66754    const blocks = [
66755    // Common blocks are grouped at the top to prioritize their display
66756    // in various contexts — like the inserter and auto-complete components.
66757    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,
66758    // Register all remaining core blocks.
66759    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,
66760    // theme blocks
66761    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];
66762    if (window?.__experimentalEnableFormBlocks) {
66763      blocks.push(build_module_form_namespaceObject);
66764      blocks.push(form_input_namespaceObject);
66765      blocks.push(form_submit_button_namespaceObject);
66766      blocks.push(form_submission_notification_namespaceObject);
66767    }
66768  
66769    // When in a WordPress context, conditionally
66770    // add the classic block and TinyMCE editor
66771    // under any of the following conditions:
66772    //   - the current post contains a classic block
66773    //   - the experiment to disable TinyMCE isn't active.
66774    //   - a query argument specifies that TinyMCE should be loaded
66775    if (window?.wp?.oldEditor && (window?.wp?.needsClassicBlock || !window?.__experimentalDisableTinymce || !!new URLSearchParams(window?.location?.search).get('requiresTinymce'))) {
66776      blocks.push(freeform_namespaceObject);
66777    }
66778    return blocks.filter(Boolean);
66779  };
66780  
66781  /**
66782   * Function to get all the core blocks in an array.
66783   *
66784   * @example
66785   * ```js
66786   * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';
66787   *
66788   * const coreBlocks = __experimentalGetCoreBlocks();
66789   * ```
66790   */
66791  const __experimentalGetCoreBlocks = () => getAllBlocks().filter(({
66792    metadata
66793  }) => !is_block_metadata_experimental_default()(metadata));
66794  
66795  /**
66796   * Function to register core blocks provided by the block editor.
66797   *
66798   * @param {Array} blocks An optional array of the core blocks being registered.
66799   *
66800   * @example
66801   * ```js
66802   * import { registerCoreBlocks } from '@wordpress/block-library';
66803   *
66804   * registerCoreBlocks();
66805   * ```
66806   */
66807  const registerCoreBlocks = (blocks = __experimentalGetCoreBlocks()) => {
66808    blocks.forEach(({
66809      init
66810    }) => init());
66811    (0,external_wp_blocks_namespaceObject.setDefaultBlockName)(paragraph_name);
66812    if (window.wp && window.wp.oldEditor && blocks.some(({
66813      name
66814    }) => name === freeform_name)) {
66815      (0,external_wp_blocks_namespaceObject.setFreeformContentHandlerName)(freeform_name);
66816    }
66817    (0,external_wp_blocks_namespaceObject.setUnregisteredTypeHandlerName)(missing_name);
66818    (0,external_wp_blocks_namespaceObject.setGroupingBlockName)(group_name);
66819  };
66820  
66821  /**
66822   * Function to register experimental core blocks depending on editor settings.
66823   *
66824   * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.
66825   * @example
66826   * ```js
66827   * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
66828   *
66829   * __experimentalRegisterExperimentalCoreBlocks( settings );
66830   * ```
66831   */
66832  const __experimentalRegisterExperimentalCoreBlocks =  false ? 0 : undefined;
66833  
66834  
66835  })();
66836  
66837  (window.wp = window.wp || {}).blockLibrary = __webpack_exports__;
66838  /******/ })()
66839  ;


Generated : Wed Sep 3 08:20:02 2025 Cross-referenced by PHPXref