[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/js/dist/script-modules/boot/ -> index.js (source)

   1  var __create = Object.create;
   2  var __defProp = Object.defineProperty;
   3  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
   4  var __getOwnPropNames = Object.getOwnPropertyNames;
   5  var __getProtoOf = Object.getPrototypeOf;
   6  var __hasOwnProp = Object.prototype.hasOwnProperty;
   7  var __commonJS = (cb, mod) => function __require() {
   8    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
   9  };
  10  var __export = (target, all) => {
  11    for (var name in all)
  12      __defProp(target, name, { get: all[name], enumerable: true });
  13  };
  14  var __copyProps = (to, from, except, desc) => {
  15    if (from && typeof from === "object" || typeof from === "function") {
  16      for (let key of __getOwnPropNames(from))
  17        if (!__hasOwnProp.call(to, key) && key !== except)
  18          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  19    }
  20    return to;
  21  };
  22  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  23    // If the importer is in node compatibility mode or this is not an ESM
  24    // file that has been converted to a CommonJS file using a Babel-
  25    // compatible transform (i.e. "__esModule" has not been set), then set
  26    // "default" to the CommonJS "module.exports" for node compatibility.
  27    isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  28    mod
  29  ));
  30  
  31  // package-external:@wordpress/element
  32  var require_element = __commonJS({
  33    "package-external:@wordpress/element"(exports, module) {
  34      module.exports = window.wp.element;
  35    }
  36  });
  37  
  38  // package-external:@wordpress/data
  39  var require_data = __commonJS({
  40    "package-external:@wordpress/data"(exports, module) {
  41      module.exports = window.wp.data;
  42    }
  43  });
  44  
  45  // package-external:@wordpress/i18n
  46  var require_i18n = __commonJS({
  47    "package-external:@wordpress/i18n"(exports, module) {
  48      module.exports = window.wp.i18n;
  49    }
  50  });
  51  
  52  // package-external:@wordpress/components
  53  var require_components = __commonJS({
  54    "package-external:@wordpress/components"(exports, module) {
  55      module.exports = window.wp.components;
  56    }
  57  });
  58  
  59  // vendor-external:react/jsx-runtime
  60  var require_jsx_runtime = __commonJS({
  61    "vendor-external:react/jsx-runtime"(exports, module) {
  62      module.exports = window.ReactJSXRuntime;
  63    }
  64  });
  65  
  66  // vendor-external:react
  67  var require_react = __commonJS({
  68    "vendor-external:react"(exports, module) {
  69      module.exports = window.React;
  70    }
  71  });
  72  
  73  // package-external:@wordpress/primitives
  74  var require_primitives = __commonJS({
  75    "package-external:@wordpress/primitives"(exports, module) {
  76      module.exports = window.wp.primitives;
  77    }
  78  });
  79  
  80  // package-external:@wordpress/theme
  81  var require_theme = __commonJS({
  82    "package-external:@wordpress/theme"(exports, module) {
  83      module.exports = window.wp.theme;
  84    }
  85  });
  86  
  87  // package-external:@wordpress/private-apis
  88  var require_private_apis = __commonJS({
  89    "package-external:@wordpress/private-apis"(exports, module) {
  90      module.exports = window.wp.privateApis;
  91    }
  92  });
  93  
  94  // package-external:@wordpress/compose
  95  var require_compose = __commonJS({
  96    "package-external:@wordpress/compose"(exports, module) {
  97      module.exports = window.wp.compose;
  98    }
  99  });
 100  
 101  // package-external:@wordpress/core-data
 102  var require_core_data = __commonJS({
 103    "package-external:@wordpress/core-data"(exports, module) {
 104      module.exports = window.wp.coreData;
 105    }
 106  });
 107  
 108  // package-external:@wordpress/notices
 109  var require_notices = __commonJS({
 110    "package-external:@wordpress/notices"(exports, module) {
 111      module.exports = window.wp.notices;
 112    }
 113  });
 114  
 115  // package-external:@wordpress/html-entities
 116  var require_html_entities = __commonJS({
 117    "package-external:@wordpress/html-entities"(exports, module) {
 118      module.exports = window.wp.htmlEntities;
 119    }
 120  });
 121  
 122  // package-external:@wordpress/keycodes
 123  var require_keycodes = __commonJS({
 124    "package-external:@wordpress/keycodes"(exports, module) {
 125      module.exports = window.wp.keycodes;
 126    }
 127  });
 128  
 129  // package-external:@wordpress/commands
 130  var require_commands = __commonJS({
 131    "package-external:@wordpress/commands"(exports, module) {
 132      module.exports = window.wp.commands;
 133    }
 134  });
 135  
 136  // package-external:@wordpress/url
 137  var require_url = __commonJS({
 138    "package-external:@wordpress/url"(exports, module) {
 139      module.exports = window.wp.url;
 140    }
 141  });
 142  
 143  // package-external:@wordpress/editor
 144  var require_editor = __commonJS({
 145    "package-external:@wordpress/editor"(exports, module) {
 146      module.exports = window.wp.editor;
 147    }
 148  });
 149  
 150  // package-external:@wordpress/keyboard-shortcuts
 151  var require_keyboard_shortcuts = __commonJS({
 152    "package-external:@wordpress/keyboard-shortcuts"(exports, module) {
 153      module.exports = window.wp.keyboardShortcuts;
 154    }
 155  });
 156  
 157  // packages/boot/build-module/components/app/index.mjs
 158  var import_element16 = __toESM(require_element(), 1);
 159  var import_data11 = __toESM(require_data(), 1);
 160  
 161  // packages/boot/build-module/components/app/router.mjs
 162  var import_i18n11 = __toESM(require_i18n(), 1);
 163  var import_element15 = __toESM(require_element(), 1);
 164  
 165  // node_modules/clsx/dist/clsx.mjs
 166  function r(e) {
 167    var t, f, n = "";
 168    if ("string" == typeof e || "number" == typeof e) n += e;
 169    else if ("object" == typeof e) if (Array.isArray(e)) {
 170      var o = e.length;
 171      for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
 172    } else for (f in e) e[f] && (n && (n += " "), n += f);
 173    return n;
 174  }
 175  function clsx() {
 176    for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
 177    return n;
 178  }
 179  var clsx_default = clsx;
 180  
 181  // packages/admin-ui/build-module/navigable-region/index.mjs
 182  var import_element = __toESM(require_element(), 1);
 183  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
 184  var NavigableRegion = (0, import_element.forwardRef)(
 185    ({ children, className, ariaLabel, as: Tag = "div", ...props }, ref) => {
 186      return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
 187        Tag,
 188        {
 189          ref,
 190          className: clsx_default("admin-ui-navigable-region", className),
 191          "aria-label": ariaLabel,
 192          role: "region",
 193          tabIndex: "-1",
 194          ...props,
 195          children
 196        }
 197      );
 198    }
 199  );
 200  NavigableRegion.displayName = "NavigableRegion";
 201  var navigable_region_default = NavigableRegion;
 202  
 203  // node_modules/@base-ui/utils/esm/useRefWithInit.js
 204  var React = __toESM(require_react(), 1);
 205  var UNINITIALIZED = {};
 206  function useRefWithInit(init2, initArg) {
 207    const ref = React.useRef(UNINITIALIZED);
 208    if (ref.current === UNINITIALIZED) {
 209      ref.current = init2(initArg);
 210    }
 211    return ref;
 212  }
 213  
 214  // node_modules/@base-ui/react/esm/utils/useRenderElement.js
 215  var React4 = __toESM(require_react(), 1);
 216  
 217  // node_modules/@base-ui/utils/esm/useMergedRefs.js
 218  function useMergedRefs(a, b, c, d) {
 219    const forkRef = useRefWithInit(createForkRef).current;
 220    if (didChange(forkRef, a, b, c, d)) {
 221      update(forkRef, [a, b, c, d]);
 222    }
 223    return forkRef.callback;
 224  }
 225  function useMergedRefsN(refs) {
 226    const forkRef = useRefWithInit(createForkRef).current;
 227    if (didChangeN(forkRef, refs)) {
 228      update(forkRef, refs);
 229    }
 230    return forkRef.callback;
 231  }
 232  function createForkRef() {
 233    return {
 234      callback: null,
 235      cleanup: null,
 236      refs: []
 237    };
 238  }
 239  function didChange(forkRef, a, b, c, d) {
 240    return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
 241  }
 242  function didChangeN(forkRef, newRefs) {
 243    return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]);
 244  }
 245  function update(forkRef, refs) {
 246    forkRef.refs = refs;
 247    if (refs.every((ref) => ref == null)) {
 248      forkRef.callback = null;
 249      return;
 250    }
 251    forkRef.callback = (instance) => {
 252      if (forkRef.cleanup) {
 253        forkRef.cleanup();
 254        forkRef.cleanup = null;
 255      }
 256      if (instance != null) {
 257        const cleanupCallbacks = Array(refs.length).fill(null);
 258        for (let i = 0; i < refs.length; i += 1) {
 259          const ref = refs[i];
 260          if (ref == null) {
 261            continue;
 262          }
 263          switch (typeof ref) {
 264            case "function": {
 265              const refCleanup = ref(instance);
 266              if (typeof refCleanup === "function") {
 267                cleanupCallbacks[i] = refCleanup;
 268              }
 269              break;
 270            }
 271            case "object": {
 272              ref.current = instance;
 273              break;
 274            }
 275            default:
 276          }
 277        }
 278        forkRef.cleanup = () => {
 279          for (let i = 0; i < refs.length; i += 1) {
 280            const ref = refs[i];
 281            if (ref == null) {
 282              continue;
 283            }
 284            switch (typeof ref) {
 285              case "function": {
 286                const cleanupCallback = cleanupCallbacks[i];
 287                if (typeof cleanupCallback === "function") {
 288                  cleanupCallback();
 289                } else {
 290                  ref(null);
 291                }
 292                break;
 293              }
 294              case "object": {
 295                ref.current = null;
 296                break;
 297              }
 298              default:
 299            }
 300          }
 301        };
 302      }
 303    };
 304  }
 305  
 306  // node_modules/@base-ui/utils/esm/getReactElementRef.js
 307  var React3 = __toESM(require_react(), 1);
 308  
 309  // node_modules/@base-ui/utils/esm/reactVersion.js
 310  var React2 = __toESM(require_react(), 1);
 311  var majorVersion = parseInt(React2.version, 10);
 312  function isReactVersionAtLeast(reactVersionToCheck) {
 313    return majorVersion >= reactVersionToCheck;
 314  }
 315  
 316  // node_modules/@base-ui/utils/esm/getReactElementRef.js
 317  function getReactElementRef(element) {
 318    if (!/* @__PURE__ */ React3.isValidElement(element)) {
 319      return null;
 320    }
 321    const reactElement = element;
 322    const propsWithRef = reactElement.props;
 323    return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null;
 324  }
 325  
 326  // node_modules/@base-ui/utils/esm/mergeObjects.js
 327  function mergeObjects(a, b) {
 328    if (a && !b) {
 329      return a;
 330    }
 331    if (!a && b) {
 332      return b;
 333    }
 334    if (a || b) {
 335      return {
 336        ...a,
 337        ...b
 338      };
 339    }
 340    return void 0;
 341  }
 342  
 343  // node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js
 344  function getStateAttributesProps(state, customMapping) {
 345    const props = {};
 346    for (const key in state) {
 347      const value = state[key];
 348      if (customMapping?.hasOwnProperty(key)) {
 349        const customProps = customMapping[key](value);
 350        if (customProps != null) {
 351          Object.assign(props, customProps);
 352        }
 353        continue;
 354      }
 355      if (value === true) {
 356        props[`data-$key.toLowerCase()}`] = "";
 357      } else if (value) {
 358        props[`data-$key.toLowerCase()}`] = value.toString();
 359      }
 360    }
 361    return props;
 362  }
 363  
 364  // node_modules/@base-ui/react/esm/utils/resolveClassName.js
 365  function resolveClassName(className, state) {
 366    return typeof className === "function" ? className(state) : className;
 367  }
 368  
 369  // node_modules/@base-ui/react/esm/utils/resolveStyle.js
 370  function resolveStyle(style, state) {
 371    return typeof style === "function" ? style(state) : style;
 372  }
 373  
 374  // node_modules/@base-ui/react/esm/merge-props/mergeProps.js
 375  var EMPTY_PROPS = {};
 376  function mergeProps(a, b, c, d, e) {
 377    let merged = {
 378      ...resolvePropsGetter(a, EMPTY_PROPS)
 379    };
 380    if (b) {
 381      merged = mergeOne(merged, b);
 382    }
 383    if (c) {
 384      merged = mergeOne(merged, c);
 385    }
 386    if (d) {
 387      merged = mergeOne(merged, d);
 388    }
 389    if (e) {
 390      merged = mergeOne(merged, e);
 391    }
 392    return merged;
 393  }
 394  function mergePropsN(props) {
 395    if (props.length === 0) {
 396      return EMPTY_PROPS;
 397    }
 398    if (props.length === 1) {
 399      return resolvePropsGetter(props[0], EMPTY_PROPS);
 400    }
 401    let merged = {
 402      ...resolvePropsGetter(props[0], EMPTY_PROPS)
 403    };
 404    for (let i = 1; i < props.length; i += 1) {
 405      merged = mergeOne(merged, props[i]);
 406    }
 407    return merged;
 408  }
 409  function mergeOne(merged, inputProps) {
 410    if (isPropsGetter(inputProps)) {
 411      return inputProps(merged);
 412    }
 413    return mutablyMergeInto(merged, inputProps);
 414  }
 415  function mutablyMergeInto(mergedProps, externalProps) {
 416    if (!externalProps) {
 417      return mergedProps;
 418    }
 419    for (const propName in externalProps) {
 420      const externalPropValue = externalProps[propName];
 421      switch (propName) {
 422        case "style": {
 423          mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);
 424          break;
 425        }
 426        case "className": {
 427          mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);
 428          break;
 429        }
 430        default: {
 431          if (isEventHandler(propName, externalPropValue)) {
 432            mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);
 433          } else {
 434            mergedProps[propName] = externalPropValue;
 435          }
 436        }
 437      }
 438    }
 439    return mergedProps;
 440  }
 441  function isEventHandler(key, value) {
 442    const code0 = key.charCodeAt(0);
 443    const code1 = key.charCodeAt(1);
 444    const code2 = key.charCodeAt(2);
 445    return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined");
 446  }
 447  function isPropsGetter(inputProps) {
 448    return typeof inputProps === "function";
 449  }
 450  function resolvePropsGetter(inputProps, previousProps) {
 451    if (isPropsGetter(inputProps)) {
 452      return inputProps(previousProps);
 453    }
 454    return inputProps ?? EMPTY_PROPS;
 455  }
 456  function mergeEventHandlers(ourHandler, theirHandler) {
 457    if (!theirHandler) {
 458      return ourHandler;
 459    }
 460    if (!ourHandler) {
 461      return theirHandler;
 462    }
 463    return (event) => {
 464      if (isSyntheticEvent(event)) {
 465        const baseUIEvent = event;
 466        makeEventPreventable(baseUIEvent);
 467        const result2 = theirHandler(baseUIEvent);
 468        if (!baseUIEvent.baseUIHandlerPrevented) {
 469          ourHandler?.(baseUIEvent);
 470        }
 471        return result2;
 472      }
 473      const result = theirHandler(event);
 474      ourHandler?.(event);
 475      return result;
 476    };
 477  }
 478  function makeEventPreventable(event) {
 479    event.preventBaseUIHandler = () => {
 480      event.baseUIHandlerPrevented = true;
 481    };
 482    return event;
 483  }
 484  function mergeClassNames(ourClassName, theirClassName) {
 485    if (theirClassName) {
 486      if (ourClassName) {
 487        return theirClassName + " " + ourClassName;
 488      }
 489      return theirClassName;
 490    }
 491    return ourClassName;
 492  }
 493  function isSyntheticEvent(event) {
 494    return event != null && typeof event === "object" && "nativeEvent" in event;
 495  }
 496  
 497  // node_modules/@base-ui/utils/esm/empty.js
 498  var EMPTY_ARRAY = Object.freeze([]);
 499  var EMPTY_OBJECT = Object.freeze({});
 500  
 501  // node_modules/@base-ui/react/esm/utils/useRenderElement.js
 502  var import_react = __toESM(require_react(), 1);
 503  function useRenderElement(element, componentProps, params = {}) {
 504    const renderProp = componentProps.render;
 505    const outProps = useRenderElementProps(componentProps, params);
 506    if (params.enabled === false) {
 507      return null;
 508    }
 509    const state = params.state ?? EMPTY_OBJECT;
 510    return evaluateRenderProp(element, renderProp, outProps, state);
 511  }
 512  function useRenderElementProps(componentProps, params = {}) {
 513    const {
 514      className: classNameProp,
 515      style: styleProp,
 516      render: renderProp
 517    } = componentProps;
 518    const {
 519      state = EMPTY_OBJECT,
 520      ref,
 521      props,
 522      stateAttributesMapping,
 523      enabled = true
 524    } = params;
 525    const className = enabled ? resolveClassName(classNameProp, state) : void 0;
 526    const style = enabled ? resolveStyle(styleProp, state) : void 0;
 527    const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
 528    const outProps = enabled ? mergeObjects(stateProps, Array.isArray(props) ? mergePropsN(props) : props) ?? EMPTY_OBJECT : EMPTY_OBJECT;
 529    if (typeof document !== "undefined") {
 530      if (!enabled) {
 531        useMergedRefs(null, null);
 532      } else if (Array.isArray(ref)) {
 533        outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);
 534      } else {
 535        outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);
 536      }
 537    }
 538    if (!enabled) {
 539      return EMPTY_OBJECT;
 540    }
 541    if (className !== void 0) {
 542      outProps.className = mergeClassNames(outProps.className, className);
 543    }
 544    if (style !== void 0) {
 545      outProps.style = mergeObjects(outProps.style, style);
 546    }
 547    return outProps;
 548  }
 549  function evaluateRenderProp(element, render, props, state) {
 550    if (render) {
 551      if (typeof render === "function") {
 552        return render(props, state);
 553      }
 554      const mergedProps = mergeProps(props, render.props);
 555      mergedProps.ref = props.ref;
 556      return /* @__PURE__ */ React4.cloneElement(render, mergedProps);
 557    }
 558    if (element) {
 559      if (typeof element === "string") {
 560        return renderTag(element, props);
 561      }
 562    }
 563    throw new Error(true ? "Base UI: Render element or function are not defined." : formatErrorMessage(8));
 564  }
 565  function renderTag(Tag, props) {
 566    if (Tag === "button") {
 567      return /* @__PURE__ */ (0, import_react.createElement)("button", {
 568        type: "button",
 569        ...props,
 570        key: props.key
 571      });
 572    }
 573    if (Tag === "img") {
 574      return /* @__PURE__ */ (0, import_react.createElement)("img", {
 575        alt: "",
 576        ...props,
 577        key: props.key
 578      });
 579    }
 580    return /* @__PURE__ */ React4.createElement(Tag, props);
 581  }
 582  
 583  // node_modules/@base-ui/react/esm/use-render/useRender.js
 584  function useRender(params) {
 585    return useRenderElement(params.defaultTagName ?? "div", params, params);
 586  }
 587  
 588  // packages/icons/build-module/icon/index.mjs
 589  var import_element2 = __toESM(require_element(), 1);
 590  var icon_default = (0, import_element2.forwardRef)(
 591    ({ icon, size = 24, ...props }, ref) => {
 592      return (0, import_element2.cloneElement)(icon, {
 593        width: size,
 594        height: size,
 595        ...props,
 596        ref
 597      });
 598    }
 599  );
 600  
 601  // packages/icons/build-module/library/arrow-up-left.mjs
 602  var import_primitives = __toESM(require_primitives(), 1);
 603  var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
 604  var arrow_up_left_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.Path, { d: "M14 6H6v8h1.5V8.5L17 18l1-1-9.5-9.5H14V6Z" }) });
 605  
 606  // packages/icons/build-module/library/check.mjs
 607  var import_primitives2 = __toESM(require_primitives(), 1);
 608  var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
 609  var check_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.Path, { d: "M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z" }) });
 610  
 611  // packages/icons/build-module/library/chevron-down-small.mjs
 612  var import_primitives3 = __toESM(require_primitives(), 1);
 613  var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
 614  var chevron_down_small_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.Path, { d: "m15.99 10.889-3.988 3.418-3.988-3.418.976-1.14 3.012 2.582 3.012-2.581.976 1.139Z" }) });
 615  
 616  // packages/icons/build-module/library/chevron-left-small.mjs
 617  var import_primitives4 = __toESM(require_primitives(), 1);
 618  var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
 619  var chevron_left_small_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.Path, { d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z" }) });
 620  
 621  // packages/icons/build-module/library/chevron-left.mjs
 622  var import_primitives5 = __toESM(require_primitives(), 1);
 623  var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
 624  var chevron_left_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.Path, { d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" }) });
 625  
 626  // packages/icons/build-module/library/chevron-right-small.mjs
 627  var import_primitives6 = __toESM(require_primitives(), 1);
 628  var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
 629  var chevron_right_small_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.Path, { d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z" }) });
 630  
 631  // packages/icons/build-module/library/chevron-right.mjs
 632  var import_primitives7 = __toESM(require_primitives(), 1);
 633  var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
 634  var chevron_right_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives7.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives7.Path, { d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" }) });
 635  
 636  // packages/icons/build-module/library/menu.mjs
 637  var import_primitives8 = __toESM(require_primitives(), 1);
 638  var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
 639  var menu_default = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives8.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives8.Path, { d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z" }) });
 640  
 641  // packages/icons/build-module/library/search.mjs
 642  var import_primitives9 = __toESM(require_primitives(), 1);
 643  var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
 644  var search_default = /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_primitives9.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_primitives9.Path, { d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z" }) });
 645  
 646  // packages/icons/build-module/library/wordpress.mjs
 647  var import_primitives10 = __toESM(require_primitives(), 1);
 648  var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
 649  var wordpress_default = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_primitives10.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "-2 -2 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_primitives10.Path, { d: "M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z" }) });
 650  
 651  // packages/ui/build-module/stack/stack.mjs
 652  var import_element3 = __toESM(require_element(), 1);
 653  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='71d20935c2']")) {
 654    const style = document.createElement("style");
 655    style.setAttribute("data-wp-hash", "71d20935c2");
 656    style.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._19ce0419607e1896__stack{display:flex}}"));
 657    document.head.appendChild(style);
 658  }
 659  var style_default = { "stack": "_19ce0419607e1896__stack" };
 660  var gapTokens = {
 661    xs: "var(--wpds-dimension-gap-xs, 4px)",
 662    sm: "var(--wpds-dimension-gap-sm, 8px)",
 663    md: "var(--wpds-dimension-gap-md, 12px)",
 664    lg: "var(--wpds-dimension-gap-lg, 16px)",
 665    xl: "var(--wpds-dimension-gap-xl, 24px)",
 666    "2xl": "var(--wpds-dimension-gap-2xl, 32px)",
 667    "3xl": "var(--wpds-dimension-gap-3xl, 40px)"
 668  };
 669  var Stack = (0, import_element3.forwardRef)(function Stack2({ direction, gap, align, justify, wrap, render, ...props }, ref) {
 670    const style = {
 671      gap: gap && gapTokens[gap],
 672      alignItems: align,
 673      justifyContent: justify,
 674      flexDirection: direction,
 675      flexWrap: wrap
 676    };
 677    const element = useRender({
 678      render,
 679      ref,
 680      props: mergeProps(props, { style, className: style_default.stack })
 681    });
 682    return element;
 683  });
 684  
 685  // packages/admin-ui/build-module/page/sidebar-toggle-slot.mjs
 686  var import_components = __toESM(require_components(), 1);
 687  var { Fill: SidebarToggleFill, Slot: SidebarToggleSlot } = (0, import_components.createSlotFill)("SidebarToggle");
 688  
 689  // packages/admin-ui/build-module/page/header.mjs
 690  var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
 691  function Header({
 692    headingLevel = 1,
 693    breadcrumbs,
 694    badges,
 695    title,
 696    subTitle,
 697    actions,
 698    showSidebarToggle = true
 699  }) {
 700    const HeadingTag = `h$headingLevel}`;
 701    return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Stack, { direction: "column", className: "admin-ui-page__header", children: [
 702      /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Stack, { direction: "row", justify: "space-between", gap: "sm", children: [
 703        /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Stack, { direction: "row", gap: "sm", align: "center", justify: "start", children: [
 704          showSidebarToggle && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
 705            SidebarToggleSlot,
 706            {
 707              bubblesVirtually: true,
 708              className: "admin-ui-page__sidebar-toggle-slot"
 709            }
 710          ),
 711          title && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(HeadingTag, { className: "admin-ui-page__header-title", children: title }),
 712          breadcrumbs,
 713          badges
 714        ] }),
 715        /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
 716          Stack,
 717          {
 718            direction: "row",
 719            gap: "sm",
 720            style: { width: "auto", flexShrink: 0 },
 721            className: "admin-ui-page__header-actions",
 722            align: "center",
 723            children: actions
 724          }
 725        )
 726      ] }),
 727      subTitle && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "admin-ui-page__header-subtitle", children: subTitle })
 728    ] });
 729  }
 730  
 731  // packages/admin-ui/build-module/page/index.mjs
 732  var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
 733  function Page({
 734    headingLevel,
 735    breadcrumbs,
 736    badges,
 737    title,
 738    subTitle,
 739    children,
 740    className,
 741    actions,
 742    hasPadding = false,
 743    showSidebarToggle = true
 744  }) {
 745    const classes = clsx_default("admin-ui-page", className);
 746    return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(navigable_region_default, { className: classes, ariaLabel: title, children: [
 747      (title || breadcrumbs || badges) && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
 748        Header,
 749        {
 750          headingLevel,
 751          breadcrumbs,
 752          badges,
 753          title,
 754          subTitle,
 755          actions,
 756          showSidebarToggle
 757        }
 758      ),
 759      hasPadding ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "admin-ui-page__content has-padding", children }) : children
 760    ] });
 761  }
 762  Page.SidebarToggleFill = SidebarToggleFill;
 763  var page_default = Page;
 764  
 765  // packages/boot/build-module/components/app/router.mjs
 766  var import_data10 = __toESM(require_data(), 1);
 767  var import_core_data6 = __toESM(require_core_data(), 1);
 768  import {
 769    privateApis as routePrivateApis6
 770  } from "@wordpress/route";
 771  
 772  // packages/boot/build-module/components/root/index.mjs
 773  var import_notices = __toESM(require_notices(), 1);
 774  var import_compose4 = __toESM(require_compose(), 1);
 775  var import_components14 = __toESM(require_components(), 1);
 776  import { privateApis as routePrivateApis5 } from "@wordpress/route";
 777  var import_element14 = __toESM(require_element(), 1);
 778  var import_i18n10 = __toESM(require_i18n(), 1);
 779  
 780  // packages/boot/build-module/components/site-hub/index.mjs
 781  var import_data3 = __toESM(require_data(), 1);
 782  var import_components3 = __toESM(require_components(), 1);
 783  var import_i18n2 = __toESM(require_i18n(), 1);
 784  var import_core_data2 = __toESM(require_core_data(), 1);
 785  var import_html_entities = __toESM(require_html_entities(), 1);
 786  var import_keycodes = __toESM(require_keycodes(), 1);
 787  var import_commands = __toESM(require_commands(), 1);
 788  var import_url = __toESM(require_url(), 1);
 789  
 790  // packages/boot/build-module/components/site-icon-link/index.mjs
 791  var import_components2 = __toESM(require_components(), 1);
 792  import { Link, privateApis as routePrivateApis } from "@wordpress/route";
 793  
 794  // packages/boot/build-module/lock-unlock.mjs
 795  var import_private_apis = __toESM(require_private_apis(), 1);
 796  var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
 797    "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
 798    "@wordpress/boot"
 799  );
 800  
 801  // packages/boot/build-module/components/site-icon/index.mjs
 802  var import_data = __toESM(require_data(), 1);
 803  var import_i18n = __toESM(require_i18n(), 1);
 804  var import_core_data = __toESM(require_core_data(), 1);
 805  var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
 806  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='1a8e849690']")) {
 807    const style = document.createElement("style");
 808    style.setAttribute("data-wp-hash", "1a8e849690");
 809    style.appendChild(document.createTextNode(".boot-site-icon{display:flex}.boot-site-icon__icon{fill:var(--wpds-color-fg-content-neutral,#1e1e1e);height:32px;width:32px}.boot-site-icon__image{aspect-ratio:1/1;border-radius:var(--wpds-border-radius-md,4px);height:32px;object-fit:cover;width:32px}"));
 810    document.head.appendChild(style);
 811  }
 812  function SiteIcon({ className }) {
 813    const { isRequestingSite, siteIconUrl } = (0, import_data.useSelect)((select) => {
 814      const { getEntityRecord } = select(import_core_data.store);
 815      const siteData = getEntityRecord(
 816        "root",
 817        "__unstableBase",
 818        void 0
 819      );
 820      return {
 821        isRequestingSite: !siteData,
 822        siteIconUrl: siteData?.site_icon_url
 823      };
 824    }, []);
 825    let icon = null;
 826    if (isRequestingSite && !siteIconUrl) {
 827      icon = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "boot-site-icon__image" });
 828    } else {
 829      icon = siteIconUrl ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
 830        "img",
 831        {
 832          className: "boot-site-icon__image",
 833          alt: (0, import_i18n.__)("Site Icon"),
 834          src: siteIconUrl
 835        }
 836      ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
 837        icon_default,
 838        {
 839          className: "boot-site-icon__icon",
 840          icon: wordpress_default,
 841          size: 48
 842        }
 843      );
 844    }
 845    return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: clsx_default(className, "boot-site-icon"), children: icon });
 846  }
 847  var site_icon_default = SiteIcon;
 848  
 849  // packages/boot/build-module/components/site-icon-link/index.mjs
 850  var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
 851  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='3de37b6316']")) {
 852    const style = document.createElement("style");
 853    style.setAttribute("data-wp-hash", "3de37b6316");
 854    style.appendChild(document.createTextNode(".boot-site-icon-link{align-items:center;background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);display:inline-flex;height:64px;justify-content:center;text-decoration:none;width:64px}@media not (prefers-reduced-motion){.boot-site-icon-link{transition:outline .1s ease-out}}.boot-site-icon-link:focus:not(:active){outline:var(--wpds-border-width-focus,2px) solid var(--wpds-color-stroke-focus-brand,#0073aa);outline-offset:calc(var(--wpds-border-width-focus, 2px)*-1)}"));
 855    document.head.appendChild(style);
 856  }
 857  var { useCanGoBack, useRouter } = unlock(routePrivateApis);
 858  function SiteIconLink({
 859    to,
 860    isBackButton,
 861    ...props
 862  }) {
 863    const router = useRouter();
 864    const canGoBack = useCanGoBack();
 865    return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_components2.Tooltip, { text: props["aria-label"], placement: "right", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
 866      Link,
 867      {
 868        to,
 869        "aria-label": props["aria-label"],
 870        className: "boot-site-icon-link",
 871        onClick: (event) => {
 872          if (canGoBack && isBackButton) {
 873            event.preventDefault();
 874            router.history.back();
 875          }
 876        },
 877        children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(site_icon_default, {})
 878      }
 879    ) });
 880  }
 881  var site_icon_link_default = SiteIconLink;
 882  
 883  // packages/boot/build-module/store/index.mjs
 884  var import_data2 = __toESM(require_data(), 1);
 885  
 886  // packages/boot/build-module/store/reducer.mjs
 887  var initialState = {
 888    menuItems: {},
 889    routes: [],
 890    dashboardLink: void 0
 891  };
 892  function reducer(state = initialState, action) {
 893    switch (action.type) {
 894      case "REGISTER_MENU_ITEM":
 895        return {
 896          ...state,
 897          menuItems: {
 898            ...state.menuItems,
 899            [action.id]: action.menuItem
 900          }
 901        };
 902      case "UPDATE_MENU_ITEM":
 903        return {
 904          ...state,
 905          menuItems: {
 906            ...state.menuItems,
 907            [action.id]: {
 908              ...state.menuItems[action.id],
 909              ...action.updates
 910            }
 911          }
 912        };
 913      case "REGISTER_ROUTE":
 914        return {
 915          ...state,
 916          routes: [...state.routes, action.route]
 917        };
 918      case "SET_DASHBOARD_LINK":
 919        return {
 920          ...state,
 921          dashboardLink: action.dashboardLink
 922        };
 923    }
 924    return state;
 925  }
 926  
 927  // packages/boot/build-module/store/actions.mjs
 928  var actions_exports = {};
 929  __export(actions_exports, {
 930    registerMenuItem: () => registerMenuItem,
 931    registerRoute: () => registerRoute,
 932    setDashboardLink: () => setDashboardLink,
 933    updateMenuItem: () => updateMenuItem
 934  });
 935  function registerMenuItem(id, menuItem) {
 936    return {
 937      type: "REGISTER_MENU_ITEM",
 938      id,
 939      menuItem
 940    };
 941  }
 942  function updateMenuItem(id, updates) {
 943    return {
 944      type: "UPDATE_MENU_ITEM",
 945      id,
 946      updates
 947    };
 948  }
 949  function registerRoute(route) {
 950    return {
 951      type: "REGISTER_ROUTE",
 952      route
 953    };
 954  }
 955  function setDashboardLink(dashboardLink) {
 956    return {
 957      type: "SET_DASHBOARD_LINK",
 958      dashboardLink
 959    };
 960  }
 961  
 962  // packages/boot/build-module/store/selectors.mjs
 963  var selectors_exports = {};
 964  __export(selectors_exports, {
 965    getDashboardLink: () => getDashboardLink,
 966    getMenuItems: () => getMenuItems,
 967    getRoutes: () => getRoutes
 968  });
 969  function getMenuItems(state) {
 970    return Object.values(state.menuItems);
 971  }
 972  function getRoutes(state) {
 973    return state.routes;
 974  }
 975  function getDashboardLink(state) {
 976    return state.dashboardLink;
 977  }
 978  
 979  // packages/boot/build-module/store/index.mjs
 980  var STORE_NAME = "wordpress/boot";
 981  var store = (0, import_data2.createReduxStore)(STORE_NAME, {
 982    reducer,
 983    actions: actions_exports,
 984    selectors: selectors_exports
 985  });
 986  (0, import_data2.register)(store);
 987  
 988  // packages/boot/build-module/components/site-hub/index.mjs
 989  var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
 990  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='78184fe2c5']")) {
 991    const style = document.createElement("style");
 992    style.setAttribute("data-wp-hash", "78184fe2c5");
 993    style.appendChild(document.createTextNode(".boot-site-hub{align-items:center;background-color:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);display:grid;flex-shrink:0;grid-template-columns:60px 1fr auto;padding-right:16px;position:sticky;top:0;z-index:1}.boot-site-hub__actions{flex-shrink:0}.boot-site-hub__title{align-items:center;display:flex;text-decoration:none}.boot-site-hub__title .components-external-link__contents{margin-inline-start:4px;max-width:140px;overflow:hidden;text-decoration:none}.boot-site-hub__title .components-external-link__icon{opacity:0;transition:opacity .1s ease-out}.boot-site-hub__title:hover .components-external-link__icon{opacity:1}@media not (prefers-reduced-motion){.boot-site-hub__title{transition:outline .1s ease-out}}.boot-site-hub__title:focus:not(:active){outline:var(--wpds-border-width-focus,2px) solid var(--wpds-color-stroke-focus-brand,#0073aa);outline-offset:calc(var(--wpds-border-width-focus, 2px)*-1)}.boot-site-hub__title-text{color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-size:13px;font-weight:499}.boot-site-hub__title-text,.boot-site-hub__url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boot-site-hub__url{color:var(--wpds-color-fg-content-neutral-weak,#757575);font-size:12px}"));
 994    document.head.appendChild(style);
 995  }
 996  function SiteHub() {
 997    const { dashboardLink, homeUrl, siteTitle } = (0, import_data3.useSelect)((select) => {
 998      const { getEntityRecord } = select(import_core_data2.store);
 999      const _base = getEntityRecord(
1000        "root",
1001        "__unstableBase"
1002      );
1003      return {
1004        dashboardLink: select(store).getDashboardLink(),
1005        homeUrl: _base?.home,
1006        siteTitle: !_base?.name && !!_base?.url ? (0, import_url.filterURLForDisplay)(_base?.url) : _base?.name
1007      };
1008    }, []);
1009    const { open: openCommandCenter } = (0, import_data3.useDispatch)(import_commands.store);
1010    return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "boot-site-hub", children: [
1011      /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1012        site_icon_link_default,
1013        {
1014          to: dashboardLink || "/",
1015          "aria-label": (0, import_i18n2.__)("Go to the Dashboard")
1016        }
1017      ),
1018      /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1019        import_components3.ExternalLink,
1020        {
1021          href: homeUrl ?? "/",
1022          className: "boot-site-hub__title",
1023          children: [
1024            /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "boot-site-hub__title-text", children: siteTitle && (0, import_html_entities.decodeEntities)(siteTitle) }),
1025            /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "boot-site-hub__url", children: (0, import_url.filterURLForDisplay)(homeUrl ?? "") })
1026          ]
1027        }
1028      ),
1029      /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_components3.__experimentalHStack, { className: "boot-site-hub__actions", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1030        import_components3.Button,
1031        {
1032          variant: "tertiary",
1033          icon: search_default,
1034          onClick: () => openCommandCenter(),
1035          size: "compact",
1036          label: (0, import_i18n2.__)("Open command palette"),
1037          shortcut: import_keycodes.displayShortcut.primary("k")
1038        }
1039      ) })
1040    ] });
1041  }
1042  var site_hub_default = SiteHub;
1043  
1044  // packages/boot/build-module/components/navigation/index.mjs
1045  var import_element7 = __toESM(require_element(), 1);
1046  var import_data6 = __toESM(require_data(), 1);
1047  
1048  // packages/boot/build-module/components/navigation/navigation-item/index.mjs
1049  var import_components6 = __toESM(require_components(), 1);
1050  
1051  // packages/boot/build-module/components/navigation/router-link-item.mjs
1052  var import_element4 = __toESM(require_element(), 1);
1053  var import_components4 = __toESM(require_components(), 1);
1054  import { privateApis as routePrivateApis2 } from "@wordpress/route";
1055  var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
1056  var { createLink } = unlock(routePrivateApis2);
1057  function AnchorOnlyItem(props, forwardedRef) {
1058    return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_components4.__experimentalItem, { as: "a", ref: forwardedRef, ...props });
1059  }
1060  var RouterLinkItem = createLink((0, import_element4.forwardRef)(AnchorOnlyItem));
1061  var router_link_item_default = RouterLinkItem;
1062  
1063  // packages/boot/build-module/components/navigation/items.mjs
1064  var import_element5 = __toESM(require_element(), 1);
1065  var import_components5 = __toESM(require_components(), 1);
1066  var import_primitives11 = __toESM(require_primitives(), 1);
1067  var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
1068  function isSvg(element) {
1069    return (0, import_element5.isValidElement)(element) && (element.type === import_primitives11.SVG || element.type === "svg");
1070  }
1071  function wrapIcon(icon, shouldShowPlaceholder = true) {
1072    if (isSvg(icon)) {
1073      return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_components5.Icon, { icon });
1074    }
1075    if (typeof icon === "string" && icon.startsWith("dashicons-")) {
1076      const iconKey = icon.replace(
1077        /^dashicons-/,
1078        ""
1079      );
1080      return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1081        import_components5.Dashicon,
1082        {
1083          style: { padding: "2px" },
1084          icon: iconKey,
1085          "aria-hidden": "true"
1086        }
1087      );
1088    }
1089    if (typeof icon === "string" && icon.startsWith("data:")) {
1090      return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1091        "img",
1092        {
1093          src: icon,
1094          alt: "",
1095          "aria-hidden": "true",
1096          style: {
1097            width: "20px",
1098            height: "20px",
1099            display: "block",
1100            padding: "2px"
1101          }
1102        }
1103      );
1104    }
1105    if (icon) {
1106      return icon;
1107    }
1108    if (shouldShowPlaceholder) {
1109      return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1110        "div",
1111        {
1112          style: { width: "24px", height: "24px" },
1113          "aria-hidden": "true"
1114        }
1115      );
1116    }
1117    return null;
1118  }
1119  
1120  // packages/boot/build-module/components/navigation/navigation-item/index.mjs
1121  var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
1122  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='ead8c8ad15']")) {
1123    const style = document.createElement("style");
1124    style.setAttribute("data-wp-hash", "ead8c8ad15");
1125    style.appendChild(document.createTextNode('.boot-navigation-item.components-item{align-items:center;border:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);display:flex;font-family:-apple-system,"system-ui",Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:400;line-height:20px;margin-block-end:4px;margin-inline:12px;min-height:32px;padding-block:0;padding-inline:4px;width:calc(100% - 24px)}.boot-dropdown-item__children .boot-navigation-item.components-item{min-height:24px}.boot-navigation-item.components-item{border-radius:var(--wpds-border-radius-sm,2px)}.boot-navigation-item.components-item.active,.boot-navigation-item.components-item:focus,.boot-navigation-item.components-item:hover,.boot-navigation-item.components-item[aria-current=true]{color:var(--wpds-color-fg-interactive-brand-active,#0073aa)}.boot-navigation-item.components-item.active{font-weight:499}.boot-navigation-item.components-item svg:last-child{padding:4px}.boot-navigation-item.components-item[aria-current=true]{color:var(--wpds-color-fg-interactive-brand-active,#0073aa);font-weight:499}.boot-navigation-item.components-item:focus-visible{transform:translateZ(0)}.boot-navigation-item.components-item.with-suffix{padding-right:16px}'));
1126    document.head.appendChild(style);
1127  }
1128  function NavigationItem({
1129    className,
1130    icon,
1131    shouldShowPlaceholder = true,
1132    children,
1133    to
1134  }) {
1135    const isExternal = !String(
1136      new URL(to, window.location.origin)
1137    ).startsWith(window.location.origin);
1138    const content = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_components6.__experimentalHStack, { justify: "flex-start", spacing: 2, style: { flexGrow: "1" }, children: [
1139      wrapIcon(icon, shouldShowPlaceholder),
1140      /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_components6.FlexBlock, { children })
1141    ] });
1142    if (isExternal) {
1143      return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1144        import_components6.__experimentalItem,
1145        {
1146          as: "a",
1147          href: to,
1148          className: clsx_default("boot-navigation-item", className),
1149          children: content
1150        }
1151      );
1152    }
1153    return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1154      router_link_item_default,
1155      {
1156        to,
1157        className: clsx_default("boot-navigation-item", className),
1158        children: content
1159      }
1160    );
1161  }
1162  
1163  // packages/boot/build-module/components/navigation/drilldown-item/index.mjs
1164  var import_components7 = __toESM(require_components(), 1);
1165  var import_i18n3 = __toESM(require_i18n(), 1);
1166  var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
1167  function DrilldownItem({
1168    className,
1169    id,
1170    icon,
1171    shouldShowPlaceholder = true,
1172    children,
1173    onNavigate
1174  }) {
1175    const handleClick = (e) => {
1176      e.preventDefault();
1177      onNavigate({ id, direction: "forward" });
1178    };
1179    return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1180      import_components7.__experimentalItem,
1181      {
1182        className: clsx_default("boot-navigation-item", className),
1183        onClick: handleClick,
1184        children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1185          import_components7.__experimentalHStack,
1186          {
1187            justify: "flex-start",
1188            spacing: 2,
1189            style: { flexGrow: "1" },
1190            children: [
1191              wrapIcon(icon, shouldShowPlaceholder),
1192              /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_components7.FlexBlock, { children }),
1193              /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_components7.Icon, { icon: (0, import_i18n3.isRTL)() ? chevron_left_small_default : chevron_right_small_default })
1194            ]
1195          }
1196        )
1197      }
1198    );
1199  }
1200  
1201  // packages/boot/build-module/components/navigation/dropdown-item/index.mjs
1202  var import_components8 = __toESM(require_components(), 1);
1203  var import_compose = __toESM(require_compose(), 1);
1204  var import_data4 = __toESM(require_data(), 1);
1205  var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
1206  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='58e2debd11']")) {
1207    const style = document.createElement("style");
1208    style.setAttribute("data-wp-hash", "58e2debd11");
1209    style.appendChild(document.createTextNode(".boot-dropdown-item__children{display:flex;flex-direction:column;margin-block-end:2px;margin-block-start:-2px;margin-inline-start:30px;overflow:hidden;padding:2px}.boot-dropdown-item__chevron.is-up{transform:rotate(180deg)}"));
1210    document.head.appendChild(style);
1211  }
1212  var ANIMATION_DURATION = 0.2;
1213  function DropdownItem({
1214    className,
1215    id,
1216    icon,
1217    children,
1218    isExpanded,
1219    onToggle
1220  }) {
1221    const menuItems = (0, import_data4.useSelect)(
1222      (select) => (
1223        // @ts-ignore
1224        select(STORE_NAME).getMenuItems()
1225      ),
1226      []
1227    );
1228    const items = menuItems.filter((item) => item.parent === id);
1229    const disableMotion = (0, import_compose.useReducedMotion)();
1230    return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "boot-dropdown-item", children: [
1231      /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1232        import_components8.__experimentalItem,
1233        {
1234          className: clsx_default("boot-navigation-item", className),
1235          onClick: (e) => {
1236            e.preventDefault();
1237            e.stopPropagation();
1238            onToggle();
1239          },
1240          onMouseDown: (e) => e.preventDefault(),
1241          children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1242            import_components8.__experimentalHStack,
1243            {
1244              justify: "flex-start",
1245              spacing: 2,
1246              style: { flexGrow: "1" },
1247              children: [
1248                wrapIcon(icon, false),
1249                /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.FlexBlock, { children }),
1250                /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1251                  import_components8.Icon,
1252                  {
1253                    icon: chevron_down_small_default,
1254                    className: clsx_default("boot-dropdown-item__chevron", {
1255                      "is-up": isExpanded
1256                    })
1257                  }
1258                )
1259              ]
1260            }
1261          )
1262        }
1263      ),
1264      /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.__unstableAnimatePresence, { initial: false, children: isExpanded && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1265        import_components8.__unstableMotion.div,
1266        {
1267          initial: { height: 0 },
1268          animate: { height: "auto" },
1269          exit: { height: 0 },
1270          transition: {
1271            type: "tween",
1272            duration: disableMotion ? 0 : ANIMATION_DURATION,
1273            ease: "easeOut"
1274          },
1275          className: "boot-dropdown-item__children",
1276          children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1277            NavigationItem,
1278            {
1279              to: item.to,
1280              shouldShowPlaceholder: false,
1281              children: item.label
1282            },
1283            index
1284          ))
1285        }
1286      ) })
1287    ] });
1288  }
1289  
1290  // packages/boot/build-module/components/navigation/navigation-screen/index.mjs
1291  var import_components9 = __toESM(require_components(), 1);
1292  var import_i18n4 = __toESM(require_i18n(), 1);
1293  var import_compose2 = __toESM(require_compose(), 1);
1294  var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
1295  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='c52b1efb2f']")) {
1296    const style = document.createElement("style");
1297    style.setAttribute("data-wp-hash", "c52b1efb2f");
1298    style.appendChild(document.createTextNode(".boot-navigation-screen{padding-block-end:4px}.boot-navigation-screen .components-text{color:var(--wpds-color-fg-content-neutral,#1e1e1e)}.boot-navigation-screen__title-icon{padding:12px 16px 8px;position:sticky;top:0}.boot-navigation-screen__title{flex-grow:1;overflow-wrap:break-word}.boot-navigation-screen__title.boot-navigation-screen__title,.boot-navigation-screen__title.boot-navigation-screen__title .boot-navigation-screen__title{color:var(--wpds-color-fg-content-neutral,#1e1e1e);line-height:32px}.boot-navigation-screen__actions{display:flex;flex-shrink:0}"));
1299    document.head.appendChild(style);
1300  }
1301  var ANIMATION_DURATION2 = 0.3;
1302  var slideVariants = {
1303    initial: (direction) => ({
1304      x: direction === "forward" ? 100 : -100,
1305      opacity: 0
1306    }),
1307    animate: {
1308      x: 0,
1309      opacity: 1
1310    },
1311    exit: (direction) => ({
1312      x: direction === "forward" ? 100 : -100,
1313      opacity: 0
1314    })
1315  };
1316  function NavigationScreen({
1317    isRoot,
1318    title,
1319    actions,
1320    content,
1321    description,
1322    animationDirection,
1323    backMenuItem,
1324    backButtonRef,
1325    navigationKey,
1326    onNavigate
1327  }) {
1328    const icon = (0, import_i18n4.isRTL)() ? chevron_right_default : chevron_left_default;
1329    const disableMotion = (0, import_compose2.useReducedMotion)();
1330    const handleBackClick = (e) => {
1331      e.preventDefault();
1332      onNavigate({ id: backMenuItem, direction: "backward" });
1333    };
1334    return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1335      "div",
1336      {
1337        className: "boot-navigation-screen",
1338        style: {
1339          overflow: "hidden",
1340          position: "relative",
1341          display: "grid",
1342          gridTemplateColumns: "1fr",
1343          gridTemplateRows: "1fr"
1344        },
1345        children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_components9.__unstableAnimatePresence, { initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1346          import_components9.__unstableMotion.div,
1347          {
1348            custom: animationDirection,
1349            variants: slideVariants,
1350            initial: "initial",
1351            animate: "animate",
1352            exit: "exit",
1353            transition: {
1354              type: "tween",
1355              duration: disableMotion ? 0 : ANIMATION_DURATION2,
1356              ease: [0.33, 0, 0, 1]
1357            },
1358            style: {
1359              width: "100%",
1360              gridColumn: "1",
1361              gridRow: "1"
1362            },
1363            children: [
1364              /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1365                import_components9.__experimentalHStack,
1366                {
1367                  spacing: 2,
1368                  className: "boot-navigation-screen__title-icon",
1369                  children: [
1370                    !isRoot && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1371                      import_components9.Button,
1372                      {
1373                        ref: backButtonRef,
1374                        icon,
1375                        onClick: handleBackClick,
1376                        label: (0, import_i18n4.__)("Back"),
1377                        size: "small",
1378                        variant: "tertiary"
1379                      }
1380                    ),
1381                    /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1382                      import_components9.__experimentalHeading,
1383                      {
1384                        className: "boot-navigation-screen__title",
1385                        level: 1,
1386                        size: "15px",
1387                        children: title
1388                      }
1389                    ),
1390                    actions && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "boot-navigation-screen__actions", children: actions })
1391                  ]
1392                }
1393              ),
1394              description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "boot-navigation-screen__description", children: description }),
1395              content
1396            ]
1397          },
1398          navigationKey
1399        ) })
1400      }
1401    );
1402  }
1403  
1404  // packages/boot/build-module/components/navigation/use-sidebar-parent.mjs
1405  var import_element6 = __toESM(require_element(), 1);
1406  var import_data5 = __toESM(require_data(), 1);
1407  import { privateApis as routePrivateApis3 } from "@wordpress/route";
1408  
1409  // packages/boot/build-module/components/navigation/path-matching.mjs
1410  var isValidParentPath = (currentPath, menuPath) => {
1411    if (!menuPath || menuPath === currentPath) {
1412      return false;
1413    }
1414    const normalizePath = (path) => {
1415      const normalized = path.startsWith("/") ? path : "/" + path;
1416      return normalized.endsWith("/") && normalized.length > 1 ? normalized.slice(0, -1) : normalized;
1417    };
1418    const normalizedCurrent = normalizePath(currentPath);
1419    const normalizedMenu = normalizePath(menuPath);
1420    return normalizedCurrent.startsWith(normalizedMenu) && (normalizedCurrent[normalizedMenu.length] === "/" || normalizedMenu === "/");
1421  };
1422  var findClosestMenuItem = (currentPath, menuItems) => {
1423    const exactMatch = menuItems.find((item) => item.to === currentPath);
1424    if (exactMatch) {
1425      return exactMatch;
1426    }
1427    let bestMatch = null;
1428    let bestPathLength = 0;
1429    for (const item of menuItems) {
1430      if (!item.to) {
1431        continue;
1432      }
1433      if (isValidParentPath(currentPath, item.to)) {
1434        if (item.to.length > bestPathLength) {
1435          bestMatch = item;
1436          bestPathLength = item.to.length;
1437        }
1438      }
1439    }
1440    return bestMatch;
1441  };
1442  var findDrilldownParent = (id, menuItems) => {
1443    if (!id) {
1444      return void 0;
1445    }
1446    const currentItem = menuItems.find((item) => item.id === id);
1447    if (!currentItem) {
1448      return void 0;
1449    }
1450    if (currentItem.parent) {
1451      const parentItem = menuItems.find(
1452        (item) => item.id === currentItem.parent
1453      );
1454      if (parentItem?.parent_type === "drilldown") {
1455        return parentItem.id;
1456      }
1457      if (parentItem) {
1458        return findDrilldownParent(parentItem.id, menuItems);
1459      }
1460    }
1461    return void 0;
1462  };
1463  var findDropdownParent = (id, menuItems) => {
1464    if (!id) {
1465      return void 0;
1466    }
1467    const currentItem = menuItems.find((item) => item.id === id);
1468    if (!currentItem) {
1469      return void 0;
1470    }
1471    if (currentItem.parent) {
1472      const parentItem = menuItems.find(
1473        (item) => item.id === currentItem.parent
1474      );
1475      if (parentItem?.parent_type === "dropdown") {
1476        return parentItem.id;
1477      }
1478    }
1479    return void 0;
1480  };
1481  
1482  // packages/boot/build-module/components/navigation/use-sidebar-parent.mjs
1483  var { useRouter: useRouter2, useMatches } = unlock(routePrivateApis3);
1484  function useSidebarParent() {
1485    const matches = useMatches();
1486    const router = useRouter2();
1487    const menuItems = (0, import_data5.useSelect)(
1488      (select) => (
1489        // @ts-ignore
1490        select(STORE_NAME).getMenuItems()
1491      ),
1492      []
1493    );
1494    const currentPath = matches[matches.length - 1].pathname.slice(
1495      router.options.basepath?.length ?? 0
1496    );
1497    const currentMenuItem = findClosestMenuItem(currentPath, menuItems);
1498    const [parentId, setParentId] = (0, import_element6.useState)(
1499      findDrilldownParent(currentMenuItem?.id, menuItems)
1500    );
1501    const [parentDropdownId, setParentDropdownId] = (0, import_element6.useState)(findDropdownParent(currentMenuItem?.id, menuItems));
1502    (0, import_element6.useEffect)(() => {
1503      const matchedMenuItem = findClosestMenuItem(currentPath, menuItems);
1504      const updatedParentId = findDrilldownParent(
1505        matchedMenuItem?.id,
1506        menuItems
1507      );
1508      const updatedDropdownParent = findDropdownParent(
1509        matchedMenuItem?.id,
1510        menuItems
1511      );
1512      setParentId(updatedParentId);
1513      setParentDropdownId(updatedDropdownParent);
1514    }, [currentPath, menuItems]);
1515    return [
1516      parentId,
1517      setParentId,
1518      parentDropdownId,
1519      setParentDropdownId
1520    ];
1521  }
1522  
1523  // packages/boot/build-module/components/navigation/index.mjs
1524  var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
1525  function Navigation() {
1526    const backButtonRef = (0, import_element7.useRef)(null);
1527    const [animationDirection, setAnimationDirection] = (0, import_element7.useState)(null);
1528    const [parentId, setParentId, parentDropdownId, setParentDropdownId] = useSidebarParent();
1529    const menuItems = (0, import_data6.useSelect)(
1530      (select) => (
1531        // @ts-ignore
1532        select(STORE_NAME).getMenuItems()
1533      ),
1534      []
1535    );
1536    const parent = (0, import_element7.useMemo)(
1537      () => menuItems.find((item) => item.id === parentId),
1538      [menuItems, parentId]
1539    );
1540    const navigationKey = parent ? `drilldown-$parent.id}` : "root";
1541    const handleNavigate = ({
1542      id,
1543      direction
1544    }) => {
1545      setAnimationDirection(direction);
1546      setParentId(id);
1547    };
1548    const handleDropdownToggle = (dropdownId) => {
1549      setParentDropdownId(
1550        parentDropdownId === dropdownId ? void 0 : dropdownId
1551      );
1552    };
1553    const items = (0, import_element7.useMemo)(
1554      () => menuItems.filter((item) => item.parent === parentId),
1555      [menuItems, parentId]
1556    );
1557    const hasRealIcons = items.some((item) => !!item.icon);
1558    return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1559      NavigationScreen,
1560      {
1561        isRoot: !parent,
1562        title: parent ? parent.label : "",
1563        backMenuItem: parent?.parent,
1564        backButtonRef,
1565        animationDirection: animationDirection || void 0,
1566        navigationKey,
1567        onNavigate: handleNavigate,
1568        content: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: items.map((item) => {
1569          if (item.parent_type === "dropdown") {
1570            return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1571              DropdownItem,
1572              {
1573                id: item.id,
1574                className: "boot-navigation-item",
1575                icon: item.icon,
1576                shouldShowPlaceholder: hasRealIcons,
1577                isExpanded: parentDropdownId === item.id,
1578                onToggle: () => handleDropdownToggle(item.id),
1579                children: item.label
1580              },
1581              item.id
1582            );
1583          }
1584          if (item.parent_type === "drilldown") {
1585            return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1586              DrilldownItem,
1587              {
1588                id: item.id,
1589                icon: item.icon,
1590                shouldShowPlaceholder: hasRealIcons,
1591                onNavigate: handleNavigate,
1592                children: item.label
1593              },
1594              item.id
1595            );
1596          }
1597          return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1598            NavigationItem,
1599            {
1600              to: item.to,
1601              icon: item.icon,
1602              shouldShowPlaceholder: hasRealIcons,
1603              children: item.label
1604            },
1605            item.id
1606          );
1607        }) })
1608      }
1609    );
1610  }
1611  var navigation_default = Navigation;
1612  
1613  // packages/boot/build-module/components/save-button/index.mjs
1614  var import_element9 = __toESM(require_element(), 1);
1615  var import_data8 = __toESM(require_data(), 1);
1616  var import_i18n6 = __toESM(require_i18n(), 1);
1617  var import_core_data4 = __toESM(require_core_data(), 1);
1618  var import_keycodes2 = __toESM(require_keycodes(), 1);
1619  var import_editor2 = __toESM(require_editor(), 1);
1620  var import_components10 = __toESM(require_components(), 1);
1621  
1622  // packages/boot/build-module/components/save-panel/use-save-shortcut.mjs
1623  var import_element8 = __toESM(require_element(), 1);
1624  var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
1625  var import_i18n5 = __toESM(require_i18n(), 1);
1626  var import_data7 = __toESM(require_data(), 1);
1627  var import_core_data3 = __toESM(require_core_data(), 1);
1628  var import_editor = __toESM(require_editor(), 1);
1629  var shortcutName = "core/boot/save";
1630  function useSaveShortcut({
1631    openSavePanel
1632  }) {
1633    const { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } = (0, import_data7.useSelect)(import_core_data3.store);
1634    const { hasNonPostEntityChanges, isPostSavingLocked } = (0, import_data7.useSelect)(import_editor.store);
1635    const { savePost } = (0, import_data7.useDispatch)(import_editor.store);
1636    const { registerShortcut, unregisterShortcut } = (0, import_data7.useDispatch)(
1637      import_keyboard_shortcuts.store
1638    );
1639    (0, import_element8.useEffect)(() => {
1640      registerShortcut({
1641        name: shortcutName,
1642        category: "global",
1643        description: (0, import_i18n5.__)("Save your changes."),
1644        keyCombination: {
1645          modifier: "primary",
1646          character: "s"
1647        }
1648      });
1649      return () => {
1650        unregisterShortcut(shortcutName);
1651      };
1652    }, [registerShortcut, unregisterShortcut]);
1653    (0, import_keyboard_shortcuts.useShortcut)(shortcutName, (event) => {
1654      event.preventDefault();
1655      const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
1656      const hasDirtyEntities = !!dirtyEntityRecords.length;
1657      const isSaving = dirtyEntityRecords.some(
1658        (record) => isSavingEntityRecord(record.kind, record.name, record.key)
1659      );
1660      if (!hasDirtyEntities || isSaving) {
1661        return;
1662      }
1663      if (hasNonPostEntityChanges()) {
1664        openSavePanel();
1665      } else if (!isPostSavingLocked()) {
1666        savePost();
1667      }
1668    });
1669  }
1670  
1671  // packages/boot/build-module/components/save-button/index.mjs
1672  var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
1673  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='a012fe845a']")) {
1674    const style = document.createElement("style");
1675    style.setAttribute("data-wp-hash", "a012fe845a");
1676    style.appendChild(document.createTextNode(".boot-save-button{width:100%}"));
1677    document.head.appendChild(style);
1678  }
1679  function SaveButton() {
1680    const [isSaveViewOpen, setIsSaveViewOpened] = (0, import_element9.useState)(false);
1681    const { isSaving, dirtyEntityRecordsCount } = (0, import_data8.useSelect)((select) => {
1682      const { isSavingEntityRecord, __experimentalGetDirtyEntityRecords } = select(import_core_data4.store);
1683      const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
1684      return {
1685        isSaving: dirtyEntityRecords.some(
1686          (record) => isSavingEntityRecord(record.kind, record.name, record.key)
1687        ),
1688        dirtyEntityRecordsCount: dirtyEntityRecords.length
1689      };
1690    }, []);
1691    const [showSavedState, setShowSavedState] = (0, import_element9.useState)(false);
1692    (0, import_element9.useEffect)(() => {
1693      if (isSaving) {
1694        setShowSavedState(true);
1695      }
1696    }, [isSaving]);
1697    const hasChanges = dirtyEntityRecordsCount > 0;
1698    (0, import_element9.useEffect)(() => {
1699      if (!isSaving && hasChanges) {
1700        setShowSavedState(false);
1701      }
1702    }, [isSaving, hasChanges]);
1703    function hideSavedState() {
1704      if (showSavedState) {
1705        setShowSavedState(false);
1706      }
1707    }
1708    const shouldShowButton = hasChanges || showSavedState;
1709    useSaveShortcut({ openSavePanel: () => setIsSaveViewOpened(true) });
1710    if (!shouldShowButton) {
1711      return null;
1712    }
1713    const isInSavedState = showSavedState && !hasChanges;
1714    const disabled = isSaving || isInSavedState;
1715    const getLabel = () => {
1716      if (isInSavedState) {
1717        return (0, import_i18n6.__)("Saved");
1718      }
1719      return (0, import_i18n6.sprintf)(
1720        // translators: %d: number of unsaved changes (number).
1721        (0, import_i18n6._n)(
1722          "Review %d change\u2026",
1723          "Review %d changes\u2026",
1724          dirtyEntityRecordsCount
1725        ),
1726        dirtyEntityRecordsCount
1727      );
1728    };
1729    const label = getLabel();
1730    return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
1731      /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1732        import_components10.Tooltip,
1733        {
1734          text: hasChanges ? label : void 0,
1735          shortcut: import_keycodes2.displayShortcut.primary("s"),
1736          children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1737            import_components10.Button,
1738            {
1739              variant: "primary",
1740              size: "compact",
1741              onClick: () => setIsSaveViewOpened(true),
1742              onBlur: hideSavedState,
1743              disabled,
1744              accessibleWhenDisabled: true,
1745              isBusy: isSaving,
1746              "aria-keyshortcuts": import_keycodes2.rawShortcut.primary("s"),
1747              className: "boot-save-button",
1748              icon: isInSavedState ? check_default : void 0,
1749              children: label
1750            }
1751          )
1752        }
1753      ),
1754      isSaveViewOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1755        import_components10.Modal,
1756        {
1757          title: (0, import_i18n6.__)("Review changes"),
1758          onRequestClose: () => setIsSaveViewOpened(false),
1759          size: "small",
1760          children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1761            import_editor2.EntitiesSavedStates,
1762            {
1763              close: () => setIsSaveViewOpened(false),
1764              variant: "inline"
1765            }
1766          )
1767        }
1768      )
1769    ] });
1770  }
1771  
1772  // packages/boot/build-module/components/sidebar/index.mjs
1773  var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
1774  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='e5d2041211']")) {
1775    const style = document.createElement("style");
1776    style.setAttribute("data-wp-hash", "e5d2041211");
1777    style.appendChild(document.createTextNode(".boot-sidebar__scrollable{display:flex;flex-direction:column;height:100%;overflow:auto;position:relative}.boot-sidebar__content{contain:content;flex-grow:1;position:relative}.boot-sidebar__footer{padding:16px 8px 8px 16px}"));
1778    document.head.appendChild(style);
1779  }
1780  function Sidebar() {
1781    return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "boot-sidebar__scrollable", children: [
1782      /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(site_hub_default, {}),
1783      /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "boot-sidebar__content", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(navigation_default, {}) }),
1784      /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "boot-sidebar__footer", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SaveButton, {}) })
1785    ] });
1786  }
1787  
1788  // packages/boot/build-module/components/save-panel/index.mjs
1789  var import_element10 = __toESM(require_element(), 1);
1790  var import_components11 = __toESM(require_components(), 1);
1791  var import_editor3 = __toESM(require_editor(), 1);
1792  var import_i18n7 = __toESM(require_i18n(), 1);
1793  var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
1794  function SavePanel() {
1795    const [isOpen, setIsOpen] = (0, import_element10.useState)(false);
1796    useSaveShortcut({
1797      openSavePanel: () => setIsOpen(true)
1798    });
1799    if (!isOpen) {
1800      return false;
1801    }
1802    return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1803      import_components11.Modal,
1804      {
1805        className: "edit-site-save-panel__modal",
1806        onRequestClose: () => setIsOpen(false),
1807        title: (0, import_i18n7.__)("Review changes"),
1808        size: "small",
1809        children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1810          import_editor3.EntitiesSavedStates,
1811          {
1812            close: () => setIsOpen(false),
1813            variant: "inline"
1814          }
1815        )
1816      }
1817    );
1818  }
1819  
1820  // packages/boot/build-module/components/canvas-renderer/index.mjs
1821  var import_element12 = __toESM(require_element(), 1);
1822  
1823  // packages/boot/build-module/components/canvas/index.mjs
1824  var import_element11 = __toESM(require_element(), 1);
1825  var import_components13 = __toESM(require_components(), 1);
1826  import { useNavigate } from "@wordpress/route";
1827  
1828  // packages/boot/build-module/components/canvas/back-button.mjs
1829  var import_components12 = __toESM(require_components(), 1);
1830  var import_compose3 = __toESM(require_compose(), 1);
1831  var import_i18n8 = __toESM(require_i18n(), 1);
1832  var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
1833  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='68d99fe376']")) {
1834    const style = document.createElement("style");
1835    style.setAttribute("data-wp-hash", "68d99fe376");
1836    style.appendChild(document.createTextNode(".boot-canvas-back-button{height:64px;left:0;position:absolute;top:0;width:64px;z-index:100}.boot-canvas-back-button__container{height:100%;position:relative;width:100%}.boot-canvas-back-button__link.components-button{align-items:center;background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);border-radius:0;display:inline-flex;height:64px;justify-content:center;padding:0;text-decoration:none;width:64px}@media not (prefers-reduced-motion){.boot-canvas-back-button__link.components-button{transition:outline .1s ease-out}}.boot-canvas-back-button__link.components-button:focus:not(:active){outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline-offset:calc(var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px))*-1)}.boot-canvas-back-button__icon{align-items:center;background-color:#ccc;display:flex;height:64px;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:64px}.boot-canvas-back-button__icon svg{fill:currentColor}.boot-canvas-back-button__icon.has-site-icon{-webkit-backdrop-filter:saturate(180%) blur(15px);backdrop-filter:saturate(180%) blur(15px);background-color:#fff9}.interface-interface-skeleton__header{margin-top:0!important}"));
1837    document.head.appendChild(style);
1838  }
1839  var toggleHomeIconVariants = {
1840    edit: {
1841      opacity: 0,
1842      scale: 0.2
1843    },
1844    hover: {
1845      opacity: 1,
1846      scale: 1,
1847      clipPath: "inset( 22% round 2px )"
1848    }
1849  };
1850  function BootBackButton({ length }) {
1851    const disableMotion = (0, import_compose3.useReducedMotion)();
1852    const handleBack = () => {
1853      window.history.back();
1854    };
1855    if (length > 1) {
1856      return null;
1857    }
1858    const transition = {
1859      duration: disableMotion ? 0 : 0.3
1860    };
1861    return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
1862      import_components12.__unstableMotion.div,
1863      {
1864        className: "boot-canvas-back-button",
1865        animate: "edit",
1866        initial: "edit",
1867        whileHover: "hover",
1868        whileTap: "tap",
1869        transition,
1870        children: [
1871          /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1872            import_components12.Button,
1873            {
1874              className: "boot-canvas-back-button__link",
1875              onClick: handleBack,
1876              "aria-label": (0, import_i18n8.__)("Go back"),
1877              __next40pxDefaultSize: true,
1878              children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(site_icon_default, {})
1879            }
1880          ),
1881          /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1882            import_components12.__unstableMotion.div,
1883            {
1884              className: "boot-canvas-back-button__icon",
1885              variants: toggleHomeIconVariants,
1886              children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_components12.Icon, { icon: arrow_up_left_default })
1887            }
1888          )
1889        ]
1890      }
1891    );
1892  }
1893  
1894  // packages/boot/build-module/components/canvas/index.mjs
1895  var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
1896  function Canvas({ canvas }) {
1897    const [Editor, setEditor] = (0, import_element11.useState)(null);
1898    const navigate = useNavigate();
1899    (0, import_element11.useEffect)(() => {
1900      import("@wordpress/lazy-editor").then((module) => {
1901        setEditor(() => module.Editor);
1902      }).catch((error) => {
1903        console.error("Failed to load lazy editor:", error);
1904      });
1905    }, []);
1906    if (!Editor) {
1907      return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1908        "div",
1909        {
1910          style: {
1911            display: "flex",
1912            justifyContent: "center",
1913            alignItems: "center",
1914            height: "100%",
1915            padding: "2rem"
1916          },
1917          children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components13.Spinner, {})
1918        }
1919      );
1920    }
1921    const backButton = !canvas.isPreview ? ({ length }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(BootBackButton, { length }) : void 0;
1922    return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: { height: "100%", position: "relative" }, children: [
1923      /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1924        "div",
1925        {
1926          style: { height: "100%" },
1927          inert: canvas.isPreview ? "true" : void 0,
1928          children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1929            Editor,
1930            {
1931              postType: canvas.postType,
1932              postId: canvas.postId,
1933              settings: { isPreviewMode: canvas.isPreview },
1934              backButton
1935            }
1936          )
1937        }
1938      ),
1939      canvas.isPreview && canvas.editLink && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1940        "div",
1941        {
1942          onClick: () => navigate({ to: canvas.editLink }),
1943          onKeyDown: (e) => {
1944            if (e.key === "Enter" || e.key === " ") {
1945              e.preventDefault();
1946              navigate({ to: canvas.editLink });
1947            }
1948          },
1949          style: {
1950            position: "absolute",
1951            inset: 0,
1952            cursor: "pointer",
1953            zIndex: 1
1954          },
1955          role: "button",
1956          tabIndex: 0,
1957          "aria-label": "Click to edit"
1958        }
1959      )
1960    ] });
1961  }
1962  
1963  // packages/boot/build-module/components/canvas-renderer/index.mjs
1964  var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
1965  function CanvasRenderer({
1966    canvas,
1967    routeContentModule
1968  }) {
1969    const [CustomCanvas, setCustomCanvas] = (0, import_element12.useState)(null);
1970    (0, import_element12.useEffect)(() => {
1971      if (canvas === null && routeContentModule) {
1972        import(routeContentModule).then((module) => {
1973          setCustomCanvas(() => module.canvas);
1974        }).catch((error) => {
1975          console.error("Failed to load custom canvas:", error);
1976        });
1977      } else {
1978        setCustomCanvas(null);
1979      }
1980    }, [canvas, routeContentModule]);
1981    if (canvas === void 0) {
1982      return null;
1983    }
1984    if (canvas === null) {
1985      if (!CustomCanvas) {
1986        return null;
1987      }
1988      return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomCanvas, {});
1989    }
1990    return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Canvas, { canvas });
1991  }
1992  
1993  // packages/boot/build-module/components/app/use-route-title.mjs
1994  var import_element13 = __toESM(require_element(), 1);
1995  var import_data9 = __toESM(require_data(), 1);
1996  var import_core_data5 = __toESM(require_core_data(), 1);
1997  var import_i18n9 = __toESM(require_i18n(), 1);
1998  var import_html_entities2 = __toESM(require_html_entities(), 1);
1999  import { speak } from "@wordpress/a11y";
2000  import { privateApis as routePrivateApis4 } from "@wordpress/route";
2001  var { useLocation, useMatches: useMatches2 } = unlock(routePrivateApis4);
2002  function useRouteTitle() {
2003    const location = useLocation();
2004    const matches = useMatches2();
2005    const currentMatch = matches[matches.length - 1];
2006    const routeTitle = currentMatch?.loaderData?.title;
2007    const siteTitle = (0, import_data9.useSelect)(
2008      (select) => select(import_core_data5.store).getEntityRecord(
2009        "root",
2010        "__unstableBase"
2011      )?.name,
2012      []
2013    );
2014    const isInitialLocationRef = (0, import_element13.useRef)(true);
2015    (0, import_element13.useEffect)(() => {
2016      isInitialLocationRef.current = false;
2017    }, [location]);
2018    (0, import_element13.useEffect)(() => {
2019      if (isInitialLocationRef.current) {
2020        return;
2021      }
2022      if (routeTitle && typeof routeTitle === "string" && siteTitle && typeof siteTitle === "string") {
2023        const decodedRouteTitle = (0, import_html_entities2.decodeEntities)(routeTitle);
2024        const decodedSiteTitle = (0, import_html_entities2.decodeEntities)(siteTitle);
2025        const formattedTitle = (0, import_i18n9.sprintf)(
2026          /* translators: Admin document title. 1: Admin screen name, 2: Site name. */
2027          (0, import_i18n9.__)("%1$s \u2039 %2$s \u2014 WordPress"),
2028          decodedRouteTitle,
2029          decodedSiteTitle
2030        );
2031        document.title = formattedTitle;
2032        if (decodedRouteTitle) {
2033          speak(decodedRouteTitle, "assertive");
2034        }
2035      }
2036    }, [routeTitle, siteTitle, location]);
2037  }
2038  
2039  // packages/boot/build-module/components/user-theme-provider/index.mjs
2040  var import_theme = __toESM(require_theme(), 1);
2041  var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
2042  var ThemeProvider = unlock(import_theme.privateApis).ThemeProvider;
2043  var THEME_PRIMARY_COLORS = /* @__PURE__ */ new Map([
2044    ["light", "#0085ba"],
2045    ["modern", "#3858e9"],
2046    ["blue", "#096484"],
2047    ["coffee", "#46403c"],
2048    ["ectoplasm", "#523f6d"],
2049    ["midnight", "#e14d43"],
2050    ["ocean", "#627c83"],
2051    ["sunrise", "#dd823b"]
2052  ]);
2053  function getAdminThemePrimaryColor() {
2054    const theme = document.body.className.match(/admin-color-([a-z]+)/)?.[1];
2055    return theme && THEME_PRIMARY_COLORS.get(theme);
2056  }
2057  function UserThemeProvider({
2058    color,
2059    ...restProps
2060  }) {
2061    const primary = getAdminThemePrimaryColor();
2062    return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ThemeProvider, { ...restProps, color: { primary, ...color } });
2063  }
2064  
2065  // packages/boot/build-module/components/root/index.mjs
2066  var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
2067  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='d1ebf43fe1']")) {
2068    const style = document.createElement("style");
2069    style.setAttribute("data-wp-hash", "d1ebf43fe1");
2070    style.appendChild(document.createTextNode(".boot-layout{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);color:var(--wpds-color-fg-content-neutral,#1e1e1e);display:flex;flex-direction:row;height:100%;isolation:isolate;width:100%}.boot-layout__sidebar-backdrop{background-color:#00000080;bottom:0;cursor:pointer;left:0;position:fixed;right:0;top:0;z-index:100002}.boot-layout__sidebar{flex-shrink:0;height:100%;overflow:hidden;position:relative;width:240px}.boot-layout__sidebar.is-mobile{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);bottom:0;box-shadow:2px 0 8px #0003;inset-inline-start:0;max-width:85vw;position:fixed;top:0;width:300px;z-index:100003}.boot-layout__mobile-sidebar-drawer{left:0;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout__mobile-sidebar-drawer{top:46px}.boot-layout__mobile-sidebar-drawer{align-items:center;background:var(--wpds-color-bg-surface-neutral,#fff);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);display:flex;justify-content:flex-start;padding:16px;z-index:3}.boot-layout__canvas.has-mobile-drawer{padding-top:65px;position:relative}.boot-layout__surfaces{display:flex;flex-grow:1;gap:8px;margin:0}@media (min-width:782px){.boot-layout__surfaces{margin:8px}.boot-layout--single-page .boot-layout__surfaces{margin-top:0;margin-inline-start:0}}.boot-layout__inspector,.boot-layout__stage{background:var(--wpds-color-bg-surface-neutral,#fff);border-radius:0;bottom:0;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw}.boot-layout--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__inspector,.boot-layout__stage{border-radius:8px;height:auto;margin:0;position:static;width:auto}.boot-layout--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height:auto}}.boot-layout__stage{z-index:2}@media (min-width:782px){.boot-layout__stage{z-index:auto}}.boot-layout__inspector{z-index:3}@media (min-width:782px){.boot-layout__inspector{z-index:auto}}.boot-layout__canvas{background:var(--wpds-color-bg-surface-neutral,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);border-radius:0;bottom:0;box-shadow:0 1px 3px #0000001a;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw;z-index:1}.boot-layout--single-page .boot-layout__canvas{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__canvas{border-radius:8px;height:auto;position:static;width:auto;z-index:auto}.boot-layout--single-page .boot-layout__canvas{height:auto}.boot-layout.has-canvas .boot-layout__stage,.boot-layout__inspector{max-width:400px}}.boot-layout__canvas .interface-interface-skeleton{height:100%;left:0!important;position:relative;top:0!important}.boot-layout.has-full-canvas .boot-layout__surfaces{gap:0;margin:0}.boot-layout.has-full-canvas .boot-layout__inspector,.boot-layout.has-full-canvas .boot-layout__stage{display:none}.boot-layout.has-full-canvas .boot-layout__canvas{border:none;border-radius:0;bottom:0;box-shadow:none;left:0;margin:0;max-width:none;overflow:hidden;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:46px}@media (min-width:782px){.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:32px}}"));
2071    document.head.appendChild(style);
2072  }
2073  var { useLocation: useLocation2, useMatches: useMatches3, Outlet } = unlock(routePrivateApis5);
2074  function Root() {
2075    const matches = useMatches3();
2076    const location = useLocation2();
2077    const currentMatch = matches[matches.length - 1];
2078    const canvas = currentMatch?.loaderData?.canvas;
2079    const routeContentModule = currentMatch?.loaderData?.routeContentModule;
2080    const isFullScreen = canvas && !canvas.isPreview;
2081    useRouteTitle();
2082    const isMobileViewport = (0, import_compose4.useViewportMatch)("medium", "<");
2083    const [isMobileSidebarOpen, setIsMobileSidebarOpen] = (0, import_element14.useState)(false);
2084    const disableMotion = (0, import_compose4.useReducedMotion)();
2085    (0, import_element14.useEffect)(() => {
2086      setIsMobileSidebarOpen(false);
2087    }, [location.pathname, isMobileViewport]);
2088    return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components14.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(UserThemeProvider, { isRoot: true, color: { bg: "#f8f8f8" }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(UserThemeProvider, { color: { bg: "#1d2327" }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2089      "div",
2090      {
2091        className: clsx_default("boot-layout", {
2092          "has-canvas": !!canvas || canvas === null,
2093          "has-full-canvas": isFullScreen
2094        }),
2095        children: [
2096          /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SavePanel, {}),
2097          /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_notices.SnackbarNotices, { className: "boot-notices__snackbar" }),
2098          isMobileViewport && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(page_default.SidebarToggleFill, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2099            import_components14.Button,
2100            {
2101              icon: menu_default,
2102              onClick: () => setIsMobileSidebarOpen(true),
2103              label: (0, import_i18n10.__)("Open navigation panel"),
2104              size: "compact"
2105            }
2106          ) }),
2107          /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components14.__unstableAnimatePresence, { children: isMobileViewport && isMobileSidebarOpen && !isFullScreen && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2108            import_components14.__unstableMotion.div,
2109            {
2110              initial: { opacity: 0 },
2111              animate: { opacity: 1 },
2112              exit: { opacity: 0 },
2113              transition: {
2114                type: "tween",
2115                duration: disableMotion ? 0 : 0.2,
2116                ease: "easeOut"
2117              },
2118              className: "boot-layout__sidebar-backdrop",
2119              onClick: () => setIsMobileSidebarOpen(false),
2120              onKeyDown: (event) => {
2121                if (event.key === "Escape") {
2122                  setIsMobileSidebarOpen(false);
2123                }
2124              },
2125              role: "button",
2126              tabIndex: -1,
2127              "aria-label": (0, import_i18n10.__)(
2128                "Close navigation panel"
2129              )
2130            }
2131          ) }),
2132          /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components14.__unstableAnimatePresence, { children: isMobileViewport && isMobileSidebarOpen && !isFullScreen && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2133            import_components14.__unstableMotion.div,
2134            {
2135              initial: { x: "-100%" },
2136              animate: { x: 0 },
2137              exit: { x: "-100%" },
2138              transition: {
2139                type: "tween",
2140                duration: disableMotion ? 0 : 0.2,
2141                ease: "easeOut"
2142              },
2143              className: "boot-layout__sidebar is-mobile",
2144              children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Sidebar, {})
2145            }
2146          ) }),
2147          !isMobileViewport && !isFullScreen && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "boot-layout__sidebar", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Sidebar, {}) }),
2148          /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "boot-layout__surfaces", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(UserThemeProvider, { color: { bg: "#ffffff" }, children: [
2149            /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Outlet, {}),
2150            (canvas || canvas === null) && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2151              "div",
2152              {
2153                className: clsx_default(
2154                  "boot-layout__canvas",
2155                  {
2156                    "has-mobile-drawer": canvas?.isPreview && isMobileViewport
2157                  }
2158                ),
2159                children: [
2160                  canvas?.isPreview && isMobileViewport && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "boot-layout__mobile-sidebar-drawer", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2161                    import_components14.Button,
2162                    {
2163                      icon: menu_default,
2164                      onClick: () => setIsMobileSidebarOpen(
2165                        true
2166                      ),
2167                      label: (0, import_i18n10.__)(
2168                        "Open navigation panel"
2169                      ),
2170                      size: "compact"
2171                    }
2172                  ) }),
2173                  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2174                    CanvasRenderer,
2175                    {
2176                      canvas,
2177                      routeContentModule
2178                    }
2179                  )
2180                ]
2181              }
2182            )
2183          ] }) })
2184        ]
2185      }
2186    ) }) }) });
2187  }
2188  
2189  // packages/boot/build-module/components/app/router.mjs
2190  var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
2191  var {
2192    createLazyRoute,
2193    createRouter,
2194    createRootRoute,
2195    createRoute,
2196    RouterProvider,
2197    createBrowserHistory,
2198    parseHref,
2199    useLoaderData
2200  } = unlock(routePrivateApis6);
2201  function NotFoundComponent() {
2202    return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "boot-layout__stage", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(page_default, { title: (0, import_i18n11.__)("Route not found"), hasPadding: true, children: (0, import_i18n11.__)("The page you're looking for does not exist") }) });
2203  }
2204  function createRouteFromDefinition(route, parentRoute) {
2205    let tanstackRoute = createRoute({
2206      getParentRoute: () => parentRoute,
2207      path: route.path,
2208      beforeLoad: async (opts) => {
2209        if (route.route_module) {
2210          const module = await import(route.route_module);
2211          const routeConfig = module.route || {};
2212          if (routeConfig.beforeLoad) {
2213            return routeConfig.beforeLoad({
2214              params: opts.params || {},
2215              search: opts.search || {}
2216            });
2217          }
2218        }
2219      },
2220      loader: async (opts) => {
2221        let routeConfig = {};
2222        if (route.route_module) {
2223          const module = await import(route.route_module);
2224          routeConfig = module.route || {};
2225        }
2226        const context = {
2227          params: opts.params || {},
2228          search: opts.deps || {}
2229        };
2230        const [, loaderData, canvasData, titleData] = await Promise.all([
2231          (0, import_data10.resolveSelect)(import_core_data6.store).getEntityRecord(
2232            "root",
2233            "__unstableBase"
2234          ),
2235          routeConfig.loader ? routeConfig.loader(context) : Promise.resolve(void 0),
2236          routeConfig.canvas ? routeConfig.canvas(context) : Promise.resolve(void 0),
2237          routeConfig.title ? routeConfig.title(context) : Promise.resolve(void 0)
2238        ]);
2239        let inspector = true;
2240        if (routeConfig.inspector) {
2241          inspector = await routeConfig.inspector(context);
2242        }
2243        return {
2244          ...loaderData,
2245          canvas: canvasData,
2246          inspector,
2247          title: titleData,
2248          routeContentModule: route.content_module
2249        };
2250      },
2251      loaderDeps: (opts) => opts.search
2252    });
2253    tanstackRoute = tanstackRoute.lazy(async () => {
2254      const module = route.content_module ? await import(route.content_module) : {};
2255      const Stage = module.stage;
2256      const Inspector = module.inspector;
2257      return createLazyRoute(route.path)({
2258        component: function RouteComponent() {
2259          const { inspector: showInspector } = useLoaderData({ from: route.path }) ?? {};
2260          return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
2261            Stage && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "boot-layout__stage", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Stage, {}) }),
2262            Inspector && showInspector && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "boot-layout__inspector", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Inspector, {}) })
2263          ] });
2264        }
2265      });
2266    });
2267    return tanstackRoute;
2268  }
2269  function createRouteTree(routes, rootComponent = Root) {
2270    const rootRoute = createRootRoute({
2271      component: rootComponent,
2272      context: () => ({})
2273    });
2274    const dynamicRoutes = routes.map(
2275      (route) => createRouteFromDefinition(route, rootRoute)
2276    );
2277    return rootRoute.addChildren(dynamicRoutes);
2278  }
2279  function createPathHistory() {
2280    return createBrowserHistory({
2281      parseLocation: () => {
2282        const url = new URL(window.location.href);
2283        const path = url.searchParams.get("p") || "/";
2284        const pathHref = `$path}$url.hash}`;
2285        return parseHref(pathHref, window.history.state);
2286      },
2287      createHref: (href) => {
2288        const searchParams = new URLSearchParams(window.location.search);
2289        searchParams.set("p", href);
2290        return `$window.location.pathname}?$searchParams}`;
2291      }
2292    });
2293  }
2294  function Router({
2295    routes,
2296    rootComponent = Root
2297  }) {
2298    const router = (0, import_element15.useMemo)(() => {
2299      const history = createPathHistory();
2300      const routeTree = createRouteTree(routes, rootComponent);
2301      return createRouter({
2302        history,
2303        routeTree,
2304        defaultPreload: "intent",
2305        defaultNotFoundComponent: NotFoundComponent,
2306        defaultViewTransition: {
2307          types: ({
2308            fromLocation
2309          }) => {
2310            if (!fromLocation) {
2311              return false;
2312            }
2313            return ["navigate"];
2314          }
2315        }
2316      });
2317    }, [routes, rootComponent]);
2318    return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(RouterProvider, { router });
2319  }
2320  
2321  // packages/boot/build-module/components/root/single-page.mjs
2322  var import_notices2 = __toESM(require_notices(), 1);
2323  var import_components15 = __toESM(require_components(), 1);
2324  import { privateApis as routePrivateApis7 } from "@wordpress/route";
2325  var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
2326  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='d1ebf43fe1']")) {
2327    const style = document.createElement("style");
2328    style.setAttribute("data-wp-hash", "d1ebf43fe1");
2329    style.appendChild(document.createTextNode(".boot-layout{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);color:var(--wpds-color-fg-content-neutral,#1e1e1e);display:flex;flex-direction:row;height:100%;isolation:isolate;width:100%}.boot-layout__sidebar-backdrop{background-color:#00000080;bottom:0;cursor:pointer;left:0;position:fixed;right:0;top:0;z-index:100002}.boot-layout__sidebar{flex-shrink:0;height:100%;overflow:hidden;position:relative;width:240px}.boot-layout__sidebar.is-mobile{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);bottom:0;box-shadow:2px 0 8px #0003;inset-inline-start:0;max-width:85vw;position:fixed;top:0;width:300px;z-index:100003}.boot-layout__mobile-sidebar-drawer{left:0;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout__mobile-sidebar-drawer{top:46px}.boot-layout__mobile-sidebar-drawer{align-items:center;background:var(--wpds-color-bg-surface-neutral,#fff);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);display:flex;justify-content:flex-start;padding:16px;z-index:3}.boot-layout__canvas.has-mobile-drawer{padding-top:65px;position:relative}.boot-layout__surfaces{display:flex;flex-grow:1;gap:8px;margin:0}@media (min-width:782px){.boot-layout__surfaces{margin:8px}.boot-layout--single-page .boot-layout__surfaces{margin-top:0;margin-inline-start:0}}.boot-layout__inspector,.boot-layout__stage{background:var(--wpds-color-bg-surface-neutral,#fff);border-radius:0;bottom:0;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw}.boot-layout--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__inspector,.boot-layout__stage{border-radius:8px;height:auto;margin:0;position:static;width:auto}.boot-layout--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height:auto}}.boot-layout__stage{z-index:2}@media (min-width:782px){.boot-layout__stage{z-index:auto}}.boot-layout__inspector{z-index:3}@media (min-width:782px){.boot-layout__inspector{z-index:auto}}.boot-layout__canvas{background:var(--wpds-color-bg-surface-neutral,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);border-radius:0;bottom:0;box-shadow:0 1px 3px #0000001a;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw;z-index:1}.boot-layout--single-page .boot-layout__canvas{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__canvas{border-radius:8px;height:auto;position:static;width:auto;z-index:auto}.boot-layout--single-page .boot-layout__canvas{height:auto}.boot-layout.has-canvas .boot-layout__stage,.boot-layout__inspector{max-width:400px}}.boot-layout__canvas .interface-interface-skeleton{height:100%;left:0!important;position:relative;top:0!important}.boot-layout.has-full-canvas .boot-layout__surfaces{gap:0;margin:0}.boot-layout.has-full-canvas .boot-layout__inspector,.boot-layout.has-full-canvas .boot-layout__stage{display:none}.boot-layout.has-full-canvas .boot-layout__canvas{border:none;border-radius:0;bottom:0;box-shadow:none;left:0;margin:0;max-width:none;overflow:hidden;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:46px}@media (min-width:782px){.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:32px}}"));
2330    document.head.appendChild(style);
2331  }
2332  var { useMatches: useMatches4, Outlet: Outlet2 } = unlock(routePrivateApis7);
2333  function RootSinglePage() {
2334    const matches = useMatches4();
2335    const currentMatch = matches[matches.length - 1];
2336    const canvas = currentMatch?.loaderData?.canvas;
2337    const routeContentModule = currentMatch?.loaderData?.routeContentModule;
2338    const isFullScreen = canvas && !canvas.isPreview;
2339    useRouteTitle();
2340    return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_components15.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(UserThemeProvider, { isRoot: true, color: { bg: "#f8f8f8" }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(UserThemeProvider, { color: { bg: "#1d2327" }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2341      "div",
2342      {
2343        className: clsx_default(
2344          "boot-layout boot-layout--single-page",
2345          {
2346            "has-canvas": !!canvas || canvas === null,
2347            "has-full-canvas": isFullScreen
2348          }
2349        ),
2350        children: [
2351          /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SavePanel, {}),
2352          /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_notices2.SnackbarNotices, { className: "boot-notices__snackbar" }),
2353          /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "boot-layout__surfaces", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(UserThemeProvider, { color: { bg: "#ffffff" }, children: [
2354            /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Outlet2, {}),
2355            (canvas || canvas === null) && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "boot-layout__canvas", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2356              CanvasRenderer,
2357              {
2358                canvas,
2359                routeContentModule
2360              }
2361            ) })
2362          ] }) })
2363        ]
2364      }
2365    ) }) }) });
2366  }
2367  
2368  // packages/boot/build-module/components/app/index.mjs
2369  var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
2370  function App({ rootComponent }) {
2371    const routes = (0, import_data11.useSelect)((select) => select(store).getRoutes(), []);
2372    return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Router, { routes, rootComponent });
2373  }
2374  async function init({
2375    mountId,
2376    menuItems,
2377    routes,
2378    initModules,
2379    dashboardLink
2380  }) {
2381    (menuItems ?? []).forEach((menuItem) => {
2382      (0, import_data11.dispatch)(store).registerMenuItem(menuItem.id, menuItem);
2383    });
2384    (routes ?? []).forEach((route) => {
2385      (0, import_data11.dispatch)(store).registerRoute(route);
2386    });
2387    if (dashboardLink) {
2388      (0, import_data11.dispatch)(store).setDashboardLink(dashboardLink);
2389    }
2390    for (const moduleId of initModules ?? []) {
2391      const module = await import(moduleId);
2392      await module.init();
2393    }
2394    const rootElement = document.getElementById(mountId);
2395    if (rootElement) {
2396      const root = (0, import_element16.createRoot)(rootElement);
2397      root.render(
2398        /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_element16.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(App, {}) })
2399      );
2400    }
2401  }
2402  async function initSinglePage({
2403    mountId,
2404    routes
2405  }) {
2406    (routes ?? []).forEach((route) => {
2407      (0, import_data11.dispatch)(store).registerRoute(route);
2408    });
2409    const rootElement = document.getElementById(mountId);
2410    if (rootElement) {
2411      const root = (0, import_element16.createRoot)(rootElement);
2412      root.render(
2413        /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_element16.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(App, { rootComponent: RootSinglePage }) })
2414      );
2415    }
2416  }
2417  
2418  // packages/boot/build-module/index.mjs
2419  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='e39fdc0848']")) {
2420    const style = document.createElement("style");
2421    style.setAttribute("data-wp-hash", "e39fdc0848");
2422    style.appendChild(document.createTextNode(':root{--wpds-border-radius-lg:8px;--wpds-border-radius-md:4px;--wpds-border-radius-sm:2px;--wpds-border-radius-xs:1px;--wpds-border-width-focus:2px;--wpds-border-width-lg:8px;--wpds-border-width-md:4px;--wpds-border-width-sm:2px;--wpds-border-width-xs:1px;--wpds-color-bg-interactive-brand-strong:#3858e9;--wpds-color-bg-interactive-brand-strong-active:#2e49d9;--wpds-color-bg-interactive-brand-weak:#0000;--wpds-color-bg-interactive-brand-weak-active:#e6eaf4;--wpds-color-bg-interactive-error:#0000;--wpds-color-bg-interactive-error-active:#fff6f4;--wpds-color-bg-interactive-error-strong:#cc1818;--wpds-color-bg-interactive-error-strong-active:#b90000;--wpds-color-bg-interactive-error-weak:#0000;--wpds-color-bg-interactive-error-weak-active:#f6e6e3;--wpds-color-bg-interactive-neutral-strong:#2d2d2d;--wpds-color-bg-interactive-neutral-strong-active:#1e1e1e;--wpds-color-bg-interactive-neutral-strong-disabled:#e2e2e2;--wpds-color-bg-interactive-neutral-weak:#0000;--wpds-color-bg-interactive-neutral-weak-active:#eaeaea;--wpds-color-bg-interactive-neutral-weak-disabled:#0000;--wpds-color-bg-surface-brand:#ecf0f9;--wpds-color-bg-surface-caution:#fee994;--wpds-color-bg-surface-caution-weak:#fff9c9;--wpds-color-bg-surface-error:#f6e6e3;--wpds-color-bg-surface-error-weak:#fff6f4;--wpds-color-bg-surface-info:#deebfa;--wpds-color-bg-surface-info-weak:#f2f9ff;--wpds-color-bg-surface-neutral:#f8f8f8;--wpds-color-bg-surface-neutral-strong:#fff;--wpds-color-bg-surface-neutral-weak:#f0f0f0;--wpds-color-bg-surface-success:#c5f7cc;--wpds-color-bg-surface-success-weak:#eaffed;--wpds-color-bg-surface-warning:#fde6bd;--wpds-color-bg-surface-warning-weak:#fff7e0;--wpds-color-bg-thumb-brand:#3858e9;--wpds-color-bg-thumb-brand-active:#3858e9;--wpds-color-bg-thumb-neutral-disabled:#d8d8d8;--wpds-color-bg-thumb-neutral-weak:#8a8a8a;--wpds-color-bg-thumb-neutral-weak-active:#6c6c6c;--wpds-color-bg-track-neutral:#d8d8d8;--wpds-color-bg-track-neutral-weak:#e0e0e0;--wpds-color-fg-content-caution:#281d00;--wpds-color-fg-content-caution-weak:#826a00;--wpds-color-fg-content-error:#470000;--wpds-color-fg-content-error-weak:#cc1818;--wpds-color-fg-content-info:#001b4f;--wpds-color-fg-content-info-weak:#006bd7;--wpds-color-fg-content-neutral:#1e1e1e;--wpds-color-fg-content-neutral-weak:#6d6d6d;--wpds-color-fg-content-success:#002900;--wpds-color-fg-content-success-weak:#007f30;--wpds-color-fg-content-warning:#2e1900;--wpds-color-fg-content-warning-weak:#926300;--wpds-color-fg-interactive-brand:#3858e9;--wpds-color-fg-interactive-brand-active:#3858e9;--wpds-color-fg-interactive-brand-strong:#eff0f2;--wpds-color-fg-interactive-brand-strong-active:#eff0f2;--wpds-color-fg-interactive-error:#cc1818;--wpds-color-fg-interactive-error-active:#cc1818;--wpds-color-fg-interactive-error-strong:#f2efef;--wpds-color-fg-interactive-error-strong-active:#f2efef;--wpds-color-fg-interactive-neutral:#1e1e1e;--wpds-color-fg-interactive-neutral-active:#1e1e1e;--wpds-color-fg-interactive-neutral-disabled:#8a8a8a;--wpds-color-fg-interactive-neutral-strong:#f0f0f0;--wpds-color-fg-interactive-neutral-strong-active:#f0f0f0;--wpds-color-fg-interactive-neutral-strong-disabled:#8a8a8a;--wpds-color-fg-interactive-neutral-weak:#6d6d6d;--wpds-color-fg-interactive-neutral-weak-disabled:#8a8a8a;--wpds-color-stroke-focus-brand:#3858e9;--wpds-color-stroke-interactive-brand:#3858e9;--wpds-color-stroke-interactive-brand-active:#2337c8;--wpds-color-stroke-interactive-error:#cc1818;--wpds-color-stroke-interactive-error-active:#9d0000;--wpds-color-stroke-interactive-error-strong:#cc1818;--wpds-color-stroke-interactive-neutral:#8a8a8a;--wpds-color-stroke-interactive-neutral-active:#6c6c6c;--wpds-color-stroke-interactive-neutral-disabled:#d8d8d8;--wpds-color-stroke-interactive-neutral-strong:#6c6c6c;--wpds-color-stroke-surface-brand:#a3b1d4;--wpds-color-stroke-surface-brand-strong:#3858e9;--wpds-color-stroke-surface-error:#daa39b;--wpds-color-stroke-surface-error-strong:#cc1818;--wpds-color-stroke-surface-info:#9fbcdc;--wpds-color-stroke-surface-info-strong:#006bd7;--wpds-color-stroke-surface-neutral:#d8d8d8;--wpds-color-stroke-surface-neutral-strong:#8a8a8a;--wpds-color-stroke-surface-neutral-weak:#e0e0e0;--wpds-color-stroke-surface-success:#8ac894;--wpds-color-stroke-surface-success-strong:#007f30;--wpds-color-stroke-surface-warning:#d0b381;--wpds-color-stroke-surface-warning-strong:#926300;--wpds-dimension-base:4px;--wpds-dimension-gap-2xl:32px;--wpds-dimension-gap-3xl:40px;--wpds-dimension-gap-lg:16px;--wpds-dimension-gap-md:12px;--wpds-dimension-gap-sm:8px;--wpds-dimension-gap-xl:24px;--wpds-dimension-gap-xs:4px;--wpds-dimension-padding-2xl:24px;--wpds-dimension-padding-3xl:32px;--wpds-dimension-padding-lg:16px;--wpds-dimension-padding-md:12px;--wpds-dimension-padding-sm:8px;--wpds-dimension-padding-xl:20px;--wpds-dimension-padding-xs:4px;--wpds-elevation-lg:0 5px 15px 0 #00000014,0 15px 27px 0 #00000012,0 30px 36px 0 #0000000a,0 50px 43px 0 #00000005;--wpds-elevation-md:0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005;--wpds-elevation-sm:0 1px 2px 0 #0000000d,0 2px 3px 0 #0000000a,0 6px 6px 0 #00000008,0 8px 8px 0 #00000005;--wpds-elevation-xs:0 1px 1px 0 #00000008,0 1px 2px 0 #00000005,0 3px 3px 0 #00000005,0 4px 4px 0 #00000003;--wpds-font-family-body:-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif;--wpds-font-family-heading:-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif;--wpds-font-family-mono:"Menlo","Consolas",monaco,monospace;--wpds-font-line-height-2xl:40px;--wpds-font-line-height-lg:28px;--wpds-font-line-height-md:24px;--wpds-font-line-height-sm:20px;--wpds-font-line-height-xl:32px;--wpds-font-line-height-xs:16px;--wpds-font-size-2xl:32px;--wpds-font-size-lg:15px;--wpds-font-size-md:13px;--wpds-font-size-sm:12px;--wpds-font-size-xl:20px;--wpds-font-size-xs:11px;--wpds-font-weight-medium:499;--wpds-font-weight-regular:400}[data-wpds-theme-provider-id][data-wpds-density=compact]{--wpds-dimension-gap-2xl:24px;--wpds-dimension-gap-3xl:32px;--wpds-dimension-gap-lg:12px;--wpds-dimension-gap-md:8px;--wpds-dimension-gap-sm:4px;--wpds-dimension-gap-xl:20px;--wpds-dimension-gap-xs:4px;--wpds-dimension-padding-2xl:20px;--wpds-dimension-padding-3xl:24px;--wpds-dimension-padding-lg:12px;--wpds-dimension-padding-md:8px;--wpds-dimension-padding-sm:4px;--wpds-dimension-padding-xl:16px;--wpds-dimension-padding-xs:4px}[data-wpds-theme-provider-id][data-wpds-density=comfortable]{--wpds-dimension-gap-2xl:40px;--wpds-dimension-gap-3xl:48px;--wpds-dimension-gap-lg:20px;--wpds-dimension-gap-md:16px;--wpds-dimension-gap-sm:12px;--wpds-dimension-gap-xl:32px;--wpds-dimension-gap-xs:8px;--wpds-dimension-padding-2xl:32px;--wpds-dimension-padding-3xl:40px;--wpds-dimension-padding-lg:20px;--wpds-dimension-padding-md:16px;--wpds-dimension-padding-sm:12px;--wpds-dimension-padding-xl:24px;--wpds-dimension-padding-xs:8px}[data-wpds-theme-provider-id][data-wpds-density=default]{--wpds-dimension-base:4px;--wpds-dimension-gap-2xl:32px;--wpds-dimension-gap-3xl:40px;--wpds-dimension-gap-lg:16px;--wpds-dimension-gap-md:12px;--wpds-dimension-gap-sm:8px;--wpds-dimension-gap-xl:24px;--wpds-dimension-gap-xs:4px;--wpds-dimension-padding-2xl:24px;--wpds-dimension-padding-3xl:32px;--wpds-dimension-padding-lg:16px;--wpds-dimension-padding-md:12px;--wpds-dimension-padding-sm:8px;--wpds-dimension-padding-xl:20px;--wpds-dimension-padding-xs:4px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){:root{--wpds-border-width-focus:1.5px}}.admin-ui-page{text-wrap:pretty;background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);color:var(--wpds-color-fg-content-neutral,#1e1e1e);display:flex;flex-flow:column;height:100%;position:relative;z-index:1}.admin-ui-page__header{background:var(--wpds-color-bg-surface-neutral-strong,#fff);border-bottom:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral-weak,#e0e0e0);padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px);position:sticky;top:0;z-index:1}.admin-ui-page__header-title{font-family:var(--wpds-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-font-size-xl,20px);font-weight:var(--wpds-font-weight-medium,499);line-height:var(--wpds-font-line-height-xl,32px);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-ui-page__sidebar-toggle-slot:empty{display:none}.admin-ui-page__header-subtitle{color:var(--wpds-color-fg-content-neutral-weak,#6d6d6d);font-size:var(--wpds-font-size-md,13px);line-height:var(--wpds-font-line-height-md,24px);margin:0;padding-block-end:var(--wpds-dimension-padding-xs,4px)}.admin-ui-page__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto}.admin-ui-page__content.has-padding{padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px)}.show-icon-labels .admin-ui-page__header-actions .components-button.has-icon{padding:0 var(--wpds-dimension-padding-xs,4px);width:auto}.show-icon-labels .admin-ui-page__header-actions .components-button.has-icon svg{display:none}.show-icon-labels .admin-ui-page__header-actions .components-button.has-icon:after{content:attr(aria-label);font-size:var(--wpds-font-size-sm,12px)}.admin-ui-breadcrumbs__list{font-size:15px;font-weight:500;gap:0;list-style:none;margin:0;min-height:32px;padding:0}.admin-ui-breadcrumbs__list li:not(:last-child):after{content:"/";margin:0 8px}.admin-ui-breadcrumbs__list h1{font-size:inherit;line-height:inherit}@media (min-width:600px){.boot-layout-container .boot-layout{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.boot-layout-container .boot-layout{min-height:calc(100vh - 32px)}body:has(.boot-layout.has-full-canvas) .boot-layout-container .boot-layout{min-height:100vh}}.boot-layout-container .boot-layout img{height:auto;max-width:100%}.boot-layout .boot-notices__snackbar{bottom:24px;box-sizing:border-box;display:flex;flex-direction:column;left:0;padding-inline:16px;pointer-events:none;position:fixed;right:0}.boot-layout .boot-notices__snackbar .components-snackbar{margin-inline:auto}'));
2423    document.head.appendChild(style);
2424  }
2425  if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='2a741c061f']")) {
2426    const style = document.createElement("style");
2427    style.setAttribute("data-wp-hash", "2a741c061f");
2428    style.appendChild(document.createTextNode("@media (max-width:782px){*{view-transition-name:none!important}}::view-transition-new(root),::view-transition-old(root){animation-duration:.25s}@media not (prefers-reduced-motion:reduce){.boot-layout__canvas .interface-interface-skeleton__header{view-transition-name:boot--canvas-header}.boot-layout__canvas .interface-interface-skeleton__sidebar{view-transition-name:boot--canvas-sidebar}.boot-layout.has-full-canvas .boot-layout__canvas .boot-site-icon-link,.boot-layout:not(.has-full-canvas) .boot-site-hub .boot-site-icon-link{view-transition-name:boot--site-icon-link}.boot-layout__stage{view-transition-name:boot--stage}.boot-layout__inspector{view-transition-name:boot--inspector}.boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content,.boot-layout__canvas:not(.is-full-canvas){view-transition-name:boot--canvas}@supports (-webkit-hyphens:none) and (not (-moz-appearance:none)){.boot-layout__stage{view-transition-name:boot-safari--stage}.boot-layout__inspector{view-transition-name:boot-safari--inspector}.boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content,.boot-layout__canvas:not(.is-full-canvas){view-transition-name:boot-safari--canvas}}.components-popover:first-of-type{view-transition-name:boot--components-popover}}::view-transition-group(boot--canvas),::view-transition-group(boot--canvas-header),::view-transition-group(boot--canvas-sidebar),::view-transition-group(boot-safari--canvas){z-index:1}::view-transition-group(boot--site-icon-link){z-index:2}::view-transition-new(boot--site-icon-link),::view-transition-old(boot--site-icon-link){animation:none}::view-transition-new(boot-safari--canvas),::view-transition-new(boot-safari--inspector),::view-transition-new(boot-safari--stage),::view-transition-old(boot-safari--canvas),::view-transition-old(boot-safari--inspector),::view-transition-old(boot-safari--stage){width:auto}::view-transition-new(boot--canvas),::view-transition-new(boot--inspector),::view-transition-new(boot--stage),::view-transition-old(boot--canvas),::view-transition-old(boot--inspector),::view-transition-old(boot--stage){background:#fff;border-radius:8px;height:100%;object-fit:none;object-position:left top;overflow:hidden;width:100%}::view-transition-new(boot--canvas),::view-transition-old(boot--canvas){object-position:center top}::view-transition-old(boot--inspector):only-child,::view-transition-old(boot--stage):only-child,::view-transition-old(boot-safari--inspector):only-child,::view-transition-old(boot-safari--stage):only-child{animation-name:zoomOut;will-change:transform,opacity}::view-transition-new(boot--inspector):only-child,::view-transition-new(boot--stage):only-child,::view-transition-new(boot-safari--inspector):only-child,::view-transition-new(boot-safari--stage):only-child{animation-name:zoomIn;will-change:transform,opacity}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}::view-transition-new(boot--canvas):only-child,::view-transition-new(boot-safari--canvas):only-child{animation-name:slideFromRight;will-change:transform}::view-transition-old(boot--canvas):only-child,::view-transition-old(boot-safari--canvas):only-child{animation-name:slideToRight;will-change:transform}@keyframes slideFromRight{0%{transform:translateX(100vw)}to{transform:translateX(0)}}@keyframes slideToRight{0%{transform:translateX(0)}to{transform:translateX(100vw)}}::view-transition-new(boot--canvas-header):only-child{animation-name:slideHeaderFromTop;will-change:transform}::view-transition-old(boot--canvas-header):only-child{animation-name:slideHeaderToTop;will-change:transform}@keyframes slideHeaderFromTop{0%{transform:translateY(-100%)}}@keyframes slideHeaderToTop{to{transform:translateY(-100%)}}::view-transition-new(boot--canvas-sidebar):only-child{animation-name:slideSidebarFromRight;will-change:transform}::view-transition-old(boot--canvas-sidebar):only-child{animation-name:slideSidebarToRight;will-change:transform}@keyframes slideSidebarFromRight{0%{transform:translateX(100%)}}@keyframes slideSidebarToRight{to{transform:translateX(100%)}}"));
2429    document.head.appendChild(style);
2430  }
2431  export {
2432    init,
2433    initSinglePage,
2434    store
2435  };


Generated : Sun Jun 14 08:20:09 2026 Cross-referenced by PHPXref