[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/js/dist/ -> customize-widgets.js (source)

   1  var wp;
   2  (wp ||= {}).customizeWidgets = (() => {
   3    var __create = Object.create;
   4    var __defProp = Object.defineProperty;
   5    var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
   6    var __getOwnPropNames = Object.getOwnPropertyNames;
   7    var __getProtoOf = Object.getPrototypeOf;
   8    var __hasOwnProp = Object.prototype.hasOwnProperty;
   9    var __commonJS = (cb, mod) => function __require() {
  10      return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  11    };
  12    var __export = (target, all) => {
  13      for (var name in all)
  14        __defProp(target, name, { get: all[name], enumerable: true });
  15    };
  16    var __copyProps = (to, from, except, desc) => {
  17      if (from && typeof from === "object" || typeof from === "function") {
  18        for (let key of __getOwnPropNames(from))
  19          if (!__hasOwnProp.call(to, key) && key !== except)
  20            __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  21      }
  22      return to;
  23    };
  24    var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  25      // If the importer is in node compatibility mode or this is not an ESM
  26      // file that has been converted to a CommonJS file using a Babel-
  27      // compatible transform (i.e. "__esModule" has not been set), then set
  28      // "default" to the CommonJS "module.exports" for node compatibility.
  29      isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  30      mod
  31    ));
  32    var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  33  
  34    // package-external:@wordpress/element
  35    var require_element = __commonJS({
  36      "package-external:@wordpress/element"(exports, module) {
  37        module.exports = window.wp.element;
  38      }
  39    });
  40  
  41    // package-external:@wordpress/block-library
  42    var require_block_library = __commonJS({
  43      "package-external:@wordpress/block-library"(exports, module) {
  44        module.exports = window.wp.blockLibrary;
  45      }
  46    });
  47  
  48    // package-external:@wordpress/widgets
  49    var require_widgets = __commonJS({
  50      "package-external:@wordpress/widgets"(exports, module) {
  51        module.exports = window.wp.widgets;
  52      }
  53    });
  54  
  55    // package-external:@wordpress/blocks
  56    var require_blocks = __commonJS({
  57      "package-external:@wordpress/blocks"(exports, module) {
  58        module.exports = window.wp.blocks;
  59      }
  60    });
  61  
  62    // package-external:@wordpress/data
  63    var require_data = __commonJS({
  64      "package-external:@wordpress/data"(exports, module) {
  65        module.exports = window.wp.data;
  66      }
  67    });
  68  
  69    // package-external:@wordpress/preferences
  70    var require_preferences = __commonJS({
  71      "package-external:@wordpress/preferences"(exports, module) {
  72        module.exports = window.wp.preferences;
  73      }
  74    });
  75  
  76    // package-external:@wordpress/components
  77    var require_components = __commonJS({
  78      "package-external:@wordpress/components"(exports, module) {
  79        module.exports = window.wp.components;
  80      }
  81    });
  82  
  83    // package-external:@wordpress/i18n
  84    var require_i18n = __commonJS({
  85      "package-external:@wordpress/i18n"(exports, module) {
  86        module.exports = window.wp.i18n;
  87      }
  88    });
  89  
  90    // package-external:@wordpress/block-editor
  91    var require_block_editor = __commonJS({
  92      "package-external:@wordpress/block-editor"(exports, module) {
  93        module.exports = window.wp.blockEditor;
  94      }
  95    });
  96  
  97    // package-external:@wordpress/compose
  98    var require_compose = __commonJS({
  99      "package-external:@wordpress/compose"(exports, module) {
 100        module.exports = window.wp.compose;
 101      }
 102    });
 103  
 104    // package-external:@wordpress/hooks
 105    var require_hooks = __commonJS({
 106      "package-external:@wordpress/hooks"(exports, module) {
 107        module.exports = window.wp.hooks;
 108      }
 109    });
 110  
 111    // vendor-external:react/jsx-runtime
 112    var require_jsx_runtime = __commonJS({
 113      "vendor-external:react/jsx-runtime"(exports, module) {
 114        module.exports = window.ReactJSXRuntime;
 115      }
 116    });
 117  
 118    // package-external:@wordpress/core-data
 119    var require_core_data = __commonJS({
 120      "package-external:@wordpress/core-data"(exports, module) {
 121        module.exports = window.wp.coreData;
 122      }
 123    });
 124  
 125    // package-external:@wordpress/media-utils
 126    var require_media_utils = __commonJS({
 127      "package-external:@wordpress/media-utils"(exports, module) {
 128        module.exports = window.wp.mediaUtils;
 129      }
 130    });
 131  
 132    // package-external:@wordpress/keycodes
 133    var require_keycodes = __commonJS({
 134      "package-external:@wordpress/keycodes"(exports, module) {
 135        module.exports = window.wp.keycodes;
 136      }
 137    });
 138  
 139    // package-external:@wordpress/primitives
 140    var require_primitives = __commonJS({
 141      "package-external:@wordpress/primitives"(exports, module) {
 142        module.exports = window.wp.primitives;
 143      }
 144    });
 145  
 146    // package-external:@wordpress/keyboard-shortcuts
 147    var require_keyboard_shortcuts = __commonJS({
 148      "package-external:@wordpress/keyboard-shortcuts"(exports, module) {
 149        module.exports = window.wp.keyboardShortcuts;
 150      }
 151    });
 152  
 153    // vendor-external:react
 154    var require_react = __commonJS({
 155      "vendor-external:react"(exports, module) {
 156        module.exports = window.React;
 157      }
 158    });
 159  
 160    // package-external:@wordpress/private-apis
 161    var require_private_apis = __commonJS({
 162      "package-external:@wordpress/private-apis"(exports, module) {
 163        module.exports = window.wp.privateApis;
 164      }
 165    });
 166  
 167    // node_modules/fast-deep-equal/es6/index.js
 168    var require_es6 = __commonJS({
 169      "node_modules/fast-deep-equal/es6/index.js"(exports, module) {
 170        "use strict";
 171        module.exports = function equal(a, b) {
 172          if (a === b) return true;
 173          if (a && b && typeof a == "object" && typeof b == "object") {
 174            if (a.constructor !== b.constructor) return false;
 175            var length, i, keys;
 176            if (Array.isArray(a)) {
 177              length = a.length;
 178              if (length != b.length) return false;
 179              for (i = length; i-- !== 0; )
 180                if (!equal(a[i], b[i])) return false;
 181              return true;
 182            }
 183            if (a instanceof Map && b instanceof Map) {
 184              if (a.size !== b.size) return false;
 185              for (i of a.entries())
 186                if (!b.has(i[0])) return false;
 187              for (i of a.entries())
 188                if (!equal(i[1], b.get(i[0]))) return false;
 189              return true;
 190            }
 191            if (a instanceof Set && b instanceof Set) {
 192              if (a.size !== b.size) return false;
 193              for (i of a.entries())
 194                if (!b.has(i[0])) return false;
 195              return true;
 196            }
 197            if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
 198              length = a.length;
 199              if (length != b.length) return false;
 200              for (i = length; i-- !== 0; )
 201                if (a[i] !== b[i]) return false;
 202              return true;
 203            }
 204            if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
 205            if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
 206            if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
 207            keys = Object.keys(a);
 208            length = keys.length;
 209            if (length !== Object.keys(b).length) return false;
 210            for (i = length; i-- !== 0; )
 211              if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
 212            for (i = length; i-- !== 0; ) {
 213              var key = keys[i];
 214              if (!equal(a[key], b[key])) return false;
 215            }
 216            return true;
 217          }
 218          return a !== a && b !== b;
 219        };
 220      }
 221    });
 222  
 223    // package-external:@wordpress/is-shallow-equal
 224    var require_is_shallow_equal = __commonJS({
 225      "package-external:@wordpress/is-shallow-equal"(exports, module) {
 226        module.exports = window.wp.isShallowEqual;
 227      }
 228    });
 229  
 230    // package-external:@wordpress/dom
 231    var require_dom = __commonJS({
 232      "package-external:@wordpress/dom"(exports, module) {
 233        module.exports = window.wp.dom;
 234      }
 235    });
 236  
 237    // packages/customize-widgets/build-module/index.mjs
 238    var index_exports = {};
 239    __export(index_exports, {
 240      initialize: () => initialize,
 241      store: () => store
 242    });
 243    var import_element18 = __toESM(require_element(), 1);
 244    var import_block_library2 = __toESM(require_block_library(), 1);
 245    var import_widgets5 = __toESM(require_widgets(), 1);
 246    var import_blocks2 = __toESM(require_blocks(), 1);
 247    var import_data17 = __toESM(require_data(), 1);
 248    var import_preferences4 = __toESM(require_preferences(), 1);
 249  
 250    // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
 251    var import_element17 = __toESM(require_element(), 1);
 252    var import_components8 = __toESM(require_components(), 1);
 253  
 254    // packages/customize-widgets/build-module/components/error-boundary/index.mjs
 255    var import_element = __toESM(require_element(), 1);
 256    var import_i18n = __toESM(require_i18n(), 1);
 257    var import_components = __toESM(require_components(), 1);
 258    var import_block_editor = __toESM(require_block_editor(), 1);
 259    var import_compose = __toESM(require_compose(), 1);
 260    var import_hooks = __toESM(require_hooks(), 1);
 261    var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
 262    function CopyButton({ text, children }) {
 263      const ref = (0, import_compose.useCopyToClipboard)(text);
 264      return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Button, { size: "compact", variant: "secondary", ref, children });
 265    }
 266    var ErrorBoundary = class extends import_element.Component {
 267      constructor() {
 268        super(...arguments);
 269        this.state = {
 270          error: null
 271        };
 272      }
 273      componentDidCatch(error) {
 274        this.setState({ error });
 275        (0, import_hooks.doAction)("editor.ErrorBoundary.errorLogged", error);
 276      }
 277      render() {
 278        const { error } = this.state;
 279        if (!error) {
 280          return this.props.children;
 281        }
 282        return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
 283          import_block_editor.Warning,
 284          {
 285            className: "customize-widgets-error-boundary",
 286            actions: [
 287              /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, { text: error.stack, children: (0, import_i18n.__)("Copy Error") }, "copy-error")
 288            ],
 289            children: (0, import_i18n.__)("The editor has encountered an unexpected error.")
 290          }
 291        );
 292      }
 293    };
 294  
 295    // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
 296    var import_compose3 = __toESM(require_compose(), 1);
 297    var import_core_data = __toESM(require_core_data(), 1);
 298    var import_data12 = __toESM(require_data(), 1);
 299    var import_element14 = __toESM(require_element(), 1);
 300    var import_block_editor8 = __toESM(require_block_editor(), 1);
 301    var import_media_utils = __toESM(require_media_utils(), 1);
 302    var import_preferences3 = __toESM(require_preferences(), 1);
 303    var import_block_library = __toESM(require_block_library(), 1);
 304  
 305    // packages/customize-widgets/build-module/components/block-inspector-button/index.mjs
 306    var import_element2 = __toESM(require_element(), 1);
 307    var import_i18n2 = __toESM(require_i18n(), 1);
 308    var import_components2 = __toESM(require_components(), 1);
 309    var import_data = __toESM(require_data(), 1);
 310    var import_block_editor2 = __toESM(require_block_editor(), 1);
 311    var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
 312    function BlockInspectorButton({ inspector, closeMenu, ...props }) {
 313      const selectedBlockClientId = (0, import_data.useSelect)(
 314        (select) => select(import_block_editor2.store).getSelectedBlockClientId(),
 315        []
 316      );
 317      const selectedBlock = (0, import_element2.useMemo)(
 318        () => document.getElementById(`block-$selectedBlockClientId}`),
 319        [selectedBlockClientId]
 320      );
 321      return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
 322        import_components2.MenuItem,
 323        {
 324          onClick: () => {
 325            inspector.open({
 326              returnFocusWhenClose: selectedBlock
 327            });
 328            closeMenu();
 329          },
 330          ...props,
 331          children: (0, import_i18n2.__)("Show more settings")
 332        }
 333      );
 334    }
 335    var block_inspector_button_default = BlockInspectorButton;
 336  
 337    // node_modules/clsx/dist/clsx.mjs
 338    function r(e) {
 339      var t, f, n = "";
 340      if ("string" == typeof e || "number" == typeof e) n += e;
 341      else if ("object" == typeof e) if (Array.isArray(e)) {
 342        var o = e.length;
 343        for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
 344      } else for (f in e) e[f] && (n && (n += " "), n += f);
 345      return n;
 346    }
 347    function clsx() {
 348      for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
 349      return n;
 350    }
 351    var clsx_default = clsx;
 352  
 353    // packages/customize-widgets/build-module/components/header/index.mjs
 354    var import_components6 = __toESM(require_components(), 1);
 355    var import_block_editor4 = __toESM(require_block_editor(), 1);
 356    var import_element7 = __toESM(require_element(), 1);
 357    var import_keycodes3 = __toESM(require_keycodes(), 1);
 358    var import_i18n7 = __toESM(require_i18n(), 1);
 359  
 360    // packages/icons/build-module/library/close-small.mjs
 361    var import_primitives = __toESM(require_primitives(), 1);
 362    var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
 363    var close_small_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives.Path, { d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" }) });
 364  
 365    // packages/icons/build-module/library/external.mjs
 366    var import_primitives2 = __toESM(require_primitives(), 1);
 367    var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
 368    var external_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives2.Path, { d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" }) });
 369  
 370    // packages/icons/build-module/library/more-vertical.mjs
 371    var import_primitives3 = __toESM(require_primitives(), 1);
 372    var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
 373    var more_vertical_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives3.Path, { d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" }) });
 374  
 375    // packages/icons/build-module/library/plus.mjs
 376    var import_primitives4 = __toESM(require_primitives(), 1);
 377    var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
 378    var plus_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives4.Path, { d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" }) });
 379  
 380    // packages/icons/build-module/library/redo.mjs
 381    var import_primitives5 = __toESM(require_primitives(), 1);
 382    var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
 383    var redo_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives5.Path, { d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z" }) });
 384  
 385    // packages/icons/build-module/library/undo.mjs
 386    var import_primitives6 = __toESM(require_primitives(), 1);
 387    var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
 388    var undo_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives6.Path, { d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z" }) });
 389  
 390    // packages/customize-widgets/build-module/components/inserter/index.mjs
 391    var import_i18n3 = __toESM(require_i18n(), 1);
 392    var import_block_editor3 = __toESM(require_block_editor(), 1);
 393    var import_components3 = __toESM(require_components(), 1);
 394    var import_compose2 = __toESM(require_compose(), 1);
 395    var import_data4 = __toESM(require_data(), 1);
 396  
 397    // packages/customize-widgets/build-module/store/index.mjs
 398    var import_data3 = __toESM(require_data(), 1);
 399  
 400    // packages/customize-widgets/build-module/store/reducer.mjs
 401    var import_data2 = __toESM(require_data(), 1);
 402    function blockInserterPanel(state = false, action) {
 403      switch (action.type) {
 404        case "SET_IS_INSERTER_OPENED":
 405          return action.value;
 406      }
 407      return state;
 408    }
 409    var reducer_default = (0, import_data2.combineReducers)({
 410      blockInserterPanel
 411    });
 412  
 413    // packages/customize-widgets/build-module/store/selectors.mjs
 414    var selectors_exports = {};
 415    __export(selectors_exports, {
 416      __experimentalGetInsertionPoint: () => __experimentalGetInsertionPoint,
 417      isInserterOpened: () => isInserterOpened
 418    });
 419    var EMPTY_INSERTION_POINT = {
 420      rootClientId: void 0,
 421      insertionIndex: void 0
 422    };
 423    function isInserterOpened(state) {
 424      return !!state.blockInserterPanel;
 425    }
 426    function __experimentalGetInsertionPoint(state) {
 427      if (typeof state.blockInserterPanel === "boolean") {
 428        return EMPTY_INSERTION_POINT;
 429      }
 430      return state.blockInserterPanel;
 431    }
 432  
 433    // packages/customize-widgets/build-module/store/actions.mjs
 434    var actions_exports = {};
 435    __export(actions_exports, {
 436      setIsInserterOpened: () => setIsInserterOpened
 437    });
 438    function setIsInserterOpened(value) {
 439      return {
 440        type: "SET_IS_INSERTER_OPENED",
 441        value
 442      };
 443    }
 444  
 445    // packages/customize-widgets/build-module/store/constants.mjs
 446    var STORE_NAME = "core/customize-widgets";
 447  
 448    // packages/customize-widgets/build-module/store/index.mjs
 449    var storeConfig = {
 450      reducer: reducer_default,
 451      selectors: selectors_exports,
 452      actions: actions_exports
 453    };
 454    var store = (0, import_data3.createReduxStore)(STORE_NAME, storeConfig);
 455    (0, import_data3.register)(store);
 456  
 457    // packages/customize-widgets/build-module/components/inserter/index.mjs
 458    var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
 459    function Inserter({ setIsOpened }) {
 460      const inserterTitleId = (0, import_compose2.useInstanceId)(
 461        Inserter,
 462        "customize-widget-layout__inserter-panel-title"
 463      );
 464      const insertionPoint = (0, import_data4.useSelect)(
 465        (select) => select(store).__experimentalGetInsertionPoint(),
 466        []
 467      );
 468      return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
 469        "div",
 470        {
 471          className: "customize-widgets-layout__inserter-panel",
 472          "aria-labelledby": inserterTitleId,
 473          children: [
 474            /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "customize-widgets-layout__inserter-panel-header", children: [
 475              /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
 476                "h2",
 477                {
 478                  id: inserterTitleId,
 479                  className: "customize-widgets-layout__inserter-panel-header-title",
 480                  children: (0, import_i18n3.__)("Add a block")
 481                }
 482              ),
 483              /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
 484                import_components3.Button,
 485                {
 486                  size: "small",
 487                  icon: close_small_default,
 488                  onClick: () => setIsOpened(false),
 489                  "aria-label": (0, import_i18n3.__)("Close inserter")
 490                }
 491              )
 492            ] }),
 493            /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "customize-widgets-layout__inserter-panel-content", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
 494              import_block_editor3.__experimentalLibrary,
 495              {
 496                rootClientId: insertionPoint.rootClientId,
 497                __experimentalInsertionIndex: insertionPoint.insertionIndex,
 498                showInserterHelpPanel: true,
 499                onSelect: () => setIsOpened(false)
 500              }
 501            ) })
 502          ]
 503        }
 504      );
 505    }
 506    var inserter_default = Inserter;
 507  
 508    // packages/customize-widgets/build-module/components/more-menu/index.mjs
 509    var import_components5 = __toESM(require_components(), 1);
 510    var import_element6 = __toESM(require_element(), 1);
 511    var import_i18n6 = __toESM(require_i18n(), 1);
 512    var import_keycodes2 = __toESM(require_keycodes(), 1);
 513    var import_keyboard_shortcuts3 = __toESM(require_keyboard_shortcuts(), 1);
 514    var import_preferences = __toESM(require_preferences(), 1);
 515  
 516    // node_modules/@base-ui/utils/useRefWithInit.mjs
 517    var React = __toESM(require_react(), 1);
 518    var UNINITIALIZED = {};
 519    function useRefWithInit(init, initArg) {
 520      const ref = React.useRef(UNINITIALIZED);
 521      if (ref.current === UNINITIALIZED) {
 522        ref.current = init(initArg);
 523      }
 524      return ref;
 525    }
 526  
 527    // node_modules/@base-ui/utils/warn.mjs
 528    var set;
 529    if (true) {
 530      set = /* @__PURE__ */ new Set();
 531    }
 532    function warn(...messages) {
 533      if (true) {
 534        const messageKey = messages.join(" ");
 535        if (!set.has(messageKey)) {
 536          set.add(messageKey);
 537          console.warn(`Base UI: $messageKey}`);
 538        }
 539      }
 540    }
 541  
 542    // node_modules/@base-ui/react/internals/useRenderElement.mjs
 543    var React4 = __toESM(require_react(), 1);
 544  
 545    // node_modules/@base-ui/utils/useMergedRefs.mjs
 546    function useMergedRefs(a, b, c, d) {
 547      const forkRef = useRefWithInit(createForkRef).current;
 548      if (didChange(forkRef, a, b, c, d)) {
 549        update(forkRef, [a, b, c, d]);
 550      }
 551      return forkRef.callback;
 552    }
 553    function useMergedRefsN(refs) {
 554      const forkRef = useRefWithInit(createForkRef).current;
 555      if (didChangeN(forkRef, refs)) {
 556        update(forkRef, refs);
 557      }
 558      return forkRef.callback;
 559    }
 560    function createForkRef() {
 561      return {
 562        callback: null,
 563        cleanup: null,
 564        refs: []
 565      };
 566    }
 567    function didChange(forkRef, a, b, c, d) {
 568      return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
 569    }
 570    function didChangeN(forkRef, newRefs) {
 571      return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]);
 572    }
 573    function update(forkRef, refs) {
 574      forkRef.refs = refs;
 575      if (refs.every((ref) => ref == null)) {
 576        forkRef.callback = null;
 577        return;
 578      }
 579      forkRef.callback = (instance) => {
 580        if (forkRef.cleanup) {
 581          forkRef.cleanup();
 582          forkRef.cleanup = null;
 583        }
 584        if (instance != null) {
 585          const cleanupCallbacks = Array(refs.length).fill(null);
 586          for (let i = 0; i < refs.length; i += 1) {
 587            const ref = refs[i];
 588            if (ref == null) {
 589              continue;
 590            }
 591            switch (typeof ref) {
 592              case "function": {
 593                const refCleanup = ref(instance);
 594                if (typeof refCleanup === "function") {
 595                  cleanupCallbacks[i] = refCleanup;
 596                }
 597                break;
 598              }
 599              case "object": {
 600                ref.current = instance;
 601                break;
 602              }
 603              default:
 604            }
 605          }
 606          forkRef.cleanup = () => {
 607            for (let i = 0; i < refs.length; i += 1) {
 608              const ref = refs[i];
 609              if (ref == null) {
 610                continue;
 611              }
 612              switch (typeof ref) {
 613                case "function": {
 614                  const cleanupCallback = cleanupCallbacks[i];
 615                  if (typeof cleanupCallback === "function") {
 616                    cleanupCallback();
 617                  } else {
 618                    ref(null);
 619                  }
 620                  break;
 621                }
 622                case "object": {
 623                  ref.current = null;
 624                  break;
 625                }
 626                default:
 627              }
 628            }
 629          };
 630        }
 631      };
 632    }
 633  
 634    // node_modules/@base-ui/utils/getReactElementRef.mjs
 635    var React3 = __toESM(require_react(), 1);
 636  
 637    // node_modules/@base-ui/utils/reactVersion.mjs
 638    var React2 = __toESM(require_react(), 1);
 639    var majorVersion = parseInt(React2.version, 10);
 640    function isReactVersionAtLeast(reactVersionToCheck) {
 641      return majorVersion >= reactVersionToCheck;
 642    }
 643  
 644    // node_modules/@base-ui/utils/getReactElementRef.mjs
 645    function getReactElementRef(element) {
 646      if (!/* @__PURE__ */ React3.isValidElement(element)) {
 647        return null;
 648      }
 649      const reactElement = element;
 650      const propsWithRef = reactElement.props;
 651      return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null;
 652    }
 653  
 654    // node_modules/@base-ui/utils/mergeObjects.mjs
 655    function mergeObjects(a, b) {
 656      if (a && !b) {
 657        return a;
 658      }
 659      if (!a && b) {
 660        return b;
 661      }
 662      if (a || b) {
 663        return {
 664          ...a,
 665          ...b
 666        };
 667      }
 668      return void 0;
 669    }
 670  
 671    // node_modules/@base-ui/utils/empty.mjs
 672    var EMPTY_ARRAY = Object.freeze([]);
 673    var EMPTY_OBJECT = Object.freeze({});
 674  
 675    // node_modules/@base-ui/react/internals/getStateAttributesProps.mjs
 676    function getStateAttributesProps(state, customMapping) {
 677      const props = {};
 678      for (const key in state) {
 679        const value = state[key];
 680        if (customMapping?.hasOwnProperty(key)) {
 681          const customProps = customMapping[key](value);
 682          if (customProps != null) {
 683            Object.assign(props, customProps);
 684          }
 685          continue;
 686        }
 687        if (value === true) {
 688          props[`data-$key.toLowerCase()}`] = "";
 689        } else if (value) {
 690          props[`data-$key.toLowerCase()}`] = value.toString();
 691        }
 692      }
 693      return props;
 694    }
 695  
 696    // node_modules/@base-ui/react/utils/resolveClassName.mjs
 697    function resolveClassName(className, state) {
 698      return typeof className === "function" ? className(state) : className;
 699    }
 700  
 701    // node_modules/@base-ui/react/utils/resolveStyle.mjs
 702    function resolveStyle(style, state) {
 703      return typeof style === "function" ? style(state) : style;
 704    }
 705  
 706    // node_modules/@base-ui/react/merge-props/mergeProps.mjs
 707    var EMPTY_PROPS = {};
 708    function mergeProps(a, b, c, d, e) {
 709      if (!c && !d && !e && !a) {
 710        return createInitialMergedProps(b);
 711      }
 712      let merged = createInitialMergedProps(a);
 713      if (b) {
 714        merged = mergeInto(merged, b);
 715      }
 716      if (c) {
 717        merged = mergeInto(merged, c);
 718      }
 719      if (d) {
 720        merged = mergeInto(merged, d);
 721      }
 722      if (e) {
 723        merged = mergeInto(merged, e);
 724      }
 725      return merged;
 726    }
 727    function mergePropsN(props) {
 728      if (props.length === 0) {
 729        return EMPTY_PROPS;
 730      }
 731      if (props.length === 1) {
 732        return createInitialMergedProps(props[0]);
 733      }
 734      let merged = createInitialMergedProps(props[0]);
 735      for (let i = 1; i < props.length; i += 1) {
 736        merged = mergeInto(merged, props[i]);
 737      }
 738      return merged;
 739    }
 740    function createInitialMergedProps(inputProps) {
 741      if (isPropsGetter(inputProps)) {
 742        return {
 743          ...resolvePropsGetter(inputProps, EMPTY_PROPS)
 744        };
 745      }
 746      return copyInitialProps(inputProps);
 747    }
 748    function mergeInto(merged, inputProps) {
 749      if (isPropsGetter(inputProps)) {
 750        return resolvePropsGetter(inputProps, merged);
 751      }
 752      return mutablyMergeInto(merged, inputProps);
 753    }
 754    function copyInitialProps(inputProps) {
 755      const copiedProps = {
 756        ...inputProps
 757      };
 758      for (const propName in copiedProps) {
 759        const propValue = copiedProps[propName];
 760        if (isEventHandler(propName, propValue)) {
 761          copiedProps[propName] = wrapEventHandler(propValue);
 762        }
 763      }
 764      return copiedProps;
 765    }
 766    function mutablyMergeInto(mergedProps, externalProps) {
 767      if (!externalProps) {
 768        return mergedProps;
 769      }
 770      for (const propName in externalProps) {
 771        const externalPropValue = externalProps[propName];
 772        switch (propName) {
 773          case "style": {
 774            mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);
 775            break;
 776          }
 777          case "className": {
 778            mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);
 779            break;
 780          }
 781          default: {
 782            if (isEventHandler(propName, externalPropValue)) {
 783              mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);
 784            } else {
 785              mergedProps[propName] = externalPropValue;
 786            }
 787          }
 788        }
 789      }
 790      return mergedProps;
 791    }
 792    function isEventHandler(key, value) {
 793      const code0 = key.charCodeAt(0);
 794      const code1 = key.charCodeAt(1);
 795      const code2 = key.charCodeAt(2);
 796      return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined");
 797    }
 798    function isPropsGetter(inputProps) {
 799      return typeof inputProps === "function";
 800    }
 801    function resolvePropsGetter(inputProps, previousProps) {
 802      if (isPropsGetter(inputProps)) {
 803        return inputProps(previousProps);
 804      }
 805      return inputProps ?? EMPTY_PROPS;
 806    }
 807    function mergeEventHandlers(ourHandler, theirHandler) {
 808      if (!theirHandler) {
 809        return ourHandler;
 810      }
 811      if (!ourHandler) {
 812        return wrapEventHandler(theirHandler);
 813      }
 814      return (...args) => {
 815        const event = args[0];
 816        if (isSyntheticEvent(event)) {
 817          const baseUIEvent = event;
 818          makeEventPreventable(baseUIEvent);
 819          const result2 = theirHandler(...args);
 820          if (!baseUIEvent.baseUIHandlerPrevented) {
 821            ourHandler?.(...args);
 822          }
 823          return result2;
 824        }
 825        const result = theirHandler(...args);
 826        ourHandler?.(...args);
 827        return result;
 828      };
 829    }
 830    function wrapEventHandler(handler) {
 831      if (!handler) {
 832        return handler;
 833      }
 834      return (...args) => {
 835        const event = args[0];
 836        if (isSyntheticEvent(event)) {
 837          makeEventPreventable(event);
 838        }
 839        return handler(...args);
 840      };
 841    }
 842    function makeEventPreventable(event) {
 843      event.preventBaseUIHandler = () => {
 844        event.baseUIHandlerPrevented = true;
 845      };
 846      return event;
 847    }
 848    function mergeClassNames(ourClassName, theirClassName) {
 849      if (theirClassName) {
 850        if (ourClassName) {
 851          return theirClassName + " " + ourClassName;
 852        }
 853        return theirClassName;
 854      }
 855      return ourClassName;
 856    }
 857    function isSyntheticEvent(event) {
 858      return event != null && typeof event === "object" && "nativeEvent" in event;
 859    }
 860  
 861    // node_modules/@base-ui/react/internals/useRenderElement.mjs
 862    var import_react = __toESM(require_react(), 1);
 863    function useRenderElement(element, componentProps, params = {}) {
 864      const renderProp = componentProps.render;
 865      const outProps = useRenderElementProps(componentProps, params);
 866      if (params.enabled === false) {
 867        return null;
 868      }
 869      const state = params.state ?? EMPTY_OBJECT;
 870      return evaluateRenderProp(element, renderProp, outProps, state);
 871    }
 872    function useRenderElementProps(componentProps, params = {}) {
 873      const {
 874        className: classNameProp,
 875        style: styleProp,
 876        render: renderProp
 877      } = componentProps;
 878      const {
 879        state = EMPTY_OBJECT,
 880        ref,
 881        props,
 882        stateAttributesMapping,
 883        enabled = true
 884      } = params;
 885      const className = enabled ? resolveClassName(classNameProp, state) : void 0;
 886      const style = enabled ? resolveStyle(styleProp, state) : void 0;
 887      const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
 888      const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0;
 889      const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT;
 890      if (typeof document !== "undefined") {
 891        if (!enabled) {
 892          useMergedRefs(null, null);
 893        } else if (Array.isArray(ref)) {
 894          outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);
 895        } else {
 896          outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);
 897        }
 898      }
 899      if (!enabled) {
 900        return EMPTY_OBJECT;
 901      }
 902      if (className !== void 0) {
 903        outProps.className = mergeClassNames(outProps.className, className);
 904      }
 905      if (style !== void 0) {
 906        outProps.style = mergeObjects(outProps.style, style);
 907      }
 908      return outProps;
 909    }
 910    function resolveRenderFunctionProps(props) {
 911      if (Array.isArray(props)) {
 912        return mergePropsN(props);
 913      }
 914      return mergeProps(void 0, props);
 915    }
 916    var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
 917    var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/;
 918    var LOWERCASE_CHARACTER_PATTERN = /[a-z]/;
 919    function evaluateRenderProp(element, render, props, state) {
 920      if (render) {
 921        if (typeof render === "function") {
 922          if (true) {
 923            warnIfRenderPropLooksLikeComponent(render);
 924          }
 925          return render(props, state);
 926        }
 927        const mergedProps = mergeProps(props, render.props);
 928        mergedProps.ref = props.ref;
 929        let newElement = render;
 930        if (newElement?.$$typeof === REACT_LAZY_TYPE) {
 931          const children = React4.Children.toArray(render);
 932          newElement = children[0];
 933        }
 934        if (true) {
 935          if (!/* @__PURE__ */ React4.isValidElement(newElement)) {
 936            throw new Error(["Base UI: The `render` prop was provided an invalid React element as `React.isValidElement(render)` is `false`.", "A valid React element must be provided to the `render` prop because it is cloned with props to replace the default element.", "https://base-ui.com/r/invalid-render-prop"].join("\n"));
 937          }
 938        }
 939        return /* @__PURE__ */ React4.cloneElement(newElement, mergedProps);
 940      }
 941      if (element) {
 942        if (typeof element === "string") {
 943          return renderTag(element, props);
 944        }
 945      }
 946      throw new Error(true ? "Base UI: Render element or function are not defined." : formatErrorMessage_default(8));
 947    }
 948    function warnIfRenderPropLooksLikeComponent(renderFn) {
 949      const functionName = renderFn.name;
 950      if (functionName.length === 0) {
 951        return;
 952      }
 953      if (!COMPONENT_IDENTIFIER_PATTERN.test(functionName)) {
 954        return;
 955      }
 956      if (!LOWERCASE_CHARACTER_PATTERN.test(functionName)) {
 957        return;
 958      }
 959      warn(`The \`render\` prop received a function named \`$functionName}\` that starts with an uppercase letter.`, "This usually means a React component was passed directly as `render={Component}`.", "Base UI calls `render` as a plain function, which can break the Rules of Hooks during reconciliation.", "If this is an intentional render callback, rename it to start with a lowercase letter.", "Use `render={<Component />}` or `render={(props) => <Component {...props} />}` instead.", "https://base-ui.com/r/invalid-render-prop");
 960    }
 961    function renderTag(Tag, props) {
 962      if (Tag === "button") {
 963        return /* @__PURE__ */ (0, import_react.createElement)("button", {
 964          type: "button",
 965          ...props,
 966          key: props.key
 967        });
 968      }
 969      if (Tag === "img") {
 970        return /* @__PURE__ */ (0, import_react.createElement)("img", {
 971          alt: "",
 972          ...props,
 973          key: props.key
 974        });
 975      }
 976      return /* @__PURE__ */ React4.createElement(Tag, props);
 977    }
 978  
 979    // node_modules/@base-ui/react/use-render/useRender.mjs
 980    function useRender(params) {
 981      return useRenderElement(params.defaultTagName ?? "div", params, params);
 982    }
 983  
 984    // packages/ui/build-module/visually-hidden/visually-hidden.mjs
 985    var import_element3 = __toESM(require_element(), 1);
 986    var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
 987    function getRuntime() {
 988      const globalScope = globalThis;
 989      if (globalScope.__wpStyleRuntime) {
 990        return globalScope.__wpStyleRuntime;
 991      }
 992      globalScope.__wpStyleRuntime = {
 993        documents: /* @__PURE__ */ new Map(),
 994        styles: /* @__PURE__ */ new Map(),
 995        injectedStyles: /* @__PURE__ */ new WeakMap()
 996      };
 997      if (typeof document !== "undefined") {
 998        registerDocument(document);
 999      }
1000      return globalScope.__wpStyleRuntime;
1001    }
1002    function documentContainsStyleHash(targetDocument, hash) {
1003      if (!targetDocument.head) {
1004        return false;
1005      }
1006      for (const style of targetDocument.head.querySelectorAll(
1007        `style[$STYLE_HASH_ATTRIBUTE}]`
1008      )) {
1009        if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
1010          return true;
1011        }
1012      }
1013      return false;
1014    }
1015    function injectStyle(targetDocument, hash, css) {
1016      if (!targetDocument.head) {
1017        return;
1018      }
1019      const runtime = getRuntime();
1020      let injectedStyles = runtime.injectedStyles.get(targetDocument);
1021      if (!injectedStyles) {
1022        injectedStyles = /* @__PURE__ */ new Set();
1023        runtime.injectedStyles.set(targetDocument, injectedStyles);
1024      }
1025      if (injectedStyles.has(hash)) {
1026        return;
1027      }
1028      if (documentContainsStyleHash(targetDocument, hash)) {
1029        injectedStyles.add(hash);
1030        return;
1031      }
1032      const style = targetDocument.createElement("style");
1033      style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
1034      style.appendChild(targetDocument.createTextNode(css));
1035      targetDocument.head.appendChild(style);
1036      injectedStyles.add(hash);
1037    }
1038    function registerDocument(targetDocument) {
1039      const runtime = getRuntime();
1040      runtime.documents.set(
1041        targetDocument,
1042        (runtime.documents.get(targetDocument) ?? 0) + 1
1043      );
1044      for (const [hash, css] of runtime.styles) {
1045        injectStyle(targetDocument, hash, css);
1046      }
1047      return () => {
1048        const count = runtime.documents.get(targetDocument);
1049        if (count === void 0) {
1050          return;
1051        }
1052        if (count <= 1) {
1053          runtime.documents.delete(targetDocument);
1054          return;
1055        }
1056        runtime.documents.set(targetDocument, count - 1);
1057      };
1058    }
1059    function registerStyle(hash, css) {
1060      const runtime = getRuntime();
1061      runtime.styles.set(hash, css);
1062      for (const targetDocument of runtime.documents.keys()) {
1063        injectStyle(targetDocument, hash, css);
1064      }
1065    }
1066    if (typeof process === "undefined" || true) {
1067      registerStyle("fa606a57ae", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.f37b9e2e191ebd66__visually-hidden{word-wrap:normal;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal}}}");
1068    }
1069    var style_default = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" };
1070    var VisuallyHidden = (0, import_element3.forwardRef)(
1071      function VisuallyHidden2({ render, ...restProps }, ref) {
1072        const element = useRender({
1073          render,
1074          ref,
1075          props: mergeProps(
1076            { className: style_default["visually-hidden"] },
1077            restProps,
1078            {
1079              // @ts-expect-error Arbitrary data-* attributes aren't indexable on the typed div props. Kept hardcoded so consumers can't change or remove it.
1080              "data-visually-hidden": ""
1081            }
1082          )
1083        });
1084        return element;
1085      }
1086    );
1087  
1088    // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.mjs
1089    var import_components4 = __toESM(require_components(), 1);
1090    var import_i18n5 = __toESM(require_i18n(), 1);
1091    var import_keyboard_shortcuts2 = __toESM(require_keyboard_shortcuts(), 1);
1092    var import_data6 = __toESM(require_data(), 1);
1093    var import_element5 = __toESM(require_element(), 1);
1094  
1095    // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.mjs
1096    var import_i18n4 = __toESM(require_i18n(), 1);
1097    var textFormattingShortcuts = [
1098      {
1099        keyCombination: { modifier: "primary", character: "b" },
1100        description: (0, import_i18n4.__)("Make the selected text bold.")
1101      },
1102      {
1103        keyCombination: { modifier: "primary", character: "i" },
1104        description: (0, import_i18n4.__)("Make the selected text italic.")
1105      },
1106      {
1107        keyCombination: { modifier: "primary", character: "k" },
1108        description: (0, import_i18n4.__)("Convert the selected text into a link.")
1109      },
1110      {
1111        keyCombination: { modifier: "primaryShift", character: "k" },
1112        description: (0, import_i18n4.__)("Remove a link.")
1113      },
1114      {
1115        keyCombination: { character: "[[" },
1116        description: (0, import_i18n4.__)("Insert a link to a post or page.")
1117      },
1118      {
1119        keyCombination: { modifier: "primary", character: "u" },
1120        description: (0, import_i18n4.__)("Underline the selected text.")
1121      },
1122      {
1123        keyCombination: { modifier: "access", character: "d" },
1124        description: (0, import_i18n4.__)("Strikethrough the selected text.")
1125      },
1126      {
1127        keyCombination: { modifier: "access", character: "x" },
1128        description: (0, import_i18n4.__)("Make the selected text inline code.")
1129      },
1130      {
1131        keyCombination: {
1132          modifier: "access",
1133          character: "0"
1134        },
1135        aliases: [
1136          {
1137            modifier: "access",
1138            character: "7"
1139          }
1140        ],
1141        description: (0, import_i18n4.__)("Convert the current heading to a paragraph.")
1142      },
1143      {
1144        keyCombination: { modifier: "access", character: "1-6" },
1145        description: (0, import_i18n4.__)(
1146          "Convert the current paragraph or heading to a heading of level 1 to 6."
1147        )
1148      },
1149      {
1150        keyCombination: { modifier: "primaryShift", character: "SPACE" },
1151        description: (0, import_i18n4.__)("Add non breaking space.")
1152      }
1153    ];
1154  
1155    // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.mjs
1156    var import_element4 = __toESM(require_element(), 1);
1157    var import_keycodes = __toESM(require_keycodes(), 1);
1158    var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
1159    function KeyCombination({ keyCombination, forceAriaLabel }) {
1160      const shortcut = keyCombination.modifier ? import_keycodes.displayShortcutList[keyCombination.modifier](
1161        keyCombination.character
1162      ) : keyCombination.character;
1163      const ariaLabel = keyCombination.modifier ? import_keycodes.shortcutAriaLabel[keyCombination.modifier](
1164        keyCombination.character
1165      ) : keyCombination.character;
1166      return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1167        "kbd",
1168        {
1169          className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
1170          "aria-label": forceAriaLabel || ariaLabel,
1171          children: (Array.isArray(shortcut) ? shortcut : [shortcut]).map(
1172            (character, index) => {
1173              if (character === "+") {
1174                return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_element4.Fragment, { children: character }, index);
1175              }
1176              return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1177                "kbd",
1178                {
1179                  className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key",
1180                  children: character
1181                },
1182                index
1183              );
1184            }
1185          )
1186        }
1187      );
1188    }
1189    function Shortcut({ description, keyCombination, aliases = [], ariaLabel }) {
1190      return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
1191        /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description", children: description }),
1192        /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term", children: [
1193          /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1194            KeyCombination,
1195            {
1196              keyCombination,
1197              forceAriaLabel: ariaLabel
1198            }
1199          ),
1200          aliases.map((alias, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1201            KeyCombination,
1202            {
1203              keyCombination: alias,
1204              forceAriaLabel: ariaLabel
1205            },
1206            index
1207          ))
1208        ] })
1209      ] });
1210    }
1211    var shortcut_default = Shortcut;
1212  
1213    // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.mjs
1214    var import_data5 = __toESM(require_data(), 1);
1215    var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
1216    var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
1217    function DynamicShortcut({ name }) {
1218      const { keyCombination, description, aliases } = (0, import_data5.useSelect)(
1219        (select) => {
1220          const {
1221            getShortcutKeyCombination,
1222            getShortcutDescription,
1223            getShortcutAliases
1224          } = select(import_keyboard_shortcuts.store);
1225          return {
1226            keyCombination: getShortcutKeyCombination(name),
1227            aliases: getShortcutAliases(name),
1228            description: getShortcutDescription(name)
1229          };
1230        },
1231        [name]
1232      );
1233      if (!keyCombination) {
1234        return null;
1235      }
1236      return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1237        shortcut_default,
1238        {
1239          keyCombination,
1240          description,
1241          aliases
1242        }
1243      );
1244    }
1245    var dynamic_shortcut_default = DynamicShortcut;
1246  
1247    // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.mjs
1248    var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
1249    var ShortcutList = ({ shortcuts }) => (
1250      /*
1251       * Disable reason: The `list` ARIA role is redundant but
1252       * Safari+VoiceOver won't announce the list otherwise.
1253       */
1254      /* eslint-disable jsx-a11y/no-redundant-roles */
1255      /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1256        "ul",
1257        {
1258          className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
1259          role: "list",
1260          children: shortcuts.map((shortcut, index) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1261            "li",
1262            {
1263              className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
1264              children: typeof shortcut === "string" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(dynamic_shortcut_default, { name: shortcut }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(shortcut_default, { ...shortcut })
1265            },
1266            index
1267          ))
1268        }
1269      )
1270    );
1271    var ShortcutSection = ({ title, shortcuts, className }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1272      "section",
1273      {
1274        className: clsx_default(
1275          "customize-widgets-keyboard-shortcut-help-modal__section",
1276          className
1277        ),
1278        children: [
1279          !!title && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { className: "customize-widgets-keyboard-shortcut-help-modal__section-title", children: title }),
1280          /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ShortcutList, { shortcuts })
1281        ]
1282      }
1283    );
1284    var ShortcutCategorySection = ({
1285      title,
1286      categoryName,
1287      additionalShortcuts = []
1288    }) => {
1289      const categoryShortcuts = (0, import_data6.useSelect)(
1290        (select) => {
1291          return select(import_keyboard_shortcuts2.store).getCategoryShortcuts(
1292            categoryName
1293          );
1294        },
1295        [categoryName]
1296      );
1297      return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1298        ShortcutSection,
1299        {
1300          title,
1301          shortcuts: categoryShortcuts.concat(additionalShortcuts)
1302        }
1303      );
1304    };
1305    function KeyboardShortcutHelpModal({
1306      isModalActive,
1307      toggleModal
1308    }) {
1309      const { registerShortcut } = (0, import_data6.useDispatch)(import_keyboard_shortcuts2.store);
1310      (0, import_element5.useEffect)(() => {
1311        registerShortcut({
1312          name: "core/customize-widgets/keyboard-shortcuts",
1313          category: "main",
1314          description: (0, import_i18n5.__)("Display these keyboard shortcuts."),
1315          keyCombination: {
1316            modifier: "access",
1317            character: "h"
1318          }
1319        });
1320      }, [registerShortcut]);
1321      (0, import_keyboard_shortcuts2.useShortcut)("core/customize-widgets/keyboard-shortcuts", toggleModal);
1322      if (!isModalActive) {
1323        return null;
1324      }
1325      return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1326        import_components4.Modal,
1327        {
1328          className: "customize-widgets-keyboard-shortcut-help-modal",
1329          title: (0, import_i18n5.__)("Keyboard shortcuts"),
1330          onRequestClose: toggleModal,
1331          children: [
1332            /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1333              ShortcutSection,
1334              {
1335                className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
1336                shortcuts: ["core/customize-widgets/keyboard-shortcuts"]
1337              }
1338            ),
1339            /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1340              ShortcutCategorySection,
1341              {
1342                title: (0, import_i18n5.__)("Global shortcuts"),
1343                categoryName: "global"
1344              }
1345            ),
1346            /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1347              ShortcutCategorySection,
1348              {
1349                title: (0, import_i18n5.__)("Selection shortcuts"),
1350                categoryName: "selection"
1351              }
1352            ),
1353            /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1354              ShortcutCategorySection,
1355              {
1356                title: (0, import_i18n5.__)("Block shortcuts"),
1357                categoryName: "block",
1358                additionalShortcuts: [
1359                  {
1360                    keyCombination: { character: "/" },
1361                    description: (0, import_i18n5.__)(
1362                      "Change the block type after adding a new paragraph."
1363                    ),
1364                    /* translators: The forward-slash character. e.g. '/'. */
1365                    ariaLabel: (0, import_i18n5.__)("Forward-slash")
1366                  }
1367                ]
1368              }
1369            ),
1370            /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1371              ShortcutSection,
1372              {
1373                title: (0, import_i18n5.__)("Text formatting"),
1374                shortcuts: textFormattingShortcuts
1375              }
1376            )
1377          ]
1378        }
1379      );
1380    }
1381  
1382    // packages/customize-widgets/build-module/components/more-menu/index.mjs
1383    var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
1384    function MoreMenu() {
1385      const [
1386        isKeyboardShortcutsModalActive,
1387        setIsKeyboardShortcutsModalVisible
1388      ] = (0, import_element6.useState)(false);
1389      const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
1390      (0, import_keyboard_shortcuts3.useShortcut)(
1391        "core/customize-widgets/keyboard-shortcuts",
1392        toggleKeyboardShortcutsModal
1393      );
1394      return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1395        /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1396          import_components5.ToolbarDropdownMenu,
1397          {
1398            icon: more_vertical_default,
1399            label: (0, import_i18n6.__)("Options"),
1400            popoverProps: {
1401              placement: "bottom-end",
1402              className: "more-menu-dropdown__content"
1403            },
1404            toggleProps: {
1405              tooltipPosition: "bottom",
1406              size: "compact"
1407            },
1408            children: () => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1409              /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_components5.MenuGroup, { label: (0, import_i18n6._x)("View", "noun"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1410                import_preferences.PreferenceToggleMenuItem,
1411                {
1412                  scope: "core/customize-widgets",
1413                  name: "fixedToolbar",
1414                  label: (0, import_i18n6.__)("Top toolbar"),
1415                  info: (0, import_i18n6.__)(
1416                    "Access all block and document tools in a single place"
1417                  ),
1418                  messageActivated: (0, import_i18n6.__)(
1419                    "Top toolbar activated"
1420                  ),
1421                  messageDeactivated: (0, import_i18n6.__)(
1422                    "Top toolbar deactivated"
1423                  )
1424                }
1425              ) }),
1426              /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_components5.MenuGroup, { label: (0, import_i18n6.__)("Tools"), children: [
1427                /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1428                  import_components5.MenuItem,
1429                  {
1430                    onClick: () => {
1431                      setIsKeyboardShortcutsModalVisible(true);
1432                    },
1433                    shortcut: import_keycodes2.displayShortcut.access("h"),
1434                    children: (0, import_i18n6.__)("Keyboard shortcuts")
1435                  }
1436                ),
1437                /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1438                  import_preferences.PreferenceToggleMenuItem,
1439                  {
1440                    scope: "core/customize-widgets",
1441                    name: "welcomeGuide",
1442                    label: (0, import_i18n6.__)("Welcome Guide")
1443                  }
1444                ),
1445                /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1446                  import_components5.MenuItem,
1447                  {
1448                    role: "menuitem",
1449                    icon: external_default,
1450                    href: (0, import_i18n6.__)(
1451                      "https://wordpress.org/documentation/article/block-based-widgets-editor/"
1452                    ),
1453                    target: "_blank",
1454                    rel: "noopener",
1455                    children: [
1456                      (0, import_i18n6.__)("Help"),
1457                      /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(VisuallyHidden, {
1458                        render: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", {}),
1459                        /* translators: accessibility text */
1460                        children: (0, import_i18n6.__)("(opens in a new tab)")
1461                      })
1462                    ]
1463                  }
1464                )
1465              ] }),
1466              /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_components5.MenuGroup, { label: (0, import_i18n6.__)("Preferences"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1467                import_preferences.PreferenceToggleMenuItem,
1468                {
1469                  scope: "core/customize-widgets",
1470                  name: "keepCaretInsideBlock",
1471                  label: (0, import_i18n6.__)(
1472                    "Contain text cursor inside block"
1473                  ),
1474                  info: (0, import_i18n6.__)(
1475                    "Aids screen readers by stopping text caret from leaving blocks."
1476                  ),
1477                  messageActivated: (0, import_i18n6.__)(
1478                    "Contain text cursor inside block activated"
1479                  ),
1480                  messageDeactivated: (0, import_i18n6.__)(
1481                    "Contain text cursor inside block deactivated"
1482                  )
1483                }
1484              ) })
1485            ] })
1486          }
1487        ),
1488        /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1489          KeyboardShortcutHelpModal,
1490          {
1491            isModalActive: isKeyboardShortcutsModalActive,
1492            toggleModal: toggleKeyboardShortcutsModal
1493          }
1494        )
1495      ] });
1496    }
1497  
1498    // packages/customize-widgets/build-module/components/header/index.mjs
1499    var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
1500    function Header({
1501      sidebar,
1502      inserter,
1503      isInserterOpened: isInserterOpened2,
1504      setIsInserterOpened: setIsInserterOpened2,
1505      isFixedToolbarActive
1506    }) {
1507      const [[hasUndo, hasRedo], setUndoRedo] = (0, import_element7.useState)([
1508        sidebar.hasUndo(),
1509        sidebar.hasRedo()
1510      ]);
1511      const shortcut = (0, import_keycodes3.isAppleOS)() ? import_keycodes3.displayShortcut.primaryShift("z") : import_keycodes3.displayShortcut.primary("y");
1512      (0, import_element7.useEffect)(() => {
1513        return sidebar.subscribeHistory(() => {
1514          setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
1515        });
1516      }, [sidebar]);
1517      return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1518        /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1519          "div",
1520          {
1521            className: clsx_default("customize-widgets-header", {
1522              "is-fixed-toolbar-active": isFixedToolbarActive
1523            }),
1524            children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1525              import_block_editor4.NavigableToolbar,
1526              {
1527                className: "customize-widgets-header-toolbar",
1528                "aria-label": (0, import_i18n7.__)("Document tools"),
1529                children: [
1530                  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1531                    import_components6.ToolbarButton,
1532                    {
1533                      icon: !(0, import_i18n7.isRTL)() ? undo_default : redo_default,
1534                      label: (0, import_i18n7.__)("Undo"),
1535                      shortcut: import_keycodes3.displayShortcut.primary("z"),
1536                      disabled: !hasUndo,
1537                      onClick: sidebar.undo,
1538                      className: "customize-widgets-editor-history-button undo-button"
1539                    }
1540                  ),
1541                  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1542                    import_components6.ToolbarButton,
1543                    {
1544                      icon: !(0, import_i18n7.isRTL)() ? redo_default : undo_default,
1545                      label: (0, import_i18n7.__)("Redo"),
1546                      shortcut,
1547                      disabled: !hasRedo,
1548                      onClick: sidebar.redo,
1549                      className: "customize-widgets-editor-history-button redo-button"
1550                    }
1551                  ),
1552                  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1553                    import_components6.ToolbarButton,
1554                    {
1555                      className: "customize-widgets-header-toolbar__inserter-toggle",
1556                      isPressed: isInserterOpened2,
1557                      variant: "primary",
1558                      icon: plus_default,
1559                      label: (0, import_i18n7._x)(
1560                        "Add block",
1561                        "Generic label for block inserter button"
1562                      ),
1563                      onClick: () => {
1564                        setIsInserterOpened2((isOpen) => !isOpen);
1565                      }
1566                    }
1567                  ),
1568                  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MoreMenu, {})
1569                ]
1570              }
1571            )
1572          }
1573        ),
1574        (0, import_element7.createPortal)(
1575          /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(inserter_default, { setIsOpened: setIsInserterOpened2 }),
1576          inserter.contentContainer[0]
1577        )
1578      ] });
1579    }
1580    var header_default = Header;
1581  
1582    // packages/customize-widgets/build-module/components/inserter/use-inserter.mjs
1583    var import_element8 = __toESM(require_element(), 1);
1584    var import_data7 = __toESM(require_data(), 1);
1585    function useInserter(inserter) {
1586      const isInserterOpened2 = (0, import_data7.useSelect)(
1587        (select) => select(store).isInserterOpened(),
1588        []
1589      );
1590      const { setIsInserterOpened: setIsInserterOpened2 } = (0, import_data7.useDispatch)(store);
1591      (0, import_element8.useEffect)(() => {
1592        if (isInserterOpened2) {
1593          inserter.open();
1594        } else {
1595          inserter.close();
1596        }
1597      }, [inserter, isInserterOpened2]);
1598      return [
1599        isInserterOpened2,
1600        (0, import_element8.useCallback)(
1601          (updater) => {
1602            let isOpen = updater;
1603            if (typeof updater === "function") {
1604              isOpen = updater(
1605                (0, import_data7.select)(store).isInserterOpened()
1606              );
1607            }
1608            setIsInserterOpened2(isOpen);
1609          },
1610          [setIsInserterOpened2]
1611        )
1612      ];
1613    }
1614  
1615    // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.mjs
1616    var import_block_editor6 = __toESM(require_block_editor(), 1);
1617  
1618    // packages/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.mjs
1619    var import_es6 = __toESM(require_es6(), 1);
1620    var import_element9 = __toESM(require_element(), 1);
1621    var import_is_shallow_equal = __toESM(require_is_shallow_equal(), 1);
1622    var import_widgets2 = __toESM(require_widgets(), 1);
1623  
1624    // packages/customize-widgets/build-module/utils.mjs
1625    var import_blocks = __toESM(require_blocks(), 1);
1626    var import_widgets = __toESM(require_widgets(), 1);
1627    function settingIdToWidgetId(settingId) {
1628      const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/);
1629      if (matches) {
1630        const idBase = matches[1];
1631        const number = parseInt(matches[2], 10);
1632        return `$idBase}-$number}`;
1633      }
1634      return settingId;
1635    }
1636    function blockToWidget(block, existingWidget = null) {
1637      let widget;
1638      const isValidLegacyWidgetBlock = block.name === "core/legacy-widget" && (block.attributes.id || block.attributes.instance);
1639      if (isValidLegacyWidgetBlock) {
1640        if (block.attributes.id) {
1641          widget = {
1642            id: block.attributes.id
1643          };
1644        } else {
1645          const { encoded, hash, raw, ...rest } = block.attributes.instance;
1646          widget = {
1647            idBase: block.attributes.idBase,
1648            instance: {
1649              ...existingWidget?.instance,
1650              // Required only for the customizer.
1651              is_widget_customizer_js_value: true,
1652              encoded_serialized_instance: encoded,
1653              instance_hash_key: hash,
1654              raw_instance: raw,
1655              ...rest
1656            }
1657          };
1658        }
1659      } else {
1660        const instance = {
1661          content: (0, import_blocks.serialize)(block)
1662        };
1663        widget = {
1664          idBase: "block",
1665          widgetClass: "WP_Widget_Block",
1666          instance: {
1667            raw_instance: instance
1668          }
1669        };
1670      }
1671      const { form, rendered, ...restExistingWidget } = existingWidget || {};
1672      return {
1673        ...restExistingWidget,
1674        ...widget
1675      };
1676    }
1677    function widgetToBlock({ id, idBase, number, instance }) {
1678      let block;
1679      const {
1680        encoded_serialized_instance: encoded,
1681        instance_hash_key: hash,
1682        raw_instance: raw,
1683        ...rest
1684      } = instance;
1685      if (idBase === "block") {
1686        const parsedBlocks = (0, import_blocks.parse)(raw.content ?? "", {
1687          __unstableSkipAutop: true
1688        });
1689        block = parsedBlocks.length ? parsedBlocks[0] : (0, import_blocks.createBlock)("core/paragraph", {});
1690      } else if (number) {
1691        block = (0, import_blocks.createBlock)("core/legacy-widget", {
1692          idBase,
1693          instance: {
1694            encoded,
1695            hash,
1696            raw,
1697            ...rest
1698          }
1699        });
1700      } else {
1701        block = (0, import_blocks.createBlock)("core/legacy-widget", {
1702          id
1703        });
1704      }
1705      return (0, import_widgets.addWidgetIdToBlock)(block, id);
1706    }
1707  
1708    // packages/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.mjs
1709    function widgetsToBlocks(widgets) {
1710      return widgets.map((widget) => widgetToBlock(widget));
1711    }
1712    function useSidebarBlockEditor(sidebar) {
1713      const [blocks, setBlocks] = (0, import_element9.useState)(
1714        () => widgetsToBlocks(sidebar.getWidgets())
1715      );
1716      (0, import_element9.useEffect)(() => {
1717        return sidebar.subscribe((prevWidgets, nextWidgets) => {
1718          setBlocks((prevBlocks) => {
1719            const prevWidgetsMap = new Map(
1720              prevWidgets.map((widget) => [widget.id, widget])
1721            );
1722            const prevBlocksMap = new Map(
1723              prevBlocks.map((block) => [
1724                (0, import_widgets2.getWidgetIdFromBlock)(block),
1725                block
1726              ])
1727            );
1728            const nextBlocks = nextWidgets.map((nextWidget) => {
1729              const prevWidget = prevWidgetsMap.get(nextWidget.id);
1730              if (prevWidget && prevWidget === nextWidget) {
1731                return prevBlocksMap.get(nextWidget.id);
1732              }
1733              return widgetToBlock(nextWidget);
1734            });
1735            if ((0, import_is_shallow_equal.isShallowEqual)(prevBlocks, nextBlocks)) {
1736              return prevBlocks;
1737            }
1738            return nextBlocks;
1739          });
1740        });
1741      }, [sidebar]);
1742      const onChangeBlocks = (0, import_element9.useCallback)(
1743        (nextBlocks) => {
1744          setBlocks((prevBlocks) => {
1745            if ((0, import_is_shallow_equal.isShallowEqual)(prevBlocks, nextBlocks)) {
1746              return prevBlocks;
1747            }
1748            const prevBlocksMap = new Map(
1749              prevBlocks.map((block) => [
1750                (0, import_widgets2.getWidgetIdFromBlock)(block),
1751                block
1752              ])
1753            );
1754            const nextWidgets = nextBlocks.map((nextBlock) => {
1755              const widgetId = (0, import_widgets2.getWidgetIdFromBlock)(nextBlock);
1756              if (widgetId && prevBlocksMap.has(widgetId)) {
1757                const prevBlock = prevBlocksMap.get(widgetId);
1758                const prevWidget = sidebar.getWidget(widgetId);
1759                if ((0, import_es6.default)(nextBlock, prevBlock) && prevWidget) {
1760                  return prevWidget;
1761                }
1762                return blockToWidget(nextBlock, prevWidget);
1763              }
1764              return blockToWidget(nextBlock);
1765            });
1766            if ((0, import_is_shallow_equal.isShallowEqual)(sidebar.getWidgets(), nextWidgets)) {
1767              return prevBlocks;
1768            }
1769            const addedWidgetIds = sidebar.setWidgets(nextWidgets);
1770            return nextBlocks.reduce(
1771              (updatedNextBlocks, nextBlock, index) => {
1772                const addedWidgetId = addedWidgetIds[index];
1773                if (addedWidgetId !== null) {
1774                  if (updatedNextBlocks === nextBlocks) {
1775                    updatedNextBlocks = nextBlocks.slice();
1776                  }
1777                  updatedNextBlocks[index] = (0, import_widgets2.addWidgetIdToBlock)(
1778                    nextBlock,
1779                    addedWidgetId
1780                  );
1781                }
1782                return updatedNextBlocks;
1783              },
1784              nextBlocks
1785            );
1786          });
1787        },
1788        [sidebar]
1789      );
1790      return [blocks, onChangeBlocks, onChangeBlocks];
1791    }
1792  
1793    // packages/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.mjs
1794    var import_element11 = __toESM(require_element(), 1);
1795    var import_data8 = __toESM(require_data(), 1);
1796    var import_block_editor5 = __toESM(require_block_editor(), 1);
1797    var import_widgets3 = __toESM(require_widgets(), 1);
1798  
1799    // packages/customize-widgets/build-module/components/focus-control/index.mjs
1800    var import_element10 = __toESM(require_element(), 1);
1801    var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
1802    var FocusControlContext = (0, import_element10.createContext)();
1803    FocusControlContext.displayName = "FocusControlContext";
1804    function FocusControl({ api, sidebarControls, children }) {
1805      const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0, import_element10.useState)({
1806        current: null
1807      });
1808      const focusWidget = (0, import_element10.useCallback)(
1809        (widgetId) => {
1810          for (const sidebarControl of sidebarControls) {
1811            const widgets = sidebarControl.setting.get();
1812            if (widgets.includes(widgetId)) {
1813              sidebarControl.sectionInstance.expand({
1814                // Schedule it after the complete callback so that
1815                // it won't be overridden by the "Back" button focus.
1816                completeCallback() {
1817                  setFocusedWidgetIdRef({ current: widgetId });
1818                }
1819              });
1820              break;
1821            }
1822          }
1823        },
1824        [sidebarControls]
1825      );
1826      (0, import_element10.useEffect)(() => {
1827        function handleFocus(settingId) {
1828          const widgetId = settingIdToWidgetId(settingId);
1829          focusWidget(widgetId);
1830        }
1831        let previewBound = false;
1832        function handleReady() {
1833          api.previewer.preview.bind(
1834            "focus-control-for-setting",
1835            handleFocus
1836          );
1837          previewBound = true;
1838        }
1839        api.previewer.bind("ready", handleReady);
1840        return () => {
1841          api.previewer.unbind("ready", handleReady);
1842          if (previewBound) {
1843            api.previewer.preview.unbind(
1844              "focus-control-for-setting",
1845              handleFocus
1846            );
1847          }
1848        };
1849      }, [api, focusWidget]);
1850      const context = (0, import_element10.useMemo)(
1851        () => [focusedWidgetIdRef, focusWidget],
1852        [focusedWidgetIdRef, focusWidget]
1853      );
1854      return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FocusControlContext.Provider, { value: context, children });
1855    }
1856    var useFocusControl = () => (0, import_element10.useContext)(FocusControlContext);
1857  
1858    // packages/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.mjs
1859    function useBlocksFocusControl(blocks) {
1860      const { selectBlock } = (0, import_data8.useDispatch)(import_block_editor5.store);
1861      const [focusedWidgetIdRef] = useFocusControl();
1862      const blocksRef = (0, import_element11.useRef)(blocks);
1863      (0, import_element11.useEffect)(() => {
1864        blocksRef.current = blocks;
1865      }, [blocks]);
1866      (0, import_element11.useEffect)(() => {
1867        if (focusedWidgetIdRef.current) {
1868          const focusedBlock = blocksRef.current.find(
1869            (block) => (0, import_widgets3.getWidgetIdFromBlock)(block) === focusedWidgetIdRef.current
1870          );
1871          if (focusedBlock) {
1872            selectBlock(focusedBlock.clientId);
1873            const blockNode = document.querySelector(
1874              `[data-block="$focusedBlock.clientId}"]`
1875            );
1876            blockNode?.focus();
1877          }
1878        }
1879      }, [focusedWidgetIdRef, selectBlock]);
1880    }
1881  
1882    // packages/customize-widgets/build-module/lock-unlock.mjs
1883    var import_private_apis = __toESM(require_private_apis(), 1);
1884    var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
1885      "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
1886      "@wordpress/customize-widgets"
1887    );
1888  
1889    // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.mjs
1890    var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
1891    var { ExperimentalBlockEditorProvider } = unlock(import_block_editor6.privateApis);
1892    function SidebarEditorProvider({
1893      sidebar,
1894      settings,
1895      children
1896    }) {
1897      const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
1898      useBlocksFocusControl(blocks);
1899      return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1900        ExperimentalBlockEditorProvider,
1901        {
1902          value: blocks,
1903          onInput,
1904          onChange,
1905          settings,
1906          useSubRegistry: false,
1907          children
1908        }
1909      );
1910    }
1911  
1912    // packages/customize-widgets/build-module/components/welcome-guide/index.mjs
1913    var import_i18n8 = __toESM(require_i18n(), 1);
1914    var import_components7 = __toESM(require_components(), 1);
1915    var import_data9 = __toESM(require_data(), 1);
1916    var import_preferences2 = __toESM(require_preferences(), 1);
1917    var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
1918    function WelcomeGuide({ sidebar }) {
1919      const { toggle } = (0, import_data9.useDispatch)(import_preferences2.store);
1920      const isEntirelyBlockWidgets = sidebar.getWidgets().every((widget) => widget.id.startsWith("block-"));
1921      return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "customize-widgets-welcome-guide", children: [
1922        /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "customize-widgets-welcome-guide__image__wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("picture", { children: [
1923          /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1924            "source",
1925            {
1926              srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
1927              media: "(prefers-reduced-motion: reduce)"
1928            }
1929          ),
1930          /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1931            "img",
1932            {
1933              className: "customize-widgets-welcome-guide__image",
1934              src: "https://s.w.org/images/block-editor/welcome-editor.gif",
1935              width: "312",
1936              height: "240",
1937              alt: ""
1938            }
1939          )
1940        ] }) }),
1941        /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h1", { className: "customize-widgets-welcome-guide__heading", children: (0, import_i18n8.__)("Welcome to block Widgets") }),
1942        /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "customize-widgets-welcome-guide__text", children: isEntirelyBlockWidgets ? (0, import_i18n8.__)(
1943          "Your theme provides different \u201Cblock\u201D areas for you to add and edit content.\xA0Try adding a search bar, social icons, or other types of blocks here and see how they\u2019ll look on your site."
1944        ) : (0, import_i18n8.__)(
1945          "You can now add any block to your site\u2019s widget areas. Don\u2019t worry, all of your favorite widgets still work flawlessly."
1946        ) }),
1947        /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1948          import_components7.Button,
1949          {
1950            size: "compact",
1951            variant: "primary",
1952            onClick: () => toggle("core/customize-widgets", "welcomeGuide"),
1953            children: (0, import_i18n8.__)("Got it")
1954          }
1955        ),
1956        /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("hr", { className: "customize-widgets-welcome-guide__separator" }),
1957        !isEntirelyBlockWidgets && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
1958          (0, import_i18n8.__)("Want to stick with the old widgets?"),
1959          /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("br", {}),
1960          /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1961            import_components7.ExternalLink,
1962            {
1963              href: (0, import_i18n8.__)(
1964                "https://wordpress.org/plugins/classic-widgets/"
1965              ),
1966              children: (0, import_i18n8.__)("Get the Classic Widgets plugin.")
1967            }
1968          )
1969        ] }),
1970        /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
1971          (0, import_i18n8.__)("New to the block editor?"),
1972          /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("br", {}),
1973          /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1974            import_components7.ExternalLink,
1975            {
1976              href: (0, import_i18n8.__)(
1977                "https://wordpress.org/documentation/article/wordpress-block-editor/"
1978              ),
1979              children: (0, import_i18n8.__)("Here's a detailed guide.")
1980            }
1981          )
1982        ] })
1983      ] });
1984    }
1985  
1986    // packages/customize-widgets/build-module/components/keyboard-shortcuts/index.mjs
1987    var import_element12 = __toESM(require_element(), 1);
1988    var import_keyboard_shortcuts4 = __toESM(require_keyboard_shortcuts(), 1);
1989    var import_keycodes4 = __toESM(require_keycodes(), 1);
1990    var import_data10 = __toESM(require_data(), 1);
1991    var import_i18n9 = __toESM(require_i18n(), 1);
1992    function KeyboardShortcuts({ undo, redo, save }) {
1993      (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/undo", (event) => {
1994        undo();
1995        event.preventDefault();
1996      });
1997      (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/redo", (event) => {
1998        redo();
1999        event.preventDefault();
2000      });
2001      (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/save", (event) => {
2002        event.preventDefault();
2003        save();
2004      });
2005      return null;
2006    }
2007    function KeyboardShortcutsRegister() {
2008      const { registerShortcut, unregisterShortcut } = (0, import_data10.useDispatch)(
2009        import_keyboard_shortcuts4.store
2010      );
2011      (0, import_element12.useEffect)(() => {
2012        registerShortcut({
2013          name: "core/customize-widgets/undo",
2014          category: "global",
2015          description: (0, import_i18n9.__)("Undo your last changes."),
2016          keyCombination: {
2017            modifier: "primary",
2018            character: "z"
2019          }
2020        });
2021        registerShortcut({
2022          name: "core/customize-widgets/redo",
2023          category: "global",
2024          description: (0, import_i18n9.__)("Redo your last undo."),
2025          keyCombination: {
2026            modifier: "primaryShift",
2027            character: "z"
2028          },
2029          // Disable on Apple OS because it conflicts with the browser's
2030          // history shortcut. It's a fine alias for both Windows and Linux.
2031          // Since there's no conflict for Ctrl+Shift+Z on both Windows and
2032          // Linux, we keep it as the default for consistency.
2033          aliases: (0, import_keycodes4.isAppleOS)() ? [] : [
2034            {
2035              modifier: "primary",
2036              character: "y"
2037            }
2038          ]
2039        });
2040        registerShortcut({
2041          name: "core/customize-widgets/save",
2042          category: "global",
2043          description: (0, import_i18n9.__)("Save your changes."),
2044          keyCombination: {
2045            modifier: "primary",
2046            character: "s"
2047          }
2048        });
2049        return () => {
2050          unregisterShortcut("core/customize-widgets/undo");
2051          unregisterShortcut("core/customize-widgets/redo");
2052          unregisterShortcut("core/customize-widgets/save");
2053        };
2054      }, [registerShortcut]);
2055      return null;
2056    }
2057    KeyboardShortcuts.Register = KeyboardShortcutsRegister;
2058    var keyboard_shortcuts_default = KeyboardShortcuts;
2059  
2060    // packages/customize-widgets/build-module/components/block-appender/index.mjs
2061    var import_element13 = __toESM(require_element(), 1);
2062    var import_block_editor7 = __toESM(require_block_editor(), 1);
2063    var import_data11 = __toESM(require_data(), 1);
2064    var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
2065    function BlockAppender(props) {
2066      const ref = (0, import_element13.useRef)();
2067      const isBlocksListEmpty = (0, import_data11.useSelect)(
2068        (select) => select(import_block_editor7.store).getBlockCount() === 0
2069      );
2070      (0, import_element13.useEffect)(() => {
2071        if (isBlocksListEmpty && ref.current) {
2072          const { ownerDocument } = ref.current;
2073          if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
2074            ref.current.focus();
2075          }
2076        }
2077      }, [isBlocksListEmpty]);
2078      return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_block_editor7.ButtonBlockAppender, { ...props, ref });
2079    }
2080  
2081    // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
2082    var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
2083    var { ExperimentalBlockCanvas: BlockCanvas } = unlock(
2084      import_block_editor8.privateApis
2085    );
2086    var { BlockKeyboardShortcuts } = unlock(import_block_library.privateApis);
2087    function SidebarBlockEditor({
2088      blockEditorSettings,
2089      sidebar,
2090      inserter,
2091      inspector
2092    }) {
2093      const [isInserterOpened2, setIsInserterOpened2] = useInserter(inserter);
2094      const isMediumViewport = (0, import_compose3.useViewportMatch)("small");
2095      const {
2096        hasUploadPermissions,
2097        isFixedToolbarActive,
2098        keepCaretInsideBlock,
2099        isWelcomeGuideActive
2100      } = (0, import_data12.useSelect)((select) => {
2101        const { get } = select(import_preferences3.store);
2102        return {
2103          hasUploadPermissions: select(import_core_data.store).canUser("create", {
2104            kind: "postType",
2105            name: "attachment"
2106          }) ?? true,
2107          isFixedToolbarActive: !!get(
2108            "core/customize-widgets",
2109            "fixedToolbar"
2110          ),
2111          keepCaretInsideBlock: !!get(
2112            "core/customize-widgets",
2113            "keepCaretInsideBlock"
2114          ),
2115          isWelcomeGuideActive: !!get(
2116            "core/customize-widgets",
2117            "welcomeGuide"
2118          )
2119        };
2120      }, []);
2121      const settings = (0, import_element14.useMemo)(() => {
2122        let mediaUploadBlockEditor;
2123        if (hasUploadPermissions) {
2124          mediaUploadBlockEditor = ({ onError, ...argumentsObject }) => {
2125            (0, import_media_utils.uploadMedia)({
2126              wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
2127              onError: ({ message }) => onError(message),
2128              ...argumentsObject
2129            });
2130          };
2131        }
2132        return {
2133          ...blockEditorSettings,
2134          __experimentalSetIsInserterOpened: setIsInserterOpened2,
2135          mediaUpload: mediaUploadBlockEditor,
2136          hasFixedToolbar: isFixedToolbarActive || !isMediumViewport,
2137          keepCaretInsideBlock,
2138          editorTool: "edit",
2139          __unstableHasCustomAppender: true
2140        };
2141      }, [
2142        hasUploadPermissions,
2143        blockEditorSettings,
2144        isFixedToolbarActive,
2145        isMediumViewport,
2146        keepCaretInsideBlock,
2147        setIsInserterOpened2
2148      ]);
2149      if (isWelcomeGuideActive) {
2150        return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(WelcomeGuide, { sidebar });
2151      }
2152      return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
2153        /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(keyboard_shortcuts_default.Register, {}),
2154        /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(BlockKeyboardShortcuts, {}),
2155        /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(SidebarEditorProvider, { sidebar, settings, children: [
2156          /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2157            keyboard_shortcuts_default,
2158            {
2159              undo: sidebar.undo,
2160              redo: sidebar.redo,
2161              save: sidebar.save
2162            }
2163          ),
2164          /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2165            header_default,
2166            {
2167              sidebar,
2168              inserter,
2169              isInserterOpened: isInserterOpened2,
2170              setIsInserterOpened: setIsInserterOpened2,
2171              isFixedToolbarActive: isFixedToolbarActive || !isMediumViewport
2172            }
2173          ),
2174          (isFixedToolbarActive || !isMediumViewport) && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.BlockToolbar, { hideDragHandle: true }),
2175          /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2176            BlockCanvas,
2177            {
2178              shouldIframe: false,
2179              styles: settings.defaultEditorStyles,
2180              height: "100%",
2181              children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.BlockList, { renderAppender: BlockAppender })
2182            }
2183          ),
2184          (0, import_element14.createPortal)(
2185            // This is a temporary hack to prevent button component inside <BlockInspector>
2186            // from submitting form when type="button" is not specified.
2187            /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("form", { onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.BlockInspector, {}) }),
2188            inspector.contentContainer[0]
2189          )
2190        ] }),
2191        /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.__unstableBlockSettingsMenuFirstItem, { children: ({ onClose }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2192          block_inspector_button_default,
2193          {
2194            inspector,
2195            closeMenu: onClose
2196          }
2197        ) })
2198      ] });
2199    }
2200  
2201    // packages/customize-widgets/build-module/components/sidebar-controls/index.mjs
2202    var import_element15 = __toESM(require_element(), 1);
2203    var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
2204    var SidebarControlsContext = (0, import_element15.createContext)();
2205    SidebarControlsContext.displayName = "SidebarControlsContext";
2206    function SidebarControls({
2207      sidebarControls,
2208      activeSidebarControl,
2209      children
2210    }) {
2211      const context = (0, import_element15.useMemo)(
2212        () => ({
2213          sidebarControls,
2214          activeSidebarControl
2215        }),
2216        [sidebarControls, activeSidebarControl]
2217      );
2218      return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SidebarControlsContext.Provider, { value: context, children });
2219    }
2220    function useSidebarControls() {
2221      const { sidebarControls } = (0, import_element15.useContext)(SidebarControlsContext);
2222      return sidebarControls;
2223    }
2224    function useActiveSidebarControl() {
2225      const { activeSidebarControl } = (0, import_element15.useContext)(SidebarControlsContext);
2226      return activeSidebarControl;
2227    }
2228  
2229    // packages/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.mjs
2230    var import_element16 = __toESM(require_element(), 1);
2231    var import_data13 = __toESM(require_data(), 1);
2232    var import_block_editor9 = __toESM(require_block_editor(), 1);
2233    function useClearSelectedBlock(sidebarControl, popoverRef) {
2234      const { hasSelectedBlock, hasMultiSelection } = (0, import_data13.useSelect)(import_block_editor9.store);
2235      const { clearSelectedBlock } = (0, import_data13.useDispatch)(import_block_editor9.store);
2236      (0, import_element16.useEffect)(() => {
2237        if (popoverRef.current && sidebarControl) {
2238          let handleClearSelectedBlock = function(element) {
2239            if (
2240              // 1. Make sure there are blocks being selected.
2241              (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
2242              element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
2243              !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
2244              !inspector.expanded()
2245            ) {
2246              clearSelectedBlock();
2247            }
2248          }, handleMouseDown = function(event) {
2249            handleClearSelectedBlock(event.target);
2250          }, handleBlur = function() {
2251            handleClearSelectedBlock(ownerDocument.activeElement);
2252          };
2253          const inspector = sidebarControl.inspector;
2254          const container = sidebarControl.container[0];
2255          const ownerDocument = container.ownerDocument;
2256          const ownerWindow = ownerDocument.defaultView;
2257          ownerDocument.addEventListener("mousedown", handleMouseDown);
2258          ownerWindow.addEventListener("blur", handleBlur);
2259          return () => {
2260            ownerDocument.removeEventListener(
2261              "mousedown",
2262              handleMouseDown
2263            );
2264            ownerWindow.removeEventListener("blur", handleBlur);
2265          };
2266        }
2267      }, [
2268        popoverRef,
2269        sidebarControl,
2270        hasSelectedBlock,
2271        hasMultiSelection,
2272        clearSelectedBlock
2273      ]);
2274    }
2275  
2276    // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
2277    var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
2278    function CustomizeWidgets({
2279      api,
2280      sidebarControls,
2281      blockEditorSettings
2282    }) {
2283      const [activeSidebarControl, setActiveSidebarControl] = (0, import_element17.useState)(null);
2284      const parentContainer = document.getElementById(
2285        "customize-theme-controls"
2286      );
2287      const popoverRef = (0, import_element17.useRef)();
2288      useClearSelectedBlock(activeSidebarControl, popoverRef);
2289      (0, import_element17.useEffect)(() => {
2290        const unsubscribers = sidebarControls.map(
2291          (sidebarControl) => sidebarControl.subscribe((expanded) => {
2292            if (expanded) {
2293              setActiveSidebarControl(sidebarControl);
2294            }
2295          })
2296        );
2297        return () => {
2298          unsubscribers.forEach((unsubscriber) => unsubscriber());
2299        };
2300      }, [sidebarControls]);
2301      const activeSidebar = activeSidebarControl && (0, import_element17.createPortal)(
2302        /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ErrorBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2303          SidebarBlockEditor,
2304          {
2305            blockEditorSettings,
2306            sidebar: activeSidebarControl.sidebarAdapter,
2307            inserter: activeSidebarControl.inserter,
2308            inspector: activeSidebarControl.inspector
2309          },
2310          activeSidebarControl.id
2311        ) }),
2312        activeSidebarControl.container[0]
2313      );
2314      const popover = parentContainer && (0, import_element17.createPortal)(
2315        /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "customize-widgets-popover", ref: popoverRef, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.Popover.Slot, {}) }),
2316        parentContainer
2317      );
2318      return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2319        SidebarControls,
2320        {
2321          sidebarControls,
2322          activeSidebarControl,
2323          children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(FocusControl, { api, sidebarControls, children: [
2324            activeSidebar,
2325            popover
2326          ] })
2327        }
2328      ) });
2329    }
2330  
2331    // packages/customize-widgets/build-module/controls/sidebar-section.mjs
2332    var import_i18n10 = __toESM(require_i18n(), 1);
2333  
2334    // packages/customize-widgets/build-module/controls/inspector-section.mjs
2335    function getInspectorSection() {
2336      const {
2337        wp: { customize }
2338      } = window;
2339      return class InspectorSection extends customize.Section {
2340        constructor(id, options) {
2341          super(id, options);
2342          this.parentSection = options.parentSection;
2343          this.returnFocusWhenClose = null;
2344          this._isOpen = false;
2345        }
2346        get isOpen() {
2347          return this._isOpen;
2348        }
2349        set isOpen(value) {
2350          this._isOpen = value;
2351          this.triggerActiveCallbacks();
2352        }
2353        ready() {
2354          this.contentContainer[0].classList.add(
2355            "customize-widgets-layout__inspector"
2356          );
2357        }
2358        isContextuallyActive() {
2359          return this.isOpen;
2360        }
2361        onChangeExpanded(expanded, args) {
2362          super.onChangeExpanded(expanded, args);
2363          if (this.parentSection && !args.unchanged) {
2364            if (expanded) {
2365              this.parentSection.collapse({
2366                manualTransition: true
2367              });
2368            } else {
2369              this.parentSection.expand({
2370                manualTransition: true,
2371                completeCallback: () => {
2372                  if (this.returnFocusWhenClose && !this.contentContainer[0].contains(
2373                    this.returnFocusWhenClose
2374                  )) {
2375                    this.returnFocusWhenClose.focus();
2376                  }
2377                }
2378              });
2379            }
2380          }
2381        }
2382        open({ returnFocusWhenClose } = {}) {
2383          this.isOpen = true;
2384          this.returnFocusWhenClose = returnFocusWhenClose;
2385          this.expand({
2386            allowMultiple: true
2387          });
2388        }
2389        close() {
2390          this.collapse({
2391            allowMultiple: true
2392          });
2393        }
2394        collapse(options) {
2395          this.isOpen = false;
2396          super.collapse(options);
2397        }
2398        triggerActiveCallbacks() {
2399          this.active.callbacks.fireWith(this.active, [false, true]);
2400        }
2401      };
2402    }
2403  
2404    // packages/customize-widgets/build-module/controls/sidebar-section.mjs
2405    var getInspectorSectionId = (sidebarId) => `widgets-inspector-$sidebarId}`;
2406    function getSidebarSection() {
2407      const {
2408        wp: { customize }
2409      } = window;
2410      const reduceMotionMediaQuery = window.matchMedia(
2411        "(prefers-reduced-motion: reduce)"
2412      );
2413      let isReducedMotion = reduceMotionMediaQuery.matches;
2414      reduceMotionMediaQuery.addEventListener("change", (event) => {
2415        isReducedMotion = event.matches;
2416      });
2417      return class SidebarSection extends customize.Section {
2418        ready() {
2419          const InspectorSection = getInspectorSection();
2420          this.inspector = new InspectorSection(
2421            getInspectorSectionId(this.id),
2422            {
2423              title: (0, import_i18n10.__)("Block Settings"),
2424              parentSection: this,
2425              customizeAction: [
2426                (0, import_i18n10.__)("Customizing"),
2427                (0, import_i18n10.__)("Widgets"),
2428                this.params.title
2429              ].join(" \u25B8 ")
2430            }
2431          );
2432          customize.section.add(this.inspector);
2433          this.contentContainer[0].classList.add(
2434            "customize-widgets__sidebar-section"
2435          );
2436        }
2437        hasSubSectionOpened() {
2438          return this.inspector.expanded();
2439        }
2440        onChangeExpanded(expanded, _args) {
2441          const controls = this.controls();
2442          const args = {
2443            ..._args,
2444            completeCallback() {
2445              controls.forEach((control) => {
2446                control.onChangeSectionExpanded?.(expanded, args);
2447              });
2448              _args.completeCallback?.();
2449            }
2450          };
2451          if (args.manualTransition) {
2452            if (expanded) {
2453              this.contentContainer.addClass(["busy", "open"]);
2454              this.contentContainer.removeClass("is-sub-section-open");
2455              this.contentContainer.closest(".wp-full-overlay").addClass("section-open");
2456            } else {
2457              this.contentContainer.addClass([
2458                "busy",
2459                "is-sub-section-open"
2460              ]);
2461              this.contentContainer.closest(".wp-full-overlay").addClass("section-open");
2462              this.contentContainer.removeClass("open");
2463            }
2464            const handleTransitionEnd = () => {
2465              this.contentContainer.removeClass("busy");
2466              args.completeCallback();
2467            };
2468            if (isReducedMotion) {
2469              handleTransitionEnd();
2470            } else {
2471              this.contentContainer.one(
2472                "transitionend",
2473                handleTransitionEnd
2474              );
2475            }
2476          } else {
2477            super.onChangeExpanded(expanded, args);
2478          }
2479        }
2480      };
2481    }
2482  
2483    // packages/customize-widgets/build-module/controls/sidebar-control.mjs
2484    var import_data15 = __toESM(require_data(), 1);
2485  
2486    // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.mjs
2487    var { wp } = window;
2488    function parseWidgetId(widgetId) {
2489      const matches = widgetId.match(/^(.+)-(\d+)$/);
2490      if (matches) {
2491        return {
2492          idBase: matches[1],
2493          number: parseInt(matches[2], 10)
2494        };
2495      }
2496      return { idBase: widgetId };
2497    }
2498    function widgetIdToSettingId(widgetId) {
2499      const { idBase, number } = parseWidgetId(widgetId);
2500      if (number) {
2501        return `widget_$idBase}[$number}]`;
2502      }
2503      return `widget_$idBase}`;
2504    }
2505    function debounce(leading, callback, timeout) {
2506      let isLeading = false;
2507      let timerID;
2508      function debounced(...args) {
2509        const result = (isLeading ? callback : leading).apply(this, args);
2510        isLeading = true;
2511        clearTimeout(timerID);
2512        timerID = setTimeout(() => {
2513          isLeading = false;
2514        }, timeout);
2515        return result;
2516      }
2517      debounced.cancel = () => {
2518        isLeading = false;
2519        clearTimeout(timerID);
2520      };
2521      return debounced;
2522    }
2523    var SidebarAdapter = class {
2524      constructor(setting, api) {
2525        this.setting = setting;
2526        this.api = api;
2527        this.locked = false;
2528        this.widgetsCache = /* @__PURE__ */ new WeakMap();
2529        this.subscribers = /* @__PURE__ */ new Set();
2530        this.history = [
2531          this._getWidgetIds().map(
2532            (widgetId) => this.getWidget(widgetId)
2533          )
2534        ];
2535        this.historyIndex = 0;
2536        this.historySubscribers = /* @__PURE__ */ new Set();
2537        this._debounceSetHistory = debounce(
2538          this._pushHistory,
2539          this._replaceHistory,
2540          1e3
2541        );
2542        this.setting.bind(this._handleSettingChange.bind(this));
2543        this.api.bind("change", this._handleAllSettingsChange.bind(this));
2544        this.undo = this.undo.bind(this);
2545        this.redo = this.redo.bind(this);
2546        this.save = this.save.bind(this);
2547      }
2548      subscribe(callback) {
2549        this.subscribers.add(callback);
2550        return () => {
2551          this.subscribers.delete(callback);
2552        };
2553      }
2554      getWidgets() {
2555        return this.history[this.historyIndex];
2556      }
2557      _emit(...args) {
2558        for (const callback of this.subscribers) {
2559          callback(...args);
2560        }
2561      }
2562      _getWidgetIds() {
2563        return this.setting.get();
2564      }
2565      _pushHistory() {
2566        this.history = [
2567          ...this.history.slice(0, this.historyIndex + 1),
2568          this._getWidgetIds().map(
2569            (widgetId) => this.getWidget(widgetId)
2570          )
2571        ];
2572        this.historyIndex += 1;
2573        this.historySubscribers.forEach((listener) => listener());
2574      }
2575      _replaceHistory() {
2576        this.history[this.historyIndex] = this._getWidgetIds().map(
2577          (widgetId) => this.getWidget(widgetId)
2578        );
2579      }
2580      _handleSettingChange() {
2581        if (this.locked) {
2582          return;
2583        }
2584        const prevWidgets = this.getWidgets();
2585        this._pushHistory();
2586        this._emit(prevWidgets, this.getWidgets());
2587      }
2588      _handleAllSettingsChange(setting) {
2589        if (this.locked) {
2590          return;
2591        }
2592        if (!setting.id.startsWith("widget_")) {
2593          return;
2594        }
2595        const widgetId = settingIdToWidgetId(setting.id);
2596        if (!this.setting.get().includes(widgetId)) {
2597          return;
2598        }
2599        const prevWidgets = this.getWidgets();
2600        this._pushHistory();
2601        this._emit(prevWidgets, this.getWidgets());
2602      }
2603      _createWidget(widget) {
2604        const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({
2605          id_base: widget.idBase
2606        });
2607        let number = widget.number;
2608        if (widgetModel.get("is_multi") && !number) {
2609          widgetModel.set(
2610            "multi_number",
2611            widgetModel.get("multi_number") + 1
2612          );
2613          number = widgetModel.get("multi_number");
2614        }
2615        const settingId = number ? `widget_$widget.idBase}[$number}]` : `widget_$widget.idBase}`;
2616        const settingArgs = {
2617          transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get("id_base")] ? "postMessage" : "refresh",
2618          previewer: this.setting.previewer
2619        };
2620        const setting = this.api.create(
2621          settingId,
2622          settingId,
2623          "",
2624          settingArgs
2625        );
2626        setting.set(widget.instance);
2627        const widgetId = settingIdToWidgetId(settingId);
2628        return widgetId;
2629      }
2630      _removeWidget(widget) {
2631        const settingId = widgetIdToSettingId(widget.id);
2632        const setting = this.api(settingId);
2633        if (setting) {
2634          const instance = setting.get();
2635          this.widgetsCache.delete(instance);
2636        }
2637        this.api.remove(settingId);
2638      }
2639      _updateWidget(widget) {
2640        const prevWidget = this.getWidget(widget.id);
2641        if (prevWidget === widget) {
2642          return widget.id;
2643        }
2644        if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
2645          const settingId = widgetIdToSettingId(widget.id);
2646          this.api(settingId).set(widget.instance);
2647          return widget.id;
2648        }
2649        this._removeWidget(widget);
2650        return this._createWidget(widget);
2651      }
2652      getWidget(widgetId) {
2653        if (!widgetId) {
2654          return null;
2655        }
2656        const { idBase, number } = parseWidgetId(widgetId);
2657        const settingId = widgetIdToSettingId(widgetId);
2658        const setting = this.api(settingId);
2659        if (!setting) {
2660          return null;
2661        }
2662        const instance = setting.get();
2663        if (this.widgetsCache.has(instance)) {
2664          return this.widgetsCache.get(instance);
2665        }
2666        const widget = {
2667          id: widgetId,
2668          idBase,
2669          number,
2670          instance
2671        };
2672        this.widgetsCache.set(instance, widget);
2673        return widget;
2674      }
2675      _updateWidgets(nextWidgets) {
2676        this.locked = true;
2677        const addedWidgetIds = [];
2678        const nextWidgetIds = nextWidgets.map((nextWidget) => {
2679          if (nextWidget.id && this.getWidget(nextWidget.id)) {
2680            addedWidgetIds.push(null);
2681            return this._updateWidget(nextWidget);
2682          }
2683          const widgetId = this._createWidget(nextWidget);
2684          addedWidgetIds.push(widgetId);
2685          return widgetId;
2686        });
2687        const deletedWidgets = this.getWidgets().filter(
2688          (widget) => !nextWidgetIds.includes(widget.id)
2689        );
2690        deletedWidgets.forEach((widget) => this._removeWidget(widget));
2691        this.setting.set(nextWidgetIds);
2692        this.locked = false;
2693        return addedWidgetIds;
2694      }
2695      setWidgets(nextWidgets) {
2696        const addedWidgetIds = this._updateWidgets(nextWidgets);
2697        this._debounceSetHistory();
2698        return addedWidgetIds;
2699      }
2700      /**
2701       * Undo/Redo related features
2702       */
2703      hasUndo() {
2704        return this.historyIndex > 0;
2705      }
2706      hasRedo() {
2707        return this.historyIndex < this.history.length - 1;
2708      }
2709      _seek(historyIndex) {
2710        const currentWidgets = this.getWidgets();
2711        this.historyIndex = historyIndex;
2712        const widgets = this.history[this.historyIndex];
2713        this._updateWidgets(widgets);
2714        this._emit(currentWidgets, this.getWidgets());
2715        this.historySubscribers.forEach((listener) => listener());
2716        this._debounceSetHistory.cancel();
2717      }
2718      undo() {
2719        if (!this.hasUndo()) {
2720          return;
2721        }
2722        this._seek(this.historyIndex - 1);
2723      }
2724      redo() {
2725        if (!this.hasRedo()) {
2726          return;
2727        }
2728        this._seek(this.historyIndex + 1);
2729      }
2730      subscribeHistory(listener) {
2731        this.historySubscribers.add(listener);
2732        return () => {
2733          this.historySubscribers.delete(listener);
2734        };
2735      }
2736      save() {
2737        this.api.previewer.save();
2738      }
2739    };
2740  
2741    // packages/customize-widgets/build-module/controls/inserter-outer-section.mjs
2742    var import_keycodes5 = __toESM(require_keycodes(), 1);
2743    var import_dom = __toESM(require_dom(), 1);
2744    var import_data14 = __toESM(require_data(), 1);
2745    function getInserterOuterSection() {
2746      const {
2747        wp: { customize }
2748      } = window;
2749      const OuterSection = customize.OuterSection;
2750      customize.OuterSection = class extends OuterSection {
2751        onChangeExpanded(expanded, args) {
2752          if (expanded) {
2753            customize.section.each((section) => {
2754              if (section.params.type === "outer" && section.id !== this.id) {
2755                if (section.expanded()) {
2756                  section.collapse();
2757                }
2758              }
2759            });
2760          }
2761          return super.onChangeExpanded(expanded, args);
2762        }
2763      };
2764      customize.sectionConstructor.outer = customize.OuterSection;
2765      return class InserterOuterSection extends customize.OuterSection {
2766        constructor(...args) {
2767          super(...args);
2768          this.params.type = "outer";
2769          this.activeElementBeforeExpanded = null;
2770          const ownerWindow = this.contentContainer[0].ownerDocument.defaultView;
2771          ownerWindow.addEventListener(
2772            "keydown",
2773            (event) => {
2774              if (this.expanded() && (event.keyCode === import_keycodes5.ESCAPE || event.code === "Escape") && !event.defaultPrevented) {
2775                event.preventDefault();
2776                event.stopPropagation();
2777                (0, import_data14.dispatch)(store).setIsInserterOpened(
2778                  false
2779                );
2780              }
2781            },
2782            // Use capture mode to make this run before other event listeners.
2783            true
2784          );
2785          this.contentContainer.addClass("widgets-inserter");
2786          this.isFromInternalAction = false;
2787          this.expanded.bind(() => {
2788            if (!this.isFromInternalAction) {
2789              (0, import_data14.dispatch)(store).setIsInserterOpened(
2790                this.expanded()
2791              );
2792            }
2793            this.isFromInternalAction = false;
2794          });
2795        }
2796        open() {
2797          if (!this.expanded()) {
2798            const contentContainer = this.contentContainer[0];
2799            this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
2800            this.isFromInternalAction = true;
2801            this.expand({
2802              completeCallback() {
2803                const searchBox = import_dom.focus.tabbable.find(contentContainer)[1];
2804                if (searchBox) {
2805                  searchBox.focus();
2806                }
2807              }
2808            });
2809          }
2810        }
2811        close() {
2812          if (this.expanded()) {
2813            const contentContainer = this.contentContainer[0];
2814            const activeElement = contentContainer.ownerDocument.activeElement;
2815            this.isFromInternalAction = true;
2816            this.collapse({
2817              completeCallback() {
2818                if (contentContainer.contains(activeElement)) {
2819                  if (this.activeElementBeforeExpanded) {
2820                    this.activeElementBeforeExpanded.focus();
2821                  }
2822                }
2823              }
2824            });
2825          }
2826        }
2827      };
2828    }
2829  
2830    // packages/customize-widgets/build-module/controls/sidebar-control.mjs
2831    var getInserterId = (controlId) => `widgets-inserter-$controlId}`;
2832    function getSidebarControl() {
2833      const {
2834        wp: { customize }
2835      } = window;
2836      return class SidebarControl extends customize.Control {
2837        constructor(...args) {
2838          super(...args);
2839          this.subscribers = /* @__PURE__ */ new Set();
2840        }
2841        ready() {
2842          const InserterOuterSection = getInserterOuterSection();
2843          this.inserter = new InserterOuterSection(
2844            getInserterId(this.id),
2845            {}
2846          );
2847          customize.section.add(this.inserter);
2848          this.sectionInstance = customize.section(this.section());
2849          this.inspector = this.sectionInstance.inspector;
2850          this.sidebarAdapter = new SidebarAdapter(this.setting, customize);
2851        }
2852        subscribe(callback) {
2853          this.subscribers.add(callback);
2854          return () => {
2855            this.subscribers.delete(callback);
2856          };
2857        }
2858        onChangeSectionExpanded(expanded, args) {
2859          if (!args.unchanged) {
2860            if (!expanded) {
2861              (0, import_data15.dispatch)(store).setIsInserterOpened(
2862                false
2863              );
2864            }
2865            this.subscribers.forEach(
2866              (subscriber) => subscriber(expanded, args)
2867            );
2868          }
2869        }
2870      };
2871    }
2872  
2873    // packages/customize-widgets/build-module/filters/move-to-sidebar.mjs
2874    var import_block_editor10 = __toESM(require_block_editor(), 1);
2875    var import_compose4 = __toESM(require_compose(), 1);
2876    var import_data16 = __toESM(require_data(), 1);
2877    var import_hooks2 = __toESM(require_hooks(), 1);
2878    var import_widgets4 = __toESM(require_widgets(), 1);
2879    var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
2880    var withMoveToSidebarToolbarItem = (0, import_compose4.createHigherOrderComponent)(
2881      (BlockEdit) => (props) => {
2882        let widgetId = (0, import_widgets4.getWidgetIdFromBlock)(props);
2883        const sidebarControls = useSidebarControls();
2884        const activeSidebarControl = useActiveSidebarControl();
2885        const hasMultipleSidebars = sidebarControls?.length > 1;
2886        const blockName = props.name;
2887        const clientId = props.clientId;
2888        const canInsertBlockInSidebar = (0, import_data16.useSelect)(
2889          (select) => {
2890            return select(import_block_editor10.store).canInsertBlockType(
2891              blockName,
2892              ""
2893            );
2894          },
2895          [blockName]
2896        );
2897        const block = (0, import_data16.useSelect)(
2898          (select) => select(import_block_editor10.store).getBlock(clientId),
2899          [clientId]
2900        );
2901        const { removeBlock } = (0, import_data16.useDispatch)(import_block_editor10.store);
2902        const [, focusWidget] = useFocusControl();
2903        function moveToSidebar(sidebarControlId) {
2904          const newSidebarControl = sidebarControls.find(
2905            (sidebarControl) => sidebarControl.id === sidebarControlId
2906          );
2907          if (widgetId) {
2908            const oldSetting = activeSidebarControl.setting;
2909            const newSetting = newSidebarControl.setting;
2910            oldSetting(oldSetting().filter((id) => id !== widgetId));
2911            newSetting([...newSetting(), widgetId]);
2912          } else {
2913            const sidebarAdapter = newSidebarControl.sidebarAdapter;
2914            removeBlock(clientId);
2915            const addedWidgetIds = sidebarAdapter.setWidgets([
2916              ...sidebarAdapter.getWidgets(),
2917              blockToWidget(block)
2918            ]);
2919            widgetId = addedWidgetIds.reverse().find((id) => !!id);
2920          }
2921          focusWidget(widgetId);
2922        }
2923        return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2924          /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BlockEdit, { ...props }, "edit"),
2925          hasMultipleSidebars && canInsertBlockInSidebar && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_block_editor10.BlockControls, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2926            import_widgets4.MoveToWidgetArea,
2927            {
2928              widgetAreas: sidebarControls.map(
2929                (sidebarControl) => ({
2930                  id: sidebarControl.id,
2931                  name: sidebarControl.params.label,
2932                  description: sidebarControl.params.description
2933                })
2934              ),
2935              currentWidgetAreaId: activeSidebarControl?.id,
2936              onSelect: moveToSidebar
2937            }
2938          ) })
2939        ] });
2940      },
2941      "withMoveToSidebarToolbarItem"
2942    );
2943    (0, import_hooks2.addFilter)(
2944      "editor.BlockEdit",
2945      "core/customize-widgets/block-edit",
2946      withMoveToSidebarToolbarItem
2947    );
2948  
2949    // packages/customize-widgets/build-module/filters/replace-media-upload.mjs
2950    var import_hooks3 = __toESM(require_hooks(), 1);
2951    var import_media_utils2 = __toESM(require_media_utils(), 1);
2952    var replaceMediaUpload = () => import_media_utils2.MediaUpload;
2953    (0, import_hooks3.addFilter)(
2954      "editor.MediaUpload",
2955      "core/edit-widgets/replace-media-upload",
2956      replaceMediaUpload
2957    );
2958  
2959    // packages/customize-widgets/build-module/filters/wide-widget-display.mjs
2960    var import_compose5 = __toESM(require_compose(), 1);
2961    var import_hooks4 = __toESM(require_hooks(), 1);
2962    var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
2963    var { wp: wp2 } = window;
2964    var withWideWidgetDisplay = (0, import_compose5.createHigherOrderComponent)(
2965      (BlockEdit) => (props) => {
2966        const { idBase } = props.attributes;
2967        const isWide = wp2.customize.Widgets.data.availableWidgets.find(
2968          (widget) => widget.id_base === idBase
2969        )?.is_wide ?? false;
2970        return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockEdit, { ...props, isWide }, "edit");
2971      },
2972      "withWideWidgetDisplay"
2973    );
2974    (0, import_hooks4.addFilter)(
2975      "editor.BlockEdit",
2976      "core/customize-widgets/wide-widget-display",
2977      withWideWidgetDisplay
2978    );
2979  
2980    // packages/customize-widgets/build-module/index.mjs
2981    var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
2982    var { wp: wp3 } = window;
2983    var DISABLED_BLOCKS = [
2984      "core/more",
2985      "core/block",
2986      "core/freeform",
2987      "core/template-part"
2988    ];
2989    function initialize(editorName, blockEditorSettings) {
2990      (0, import_data17.dispatch)(import_preferences4.store).setDefaults("core/customize-widgets", {
2991        fixedToolbar: false,
2992        welcomeGuide: true
2993      });
2994      (0, import_data17.dispatch)(import_blocks2.store).reapplyBlockTypeFilters();
2995      const coreBlocks = (0, import_block_library2.__experimentalGetCoreBlocks)().filter((block) => {
2996        return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith("core/post") || block.name.startsWith("core/query") || block.name.startsWith("core/site") || block.name.startsWith("core/navigation") || block.name.startsWith("core/term"));
2997      });
2998      (0, import_block_library2.registerCoreBlocks)(coreBlocks);
2999      (0, import_widgets5.registerLegacyWidgetBlock)();
3000      if (false) {
3001        (0, import_block_library2.__experimentalRegisterExperimentalCoreBlocks)({
3002          enableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS
3003        });
3004      }
3005      (0, import_widgets5.registerLegacyWidgetVariations)(blockEditorSettings);
3006      (0, import_widgets5.registerWidgetGroupBlock)();
3007      (0, import_blocks2.setFreeformContentHandlerName)("core/html");
3008      const SidebarControl = getSidebarControl(blockEditorSettings);
3009      wp3.customize.sectionConstructor.sidebar = getSidebarSection();
3010      wp3.customize.controlConstructor.sidebar_block_editor = SidebarControl;
3011      const container = document.createElement("div");
3012      document.body.appendChild(container);
3013      wp3.customize.bind("ready", () => {
3014        const sidebarControls = [];
3015        wp3.customize.control.each((control) => {
3016          if (control instanceof SidebarControl) {
3017            sidebarControls.push(control);
3018          }
3019        });
3020        (0, import_element18.createRoot)(container).render(
3021          /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_element18.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3022            CustomizeWidgets,
3023            {
3024              api: wp3.customize,
3025              sidebarControls,
3026              blockEditorSettings
3027            }
3028          ) })
3029        );
3030      });
3031    }
3032    return __toCommonJS(index_exports);
3033  })();


Generated : Wed Jul 15 08:20:16 2026 Cross-referenced by PHPXref