[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/build/routes/connectors-home/ -> content.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/i18n
  32  var require_i18n = __commonJS({
  33    "package-external:@wordpress/i18n"(exports, module) {
  34      module.exports = window.wp.i18n;
  35    }
  36  });
  37  
  38  // vendor-external:react
  39  var require_react = __commonJS({
  40    "vendor-external:react"(exports, module) {
  41      module.exports = window.React;
  42    }
  43  });
  44  
  45  // vendor-external:react/jsx-runtime
  46  var require_jsx_runtime = __commonJS({
  47    "vendor-external:react/jsx-runtime"(exports, module) {
  48      module.exports = window.ReactJSXRuntime;
  49    }
  50  });
  51  
  52  // vendor-external:react-dom
  53  var require_react_dom = __commonJS({
  54    "vendor-external:react-dom"(exports, module) {
  55      module.exports = window.ReactDOM;
  56    }
  57  });
  58  
  59  // package-external:@wordpress/element
  60  var require_element = __commonJS({
  61    "package-external:@wordpress/element"(exports, module) {
  62      module.exports = window.wp.element;
  63    }
  64  });
  65  
  66  // package-external:@wordpress/primitives
  67  var require_primitives = __commonJS({
  68    "package-external:@wordpress/primitives"(exports, module) {
  69      module.exports = window.wp.primitives;
  70    }
  71  });
  72  
  73  // node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
  74  var require_use_sync_external_store_shim_development = __commonJS({
  75    "node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports) {
  76      "use strict";
  77      (function() {
  78        function is(x, y) {
  79          return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
  80        }
  81        function useSyncExternalStore$2(subscribe, getSnapshot) {
  82          didWarnOld18Alpha || void 0 === React53.startTransition || (didWarnOld18Alpha = true, console.error(
  83            "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
  84          ));
  85          var value = getSnapshot();
  86          if (!didWarnUncachedGetSnapshot) {
  87            var cachedValue = getSnapshot();
  88            objectIs(value, cachedValue) || (console.error(
  89              "The result of getSnapshot should be cached to avoid an infinite loop"
  90            ), didWarnUncachedGetSnapshot = true);
  91          }
  92          cachedValue = useState14({
  93            inst: { value, getSnapshot }
  94          });
  95          var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
  96          useLayoutEffect3(
  97            function() {
  98              inst.value = value;
  99              inst.getSnapshot = getSnapshot;
 100              checkIfSnapshotChanged(inst) && forceUpdate({ inst });
 101            },
 102            [subscribe, value, getSnapshot]
 103          );
 104          useEffect14(
 105            function() {
 106              checkIfSnapshotChanged(inst) && forceUpdate({ inst });
 107              return subscribe(function() {
 108                checkIfSnapshotChanged(inst) && forceUpdate({ inst });
 109              });
 110            },
 111            [subscribe]
 112          );
 113          useDebugValue2(value);
 114          return value;
 115        }
 116        function checkIfSnapshotChanged(inst) {
 117          var latestGetSnapshot = inst.getSnapshot;
 118          inst = inst.value;
 119          try {
 120            var nextValue = latestGetSnapshot();
 121            return !objectIs(inst, nextValue);
 122          } catch (error2) {
 123            return true;
 124          }
 125        }
 126        function useSyncExternalStore$1(subscribe, getSnapshot) {
 127          return getSnapshot();
 128        }
 129        "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
 130        var React53 = require_react(), objectIs = "function" === typeof Object.is ? Object.is : is, useState14 = React53.useState, useEffect14 = React53.useEffect, useLayoutEffect3 = React53.useLayoutEffect, useDebugValue2 = React53.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
 131        exports.useSyncExternalStore = void 0 !== React53.useSyncExternalStore ? React53.useSyncExternalStore : shim;
 132        "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
 133      })();
 134    }
 135  });
 136  
 137  // node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/index.js
 138  var require_shim = __commonJS({
 139    "node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/index.js"(exports, module) {
 140      "use strict";
 141      if (false) {
 142        module.exports = null;
 143      } else {
 144        module.exports = require_use_sync_external_store_shim_development();
 145      }
 146    }
 147  });
 148  
 149  // node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js
 150  var require_with_selector_development = __commonJS({
 151    "node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js"(exports) {
 152      "use strict";
 153      (function() {
 154        function is(x, y) {
 155          return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
 156        }
 157        "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
 158        var React53 = require_react(), shim = require_shim(), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore3 = shim.useSyncExternalStore, useRef22 = React53.useRef, useEffect14 = React53.useEffect, useMemo17 = React53.useMemo, useDebugValue2 = React53.useDebugValue;
 159        exports.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
 160          var instRef = useRef22(null);
 161          if (null === instRef.current) {
 162            var inst = { hasValue: false, value: null };
 163            instRef.current = inst;
 164          } else inst = instRef.current;
 165          instRef = useMemo17(
 166            function() {
 167              function memoizedSelector(nextSnapshot) {
 168                if (!hasMemo) {
 169                  hasMemo = true;
 170                  memoizedSnapshot = nextSnapshot;
 171                  nextSnapshot = selector(nextSnapshot);
 172                  if (void 0 !== isEqual && inst.hasValue) {
 173                    var currentSelection = inst.value;
 174                    if (isEqual(currentSelection, nextSnapshot))
 175                      return memoizedSelection = currentSelection;
 176                  }
 177                  return memoizedSelection = nextSnapshot;
 178                }
 179                currentSelection = memoizedSelection;
 180                if (objectIs(memoizedSnapshot, nextSnapshot))
 181                  return currentSelection;
 182                var nextSelection = selector(nextSnapshot);
 183                if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
 184                  return memoizedSnapshot = nextSnapshot, currentSelection;
 185                memoizedSnapshot = nextSnapshot;
 186                return memoizedSelection = nextSelection;
 187              }
 188              var hasMemo = false, memoizedSnapshot, memoizedSelection, maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot;
 189              return [
 190                function() {
 191                  return memoizedSelector(getSnapshot());
 192                },
 193                null === maybeGetServerSnapshot ? void 0 : function() {
 194                  return memoizedSelector(maybeGetServerSnapshot());
 195                }
 196              ];
 197            },
 198            [getSnapshot, getServerSnapshot, selector, isEqual]
 199          );
 200          var value = useSyncExternalStore3(subscribe, instRef[0], instRef[1]);
 201          useEffect14(
 202            function() {
 203              inst.hasValue = true;
 204              inst.value = value;
 205            },
 206            [value]
 207          );
 208          useDebugValue2(value);
 209          return value;
 210        };
 211        "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
 212      })();
 213    }
 214  });
 215  
 216  // node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/with-selector.js
 217  var require_with_selector = __commonJS({
 218    "node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/with-selector.js"(exports, module) {
 219      "use strict";
 220      if (false) {
 221        module.exports = null;
 222      } else {
 223        module.exports = require_with_selector_development();
 224      }
 225    }
 226  });
 227  
 228  // package-external:@wordpress/theme
 229  var require_theme = __commonJS({
 230    "package-external:@wordpress/theme"(exports, module) {
 231      module.exports = window.wp.theme;
 232    }
 233  });
 234  
 235  // package-external:@wordpress/private-apis
 236  var require_private_apis = __commonJS({
 237    "package-external:@wordpress/private-apis"(exports, module) {
 238      module.exports = window.wp.privateApis;
 239    }
 240  });
 241  
 242  // package-external:@wordpress/components
 243  var require_components = __commonJS({
 244    "package-external:@wordpress/components"(exports, module) {
 245      module.exports = window.wp.components;
 246    }
 247  });
 248  
 249  // package-external:@wordpress/data
 250  var require_data = __commonJS({
 251    "package-external:@wordpress/data"(exports, module) {
 252      module.exports = window.wp.data;
 253    }
 254  });
 255  
 256  // package-external:@wordpress/core-data
 257  var require_core_data = __commonJS({
 258    "package-external:@wordpress/core-data"(exports, module) {
 259      module.exports = window.wp.coreData;
 260    }
 261  });
 262  
 263  // package-external:@wordpress/notices
 264  var require_notices = __commonJS({
 265    "package-external:@wordpress/notices"(exports, module) {
 266      module.exports = window.wp.notices;
 267    }
 268  });
 269  
 270  // package-external:@wordpress/url
 271  var require_url = __commonJS({
 272    "package-external:@wordpress/url"(exports, module) {
 273      module.exports = window.wp.url;
 274    }
 275  });
 276  
 277  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useRenderElement.mjs
 278  var React4 = __toESM(require_react(), 1);
 279  
 280  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useRefWithInit.mjs
 281  var React = __toESM(require_react(), 1);
 282  var UNINITIALIZED = {};
 283  function useRefWithInit(init, initArg) {
 284    const ref = React.useRef(UNINITIALIZED);
 285    if (ref.current === UNINITIALIZED) {
 286      ref.current = init(initArg);
 287    }
 288    return ref;
 289  }
 290  
 291  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useMergedRefs.mjs
 292  function useMergedRefs(a, b, c, d) {
 293    const forkRef = useRefWithInit(createForkRef).current;
 294    if (didChange(forkRef, a, b, c, d)) {
 295      update(forkRef, [a, b, c, d]);
 296    }
 297    return forkRef.callback;
 298  }
 299  function useMergedRefsN(refs) {
 300    const forkRef = useRefWithInit(createForkRef).current;
 301    if (didChangeN(forkRef, refs)) {
 302      update(forkRef, refs);
 303    }
 304    return forkRef.callback;
 305  }
 306  function createForkRef() {
 307    return {
 308      callback: null,
 309      cleanup: null,
 310      refs: []
 311    };
 312  }
 313  function didChange(forkRef, a, b, c, d) {
 314    return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
 315  }
 316  function didChangeN(forkRef, newRefs) {
 317    return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index2) => ref !== newRefs[index2]);
 318  }
 319  function update(forkRef, refs) {
 320    forkRef.refs = refs;
 321    if (refs.every((ref) => ref == null)) {
 322      forkRef.callback = null;
 323      return;
 324    }
 325    forkRef.callback = (instance) => {
 326      if (forkRef.cleanup) {
 327        forkRef.cleanup();
 328        forkRef.cleanup = null;
 329      }
 330      if (instance != null) {
 331        const cleanupCallbacks = Array(refs.length).fill(null);
 332        for (let i = 0; i < refs.length; i += 1) {
 333          const ref = refs[i];
 334          if (ref == null) {
 335            continue;
 336          }
 337          switch (typeof ref) {
 338            case "function": {
 339              const refCleanup = ref(instance);
 340              if (typeof refCleanup === "function") {
 341                cleanupCallbacks[i] = refCleanup;
 342              }
 343              break;
 344            }
 345            case "object": {
 346              ref.current = instance;
 347              break;
 348            }
 349            default:
 350          }
 351        }
 352        forkRef.cleanup = () => {
 353          for (let i = 0; i < refs.length; i += 1) {
 354            const ref = refs[i];
 355            if (ref == null) {
 356              continue;
 357            }
 358            switch (typeof ref) {
 359              case "function": {
 360                const cleanupCallback = cleanupCallbacks[i];
 361                if (typeof cleanupCallback === "function") {
 362                  cleanupCallback();
 363                } else {
 364                  void ref(null);
 365                }
 366                break;
 367              }
 368              case "object": {
 369                ref.current = null;
 370                break;
 371              }
 372              default:
 373            }
 374          }
 375        };
 376      }
 377    };
 378  }
 379  
 380  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/getReactElementRef.mjs
 381  var React3 = __toESM(require_react(), 1);
 382  
 383  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/reactVersion.mjs
 384  var React2 = __toESM(require_react(), 1);
 385  var majorVersion = parseInt(React2.version, 10);
 386  function isReactVersionAtLeast(reactVersionToCheck) {
 387    return majorVersion >= reactVersionToCheck;
 388  }
 389  
 390  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/getReactElementRef.mjs
 391  function getReactElementRef(element) {
 392    if (!/* @__PURE__ */ React3.isValidElement(element)) {
 393      return null;
 394    }
 395    const reactElement = element;
 396    const propsWithRef = reactElement.props;
 397    return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null;
 398  }
 399  
 400  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/mergeObjects.mjs
 401  function mergeObjects(a, b) {
 402    if (a && !b) {
 403      return a;
 404    }
 405    if (!a && b) {
 406      return b;
 407    }
 408    if (a || b) {
 409      return {
 410        ...a,
 411        ...b
 412      };
 413    }
 414    return void 0;
 415  }
 416  
 417  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/createLogOnce.mjs
 418  var loggedMessages;
 419  if (true) {
 420    loggedMessages = /* @__PURE__ */ new Set();
 421  }
 422  function createLogOnce(severity, prefix) {
 423    return function logOnce(...messages) {
 424      if (true) {
 425        const message = messages.join(" ");
 426        const output = prefix ? `$prefix}: $message}` : message;
 427        const key = `$severity}:$output}`;
 428        if (!loggedMessages.has(key)) {
 429          loggedMessages.add(key);
 430          if (severity === "warn") {
 431            console.warn(output);
 432          } else {
 433            console.error(output);
 434          }
 435        }
 436      }
 437    };
 438  }
 439  
 440  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/warn.mjs
 441  var warn = createLogOnce("warn", "Base UI");
 442  
 443  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/empty.mjs
 444  function NOOP() {
 445  }
 446  var EMPTY_ARRAY = Object.freeze([]);
 447  var EMPTY_OBJECT = Object.freeze({});
 448  
 449  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/getStateAttributesProps.mjs
 450  function getStateAttributesProps(state, customMapping) {
 451    const props = {};
 452    for (const key in state) {
 453      const value = state[key];
 454      if (customMapping?.hasOwnProperty(key)) {
 455        const customProps = customMapping[key](value);
 456        if (customProps != null) {
 457          Object.assign(props, customProps);
 458        }
 459        continue;
 460      }
 461      if (value === true) {
 462        props[`data-$key.toLowerCase()}`] = "";
 463      } else if (value) {
 464        props[`data-$key.toLowerCase()}`] = value.toString();
 465      }
 466    }
 467    return props;
 468  }
 469  
 470  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/resolveClassName.mjs
 471  function resolveClassName(className, state) {
 472    return typeof className === "function" ? className(state) : className;
 473  }
 474  
 475  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/resolveStyle.mjs
 476  function resolveStyle(style, state) {
 477    return typeof style === "function" ? style(state) : style;
 478  }
 479  
 480  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/merge-props/mergeProps.mjs
 481  var EMPTY_PROPS = {};
 482  function mergeProps(a, b, c, d, e) {
 483    if (!c && !d && !e && !a) {
 484      return createInitialMergedProps(b);
 485    }
 486    let merged = createInitialMergedProps(a);
 487    if (b) {
 488      merged = mergeInto(merged, b);
 489    }
 490    if (c) {
 491      merged = mergeInto(merged, c);
 492    }
 493    if (d) {
 494      merged = mergeInto(merged, d);
 495    }
 496    if (e) {
 497      merged = mergeInto(merged, e);
 498    }
 499    return merged;
 500  }
 501  function mergePropsN(props) {
 502    if (props.length === 0) {
 503      return EMPTY_PROPS;
 504    }
 505    if (props.length === 1) {
 506      return createInitialMergedProps(props[0]);
 507    }
 508    let merged = createInitialMergedProps(props[0]);
 509    for (let i = 1; i < props.length; i += 1) {
 510      merged = mergeInto(merged, props[i]);
 511    }
 512    return merged;
 513  }
 514  function createInitialMergedProps(inputProps) {
 515    if (isPropsGetter(inputProps)) {
 516      return {
 517        ...inputProps(EMPTY_PROPS)
 518      };
 519    }
 520    return copyInitialProps(inputProps);
 521  }
 522  function mergeInto(merged, inputProps) {
 523    if (isPropsGetter(inputProps)) {
 524      return inputProps(merged);
 525    }
 526    return mutablyMergeInto(merged, inputProps);
 527  }
 528  function copyInitialProps(inputProps) {
 529    const copiedProps = {
 530      ...inputProps
 531    };
 532    for (const propName in copiedProps) {
 533      const propValue = copiedProps[propName];
 534      if (isEventHandler(propName, propValue)) {
 535        copiedProps[propName] = wrapEventHandler(propValue);
 536      }
 537    }
 538    return copiedProps;
 539  }
 540  function mutablyMergeInto(mergedProps, externalProps) {
 541    if (!externalProps) {
 542      return mergedProps;
 543    }
 544    for (const propName in externalProps) {
 545      const externalPropValue = externalProps[propName];
 546      switch (propName) {
 547        case "style": {
 548          mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);
 549          break;
 550        }
 551        case "className": {
 552          mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);
 553          break;
 554        }
 555        default: {
 556          if (isEventHandler(propName, externalPropValue)) {
 557            mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);
 558          } else {
 559            mergedProps[propName] = externalPropValue;
 560          }
 561        }
 562      }
 563    }
 564    return mergedProps;
 565  }
 566  function isEventHandler(key, value) {
 567    const code0 = key.charCodeAt(0);
 568    const code1 = key.charCodeAt(1);
 569    const code2 = key.charCodeAt(2);
 570    return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined");
 571  }
 572  function isPropsGetter(inputProps) {
 573    return typeof inputProps === "function";
 574  }
 575  function mergeEventHandlers(ourHandler, theirHandler) {
 576    if (!theirHandler) {
 577      return ourHandler;
 578    }
 579    if (!ourHandler) {
 580      return wrapEventHandler(theirHandler);
 581    }
 582    return (...args) => {
 583      const event = args[0];
 584      if (isSyntheticEvent(event)) {
 585        const baseUIEvent = event;
 586        makeEventPreventable(baseUIEvent);
 587        const result2 = theirHandler(...args);
 588        if (!baseUIEvent.baseUIHandlerPrevented) {
 589          ourHandler?.(...args);
 590        }
 591        return result2;
 592      }
 593      const result = theirHandler(...args);
 594      ourHandler?.(...args);
 595      return result;
 596    };
 597  }
 598  function wrapEventHandler(handler) {
 599    if (!handler) {
 600      return handler;
 601    }
 602    return (...args) => {
 603      const event = args[0];
 604      if (isSyntheticEvent(event)) {
 605        makeEventPreventable(event);
 606      }
 607      return handler(...args);
 608    };
 609  }
 610  function makeEventPreventable(event) {
 611    event.preventBaseUIHandler = () => {
 612      event.baseUIHandlerPrevented = true;
 613    };
 614    return event;
 615  }
 616  function mergeClassNames(ourClassName, theirClassName) {
 617    if (theirClassName) {
 618      if (ourClassName) {
 619        return theirClassName + " " + ourClassName;
 620      }
 621      return theirClassName;
 622    }
 623    return ourClassName;
 624  }
 625  function isSyntheticEvent(event) {
 626    return event != null && typeof event === "object" && "nativeEvent" in event;
 627  }
 628  
 629  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useRenderElement.mjs
 630  var import_react = __toESM(require_react(), 1);
 631  function useRenderElement(element, componentProps, params = {}) {
 632    let renderProp = componentProps.render;
 633    if (params.enabled !== false) {
 634      renderProp = unwrapLazyRenderProp(renderProp);
 635    }
 636    const outProps = useRenderElementProps(componentProps, params, renderProp);
 637    if (params.enabled === false) {
 638      return null;
 639    }
 640    const state = params.state ?? EMPTY_OBJECT;
 641    return evaluateRenderProp(element, renderProp, outProps, state);
 642  }
 643  function useRenderElementProps(componentProps, params, renderProp) {
 644    const {
 645      className: classNameProp,
 646      style: styleProp
 647    } = componentProps;
 648    const {
 649      state = EMPTY_OBJECT,
 650      ref,
 651      props,
 652      stateAttributesMapping,
 653      enabled = true
 654    } = params;
 655    const className = enabled ? resolveClassName(classNameProp, state) : void 0;
 656    const style = enabled ? resolveStyle(styleProp, state) : void 0;
 657    const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
 658    const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0;
 659    const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT;
 660    if (typeof document !== "undefined") {
 661      if (!enabled) {
 662        void useMergedRefs(null, null);
 663      } else if (Array.isArray(ref)) {
 664        outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);
 665      } else {
 666        outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);
 667      }
 668    }
 669    if (!enabled) {
 670      return EMPTY_OBJECT;
 671    }
 672    if (className !== void 0) {
 673      outProps.className = mergeClassNames(outProps.className, className);
 674    }
 675    if (style !== void 0) {
 676      outProps.style = mergeObjects(outProps.style, style);
 677    }
 678    return outProps;
 679  }
 680  function resolveRenderFunctionProps(props) {
 681    if (Array.isArray(props)) {
 682      return mergePropsN(props);
 683    }
 684    return mergeProps(void 0, props);
 685  }
 686  var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
 687  var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/;
 688  var LOWERCASE_CHARACTER_PATTERN = /[a-z]/;
 689  function unwrapLazyRenderProp(render) {
 690    if (render?.$$typeof !== REACT_LAZY_TYPE) {
 691      return render;
 692    }
 693    const unwrapped = React4.Children.toArray(render)[0];
 694    return /* @__PURE__ */ React4.isValidElement(unwrapped) ? unwrapped : render;
 695  }
 696  function evaluateRenderProp(element, render, props, state) {
 697    if (render) {
 698      if (typeof render === "function") {
 699        if (true) {
 700          warnIfRenderPropLooksLikeComponent(render);
 701        }
 702        return render(props, state);
 703      }
 704      const mergedProps = mergeProps(props, render.props);
 705      mergedProps.ref = props.ref;
 706      if (true) {
 707        if (!/* @__PURE__ */ React4.isValidElement(render)) {
 708          throw new Error(["Base UI: The `render` prop was provided an invalid React element as `React.isValidElement(render)` is `false`.", "A valid React element must be provided to the `render` prop because it is cloned with props to replace the default element.", "https://base-ui.com/r/invalid-render-prop"].join("\n"));
 709        }
 710      }
 711      return /* @__PURE__ */ React4.cloneElement(render, mergedProps);
 712    }
 713    return renderTag(element, props);
 714  }
 715  function warnIfRenderPropLooksLikeComponent(renderFn) {
 716    const functionName = renderFn.name;
 717    if (functionName.length === 0) {
 718      return;
 719    }
 720    if (!COMPONENT_IDENTIFIER_PATTERN.test(functionName)) {
 721      return;
 722    }
 723    if (!LOWERCASE_CHARACTER_PATTERN.test(functionName)) {
 724      return;
 725    }
 726    warn(`The \`render\` prop received a function named \`$functionName}\` that starts with an uppercase letter.`, "This usually means a React component was passed directly as `render={Component}`.", "Base UI calls `render` as a plain function, which can break the Rules of Hooks during reconciliation.", "If this is an intentional render callback, rename it to start with a lowercase letter.", "Use `render={<Component />}` or `render={(props) => <Component {...props} />}` instead.", "https://base-ui.com/r/invalid-render-prop");
 727  }
 728  function renderTag(Tag, props) {
 729    if (Tag === "button") {
 730      return /* @__PURE__ */ (0, import_react.createElement)("button", {
 731        type: "button",
 732        ...props,
 733        key: props.key
 734      });
 735    }
 736    if (Tag === "img") {
 737      return /* @__PURE__ */ (0, import_react.createElement)("img", {
 738        alt: "",
 739        ...props,
 740        key: props.key
 741      });
 742    }
 743    return /* @__PURE__ */ React4.createElement(Tag, props);
 744  }
 745  
 746  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/safeReact.mjs
 747  var React5 = __toESM(require_react(), 1);
 748  var SafeReact = {
 749    ...React5
 750  };
 751  
 752  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useStableCallback.mjs
 753  var useInsertionEffect = SafeReact.useInsertionEffect;
 754  var useSafeInsertionEffect = (
 755    // React 17 doesn't have useInsertionEffect.
 756    useInsertionEffect && // Preact replaces useInsertionEffect with useLayoutEffect and fires too late.
 757    useInsertionEffect !== SafeReact.useLayoutEffect ? useInsertionEffect : (fn) => fn()
 758  );
 759  function useStableCallback(callback) {
 760    const stable = useRefWithInit(createStableCallback).current;
 761    stable.next = callback;
 762    useSafeInsertionEffect(stable.effect);
 763    return stable.trampoline;
 764  }
 765  function createStableCallback() {
 766    const stable = {
 767      next: void 0,
 768      callback: assertNotCalled,
 769      trampoline: (...args) => stable.callback?.(...args),
 770      effect: () => {
 771        stable.callback = stable.next;
 772      }
 773    };
 774    return stable;
 775  }
 776  function assertNotCalled() {
 777    if (true) {
 778      throw (
 779        /* minify-error-disabled */
 780        new Error("Base UI: Cannot call an event handler while rendering.")
 781      );
 782    }
 783  }
 784  
 785  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useIsoLayoutEffect.mjs
 786  var React6 = __toESM(require_react(), 1);
 787  var noop = () => {
 788  };
 789  var useIsoLayoutEffect = typeof document !== "undefined" ? React6.useLayoutEffect : noop;
 790  
 791  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs
 792  var React8 = __toESM(require_react(), 1);
 793  
 794  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnimationsFinished.mjs
 795  var ReactDOM = __toESM(require_react_dom(), 1);
 796  
 797  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useOnMount.mjs
 798  var React7 = __toESM(require_react(), 1);
 799  function useOnMount(fn) {
 800    React7.useEffect(fn, EMPTY_ARRAY);
 801  }
 802  
 803  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useAnimationFrame.mjs
 804  var EMPTY = null;
 805  var LAST_RAF = globalThis.requestAnimationFrame;
 806  var Scheduler = class {
 807    /* This implementation uses an array as a backing data-structure for frame callbacks.
 808     * It allows `O(1)` callback cancelling by inserting a `null` in the array, though it
 809     * never calls the native `cancelAnimationFrame` if there are no frames left. This can
 810     * be much more efficient if there is a call pattern that alterns as
 811     * "request-cancel-request-cancel-…".
 812     * But in the case of "request-request-…-cancel-cancel-…", it leaves the final animation
 813     * frame to run anyway. We turn that frame into a `O(1)` no-op via `callbacksCount`. */
 814    callbacks = [];
 815    callbacksCount = 0;
 816    nextId = 1;
 817    startId = 1;
 818    isScheduled = false;
 819    tick = (timestamp) => {
 820      this.isScheduled = false;
 821      const currentCallbacks = this.callbacks;
 822      const currentCallbacksCount = this.callbacksCount;
 823      this.callbacks = [];
 824      this.callbacksCount = 0;
 825      this.startId = this.nextId;
 826      if (currentCallbacksCount > 0) {
 827        for (let i = 0; i < currentCallbacks.length; i += 1) {
 828          currentCallbacks[i]?.(timestamp);
 829        }
 830      }
 831    };
 832    request(fn) {
 833      const id = this.nextId;
 834      this.nextId += 1;
 835      this.callbacks.push(fn);
 836      this.callbacksCount += 1;
 837      const didRAFChange = LAST_RAF !== requestAnimationFrame && (LAST_RAF = requestAnimationFrame, true);
 838      if (!this.isScheduled || didRAFChange) {
 839        requestAnimationFrame(this.tick);
 840        this.isScheduled = true;
 841      }
 842      return id;
 843    }
 844    cancel(id) {
 845      const index2 = id - this.startId;
 846      if (index2 < 0 || index2 >= this.callbacks.length) {
 847        return;
 848      }
 849      if (this.callbacks[index2] === null) {
 850        return;
 851      }
 852      this.callbacks[index2] = null;
 853      this.callbacksCount -= 1;
 854    }
 855  };
 856  var scheduler = new Scheduler();
 857  var AnimationFrame = class _AnimationFrame {
 858    static create() {
 859      return new _AnimationFrame();
 860    }
 861    static request(fn) {
 862      return scheduler.request(fn);
 863    }
 864    static cancel(id) {
 865      return scheduler.cancel(id);
 866    }
 867    currentId = EMPTY;
 868    /**
 869     * Executes `fn` after `delay`, clearing any previously scheduled call.
 870     */
 871    request(fn) {
 872      this.cancel();
 873      this.currentId = scheduler.request(() => {
 874        this.currentId = EMPTY;
 875        fn();
 876      });
 877    }
 878    cancel = () => {
 879      if (this.currentId !== EMPTY) {
 880        scheduler.cancel(this.currentId);
 881        this.currentId = EMPTY;
 882      }
 883    };
 884    disposeEffect = () => {
 885      return this.cancel;
 886    };
 887  };
 888  function useAnimationFrame() {
 889    const timeout = useRefWithInit(AnimationFrame.create).current;
 890    useOnMount(timeout.disposeEffect);
 891    return timeout;
 892  }
 893  
 894  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/resolveRef.mjs
 895  function resolveRef(maybeRef) {
 896    if (maybeRef == null) {
 897      return maybeRef;
 898    }
 899    return "current" in maybeRef ? maybeRef.current : maybeRef;
 900  }
 901  
 902  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/getFiniteAnimations.mjs
 903  function getFiniteAnimations(element, options) {
 904    return element.getAnimations(options).filter((animation) => {
 905      const timing = animation.effect?.getTiming();
 906      return timing?.duration !== Infinity && timing?.iterations !== Infinity;
 907    });
 908  }
 909  
 910  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/TransitionStatusDataAttributes.mjs
 911  var startingStyle = "data-starting-style";
 912  var endingStyle = "data-ending-style";
 913  
 914  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnimationsFinished.mjs
 915  var pendingCallbacks = null;
 916  function flushBeforePaint(fn) {
 917    if (!pendingCallbacks) {
 918      const callbacks = [];
 919      pendingCallbacks = callbacks;
 920      queueMicrotask(() => {
 921        pendingCallbacks = null;
 922        ReactDOM.flushSync(() => {
 923          for (const callback of callbacks) {
 924            callback();
 925          }
 926        });
 927      });
 928    }
 929    pendingCallbacks.push(fn);
 930  }
 931  function useAnimationsFinished(elementOrRef, waitForStartingStyleRemoved = false, batch = false) {
 932    const frame = useAnimationFrame();
 933    return useStableCallback((fnToExecute, signal = null) => {
 934      frame.cancel();
 935      const element = resolveRef(elementOrRef);
 936      if (element == null) {
 937        return;
 938      }
 939      const resolvedElement = element;
 940      const done = () => {
 941        if (!batch) {
 942          ReactDOM.flushSync(fnToExecute);
 943          return;
 944        }
 945        flushBeforePaint(() => {
 946          if (!signal?.aborted) {
 947            fnToExecute();
 948          }
 949        });
 950      };
 951      if (typeof resolvedElement.getAnimations !== "function" || globalThis.BASE_UI_ANIMATIONS_DISABLED) {
 952        fnToExecute();
 953        return;
 954      }
 955      function exec() {
 956        Promise.all(getFiniteAnimations(resolvedElement).map((animation) => animation.finished.then(NOOP))).then(() => {
 957          if (!signal?.aborted) {
 958            done();
 959          }
 960        }, () => {
 961          if (signal?.aborted) {
 962            return;
 963          }
 964          const currentAnimations = getFiniteAnimations(resolvedElement);
 965          if (currentAnimations.some((animation) => animation.pending || animation.playState !== "finished")) {
 966            exec();
 967            return;
 968          }
 969          done();
 970        });
 971      }
 972      if (waitForStartingStyleRemoved) {
 973        const startingStyleAttribute = startingStyle;
 974        if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
 975          frame.request(exec);
 976          return;
 977        }
 978        const attributeObserver = new MutationObserver(() => {
 979          if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
 980            attributeObserver.disconnect();
 981            exec();
 982          }
 983        });
 984        attributeObserver.observe(resolvedElement, {
 985          attributes: true,
 986          attributeFilter: [startingStyleAttribute]
 987        });
 988        signal?.addEventListener("abort", () => attributeObserver.disconnect(), {
 989          once: true
 990        });
 991        return;
 992      }
 993      frame.request(exec);
 994    });
 995  }
 996  
 997  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs
 998  function useOpenChangeComplete(parameters) {
 999    const {
1000      enabled = true,
1001      open: open2,
1002      ref,
1003      batch = false,
1004      onComplete: onCompleteParam
1005    } = parameters;
1006    const onComplete = useStableCallback(onCompleteParam);
1007    const runOnceAnimationsFinish = useAnimationsFinished(ref, open2, batch);
1008    React8.useEffect(() => {
1009      if (!enabled) {
1010        return void 0;
1011      }
1012      const abortController = new AbortController();
1013      runOnceAnimationsFinish(onComplete, abortController.signal);
1014      return () => {
1015        abortController.abort();
1016      };
1017    }, [enabled, open2, onComplete, runOnceAnimationsFinish]);
1018  }
1019  
1020  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/stateAttributesMapping.mjs
1021  var STARTING_HOOK = {
1022    [startingStyle]: ""
1023  };
1024  var ENDING_HOOK = {
1025    [endingStyle]: ""
1026  };
1027  var transitionStatusMapping = {
1028    transitionStatus(value) {
1029      if (value === "starting") {
1030        return STARTING_HOOK;
1031      }
1032      if (value === "ending") {
1033        return ENDING_HOOK;
1034      }
1035      return null;
1036    }
1037  };
1038  
1039  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useTransitionStatus.mjs
1040  var React9 = __toESM(require_react(), 1);
1041  function useTransitionStatus(open2, enableIdleState = false, deferEndingState = false, animateInitialOpen = false) {
1042    const [transitionStatus, setTransitionStatus] = React9.useState(open2 && enableIdleState ? "idle" : void 0);
1043    const [mounted, setMounted] = React9.useState(open2 && !animateInitialOpen);
1044    if (open2 && !mounted) {
1045      setMounted(true);
1046      setTransitionStatus("starting");
1047    }
1048    if (!open2 && mounted && transitionStatus !== "ending" && !deferEndingState) {
1049      setTransitionStatus("ending");
1050    }
1051    if (!open2 && !mounted && transitionStatus === "ending") {
1052      setTransitionStatus(void 0);
1053    }
1054    useIsoLayoutEffect(() => {
1055      if (!open2 && mounted && transitionStatus !== "ending" && deferEndingState) {
1056        const frame = AnimationFrame.request(() => {
1057          setTransitionStatus("ending");
1058        });
1059        return () => {
1060          AnimationFrame.cancel(frame);
1061        };
1062      }
1063      return void 0;
1064    }, [open2, mounted, transitionStatus, deferEndingState]);
1065    useIsoLayoutEffect(() => {
1066      if (!open2 || enableIdleState || transitionStatus === void 0) {
1067        return void 0;
1068      }
1069      const frame = AnimationFrame.request(() => {
1070        setTransitionStatus(void 0);
1071      });
1072      return () => {
1073        AnimationFrame.cancel(frame);
1074      };
1075    }, [enableIdleState, open2, transitionStatus]);
1076    useIsoLayoutEffect(() => {
1077      if (!open2 || !enableIdleState) {
1078        return void 0;
1079      }
1080      if (open2 && mounted && transitionStatus !== "idle") {
1081        setTransitionStatus("starting");
1082      }
1083      const frame = AnimationFrame.request(() => {
1084        setTransitionStatus("idle");
1085      });
1086      return () => {
1087        AnimationFrame.cancel(frame);
1088      };
1089    }, [enableIdleState, open2, mounted, transitionStatus]);
1090    return {
1091      mounted,
1092      setMounted,
1093      transitionStatus
1094    };
1095  }
1096  
1097  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useTimeout.mjs
1098  var EMPTY2 = 0;
1099  var Timeout = class _Timeout {
1100    static create() {
1101      return new _Timeout();
1102    }
1103    currentId = EMPTY2;
1104    /**
1105     * Executes `fn` after `delay`, clearing any previously scheduled call.
1106     */
1107    start(delay, fn) {
1108      this.clear();
1109      this.currentId = setTimeout(() => {
1110        this.currentId = EMPTY2;
1111        fn();
1112      }, delay);
1113    }
1114    isStarted() {
1115      return this.currentId !== EMPTY2;
1116    }
1117    clear = () => {
1118      if (this.currentId !== EMPTY2) {
1119        clearTimeout(this.currentId);
1120        this.currentId = EMPTY2;
1121      }
1122    };
1123    disposeEffect = () => {
1124      return this.clear;
1125    };
1126  };
1127  function useTimeout() {
1128    const timeout = useRefWithInit(Timeout.create).current;
1129    useOnMount(timeout.disposeEffect);
1130    return timeout;
1131  }
1132  
1133  // node_modules/.store/clsx@2.1.1-XOLP1vUL9vEGfpiXm37fAw/node_modules/clsx/dist/clsx.mjs
1134  function r(e) {
1135    var t, f, n = "";
1136    if ("string" == typeof e || "number" == typeof e) n += e;
1137    else if ("object" == typeof e) if (Array.isArray(e)) {
1138      var o = e.length;
1139      for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
1140    } else for (f in e) e[f] && (n && (n += " "), n += f);
1141    return n;
1142  }
1143  function clsx() {
1144    for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
1145    return n;
1146  }
1147  var clsx_default = clsx;
1148  
1149  // packages/ui/build-module/icon/icon.mjs
1150  var import_element = __toESM(require_element(), 1);
1151  var import_primitives = __toESM(require_primitives(), 1);
1152  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
1153  var Icon = (0, import_element.forwardRef)(
1154    function UnforwardedIcon({ icon, size: size4 = 24, style, ...restProps }, ref) {
1155      const mergedStyle = icon.props.style || style ? { ...icon.props.style, ...style } : void 0;
1156      return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1157        import_primitives.SVG,
1158        {
1159          ref,
1160          ...icon.props,
1161          ...restProps,
1162          ...mergedStyle ? { style: mergedStyle } : {},
1163          width: size4,
1164          height: size4
1165        }
1166      );
1167    }
1168  );
1169  
1170  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/error.mjs
1171  var error = createLogOnce("error", "Base UI");
1172  
1173  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useId.mjs
1174  var React11 = __toESM(require_react(), 1);
1175  
1176  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useForcedRerendering.mjs
1177  var React10 = __toESM(require_react(), 1);
1178  function useForcedRerendering() {
1179    const [, setState] = React10.useState({});
1180    return React10.useCallback(() => {
1181      setState({});
1182    }, []);
1183  }
1184  
1185  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useId.mjs
1186  var globalId = 0;
1187  function useGlobalId(idOverride, prefix = "mui") {
1188    const defaultId = React11.useRef(void 0);
1189    const forceRerender = useForcedRerendering();
1190    const id = idOverride ?? defaultId.current;
1191    React11.useEffect(() => {
1192      if (defaultId.current == null) {
1193        globalId += 1;
1194        defaultId.current = `$prefix}-$globalId}`;
1195        if (idOverride == null) {
1196          forceRerender();
1197        }
1198      }
1199    }, [idOverride, prefix, forceRerender]);
1200    return id;
1201  }
1202  var maybeReactUseId = SafeReact.useId;
1203  function useId(idOverride, prefix) {
1204    if (maybeReactUseId !== void 0) {
1205      const reactId = maybeReactUseId();
1206      return idOverride ?? (prefix ? `$prefix}-$reactId}` : reactId);
1207    }
1208    return useGlobalId(idOverride, prefix);
1209  }
1210  
1211  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useBaseUiId.mjs
1212  function useBaseUiId(idOverride) {
1213    return useId(idOverride, "base-ui");
1214  }
1215  
1216  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/createBaseUIEventDetails.mjs
1217  function createChangeEventDetails(reason, event, trigger, customProperties) {
1218    let canceled = false;
1219    let allowPropagation = false;
1220    const custom = customProperties ?? EMPTY_OBJECT;
1221    const details = {
1222      reason,
1223      event: event ?? new Event("base-ui"),
1224      cancel() {
1225        canceled = true;
1226      },
1227      allowPropagation() {
1228        allowPropagation = true;
1229      },
1230      get isCanceled() {
1231        return canceled;
1232      },
1233      get isPropagationAllowed() {
1234        return allowPropagation;
1235      },
1236      trigger,
1237      ...custom
1238    };
1239    return details;
1240  }
1241  
1242  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/reason-parts.mjs
1243  var reason_parts_exports = {};
1244  __export(reason_parts_exports, {
1245    cancelOpen: () => cancelOpen,
1246    chipRemovePress: () => chipRemovePress,
1247    clearPress: () => clearPress,
1248    closePress: () => closePress,
1249    closeWatcher: () => closeWatcher,
1250    decrementPress: () => decrementPress,
1251    disabled: () => disabled,
1252    drag: () => drag,
1253    escapeKey: () => escapeKey,
1254    focusOut: () => focusOut,
1255    imperativeAction: () => imperativeAction,
1256    incrementPress: () => incrementPress,
1257    initial: () => initial,
1258    inputBlur: () => inputBlur,
1259    inputChange: () => inputChange,
1260    inputClear: () => inputClear,
1261    inputPaste: () => inputPaste,
1262    inputPress: () => inputPress,
1263    itemPress: () => itemPress,
1264    keyboard: () => keyboard,
1265    linkPress: () => linkPress,
1266    listNavigation: () => listNavigation,
1267    missing: () => missing,
1268    none: () => none,
1269    outsidePress: () => outsidePress,
1270    pointer: () => pointer,
1271    popupClose: () => popupClose,
1272    scrub: () => scrub,
1273    siblingOpen: () => siblingOpen,
1274    swipe: () => swipe,
1275    trackPress: () => trackPress,
1276    triggerFocus: () => triggerFocus,
1277    triggerHover: () => triggerHover,
1278    triggerPress: () => triggerPress,
1279    wheel: () => wheel,
1280    windowResize: () => windowResize
1281  });
1282  var none = "none";
1283  var triggerPress = "trigger-press";
1284  var triggerHover = "trigger-hover";
1285  var triggerFocus = "trigger-focus";
1286  var outsidePress = "outside-press";
1287  var itemPress = "item-press";
1288  var closePress = "close-press";
1289  var linkPress = "link-press";
1290  var clearPress = "clear-press";
1291  var chipRemovePress = "chip-remove-press";
1292  var trackPress = "track-press";
1293  var incrementPress = "increment-press";
1294  var decrementPress = "decrement-press";
1295  var inputChange = "input-change";
1296  var inputClear = "input-clear";
1297  var inputBlur = "input-blur";
1298  var inputPaste = "input-paste";
1299  var inputPress = "input-press";
1300  var focusOut = "focus-out";
1301  var escapeKey = "escape-key";
1302  var closeWatcher = "close-watcher";
1303  var listNavigation = "list-navigation";
1304  var keyboard = "keyboard";
1305  var pointer = "pointer";
1306  var drag = "drag";
1307  var wheel = "wheel";
1308  var scrub = "scrub";
1309  var popupClose = "popup-close";
1310  var cancelOpen = "cancel-open";
1311  var siblingOpen = "sibling-open";
1312  var disabled = "disabled";
1313  var missing = "missing";
1314  var initial = "initial";
1315  var imperativeAction = "imperative-action";
1316  var swipe = "swipe";
1317  var windowResize = "window-resize";
1318  
1319  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/use-button/useButton.mjs
1320  var React14 = __toESM(require_react(), 1);
1321  
1322  // node_modules/.store/@floating-ui/utils@0.2.12-gOxTzMf36nCrbeHpEew-rw/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
1323  function hasWindow() {
1324    return typeof window !== "undefined";
1325  }
1326  function getNodeName(node) {
1327    if (isNode(node)) {
1328      return (node.nodeName || "").toLowerCase();
1329    }
1330    return "#document";
1331  }
1332  function getWindow(node) {
1333    var _node$ownerDocument;
1334    return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
1335  }
1336  function getDocumentElement(node) {
1337    var _ref;
1338    return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
1339  }
1340  function isNode(value) {
1341    if (!hasWindow()) {
1342      return false;
1343    }
1344    return value instanceof Node || value instanceof getWindow(value).Node;
1345  }
1346  function isElement(value) {
1347    if (!hasWindow()) {
1348      return false;
1349    }
1350    return value instanceof Element || value instanceof getWindow(value).Element;
1351  }
1352  function isHTMLElement(value) {
1353    if (!hasWindow()) {
1354      return false;
1355    }
1356    return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
1357  }
1358  function isShadowRoot(value) {
1359    if (!hasWindow() || typeof ShadowRoot === "undefined") {
1360      return false;
1361    }
1362    return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
1363  }
1364  function isOverflowElement(element) {
1365    const {
1366      overflow,
1367      overflowX,
1368      overflowY,
1369      display
1370    } = getComputedStyle2(element);
1371    return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== "inline" && display !== "contents";
1372  }
1373  function isTableElement(element) {
1374    return /^(table|td|th)$/.test(getNodeName(element));
1375  }
1376  function isTopLayer(element) {
1377    try {
1378      if (element.matches(":popover-open")) {
1379        return true;
1380      }
1381    } catch (_e) {
1382    }
1383    try {
1384      return element.matches(":modal");
1385    } catch (_e) {
1386      return false;
1387    }
1388  }
1389  var willChangeRe = /transform|translate|scale|rotate|perspective|filter/;
1390  var containRe = /paint|layout|strict|content/;
1391  var isNotNone = (value) => !!value && value !== "none";
1392  var isWebKitValue;
1393  function isContainingBlock(elementOrCss) {
1394    const css = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
1395    return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || "") || containRe.test(css.contain || "");
1396  }
1397  function getContainingBlock(element) {
1398    let currentNode = getParentNode(element);
1399    while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
1400      if (isContainingBlock(currentNode)) {
1401        return currentNode;
1402      } else if (isTopLayer(currentNode)) {
1403        return null;
1404      }
1405      currentNode = getParentNode(currentNode);
1406    }
1407    return null;
1408  }
1409  function isWebKit() {
1410    if (isWebKitValue == null) {
1411      isWebKitValue = typeof CSS !== "undefined" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none");
1412    }
1413    return isWebKitValue;
1414  }
1415  function isLastTraversableNode(node) {
1416    return /^(html|body|#document)$/.test(getNodeName(node));
1417  }
1418  function getComputedStyle2(element) {
1419    return getWindow(element).getComputedStyle(element);
1420  }
1421  function getNodeScroll(element) {
1422    if (isElement(element)) {
1423      return {
1424        scrollLeft: element.scrollLeft,
1425        scrollTop: element.scrollTop
1426      };
1427    }
1428    return {
1429      scrollLeft: element.scrollX,
1430      scrollTop: element.scrollY
1431    };
1432  }
1433  function getParentNode(node) {
1434    if (getNodeName(node) === "html") {
1435      return node;
1436    }
1437    const result = (
1438      // Step into the shadow DOM of the parent of a slotted node.
1439      node.assignedSlot || // DOM Element detected.
1440      node.parentNode || // ShadowRoot detected.
1441      isShadowRoot(node) && node.host || // Fallback.
1442      getDocumentElement(node)
1443    );
1444    return isShadowRoot(result) ? result.host : result;
1445  }
1446  function getNearestOverflowAncestor(node) {
1447    const parentNode = getParentNode(node);
1448    if (isLastTraversableNode(parentNode)) {
1449      return (node.ownerDocument || node).body;
1450    }
1451    if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
1452      return parentNode;
1453    }
1454    return getNearestOverflowAncestor(parentNode);
1455  }
1456  function getOverflowAncestors(node, list, traverseIframes) {
1457    var _node$ownerDocument2;
1458    if (list === void 0) {
1459      list = [];
1460    }
1461    if (traverseIframes === void 0) {
1462      traverseIframes = true;
1463    }
1464    const scrollableAncestor = getNearestOverflowAncestor(node);
1465    const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
1466    const win = getWindow(scrollableAncestor);
1467    if (isBody) {
1468      const frameElement = getFrameElement(win);
1469      return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
1470    } else {
1471      return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
1472    }
1473  }
1474  function getFrameElement(win) {
1475    return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
1476  }
1477  
1478  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/composite/root/CompositeRootContext.mjs
1479  var React12 = __toESM(require_react(), 1);
1480  var CompositeRootContext = /* @__PURE__ */ React12.createContext(void 0);
1481  if (true) CompositeRootContext.displayName = "CompositeRootContext";
1482  function useCompositeRootContext(optional = false) {
1483    const context = React12.useContext(CompositeRootContext);
1484    if (context === void 0 && !optional) {
1485      throw new Error(true ? "Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>." : formatErrorMessage_default(16));
1486    }
1487    return context;
1488  }
1489  
1490  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/useFocusableWhenDisabled.mjs
1491  var React13 = __toESM(require_react(), 1);
1492  function useFocusableWhenDisabled(parameters) {
1493    const {
1494      focusableWhenDisabled,
1495      disabled: disabled2,
1496      composite = false,
1497      tabIndex: tabIndexProp = 0,
1498      isNativeButton
1499    } = parameters;
1500    const isFocusableComposite = composite && focusableWhenDisabled !== false;
1501    const isNonFocusableComposite = composite && focusableWhenDisabled === false;
1502    const props = React13.useMemo(() => {
1503      const additionalProps = {
1504        // allow Tabbing away from focusableWhenDisabled elements
1505        onKeyDown(event) {
1506          if (disabled2 && focusableWhenDisabled && event.key !== "Tab") {
1507            event.preventDefault();
1508          }
1509        }
1510      };
1511      if (!composite) {
1512        additionalProps.tabIndex = tabIndexProp;
1513        if (!isNativeButton && disabled2) {
1514          additionalProps.tabIndex = focusableWhenDisabled ? tabIndexProp : -1;
1515        }
1516      }
1517      if (isNativeButton && (focusableWhenDisabled || isFocusableComposite) || !isNativeButton && disabled2) {
1518        additionalProps["aria-disabled"] = disabled2;
1519      }
1520      if (isNativeButton && (!focusableWhenDisabled || isNonFocusableComposite)) {
1521        additionalProps.disabled = disabled2;
1522      }
1523      return additionalProps;
1524    }, [composite, disabled2, focusableWhenDisabled, isFocusableComposite, isNonFocusableComposite, isNativeButton, tabIndexProp]);
1525    return {
1526      props
1527    };
1528  }
1529  
1530  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/owner.mjs
1531  function ownerDocument(node) {
1532    return node?.ownerDocument || document;
1533  }
1534  
1535  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/dispatchClickWithModifiers.mjs
1536  function dispatchClickWithModifiers(target, sourceEvent, {
1537    detail = 0,
1538    pointerType = ""
1539  } = {}) {
1540    target.dispatchEvent(new (getWindow(target)).PointerEvent("click", {
1541      bubbles: true,
1542      cancelable: true,
1543      composed: true,
1544      detail,
1545      pointerType,
1546      shiftKey: sourceEvent.shiftKey,
1547      ctrlKey: sourceEvent.ctrlKey,
1548      altKey: sourceEvent.altKey,
1549      metaKey: sourceEvent.metaKey
1550    }));
1551  }
1552  
1553  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/use-button/useButton.mjs
1554  function useButton(parameters = {}) {
1555    const {
1556      disabled: disabled2 = false,
1557      focusableWhenDisabled,
1558      tabIndex = 0,
1559      native: isNativeButton = true,
1560      composite: compositeProp
1561    } = parameters;
1562    const elementRef = React14.useRef(null);
1563    const compositeRootContext = useCompositeRootContext(true);
1564    const isCompositeItem = compositeProp ?? compositeRootContext !== void 0;
1565    const {
1566      props: focusableWhenDisabledProps
1567    } = useFocusableWhenDisabled({
1568      focusableWhenDisabled,
1569      disabled: disabled2,
1570      composite: isCompositeItem,
1571      tabIndex,
1572      isNativeButton
1573    });
1574    if (true) {
1575      React14.useEffect(() => {
1576        if (!elementRef.current) {
1577          return;
1578        }
1579        const isButtonTag = isButtonElement(elementRef.current);
1580        if (isNativeButton) {
1581          if (!isButtonTag) {
1582            const ownerStackMessage = SafeReact.captureOwnerStack?.() || "";
1583            const message = "A component that acts as a button expected a native <button> because the `nativeButton` prop is true. Rendering a non-<button> removes native button semantics, which can impact forms and accessibility. Use a real <button> in the `render` prop, or set `nativeButton` to `false`.";
1584            error(`$message}$ownerStackMessage}`);
1585          }
1586        } else if (isButtonTag) {
1587          const ownerStackMessage = SafeReact.captureOwnerStack?.() || "";
1588          const message = "A component that acts as a button expected a non-<button> because the `nativeButton` prop is false. Rendering a <button> keeps native behavior while Base UI applies non-native attributes and handlers, which can add unintended extra attributes (such as `role` or `aria-disabled`). Use a non-<button> in the `render` prop, or set `nativeButton` to `true`.";
1589          error(`$message}$ownerStackMessage}`);
1590        }
1591      }, [isNativeButton]);
1592    }
1593    const updateDisabled = React14.useCallback(() => {
1594      const element = elementRef.current;
1595      if (!isButtonElement(element)) {
1596        return;
1597      }
1598      if (isCompositeItem && disabled2 && focusableWhenDisabledProps.disabled === void 0 && element.disabled) {
1599        element.disabled = false;
1600      }
1601    }, [disabled2, focusableWhenDisabledProps.disabled, isCompositeItem]);
1602    useIsoLayoutEffect(updateDisabled, [updateDisabled]);
1603    const getButtonProps = React14.useCallback((externalProps = {}) => {
1604      const {
1605        onClick: externalOnClick,
1606        onMouseDown: externalOnMouseDown,
1607        onKeyUp: externalOnKeyUp,
1608        onKeyDown: externalOnKeyDown,
1609        onPointerDown: externalOnPointerDown,
1610        ...otherExternalProps
1611      } = externalProps;
1612      return mergeProps({
1613        onClick(event) {
1614          if (disabled2) {
1615            event.preventDefault();
1616            return;
1617          }
1618          externalOnClick?.(event);
1619        },
1620        onMouseDown(event) {
1621          if (!disabled2) {
1622            externalOnMouseDown?.(event);
1623          }
1624        },
1625        onKeyDown(event) {
1626          if (disabled2) {
1627            return;
1628          }
1629          makeEventPreventable(event);
1630          externalOnKeyDown?.(event);
1631          if (event.baseUIHandlerPrevented) {
1632            return;
1633          }
1634          const isCurrentTarget = event.target === event.currentTarget;
1635          const currentTarget = event.currentTarget;
1636          const isButton = isButtonElement(currentTarget);
1637          const isLink = !isNativeButton && isValidLinkElement(currentTarget);
1638          const shouldClick = isCurrentTarget && (isNativeButton ? isButton : !isLink);
1639          const isEnterKey = event.key === "Enter";
1640          const isSpaceKey = event.key === " ";
1641          const role = currentTarget.getAttribute("role");
1642          const isTextNavigationRole = role?.startsWith("menuitem") || role === "option" || role === "gridcell";
1643          if (isCurrentTarget && isCompositeItem && isSpaceKey) {
1644            if (event.defaultPrevented && isTextNavigationRole) {
1645              return;
1646            }
1647            event.preventDefault();
1648            if (!isNativeButton || isButton) {
1649              event.preventBaseUIHandler();
1650              dispatchClickWithModifiers(currentTarget, event);
1651            }
1652            return;
1653          }
1654          if (!shouldClick || isNativeButton || !isSpaceKey && !isEnterKey) {
1655            if (isCurrentTarget && isLink && isSpaceKey) {
1656              event.preventDefault();
1657            }
1658            return;
1659          }
1660          if (event.defaultPrevented) {
1661            return;
1662          }
1663          event.preventDefault();
1664          if (isEnterKey) {
1665            event.preventBaseUIHandler();
1666            dispatchClickWithModifiers(currentTarget, event);
1667          }
1668        },
1669        onKeyUp(event) {
1670          if (disabled2) {
1671            return;
1672          }
1673          makeEventPreventable(event);
1674          externalOnKeyUp?.(event);
1675          if (event.target === event.currentTarget && isNativeButton && isCompositeItem && isButtonElement(event.currentTarget) && event.key === " ") {
1676            event.preventDefault();
1677            return;
1678          }
1679          if (event.baseUIHandlerPrevented) {
1680            return;
1681          }
1682          if (event.target === event.currentTarget && !isNativeButton && !isCompositeItem && !event.defaultPrevented && event.key === " ") {
1683            event.preventBaseUIHandler();
1684            dispatchClickWithModifiers(event.currentTarget, event);
1685          }
1686        },
1687        onPointerDown(event) {
1688          if (disabled2) {
1689            event.preventDefault();
1690            return;
1691          }
1692          externalOnPointerDown?.(event);
1693        }
1694      }, isNativeButton ? {
1695        type: "button"
1696      } : {
1697        role: "button"
1698      }, focusableWhenDisabledProps, otherExternalProps);
1699    }, [disabled2, focusableWhenDisabledProps, isCompositeItem, isNativeButton]);
1700    const buttonRef = useStableCallback((element) => {
1701      elementRef.current = element;
1702      updateDisabled();
1703    });
1704    return {
1705      getButtonProps,
1706      buttonRef
1707    };
1708  }
1709  function isButtonElement(elem) {
1710    return isHTMLElement(elem) && elem.tagName === "BUTTON";
1711  }
1712  function isValidLinkElement(elem) {
1713    return isHTMLElement(elem) && elem.tagName === "A" && Boolean(elem.href);
1714  }
1715  
1716  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/addEventListener.mjs
1717  function addEventListener(target, type, listener, options) {
1718    target.addEventListener(type, listener, options);
1719    return () => {
1720      target.removeEventListener(type, listener, options);
1721    };
1722  }
1723  
1724  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useValueAsRef.mjs
1725  function useValueAsRef(value) {
1726    const latest = useRefWithInit(createLatestRef, value).current;
1727    latest.next = value;
1728    useIsoLayoutEffect(latest.effect);
1729    return latest;
1730  }
1731  function createLatestRef(value) {
1732    const latest = {
1733      current: value,
1734      next: value,
1735      effect: () => {
1736        latest.current = latest.next;
1737      }
1738    };
1739    return latest;
1740  }
1741  
1742  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/parts.mjs
1743  var parts_exports = {};
1744  __export(parts_exports, {
1745    engine: () => engine_exports,
1746    env: () => env_exports,
1747    mediaQuery: () => media_query_exports,
1748    os: () => os_exports,
1749    screenReader: () => screen_reader_exports
1750  });
1751  
1752  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/os.mjs
1753  var os_exports = {};
1754  __export(os_exports, {
1755    android: () => android,
1756    apple: () => apple,
1757    ios: () => ios,
1758    linux: () => linux,
1759    mac: () => mac,
1760    windows: () => windows
1761  });
1762  
1763  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/shared.mjs
1764  function readRawData() {
1765    if (typeof navigator === "undefined") {
1766      return {
1767        userAgent: "",
1768        platform: "",
1769        maxTouchPoints: 0
1770      };
1771    }
1772    if (true) {
1773      const uaData = navigator.userAgentData;
1774      if (uaData && Array.isArray(uaData.brands)) {
1775        return {
1776          userAgent: uaData.brands.map(({
1777            brand,
1778            version: version2
1779          }) => `$brand}/$version2}`).join(" "),
1780          platform: uaData.platform ?? navigator.platform ?? "",
1781          maxTouchPoints: navigator.maxTouchPoints ?? 0
1782        };
1783      }
1784    }
1785    return {
1786      userAgent: navigator.userAgent,
1787      platform: navigator.platform ?? "",
1788      maxTouchPoints: navigator.maxTouchPoints ?? 0
1789    };
1790  }
1791  var {
1792    userAgent,
1793    platform,
1794    maxTouchPoints
1795  } = readRawData();
1796  var lowerUserAgent = userAgent.toLowerCase();
1797  var lowerPlatform = platform.toLowerCase();
1798  
1799  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/os.mjs
1800  var ios = /^i(os$|p)/.test(lowerPlatform) || lowerPlatform === "macintel" && maxTouchPoints > 1;
1801  var ANDROID_STRING = "android";
1802  var android = lowerPlatform === ANDROID_STRING || lowerUserAgent.includes(ANDROID_STRING);
1803  var mac = !ios && lowerPlatform.startsWith("mac");
1804  var windows = lowerPlatform.startsWith("win");
1805  var linux = !android && /^(linux|chrome os)/.test(lowerPlatform);
1806  var apple = mac || ios;
1807  
1808  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/engine.mjs
1809  var engine_exports = {};
1810  __export(engine_exports, {
1811    blink: () => blink,
1812    gecko: () => gecko,
1813    webkit: () => webkit
1814  });
1815  var webkit = typeof CSS !== "undefined" && !!CSS.supports?.("-webkit-backdrop-filter:none");
1816  var gecko = !webkit && lowerUserAgent.includes("firefox");
1817  var blink = !webkit && lowerUserAgent.includes("chrom");
1818  
1819  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/screen-reader.mjs
1820  var screen_reader_exports = {};
1821  __export(screen_reader_exports, {
1822    voiceOver: () => voiceOver
1823  });
1824  var voiceOver = apple;
1825  
1826  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/env.mjs
1827  var env_exports = {};
1828  __export(env_exports, {
1829    jsdom: () => jsdom
1830  });
1831  var jsdom = /jsdom|happydom/.test(lowerUserAgent);
1832  
1833  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/media-query.mjs
1834  var media_query_exports = {};
1835  __export(media_query_exports, {
1836    iOS: () => iOS
1837  });
1838  var iOS = "@supports (-webkit-touch-callout: none)";
1839  
1840  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingDelayGroup.mjs
1841  var React15 = __toESM(require_react(), 1);
1842  
1843  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/event.mjs
1844  function isReactEvent(event) {
1845    return "nativeEvent" in event;
1846  }
1847  function isVirtualClick(event) {
1848    if (event.pointerType === "" && event.isTrusted) {
1849      return true;
1850    }
1851    if (parts_exports.os.android && event.pointerType) {
1852      return event.type === "click" && event.buttons === 1;
1853    }
1854    return event.detail === 0 && !event.pointerType;
1855  }
1856  function isMouseLikePointerType(pointerType, strict) {
1857    const values = ["mouse", "pen"];
1858    if (!strict) {
1859      values.push("", void 0);
1860    }
1861    return values.includes(pointerType);
1862  }
1863  function isClickLikeEvent(event) {
1864    const type = event.type;
1865    return type === "click" || type === "mousedown" || type === "keydown" || type === "keyup";
1866  }
1867  
1868  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/shadowDom.mjs
1869  function activeElement(doc) {
1870    let element = doc.activeElement;
1871    while (element?.shadowRoot?.activeElement != null) {
1872      element = element.shadowRoot.activeElement;
1873    }
1874    return element;
1875  }
1876  function contains(parent, child) {
1877    if (!parent || !child) {
1878      return false;
1879    }
1880    const rootNode = child.getRootNode?.();
1881    if (parent.contains(child)) {
1882      return true;
1883    }
1884    if (rootNode && isShadowRoot(rootNode)) {
1885      let next = child;
1886      while (next) {
1887        if (parent === next) {
1888          return true;
1889        }
1890        next = next.parentNode || next.host;
1891      }
1892    }
1893    return false;
1894  }
1895  function closest(node, selector) {
1896    let current = node;
1897    while (current) {
1898      if (isElement(current) && current.matches(selector)) {
1899        return current;
1900      }
1901      current = current.assignedSlot ?? current.parentNode ?? (isShadowRoot(current) ? current.host : null);
1902    }
1903    return null;
1904  }
1905  function getTarget(event) {
1906    if ("composedPath" in event) {
1907      return event.composedPath()[0] ?? event.target;
1908    }
1909    return event.target;
1910  }
1911  
1912  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/constants.mjs
1913  var FOCUSABLE_ATTRIBUTE = "data-base-ui-focusable";
1914  var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
1915  
1916  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonPopupDataAttributes.mjs
1917  var open = "data-open";
1918  var closed = "data-closed";
1919  var anchorHidden = "data-anchor-hidden";
1920  
1921  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonTriggerDataAttributes.mjs
1922  var CommonTriggerDataAttributes_exports = {};
1923  __export(CommonTriggerDataAttributes_exports, {
1924    popupOpen: () => popupOpen,
1925    pressed: () => pressed
1926  });
1927  var popupOpen = "data-popup-open";
1928  var pressed = "data-pressed";
1929  
1930  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popupStateMapping.mjs
1931  var TRIGGER_HOOK = {
1932    [popupOpen]: ""
1933  };
1934  var PRESSABLE_TRIGGER_HOOK = {
1935    [popupOpen]: "",
1936    [pressed]: ""
1937  };
1938  var POPUP_OPEN_HOOK = {
1939    [open]: ""
1940  };
1941  var POPUP_CLOSED_HOOK = {
1942    [closed]: ""
1943  };
1944  var ANCHOR_HIDDEN_HOOK = {
1945    [anchorHidden]: ""
1946  };
1947  var triggerOpenStateMapping = {
1948    open(value) {
1949      if (value) {
1950        return TRIGGER_HOOK;
1951      }
1952      return null;
1953    }
1954  };
1955  var popupStateMapping = {
1956    open(value) {
1957      if (value) {
1958        return POPUP_OPEN_HOOK;
1959      }
1960      return POPUP_CLOSED_HOOK;
1961    },
1962    anchorHidden(value) {
1963      if (value) {
1964        return ANCHOR_HIDDEN_HOOK;
1965      }
1966      return null;
1967    }
1968  };
1969  var popupTransitionStateMapping = {
1970    ...popupStateMapping,
1971    ...transitionStatusMapping
1972  };
1973  
1974  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/trigger/TooltipTriggerDataAttributes.mjs
1975  var popupOpen2 = CommonTriggerDataAttributes_exports.popupOpen;
1976  var triggerDisabled = "data-trigger-disabled";
1977  
1978  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/element.mjs
1979  function isTargetInsideEnabledTrigger(target, triggerElements) {
1980    if (!isElement(target)) {
1981      return false;
1982    }
1983    const targetElement = target;
1984    if (triggerElements.hasElement(targetElement)) {
1985      return !targetElement.hasAttribute(triggerDisabled);
1986    }
1987    for (const [, trigger] of triggerElements.entries()) {
1988      if (contains(trigger, targetElement)) {
1989        return !trigger.hasAttribute(triggerDisabled);
1990      }
1991    }
1992    return false;
1993  }
1994  function isEventTargetWithin(event, node) {
1995    if (node == null) {
1996      return false;
1997    }
1998    if ("composedPath" in event) {
1999      return event.composedPath().includes(node);
2000    }
2001    const eventAgain = event;
2002    return eventAgain.target != null && node.contains(eventAgain.target);
2003  }
2004  function isRootElement(element) {
2005    return element.matches("html,body");
2006  }
2007  function isTypeableElement(element) {
2008    return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
2009  }
2010  function isInteractiveElement(element) {
2011    return closest(element, `button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),$TYPEABLE_SELECTOR}`) != null;
2012  }
2013  function matchesFocusVisible(element) {
2014    if (!element || parts_exports.env.jsdom) {
2015      return true;
2016    }
2017    try {
2018      return element.matches(":focus-visible");
2019    } catch (_e) {
2020      return true;
2021    }
2022  }
2023  
2024  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverShared.mjs
2025  function resolveValue(value, pointerType) {
2026    if (pointerType != null && !isMouseLikePointerType(pointerType)) {
2027      return 0;
2028    }
2029    if (typeof value === "function") {
2030      return value();
2031    }
2032    return value;
2033  }
2034  function getDelay(value, prop, pointerType) {
2035    const result = resolveValue(value, pointerType);
2036    if (typeof result === "number") {
2037      return result;
2038    }
2039    return result?.[prop];
2040  }
2041  function getRestMs(value) {
2042    if (typeof value === "function") {
2043      return value();
2044    }
2045    return value;
2046  }
2047  function isClickLikeOpenEvent(openEventType, interactedInside) {
2048    return interactedInside || openEventType === "click" || openEventType === "mousedown";
2049  }
2050  function isHoverOpenEvent(openEventType) {
2051    return openEventType?.includes("mouse") && openEventType !== "mousedown";
2052  }
2053  
2054  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingDelayGroup.mjs
2055  var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
2056  var FloatingDelayGroupContext = /* @__PURE__ */ React15.createContext({
2057    hasProvider: false,
2058    timeoutMs: 0,
2059    delayRef: {
2060      current: 0
2061    },
2062    initialDelayRef: {
2063      current: 0
2064    },
2065    timeout: new Timeout(),
2066    currentIdRef: {
2067      current: null
2068    },
2069    currentContextRef: {
2070      current: null
2071    }
2072  });
2073  if (true) FloatingDelayGroupContext.displayName = "FloatingDelayGroupContext";
2074  function resetDelayRef(delayRef, initialDelayRef) {
2075    delayRef.current = initialDelayRef.current;
2076  }
2077  function FloatingDelayGroup(props) {
2078    const {
2079      children,
2080      delay,
2081      timeoutMs = 0
2082    } = props;
2083    const delayRef = React15.useRef(delay);
2084    const initialDelayRef = React15.useRef(delay);
2085    const currentIdRef = React15.useRef(null);
2086    const currentContextRef = React15.useRef(null);
2087    const timeout = useTimeout();
2088    useIsoLayoutEffect(() => {
2089      initialDelayRef.current = delay;
2090      if (!currentIdRef.current) {
2091        delayRef.current = delay;
2092        return;
2093      }
2094      delayRef.current = {
2095        open: getDelay(delayRef.current, "open"),
2096        close: getDelay(delay, "close")
2097      };
2098    }, [delay, currentIdRef, delayRef, initialDelayRef]);
2099    return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FloatingDelayGroupContext.Provider, {
2100      value: React15.useMemo(() => ({
2101        hasProvider: true,
2102        delayRef,
2103        initialDelayRef,
2104        currentIdRef,
2105        timeoutMs,
2106        currentContextRef,
2107        timeout
2108      }), [timeoutMs, timeout]),
2109      children
2110    });
2111  }
2112  function useDelayGroup(store2, options = {
2113    open: false
2114  }) {
2115    const {
2116      open: open2
2117    } = options;
2118    const floatingId = store2.useState("floatingId");
2119    const groupContext = React15.useContext(FloatingDelayGroupContext);
2120    const {
2121      currentIdRef,
2122      delayRef,
2123      timeoutMs,
2124      initialDelayRef,
2125      currentContextRef,
2126      hasProvider,
2127      timeout
2128    } = groupContext;
2129    const [isInstantPhase, setIsInstantPhase] = React15.useState(false);
2130    const openRef = React15.useRef(open2);
2131    useIsoLayoutEffect(() => {
2132      openRef.current = open2;
2133    }, [open2]);
2134    useIsoLayoutEffect(() => {
2135      function unset() {
2136        currentContextRef.current?.setIsInstantPhase(false);
2137        currentIdRef.current = null;
2138        currentContextRef.current = null;
2139        delayRef.current = initialDelayRef.current;
2140        timeout.clear();
2141      }
2142      if (!currentIdRef.current) {
2143        return void 0;
2144      }
2145      if (!open2 && currentIdRef.current === floatingId) {
2146        setIsInstantPhase(false);
2147        if (timeoutMs) {
2148          const closingId = floatingId;
2149          timeout.start(timeoutMs, () => {
2150            if (store2.select("open") || currentIdRef.current && currentIdRef.current !== closingId) {
2151              return;
2152            }
2153            unset();
2154          });
2155          return () => {
2156            if (openRef.current || currentIdRef.current !== closingId) {
2157              timeout.clear();
2158            }
2159          };
2160        }
2161        unset();
2162      }
2163      return void 0;
2164    }, [open2, floatingId, currentIdRef, delayRef, timeoutMs, initialDelayRef, currentContextRef, timeout, store2]);
2165    useIsoLayoutEffect(() => {
2166      if (!open2) {
2167        return;
2168      }
2169      const prevContext = currentContextRef.current;
2170      const prevId = currentIdRef.current;
2171      timeout.clear();
2172      currentContextRef.current = {
2173        onOpenChange: store2.setOpen,
2174        setIsInstantPhase
2175      };
2176      currentIdRef.current = floatingId;
2177      delayRef.current = {
2178        open: 0,
2179        close: getDelay(initialDelayRef.current, "close")
2180      };
2181      if (prevId !== null && prevId !== floatingId) {
2182        setIsInstantPhase(true);
2183        prevContext?.setIsInstantPhase(true);
2184        prevContext?.onOpenChange(false, createChangeEventDetails(reason_parts_exports.none));
2185      } else {
2186        setIsInstantPhase(false);
2187        prevContext?.setIsInstantPhase(false);
2188      }
2189    }, [open2, floatingId, store2, currentIdRef, delayRef, initialDelayRef, currentContextRef, timeout]);
2190    useIsoLayoutEffect(() => {
2191      return () => {
2192        if (currentIdRef.current === floatingId) {
2193          currentContextRef.current = null;
2194          if (!openRef.current) {
2195            return;
2196          }
2197          currentIdRef.current = null;
2198          resetDelayRef(delayRef, initialDelayRef);
2199          timeout.clear();
2200        }
2201      };
2202    }, [currentContextRef, currentIdRef, delayRef, floatingId, initialDelayRef, timeout]);
2203    return React15.useMemo(() => ({
2204      activeIdRef: currentIdRef,
2205      hasProvider,
2206      delayRef,
2207      isInstantPhase
2208    }), [currentIdRef, hasProvider, delayRef, isInstantPhase]);
2209  }
2210  
2211  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/mergeCleanups.mjs
2212  function mergeCleanups(...cleanups) {
2213    return () => {
2214      for (let i = 0; i < cleanups.length; i += 1) {
2215        const cleanup = cleanups[i];
2216        if (cleanup) {
2217          cleanup();
2218        }
2219      }
2220    };
2221  }
2222  
2223  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/FocusGuard.mjs
2224  var React16 = __toESM(require_react(), 1);
2225  
2226  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/visuallyHidden.mjs
2227  var visuallyHiddenBase = {
2228    clipPath: "inset(50%)",
2229    overflow: "hidden",
2230    whiteSpace: "nowrap",
2231    border: 0,
2232    padding: 0,
2233    width: 1,
2234    height: 1,
2235    margin: -1
2236  };
2237  var visuallyHidden = {
2238    ...visuallyHiddenBase,
2239    position: "fixed",
2240    margin: 0,
2241    top: 0,
2242    left: 0
2243  };
2244  var visuallyHiddenInput = {
2245    ...visuallyHiddenBase,
2246    position: "absolute"
2247  };
2248  
2249  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/FocusGuard.mjs
2250  var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
2251  var FocusGuard = /* @__PURE__ */ React16.forwardRef(function FocusGuard2(props, ref) {
2252    const [role, setRole] = React16.useState();
2253    useIsoLayoutEffect(() => {
2254      if (parts_exports.screenReader.voiceOver && parts_exports.engine.webkit) {
2255        setRole("button");
2256      }
2257    }, []);
2258    const restProps = {
2259      tabIndex: 0,
2260      // Role is only for VoiceOver
2261      role
2262    };
2263    return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", {
2264      ...props,
2265      ref,
2266      style: visuallyHidden,
2267      "aria-hidden": role ? void 0 : true,
2268      ...restProps,
2269      "data-base-ui-focus-guard": ""
2270    });
2271  });
2272  if (true) FocusGuard.displayName = "FocusGuard";
2273  
2274  // node_modules/.store/@floating-ui/utils@0.2.12-gOxTzMf36nCrbeHpEew-rw/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
2275  var min = Math.min;
2276  var max = Math.max;
2277  var round = Math.round;
2278  var floor = Math.floor;
2279  var createCoords = (v) => ({
2280    x: v,
2281    y: v
2282  });
2283  var oppositeSideMap = {
2284    left: "right",
2285    right: "left",
2286    bottom: "top",
2287    top: "bottom"
2288  };
2289  function clamp(start, value, end) {
2290    return max(start, min(value, end));
2291  }
2292  function evaluate(value, param) {
2293    return typeof value === "function" ? value(param) : value;
2294  }
2295  function getSide(placement) {
2296    return placement.split("-")[0];
2297  }
2298  function getAlignment(placement) {
2299    return placement.split("-")[1];
2300  }
2301  function getOppositeAxis(axis) {
2302    return axis === "x" ? "y" : "x";
2303  }
2304  function getAxisLength(axis) {
2305    return axis === "y" ? "height" : "width";
2306  }
2307  function getSideAxis(placement) {
2308    const firstChar = placement[0];
2309    return firstChar === "t" || firstChar === "b" ? "y" : "x";
2310  }
2311  function getAlignmentAxis(placement) {
2312    return getOppositeAxis(getSideAxis(placement));
2313  }
2314  function getAlignmentSides(placement, rects, rtl) {
2315    if (rtl === void 0) {
2316      rtl = false;
2317    }
2318    const alignment = getAlignment(placement);
2319    const alignmentAxis = getAlignmentAxis(placement);
2320    const length = getAxisLength(alignmentAxis);
2321    let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
2322    if (rects.reference[length] > rects.floating[length]) {
2323      mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
2324    }
2325    return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
2326  }
2327  function getExpandedPlacements(placement) {
2328    const oppositePlacement = getOppositePlacement(placement);
2329    return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
2330  }
2331  function getOppositeAlignmentPlacement(placement) {
2332    return placement.includes("start") ? placement.replace("start", "end") : placement.replace("end", "start");
2333  }
2334  var lrPlacement = ["left", "right"];
2335  var rlPlacement = ["right", "left"];
2336  var tbPlacement = ["top", "bottom"];
2337  var btPlacement = ["bottom", "top"];
2338  function getSideList(side, isStart, rtl) {
2339    switch (side) {
2340      case "top":
2341      case "bottom":
2342        if (rtl) return isStart ? rlPlacement : lrPlacement;
2343        return isStart ? lrPlacement : rlPlacement;
2344      case "left":
2345      case "right":
2346        return isStart ? tbPlacement : btPlacement;
2347      default:
2348        return [];
2349    }
2350  }
2351  function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
2352    const alignment = getAlignment(placement);
2353    let list = getSideList(getSide(placement), direction === "start", rtl);
2354    if (alignment) {
2355      list = list.map((side) => side + "-" + alignment);
2356      if (flipAlignment) {
2357        list = list.concat(list.map(getOppositeAlignmentPlacement));
2358      }
2359    }
2360    return list;
2361  }
2362  function getOppositePlacement(placement) {
2363    const side = getSide(placement);
2364    return oppositeSideMap[side] + placement.slice(side.length);
2365  }
2366  function expandPaddingObject(padding) {
2367    var _padding$top, _padding$right, _padding$bottom, _padding$left;
2368    return {
2369      top: (_padding$top = padding.top) != null ? _padding$top : 0,
2370      right: (_padding$right = padding.right) != null ? _padding$right : 0,
2371      bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
2372      left: (_padding$left = padding.left) != null ? _padding$left : 0
2373    };
2374  }
2375  function getPaddingObject(padding) {
2376    return typeof padding !== "number" ? expandPaddingObject(padding) : {
2377      top: padding,
2378      right: padding,
2379      bottom: padding,
2380      left: padding
2381    };
2382  }
2383  function rectToClientRect(rect) {
2384    const {
2385      x,
2386      y,
2387      width,
2388      height
2389    } = rect;
2390    return {
2391      width,
2392      height,
2393      top: y,
2394      left: x,
2395      right: x + width,
2396      bottom: y + height,
2397      x,
2398      y
2399    };
2400  }
2401  
2402  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/composite.mjs
2403  function isHiddenByStyles(styles) {
2404    return styles.visibility === "hidden" || styles.visibility === "collapse";
2405  }
2406  function isElementVisible(element, styles = element ? getComputedStyle2(element) : null) {
2407    if (!element || !element.isConnected || !styles || isHiddenByStyles(styles)) {
2408      return false;
2409    }
2410    if (typeof element.checkVisibility === "function") {
2411      return element.checkVisibility();
2412    }
2413    return styles.display !== "none" && styles.display !== "contents";
2414  }
2415  
2416  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/tabbable.mjs
2417  var CANDIDATE_SELECTOR = 'a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';
2418  function getParentElement(element) {
2419    const assignedSlot = element.assignedSlot;
2420    if (assignedSlot) {
2421      return assignedSlot;
2422    }
2423    if (element.parentElement) {
2424      return element.parentElement;
2425    }
2426    const rootNode = element.getRootNode();
2427    return isShadowRoot(rootNode) ? rootNode.host : null;
2428  }
2429  function getDetailsSummary(details) {
2430    for (const child of Array.from(details.children)) {
2431      if (getNodeName(child) === "summary") {
2432        return child;
2433      }
2434    }
2435    return null;
2436  }
2437  function isWithinOpenDetailsSummary(element, details) {
2438    const summary = getDetailsSummary(details);
2439    return !!summary && (element === summary || contains(summary, element));
2440  }
2441  function isFocusableCandidate(element) {
2442    const nodeName = element ? getNodeName(element) : "";
2443    return element != null && element.matches(CANDIDATE_SELECTOR) && (nodeName !== "summary" || element.parentElement != null && getNodeName(element.parentElement) === "details" && getDetailsSummary(element.parentElement) === element) && (nodeName !== "details" || getDetailsSummary(element) == null) && (nodeName !== "input" || element.type !== "hidden");
2444  }
2445  function isFocusableElement(element) {
2446    if (!isFocusableCandidate(element) || !element.isConnected || element.matches(":disabled")) {
2447      return false;
2448    }
2449    for (let current = element; current; current = getParentElement(current)) {
2450      const isAncestor = current !== element;
2451      const isSlot = getNodeName(current) === "slot";
2452      if (current.hasAttribute("inert")) {
2453        return false;
2454      }
2455      if (isAncestor && getNodeName(current) === "details" && !current.open && !isWithinOpenDetailsSummary(element, current) || current.hasAttribute("hidden") || !isSlot && !isVisibleInTabbableTree(current, isAncestor)) {
2456        return false;
2457      }
2458    }
2459    return true;
2460  }
2461  function isVisibleInTabbableTree(element, isAncestor) {
2462    const styles = getComputedStyle2(element);
2463    if (!isAncestor) {
2464      return isElementVisible(element, styles);
2465    }
2466    return styles.display !== "none";
2467  }
2468  function getTabIndex(element) {
2469    const tabIndex = element.tabIndex;
2470    if (tabIndex < 0) {
2471      const nodeName = getNodeName(element);
2472      if (nodeName === "details" || nodeName === "audio" || nodeName === "video" || isHTMLElement(element) && element.isContentEditable) {
2473        return 0;
2474      }
2475    }
2476    return tabIndex;
2477  }
2478  function getNamedRadioInput(element) {
2479    if (getNodeName(element) !== "input") {
2480      return null;
2481    }
2482    const input = element;
2483    return input.type === "radio" && input.name !== "" ? input : null;
2484  }
2485  function isTabbableRadio(element, candidates) {
2486    const input = getNamedRadioInput(element);
2487    if (!input) {
2488      return true;
2489    }
2490    const checkedRadio = candidates.find((candidate) => {
2491      const radio = getNamedRadioInput(candidate);
2492      return radio?.name === input.name && radio.form === input.form && radio.checked;
2493    });
2494    if (checkedRadio) {
2495      return checkedRadio === input;
2496    }
2497    return candidates.find((candidate) => {
2498      const radio = getNamedRadioInput(candidate);
2499      return radio?.name === input.name && radio.form === input.form;
2500    }) === input;
2501  }
2502  function getComposedChildren(container) {
2503    if (isHTMLElement(container) && getNodeName(container) === "slot") {
2504      const assignedElements = container.assignedElements({
2505        flatten: true
2506      });
2507      if (assignedElements.length > 0) {
2508        return assignedElements;
2509      }
2510    }
2511    if (isHTMLElement(container) && container.shadowRoot) {
2512      return Array.from(container.shadowRoot.children);
2513    }
2514    return Array.from(container.children);
2515  }
2516  function appendCandidates(container, list) {
2517    getComposedChildren(container).forEach((child) => {
2518      if (isFocusableCandidate(child)) {
2519        list.push(child);
2520      }
2521      appendCandidates(child, list);
2522    });
2523  }
2524  function appendMatchingElements(container, selector, list) {
2525    getComposedChildren(container).forEach((child) => {
2526      if (isHTMLElement(child) && child.matches(selector)) {
2527        list.push(child);
2528      }
2529      appendMatchingElements(child, selector, list);
2530    });
2531  }
2532  function focusable(container) {
2533    const candidates = [];
2534    appendCandidates(container, candidates);
2535    return candidates.filter(isFocusableElement);
2536  }
2537  function tabbable(container) {
2538    const candidates = focusable(container);
2539    return candidates.filter((element) => getTabIndex(element) >= 0 && isTabbableRadio(element, candidates));
2540  }
2541  function getTabbableIn(container, dir) {
2542    const list = tabbable(container);
2543    const len = list.length;
2544    if (len === 0) {
2545      return void 0;
2546    }
2547    const active = activeElement(ownerDocument(container));
2548    const index2 = list.indexOf(active);
2549    const nextIndex = index2 === -1 ? dir === 1 ? 0 : len - 1 : index2 + dir;
2550    return list[nextIndex];
2551  }
2552  function getNextTabbable(referenceElement) {
2553    return getTabbableIn(ownerDocument(referenceElement).body, 1) || referenceElement;
2554  }
2555  function getPreviousTabbable(referenceElement) {
2556    return getTabbableIn(ownerDocument(referenceElement).body, -1) || referenceElement;
2557  }
2558  function isOutsideEvent(event, container) {
2559    const containerElement = container || event.currentTarget;
2560    const relatedTarget = event.relatedTarget;
2561    return !relatedTarget || !contains(containerElement, relatedTarget);
2562  }
2563  function disableFocusInside(container) {
2564    const tabbableElements = tabbable(container);
2565    tabbableElements.forEach((element) => {
2566      element.dataset.tabindex = element.getAttribute("tabindex") || "";
2567      element.setAttribute("tabindex", "-1");
2568    });
2569  }
2570  function enableFocusInside(container) {
2571    const elements = [];
2572    appendMatchingElements(container, "[data-tabindex]", elements);
2573    elements.forEach((element) => {
2574      const tabindex = element.dataset.tabindex;
2575      delete element.dataset.tabindex;
2576      if (tabindex) {
2577        element.setAttribute("tabindex", tabindex);
2578      } else {
2579        element.removeAttribute("tabindex");
2580      }
2581    });
2582  }
2583  
2584  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/nodes.mjs
2585  function getNodeChildren(nodes, id, onlyOpenChildren = true) {
2586    const directChildren = nodes.filter((node) => node.parentId === id);
2587    return directChildren.flatMap((child) => [...!onlyOpenChildren || child.context?.open ? [child] : [], ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);
2588  }
2589  
2590  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/createAttribute.mjs
2591  function createAttribute(name) {
2592    return `data-base-ui-$name}`;
2593  }
2594  
2595  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingPortal.mjs
2596  var React17 = __toESM(require_react(), 1);
2597  var ReactDOM2 = __toESM(require_react_dom(), 1);
2598  
2599  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/constants.mjs
2600  var DISABLED_TRANSITIONS_STYLE = {
2601    style: {
2602      transition: "none"
2603    }
2604  };
2605  var BASE_UI_SWIPE_IGNORE_ATTRIBUTE = "data-base-ui-swipe-ignore";
2606  var LEGACY_SWIPE_IGNORE_ATTRIBUTE = "data-swipe-ignore";
2607  var BASE_UI_SWIPE_IGNORE_SELECTOR = `[$BASE_UI_SWIPE_IGNORE_ATTRIBUTE}]`;
2608  var LEGACY_SWIPE_IGNORE_SELECTOR = `[$LEGACY_SWIPE_IGNORE_ATTRIBUTE}]`;
2609  var POPUP_COLLISION_AVOIDANCE = {
2610    fallbackAxisSide: "end"
2611  };
2612  var ownerVisuallyHidden = {
2613    clipPath: "inset(50%)",
2614    position: "fixed",
2615    top: 0,
2616    left: 0
2617  };
2618  
2619  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingPortal.mjs
2620  var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
2621  var PortalContext = /* @__PURE__ */ React17.createContext(null);
2622  if (true) PortalContext.displayName = "PortalContext";
2623  var usePortalContext = () => React17.useContext(PortalContext);
2624  var attr = createAttribute("portal");
2625  function useFloatingPortalNode(props = {}) {
2626    const {
2627      ref,
2628      container: containerProp,
2629      componentProps = EMPTY_OBJECT,
2630      elementProps
2631    } = props;
2632    const uniqueId = useId();
2633    const portalContext = usePortalContext();
2634    const parentPortalNode = portalContext?.portalNode;
2635    const [containerElement, setContainerElement] = React17.useState(null);
2636    const [portalNode, setPortalNode] = React17.useState(null);
2637    const setPortalNodeRef = useStableCallback((node) => {
2638      if (node !== null) {
2639        setPortalNode(node);
2640      }
2641    });
2642    const containerRef = React17.useRef(null);
2643    useIsoLayoutEffect(() => {
2644      if (containerProp === null) {
2645        if (containerRef.current) {
2646          containerRef.current = null;
2647          setPortalNode(null);
2648          setContainerElement(null);
2649        }
2650        return;
2651      }
2652      const resolvedContainer = (containerProp && (isNode(containerProp) ? containerProp : containerProp.current)) ?? parentPortalNode ?? document.body;
2653      if (resolvedContainer == null) {
2654        if (containerRef.current) {
2655          containerRef.current = null;
2656          setPortalNode(null);
2657          setContainerElement(null);
2658        }
2659        return;
2660      }
2661      if (containerRef.current !== resolvedContainer) {
2662        containerRef.current = resolvedContainer;
2663        setPortalNode(null);
2664        setContainerElement(resolvedContainer);
2665      }
2666    }, [containerProp, parentPortalNode]);
2667    const portalElement = useRenderElement("div", componentProps, {
2668      ref: [ref, setPortalNodeRef],
2669      props: [{
2670        id: uniqueId,
2671        [attr]: ""
2672      }, elementProps]
2673    });
2674    const portalSubtree = containerElement && portalElement ? /* @__PURE__ */ ReactDOM2.createPortal(portalElement, containerElement) : null;
2675    return {
2676      node: portalNode,
2677      // `id` and `render` props can override or remove the generated ID. Use the exact
2678      // rendered value so `aria-owns` never points at an ID absent from the DOM.
2679      nodeId: /* @__PURE__ */ React17.isValidElement(portalElement) ? portalElement.props.id : void 0,
2680      subtree: portalSubtree
2681    };
2682  }
2683  var FloatingPortal = /* @__PURE__ */ React17.forwardRef(function FloatingPortal2(componentProps, forwardedRef) {
2684    const {
2685      render,
2686      className,
2687      style,
2688      children,
2689      container,
2690      portalOwnerRole,
2691      ...elementProps
2692    } = componentProps;
2693    const {
2694      node: portalNode,
2695      nodeId: portalNodeId,
2696      subtree: portalSubtree
2697    } = useFloatingPortalNode({
2698      container,
2699      ref: forwardedRef,
2700      componentProps,
2701      elementProps
2702    });
2703    const beforeOutsideRef = React17.useRef(null);
2704    const afterOutsideRef = React17.useRef(null);
2705    const beforeInsideRef = React17.useRef(null);
2706    const afterInsideRef = React17.useRef(null);
2707    const [focusManagerState, setFocusManagerState] = React17.useState(null);
2708    const focusInsideDisabledRef = React17.useRef(false);
2709    const modal = focusManagerState?.modal;
2710    const open2 = focusManagerState?.open;
2711    const shouldRenderGuards = !!focusManagerState && !focusManagerState.modal && focusManagerState.open && !!portalNode;
2712    React17.useEffect(() => {
2713      if (!portalNode || modal) {
2714        return void 0;
2715      }
2716      function onFocus(event) {
2717        if (portalNode && event.relatedTarget && isOutsideEvent(event)) {
2718          if (event.type === "focusin") {
2719            if (focusInsideDisabledRef.current) {
2720              enableFocusInside(portalNode);
2721              focusInsideDisabledRef.current = false;
2722            }
2723          } else {
2724            disableFocusInside(portalNode);
2725            focusInsideDisabledRef.current = true;
2726          }
2727        }
2728      }
2729      return mergeCleanups(addEventListener(portalNode, "focusin", onFocus, true), addEventListener(portalNode, "focusout", onFocus, true));
2730    }, [portalNode, modal]);
2731    useIsoLayoutEffect(() => {
2732      if (!portalNode || open2 !== true || !focusInsideDisabledRef.current) {
2733        return;
2734      }
2735      enableFocusInside(portalNode);
2736      focusInsideDisabledRef.current = false;
2737    }, [open2, portalNode]);
2738    const portalContextValue = React17.useMemo(() => ({
2739      beforeOutsideRef,
2740      afterOutsideRef,
2741      beforeInsideRef,
2742      afterInsideRef,
2743      portalNode,
2744      setFocusManagerState
2745    }), [portalNode]);
2746    return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(React17.Fragment, {
2747      children: [portalSubtree, /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(PortalContext.Provider, {
2748        value: portalContextValue,
2749        children: [shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FocusGuard, {
2750          "data-type": "outside",
2751          ref: beforeOutsideRef,
2752          onFocus: (event) => {
2753            if (isOutsideEvent(event, portalNode)) {
2754              beforeInsideRef.current?.focus();
2755            } else {
2756              const domReference = focusManagerState ? focusManagerState.domReference : null;
2757              const prevTabbable = getPreviousTabbable(domReference);
2758              prevTabbable?.focus();
2759            }
2760          }
2761        }), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", {
2762          role: portalOwnerRole,
2763          "aria-owns": portalNodeId,
2764          style: ownerVisuallyHidden
2765        }), portalNode && /* @__PURE__ */ ReactDOM2.createPortal(children, portalNode), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FocusGuard, {
2766          "data-type": "outside",
2767          ref: afterOutsideRef,
2768          onFocus: (event) => {
2769            if (isOutsideEvent(event, portalNode)) {
2770              afterInsideRef.current?.focus();
2771            } else {
2772              const domReference = focusManagerState ? focusManagerState.domReference : null;
2773              const nextTabbable = getNextTabbable(domReference);
2774              nextTabbable?.focus();
2775              if (focusManagerState?.closeOnFocusOut) {
2776                focusManagerState?.onOpenChange(false, createChangeEventDetails(reason_parts_exports.focusOut, event.nativeEvent));
2777              }
2778            }
2779          }
2780        })]
2781      })]
2782    });
2783  });
2784  if (true) FloatingPortal.displayName = "FloatingPortal";
2785  
2786  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingTree.mjs
2787  var React18 = __toESM(require_react(), 1);
2788  
2789  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/createEventEmitter.mjs
2790  function createEventEmitter() {
2791    const map = /* @__PURE__ */ new Map();
2792    return {
2793      emit(event, data) {
2794        map.get(event)?.forEach((listener) => listener(data));
2795      },
2796      on(event, listener) {
2797        if (!map.has(event)) {
2798          map.set(event, /* @__PURE__ */ new Set());
2799        }
2800        map.get(event).add(listener);
2801      },
2802      off(event, listener) {
2803        map.get(event)?.delete(listener);
2804      }
2805    };
2806  }
2807  
2808  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingTree.mjs
2809  var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
2810  var FloatingNodeContext = /* @__PURE__ */ React18.createContext(null);
2811  if (true) FloatingNodeContext.displayName = "FloatingNodeContext";
2812  var FloatingTreeContext = /* @__PURE__ */ React18.createContext(null);
2813  if (true) FloatingTreeContext.displayName = "FloatingTreeContext";
2814  var useFloatingParentNodeId = () => React18.useContext(FloatingNodeContext)?.id || null;
2815  var useFloatingTree = (externalTree) => {
2816    const contextTree = React18.useContext(FloatingTreeContext);
2817    return externalTree ?? contextTree;
2818  };
2819  
2820  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useClientPoint.mjs
2821  var React19 = __toESM(require_react(), 1);
2822  function createVirtualElement(domElement, data) {
2823    let offsetX = null;
2824    let offsetY = null;
2825    let isAutoUpdateEvent = false;
2826    return {
2827      contextElement: domElement || void 0,
2828      getBoundingClientRect() {
2829        const domRect = domElement?.getBoundingClientRect() || {
2830          width: 0,
2831          height: 0,
2832          x: 0,
2833          y: 0
2834        };
2835        const isXAxis = data.axis === "x" || data.axis === "both";
2836        const isYAxis = data.axis === "y" || data.axis === "both";
2837        const canTrackCursorOnAutoUpdate = ["mouseenter", "mousemove"].includes(data.dataRef.current.openEvent?.type || "") && data.pointerType !== "touch";
2838        const width = data.axis === "y" ? domRect.width : 0;
2839        const height = data.axis === "x" ? domRect.height : 0;
2840        let x = domRect.x;
2841        let y = domRect.y;
2842        if (offsetX == null && data.x && isXAxis) {
2843          offsetX = domRect.x - data.x;
2844        }
2845        if (offsetY == null && data.y && isYAxis) {
2846          offsetY = domRect.y - data.y;
2847        }
2848        x -= offsetX || 0;
2849        y -= offsetY || 0;
2850        if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {
2851          x = isXAxis && data.x != null ? data.x : x;
2852          y = isYAxis && data.y != null ? data.y : y;
2853        }
2854        isAutoUpdateEvent = true;
2855        return {
2856          width,
2857          height,
2858          x,
2859          y,
2860          top: y,
2861          right: x + width,
2862          bottom: y + height,
2863          left: x
2864        };
2865      }
2866    };
2867  }
2868  function isMouseBasedEvent(event) {
2869    return event != null && event.clientX != null;
2870  }
2871  function useClientPoint(store2, props = {}) {
2872    const {
2873      enabled = true,
2874      axis = "both"
2875    } = props;
2876    const open2 = store2.useState("open");
2877    const floating = store2.useState("floatingElement");
2878    const domReference = store2.useState("domReferenceElement");
2879    const dataRef = store2.context.dataRef;
2880    const initialRef = React19.useRef(false);
2881    const cleanupListenerRef = React19.useRef(null);
2882    const [pointerType, setPointerType] = React19.useState();
2883    const [reactive, setReactive] = React19.useState([]);
2884    const resetReference = useStableCallback((reference2) => {
2885      store2.set("positionReference", reference2);
2886    });
2887    const setReference = useStableCallback((newX, newY, referenceElement) => {
2888      if (initialRef.current) {
2889        return;
2890      }
2891      if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {
2892        return;
2893      }
2894      store2.set("positionReference", createVirtualElement(referenceElement ?? domReference, {
2895        x: newX,
2896        y: newY,
2897        axis,
2898        dataRef,
2899        pointerType
2900      }));
2901    });
2902    const handleReferenceEnterOrMove = useStableCallback((event) => {
2903      if (!open2) {
2904        setReference(event.clientX, event.clientY, event.currentTarget);
2905      } else if (!cleanupListenerRef.current) {
2906        setReference(event.clientX, event.clientY, event.currentTarget);
2907        setReactive([]);
2908      }
2909    });
2910    const openCheck = isMouseLikePointerType(pointerType) ? floating : open2;
2911    React19.useEffect(() => {
2912      if (!enabled) {
2913        resetReference(domReference);
2914        return void 0;
2915      }
2916      if (!openCheck) {
2917        return void 0;
2918      }
2919      function cleanupListener() {
2920        cleanupListenerRef.current?.();
2921        cleanupListenerRef.current = null;
2922      }
2923      const win = getWindow(floating);
2924      function handleMouseMove(event) {
2925        const target = getTarget(event);
2926        if (!contains(floating, target)) {
2927          setReference(event.clientX, event.clientY);
2928        } else {
2929          cleanupListener();
2930        }
2931      }
2932      if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {
2933        cleanupListenerRef.current = addEventListener(win, "mousemove", handleMouseMove);
2934      } else {
2935        resetReference(domReference);
2936      }
2937      return cleanupListener;
2938    }, [openCheck, enabled, floating, dataRef, domReference, store2, setReference, resetReference, reactive]);
2939    React19.useEffect(() => () => {
2940      store2.set("positionReference", null);
2941    }, [store2]);
2942    React19.useEffect(() => {
2943      if (enabled && !floating) {
2944        initialRef.current = false;
2945      }
2946    }, [enabled, floating]);
2947    React19.useEffect(() => {
2948      if (!enabled && open2) {
2949        initialRef.current = true;
2950      }
2951    }, [enabled, open2]);
2952    const reference = React19.useMemo(() => {
2953      function setPointerTypeRef(event) {
2954        setPointerType(event.pointerType);
2955      }
2956      return {
2957        onPointerDown: setPointerTypeRef,
2958        onPointerEnter: setPointerTypeRef,
2959        onMouseMove: handleReferenceEnterOrMove,
2960        onMouseEnter: handleReferenceEnterOrMove
2961      };
2962    }, [handleReferenceEnterOrMove]);
2963    return React19.useMemo(() => enabled ? {
2964      reference,
2965      trigger: reference
2966    } : {}, [enabled, reference]);
2967  }
2968  
2969  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useDismiss.mjs
2970  var React20 = __toESM(require_react(), 1);
2971  function alwaysFalse() {
2972    return false;
2973  }
2974  function normalizeProp(normalizable) {
2975    return {
2976      escapeKey: typeof normalizable === "boolean" ? normalizable : normalizable?.escapeKey ?? false,
2977      outsidePress: typeof normalizable === "boolean" ? normalizable : normalizable?.outsidePress ?? true
2978    };
2979  }
2980  function useDismiss(store2, props = {}) {
2981    const {
2982      enabled = true,
2983      escapeKey: escapeKey2 = true,
2984      outsidePress: outsidePressProp = true,
2985      outsidePressEvent = "sloppy",
2986      referencePress = alwaysFalse,
2987      bubbles,
2988      externalTree
2989    } = props;
2990    const open2 = store2.useState("open");
2991    const floatingElement = store2.useState("floatingElement");
2992    const {
2993      dataRef,
2994      events
2995    } = store2.context;
2996    const tree = useFloatingTree(externalTree);
2997    const outsidePressFn = useStableCallback(typeof outsidePressProp === "function" ? outsidePressProp : () => false);
2998    const outsidePress2 = typeof outsidePressProp === "function" ? outsidePressFn : outsidePressProp;
2999    const outsidePressEnabled = outsidePress2 !== false;
3000    const getOutsidePressEventProp = useStableCallback(() => outsidePressEvent);
3001    const {
3002      escapeKey: escapeKeyBubbles,
3003      outsidePress: outsidePressBubbles
3004    } = normalizeProp(bubbles);
3005    const pressStartedInsideRef = React20.useRef(false);
3006    const pressStartPreventedRef = React20.useRef(false);
3007    const suppressNextOutsideClickRef = React20.useRef(false);
3008    const sawPressWhileOpenRef = React20.useRef(false);
3009    const isComposingRef = React20.useRef(false);
3010    const currentPointerTypeRef = React20.useRef("");
3011    const touchStateRef = React20.useRef(null);
3012    const cancelDismissOnEndTimeout = useTimeout();
3013    const clearInsideReactTreeTimeout = useTimeout();
3014    const compositionTimeout = useTimeout();
3015    const clearInsideReactTree = useStableCallback(() => {
3016      clearInsideReactTreeTimeout.clear();
3017      dataRef.current.insideReactTree = false;
3018    });
3019    const hasBlockingChild = useStableCallback((bubbleKey) => {
3020      const nodeId = dataRef.current.floatingContext?.nodeId;
3021      const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];
3022      return children.some((child) => child.context?.open && !child.context.dataRef.current[bubbleKey]);
3023    });
3024    const isEventWithinOwnElements = useStableCallback((event) => {
3025      return isEventTargetWithin(event, store2.select("floatingElement")) || isEventTargetWithin(event, store2.select("domReferenceElement"));
3026    });
3027    const closeOnReferencePress = useStableCallback((event) => {
3028      if (!referencePress()) {
3029        return;
3030      }
3031      store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerPress, event.nativeEvent));
3032    });
3033    const closeOnEscapeKeyDown = useStableCallback((event) => {
3034      if (!open2 || !enabled || !escapeKey2 || event.key !== "Escape") {
3035        return;
3036      }
3037      const native = isReactEvent(event) ? event.nativeEvent : event;
3038      if (isComposingRef.current || native.isComposing) {
3039        return;
3040      }
3041      if (!escapeKeyBubbles && hasBlockingChild("__escapeKeyBubbles")) {
3042        return;
3043      }
3044      const eventDetails = createChangeEventDetails(reason_parts_exports.escapeKey, native);
3045      store2.setOpen(false, eventDetails);
3046      if (!eventDetails.isCanceled) {
3047        event.preventDefault();
3048      }
3049      if (!escapeKeyBubbles && !eventDetails.isPropagationAllowed) {
3050        event.stopPropagation();
3051      }
3052    });
3053    const markInsideReactTree = useStableCallback(() => {
3054      dataRef.current.insideReactTree = true;
3055      clearInsideReactTreeTimeout.start(0, clearInsideReactTree);
3056    });
3057    const markPressStartedInsideReactTree = useStableCallback((event) => {
3058      if (!open2 || !enabled || event.button !== 0) {
3059        return;
3060      }
3061      const target = getTarget(event.nativeEvent);
3062      if (!contains(store2.select("floatingElement"), target)) {
3063        return;
3064      }
3065      if (!pressStartedInsideRef.current) {
3066        pressStartedInsideRef.current = true;
3067        pressStartPreventedRef.current = false;
3068      }
3069    });
3070    const markInsidePressStartPrevented = useStableCallback((event) => {
3071      if (!open2 || !enabled) {
3072        return;
3073      }
3074      if (!(event.defaultPrevented || event.nativeEvent.defaultPrevented)) {
3075        return;
3076      }
3077      if (pressStartedInsideRef.current) {
3078        pressStartPreventedRef.current = true;
3079      }
3080    });
3081    React20.useEffect(() => {
3082      function handleOpenChange(details) {
3083        if (!details.open) {
3084          sawPressWhileOpenRef.current = false;
3085        }
3086      }
3087      events.on("openchange", handleOpenChange);
3088      return () => {
3089        events.off("openchange", handleOpenChange);
3090      };
3091    }, [events]);
3092    React20.useEffect(() => clearInsideReactTree, [clearInsideReactTree]);
3093    React20.useEffect(() => {
3094      if (!open2 || !enabled) {
3095        if (!open2) {
3096          sawPressWhileOpenRef.current = false;
3097          isComposingRef.current = false;
3098          currentPointerTypeRef.current = "";
3099          touchStateRef.current = null;
3100        }
3101        return clearInsideReactTree;
3102      }
3103      dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;
3104      dataRef.current.__outsidePressBubbles = outsidePressBubbles;
3105      const preventedPressSuppressionTimeout = new Timeout();
3106      const doc = ownerDocument(floatingElement);
3107      function handleCompositionStart() {
3108        compositionTimeout.clear();
3109        isComposingRef.current = true;
3110      }
3111      function handleCompositionEnd() {
3112        isComposingRef.current = true;
3113        compositionTimeout.start(
3114          // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
3115          // Only apply to WebKit for the test to remain 0ms.
3116          parts_exports.engine.webkit ? 5 : 0,
3117          () => {
3118            isComposingRef.current = false;
3119          }
3120        );
3121      }
3122      function suppressImmediateOutsideClickAfterPreventedStart() {
3123        suppressNextOutsideClickRef.current = true;
3124        preventedPressSuppressionTimeout.start(0, () => {
3125          suppressNextOutsideClickRef.current = false;
3126        });
3127      }
3128      function resetPressStartState() {
3129        pressStartedInsideRef.current = false;
3130        pressStartPreventedRef.current = false;
3131      }
3132      function getOutsidePressEvent() {
3133        const type = currentPointerTypeRef.current;
3134        const computedType = type === "pen" || !type ? "mouse" : type;
3135        const outsidePressEventValue = getOutsidePressEventProp();
3136        const resolved = typeof outsidePressEventValue === "function" ? outsidePressEventValue() : outsidePressEventValue;
3137        if (typeof resolved === "string") {
3138          return resolved;
3139        }
3140        return resolved[computedType];
3141      }
3142      function shouldIgnoreEvent(event) {
3143        const computedOutsidePressEvent = getOutsidePressEvent();
3144        return computedOutsidePressEvent === "intentional" && event.type !== "click" || computedOutsidePressEvent === "sloppy" && event.type === "click";
3145      }
3146      function isEventWithinFloatingTree(event) {
3147        const nodeId = dataRef.current.floatingContext?.nodeId;
3148        const targetIsInsideChildren = tree && getNodeChildren(tree.nodesRef.current, nodeId).some((node) => isEventTargetWithin(event, node.context?.elements.floating));
3149        return isEventWithinOwnElements(event) || targetIsInsideChildren;
3150      }
3151      function closeOnPressOutside(event) {
3152        if (shouldIgnoreEvent(event)) {
3153          if (event.type !== "click" && !isEventWithinOwnElements(event)) {
3154            preventedPressSuppressionTimeout.clear();
3155            suppressNextOutsideClickRef.current = false;
3156          }
3157          clearInsideReactTree();
3158          return;
3159        }
3160        if (dataRef.current.insideReactTree) {
3161          clearInsideReactTree();
3162          return;
3163        }
3164        const target = getTarget(event);
3165        const inertSelector = `[$createAttribute("inert")}]`;
3166        const targetRoot = isElement(target) ? target.getRootNode() : null;
3167        const markers = Array.from((isShadowRoot(targetRoot) ? targetRoot : ownerDocument(store2.select("floatingElement"))).querySelectorAll(inertSelector));
3168        const triggers = store2.context.triggerElements;
3169        if (target && (triggers.hasElement(target) || triggers.hasMatchingElement((trigger) => contains(trigger, target)))) {
3170          return;
3171        }
3172        let targetRootAncestor = isElement(target) ? target : null;
3173        while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {
3174          const nextParent = getParentNode(targetRootAncestor);
3175          if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {
3176            break;
3177          }
3178          targetRootAncestor = nextParent;
3179        }
3180        if (markers.length && isElement(target) && !isRootElement(target) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
3181        !contains(target, store2.select("floatingElement")) && // If the target root element contains none of the markers, then the
3182        // element was injected after the floating element rendered.
3183        markers.every((marker) => !contains(targetRootAncestor, marker))) {
3184          return;
3185        }
3186        if (isHTMLElement(target) && !("touches" in event)) {
3187          const lastTraversableNode = isLastTraversableNode(target);
3188          const style = getComputedStyle2(target);
3189          const scrollRe = /auto|scroll/;
3190          const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);
3191          const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);
3192          const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;
3193          const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;
3194          const isRTL3 = style.direction === "rtl";
3195          const pressedVerticalScrollbar = canScrollY && (isRTL3 ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);
3196          const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;
3197          if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {
3198            return;
3199          }
3200        }
3201        if (isEventWithinFloatingTree(event)) {
3202          return;
3203        }
3204        if (getOutsidePressEvent() === "intentional") {
3205          if (event.detail !== 0 && !isVirtualClick(event) && !sawPressWhileOpenRef.current) {
3206            return;
3207          }
3208          if (suppressNextOutsideClickRef.current) {
3209            preventedPressSuppressionTimeout.clear();
3210            suppressNextOutsideClickRef.current = false;
3211            return;
3212          }
3213        }
3214        if (typeof outsidePress2 === "function" && !outsidePress2(event)) {
3215          return;
3216        }
3217        if (hasBlockingChild("__outsidePressBubbles")) {
3218          return;
3219        }
3220        store2.setOpen(false, createChangeEventDetails(reason_parts_exports.outsidePress, event));
3221        clearInsideReactTree();
3222      }
3223      function handlePointerDown(event) {
3224        if (getOutsidePressEvent() !== "sloppy" || event.pointerType === "touch" || !store2.select("open") || !enabled || isEventWithinOwnElements(event)) {
3225          return;
3226        }
3227        closeOnPressOutside(event);
3228      }
3229      function handleTouchStart(event) {
3230        if (getOutsidePressEvent() !== "sloppy" || !store2.select("open") || !enabled || isEventWithinOwnElements(event)) {
3231          return;
3232        }
3233        const touch = event.touches[0];
3234        if (touch) {
3235          touchStateRef.current = {
3236            startTime: Date.now(),
3237            startX: touch.clientX,
3238            startY: touch.clientY,
3239            dismissOnTouchEnd: false,
3240            dismissOnMouseDown: true
3241          };
3242          cancelDismissOnEndTimeout.start(1e3, () => {
3243            if (touchStateRef.current) {
3244              touchStateRef.current.dismissOnTouchEnd = false;
3245              touchStateRef.current.dismissOnMouseDown = false;
3246            }
3247          });
3248        }
3249      }
3250      function addTargetEventListenerOnce(event, listener) {
3251        const target = getTarget(event);
3252        if (!target) {
3253          return;
3254        }
3255        const unsubscribe2 = addEventListener(target, event.type, () => {
3256          listener(event);
3257          unsubscribe2();
3258        });
3259      }
3260      function handleTouchStartCapture(event) {
3261        currentPointerTypeRef.current = "touch";
3262        addTargetEventListenerOnce(event, handleTouchStart);
3263      }
3264      function closeOnPressOutsideCapture(event) {
3265        cancelDismissOnEndTimeout.clear();
3266        if (event.type === "pointerdown") {
3267          if (event.button === 0) {
3268            sawPressWhileOpenRef.current = true;
3269          }
3270          currentPointerTypeRef.current = event.pointerType;
3271        }
3272        if (event.type === "mousedown" && touchStateRef.current && !touchStateRef.current.dismissOnMouseDown) {
3273          return;
3274        }
3275        addTargetEventListenerOnce(event, (targetEvent) => {
3276          if (targetEvent.type === "pointerdown") {
3277            handlePointerDown(targetEvent);
3278          } else {
3279            closeOnPressOutside(targetEvent);
3280          }
3281        });
3282      }
3283      function handlePressEndCapture(event) {
3284        if (event.type === "pointercancel") {
3285          sawPressWhileOpenRef.current = false;
3286        }
3287        if (!pressStartedInsideRef.current) {
3288          return;
3289        }
3290        const pressStartedInsideDefaultPrevented = pressStartPreventedRef.current;
3291        resetPressStartState();
3292        if (getOutsidePressEvent() !== "intentional") {
3293          return;
3294        }
3295        if (event.type === "pointercancel") {
3296          if (pressStartedInsideDefaultPrevented) {
3297            suppressImmediateOutsideClickAfterPreventedStart();
3298          }
3299          return;
3300        }
3301        if (isEventWithinFloatingTree(event)) {
3302          return;
3303        }
3304        if (pressStartedInsideDefaultPrevented) {
3305          suppressImmediateOutsideClickAfterPreventedStart();
3306          return;
3307        }
3308        if (typeof outsidePress2 === "function" && !outsidePress2(event)) {
3309          return;
3310        }
3311        preventedPressSuppressionTimeout.clear();
3312        suppressNextOutsideClickRef.current = true;
3313        clearInsideReactTree();
3314      }
3315      function handleTouchMove(event) {
3316        if (getOutsidePressEvent() !== "sloppy" || !touchStateRef.current || isEventWithinOwnElements(event)) {
3317          return;
3318        }
3319        const touch = event.touches[0];
3320        if (!touch) {
3321          return;
3322        }
3323        const deltaX = Math.abs(touch.clientX - touchStateRef.current.startX);
3324        const deltaY = Math.abs(touch.clientY - touchStateRef.current.startY);
3325        const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
3326        if (distance > 5) {
3327          touchStateRef.current.dismissOnTouchEnd = true;
3328        }
3329        if (distance > 10) {
3330          closeOnPressOutside(event);
3331          cancelDismissOnEndTimeout.clear();
3332          touchStateRef.current = null;
3333        }
3334      }
3335      function handleTouchMoveCapture(event) {
3336        addTargetEventListenerOnce(event, handleTouchMove);
3337      }
3338      function handleTouchEnd(event) {
3339        if (getOutsidePressEvent() !== "sloppy" || !touchStateRef.current || isEventWithinOwnElements(event)) {
3340          return;
3341        }
3342        if (touchStateRef.current.dismissOnTouchEnd) {
3343          closeOnPressOutside(event);
3344        }
3345        cancelDismissOnEndTimeout.clear();
3346        touchStateRef.current = null;
3347      }
3348      function handleTouchEndCapture(event) {
3349        addTargetEventListenerOnce(event, handleTouchEnd);
3350      }
3351      const unsubscribe = mergeCleanups(escapeKey2 && mergeCleanups(addEventListener(doc, "keydown", closeOnEscapeKeyDown), addEventListener(doc, "compositionstart", handleCompositionStart), addEventListener(doc, "compositionend", handleCompositionEnd)), outsidePressEnabled && mergeCleanups(addEventListener(doc, "click", closeOnPressOutsideCapture, true), addEventListener(doc, "pointerdown", closeOnPressOutsideCapture, true), addEventListener(doc, "pointerup", handlePressEndCapture, true), addEventListener(doc, "pointercancel", handlePressEndCapture, true), addEventListener(doc, "mousedown", closeOnPressOutsideCapture, true), addEventListener(doc, "mouseup", handlePressEndCapture, true), addEventListener(doc, "touchstart", handleTouchStartCapture, {
3352        capture: true,
3353        passive: true
3354      }), addEventListener(doc, "touchmove", handleTouchMoveCapture, {
3355        capture: true,
3356        passive: true
3357      }), addEventListener(doc, "touchend", handleTouchEndCapture, {
3358        capture: true,
3359        passive: true
3360      })));
3361      return () => {
3362        unsubscribe();
3363        preventedPressSuppressionTimeout.clear();
3364        resetPressStartState();
3365        suppressNextOutsideClickRef.current = false;
3366      };
3367    }, [dataRef, floatingElement, escapeKey2, outsidePressEnabled, outsidePress2, open2, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, clearInsideReactTree, getOutsidePressEventProp, hasBlockingChild, isEventWithinOwnElements, tree, store2, cancelDismissOnEndTimeout, compositionTimeout]);
3368    const reference = React20.useMemo(() => ({
3369      onKeyDown: closeOnEscapeKeyDown,
3370      onPointerDown: closeOnReferencePress,
3371      onClick: closeOnReferencePress
3372    }), [closeOnEscapeKeyDown, closeOnReferencePress]);
3373    const floating = React20.useMemo(() => ({
3374      onKeyDown: closeOnEscapeKeyDown,
3375      // `onMouseDown` may be blocked if `event.preventDefault()` is called in
3376      // `onPointerDown`, such as with <NumberField.ScrubArea>.
3377      // See https://github.com/mui/base-ui/pull/3379
3378      onPointerDown: markInsidePressStartPrevented,
3379      onMouseDown: markInsidePressStartPrevented,
3380      onClickCapture: markInsideReactTree,
3381      onMouseDownCapture(event) {
3382        markInsideReactTree();
3383        markPressStartedInsideReactTree(event);
3384      },
3385      onPointerDownCapture(event) {
3386        markInsideReactTree();
3387        markPressStartedInsideReactTree(event);
3388      },
3389      onMouseUpCapture: markInsideReactTree,
3390      onTouchEndCapture: markInsideReactTree,
3391      onTouchMoveCapture: markInsideReactTree
3392    }), [closeOnEscapeKeyDown, markInsideReactTree, markPressStartedInsideReactTree, markInsidePressStartPrevented]);
3393    return React20.useMemo(() => enabled ? {
3394      reference,
3395      floating,
3396      trigger: reference
3397    } : {}, [enabled, reference, floating]);
3398  }
3399  
3400  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupHandle.mjs
3401  var BasePopupHandle = class {
3402    /**
3403     * Stores of every root currently using this handle, in attach order. A handle is meant to be used
3404     * by a single mounted root, but roots can transiently overlap (e.g. during an animated route
3405     * transition), so this stack lets `attachStore`'s cleanup restore the previous root instead of
3406     * leaving a still-mounted root uncontrollable when a newer overlapping root detaches first.
3407     */
3408    attachedStores = [];
3409    /**
3410     * Store of the root that currently controls the handle: the most recently attached one still
3411     * mounted, or `null` when no root is attached. Imperative methods are no-ops while this is `null`.
3412     */
3413    attachedStoreValue = null;
3414    /**
3415     * Listeners notified when `attachedStore` changes, so detached triggers can follow the store pointer.
3416     */
3417    storeListeners = /* @__PURE__ */ new Set();
3418    /**
3419     * Creates a handle backed by the store used while no root is attached.
3420     *
3421     * @param fallbackStore Inert, closed store handed to detached triggers while no root is attached,
3422     * so they can render and register without a mounted root. Triggers register into whichever store
3423     * `store` currently resolves to, so while detached they live in this store's trigger map and
3424     * migrate themselves to the root's store (and back) as it attaches/detaches.
3425     * @param componentName Component name used to prefix dev warnings, e.g. `'Menu'` produces
3426     * `MenuHandle.open()` in warning text.
3427     * @param throwOnMissingTrigger Whether `open(triggerId)` throws when no trigger with that id is
3428     * registered. Anchored popups (Menu, Popover, Tooltip, PreviewCard) need a trigger to anchor to,
3429     * so they throw; Dialog is not anchored and instead opens unassociated with a dev warning.
3430     */
3431    constructor(fallbackStore, componentName, throwOnMissingTrigger = true) {
3432      this.fallbackStore = fallbackStore;
3433      this.componentName = componentName;
3434      this.throwOnMissingTrigger = throwOnMissingTrigger;
3435    }
3436    get attachedStore() {
3437      return this.attachedStoreValue;
3438    }
3439    /**
3440     * Store that detached triggers read from: the attached root's store, or an inert fallback store
3441     * used while no root is attached.
3442     * @internal
3443     */
3444    get store() {
3445      return this.attachedStoreValue ?? this.fallbackStore;
3446    }
3447    /**
3448     * Stable fallback store used for server rendering and hydration. Root stores cannot be recorded on
3449     * the handle during render because a handle can be shared by concurrent server-rendered requests.
3450     * @internal
3451     */
3452    get serverStore() {
3453      return this.fallbackStore;
3454    }
3455    /**
3456     * Subscribes to changes of the attached store pointer so detached triggers re-render and re-bind
3457     * when a root attaches or detaches. Returns a function that removes the listener.
3458     * @internal
3459     */
3460    subscribeStore(listener) {
3461      this.storeListeners.add(listener);
3462      return () => {
3463        this.storeListeners.delete(listener);
3464      };
3465    }
3466    /**
3467     * Points the handle at a root's store and notifies subscribers so detached triggers re-render and
3468     * re-register into it (their registration effect migrates them when the store pointer changes).
3469     * Returns a cleanup function that detaches the store again.
3470     * @internal
3471     */
3472    attachStore(newStore) {
3473      this.attachedStores.push(newStore);
3474      this.setActiveStore(newStore);
3475      if (true) {
3476        if (this.attachedStores.length > 1) {
3477          const dev = this;
3478          (dev.overlapWarningFrame ??= AnimationFrame.create()).request(() => {
3479            if (this.attachedStores.length > 1) {
3480              console.warn("Base UI: A handle is attached to more than one mounted root at the same time. The most recently mounted root takes over and the previous one stops being controlled by the handle. A handle should be used by a single root that stays mounted for the lifetime of the handle.");
3481            }
3482          });
3483        }
3484      }
3485      return () => {
3486        const index2 = this.attachedStores.lastIndexOf(newStore);
3487        if (index2 !== -1) {
3488          this.attachedStores.splice(index2, 1);
3489        }
3490        this.setActiveStore(this.attachedStores[this.attachedStores.length - 1] ?? null);
3491      };
3492    }
3493    /**
3494     * Sets the store that currently controls the handle and notifies subscribers when it changes, so
3495     * detached triggers re-render and migrate their registration to the new store.
3496     */
3497    setActiveStore(store2) {
3498      if (this.attachedStoreValue !== store2) {
3499        this.attachedStoreValue = store2;
3500        this.storeListeners.forEach((listener) => {
3501          listener();
3502        });
3503      }
3504    }
3505    /**
3506     * Opens the attached root's store and associates it with the trigger with the given id, or a
3507     * no-op (with a dev warning) while no root is attached. Shared by every concrete handle's public
3508     * `open()` method, which only narrows the parameter type.
3509     *
3510     * When a trigger id is given but no matching trigger is registered, anchored popups throw (see
3511     * `throwOnMissingTrigger`); Dialog opens unassociated with a dev warning instead.
3512     *
3513     * This method should only be called in an event handler or an effect (not during rendering).
3514     *
3515     * @param triggerId ID of the trigger to associate with the popup, or `null`/`undefined` to open
3516     * without associating any trigger.
3517     */
3518    openByTrigger(triggerId) {
3519      const attachedStore = this.attachedStore;
3520      if (attachedStore === null) {
3521        if (true) {
3522          console.warn(`Base UI: $this.componentName}Handle.open() was called while no root using this handle is mounted. The call was ignored; mount a root with this handle before opening it imperatively.`);
3523        }
3524        return;
3525      }
3526      let triggerElement;
3527      if (triggerId) {
3528        for (let i = this.attachedStores.length - 1; i >= 0 && !triggerElement; i -= 1) {
3529          triggerElement = this.attachedStores[i].context.triggerElements.getById(triggerId);
3530        }
3531        triggerElement ??= this.fallbackStore.context.triggerElements.getById(triggerId);
3532      }
3533      if (triggerId && !triggerElement) {
3534        if (this.throwOnMissingTrigger) {
3535          throw new Error(true ? `Base UI: $this.componentName}Handle.open() was called with the trigger id "$triggerId}", but no matching trigger is registered with this handle. An anchored popup cannot open without a trigger to anchor to. Pass the id of a mounted $this.componentName}.Trigger that has this handle set on its "handle" prop.` : formatErrorMessage_default(99, this.componentName, triggerId, this.componentName));
3536        }
3537        if (true) {
3538          console.warn(`Base UI: $this.componentName}Handle.open: No trigger found with id "$triggerId}". The popup will open, but the trigger will not be associated with it.`);
3539        }
3540      }
3541      attachedStore.setOpen(true, createChangeEventDetails(reason_parts_exports.imperativeAction, void 0, triggerElement));
3542    }
3543    /**
3544     * Closes the popup by setting the attached root's store to closed, or a no-op (with a dev warning)
3545     * while no root is attached. Shared by every concrete handle's public `close()` method.
3546     *
3547     * This method should only be called in an event handler or an effect (not during rendering).
3548     */
3549    closePopup() {
3550      const attachedStore = this.attachedStore;
3551      if (attachedStore === null) {
3552        if (true) {
3553          console.warn(`Base UI: $this.componentName}Handle.close() was called while no root using this handle is mounted. The call was ignored.`);
3554        }
3555        return;
3556      }
3557      attachedStore.setOpen(false, createChangeEventDetails(reason_parts_exports.imperativeAction));
3558    }
3559  };
3560  
3561  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupStoreUtils.mjs
3562  var React22 = __toESM(require_react(), 1);
3563  var ReactDOM3 = __toESM(require_react_dom(), 1);
3564  
3565  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useSyncedFloatingRootContext.mjs
3566  function useSyncedFloatingRootContext(options) {
3567    const {
3568      popupStore,
3569      treatPopupAsFloatingElement = false,
3570      floatingRootContext: store2,
3571      floatingId,
3572      nested,
3573      onOpenChange
3574    } = options;
3575    const open2 = popupStore.useState("open");
3576    const referenceElement = popupStore.useState("activeTriggerElement");
3577    const floatingElement = popupStore.useState(treatPopupAsFloatingElement ? "popupElement" : "positionerElement");
3578    const handleOpenChange = onOpenChange;
3579    popupStore.useSyncedValue("floatingId", floatingId);
3580    useIsoLayoutEffect(() => {
3581      const valuesToSync = {
3582        open: open2,
3583        floatingId,
3584        referenceElement,
3585        floatingElement
3586      };
3587      if (isElement(referenceElement)) {
3588        valuesToSync.domReferenceElement = referenceElement;
3589      }
3590      if (store2.state.positionReference === store2.state.referenceElement) {
3591        valuesToSync.positionReference = referenceElement;
3592      }
3593      store2.update(valuesToSync);
3594    }, [open2, floatingId, referenceElement, floatingElement, store2]);
3595    store2.context.onOpenChange = handleOpenChange;
3596    store2.context.nested = nested;
3597    return store2;
3598  }
3599  
3600  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useUnmountAfterClose.mjs
3601  var React21 = __toESM(require_react(), 1);
3602  function useUnmountAfterClose(parameters) {
3603    const {
3604      open: open2,
3605      ref,
3606      preventUnmountOnClose,
3607      setPreventUnmountOnClose: setPreventUnmountOnCloseParam,
3608      onUnmount,
3609      animateInitialOpen
3610    } = parameters;
3611    const setPreventUnmountOnClose = useStableCallback(setPreventUnmountOnCloseParam);
3612    const {
3613      mounted,
3614      setMounted,
3615      transitionStatus
3616    } = useTransitionStatus(open2, false, false, animateInitialOpen);
3617    const preventUnmountingOnClose = open2 ? false : preventUnmountOnClose;
3618    useIsoLayoutEffect(() => {
3619      if (open2) {
3620        setPreventUnmountOnClose(false);
3621      }
3622    }, [open2, setPreventUnmountOnClose]);
3623    const mountedRef = React21.useRef(mounted);
3624    const pendingUnmountRef = React21.useRef(false);
3625    const rerender = useForcedRerendering();
3626    const unmount = () => {
3627      mountedRef.current = false;
3628      setMounted(false);
3629      onUnmount();
3630    };
3631    useIsoLayoutEffect(() => {
3632      mountedRef.current = mounted;
3633      if (pendingUnmountRef.current) {
3634        pendingUnmountRef.current = false;
3635        if (!open2 && mounted) {
3636          unmount();
3637        }
3638      }
3639    });
3640    const forceUnmount = useStableCallback(() => {
3641      if (!mountedRef.current) {
3642        return;
3643      }
3644      if (open2) {
3645        pendingUnmountRef.current = true;
3646        rerender();
3647        return;
3648      }
3649      unmount();
3650    });
3651    useOpenChangeComplete({
3652      enabled: mounted && !open2 && !preventUnmountingOnClose,
3653      open: open2,
3654      ref,
3655      onComplete() {
3656        if (!open2) {
3657          forceUnmount();
3658        }
3659      }
3660    });
3661    return {
3662      mounted,
3663      transitionStatus,
3664      preventUnmountingOnClose,
3665      forceUnmount
3666    };
3667  }
3668  
3669  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupStoreUtils.mjs
3670  var FOCUSABLE_POPUP_PROPS = {
3671    tabIndex: -1,
3672    [FOCUSABLE_ATTRIBUTE]: ""
3673  };
3674  function usePopupRootStore(createStore, treatPopupAsFloatingElement = false) {
3675    const floatingId = useId();
3676    const nested = useFloatingParentNodeId() != null;
3677    const store2 = useRefWithInit(() => createStore(floatingId, nested)).current;
3678    useSyncedFloatingRootContext({
3679      popupStore: store2,
3680      treatPopupAsFloatingElement,
3681      floatingRootContext: store2.state.floatingRootContext,
3682      floatingId,
3683      nested,
3684      onOpenChange: store2.setOpen
3685    });
3686    return store2;
3687  }
3688  function PopupHandleAttachment({
3689    handle,
3690    store: store2
3691  }) {
3692    useIsoLayoutEffect(() => {
3693      return handle.attachStore(store2);
3694    }, [handle, store2]);
3695    return null;
3696  }
3697  function syncTriggerCount(store2) {
3698    const triggerCount = store2.context.triggerElements.size;
3699    if (store2.select("open") && store2.state.triggerCount !== triggerCount) {
3700      store2.set("triggerCount", triggerCount);
3701    }
3702  }
3703  function useTriggerRegistration(id, store2) {
3704    const registrationRef = React22.useRef(null);
3705    return useStableCallback((element) => {
3706      const registration = registrationRef.current;
3707      if (registration !== null) {
3708        if (registration.element === element && registration.store === store2 && registration.id === id) {
3709          return;
3710        }
3711        registrationRef.current = null;
3712        const registeredStore = registration.store;
3713        if (registeredStore.context.triggerElements.getById(registration.id) === registration.element) {
3714          registeredStore.context.triggerElements.delete(registration.id);
3715          syncTriggerCount(registeredStore);
3716        }
3717      }
3718      if (element !== null && id !== void 0) {
3719        registrationRef.current = {
3720          store: store2,
3721          id,
3722          element
3723        };
3724        store2.context.triggerElements.add(id, element);
3725        syncTriggerCount(store2);
3726      }
3727    });
3728  }
3729  function createPopupOpenState(state, open2, trigger, preventUnmountOnClose = false) {
3730    let preventUnmountingOnClose = state.preventUnmountingOnClose;
3731    if (open2) {
3732      preventUnmountingOnClose = false;
3733    } else if (preventUnmountOnClose) {
3734      preventUnmountingOnClose = true;
3735    }
3736    const triggerId = trigger?.id ?? null;
3737    let activeTriggerId = state.activeTriggerId;
3738    let activeTriggerElement = state.activeTriggerElement;
3739    if (triggerId || open2) {
3740      activeTriggerId = triggerId;
3741      activeTriggerElement = trigger ?? null;
3742    }
3743    return {
3744      open: open2,
3745      preventUnmountingOnClose,
3746      activeTriggerId,
3747      activeTriggerElement,
3748      // An open request without a trigger (a handle's `open(null)` or `openWithPayload()`) must not
3749      // be reassociated with a lone registered trigger later on. Controlled and default opens never
3750      // pass through here, so they keep claiming a lone trigger. A close request keeps the flag: a
3751      // controlled root may decline it and stay open, so the Root clears the flag only once the
3752      // popup is effectively closed.
3753      openedWithoutTrigger: open2 ? trigger == null : state.openedWithoutTrigger
3754    };
3755  }
3756  function attachPreventUnmountOnClose(eventDetails) {
3757    let preventUnmountOnClose = false;
3758    eventDetails.preventUnmountOnClose = () => {
3759      preventUnmountOnClose = true;
3760    };
3761    return () => preventUnmountOnClose;
3762  }
3763  function applyPopupOpenChange(store2, nextOpen, eventDetails, options = {}) {
3764    const reason = eventDetails.reason;
3765    const isHover = reason === reason_parts_exports.triggerHover;
3766    const isFocusOpen = nextOpen && reason === reason_parts_exports.triggerFocus;
3767    const isDismissClose = !nextOpen && (reason === reason_parts_exports.triggerPress || reason === reason_parts_exports.escapeKey);
3768    const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(eventDetails);
3769    store2.context.onOpenChange?.(nextOpen, eventDetails);
3770    if (eventDetails.isCanceled) {
3771      return;
3772    }
3773    options.onBeforeDispatch?.();
3774    store2.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
3775    const changeState = () => {
3776      const popupOpenState = createPopupOpenState(store2.state, nextOpen, eventDetails.trigger, shouldPreventUnmountOnClose());
3777      const updatedState = {
3778        ...options.extraState,
3779        ...popupOpenState
3780      };
3781      if (isFocusOpen) {
3782        updatedState.instantType = "focus";
3783      } else if (isDismissClose) {
3784        updatedState.instantType = "dismiss";
3785      } else if (isHover) {
3786        updatedState.instantType = void 0;
3787      }
3788      store2.update(updatedState);
3789    };
3790    if (isHover) {
3791      ReactDOM3.flushSync(changeState);
3792    } else {
3793      changeState();
3794    }
3795  }
3796  function useTriggerDataForwarding(triggerId, triggerElementRef, store2, stateUpdates) {
3797    const isMountedByThisTrigger = store2.useState("isMountedByTrigger", triggerId);
3798    const baseRegisterTrigger = useTriggerRegistration(triggerId, store2);
3799    const applyTriggerData = useStableCallback((element) => {
3800      const open2 = store2.select("open");
3801      const activeTriggerId = store2.select("activeTriggerId");
3802      if (activeTriggerId === triggerId) {
3803        const changes = {
3804          activeTriggerElement: element,
3805          ...open2 ? stateUpdates : null
3806        };
3807        store2.update(changes);
3808        return;
3809      }
3810      if (activeTriggerId == null && open2 && !store2.state.openedWithoutTrigger) {
3811        const changes = {
3812          activeTriggerId: triggerId ?? null,
3813          activeTriggerElement: element,
3814          ...stateUpdates
3815        };
3816        store2.update(changes);
3817      }
3818    });
3819    const registerTrigger = useStableCallback((element) => {
3820      baseRegisterTrigger(element);
3821      if (element) {
3822        applyTriggerData(element);
3823      }
3824    });
3825    useIsoLayoutEffect(() => {
3826      registerTrigger(triggerElementRef.current);
3827      return () => registerTrigger(null);
3828    }, [registerTrigger, triggerElementRef, store2, triggerId]);
3829    useIsoLayoutEffect(() => {
3830      if (isMountedByThisTrigger) {
3831        const changes = {
3832          activeTriggerElement: triggerElementRef.current,
3833          ...stateUpdates
3834        };
3835        store2.update(changes);
3836      }
3837    }, [isMountedByThisTrigger, store2, triggerElementRef, ...Object.values(stateUpdates)]);
3838    return {
3839      registerTrigger,
3840      isMountedByThisTrigger
3841    };
3842  }
3843  function useImplicitActiveTrigger(store2, options = {}) {
3844    const {
3845      closeOnActiveTriggerUnmount = false
3846    } = options;
3847    const resolvedActiveTriggerIdRef = React22.useRef(null);
3848    const open2 = store2.useState("open");
3849    const reactiveTriggerCount = store2.useState("triggerCount");
3850    const activeTriggerId = store2.useState("activeTriggerId");
3851    const reactiveActiveTriggerElement = store2.useState("activeTriggerElement");
3852    useIsoLayoutEffect(() => {
3853      if (!open2) {
3854        resolvedActiveTriggerIdRef.current = null;
3855        if (store2.state.triggerCount !== 0) {
3856          store2.set("triggerCount", 0);
3857        }
3858        if (store2.state.openedWithoutTrigger) {
3859          store2.set("openedWithoutTrigger", false);
3860        }
3861        return;
3862      }
3863      const triggerCount = store2.context.triggerElements.size;
3864      const stateUpdates = {};
3865      if (store2.state.triggerCount !== triggerCount) {
3866        stateUpdates.triggerCount = triggerCount;
3867      }
3868      const currentActiveTriggerId = store2.select("activeTriggerId");
3869      let lostActiveTriggerId = null;
3870      if (currentActiveTriggerId) {
3871        const activeTriggerElement = store2.context.triggerElements.getById(currentActiveTriggerId);
3872        if (!activeTriggerElement) {
3873          for (const [triggerId, triggerElement] of store2.context.triggerElements.entries()) {
3874            if (triggerElement === store2.state.activeTriggerElement) {
3875              stateUpdates.activeTriggerId = triggerId;
3876              stateUpdates.activeTriggerElement = triggerElement;
3877              resolvedActiveTriggerIdRef.current = triggerId;
3878              break;
3879            }
3880          }
3881          if (stateUpdates.activeTriggerId === void 0) {
3882            if (resolvedActiveTriggerIdRef.current === currentActiveTriggerId) {
3883              lostActiveTriggerId = currentActiveTriggerId;
3884            } else {
3885              resolvedActiveTriggerIdRef.current = null;
3886            }
3887          }
3888        } else {
3889          resolvedActiveTriggerIdRef.current = currentActiveTriggerId;
3890          if (activeTriggerElement !== store2.state.activeTriggerElement) {
3891            stateUpdates.activeTriggerElement = activeTriggerElement;
3892          }
3893        }
3894      } else {
3895        resolvedActiveTriggerIdRef.current = null;
3896      }
3897      if (!lostActiveTriggerId && !currentActiveTriggerId && !store2.state.openedWithoutTrigger && triggerCount === 1) {
3898        const iteratorResult = store2.context.triggerElements.entries().next();
3899        if (!iteratorResult.done) {
3900          const [implicitTriggerId, implicitTriggerElement] = iteratorResult.value;
3901          stateUpdates.activeTriggerId = implicitTriggerId;
3902          stateUpdates.activeTriggerElement = implicitTriggerElement;
3903          resolvedActiveTriggerIdRef.current = implicitTriggerId;
3904        }
3905      }
3906      if (stateUpdates.triggerCount !== void 0 || stateUpdates.activeTriggerId !== void 0 || stateUpdates.activeTriggerElement !== void 0) {
3907        store2.update(stateUpdates);
3908      }
3909      if (lostActiveTriggerId) {
3910        if (closeOnActiveTriggerUnmount) {
3911          queueMicrotask(() => {
3912            if (store2.select("open") && store2.select("activeTriggerId") === lostActiveTriggerId && !store2.context.triggerElements.getById(lostActiveTriggerId)) {
3913              const eventDetails = createChangeEventDetails(reason_parts_exports.none);
3914              store2.setOpen(false, eventDetails);
3915              if (!eventDetails.isCanceled) {
3916                store2.update({
3917                  activeTriggerId: null,
3918                  activeTriggerElement: null
3919                });
3920              }
3921            }
3922          });
3923        }
3924      }
3925    }, [open2, store2, reactiveTriggerCount, activeTriggerId, reactiveActiveTriggerElement, closeOnActiveTriggerUnmount]);
3926  }
3927  function useOpenStateTransitions(open2, store2, onUnmount, animateInitialOpen) {
3928    const {
3929      mounted,
3930      transitionStatus,
3931      forceUnmount
3932    } = useUnmountAfterClose({
3933      open: open2,
3934      ref: store2.context.popupRef,
3935      preventUnmountOnClose: store2.useState("preventUnmountingOnClose"),
3936      setPreventUnmountOnClose: (preventUnmountOnClose) => store2.set("preventUnmountingOnClose", preventUnmountOnClose),
3937      animateInitialOpen,
3938      onUnmount() {
3939        store2.update({
3940          activeTriggerId: null,
3941          activeTriggerElement: null,
3942          mounted: false,
3943          preventUnmountingOnClose: false
3944        });
3945        onUnmount?.();
3946        store2.context.onOpenChangeComplete?.(false);
3947      }
3948    });
3949    useRefWithInit(() => {
3950      store2.set("mounted", mounted);
3951      return null;
3952    });
3953    store2.useSyncedValues({
3954      mounted,
3955      transitionStatus
3956    });
3957    return {
3958      forceUnmount,
3959      transitionStatus
3960    };
3961  }
3962  function usePopupInteractionProps(store2, statePart) {
3963    store2.useSyncedValues(statePart);
3964    useIsoLayoutEffect(() => () => {
3965      store2.update({
3966        activeTriggerProps: EMPTY_OBJECT,
3967        inactiveTriggerProps: EMPTY_OBJECT,
3968        popupProps: EMPTY_OBJECT
3969      });
3970    }, [store2]);
3971  }
3972  
3973  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupTriggerMap.mjs
3974  var devElementIdsByMap;
3975  function getDevElementIds(map) {
3976    devElementIdsByMap ??= /* @__PURE__ */ new WeakMap();
3977    let elementIds = devElementIdsByMap.get(map);
3978    if (!elementIds) {
3979      elementIds = /* @__PURE__ */ new WeakMap();
3980      devElementIdsByMap.set(map, elementIds);
3981    }
3982    return elementIds;
3983  }
3984  var PopupTriggerMap = class {
3985    idMap = /* @__PURE__ */ new Map();
3986    /**
3987     * Adds a trigger element with the given ID.
3988     *
3989     * Note: The provided element is assumed to not be registered under multiple IDs.
3990     */
3991    add(id, element) {
3992      if (true) {
3993        const elementIds = getDevElementIds(this);
3994        const existingId = elementIds.get(element);
3995        if (existingId !== void 0 && existingId !== id) {
3996          throw new Error("Base UI: A trigger element cannot be registered under multiple IDs in PopupTriggerMap.");
3997        }
3998        const previousElement = this.idMap.get(id);
3999        if (previousElement !== void 0 && previousElement !== element) {
4000          elementIds.delete(previousElement);
4001        }
4002        elementIds.set(element, id);
4003      }
4004      this.idMap.set(id, element);
4005    }
4006    /**
4007     * Removes the trigger element with the given ID.
4008     */
4009    delete(id) {
4010      if (true) {
4011        const element = this.idMap.get(id);
4012        if (element !== void 0) {
4013          devElementIdsByMap?.get(this)?.delete(element);
4014        }
4015      }
4016      this.idMap.delete(id);
4017    }
4018    /**
4019     * Whether the given element is registered as a trigger.
4020     */
4021    hasElement(element) {
4022      for (const registered of this.idMap.values()) {
4023        if (registered === element) {
4024          return true;
4025        }
4026      }
4027      return false;
4028    }
4029    /**
4030     * Whether there is a registered trigger element matching the given predicate.
4031     */
4032    hasMatchingElement(predicate) {
4033      for (const element of this.idMap.values()) {
4034        if (predicate(element)) {
4035          return true;
4036        }
4037      }
4038      return false;
4039    }
4040    /**
4041     * Returns the trigger element associated with the given ID, or undefined if no such element exists.
4042     */
4043    getById(id) {
4044      return this.idMap.get(id);
4045    }
4046    /**
4047     * Returns an iterable of all registered trigger entries, where each entry is a tuple of [id, element].
4048     */
4049    entries() {
4050      return this.idMap.entries();
4051    }
4052    /**
4053     * Returns an iterable of all registered trigger elements.
4054     */
4055    elements() {
4056      return this.idMap.values();
4057    }
4058    /**
4059     * Returns the number of registered trigger elements.
4060     */
4061    get size() {
4062      return this.idMap.size;
4063    }
4064  };
4065  
4066  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/useStore.mjs
4067  var React24 = __toESM(require_react(), 1);
4068  var import_shim = __toESM(require_shim(), 1);
4069  var import_with_selector = __toESM(require_with_selector(), 1);
4070  
4071  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/fastHooks.mjs
4072  var React23 = __toESM(require_react(), 1);
4073  var hooks = [];
4074  var currentInstance = void 0;
4075  function getInstance() {
4076    return currentInstance;
4077  }
4078  function register(hook) {
4079    hooks.push(hook);
4080  }
4081  function fastComponent(fn) {
4082    const FastComponent = (props, forwardedRef) => {
4083      const instance = useRefWithInit(createInstance).current;
4084      let result;
4085      try {
4086        currentInstance = instance;
4087        for (const hook of hooks) {
4088          hook.before(instance);
4089        }
4090        result = fn(props, forwardedRef);
4091        for (const hook of hooks) {
4092          hook.after(instance);
4093        }
4094        instance.didInitialize = true;
4095      } finally {
4096        currentInstance = void 0;
4097      }
4098      return result;
4099    };
4100    FastComponent.displayName = fn.displayName || fn.name;
4101    return FastComponent;
4102  }
4103  function fastComponentRef(fn) {
4104    return /* @__PURE__ */ React23.forwardRef(fastComponent(fn));
4105  }
4106  function createInstance() {
4107    return {
4108      didInitialize: false
4109    };
4110  }
4111  
4112  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/useStore.mjs
4113  var canUseRawUseSyncExternalStore = isReactVersionAtLeast(19);
4114  var useStoreImplementation = canUseRawUseSyncExternalStore ? useStoreFast : useStoreLegacy;
4115  function useStore(store2, selector, a1, a2, a3) {
4116    return useStoreImplementation(store2, selector, a1, a2, a3);
4117  }
4118  function useStoreR19(store2, selector, a1, a2, a3) {
4119    const getSelection = React24.useCallback(() => selector(store2.getSnapshot(), a1, a2, a3), [store2, selector, a1, a2, a3]);
4120    return (0, import_shim.useSyncExternalStore)(store2.subscribe, getSelection, getSelection);
4121  }
4122  register({
4123    before(instance) {
4124      instance.syncIndex = 0;
4125      if (!instance.didInitialize) {
4126        instance.syncTick = 1;
4127        instance.syncHooks = [];
4128        instance.didChangeStore = true;
4129        instance.getSnapshot = () => {
4130          let didChange2 = false;
4131          for (let i = 0; i < instance.syncHooks.length; i += 1) {
4132            const hook = instance.syncHooks[i];
4133            const value = hook.selector(hook.store.state, hook.a1, hook.a2, hook.a3);
4134            if (!Object.is(hook.value, value)) {
4135              didChange2 = true;
4136              hook.value = value;
4137            }
4138          }
4139          if (didChange2) {
4140            instance.syncTick += 1;
4141          }
4142          return instance.syncTick;
4143        };
4144      }
4145    },
4146    after(instance) {
4147      if (instance.syncHooks.length > 0) {
4148        if (instance.didChangeStore) {
4149          instance.didChangeStore = false;
4150          instance.subscribe = (onStoreChange) => {
4151            const stores = /* @__PURE__ */ new Set();
4152            for (const hook of instance.syncHooks) {
4153              stores.add(hook.store);
4154            }
4155            const unsubscribes = [];
4156            for (const store2 of stores) {
4157              unsubscribes.push(store2.subscribe(onStoreChange));
4158            }
4159            return () => {
4160              for (const unsubscribe of unsubscribes) {
4161                unsubscribe();
4162              }
4163            };
4164          };
4165        }
4166        (0, import_shim.useSyncExternalStore)(instance.subscribe, instance.getSnapshot, instance.getSnapshot);
4167      }
4168    }
4169  });
4170  function useStoreFast(store2, selector, a1, a2, a3) {
4171    const instance = getInstance();
4172    if (!instance) {
4173      return useStoreR19(store2, selector, a1, a2, a3);
4174    }
4175    const index2 = instance.syncIndex;
4176    instance.syncIndex += 1;
4177    let hook;
4178    if (!instance.didInitialize) {
4179      hook = {
4180        store: store2,
4181        selector,
4182        a1,
4183        a2,
4184        a3,
4185        value: selector(store2.getSnapshot(), a1, a2, a3)
4186      };
4187      instance.syncHooks.push(hook);
4188    } else {
4189      hook = instance.syncHooks[index2];
4190      if (hook.store !== store2 || hook.selector !== selector || !Object.is(hook.a1, a1) || !Object.is(hook.a2, a2) || !Object.is(hook.a3, a3)) {
4191        if (hook.store !== store2) {
4192          instance.didChangeStore = true;
4193        }
4194        hook.store = store2;
4195        hook.selector = selector;
4196        hook.a1 = a1;
4197        hook.a2 = a2;
4198        hook.a3 = a3;
4199        hook.value = selector(store2.getSnapshot(), a1, a2, a3);
4200      }
4201    }
4202    return hook.value;
4203  }
4204  function useStoreLegacy(store2, selector, a1, a2, a3) {
4205    return (0, import_with_selector.useSyncExternalStoreWithSelector)(store2.subscribe, store2.getSnapshot, store2.getSnapshot, (state) => selector(state, a1, a2, a3));
4206  }
4207  
4208  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/Store.mjs
4209  var Store = class {
4210    /**
4211     * Creates a store with the given initial state, constructing the class it is called on.
4212     * Calling it on a generic base class (e.g. `ReactStore.create(...)`) constructs that
4213     * class but degrades the inferred instance type to `Store`; use `new` there instead.
4214     */
4215    static create(state) {
4216      return new this(state);
4217    }
4218    /**
4219     * The current state of the store.
4220     * This property is updated immediately when the state changes as a result of calling {@link setState}, {@link update}, or {@link set}.
4221     * To subscribe to state changes, use the {@link useState} method. The value returned by {@link useState} is updated after the component renders (similarly to React's useState).
4222     * The values can be used directly (to avoid subscribing to the store) in effects or event handlers.
4223     *
4224     * Do not modify properties in state directly. Instead, use the provided methods to ensure proper state management and listener notification.
4225     */
4226    // Internal state to handle recursive `setState()` calls
4227    constructor(state) {
4228      this.state = state;
4229      this.listeners = /* @__PURE__ */ new Set();
4230      this.updateTick = 0;
4231    }
4232    /**
4233     * Registers a listener that will be called whenever the store's state changes.
4234     *
4235     * @param fn The listener function to be called on state changes.
4236     * @returns A function to unsubscribe the listener.
4237     */
4238    subscribe = (fn) => {
4239      this.listeners.add(fn);
4240      return () => {
4241        this.listeners.delete(fn);
4242      };
4243    };
4244    /**
4245     * Returns the current state of the store.
4246     */
4247    getSnapshot = () => {
4248      return this.state;
4249    };
4250    /**
4251     * Updates the entire store's state and notifies all registered listeners.
4252     *
4253     * @param newState The new state to set for the store.
4254     */
4255    setState(newState) {
4256      if (this.state === newState) {
4257        return;
4258      }
4259      this.state = newState;
4260      this.updateTick += 1;
4261      const currentTick = this.updateTick;
4262      for (const listener of this.listeners) {
4263        if (currentTick !== this.updateTick) {
4264          return;
4265        }
4266        listener(newState);
4267      }
4268    }
4269    /**
4270     * Merges the provided changes into the current state and notifies listeners if there are changes.
4271     * Each value must match its state key. Pass an exact known subset rather than a broad
4272     * `Partial<State>`, which may contain `undefined` for required state fields.
4273     *
4274     * @param changes An object containing the changes to apply to the current state.
4275     */
4276    update(changes) {
4277      for (const key in changes) {
4278        if (!Object.is(this.state[key], changes[key])) {
4279          this.setState({
4280            ...this.state,
4281            ...changes
4282          });
4283          return;
4284        }
4285      }
4286    }
4287    /**
4288     * Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
4289     *
4290     * @param key The key in the store's state to update.
4291     * @param value The new value to set for the specified key.
4292     */
4293    set(key, value) {
4294      if (!Object.is(this.state[key], value)) {
4295        this.setState({
4296          ...this.state,
4297          [key]: value
4298        });
4299      }
4300    }
4301    /**
4302     * Gives the state a new reference and updates all registered listeners.
4303     */
4304    notifyAll() {
4305      const newState = {
4306        ...this.state
4307      };
4308      this.setState(newState);
4309    }
4310    use(selector, a1, a2, a3) {
4311      return useStore(this, selector, a1, a2, a3);
4312    }
4313  };
4314  
4315  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/ReactStore.mjs
4316  var React25 = __toESM(require_react(), 1);
4317  var ReactStore = class extends Store {
4318    /**
4319     * Creates a new ReactStore instance.
4320     *
4321     * @param state Initial state of the store.
4322     * @param context Non-reactive context values.
4323     * @param selectors Optional selectors for use with `useState`.
4324     */
4325    constructor(state, context = {}, selectors3) {
4326      super(state);
4327      this.context = context;
4328      this.selectors = selectors3;
4329    }
4330    /**
4331     * Non-reactive values such as refs, callbacks, etc.
4332     */
4333    /**
4334     * Synchronizes a single external value into the store.
4335     *
4336     * Note that the while the value in `state` is updated immediately, the value returned
4337     * by `useState` is updated before the next render (similarly to React's `useState`).
4338     */
4339    useSyncedValue(key, value) {
4340      React25.useDebugValue(key);
4341      const store2 = this;
4342      useIsoLayoutEffect(() => {
4343        if (store2.state[key] !== value) {
4344          store2.set(key, value);
4345        }
4346      }, [store2, key, value]);
4347    }
4348    /**
4349     * Synchronizes a single external value into the store and
4350     * cleans it up (sets to `undefined`) on unmount.
4351     *
4352     * Note that the while the value in `state` is updated immediately, the value returned
4353     * by `useState` is updated before the next render (similarly to React's `useState`).
4354     */
4355    useSyncedValueWithCleanup(key, value) {
4356      const store2 = this;
4357      useIsoLayoutEffect(() => {
4358        if (store2.state[key] !== value) {
4359          store2.set(key, value);
4360        }
4361        return () => {
4362          store2.set(key, void 0);
4363        };
4364      }, [store2, key, value]);
4365    }
4366    /**
4367     * Synchronizes multiple external values into the store.
4368     * Each value must match its state key. Pass an exact known subset rather than a broad
4369     * `Partial<State>`, which may contain `undefined` for required state fields.
4370     *
4371     * Note that the while the values in `state` are updated immediately, the values returned
4372     * by `useState` are updated before the next render (similarly to React's `useState`).
4373     *
4374     * @param statePart An exact subset of state fields to synchronize. Unknown keys are not accepted.
4375     */
4376    useSyncedValues(statePart) {
4377      const store2 = this;
4378      if (true) {
4379        React25.useDebugValue(statePart, (p) => Object.keys(p));
4380        const keys = React25.useRef(Object.keys(statePart)).current;
4381        const nextKeys = Object.keys(statePart);
4382        if (keys.length !== nextKeys.length || keys.some((key, index2) => key !== nextKeys[index2])) {
4383          console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
4384        }
4385      }
4386      const dependencies = Object.values(statePart);
4387      useIsoLayoutEffect(() => {
4388        store2.update(statePart);
4389      }, [store2, ...dependencies]);
4390    }
4391    /**
4392     * Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`
4393     * is non-undefined, the store's state at `key` is updated to match `controlled`.
4394     */
4395    useControlledProp(key, controlled) {
4396      React25.useDebugValue(key);
4397      const store2 = this;
4398      const isControlled = controlled !== void 0;
4399      useIsoLayoutEffect(() => {
4400        if (isControlled && !Object.is(store2.state[key], controlled)) {
4401          store2.setState({
4402            ...store2.state,
4403            [key]: controlled
4404          });
4405        }
4406      }, [store2, key, controlled, isControlled]);
4407      if (true) {
4408        const cache = this.controlledValues ??= /* @__PURE__ */ new Map();
4409        if (!cache.has(key)) {
4410          cache.set(key, isControlled);
4411        }
4412        const previouslyControlled = cache.get(key);
4413        if (previouslyControlled !== void 0 && previouslyControlled !== isControlled) {
4414          console.error(`A component is changing the $previouslyControlled ? "" : "un"}controlled state of $key.toString()} to be $previouslyControlled ? "un" : ""}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);
4415        }
4416      }
4417    }
4418    /** Gets the current value from the store using a selector with the provided key.
4419     *
4420     * @param key Key of the selector to use.
4421     */
4422    select(key, a1, a2, a3) {
4423      const selector = this.selectors[key];
4424      return selector(this.state, a1, a2, a3);
4425    }
4426    /**
4427     * Returns a value from the store's state using a selector function.
4428     * Used to subscribe to specific parts of the state.
4429     * This methods causes a rerender whenever the selected state changes.
4430     *
4431     * @param key Key of the selector to use.
4432     */
4433    useState(key, a1, a2, a3) {
4434      React25.useDebugValue(key);
4435      return useStore(this, this.selectors[key], a1, a2, a3);
4436    }
4437    /**
4438     * Wraps a function with `useStableCallback` to ensure it has a stable reference
4439     * and assigns it to the context.
4440     *
4441     * @param key Key of the event callback. Must be a function in the context.
4442     * @param fn Function to assign.
4443     */
4444    useContextCallback(key, fn) {
4445      React25.useDebugValue(key);
4446      const stableFunction = useStableCallback(fn ?? NOOP);
4447      this.context[key] = stableFunction;
4448    }
4449    /**
4450     * Returns a stable setter function for a specific key in the store's state.
4451     * It's commonly used to pass as a ref callback to React elements.
4452     *
4453     * @param key Key of the state to set.
4454     */
4455    useStateSetter(key) {
4456      const ref = React25.useRef(void 0);
4457      if (ref.current === void 0) {
4458        ref.current = (value) => {
4459          this.set(key, value);
4460        };
4461      }
4462      return ref.current;
4463    }
4464    /**
4465     * Observes changes derived from the store's selectors and calls the listener when the selected value changes.
4466     *
4467     * @param key Key of the selector to observe.
4468     * @param listener Listener function called when the selector result changes.
4469     */
4470    observe(selector, listener) {
4471      let selectFn;
4472      if (typeof selector === "function") {
4473        selectFn = selector;
4474      } else {
4475        selectFn = this.selectors[selector];
4476      }
4477      let prevValue = selectFn(this.state);
4478      listener(prevValue, prevValue, this);
4479      return this.subscribe((nextState) => {
4480        const nextValue = selectFn(nextState);
4481        if (!Object.is(prevValue, nextValue)) {
4482          const oldValue = prevValue;
4483          prevValue = nextValue;
4484          listener(nextValue, oldValue, this);
4485        }
4486      });
4487    }
4488  };
4489  
4490  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingRootStore.mjs
4491  var selectors = {
4492    open: (state) => state.open,
4493    transitionStatus: (state) => state.transitionStatus,
4494    domReferenceElement: (state) => state.domReferenceElement,
4495    referenceElement: (state) => state.positionReference ?? state.referenceElement,
4496    floatingElement: (state) => state.floatingElement,
4497    floatingId: (state) => state.floatingId
4498  };
4499  var FloatingRootStore = class extends ReactStore {
4500    constructor(options) {
4501      const {
4502        syncOnly,
4503        nested,
4504        onOpenChange,
4505        triggerElements,
4506        ...initialState
4507      } = options;
4508      super({
4509        ...initialState,
4510        positionReference: initialState.referenceElement,
4511        domReferenceElement: initialState.referenceElement
4512      }, {
4513        onOpenChange,
4514        dataRef: {
4515          current: {}
4516        },
4517        events: createEventEmitter(),
4518        nested,
4519        triggerElements
4520      }, selectors);
4521      this.syncOnly = syncOnly;
4522    }
4523    /**
4524     * Syncs the event used by hover logic to distinguish hover-open from click-like interaction.
4525     */
4526    syncOpenEvent = (newOpen, event) => {
4527      if (!newOpen || !this.state.open || // Prevent a pending hover-open from overwriting a click-open event, while allowing
4528      // click events to upgrade a hover-open.
4529      event != null && isClickLikeEvent(event)) {
4530        this.context.dataRef.current.openEvent = newOpen ? event : void 0;
4531      }
4532    };
4533    /**
4534     * Runs the root-owned side effects for an open state change.
4535     */
4536    dispatchOpenChange = (newOpen, eventDetails) => {
4537      this.syncOpenEvent(newOpen, eventDetails.event);
4538      const details = {
4539        open: newOpen,
4540        reason: eventDetails.reason,
4541        nativeEvent: eventDetails.event,
4542        nested: this.context.nested,
4543        triggerElement: eventDetails.trigger
4544      };
4545      this.context.events.emit("openchange", details);
4546    };
4547    /**
4548     * Emits the `openchange` event through the internal event emitter and calls the `onOpenChange` handler with the provided arguments.
4549     *
4550     * @param newOpen The new open state.
4551     * @param eventDetails Details about the event that triggered the open state change.
4552     */
4553    setOpen = (newOpen, eventDetails) => {
4554      if (this.syncOnly) {
4555        this.context.onOpenChange?.(newOpen, eventDetails);
4556        return;
4557      }
4558      this.dispatchOpenChange(newOpen, eventDetails);
4559      this.context.onOpenChange?.(newOpen, eventDetails);
4560    };
4561  };
4562  
4563  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/store.mjs
4564  function createInitialPopupStoreState(triggerElements, floatingId, nested = false) {
4565    return {
4566      open: false,
4567      openProp: void 0,
4568      mounted: false,
4569      transitionStatus: void 0,
4570      floatingRootContext: new FloatingRootStore({
4571        open: false,
4572        transitionStatus: void 0,
4573        floatingElement: null,
4574        referenceElement: null,
4575        triggerElements,
4576        floatingId,
4577        syncOnly: true,
4578        nested,
4579        onOpenChange: void 0
4580      }),
4581      floatingId,
4582      triggerCount: 0,
4583      preventUnmountingOnClose: false,
4584      payload: void 0,
4585      activeTriggerId: null,
4586      activeTriggerElement: null,
4587      openedWithoutTrigger: false,
4588      triggerIdProp: void 0,
4589      popupElement: null,
4590      positionerElement: null,
4591      activeTriggerProps: EMPTY_OBJECT,
4592      inactiveTriggerProps: EMPTY_OBJECT,
4593      popupProps: EMPTY_OBJECT
4594    };
4595  }
4596  var activeTriggerIdSelector = (state) => state.triggerIdProp ?? state.activeTriggerId;
4597  var openSelector = (state) => state.openProp ?? state.open;
4598  var popupIdSelector = (state) => {
4599    const popupId = state.popupElement?.id ?? state.floatingId;
4600    return popupId || void 0;
4601  };
4602  function triggerOwnsOpenPopup(state, triggerId) {
4603    return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) === triggerId;
4604  }
4605  function triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) {
4606    if (triggerOwnsOpenPopup(state, triggerId)) {
4607      return true;
4608    }
4609    return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) == null && !state.openedWithoutTrigger && state.triggerCount === 1;
4610  }
4611  var popupStoreSelectors = {
4612    open: openSelector,
4613    mounted: (state) => state.mounted,
4614    // `open` is written synchronously on an open change; `mounted`/`transitionStatus` sync in a
4615    // layout effect. Match useTransitionStatus so a retained popup does not miss its starting phase.
4616    transitionStatus: (state) => openSelector(state) && !state.mounted ? "starting" : state.transitionStatus,
4617    floatingRootContext: (state) => state.floatingRootContext,
4618    triggerCount: (state) => state.triggerCount,
4619    preventUnmountingOnClose: (state) => state.preventUnmountingOnClose,
4620    payload: (state) => state.payload,
4621    activeTriggerId: activeTriggerIdSelector,
4622    activeTriggerElement: (state) => state.mounted ? state.activeTriggerElement : null,
4623    popupId: popupIdSelector,
4624    /**
4625     * Whether the trigger with the given ID was used to open the popup.
4626     */
4627    isTriggerActive: (state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId,
4628    /**
4629     * Whether the popup is open and was activated by a trigger with the given ID.
4630     */
4631    isOpenedByTrigger: (state, triggerId) => triggerOwnsOpenPopup(state, triggerId),
4632    /**
4633     * Whether the popup is mounted and was activated by a trigger with the given ID.
4634     */
4635    isMountedByTrigger: (state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId && state.mounted,
4636    triggerProps: (state, isActive) => isActive ? state.activeTriggerProps : state.inactiveTriggerProps,
4637    /**
4638     * Popup id for the trigger that currently owns the open popup.
4639     */
4640    triggerPopupId: (state, triggerId) => triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) ? popupIdSelector(state) : void 0,
4641    popupProps: (state) => state.popupProps,
4642    popupElement: (state) => state.popupElement,
4643    positionerElement: (state) => state.positionerElement
4644  };
4645  
4646  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/usePopupHandleStore.mjs
4647  var React26 = __toESM(require_react(), 1);
4648  var import_shim2 = __toESM(require_shim(), 1);
4649  function usePopupHandleStore(handle) {
4650    const subscribe = React26.useCallback((listener) => {
4651      if (handle === void 0) {
4652        return NOOP;
4653      }
4654      return handle.subscribeStore(listener);
4655    }, [handle]);
4656    const getSnapshot = React26.useCallback(() => {
4657      return handle === void 0 ? void 0 : handle.store;
4658    }, [handle]);
4659    return (0, import_shim2.useSyncExternalStore)(subscribe, getSnapshot, () => handle?.serverStore);
4660  }
4661  
4662  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useFocus.mjs
4663  var React27 = __toESM(require_react(), 1);
4664  var isMacSafari = parts_exports.os.mac && parts_exports.engine.webkit;
4665  function useFocus(store2, props = {}) {
4666    const {
4667      enabled = true,
4668      delay
4669    } = props;
4670    const {
4671      events,
4672      dataRef
4673    } = store2.context;
4674    const blockFocusRef = React27.useRef(false);
4675    const blockedReferenceRef = React27.useRef(null);
4676    const keyboardModalityRef = React27.useRef(true);
4677    const timeout = useTimeout();
4678    React27.useEffect(() => {
4679      const domReference = store2.select("domReferenceElement");
4680      if (!enabled) {
4681        return void 0;
4682      }
4683      const win = getWindow(domReference);
4684      function onBlur() {
4685        const currentDomReference = store2.select("domReferenceElement");
4686        if (!store2.select("open") && isHTMLElement(currentDomReference) && currentDomReference === activeElement(ownerDocument(currentDomReference))) {
4687          blockFocusRef.current = true;
4688          blockedReferenceRef.current = currentDomReference;
4689        }
4690      }
4691      function onKeyDown() {
4692        keyboardModalityRef.current = true;
4693      }
4694      function onPointerDown() {
4695        keyboardModalityRef.current = false;
4696      }
4697      return mergeCleanups(addEventListener(win, "blur", onBlur), isMacSafari && addEventListener(win, "keydown", onKeyDown, true), isMacSafari && addEventListener(win, "pointerdown", onPointerDown, true));
4698    }, [store2, enabled]);
4699    React27.useEffect(() => {
4700      if (!enabled) {
4701        return void 0;
4702      }
4703      function onOpenChangeLocal(details) {
4704        if (details.reason === reason_parts_exports.triggerPress || details.reason === reason_parts_exports.escapeKey) {
4705          const referenceElement = store2.select("domReferenceElement");
4706          if (isElement(referenceElement)) {
4707            blockedReferenceRef.current = referenceElement;
4708            blockFocusRef.current = true;
4709          }
4710        }
4711      }
4712      events.on("openchange", onOpenChangeLocal);
4713      return () => {
4714        events.off("openchange", onOpenChangeLocal);
4715      };
4716    }, [events, enabled, store2]);
4717    const reference = React27.useMemo(() => {
4718      function resetBlockedFocus() {
4719        blockFocusRef.current = false;
4720        blockedReferenceRef.current = null;
4721      }
4722      return {
4723        onMouseLeave() {
4724          resetBlockedFocus();
4725        },
4726        onFocus(event) {
4727          const focusTarget = event.currentTarget;
4728          if (blockFocusRef.current) {
4729            if (blockedReferenceRef.current === focusTarget) {
4730              return;
4731            }
4732            resetBlockedFocus();
4733          }
4734          const target = getTarget(event.nativeEvent);
4735          if (isElement(target)) {
4736            if (isMacSafari && !event.relatedTarget) {
4737              if (!keyboardModalityRef.current && !isTypeableElement(target)) {
4738                return;
4739              }
4740            } else if (!matchesFocusVisible(target)) {
4741              return;
4742            }
4743          }
4744          const movedFromOtherEnabledTrigger = isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements);
4745          const {
4746            nativeEvent,
4747            currentTarget
4748          } = event;
4749          if (store2.select("open") && movedFromOtherEnabledTrigger || !delay) {
4750            store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent, currentTarget));
4751            return;
4752          }
4753          timeout.start(delay, () => {
4754            if (blockFocusRef.current) {
4755              return;
4756            }
4757            store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent, currentTarget));
4758          });
4759        },
4760        onBlur(event) {
4761          resetBlockedFocus();
4762          const relatedTarget = event.relatedTarget;
4763          const nativeEvent = event.nativeEvent;
4764          const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute("focus-guard")) && relatedTarget.getAttribute("data-type") === "outside";
4765          timeout.start(0, () => {
4766            const domReference = store2.select("domReferenceElement");
4767            const activeEl = activeElement(ownerDocument(domReference));
4768            if (!relatedTarget && activeEl === domReference) {
4769              return;
4770            }
4771            if (contains(dataRef.current.floatingContext?.refs.floating.current, activeEl) || contains(domReference, activeEl) || movedToFocusGuard) {
4772              return;
4773            }
4774            const nextFocusedElement = relatedTarget ?? activeEl;
4775            if (isTargetInsideEnabledTrigger(nextFocusedElement, store2.context.triggerElements)) {
4776              return;
4777            }
4778            store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent));
4779          });
4780        }
4781      };
4782    }, [dataRef, delay, store2, timeout]);
4783    return React27.useMemo(() => enabled ? {
4784      reference,
4785      trigger: reference
4786    } : {}, [enabled, reference]);
4787  }
4788  
4789  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverFloatingInteraction.mjs
4790  var React28 = __toESM(require_react(), 1);
4791  
4792  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverInteractionSharedState.mjs
4793  var HoverInteraction = class _HoverInteraction {
4794    pointerType = void 0;
4795    interactedInside = false;
4796    handler = void 0;
4797    blockMouseMove = true;
4798    performedPointerEventsMutation = false;
4799    pointerEventsScopeElement = null;
4800    pointerEventsReferenceElement = null;
4801    pointerEventsFloatingElement = null;
4802    restTimeoutPending = false;
4803    openChangeTimeout = new Timeout();
4804    restTimeout = new Timeout();
4805    handleCloseOptions = void 0;
4806    static create() {
4807      return new _HoverInteraction();
4808    }
4809    dispose = () => {
4810      this.openChangeTimeout.clear();
4811      this.restTimeout.clear();
4812    };
4813    disposeEffect = () => {
4814      return this.dispose;
4815    };
4816  };
4817  var pointerEventsMutationOwnerByScopeElement = /* @__PURE__ */ new WeakMap();
4818  function clearSafePolygonPointerEventsMutation(instance) {
4819    if (!instance.performedPointerEventsMutation) {
4820      return;
4821    }
4822    const scopeElement = instance.pointerEventsScopeElement;
4823    if (scopeElement && pointerEventsMutationOwnerByScopeElement.get(scopeElement) === instance) {
4824      instance.pointerEventsScopeElement?.style.removeProperty("pointer-events");
4825      instance.pointerEventsReferenceElement?.style.removeProperty("pointer-events");
4826      instance.pointerEventsFloatingElement?.style.removeProperty("pointer-events");
4827      pointerEventsMutationOwnerByScopeElement.delete(scopeElement);
4828    }
4829    instance.performedPointerEventsMutation = false;
4830    instance.pointerEventsScopeElement = null;
4831    instance.pointerEventsReferenceElement = null;
4832    instance.pointerEventsFloatingElement = null;
4833  }
4834  function applySafePolygonPointerEventsMutation(instance, options) {
4835    const {
4836      scopeElement,
4837      referenceElement,
4838      floatingElement
4839    } = options;
4840    const existingOwner = pointerEventsMutationOwnerByScopeElement.get(scopeElement);
4841    if (existingOwner && existingOwner !== instance) {
4842      clearSafePolygonPointerEventsMutation(existingOwner);
4843    }
4844    clearSafePolygonPointerEventsMutation(instance);
4845    instance.performedPointerEventsMutation = true;
4846    instance.pointerEventsScopeElement = scopeElement;
4847    instance.pointerEventsReferenceElement = referenceElement;
4848    instance.pointerEventsFloatingElement = floatingElement;
4849    pointerEventsMutationOwnerByScopeElement.set(scopeElement, instance);
4850    scopeElement.style.pointerEvents = "none";
4851    referenceElement.style.pointerEvents = "auto";
4852    floatingElement.style.pointerEvents = "auto";
4853  }
4854  function useHoverInteractionSharedState(store2) {
4855    const data = store2.context.dataRef.current;
4856    const instance = useRefWithInit(() => data.hoverInteractionState ?? HoverInteraction.create()).current;
4857    if (!data.hoverInteractionState) {
4858      data.hoverInteractionState = instance;
4859    }
4860    useOnMount(data.hoverInteractionState.disposeEffect);
4861    return data.hoverInteractionState;
4862  }
4863  
4864  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverFloatingInteraction.mjs
4865  function useHoverFloatingInteraction(store2, parameters = {}) {
4866    const {
4867      enabled = true,
4868      closeDelay: closeDelayProp = 0,
4869      nodeId: nodeIdProp
4870    } = parameters;
4871    const open2 = store2.useState("open");
4872    const floatingElement = store2.useState("floatingElement");
4873    const domReferenceElement = store2.useState("domReferenceElement");
4874    const {
4875      dataRef
4876    } = store2.context;
4877    const tree = useFloatingTree();
4878    const parentId = useFloatingParentNodeId();
4879    const instance = useHoverInteractionSharedState(store2);
4880    const childClosedTimeout = useTimeout();
4881    const isClickLikeOpenEvent2 = useStableCallback(() => {
4882      return isClickLikeOpenEvent(dataRef.current.openEvent?.type, instance.interactedInside);
4883    });
4884    const isHoverOpen = useStableCallback(() => {
4885      return isHoverOpenEvent(dataRef.current.openEvent?.type);
4886    });
4887    const clearPointerEvents = useStableCallback(() => {
4888      clearSafePolygonPointerEventsMutation(instance);
4889    });
4890    useIsoLayoutEffect(() => {
4891      if (!open2) {
4892        instance.pointerType = void 0;
4893        instance.restTimeoutPending = false;
4894        instance.interactedInside = false;
4895        clearPointerEvents();
4896      }
4897    }, [open2, instance, clearPointerEvents]);
4898    React28.useEffect(() => {
4899      return clearPointerEvents;
4900    }, [clearPointerEvents]);
4901    useIsoLayoutEffect(() => {
4902      if (!enabled) {
4903        return void 0;
4904      }
4905      if (open2 && instance.handleCloseOptions?.blockPointerEvents && isHoverOpen() && isElement(domReferenceElement) && floatingElement) {
4906        const ref = domReferenceElement;
4907        const floatingEl = floatingElement;
4908        const doc = ownerDocument(floatingElement);
4909        const parentFloating = tree?.nodesRef.current.find((node) => node.id === parentId)?.context?.elements.floating;
4910        if (parentFloating) {
4911          parentFloating.style.pointerEvents = "";
4912        }
4913        const cachedScopeElement = instance.pointerEventsScopeElement !== floatingEl ? instance.pointerEventsScopeElement : null;
4914        const parentScopeElement = parentFloating !== floatingEl ? parentFloating : null;
4915        const scopeElement = instance.handleCloseOptions?.getScope?.() ?? cachedScopeElement ?? parentScopeElement ?? closest(ref, "[data-rootownerid]") ?? doc.body;
4916        applySafePolygonPointerEventsMutation(instance, {
4917          scopeElement,
4918          referenceElement: ref,
4919          floatingElement: floatingEl
4920        });
4921        return () => {
4922          clearPointerEvents();
4923        };
4924      }
4925      return void 0;
4926    }, [enabled, open2, domReferenceElement, floatingElement, instance, isHoverOpen, tree, parentId, clearPointerEvents]);
4927    React28.useEffect(() => {
4928      if (!enabled) {
4929        return void 0;
4930      }
4931      function hasParentChildren() {
4932        return !!(tree && parentId && getNodeChildren(tree.nodesRef.current, parentId).length > 0);
4933      }
4934      function closeWithDelay(event) {
4935        const closeDelay = getDelay(closeDelayProp, "close", instance.pointerType);
4936        const close = () => {
4937          store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
4938          tree?.events.emit("floating.closed", event);
4939        };
4940        if (closeDelay) {
4941          instance.openChangeTimeout.start(closeDelay, close);
4942        } else {
4943          instance.openChangeTimeout.clear();
4944          close();
4945        }
4946      }
4947      function handleInteractInside(event) {
4948        const target = getTarget(event);
4949        if (!isInteractiveElement(target)) {
4950          instance.interactedInside = false;
4951          return;
4952        }
4953        instance.interactedInside = closest(target, "[aria-haspopup]") != null;
4954      }
4955      function onFloatingMouseEnter() {
4956        instance.openChangeTimeout.clear();
4957        childClosedTimeout.clear();
4958        tree?.events.off("floating.closed", onNodeClosed);
4959        clearPointerEvents();
4960      }
4961      function onFloatingMouseLeave(event) {
4962        if (hasParentChildren() && tree) {
4963          tree.events.on("floating.closed", onNodeClosed);
4964          return;
4965        }
4966        if (isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements)) {
4967          return;
4968        }
4969        const currentNodeId = dataRef.current.floatingContext?.nodeId ?? nodeIdProp;
4970        const relatedTarget = event.relatedTarget;
4971        const isMovingIntoDescendantFloating = tree && currentNodeId && isElement(relatedTarget) && getNodeChildren(tree.nodesRef.current, currentNodeId, false).some((node) => contains(node.context?.elements.floating, relatedTarget));
4972        if (isMovingIntoDescendantFloating) {
4973          return;
4974        }
4975        if (instance.handler) {
4976          instance.handler(event);
4977          return;
4978        }
4979        clearPointerEvents();
4980        if (isHoverOpen() && !isClickLikeOpenEvent2()) {
4981          closeWithDelay(event);
4982        }
4983      }
4984      function onNodeClosed(event) {
4985        if (!tree || !parentId || hasParentChildren()) {
4986          return;
4987        }
4988        childClosedTimeout.start(0, () => {
4989          tree.events.off("floating.closed", onNodeClosed);
4990          store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
4991          tree.events.emit("floating.closed", event);
4992        });
4993      }
4994      const floating = floatingElement;
4995      return mergeCleanups(floating && addEventListener(floating, "mouseenter", onFloatingMouseEnter), floating && addEventListener(floating, "mouseleave", onFloatingMouseLeave), floating && addEventListener(floating, "pointerdown", handleInteractInside, true), () => {
4996        tree?.events.off("floating.closed", onNodeClosed);
4997      });
4998    }, [enabled, floatingElement, store2, dataRef, closeDelayProp, nodeIdProp, isHoverOpen, isClickLikeOpenEvent2, clearPointerEvents, instance, tree, parentId, childClosedTimeout]);
4999  }
5000  
5001  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverReferenceInteraction.mjs
5002  var React29 = __toESM(require_react(), 1);
5003  var ReactDOM4 = __toESM(require_react_dom(), 1);
5004  var EMPTY_REF = {
5005    current: null
5006  };
5007  function useHoverReferenceInteraction(store2, props = {}) {
5008    const {
5009      enabled = true,
5010      delay = 0,
5011      handleClose = null,
5012      mouseOnly = false,
5013      restMs = 0,
5014      move = true,
5015      triggerElementRef = EMPTY_REF,
5016      externalTree,
5017      isActiveTrigger = true,
5018      getHandleCloseContext,
5019      isClosing,
5020      shouldOpen: shouldOpenProp,
5021      guardStaleOpen = false
5022    } = props;
5023    const {
5024      dataRef,
5025      events
5026    } = store2.context;
5027    const tree = useFloatingTree(externalTree);
5028    const instance = useHoverInteractionSharedState(store2);
5029    const isHoverCloseActiveRef = React29.useRef(false);
5030    const handleCloseRef = useValueAsRef(handleClose);
5031    const delayRef = useValueAsRef(delay);
5032    const restMsRef = useValueAsRef(restMs);
5033    const enabledRef = useValueAsRef(enabled);
5034    const shouldOpenRef = useValueAsRef(shouldOpenProp);
5035    const isClosingRef = useValueAsRef(isClosing);
5036    const isClickLikeOpenEvent2 = useStableCallback(() => {
5037      return isClickLikeOpenEvent(dataRef.current.openEvent?.type, instance.interactedInside);
5038    });
5039    const checkShouldOpen = useStableCallback(() => {
5040      return shouldOpenRef.current?.() !== false;
5041    });
5042    const isOverInactiveTrigger = useStableCallback((currentDomReference, currentTarget, target) => {
5043      const allTriggers = store2.context.triggerElements;
5044      if (allTriggers.hasElement(currentTarget)) {
5045        return !currentDomReference || !contains(currentDomReference, currentTarget);
5046      }
5047      if (!isElement(target)) {
5048        return false;
5049      }
5050      const targetElement = target;
5051      return allTriggers.hasMatchingElement((trigger) => contains(trigger, targetElement)) && (!currentDomReference || !contains(currentDomReference, targetElement));
5052    });
5053    const cleanupMouseMoveHandler = useStableCallback(() => {
5054      if (!instance.handler) {
5055        return;
5056      }
5057      const doc = ownerDocument(store2.select("domReferenceElement"));
5058      doc.removeEventListener("mousemove", instance.handler);
5059      instance.handler = void 0;
5060    });
5061    const clearPointerEvents = useStableCallback(() => {
5062      clearSafePolygonPointerEventsMutation(instance);
5063    });
5064    if (isActiveTrigger) {
5065      instance.handleCloseOptions = handleClose?.__options;
5066    }
5067    React29.useEffect(() => cleanupMouseMoveHandler, [cleanupMouseMoveHandler]);
5068    React29.useEffect(() => {
5069      if (!enabled) {
5070        return void 0;
5071      }
5072      function onOpenChangeLocal(details) {
5073        if (!details.open) {
5074          isHoverCloseActiveRef.current = details.reason === reason_parts_exports.triggerHover;
5075          cleanupMouseMoveHandler();
5076          instance.openChangeTimeout.clear();
5077          instance.restTimeout.clear();
5078          instance.blockMouseMove = true;
5079          instance.restTimeoutPending = false;
5080        } else {
5081          isHoverCloseActiveRef.current = false;
5082        }
5083      }
5084      events.on("openchange", onOpenChangeLocal);
5085      return () => {
5086        events.off("openchange", onOpenChangeLocal);
5087      };
5088    }, [enabled, events, instance, cleanupMouseMoveHandler]);
5089    React29.useEffect(() => {
5090      if (!enabled) {
5091        return void 0;
5092      }
5093      function closeWithDelay(event, runElseBranch = true) {
5094        const closeDelay = getDelay(delayRef.current, "close", instance.pointerType);
5095        if (closeDelay) {
5096          instance.openChangeTimeout.start(closeDelay, () => {
5097            store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
5098            tree?.events.emit("floating.closed", event);
5099          });
5100        } else if (runElseBranch) {
5101          instance.openChangeTimeout.clear();
5102          store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
5103          tree?.events.emit("floating.closed", event);
5104        }
5105      }
5106      const trigger = triggerElementRef.current ?? (isActiveTrigger ? store2.select("domReferenceElement") : null);
5107      if (!isElement(trigger)) {
5108        return void 0;
5109      }
5110      function onMouseEnter(event) {
5111        instance.openChangeTimeout.clear();
5112        instance.blockMouseMove = false;
5113        if (mouseOnly && !isMouseLikePointerType(instance.pointerType)) {
5114          return;
5115        }
5116        const restMsValue = getRestMs(restMsRef.current);
5117        const openDelay = getDelay(delayRef.current, "open", instance.pointerType);
5118        const eventTarget = getTarget(event);
5119        const currentTarget = event.currentTarget ?? null;
5120        const currentDomReference = store2.select("domReferenceElement");
5121        let triggerNode = currentTarget;
5122        if (isElement(eventTarget) && !store2.context.triggerElements.hasElement(eventTarget)) {
5123          for (const triggerElement of store2.context.triggerElements.elements()) {
5124            if (contains(triggerElement, eventTarget)) {
5125              triggerNode = triggerElement;
5126              break;
5127            }
5128          }
5129        }
5130        if (isElement(currentTarget) && isElement(currentDomReference) && !store2.context.triggerElements.hasElement(currentTarget) && contains(currentTarget, currentDomReference)) {
5131          triggerNode = currentDomReference;
5132        }
5133        const isOverInactive = triggerNode == null ? false : isOverInactiveTrigger(currentDomReference, triggerNode, eventTarget);
5134        const isOpen = store2.select("open");
5135        const isInClosingTransition = isClosingRef.current?.() ?? store2.select("transitionStatus") === "ending";
5136        const isHoverCloseTransition = !isOpen && isInClosingTransition && isHoverCloseActiveRef.current;
5137        const isReenteringSameTriggerDuringCloseTransition = !isOverInactive && isElement(triggerNode) && isElement(currentDomReference) && contains(currentDomReference, triggerNode) && isHoverCloseTransition;
5138        const isRestOnlyDelay = restMsValue > 0 && !openDelay;
5139        const shouldOpenImmediately = isOverInactive && (isOpen || isHoverCloseTransition) || isReenteringSameTriggerDuringCloseTransition;
5140        const shouldOpen = !isOpen || isOverInactive;
5141        if (shouldOpenImmediately) {
5142          if (checkShouldOpen()) {
5143            store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
5144          }
5145          return;
5146        }
5147        if (isRestOnlyDelay) {
5148          return;
5149        }
5150        if (openDelay) {
5151          instance.openChangeTimeout.start(openDelay, () => {
5152            if (shouldOpen && checkShouldOpen()) {
5153              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
5154            }
5155          });
5156        } else if (shouldOpen) {
5157          if (checkShouldOpen()) {
5158            store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
5159          }
5160        }
5161      }
5162      function onMouseLeave(event) {
5163        if (isClickLikeOpenEvent2()) {
5164          clearPointerEvents();
5165          return;
5166        }
5167        cleanupMouseMoveHandler();
5168        const domReferenceElement = store2.select("domReferenceElement");
5169        const doc = ownerDocument(domReferenceElement);
5170        instance.restTimeout.clear();
5171        instance.restTimeoutPending = false;
5172        const handleCloseContextBase = dataRef.current.floatingContext ?? getHandleCloseContext?.();
5173        if (isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements)) {
5174          return;
5175        }
5176        if (handleCloseRef.current && handleCloseContextBase) {
5177          if (!store2.select("open")) {
5178            instance.openChangeTimeout.clear();
5179          }
5180          const currentTrigger = triggerElementRef.current;
5181          instance.handler = handleCloseRef.current({
5182            ...handleCloseContextBase,
5183            tree,
5184            x: event.clientX,
5185            y: event.clientY,
5186            onClose() {
5187              clearPointerEvents();
5188              cleanupMouseMoveHandler();
5189              if (enabledRef.current && !isClickLikeOpenEvent2() && currentTrigger === store2.select("domReferenceElement")) {
5190                closeWithDelay(event, true);
5191              }
5192            }
5193          });
5194          doc.addEventListener("mousemove", instance.handler);
5195          instance.handler(event);
5196          return;
5197        }
5198        const shouldClose = instance.pointerType === "touch" ? !contains(store2.select("floatingElement"), event.relatedTarget) : true;
5199        if (shouldClose) {
5200          closeWithDelay(event);
5201        }
5202      }
5203      function onMouseOut(event) {
5204        if (contains(trigger, event.relatedTarget)) {
5205          return;
5206        }
5207        instance.openChangeTimeout.clear();
5208        instance.restTimeout.clear();
5209        instance.restTimeoutPending = false;
5210      }
5211      const staleOpenGuard = guardStaleOpen ? addEventListener(trigger, "mouseout", onMouseOut) : void 0;
5212      if (move) {
5213        return mergeCleanups(addEventListener(trigger, "mousemove", onMouseEnter, {
5214          once: true
5215        }), addEventListener(trigger, "mouseenter", onMouseEnter), addEventListener(trigger, "mouseleave", onMouseLeave), staleOpenGuard);
5216      }
5217      return mergeCleanups(addEventListener(trigger, "mouseenter", onMouseEnter), addEventListener(trigger, "mouseleave", onMouseLeave), staleOpenGuard);
5218    }, [cleanupMouseMoveHandler, clearPointerEvents, dataRef, delayRef, store2, enabled, handleCloseRef, instance, isActiveTrigger, isOverInactiveTrigger, isClickLikeOpenEvent2, mouseOnly, move, restMsRef, triggerElementRef, tree, enabledRef, getHandleCloseContext, isClosingRef, checkShouldOpen, guardStaleOpen]);
5219    return React29.useMemo(() => {
5220      if (!enabled) {
5221        return void 0;
5222      }
5223      function setPointerRef(event) {
5224        instance.pointerType = event.pointerType;
5225      }
5226      return {
5227        onPointerDown: setPointerRef,
5228        onPointerEnter: setPointerRef,
5229        onMouseMove(event) {
5230          const {
5231            nativeEvent
5232          } = event;
5233          const trigger = event.currentTarget;
5234          const currentDomReference = store2.select("domReferenceElement");
5235          const currentOpen = store2.select("open");
5236          const isOverInactive = isOverInactiveTrigger(currentDomReference, trigger, event.target);
5237          if (mouseOnly && !isMouseLikePointerType(instance.pointerType)) {
5238            return;
5239          }
5240          if (currentOpen && isOverInactive && instance.handleCloseOptions?.blockPointerEvents) {
5241            const floatingElement = store2.select("floatingElement");
5242            if (floatingElement) {
5243              const scopeElement = instance.handleCloseOptions?.getScope?.() ?? trigger.ownerDocument.body;
5244              applySafePolygonPointerEventsMutation(instance, {
5245                scopeElement,
5246                referenceElement: trigger,
5247                floatingElement
5248              });
5249            }
5250          }
5251          const restMsValue = getRestMs(restMsRef.current);
5252          if (currentOpen && !isOverInactive || restMsValue === 0) {
5253            return;
5254          }
5255          if (!isOverInactive && instance.restTimeoutPending && event.movementX ** 2 + event.movementY ** 2 < 2) {
5256            return;
5257          }
5258          instance.restTimeout.clear();
5259          function handleMouseMove() {
5260            instance.restTimeoutPending = false;
5261            if (isClickLikeOpenEvent2()) {
5262              return;
5263            }
5264            const latestOpen = store2.select("open");
5265            if (!instance.blockMouseMove && (!latestOpen || isOverInactive) && checkShouldOpen()) {
5266              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, nativeEvent, trigger));
5267            }
5268          }
5269          if (instance.pointerType === "touch") {
5270            ReactDOM4.flushSync(() => {
5271              handleMouseMove();
5272            });
5273          } else if (isOverInactive && currentOpen) {
5274            handleMouseMove();
5275          } else {
5276            instance.restTimeoutPending = true;
5277            instance.restTimeout.start(restMsValue, handleMouseMove);
5278          }
5279        }
5280      };
5281    }, [enabled, instance, isClickLikeOpenEvent2, isOverInactiveTrigger, mouseOnly, store2, restMsRef, checkShouldOpen]);
5282  }
5283  
5284  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/safePolygon.mjs
5285  var CURSOR_SPEED_THRESHOLD = 0.1;
5286  var CURSOR_SPEED_THRESHOLD_SQUARED = CURSOR_SPEED_THRESHOLD * CURSOR_SPEED_THRESHOLD;
5287  var POLYGON_BUFFER = 0.5;
5288  function hasIntersectingEdge(pointX, pointY, xi, yi, xj, yj) {
5289    return yi >= pointY !== yj >= pointY && pointX <= (xj - xi) * (pointY - yi) / (yj - yi) + xi;
5290  }
5291  function isPointInQuadrilateral(pointX, pointY, x1, y1, x2, y2, x3, y3, x4, y4) {
5292    let isInsideValue = false;
5293    if (hasIntersectingEdge(pointX, pointY, x1, y1, x2, y2)) {
5294      isInsideValue = !isInsideValue;
5295    }
5296    if (hasIntersectingEdge(pointX, pointY, x2, y2, x3, y3)) {
5297      isInsideValue = !isInsideValue;
5298    }
5299    if (hasIntersectingEdge(pointX, pointY, x3, y3, x4, y4)) {
5300      isInsideValue = !isInsideValue;
5301    }
5302    if (hasIntersectingEdge(pointX, pointY, x4, y4, x1, y1)) {
5303      isInsideValue = !isInsideValue;
5304    }
5305    return isInsideValue;
5306  }
5307  function isInsideRect(pointX, pointY, rect) {
5308    return pointX >= rect.x && pointX <= rect.x + rect.width && pointY >= rect.y && pointY <= rect.y + rect.height;
5309  }
5310  function isInsideAxisAlignedRect(pointX, pointY, x1, y1, x2, y2) {
5311    const minX = Math.min(x1, x2);
5312    const maxX = Math.max(x1, x2);
5313    const minY = Math.min(y1, y2);
5314    const maxY = Math.max(y1, y2);
5315    return pointX >= minX && pointX <= maxX && pointY >= minY && pointY <= maxY;
5316  }
5317  function safePolygon(options = {}) {
5318    const {
5319      blockPointerEvents = false
5320    } = options;
5321    const timeout = new Timeout();
5322    const fn = ({
5323      x,
5324      y,
5325      placement,
5326      elements,
5327      onClose,
5328      nodeId,
5329      tree
5330    }) => {
5331      const side = placement?.split("-")[0];
5332      let hasLanded = false;
5333      let lastX = null;
5334      let lastY = null;
5335      let lastCursorTime = typeof performance !== "undefined" ? performance.now() : 0;
5336      function isCursorMovingSlowly(nextX, nextY) {
5337        const currentTime = performance.now();
5338        const elapsedTime = currentTime - lastCursorTime;
5339        if (lastX === null || lastY === null || elapsedTime === 0) {
5340          lastX = nextX;
5341          lastY = nextY;
5342          lastCursorTime = currentTime;
5343          return false;
5344        }
5345        const deltaX = nextX - lastX;
5346        const deltaY = nextY - lastY;
5347        const distanceSquared = deltaX * deltaX + deltaY * deltaY;
5348        const thresholdSquared = elapsedTime * elapsedTime * CURSOR_SPEED_THRESHOLD_SQUARED;
5349        lastX = nextX;
5350        lastY = nextY;
5351        lastCursorTime = currentTime;
5352        return distanceSquared < thresholdSquared;
5353      }
5354      function close() {
5355        timeout.clear();
5356        onClose();
5357      }
5358      return function onMouseMove(event) {
5359        timeout.clear();
5360        const domReference = elements.domReference;
5361        const floating = elements.floating;
5362        if (!domReference || !floating || side == null || x == null || y == null) {
5363          return void 0;
5364        }
5365        const {
5366          clientX,
5367          clientY
5368        } = event;
5369        const target = getTarget(event);
5370        const isLeave = event.type === "mouseleave";
5371        const isOverFloatingEl = contains(floating, target);
5372        const isOverReferenceEl = contains(domReference, target);
5373        if (isOverFloatingEl) {
5374          hasLanded = true;
5375          if (!isLeave) {
5376            return void 0;
5377          }
5378        }
5379        if (isOverReferenceEl) {
5380          hasLanded = false;
5381          if (!isLeave) {
5382            hasLanded = true;
5383            return void 0;
5384          }
5385        }
5386        if (isLeave && isElement(event.relatedTarget) && contains(floating, event.relatedTarget)) {
5387          return void 0;
5388        }
5389        function hasOpenChildNode() {
5390          return Boolean(tree && getNodeChildren(tree.nodesRef.current, nodeId).length > 0);
5391        }
5392        function closeIfNoOpenChild() {
5393          if (!hasOpenChildNode()) {
5394            close();
5395          }
5396        }
5397        if (hasOpenChildNode()) {
5398          return void 0;
5399        }
5400        const refRect = domReference.getBoundingClientRect();
5401        const rect = floating.getBoundingClientRect();
5402        const cursorLeaveFromRight = x > rect.right - rect.width / 2;
5403        const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
5404        const isFloatingWider = rect.width > refRect.width;
5405        const isFloatingTaller = rect.height > refRect.height;
5406        const left = (isFloatingWider ? refRect : rect).left;
5407        const right = (isFloatingWider ? refRect : rect).right;
5408        const top = (isFloatingTaller ? refRect : rect).top;
5409        const bottom = (isFloatingTaller ? refRect : rect).bottom;
5410        if (side === "top" && y >= refRect.bottom - 1 || side === "bottom" && y <= refRect.top + 1 || side === "left" && x >= refRect.right - 1 || side === "right" && x <= refRect.left + 1) {
5411          closeIfNoOpenChild();
5412          return void 0;
5413        }
5414        let isInsideTroughRect = false;
5415        switch (side) {
5416          case "top":
5417            isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, left, refRect.top + 1, right, rect.bottom - 1);
5418            break;
5419          case "bottom":
5420            isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, left, rect.top + 1, right, refRect.bottom - 1);
5421            break;
5422          case "left":
5423            isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, rect.right - 1, bottom, refRect.left + 1, top);
5424            break;
5425          case "right":
5426            isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, refRect.right - 1, bottom, rect.left + 1, top);
5427            break;
5428          default:
5429        }
5430        if (isInsideTroughRect) {
5431          return void 0;
5432        }
5433        if (hasLanded && !isInsideRect(clientX, clientY, refRect)) {
5434          closeIfNoOpenChild();
5435          return void 0;
5436        }
5437        if (!isLeave && isCursorMovingSlowly(clientX, clientY)) {
5438          closeIfNoOpenChild();
5439          return void 0;
5440        }
5441        let isInsidePolygon = false;
5442        switch (side) {
5443          case "top": {
5444            const cursorXOffset = isFloatingWider ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
5445            const cursorPointOneX = isFloatingWider ? x + cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
5446            const cursorPointTwoX = isFloatingWider ? x - cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
5447            const cursorPointY = y + POLYGON_BUFFER + 1;
5448            const commonYLeft = cursorLeaveFromRight ? rect.bottom - POLYGON_BUFFER : isFloatingWider ? rect.bottom - POLYGON_BUFFER : rect.top;
5449            const commonYRight = cursorLeaveFromRight ? isFloatingWider ? rect.bottom - POLYGON_BUFFER : rect.top : rect.bottom - POLYGON_BUFFER;
5450            isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointOneX, cursorPointY, cursorPointTwoX, cursorPointY, rect.left, commonYLeft, rect.right, commonYRight);
5451            break;
5452          }
5453          case "bottom": {
5454            const cursorXOffset = isFloatingWider ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
5455            const cursorPointOneX = isFloatingWider ? x + cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
5456            const cursorPointTwoX = isFloatingWider ? x - cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
5457            const cursorPointY = y - POLYGON_BUFFER;
5458            const commonYLeft = cursorLeaveFromRight ? rect.top + POLYGON_BUFFER : isFloatingWider ? rect.top + POLYGON_BUFFER : rect.bottom;
5459            const commonYRight = cursorLeaveFromRight ? isFloatingWider ? rect.top + POLYGON_BUFFER : rect.bottom : rect.top + POLYGON_BUFFER;
5460            isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointOneX, cursorPointY, cursorPointTwoX, cursorPointY, rect.left, commonYLeft, rect.right, commonYRight);
5461            break;
5462          }
5463          case "left": {
5464            const cursorYOffset = isFloatingTaller ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
5465            const cursorPointOneY = isFloatingTaller ? y + cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
5466            const cursorPointTwoY = isFloatingTaller ? y - cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
5467            const cursorPointX = x + POLYGON_BUFFER + 1;
5468            const commonXTop = cursorLeaveFromBottom ? rect.right - POLYGON_BUFFER : isFloatingTaller ? rect.right - POLYGON_BUFFER : rect.left;
5469            const commonXBottom = cursorLeaveFromBottom ? isFloatingTaller ? rect.right - POLYGON_BUFFER : rect.left : rect.right - POLYGON_BUFFER;
5470            isInsidePolygon = isPointInQuadrilateral(clientX, clientY, commonXTop, rect.top, commonXBottom, rect.bottom, cursorPointX, cursorPointOneY, cursorPointX, cursorPointTwoY);
5471            break;
5472          }
5473          case "right": {
5474            const cursorYOffset = isFloatingTaller ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
5475            const cursorPointOneY = isFloatingTaller ? y + cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
5476            const cursorPointTwoY = isFloatingTaller ? y - cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
5477            const cursorPointX = x - POLYGON_BUFFER;
5478            const commonXTop = cursorLeaveFromBottom ? rect.left + POLYGON_BUFFER : isFloatingTaller ? rect.left + POLYGON_BUFFER : rect.right;
5479            const commonXBottom = cursorLeaveFromBottom ? isFloatingTaller ? rect.left + POLYGON_BUFFER : rect.right : rect.left + POLYGON_BUFFER;
5480            isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointX, cursorPointOneY, cursorPointX, cursorPointTwoY, commonXTop, rect.top, commonXBottom, rect.bottom);
5481            break;
5482          }
5483          default:
5484        }
5485        if (!isInsidePolygon) {
5486          closeIfNoOpenChild();
5487        } else if (!hasLanded) {
5488          timeout.start(40, closeIfNoOpenChild);
5489        }
5490        return void 0;
5491      };
5492    };
5493    fn.__options = {
5494      ...options,
5495      blockPointerEvents
5496    };
5497    return fn;
5498  }
5499  
5500  // node_modules/.store/@floating-ui/core@1.8.0-3V8aS7jJHHGcsCINjP9-5A/node_modules/@floating-ui/core/dist/floating-ui.core.mjs
5501  function computeCoordsFromPlacement(_ref, placement, rtl) {
5502    let {
5503      reference,
5504      floating
5505    } = _ref;
5506    const sideAxis = getSideAxis(placement);
5507    const alignmentAxis = getAlignmentAxis(placement);
5508    const alignLength = getAxisLength(alignmentAxis);
5509    const side = getSide(placement);
5510    const isVertical = sideAxis === "y";
5511    const commonX = reference.x + reference.width / 2 - floating.width / 2;
5512    const commonY = reference.y + reference.height / 2 - floating.height / 2;
5513    const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
5514    let coords;
5515    switch (side) {
5516      case "top":
5517        coords = {
5518          x: commonX,
5519          y: reference.y - floating.height
5520        };
5521        break;
5522      case "bottom":
5523        coords = {
5524          x: commonX,
5525          y: reference.y + reference.height
5526        };
5527        break;
5528      case "right":
5529        coords = {
5530          x: reference.x + reference.width,
5531          y: commonY
5532        };
5533        break;
5534      case "left":
5535        coords = {
5536          x: reference.x - floating.width,
5537          y: commonY
5538        };
5539        break;
5540      default:
5541        coords = {
5542          x: reference.x,
5543          y: reference.y
5544        };
5545    }
5546    const alignment = getAlignment(placement);
5547    if (alignment) {
5548      coords[alignmentAxis] += commonAlign * (alignment === "end" ? 1 : -1) * (rtl && isVertical ? -1 : 1);
5549    }
5550    return coords;
5551  }
5552  async function detectOverflow(state, options) {
5553    var _await$platform$isEle;
5554    if (options === void 0) {
5555      options = {};
5556    }
5557    const {
5558      x,
5559      y,
5560      platform: platform3,
5561      rects,
5562      elements,
5563      strategy
5564    } = state;
5565    const {
5566      boundary = "clippingAncestors",
5567      rootBoundary = "viewport",
5568      elementContext = "floating",
5569      altBoundary = false,
5570      padding = 0
5571    } = evaluate(options, state);
5572    const paddingObject = getPaddingObject(padding);
5573    const altContext = elementContext === "floating" ? "reference" : "floating";
5574    const element = elements[altBoundary ? altContext : elementContext];
5575    const clippingClientRect = rectToClientRect(await platform3.getClippingRect({
5576      element: ((_await$platform$isEle = await (platform3.isElement == null ? void 0 : platform3.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform3.getDocumentElement == null ? void 0 : platform3.getDocumentElement(elements.floating)),
5577      boundary,
5578      rootBoundary,
5579      strategy
5580    }));
5581    const rect = elementContext === "floating" ? {
5582      x,
5583      y,
5584      width: rects.floating.width,
5585      height: rects.floating.height
5586    } : rects.reference;
5587    const offsetParent = await (platform3.getOffsetParent == null ? void 0 : platform3.getOffsetParent(elements.floating));
5588    const offsetScale = await (platform3.isElement == null ? void 0 : platform3.isElement(offsetParent)) && await (platform3.getScale == null ? void 0 : platform3.getScale(offsetParent)) || {
5589      x: 1,
5590      y: 1
5591    };
5592    const elementClientRect = rectToClientRect(platform3.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform3.convertOffsetParentRelativeRectToViewportRelativeRect({
5593      elements,
5594      rect,
5595      offsetParent,
5596      strategy
5597    }) : rect);
5598    return {
5599      top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
5600      bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
5601      left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
5602      right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
5603    };
5604  }
5605  var MAX_RESET_COUNT = 50;
5606  var computePosition = async (reference, floating, config) => {
5607    const {
5608      placement = "bottom",
5609      strategy = "absolute",
5610      middleware = [],
5611      platform: platform3
5612    } = config;
5613    const platformWithDetectOverflow = platform3.detectOverflow ? platform3 : {
5614      ...platform3,
5615      detectOverflow
5616    };
5617    const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(floating));
5618    let rects = await platform3.getElementRects({
5619      reference,
5620      floating,
5621      strategy
5622    });
5623    let {
5624      x,
5625      y
5626    } = computeCoordsFromPlacement(rects, placement, rtl);
5627    let statefulPlacement = placement;
5628    let resetCount = 0;
5629    const middlewareData = {};
5630    for (let i = 0; i < middleware.length; i++) {
5631      const currentMiddleware = middleware[i];
5632      if (!currentMiddleware) {
5633        continue;
5634      }
5635      const {
5636        name,
5637        fn
5638      } = currentMiddleware;
5639      const {
5640        x: nextX,
5641        y: nextY,
5642        data,
5643        reset
5644      } = await fn({
5645        x,
5646        y,
5647        initialPlacement: placement,
5648        placement: statefulPlacement,
5649        strategy,
5650        middlewareData,
5651        rects,
5652        platform: platformWithDetectOverflow,
5653        elements: {
5654          reference,
5655          floating
5656        }
5657      });
5658      x = nextX != null ? nextX : x;
5659      y = nextY != null ? nextY : y;
5660      middlewareData[name] = {
5661        ...middlewareData[name],
5662        ...data
5663      };
5664      if (reset && resetCount < MAX_RESET_COUNT) {
5665        resetCount++;
5666        if (typeof reset === "object") {
5667          if (reset.placement) {
5668            statefulPlacement = reset.placement;
5669          }
5670          if (reset.rects) {
5671            rects = reset.rects === true ? await platform3.getElementRects({
5672              reference,
5673              floating,
5674              strategy
5675            }) : reset.rects;
5676          }
5677          ({
5678            x,
5679            y
5680          } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
5681        }
5682        i = -1;
5683      }
5684    }
5685    return {
5686      x,
5687      y,
5688      placement: statefulPlacement,
5689      strategy,
5690      middlewareData
5691    };
5692  };
5693  var flip = function(options) {
5694    if (options === void 0) {
5695      options = {};
5696    }
5697    return {
5698      name: "flip",
5699      options,
5700      async fn(state) {
5701        var _middlewareData$arrow, _middlewareData$flip;
5702        const {
5703          placement,
5704          middlewareData,
5705          rects,
5706          initialPlacement,
5707          platform: platform3,
5708          elements
5709        } = state;
5710        const {
5711          mainAxis: checkMainAxis = true,
5712          crossAxis: checkCrossAxis = true,
5713          fallbackPlacements: specifiedFallbackPlacements,
5714          fallbackStrategy = "bestFit",
5715          fallbackAxisSideDirection = "none",
5716          flipAlignment = true,
5717          ...detectOverflowOptions
5718        } = evaluate(options, state);
5719        if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
5720          return {};
5721        }
5722        const side = getSide(placement);
5723        const initialSideAxis = getSideAxis(initialPlacement);
5724        const isBasePlacement = getSide(initialPlacement) === initialPlacement;
5725        const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating));
5726        const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
5727        const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
5728        if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
5729          fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
5730        }
5731        const placements2 = [initialPlacement, ...fallbackPlacements];
5732        const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
5733        const overflows = [];
5734        let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
5735        if (checkMainAxis) {
5736          overflows.push(overflow[side]);
5737        }
5738        if (checkCrossAxis) {
5739          const sides2 = getAlignmentSides(placement, rects, rtl);
5740          overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
5741        }
5742        overflowsData = [...overflowsData, {
5743          placement,
5744          overflows
5745        }];
5746        if (!overflows.every((side2) => side2 <= 0)) {
5747          var _middlewareData$flip2, _overflowsData$filter;
5748          const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
5749          const nextPlacement = placements2[nextIndex];
5750          if (nextPlacement) {
5751            const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
5752            if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
5753            // overflows the main axis.
5754            overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
5755              return {
5756                data: {
5757                  index: nextIndex,
5758                  overflows: overflowsData
5759                },
5760                reset: {
5761                  placement: nextPlacement
5762                }
5763              };
5764            }
5765          }
5766          let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
5767          if (!resetPlacement) {
5768            switch (fallbackStrategy) {
5769              case "bestFit": {
5770                var _overflowsData$filter2;
5771                const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
5772                  if (hasFallbackAxisSideDirection) {
5773                    const currentSideAxis = getSideAxis(d.placement);
5774                    return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
5775                    // reading directions favoring greater width.
5776                    currentSideAxis === "y";
5777                  }
5778                  return true;
5779                }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
5780                if (placement2) {
5781                  resetPlacement = placement2;
5782                }
5783                break;
5784              }
5785              case "initialPlacement":
5786                resetPlacement = initialPlacement;
5787                break;
5788            }
5789          }
5790          if (placement !== resetPlacement) {
5791            return {
5792              reset: {
5793                placement: resetPlacement
5794              }
5795            };
5796          }
5797        }
5798        return {};
5799      }
5800    };
5801  };
5802  var originSides = /* @__PURE__ */ new Set(["left", "top"]);
5803  async function convertValueToCoords(state, options) {
5804    const {
5805      placement,
5806      platform: platform3,
5807      elements
5808    } = state;
5809    const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating));
5810    const side = getSide(placement);
5811    const alignment = getAlignment(placement);
5812    const isVertical = getSideAxis(placement) === "y";
5813    const mainAxisMulti = originSides.has(side) ? -1 : 1;
5814    const crossAxisMulti = rtl && isVertical ? -1 : 1;
5815    const rawValue = evaluate(options, state);
5816    let {
5817      mainAxis,
5818      crossAxis,
5819      alignmentAxis
5820    } = typeof rawValue === "number" ? {
5821      mainAxis: rawValue,
5822      crossAxis: 0,
5823      alignmentAxis: null
5824    } : {
5825      mainAxis: rawValue.mainAxis || 0,
5826      crossAxis: rawValue.crossAxis || 0,
5827      alignmentAxis: rawValue.alignmentAxis
5828    };
5829    if (alignment && typeof alignmentAxis === "number") {
5830      crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
5831    }
5832    return isVertical ? {
5833      x: crossAxis * crossAxisMulti,
5834      y: mainAxis * mainAxisMulti
5835    } : {
5836      x: mainAxis * mainAxisMulti,
5837      y: crossAxis * crossAxisMulti
5838    };
5839  }
5840  var offset = function(options) {
5841    if (options === void 0) {
5842      options = 0;
5843    }
5844    return {
5845      name: "offset",
5846      options,
5847      async fn(state) {
5848        var _middlewareData$offse, _middlewareData$arrow;
5849        const {
5850          x,
5851          y,
5852          placement,
5853          middlewareData
5854        } = state;
5855        const diffCoords = await convertValueToCoords(state, options);
5856        if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
5857          return {};
5858        }
5859        return {
5860          x: x + diffCoords.x,
5861          y: y + diffCoords.y,
5862          data: {
5863            ...diffCoords,
5864            placement
5865          }
5866        };
5867      }
5868    };
5869  };
5870  var shift = function(options) {
5871    if (options === void 0) {
5872      options = {};
5873    }
5874    return {
5875      name: "shift",
5876      options,
5877      async fn(state) {
5878        const {
5879          x,
5880          y,
5881          placement,
5882          platform: platform3
5883        } = state;
5884        const {
5885          mainAxis: checkMainAxis = true,
5886          crossAxis: checkCrossAxis = false,
5887          limiter = {
5888            fn: (_ref) => {
5889              let {
5890                x: x2,
5891                y: y2
5892              } = _ref;
5893              return {
5894                x: x2,
5895                y: y2
5896              };
5897            }
5898          },
5899          ...detectOverflowOptions
5900        } = evaluate(options, state);
5901        const coords = {
5902          x,
5903          y
5904        };
5905        const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
5906        const crossAxis = getSideAxis(placement);
5907        const mainAxis = getOppositeAxis(crossAxis);
5908        let mainAxisCoord = coords[mainAxis];
5909        let crossAxisCoord = coords[crossAxis];
5910        const clampCoord = (axis, coord) => clamp(coord + overflow[axis === "y" ? "top" : "left"], coord, coord - overflow[axis === "y" ? "bottom" : "right"]);
5911        if (checkMainAxis) {
5912          mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
5913        }
5914        if (checkCrossAxis) {
5915          crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
5916        }
5917        const limitedCoords = limiter.fn({
5918          ...state,
5919          [mainAxis]: mainAxisCoord,
5920          [crossAxis]: crossAxisCoord
5921        });
5922        return {
5923          ...limitedCoords,
5924          data: {
5925            x: limitedCoords.x - x,
5926            y: limitedCoords.y - y,
5927            enabled: {
5928              [mainAxis]: checkMainAxis,
5929              [crossAxis]: checkCrossAxis
5930            }
5931          }
5932        };
5933      }
5934    };
5935  };
5936  var limitShift = function(options) {
5937    if (options === void 0) {
5938      options = {};
5939    }
5940    return {
5941      options,
5942      fn(state) {
5943        var _rawOffset$mainAxis, _rawOffset$crossAxis;
5944        const {
5945          x,
5946          y,
5947          placement,
5948          rects,
5949          middlewareData
5950        } = state;
5951        const {
5952          offset: offset4 = 0,
5953          mainAxis: checkMainAxis = true,
5954          crossAxis: checkCrossAxis = true
5955        } = evaluate(options, state);
5956        const coords = {
5957          x,
5958          y
5959        };
5960        const crossAxis = getSideAxis(placement);
5961        const mainAxis = getOppositeAxis(crossAxis);
5962        let mainAxisCoord = coords[mainAxis];
5963        let crossAxisCoord = coords[crossAxis];
5964        const rawOffset = evaluate(offset4, state);
5965        const computedOffset = typeof rawOffset === "number" ? {
5966          mainAxis: rawOffset,
5967          crossAxis: 0
5968        } : {
5969          mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,
5970          crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0
5971        };
5972        if (checkMainAxis) {
5973          const len = mainAxis === "y" ? "height" : "width";
5974          const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
5975          const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
5976          if (mainAxisCoord < limitMin) {
5977            mainAxisCoord = limitMin;
5978          } else if (mainAxisCoord > limitMax) {
5979            mainAxisCoord = limitMax;
5980          }
5981        }
5982        if (checkCrossAxis) {
5983          var _middlewareData$offse, _middlewareData$offse2;
5984          const len = mainAxis === "y" ? "width" : "height";
5985          const isOriginSide = originSides.has(getSide(placement));
5986          const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
5987          const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
5988          if (crossAxisCoord < limitMin) {
5989            crossAxisCoord = limitMin;
5990          } else if (crossAxisCoord > limitMax) {
5991            crossAxisCoord = limitMax;
5992          }
5993        }
5994        return {
5995          [mainAxis]: mainAxisCoord,
5996          [crossAxis]: crossAxisCoord
5997        };
5998      }
5999    };
6000  };
6001  var size = function(options) {
6002    if (options === void 0) {
6003      options = {};
6004    }
6005    return {
6006      name: "size",
6007      options,
6008      async fn(state) {
6009        const {
6010          placement,
6011          rects,
6012          platform: platform3,
6013          elements
6014        } = state;
6015        const {
6016          apply = () => {
6017          },
6018          ...detectOverflowOptions
6019        } = evaluate(options, state);
6020        const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
6021        const side = getSide(placement);
6022        const alignment = getAlignment(placement);
6023        const isYAxis = getSideAxis(placement) === "y";
6024        const {
6025          width,
6026          height
6027        } = rects.floating;
6028        let heightSide;
6029        let widthSide;
6030        if (side === "top" || side === "bottom") {
6031          heightSide = side;
6032          widthSide = alignment === (await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
6033        } else {
6034          widthSide = side;
6035          heightSide = alignment === "end" ? "top" : "bottom";
6036        }
6037        const maximumClippingHeight = height - overflow.top - overflow.bottom;
6038        const maximumClippingWidth = width - overflow.left - overflow.right;
6039        const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
6040        const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
6041        const shiftData = state.middlewareData.shift;
6042        const noShift = !shiftData;
6043        let availableHeight2 = overflowAvailableHeight;
6044        let availableWidth2 = overflowAvailableWidth;
6045        if (shiftData != null && shiftData.enabled.x) {
6046          availableWidth2 = maximumClippingWidth;
6047        }
6048        if (shiftData != null && shiftData.enabled.y) {
6049          availableHeight2 = maximumClippingHeight;
6050        }
6051        if (noShift && !alignment) {
6052          if (isYAxis) {
6053            availableWidth2 = width - 2 * max(overflow.left, overflow.right);
6054          } else {
6055            availableHeight2 = height - 2 * max(overflow.top, overflow.bottom);
6056          }
6057        }
6058        await apply({
6059          ...state,
6060          availableWidth: availableWidth2,
6061          availableHeight: availableHeight2
6062        });
6063        const nextDimensions = await platform3.getDimensions(elements.floating);
6064        if (width !== nextDimensions.width || height !== nextDimensions.height) {
6065          return {
6066            reset: {
6067              rects: true
6068            }
6069          };
6070        }
6071        return {};
6072      }
6073    };
6074  };
6075  
6076  // node_modules/.store/@floating-ui/dom@1.8.0-vHXcr4FgWneV0cgwFw-d7A/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
6077  function getCssDimensions(element) {
6078    const css = getComputedStyle2(element);
6079    let width = parseFloat(css.width) || 0;
6080    let height = parseFloat(css.height) || 0;
6081    const hasOffset = isHTMLElement(element);
6082    const offsetWidth = hasOffset ? element.offsetWidth : width;
6083    const offsetHeight = hasOffset ? element.offsetHeight : height;
6084    const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
6085    if (shouldFallback) {
6086      width = offsetWidth;
6087      height = offsetHeight;
6088    }
6089    return {
6090      width,
6091      height,
6092      $: shouldFallback
6093    };
6094  }
6095  function unwrapElement(element) {
6096    return !isElement(element) ? element.contextElement : element;
6097  }
6098  function getScale(element) {
6099    const domElement = unwrapElement(element);
6100    if (!isHTMLElement(domElement)) {
6101      return createCoords(1);
6102    }
6103    const rect = domElement.getBoundingClientRect();
6104    const {
6105      width,
6106      height,
6107      $
6108    } = getCssDimensions(domElement);
6109    let x = ($ ? round(rect.width) : rect.width) / width;
6110    let y = ($ ? round(rect.height) : rect.height) / height;
6111    if (!x || !Number.isFinite(x)) {
6112      x = 1;
6113    }
6114    if (!y || !Number.isFinite(y)) {
6115      y = 1;
6116    }
6117    return {
6118      x,
6119      y
6120    };
6121  }
6122  var noOffsets = /* @__PURE__ */ createCoords(0);
6123  function getVisualOffsets(element) {
6124    const win = getWindow(element);
6125    if (!isWebKit() || !win.visualViewport) {
6126      return noOffsets;
6127    }
6128    return {
6129      x: win.visualViewport.offsetLeft,
6130      y: win.visualViewport.offsetTop
6131    };
6132  }
6133  function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
6134    if (isFixed === void 0) {
6135      isFixed = false;
6136    }
6137    return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
6138  }
6139  function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
6140    if (includeScale === void 0) {
6141      includeScale = false;
6142    }
6143    if (isFixedStrategy === void 0) {
6144      isFixedStrategy = false;
6145    }
6146    const clientRect = element.getBoundingClientRect();
6147    const domElement = unwrapElement(element);
6148    let scale = createCoords(1);
6149    if (includeScale) {
6150      if (offsetParent) {
6151        if (isElement(offsetParent)) {
6152          scale = getScale(offsetParent);
6153        }
6154      } else {
6155        scale = getScale(element);
6156      }
6157    }
6158    const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
6159    let x = (clientRect.left + visualOffsets.x) / scale.x;
6160    let y = (clientRect.top + visualOffsets.y) / scale.y;
6161    let width = clientRect.width / scale.x;
6162    let height = clientRect.height / scale.y;
6163    if (domElement && offsetParent) {
6164      const win = getWindow(domElement);
6165      const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
6166      let currentWin = win;
6167      let currentIFrame = getFrameElement(currentWin);
6168      while (currentIFrame && offsetWin !== currentWin) {
6169        const iframeScale = getScale(currentIFrame);
6170        const iframeRect = currentIFrame.getBoundingClientRect();
6171        const css = getComputedStyle2(currentIFrame);
6172        const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
6173        const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
6174        x *= iframeScale.x;
6175        y *= iframeScale.y;
6176        width *= iframeScale.x;
6177        height *= iframeScale.y;
6178        x += left;
6179        y += top;
6180        currentWin = getWindow(currentIFrame);
6181        currentIFrame = getFrameElement(currentWin);
6182      }
6183    }
6184    return rectToClientRect({
6185      width,
6186      height,
6187      x,
6188      y
6189    });
6190  }
6191  function getWindowScrollBarX(element, rect) {
6192    const leftScroll = getNodeScroll(element).scrollLeft;
6193    if (!rect) {
6194      return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
6195    }
6196    return rect.left + leftScroll;
6197  }
6198  function getHTMLOffset(documentElement, scroll) {
6199    const htmlRect = documentElement.getBoundingClientRect();
6200    const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
6201    const y = htmlRect.top + scroll.scrollTop;
6202    return {
6203      x,
6204      y
6205    };
6206  }
6207  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
6208    let {
6209      elements,
6210      rect,
6211      offsetParent,
6212      strategy
6213    } = _ref;
6214    const isFixed = strategy === "fixed";
6215    const documentElement = getDocumentElement(offsetParent);
6216    const topLayer = elements ? isTopLayer(elements.floating) : false;
6217    if (offsetParent === documentElement || topLayer && isFixed) {
6218      return rect;
6219    }
6220    let scroll = {
6221      scrollLeft: 0,
6222      scrollTop: 0
6223    };
6224    let scale = createCoords(1);
6225    const offsets = createCoords(0);
6226    const isOffsetParentAnElement = isHTMLElement(offsetParent);
6227    if (isOffsetParentAnElement || !isFixed) {
6228      if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
6229        scroll = getNodeScroll(offsetParent);
6230      }
6231      if (isOffsetParentAnElement) {
6232        const offsetRect = getBoundingClientRect(offsetParent);
6233        scale = getScale(offsetParent);
6234        offsets.x = offsetRect.x + offsetParent.clientLeft;
6235        offsets.y = offsetRect.y + offsetParent.clientTop;
6236      }
6237    }
6238    const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
6239    return {
6240      width: rect.width * scale.x,
6241      height: rect.height * scale.y,
6242      x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
6243      y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
6244    };
6245  }
6246  function getClientRects(element) {
6247    return element.getClientRects ? Array.from(element.getClientRects()) : [];
6248  }
6249  function getDocumentRect(html) {
6250    const scroll = getNodeScroll(html);
6251    const body = html.ownerDocument.body;
6252    const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
6253    const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
6254    let x = -scroll.scrollLeft + getWindowScrollBarX(html);
6255    const y = -scroll.scrollTop;
6256    if (getComputedStyle2(body).direction === "rtl") {
6257      x += max(html.clientWidth, body.clientWidth) - width;
6258    }
6259    return {
6260      width,
6261      height,
6262      x,
6263      y
6264    };
6265  }
6266  var SCROLLBAR_MAX = 25;
6267  function getViewportRect(element, strategy, rootBoundary) {
6268    if (rootBoundary === void 0) {
6269      rootBoundary = "viewport";
6270    }
6271    const isLayoutViewport = rootBoundary === "layoutViewport";
6272    const win = getWindow(element);
6273    const html = getDocumentElement(element);
6274    const visualViewport = win.visualViewport;
6275    let width = html.clientWidth;
6276    let height = html.clientHeight;
6277    let x = 0;
6278    let y = 0;
6279    if (visualViewport) {
6280      const layoutRelativeClientCoords = !isWebKit() || strategy === "fixed";
6281      if (isLayoutViewport) {
6282        if (!layoutRelativeClientCoords) {
6283          x = -visualViewport.offsetLeft;
6284          y = -visualViewport.offsetTop;
6285        }
6286      } else {
6287        width = visualViewport.width;
6288        height = visualViewport.height;
6289        if (layoutRelativeClientCoords) {
6290          x = visualViewport.offsetLeft;
6291          y = visualViewport.offsetTop;
6292        }
6293      }
6294    }
6295    const windowScrollbarX = getWindowScrollBarX(html);
6296    if (windowScrollbarX <= 0) {
6297      const doc = html.ownerDocument;
6298      const body = doc.body;
6299      const bodyStyles = getComputedStyle(body);
6300      const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
6301      const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
6302      const gutter = getComputedStyle(html).scrollbarGutter === "stable both-edges" ? reservedWidth / 2 : reservedWidth;
6303      if (gutter <= SCROLLBAR_MAX) {
6304        width -= gutter;
6305      }
6306    }
6307    return {
6308      width,
6309      height,
6310      x,
6311      y
6312    };
6313  }
6314  function getInnerBoundingClientRect(element, strategy) {
6315    const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
6316    const top = clientRect.top + element.clientTop;
6317    const left = clientRect.left + element.clientLeft;
6318    const scale = getScale(element);
6319    const width = element.clientWidth * scale.x;
6320    const height = element.clientHeight * scale.y;
6321    const x = left * scale.x;
6322    const y = top * scale.y;
6323    return {
6324      width,
6325      height,
6326      x,
6327      y
6328    };
6329  }
6330  function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
6331    let rect;
6332    if (clippingAncestor === "viewport" || clippingAncestor === "layoutViewport") {
6333      rect = getViewportRect(element, strategy, clippingAncestor);
6334    } else if (clippingAncestor === "document") {
6335      rect = getDocumentRect(getDocumentElement(element));
6336    } else if (isElement(clippingAncestor)) {
6337      rect = getInnerBoundingClientRect(clippingAncestor, strategy);
6338    } else {
6339      const visualOffsets = getVisualOffsets(element);
6340      rect = {
6341        x: clippingAncestor.x - visualOffsets.x,
6342        y: clippingAncestor.y - visualOffsets.y,
6343        width: clippingAncestor.width,
6344        height: clippingAncestor.height
6345      };
6346    }
6347    return rectToClientRect(rect);
6348  }
6349  function getClippingElementAncestors(element, cache) {
6350    const cachedResult = cache.get(element);
6351    if (cachedResult) {
6352      return cachedResult;
6353    }
6354    let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
6355    let lastKeptComputedStyle = null;
6356    const elementIsFixed = getComputedStyle2(element).position === "fixed";
6357    let currentNode = elementIsFixed ? getParentNode(element) : element;
6358    while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
6359      const computedStyle = getComputedStyle2(currentNode);
6360      const currentNodeIsContaining = isContainingBlock(currentNode);
6361      const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? "fixed" : "";
6362      const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === "fixed" || lastPosition === "absolute" && computedStyle.position === "static");
6363      if (shouldDropCurrentNode) {
6364        result = result.filter((ancestor) => ancestor !== currentNode);
6365      } else {
6366        lastKeptComputedStyle = computedStyle;
6367      }
6368      currentNode = getParentNode(currentNode);
6369    }
6370    cache.set(element, result);
6371    return result;
6372  }
6373  function getClippingRect(_ref) {
6374    let {
6375      element,
6376      boundary,
6377      rootBoundary,
6378      strategy
6379    } = _ref;
6380    const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
6381    const clippingAncestors = [...elementClippingAncestors, rootBoundary];
6382    const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);
6383    let top = firstRect.top;
6384    let right = firstRect.right;
6385    let bottom = firstRect.bottom;
6386    let left = firstRect.left;
6387    for (let i = 1; i < clippingAncestors.length; i++) {
6388      const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);
6389      top = max(rect.top, top);
6390      right = min(rect.right, right);
6391      bottom = min(rect.bottom, bottom);
6392      left = max(rect.left, left);
6393    }
6394    return {
6395      width: right - left,
6396      height: bottom - top,
6397      x: left,
6398      y: top
6399    };
6400  }
6401  function getDimensions(element) {
6402    const {
6403      width,
6404      height
6405    } = getCssDimensions(element);
6406    return {
6407      width,
6408      height
6409    };
6410  }
6411  function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
6412    const isOffsetParentAnElement = isHTMLElement(offsetParent);
6413    const documentElement = getDocumentElement(offsetParent);
6414    const isFixed = strategy === "fixed";
6415    const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
6416    let scroll = {
6417      scrollLeft: 0,
6418      scrollTop: 0
6419    };
6420    const offsets = createCoords(0);
6421    if (isOffsetParentAnElement || !isFixed) {
6422      if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
6423        scroll = getNodeScroll(offsetParent);
6424      }
6425      if (isOffsetParentAnElement) {
6426        const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
6427        offsets.x = offsetRect.x + offsetParent.clientLeft;
6428        offsets.y = offsetRect.y + offsetParent.clientTop;
6429      }
6430    }
6431    if (!isOffsetParentAnElement && documentElement) {
6432      offsets.x = getWindowScrollBarX(documentElement);
6433    }
6434    const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
6435    const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
6436    const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
6437    return {
6438      x,
6439      y,
6440      width: rect.width,
6441      height: rect.height
6442    };
6443  }
6444  function isStaticPositioned(element) {
6445    return getComputedStyle2(element).position === "static";
6446  }
6447  function getTrueOffsetParent(element, polyfill) {
6448    if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
6449      return null;
6450    }
6451    if (polyfill) {
6452      return polyfill(element);
6453    }
6454    let rawOffsetParent = element.offsetParent;
6455    if (getDocumentElement(element) === rawOffsetParent) {
6456      rawOffsetParent = rawOffsetParent.ownerDocument.body;
6457    }
6458    return rawOffsetParent;
6459  }
6460  function getOffsetParent(element, polyfill) {
6461    const win = getWindow(element);
6462    if (isTopLayer(element)) {
6463      return win;
6464    }
6465    if (!isHTMLElement(element)) {
6466      let svgOffsetParent = getParentNode(element);
6467      while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
6468        if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
6469          return svgOffsetParent;
6470        }
6471        svgOffsetParent = getParentNode(svgOffsetParent);
6472      }
6473      return win;
6474    }
6475    let offsetParent = getTrueOffsetParent(element, polyfill);
6476    while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
6477      offsetParent = getTrueOffsetParent(offsetParent, polyfill);
6478    }
6479    if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
6480      return win;
6481    }
6482    return offsetParent || getContainingBlock(element) || win;
6483  }
6484  var getElementRects = async function(data) {
6485    const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
6486    const getDimensionsFn = this.getDimensions;
6487    const floatingDimensions = await getDimensionsFn(data.floating);
6488    return {
6489      reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
6490      floating: {
6491        x: 0,
6492        y: 0,
6493        width: floatingDimensions.width,
6494        height: floatingDimensions.height
6495      }
6496    };
6497  };
6498  function isRTL(element) {
6499    return getComputedStyle2(element).direction === "rtl";
6500  }
6501  var platform2 = {
6502    convertOffsetParentRelativeRectToViewportRelativeRect,
6503    getDocumentElement,
6504    getClippingRect,
6505    getOffsetParent,
6506    getElementRects,
6507    getClientRects,
6508    getDimensions,
6509    getScale,
6510    isElement,
6511    isRTL
6512  };
6513  function rectsAreEqual(a, b) {
6514    return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
6515  }
6516  function observeMove(element, onMove, ancestorResize) {
6517    let io = null;
6518    let timeoutId;
6519    const root = getDocumentElement(element);
6520    function cleanup() {
6521      var _io;
6522      clearTimeout(timeoutId);
6523      (_io = io) == null || _io.disconnect();
6524      io = null;
6525    }
6526    function refresh(skip, threshold) {
6527      if (skip === void 0) {
6528        skip = false;
6529      }
6530      if (threshold === void 0) {
6531        threshold = 1;
6532      }
6533      cleanup();
6534      const elementRectForRootMargin = element.getBoundingClientRect();
6535      const {
6536        left,
6537        top,
6538        width,
6539        height
6540      } = elementRectForRootMargin;
6541      if (!skip) {
6542        onMove();
6543      }
6544      if (!width || !height) {
6545        return;
6546      }
6547      const insetTop = floor(top);
6548      const insetRight = floor(root.clientWidth - (left + width));
6549      const insetBottom = floor(root.clientHeight - (top + height));
6550      const insetLeft = floor(left);
6551      const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
6552      const options = {
6553        rootMargin,
6554        threshold: max(0, min(1, threshold)) || 1
6555      };
6556      let isFirstUpdate = true;
6557      function handleObserve(entries) {
6558        const ratio = entries[0].intersectionRatio;
6559        if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
6560          return refresh();
6561        }
6562        if (ratio !== threshold) {
6563          if (!isFirstUpdate) {
6564            return refresh();
6565          }
6566          if (!ratio) {
6567            timeoutId = setTimeout(() => {
6568              refresh(false, 1e-7);
6569            }, 1e3);
6570          } else {
6571            refresh(false, ratio);
6572          }
6573        }
6574        isFirstUpdate = false;
6575      }
6576      try {
6577        io = new IntersectionObserver(handleObserve, {
6578          ...options,
6579          // Handle <iframe>s
6580          root: root.ownerDocument
6581        });
6582      } catch (_e) {
6583        io = new IntersectionObserver(handleObserve, options);
6584      }
6585      io.observe(element);
6586    }
6587    const win = getWindow(element);
6588    const handleResize = () => refresh(ancestorResize);
6589    win.addEventListener("resize", handleResize);
6590    refresh(true);
6591    return () => {
6592      win.removeEventListener("resize", handleResize);
6593      cleanup();
6594    };
6595  }
6596  function autoUpdate(reference, floating, update2, options) {
6597    if (options === void 0) {
6598      options = {};
6599    }
6600    const {
6601      ancestorScroll = true,
6602      ancestorResize = true,
6603      elementResize = typeof ResizeObserver === "function",
6604      layoutShift = typeof IntersectionObserver === "function",
6605      animationFrame = false
6606    } = options;
6607    const referenceEl = unwrapElement(reference);
6608    const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...floating ? getOverflowAncestors(floating) : []] : [];
6609    ancestors.forEach((ancestor) => {
6610      ancestorScroll && ancestor.addEventListener("scroll", update2);
6611      ancestorResize && ancestor.addEventListener("resize", update2);
6612    });
6613    const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update2, ancestorResize) : null;
6614    let reobserveFrame = -1;
6615    let resizeObserver = null;
6616    if (elementResize) {
6617      resizeObserver = new ResizeObserver((_ref) => {
6618        let [firstEntry] = _ref;
6619        if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {
6620          resizeObserver.unobserve(floating);
6621          cancelAnimationFrame(reobserveFrame);
6622          reobserveFrame = requestAnimationFrame(() => {
6623            var _resizeObserver;
6624            (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
6625          });
6626        }
6627        update2();
6628      });
6629      if (referenceEl && !animationFrame) {
6630        resizeObserver.observe(referenceEl);
6631      }
6632      if (floating) {
6633        resizeObserver.observe(floating);
6634      }
6635    }
6636    let frameId;
6637    let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
6638    if (animationFrame) {
6639      frameLoop();
6640    }
6641    function frameLoop() {
6642      const nextRefRect = getBoundingClientRect(reference);
6643      if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
6644        update2();
6645      }
6646      prevRefRect = nextRefRect;
6647      frameId = requestAnimationFrame(frameLoop);
6648    }
6649    update2();
6650    return () => {
6651      var _resizeObserver2;
6652      ancestors.forEach((ancestor) => {
6653        ancestorScroll && ancestor.removeEventListener("scroll", update2);
6654        ancestorResize && ancestor.removeEventListener("resize", update2);
6655      });
6656      cleanupIo == null || cleanupIo();
6657      (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
6658      resizeObserver = null;
6659      if (animationFrame) {
6660        cancelAnimationFrame(frameId);
6661      }
6662    };
6663  }
6664  var offset2 = offset;
6665  var shift2 = shift;
6666  var flip2 = flip;
6667  var size2 = size;
6668  var limitShift2 = limitShift;
6669  var computePosition2 = (reference, floating, options) => {
6670    const cache = /* @__PURE__ */ new Map();
6671    const mergedOptions = options != null ? options : {};
6672    const platformWithCache = {
6673      ...platform2,
6674      ...mergedOptions.platform,
6675      _c: cache
6676    };
6677    return computePosition(reference, floating, {
6678      ...mergedOptions,
6679      platform: platformWithCache
6680    });
6681  };
6682  
6683  // node_modules/.store/@floating-ui/react-dom@2.1.9-AxWcAwqlMfOrAFOinFKSVg/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs
6684  var React30 = __toESM(require_react(), 1);
6685  var import_react2 = __toESM(require_react(), 1);
6686  var ReactDOM5 = __toESM(require_react_dom(), 1);
6687  var isClient = typeof document !== "undefined";
6688  var noop2 = function noop3() {
6689  };
6690  var index = isClient ? import_react2.useLayoutEffect : noop2;
6691  function deepEqual(a, b) {
6692    if (a === b) {
6693      return true;
6694    }
6695    if (typeof a !== typeof b) {
6696      return false;
6697    }
6698    if (typeof a === "function" && a.toString() === b.toString()) {
6699      return true;
6700    }
6701    let length;
6702    let i;
6703    let keys;
6704    if (a && b && typeof a === "object") {
6705      if (Array.isArray(a)) {
6706        length = a.length;
6707        if (length !== b.length) return false;
6708        for (i = length; i-- !== 0; ) {
6709          if (!deepEqual(a[i], b[i])) {
6710            return false;
6711          }
6712        }
6713        return true;
6714      }
6715      keys = Object.keys(a);
6716      length = keys.length;
6717      if (length !== Object.keys(b).length) {
6718        return false;
6719      }
6720      for (i = length; i-- !== 0; ) {
6721        if (!{}.hasOwnProperty.call(b, keys[i])) {
6722          return false;
6723        }
6724      }
6725      for (i = length; i-- !== 0; ) {
6726        const key = keys[i];
6727        if (key === "_owner" && a.$$typeof) {
6728          continue;
6729        }
6730        if (!deepEqual(a[key], b[key])) {
6731          return false;
6732        }
6733      }
6734      return true;
6735    }
6736    return a !== a && b !== b;
6737  }
6738  function getDPR(element) {
6739    if (typeof window === "undefined") {
6740      return 1;
6741    }
6742    const win = element.ownerDocument.defaultView || window;
6743    return win.devicePixelRatio || 1;
6744  }
6745  function roundByDPR(element, value) {
6746    const dpr = getDPR(element);
6747    return Math.round(value * dpr) / dpr;
6748  }
6749  function useLatestRef(value) {
6750    const ref = React30.useRef(value);
6751    index(() => {
6752      ref.current = value;
6753    });
6754    return ref;
6755  }
6756  function useFloating(options) {
6757    if (options === void 0) {
6758      options = {};
6759    }
6760    const {
6761      placement = "bottom",
6762      strategy = "absolute",
6763      middleware = [],
6764      platform: platform3,
6765      elements: {
6766        reference: externalReference,
6767        floating: externalFloating
6768      } = {},
6769      transform = true,
6770      whileElementsMounted,
6771      open: open2
6772    } = options;
6773    const [data, setData] = React30.useState({
6774      x: 0,
6775      y: 0,
6776      strategy,
6777      placement,
6778      middlewareData: {},
6779      isPositioned: false
6780    });
6781    const [latestMiddleware, setLatestMiddleware] = React30.useState(middleware);
6782    if (!deepEqual(latestMiddleware, middleware)) {
6783      setLatestMiddleware(middleware);
6784    }
6785    const [_reference, _setReference] = React30.useState(null);
6786    const [_floating, _setFloating] = React30.useState(null);
6787    const setReference = React30.useCallback((node) => {
6788      if (node !== referenceRef.current) {
6789        referenceRef.current = node;
6790        _setReference(node);
6791      }
6792    }, []);
6793    const setFloating = React30.useCallback((node) => {
6794      if (node !== floatingRef.current) {
6795        floatingRef.current = node;
6796        _setFloating(node);
6797      }
6798    }, []);
6799    const referenceEl = externalReference || _reference;
6800    const floatingEl = externalFloating || _floating;
6801    const referenceRef = React30.useRef(null);
6802    const floatingRef = React30.useRef(null);
6803    const dataRef = React30.useRef(data);
6804    const hasWhileElementsMounted = whileElementsMounted != null;
6805    const whileElementsMountedRef = useLatestRef(whileElementsMounted);
6806    const platformRef = useLatestRef(platform3);
6807    const openRef = useLatestRef(open2);
6808    const update2 = React30.useCallback(() => {
6809      if (!referenceRef.current || !floatingRef.current) {
6810        return;
6811      }
6812      const config = {
6813        placement,
6814        strategy,
6815        middleware: latestMiddleware
6816      };
6817      if (platformRef.current) {
6818        config.platform = platformRef.current;
6819      }
6820      computePosition2(referenceRef.current, floatingRef.current, config).then((data2) => {
6821        const fullData = {
6822          ...data2,
6823          // The floating element's position may be recomputed while it's closed
6824          // but still mounted (such as when transitioning out). To ensure
6825          // `isPositioned` will be `false` initially on the next open, avoid
6826          // setting it to `true` when `open === false` (must be specified).
6827          isPositioned: openRef.current !== false
6828        };
6829        if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {
6830          dataRef.current = fullData;
6831          ReactDOM5.flushSync(() => {
6832            setData(fullData);
6833          });
6834        }
6835      });
6836    }, [latestMiddleware, placement, strategy, platformRef, openRef]);
6837    index(() => {
6838      if (open2 === false && dataRef.current.isPositioned) {
6839        dataRef.current.isPositioned = false;
6840        setData((data2) => ({
6841          ...data2,
6842          isPositioned: false
6843        }));
6844      }
6845    }, [open2]);
6846    const isMountedRef = React30.useRef(false);
6847    index(() => {
6848      isMountedRef.current = true;
6849      return () => {
6850        isMountedRef.current = false;
6851      };
6852    }, []);
6853    index(() => {
6854      if (referenceEl) referenceRef.current = referenceEl;
6855      if (floatingEl) floatingRef.current = floatingEl;
6856      if (referenceEl && floatingEl) {
6857        if (whileElementsMountedRef.current) {
6858          return whileElementsMountedRef.current(referenceEl, floatingEl, update2);
6859        }
6860        update2();
6861      }
6862    }, [referenceEl, floatingEl, update2, whileElementsMountedRef, hasWhileElementsMounted]);
6863    const refs = React30.useMemo(() => ({
6864      reference: referenceRef,
6865      floating: floatingRef,
6866      setReference,
6867      setFloating
6868    }), [setReference, setFloating]);
6869    const elements = React30.useMemo(() => ({
6870      reference: referenceEl,
6871      floating: floatingEl
6872    }), [referenceEl, floatingEl]);
6873    const floatingStyles = React30.useMemo(() => {
6874      const initialStyles = {
6875        position: strategy,
6876        left: 0,
6877        top: 0
6878      };
6879      if (!elements.floating) {
6880        return initialStyles;
6881      }
6882      const x = roundByDPR(elements.floating, data.x);
6883      const y = roundByDPR(elements.floating, data.y);
6884      if (transform) {
6885        return {
6886          ...initialStyles,
6887          transform: "translate(" + x + "px, " + y + "px)",
6888          ...getDPR(elements.floating) >= 1.5 && {
6889            willChange: "transform"
6890          }
6891        };
6892      }
6893      return {
6894        position: strategy,
6895        left: x,
6896        top: y
6897      };
6898    }, [strategy, transform, elements.floating, data.x, data.y]);
6899    return React30.useMemo(() => ({
6900      ...data,
6901      update: update2,
6902      refs,
6903      elements,
6904      floatingStyles
6905    }), [data, update2, refs, elements, floatingStyles]);
6906  }
6907  var offset3 = (options, deps) => {
6908    const result = offset2(options);
6909    return {
6910      name: result.name,
6911      fn: result.fn,
6912      options: [options, deps]
6913    };
6914  };
6915  var shift3 = (options, deps) => {
6916    const result = shift2(options);
6917    return {
6918      name: result.name,
6919      fn: result.fn,
6920      options: [options, deps]
6921    };
6922  };
6923  var limitShift3 = (options, deps) => {
6924    const result = limitShift2(options);
6925    return {
6926      fn: result.fn,
6927      options: [options, deps]
6928    };
6929  };
6930  var flip3 = (options, deps) => {
6931    const result = flip2(options);
6932    return {
6933      name: result.name,
6934      fn: result.fn,
6935      options: [options, deps]
6936    };
6937  };
6938  var size3 = (options, deps) => {
6939    const result = size2(options);
6940    return {
6941      name: result.name,
6942      fn: result.fn,
6943      options: [options, deps]
6944    };
6945  };
6946  
6947  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/NullStore.mjs
6948  var NullStore = class extends ReactStore {
6949    // `update`/`set`/`notifyAll` funnel through `setState` in the base `Store`, so overriding
6950    // `setState` alone would neutralize them today. They are overridden explicitly so the store stays
6951    // inert even if a future base-class change stops routing a mutator through `setState`.
6952    setState(_newState) {
6953    }
6954    update(_changes) {
6955    }
6956    set(_key, _value) {
6957    }
6958    notifyAll() {
6959    }
6960  };
6961  
6962  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/inertValue.mjs
6963  function inertValue(value) {
6964    if (isReactVersionAtLeast(19)) {
6965      return value;
6966    }
6967    return value ? "true" : void 0;
6968  }
6969  
6970  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/direction-context/DirectionContext.mjs
6971  var React31 = __toESM(require_react(), 1);
6972  var DirectionContext = /* @__PURE__ */ React31.createContext(void 0);
6973  if (true) DirectionContext.displayName = "DirectionContext";
6974  function useDirection() {
6975    const context = React31.useContext(DirectionContext);
6976    return context?.direction ?? "ltr";
6977  }
6978  
6979  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnchorPositioning.mjs
6980  var React33 = __toESM(require_react(), 1);
6981  
6982  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useFloating.mjs
6983  var React32 = __toESM(require_react(), 1);
6984  function useBaseUIFloating(options) {
6985    const {
6986      nodeId,
6987      externalTree,
6988      rootContext: store2
6989    } = options;
6990    const referenceElement = store2.useState("referenceElement");
6991    const floatingElement = store2.useState("floatingElement");
6992    const domReferenceElement = store2.useState("domReferenceElement");
6993    const open2 = store2.useState("open");
6994    const floatingId = store2.useState("floatingId");
6995    const [positionReference, setPositionReferenceRaw] = React32.useState(null);
6996    const domReferenceRef = React32.useRef(null);
6997    const tree = useFloatingTree(externalTree);
6998    const storeElements = React32.useMemo(() => ({
6999      reference: referenceElement,
7000      floating: floatingElement,
7001      domReference: domReferenceElement
7002    }), [referenceElement, floatingElement, domReferenceElement]);
7003    const position = useFloating({
7004      ...options,
7005      elements: {
7006        ...storeElements,
7007        ...positionReference && {
7008          reference: positionReference
7009        }
7010      }
7011    });
7012    const setPositionReference = React32.useCallback((node) => {
7013      const computedPositionReference = isElement(node) ? {
7014        getBoundingClientRect: () => node.getBoundingClientRect(),
7015        getClientRects: () => node.getClientRects(),
7016        contextElement: node
7017      } : node;
7018      setPositionReferenceRaw(computedPositionReference);
7019      position.refs.setReference(computedPositionReference);
7020    }, [position.refs]);
7021    const refs = React32.useMemo(() => ({
7022      ...position.refs,
7023      setPositionReference,
7024      domReference: domReferenceRef
7025    }), [position.refs, setPositionReference]);
7026    const elements = React32.useMemo(() => ({
7027      ...position.elements,
7028      domReference: domReferenceElement
7029    }), [position.elements, domReferenceElement]);
7030    const context = React32.useMemo(() => ({
7031      ...position,
7032      dataRef: store2.context.dataRef,
7033      open: open2,
7034      onOpenChange: store2.setOpen,
7035      events: store2.context.events,
7036      floatingId,
7037      refs,
7038      elements,
7039      nodeId,
7040      rootStore: store2
7041    }), [position, refs, elements, nodeId, store2, open2, floatingId]);
7042    useIsoLayoutEffect(() => {
7043      if (domReferenceElement) {
7044        domReferenceRef.current = domReferenceElement;
7045      }
7046    }, [domReferenceElement]);
7047    useIsoLayoutEffect(() => {
7048      store2.context.dataRef.current.floatingContext = context;
7049      const node = tree?.nodesRef.current.find((n) => n.id === nodeId);
7050      if (node) {
7051        node.context = context;
7052      }
7053    });
7054    return React32.useMemo(() => ({
7055      ...position,
7056      context,
7057      refs,
7058      elements,
7059      rootStore: store2
7060    }), [position, refs, elements, context, store2]);
7061  }
7062  
7063  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/middleware/arrow.mjs
7064  var baseArrow = (options) => ({
7065    name: "arrow",
7066    options,
7067    async fn(state) {
7068      const {
7069        x,
7070        y,
7071        placement,
7072        rects,
7073        platform: platform3,
7074        elements,
7075        middlewareData
7076      } = state;
7077      const {
7078        element,
7079        padding = 0
7080      } = evaluate(options, state) || {};
7081      if (element == null) {
7082        return {};
7083      }
7084      const paddingObject = getPaddingObject(padding);
7085      const coords = {
7086        x,
7087        y
7088      };
7089      const axis = getAlignmentAxis(placement);
7090      const length = getAxisLength(axis);
7091      const arrowDimensions = await platform3.getDimensions(element);
7092      const isYAxis = axis === "y";
7093      const minProp = isYAxis ? "top" : "left";
7094      const maxProp = isYAxis ? "bottom" : "right";
7095      const clientProp = isYAxis ? "clientHeight" : "clientWidth";
7096      const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
7097      const startDiff = coords[axis] - rects.reference[axis];
7098      const clientSize = elements.floating[clientProp] || rects.floating[length];
7099      const centerToReference = endDiff / 2 - startDiff / 2;
7100      const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
7101      const minPadding = Math.min(paddingObject[minProp], largestPossiblePadding);
7102      const maxPadding = Math.min(paddingObject[maxProp], largestPossiblePadding);
7103      const min2 = minPadding;
7104      const max2 = clientSize - arrowDimensions[length] - maxPadding;
7105      const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
7106      const offset4 = clamp(min2, center, max2);
7107      const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset4 && rects.reference[length] / 2 - (center < min2 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
7108      const alignmentOffset = shouldAddOffset ? center < min2 ? center - min2 : center - max2 : 0;
7109      return {
7110        [axis]: coords[axis] + alignmentOffset,
7111        data: {
7112          [axis]: offset4,
7113          centerOffset: center - offset4 - alignmentOffset,
7114          ...shouldAddOffset && {
7115            alignmentOffset
7116          }
7117        },
7118        reset: shouldAddOffset
7119      };
7120    }
7121  });
7122  var arrow4 = (options, deps) => {
7123    const {
7124      name,
7125      fn
7126    } = baseArrow(options);
7127    return {
7128      name,
7129      fn,
7130      options: [options, deps]
7131    };
7132  };
7133  
7134  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/hideMiddleware.mjs
7135  var hide4 = {
7136    name: "hide",
7137    async fn(state) {
7138      const {
7139        width,
7140        height,
7141        x,
7142        y
7143      } = state.rects.reference;
7144      const anchorHidden2 = width === 0 && height === 0 && x === 0 && y === 0;
7145      const overflow = await state.platform.detectOverflow(state, {
7146        elementContext: "reference"
7147      });
7148      const referenceHidden = overflow.top - height >= 0 || overflow.right - width >= 0 || overflow.bottom - height >= 0 || overflow.left - width >= 0;
7149      return {
7150        data: {
7151          referenceHidden: referenceHidden || anchorHidden2
7152        }
7153      };
7154    }
7155  };
7156  
7157  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/adaptiveOriginConstants.mjs
7158  var DEFAULT_SIDES = {
7159    sideX: "left",
7160    sideY: "top"
7161  };
7162  
7163  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonPositionerCssVars.mjs
7164  var availableWidth = "--available-width";
7165  var availableHeight = "--available-height";
7166  var anchorWidth = "--anchor-width";
7167  var anchorHeight = "--anchor-height";
7168  var transformOrigin = "--transform-origin";
7169  var positionerWidth = "--positioner-width";
7170  var positionerHeight = "--positioner-height";
7171  
7172  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnchorPositioning.mjs
7173  var AVAILABLE_WIDTH_VAR = availableWidth;
7174  var AVAILABLE_HEIGHT_VAR = availableHeight;
7175  function getLogicalSide(sideParam, renderedSide, isRtl) {
7176    const isLogicalSideParam = sideParam === "inline-start" || sideParam === "inline-end";
7177    const logicalRight = isRtl ? "inline-start" : "inline-end";
7178    const logicalLeft = isRtl ? "inline-end" : "inline-start";
7179    return {
7180      top: "top",
7181      right: isLogicalSideParam ? logicalRight : "right",
7182      bottom: "bottom",
7183      left: isLogicalSideParam ? logicalLeft : "left"
7184    }[renderedSide];
7185  }
7186  function getOffsetData(state, sideParam, isRtl) {
7187    const {
7188      rects,
7189      placement
7190    } = state;
7191    const data = {
7192      side: getLogicalSide(sideParam, getSide(placement), isRtl),
7193      align: getAlignment(placement) || "center",
7194      anchor: {
7195        width: rects.reference.width,
7196        height: rects.reference.height
7197      },
7198      positioner: {
7199        width: rects.floating.width,
7200        height: rects.floating.height
7201      }
7202    };
7203    return data;
7204  }
7205  function useAnchorPositioning(params) {
7206    return useAnchorPositioningWithHook(params, useBaseUIFloating);
7207  }
7208  function useAnchorPositioningWithHook(params, useFloatingHook) {
7209    const {
7210      // Public parameters
7211      anchor,
7212      positionMethod = "absolute",
7213      side: sideParam = "bottom",
7214      sideOffset = 0,
7215      align = "center",
7216      alignOffset = 0,
7217      collisionBoundary,
7218      collisionPadding: collisionPaddingParam = 5,
7219      sticky = false,
7220      arrowPadding = 5,
7221      disableAnchorTracking = false,
7222      inline: inlineMiddleware,
7223      // Private parameters
7224      keepMounted = false,
7225      floatingRootContext,
7226      mounted,
7227      collisionAvoidance,
7228      shift: shift4,
7229      nodeId,
7230      adaptiveOrigin: adaptiveOrigin2,
7231      lazyFlip = false,
7232      externalTree
7233    } = params;
7234    const collisionAvoidanceSide = collisionAvoidance.side || "flip";
7235    const collisionAvoidanceAlign = collisionAvoidance.align || "flip";
7236    const collisionAvoidanceFallbackAxisSide = collisionAvoidance.fallbackAxisSide || "end";
7237    const shiftCrossAxis = shift4?.crossAxis ?? false;
7238    const shiftRootBoundary = shift4?.rootBoundary;
7239    const anchorFn = typeof anchor === "function" ? anchor : void 0;
7240    const anchorFnCallback = useStableCallback(anchorFn);
7241    const anchorDep = anchorFn ? anchorFnCallback : anchor;
7242    const anchorValueRef = useValueAsRef(anchor);
7243    const mountedRef = useValueAsRef(mounted);
7244    const direction = useDirection();
7245    const isRtl = direction === "rtl";
7246    const [mountPlacement, setMountPlacement] = React33.useState(null);
7247    if (!mounted && mountPlacement !== null) {
7248      setMountPlacement(null);
7249    }
7250    const lockAlign = lazyFlip === "placement";
7251    const mountSide = mountPlacement ? getSide(mountPlacement) : null;
7252    const mountAlign = mountPlacement && lockAlign ? getAlignment(mountPlacement) || "center" : null;
7253    const side = mountSide || {
7254      top: "top",
7255      right: "right",
7256      bottom: "bottom",
7257      left: "left",
7258      "inline-end": isRtl ? "left" : "right",
7259      "inline-start": isRtl ? "right" : "left"
7260    }[sideParam];
7261    const placementAlign = mountAlign || align;
7262    const placement = placementAlign === "center" ? side : `$side}-$placementAlign}`;
7263    let collisionPadding = collisionPaddingParam;
7264    if (typeof collisionPadding === "number") {
7265      collisionPadding = {
7266        top: collisionPadding,
7267        right: collisionPadding,
7268        bottom: collisionPadding,
7269        left: collisionPadding
7270      };
7271    } else if (collisionPadding) {
7272      collisionPadding = {
7273        top: collisionPadding.top || 0,
7274        right: collisionPadding.right || 0,
7275        bottom: collisionPadding.bottom || 0,
7276        left: collisionPadding.left || 0
7277      };
7278    }
7279    const bias = 1;
7280    const biasTop = sideParam === "bottom" ? bias : 0;
7281    const biasBottom = sideParam === "top" ? bias : 0;
7282    const biasLeft = sideParam === "right" ? bias : 0;
7283    const biasRight = sideParam === "left" ? bias : 0;
7284    const commonCollisionProps = {
7285      boundary: collisionBoundary === "clipping-ancestors" ? "clippingAncestors" : collisionBoundary,
7286      padding: collisionPadding
7287    };
7288    const arrowRef = React33.useRef(null);
7289    const sideOffsetRef = useValueAsRef(sideOffset);
7290    const alignOffsetRef = useValueAsRef(alignOffset);
7291    const sideOffsetDep = typeof sideOffset !== "function" ? sideOffset : 0;
7292    const alignOffsetDep = typeof alignOffset !== "function" ? alignOffset : 0;
7293    const middleware = [];
7294    if (inlineMiddleware) {
7295      middleware.push(inlineMiddleware);
7296    }
7297    middleware.push(offset3((state) => {
7298      const data = getOffsetData(state, sideParam, isRtl);
7299      const sideAxis = typeof sideOffsetRef.current === "function" ? sideOffsetRef.current(data) : sideOffsetRef.current;
7300      const alignAxis = typeof alignOffsetRef.current === "function" ? alignOffsetRef.current(data) : alignOffsetRef.current;
7301      return {
7302        mainAxis: sideAxis,
7303        crossAxis: alignAxis,
7304        alignmentAxis: alignAxis
7305      };
7306    }, [sideOffsetDep, alignOffsetDep, isRtl, sideParam]));
7307    const shiftDisabled = collisionAvoidanceAlign === "none" && collisionAvoidanceSide !== "shift";
7308    const crossAxisShiftEnabled = !shiftDisabled && (sticky || shiftCrossAxis || collisionAvoidanceSide === "shift");
7309    const flipMiddleware = collisionAvoidanceSide === "none" ? null : flip3({
7310      ...commonCollisionProps,
7311      // Ensure the popup flips if it's been limited by its --available-height and it resizes.
7312      // Since the size() padding is smaller than the flip() padding, flip() will take precedence.
7313      padding: {
7314        top: collisionPadding.top + bias + biasTop,
7315        right: collisionPadding.right + bias + biasRight,
7316        bottom: collisionPadding.bottom + bias + biasBottom,
7317        left: collisionPadding.left + bias + biasLeft
7318      },
7319      mainAxis: !shiftCrossAxis && collisionAvoidanceSide === "flip",
7320      crossAxis: collisionAvoidanceAlign === "flip" ? "alignment" : false,
7321      fallbackAxisSideDirection: collisionAvoidanceFallbackAxisSide
7322    });
7323    const shiftMiddleware = shiftDisabled ? null : shift3({
7324      ...commonCollisionProps,
7325      // Use the Layout Viewport to avoid shifting around when pinch-zooming.
7326      rootBoundary: shiftRootBoundary,
7327      mainAxis: collisionAvoidanceAlign !== "none",
7328      crossAxis: crossAxisShiftEnabled,
7329      limiter: sticky || shiftCrossAxis ? void 0 : limitShift3((limitData) => {
7330        if (!arrowRef.current) {
7331          return {};
7332        }
7333        const {
7334          width,
7335          height
7336        } = arrowRef.current.getBoundingClientRect();
7337        const sideAxis = getSideAxis(getSide(limitData.placement));
7338        const arrowSize = sideAxis === "y" ? width : height;
7339        const offsetAmount = sideAxis === "y" ? collisionPadding.left + collisionPadding.right : collisionPadding.top + collisionPadding.bottom;
7340        return {
7341          offset: arrowSize / 2 + offsetAmount / 2
7342        };
7343      })
7344    }, [commonCollisionProps, sticky, shiftCrossAxis, shiftRootBoundary, collisionPadding, collisionAvoidanceAlign]);
7345    if (collisionAvoidanceSide === "shift" || collisionAvoidanceAlign === "shift" || placementAlign === "center") {
7346      middleware.push(shiftMiddleware, flipMiddleware);
7347    } else {
7348      middleware.push(flipMiddleware, shiftMiddleware);
7349    }
7350    middleware.push(size3({
7351      ...commonCollisionProps,
7352      apply({
7353        elements: {
7354          floating
7355        },
7356        availableWidth: availableWidth2,
7357        availableHeight: availableHeight2,
7358        rects
7359      }) {
7360        if (!mountedRef.current) {
7361          return;
7362        }
7363        const floatingStyle = floating.style;
7364        floatingStyle.setProperty(AVAILABLE_WIDTH_VAR, `$availableWidth2}px`);
7365        floatingStyle.setProperty(AVAILABLE_HEIGHT_VAR, `$availableHeight2}px`);
7366        const dpr = getWindow(floating).devicePixelRatio || 1;
7367        const {
7368          x: x2,
7369          y: y2,
7370          width,
7371          height
7372        } = rects.reference;
7373        const anchorWidth2 = (Math.round((x2 + width) * dpr) - Math.round(x2 * dpr)) / dpr;
7374        const anchorHeight2 = (Math.round((y2 + height) * dpr) - Math.round(y2 * dpr)) / dpr;
7375        floatingStyle.setProperty(anchorWidth, `$anchorWidth2}px`);
7376        floatingStyle.setProperty(anchorHeight, `$anchorHeight2}px`);
7377      }
7378    }), arrow4((state) => ({
7379      // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,
7380      // we'll create a fake element.
7381      element: arrowRef.current || ownerDocument(state.elements.floating).createElement("div"),
7382      // No padding for the fake arrow: it would displace aligned popups on narrow anchors.
7383      padding: arrowRef.current ? arrowPadding : 0
7384    }), [arrowPadding]), {
7385      name: "transformOrigin",
7386      fn(state) {
7387        const {
7388          elements: {
7389            floating
7390          },
7391          middlewareData: middlewareData2,
7392          placement: renderedPlacement2,
7393          platform: platform3,
7394          rects,
7395          y: y2
7396        } = state;
7397        const renderedSide2 = getSide(renderedPlacement2);
7398        const renderedAlign2 = getAlignment(renderedPlacement2);
7399        const isVertical = getSideAxis(renderedSide2) === "y";
7400        const arrowEl = arrowRef.current;
7401        const sideOffsetValue = typeof sideOffset === "function" ? sideOffset(getOffsetData(state, sideParam, isRtl)) : sideOffset;
7402        let crossOrigin;
7403        if (!arrowEl && renderedAlign2 && Math.abs(isVertical ? middlewareData2.shift?.x || 0 : middlewareData2.shift?.y || 0) <= 1) {
7404          crossOrigin = renderedAlign2 === "start" === (isVertical && platform3.isRTL?.(floating) === true) ? "100%" : "0%";
7405        } else {
7406          const arrowOffset = isVertical ? middlewareData2.arrow?.x || 0 : middlewareData2.arrow?.y || 0;
7407          const arrowSize = isVertical ? arrowEl?.clientWidth || 0 : arrowEl?.clientHeight || 0;
7408          crossOrigin = `$arrowOffset + arrowSize / 2}px`;
7409        }
7410        let sideOrigin = renderedSide2 === "top" || renderedSide2 === "left" ? `calc(100% + $sideOffsetValue}px)` : `${-sideOffsetValue}px`;
7411        if (crossAxisShiftEnabled && isVertical && Math.abs(middlewareData2.shift?.y || 0) > sideOffsetValue) {
7412          sideOrigin = `$rects.reference.y + rects.reference.height / 2 - y2}px`;
7413        }
7414        floating.style.setProperty(transformOrigin, isVertical ? `$crossOrigin} $sideOrigin}` : `$sideOrigin} $crossOrigin}`);
7415        return {};
7416      }
7417    }, hide4, adaptiveOrigin2);
7418    useIsoLayoutEffect(() => {
7419      if (!mounted && floatingRootContext) {
7420        floatingRootContext.update({
7421          referenceElement: null,
7422          floatingElement: null,
7423          domReferenceElement: null,
7424          positionReference: null
7425        });
7426      }
7427    }, [mounted, floatingRootContext]);
7428    const autoUpdateOptions = React33.useMemo(() => ({
7429      ancestorScroll: !disableAnchorTracking,
7430      elementResize: !disableAnchorTracking && typeof ResizeObserver !== "undefined",
7431      layoutShift: !disableAnchorTracking && typeof IntersectionObserver !== "undefined"
7432    }), [disableAnchorTracking]);
7433    const {
7434      refs,
7435      elements,
7436      x,
7437      y,
7438      middlewareData,
7439      update: update2,
7440      placement: renderedPlacement,
7441      context,
7442      isPositioned,
7443      floatingStyles: originalFloatingStyles
7444    } = useFloatingHook({
7445      rootContext: floatingRootContext,
7446      open: keepMounted ? mounted : void 0,
7447      placement,
7448      middleware,
7449      strategy: positionMethod,
7450      whileElementsMounted: keepMounted ? void 0 : (...args) => autoUpdate(...args, autoUpdateOptions),
7451      nodeId,
7452      externalTree
7453    });
7454    const {
7455      sideX,
7456      sideY
7457    } = middlewareData.adaptiveOrigin || DEFAULT_SIDES;
7458    const resolvedPosition = isPositioned ? positionMethod : "fixed";
7459    const floatingStyles = React33.useMemo(() => {
7460      let base;
7461      if (!isPositioned) {
7462        base = {
7463          position: resolvedPosition,
7464          top: 0,
7465          left: 0
7466        };
7467      } else if (adaptiveOrigin2) {
7468        base = {
7469          position: resolvedPosition,
7470          [sideX]: x,
7471          [sideY]: y
7472        };
7473      } else {
7474        base = {
7475          ...originalFloatingStyles,
7476          position: resolvedPosition
7477        };
7478      }
7479      base[AVAILABLE_WIDTH_VAR] = "100vw";
7480      base[AVAILABLE_HEIGHT_VAR] = "100vh";
7481      if (!isPositioned) {
7482        base.opacity = 0;
7483      }
7484      return base;
7485    }, [adaptiveOrigin2, resolvedPosition, sideX, x, sideY, y, originalFloatingStyles, isPositioned]);
7486    const registeredPositionReferenceRef = React33.useRef(null);
7487    useIsoLayoutEffect(() => {
7488      if (!mounted) {
7489        return;
7490      }
7491      const anchorValue = anchorValueRef.current;
7492      const resolvedAnchor = typeof anchorValue === "function" ? anchorValue() : anchorValue;
7493      const unwrappedElement = (isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor) || null;
7494      const finalAnchor = unwrappedElement || null;
7495      if (finalAnchor !== registeredPositionReferenceRef.current) {
7496        refs.setPositionReference(finalAnchor);
7497        registeredPositionReferenceRef.current = finalAnchor;
7498      }
7499    }, [mounted, refs, anchorDep, anchorValueRef]);
7500    React33.useEffect(() => {
7501      if (!mounted) {
7502        return;
7503      }
7504      const anchorValue = anchorValueRef.current;
7505      if (typeof anchorValue === "function") {
7506        return;
7507      }
7508      if (isRef(anchorValue) && anchorValue.current !== registeredPositionReferenceRef.current) {
7509        refs.setPositionReference(anchorValue.current);
7510        registeredPositionReferenceRef.current = anchorValue.current;
7511      }
7512    }, [mounted, refs, anchorDep, anchorValueRef]);
7513    React33.useEffect(() => {
7514      if (keepMounted && mounted && elements.reference && elements.floating) {
7515        return autoUpdate(elements.reference, elements.floating, update2, autoUpdateOptions);
7516      }
7517      return void 0;
7518    }, [keepMounted, mounted, elements, update2, autoUpdateOptions]);
7519    const renderedSide = getSide(renderedPlacement);
7520    const logicalRenderedSide = getLogicalSide(sideParam, renderedSide, isRtl);
7521    const renderedAlign = getAlignment(renderedPlacement) || "center";
7522    const anchorHidden2 = Boolean(middlewareData.hide?.referenceHidden);
7523    useIsoLayoutEffect(() => {
7524      if (lazyFlip && mounted && isPositioned && (renderedSide !== side || lockAlign && renderedAlign !== placementAlign)) {
7525        setMountPlacement(renderedPlacement);
7526      }
7527    }, [lazyFlip, lockAlign, mounted, isPositioned, renderedPlacement, renderedSide, renderedAlign, side, placementAlign]);
7528    const arrowStyles = React33.useMemo(() => ({
7529      position: "absolute",
7530      top: middlewareData.arrow?.y,
7531      left: middlewareData.arrow?.x
7532    }), [middlewareData.arrow]);
7533    const arrowUncentered = middlewareData.arrow?.centerOffset !== 0;
7534    return React33.useMemo(() => ({
7535      positionerStyles: floatingStyles,
7536      arrowStyles,
7537      arrowRef,
7538      arrowUncentered,
7539      side: logicalRenderedSide,
7540      align: renderedAlign,
7541      physicalSide: renderedSide,
7542      anchorHidden: anchorHidden2,
7543      refs,
7544      context,
7545      isPositioned,
7546      update: update2
7547    }), [floatingStyles, arrowStyles, arrowRef, arrowUncentered, logicalRenderedSide, renderedAlign, renderedSide, anchorHidden2, refs, context, isPositioned, update2]);
7548  }
7549  function isRef(param) {
7550    return param != null && "current" in param;
7551  }
7552  
7553  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/getDisabledMountTransitionStyles.mjs
7554  function getDisabledMountTransitionStyles(transitionStatus) {
7555    return transitionStatus === "starting" ? DISABLED_TRANSITIONS_STYLE : EMPTY_OBJECT;
7556  }
7557  
7558  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePositioner.mjs
7559  function usePositioner(componentProps, state, {
7560    styles,
7561    transitionStatus,
7562    props,
7563    refs,
7564    hidden,
7565    inert = false
7566  }) {
7567    const style = {
7568      ...styles
7569    };
7570    if (inert) {
7571      style.pointerEvents = "none";
7572    }
7573    return useRenderElement("div", componentProps, {
7574      state,
7575      ref: refs,
7576      props: [{
7577        role: "presentation",
7578        hidden,
7579        style
7580      }, getDisabledMountTransitionStyles(transitionStatus), props],
7581      stateAttributesMapping: popupStateMapping
7582    });
7583  }
7584  
7585  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/button/Button.mjs
7586  var React34 = __toESM(require_react(), 1);
7587  var Button = /* @__PURE__ */ React34.forwardRef(function Button2(componentProps, forwardedRef) {
7588    const {
7589      render,
7590      className,
7591      disabled: disabled2 = false,
7592      focusableWhenDisabled = false,
7593      nativeButton = true,
7594      style,
7595      ...elementProps
7596    } = componentProps;
7597    const {
7598      getButtonProps,
7599      buttonRef
7600    } = useButton({
7601      disabled: disabled2,
7602      focusableWhenDisabled,
7603      native: nativeButton
7604    });
7605    const state = {
7606      disabled: disabled2
7607    };
7608    return useRenderElement("button", componentProps, {
7609      state,
7610      ref: [forwardedRef, buttonRef],
7611      props: [elementProps, getButtonProps]
7612    });
7613  });
7614  if (true) Button.displayName = "Button";
7615  
7616  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupViewport.mjs
7617  var React38 = __toESM(require_react(), 1);
7618  var ReactDOM6 = __toESM(require_react_dom(), 1);
7619  
7620  // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/usePreviousValue.mjs
7621  var React35 = __toESM(require_react(), 1);
7622  function usePreviousValue(value) {
7623    const [state, setState] = React35.useState({
7624      current: value,
7625      previous: null
7626    });
7627    if (!Object.is(value, state.current)) {
7628      setState({
7629        current: value,
7630        previous: state.current
7631      });
7632    }
7633    return state.previous;
7634  }
7635  
7636  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupAutoResize.mjs
7637  var React36 = __toESM(require_react(), 1);
7638  
7639  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/getCssDimensions.mjs
7640  function getCssDimensions2(element) {
7641    const css = getComputedStyle2(element);
7642    let width = parseFloat(css.width) || 0;
7643    let height = parseFloat(css.height) || 0;
7644    const hasOffset = isHTMLElement(element);
7645    const offsetWidth = hasOffset ? element.offsetWidth : width;
7646    const offsetHeight = hasOffset ? element.offsetHeight : height;
7647    const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
7648    if (shouldFallback) {
7649      width = offsetWidth;
7650      height = offsetHeight;
7651    }
7652    return {
7653      width,
7654      height
7655    };
7656  }
7657  
7658  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonPopupCssVars.mjs
7659  var popupWidth = "--popup-width";
7660  var popupHeight = "--popup-height";
7661  
7662  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupAutoResize.mjs
7663  function usePopupAutoResize(parameters) {
7664    const {
7665      popupElement,
7666      positionerElement,
7667      content,
7668      mounted,
7669      onMeasureLayout: onMeasureLayoutParam,
7670      onMeasureLayoutComplete: onMeasureLayoutCompleteParam,
7671      side,
7672      direction
7673    } = parameters;
7674    const runOnceAnimationsFinish = useAnimationsFinished(popupElement, true);
7675    const animationFrame = useAnimationFrame();
7676    const committedDimensionsRef = React36.useRef(null);
7677    const onMeasureLayout = useStableCallback(onMeasureLayoutParam);
7678    const onMeasureLayoutComplete = useStableCallback(onMeasureLayoutCompleteParam);
7679    const anchoringStyles = React36.useMemo(() => getPopupAnchoringStyles(side, direction), [side, direction]);
7680    useIsoLayoutEffect(() => {
7681      if (!mounted) {
7682        committedDimensionsRef.current = null;
7683        return void 0;
7684      }
7685      if (!popupElement || !positionerElement) {
7686        return void 0;
7687      }
7688      const restoreAnchoringStyles = applyElementStyles(popupElement, anchoringStyles);
7689      setPopupCssSize(popupElement, "auto");
7690      const restorePopupPosition = overrideElementStyle(popupElement, "position", "static");
7691      const restorePopupTransform = overrideElementStyle(popupElement, "transform", "none");
7692      const restorePopupScale = overrideElementStyle(popupElement, "scale", "1");
7693      const restorePositionerAvailableSize = applyElementStyles(positionerElement, {
7694        [availableWidth]: "max-content",
7695        [availableHeight]: "max-content"
7696      });
7697      function restoreMeasurementOverrides() {
7698        restorePopupPosition();
7699        restorePopupTransform();
7700        restorePositionerAvailableSize();
7701        restorePopupScale();
7702      }
7703      onMeasureLayout?.();
7704      if (committedDimensionsRef.current === null) {
7705        setPositionerCssSize(positionerElement, "max-content");
7706        const dimensions = getCssDimensions2(popupElement);
7707        committedDimensionsRef.current = dimensions;
7708        setPositionerCssSize(positionerElement, dimensions);
7709        restoreMeasurementOverrides();
7710        onMeasureLayoutComplete?.(null, dimensions);
7711        return restoreAnchoringStyles;
7712      }
7713      setPositionerCssSize(positionerElement, "max-content");
7714      const previousDimensions = committedDimensionsRef.current;
7715      const newDimensions = getCssDimensions2(popupElement);
7716      committedDimensionsRef.current = newDimensions;
7717      setPopupCssSize(popupElement, previousDimensions);
7718      restoreMeasurementOverrides();
7719      onMeasureLayoutComplete?.(previousDimensions, newDimensions);
7720      setPositionerCssSize(positionerElement, newDimensions);
7721      const abortController = new AbortController();
7722      animationFrame.request(() => {
7723        setPopupCssSize(popupElement, newDimensions);
7724        runOnceAnimationsFinish(() => {
7725          popupElement.style.setProperty(popupWidth, "auto");
7726          popupElement.style.setProperty(popupHeight, "auto");
7727        }, abortController.signal);
7728      });
7729      return () => {
7730        abortController.abort();
7731        animationFrame.cancel();
7732        restoreAnchoringStyles();
7733      };
7734    }, [content, popupElement, positionerElement, runOnceAnimationsFinish, animationFrame, mounted, onMeasureLayout, onMeasureLayoutComplete, anchoringStyles]);
7735  }
7736  function getPopupAnchoringStyles(side, direction) {
7737    const isPhysicalTop = side === "top";
7738    const isPhysicalLeft = side === "left" || side === (direction === "rtl" ? "inline-end" : "inline-start");
7739    if (!isPhysicalTop && !isPhysicalLeft) {
7740      return EMPTY_OBJECT;
7741    }
7742    return {
7743      position: "absolute",
7744      [isPhysicalTop ? "bottom" : "top"]: "0",
7745      [isPhysicalLeft ? "right" : "left"]: "0"
7746    };
7747  }
7748  function overrideElementStyle(element, property, value) {
7749    const originalValue = element.style.getPropertyValue(property);
7750    element.style.setProperty(property, value);
7751    return () => {
7752      element.style.setProperty(property, originalValue);
7753    };
7754  }
7755  function applyElementStyles(element, styles) {
7756    const restorers = [];
7757    for (const [key, value] of Object.entries(styles)) {
7758      restorers.push(overrideElementStyle(element, key, value));
7759    }
7760    return restorers.length ? () => {
7761      restorers.forEach((restore) => restore());
7762    } : NOOP;
7763  }
7764  function setPopupCssSize(popupElement, size4) {
7765    const width = size4 === "auto" ? "auto" : `$size4.width}px`;
7766    const height = size4 === "auto" ? "auto" : `$size4.height}px`;
7767    popupElement.style.setProperty(popupWidth, width);
7768    popupElement.style.setProperty(popupHeight, height);
7769  }
7770  function setPositionerCssSize(positionerElement, size4) {
7771    const width = size4 === "max-content" ? "max-content" : `$size4.width}px`;
7772    const height = size4 === "max-content" ? "max-content" : `$size4.height}px`;
7773    positionerElement.style.setProperty(positionerWidth, width);
7774    positionerElement.style.setProperty(positionerHeight, height);
7775  }
7776  
7777  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/direction-provider/DirectionProvider.mjs
7778  var React37 = __toESM(require_react(), 1);
7779  var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
7780  var DirectionProvider = function DirectionProvider2(props) {
7781    const {
7782      direction = "ltr"
7783    } = props;
7784    const contextValue = React37.useMemo(() => ({
7785      direction
7786    }), [direction]);
7787    return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DirectionContext.Provider, {
7788      value: contextValue,
7789      children: props.children
7790    });
7791  };
7792  if (true) DirectionProvider.displayName = "DirectionProvider";
7793  
7794  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/adaptiveOriginMiddleware.mjs
7795  var adaptiveOrigin = {
7796    name: "adaptiveOrigin",
7797    async fn(state) {
7798      const {
7799        x: rawX,
7800        y: rawY,
7801        rects: {
7802          floating: floatRect
7803        },
7804        elements: {
7805          floating
7806        },
7807        platform: platform3,
7808        strategy,
7809        placement
7810      } = state;
7811      const win = getWindow(floating);
7812      const styles = win.getComputedStyle(floating);
7813      const hasTransition = styles.transitionDuration !== "0s" && styles.transitionDuration !== "";
7814      if (!hasTransition) {
7815        return {
7816          x: rawX,
7817          y: rawY,
7818          data: DEFAULT_SIDES
7819        };
7820      }
7821      const offsetParent = await platform3.getOffsetParent?.(floating);
7822      let offsetDimensions = {
7823        width: 0,
7824        height: 0
7825      };
7826      if (strategy === "fixed" && win?.visualViewport) {
7827        offsetDimensions = {
7828          width: win.visualViewport.width,
7829          height: win.visualViewport.height
7830        };
7831      } else if (offsetParent === win) {
7832        const doc = ownerDocument(floating);
7833        offsetDimensions = {
7834          width: doc.documentElement.clientWidth,
7835          height: doc.documentElement.clientHeight
7836        };
7837      } else if (await platform3.isElement?.(offsetParent)) {
7838        offsetDimensions = await platform3.getDimensions(offsetParent);
7839      }
7840      const currentSide = getSide(placement);
7841      let x = rawX;
7842      let y = rawY;
7843      if (currentSide === "left") {
7844        x = offsetDimensions.width - (rawX + floatRect.width);
7845      }
7846      if (currentSide === "top") {
7847        y = offsetDimensions.height - (rawY + floatRect.height);
7848      }
7849      const sideX = currentSide === "left" ? "right" : DEFAULT_SIDES.sideX;
7850      const sideY = currentSide === "top" ? "bottom" : DEFAULT_SIDES.sideY;
7851      return {
7852        x,
7853        y,
7854        data: {
7855          sideX,
7856          sideY
7857        }
7858      };
7859    }
7860  };
7861  
7862  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonViewportDataAttributes.mjs
7863  var activationDirection = "data-activation-direction";
7864  
7865  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupViewport.mjs
7866  var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
7867  var popupViewportStateMapping = {
7868    activationDirection: (value) => value ? {
7869      [activationDirection]: value
7870    } : null
7871  };
7872  function usePopupViewport(parameters) {
7873    const {
7874      store: store2,
7875      side,
7876      children
7877    } = parameters;
7878    const direction = useDirection();
7879    const activeTrigger = store2.useState("activeTriggerElement");
7880    const activeTriggerId = store2.useState("activeTriggerId");
7881    const open2 = store2.useState("open");
7882    const payload = store2.useState("payload");
7883    const mounted = store2.useState("mounted");
7884    const popupElement = store2.useState("popupElement");
7885    const positionerElement = store2.useState("positionerElement");
7886    const previousActiveTrigger = usePreviousValue(open2 ? activeTrigger : null);
7887    const currentContentKey = usePopupContentKey(activeTriggerId, payload);
7888    const capturedNodeRef = React38.useRef(null);
7889    const [previousContentNode, setPreviousContentNode] = React38.useState(null);
7890    const [newTriggerOffset, setNewTriggerOffset] = React38.useState(null);
7891    const currentContainerRef = React38.useRef(null);
7892    const previousContainerRef = React38.useRef(null);
7893    const onAnimationsFinished = useAnimationsFinished(currentContainerRef, true);
7894    const cleanupFrame = useAnimationFrame();
7895    const cleanupControllerRef = React38.useRef(null);
7896    const [previousContentDimensions, setPreviousContentDimensions] = React38.useState(null);
7897    const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React38.useState(false);
7898    useIsoLayoutEffect(() => {
7899      store2.set("adaptiveOrigin", adaptiveOrigin);
7900      return () => {
7901        store2.set("adaptiveOrigin", void 0);
7902      };
7903    }, [store2]);
7904    const handleMeasureLayout = useStableCallback(() => {
7905      currentContainerRef.current?.style.setProperty("animation", "none");
7906      currentContainerRef.current?.style.setProperty("transition", "none");
7907      previousContainerRef.current?.style.setProperty("display", "none");
7908    });
7909    const handleMeasureLayoutComplete = useStableCallback((previousDimensions) => {
7910      currentContainerRef.current?.style.removeProperty("animation");
7911      currentContainerRef.current?.style.removeProperty("transition");
7912      previousContainerRef.current?.style.removeProperty("display");
7913      if (previousDimensions) {
7914        setPreviousContentDimensions(previousDimensions);
7915      }
7916    });
7917    const armViewportCleanup = useStableCallback(() => {
7918      cleanupControllerRef.current?.abort();
7919      const controller = new AbortController();
7920      cleanupControllerRef.current = controller;
7921      onAnimationsFinished(() => {
7922        setPreviousContentNode(null);
7923        setPreviousContentDimensions(null);
7924        capturedNodeRef.current = null;
7925      }, controller.signal);
7926    });
7927    const lastHandledTriggerRef = React38.useRef(null);
7928    useIsoLayoutEffect(() => {
7929      if (!open2 || !mounted) {
7930        lastHandledTriggerRef.current = null;
7931      }
7932    }, [open2, mounted]);
7933    useIsoLayoutEffect(() => {
7934      if (open2 && activeTrigger && previousActiveTrigger && activeTrigger !== previousActiveTrigger && lastHandledTriggerRef.current !== activeTrigger && capturedNodeRef.current) {
7935        setPreviousContentNode(capturedNodeRef.current);
7936        setShowStartingStyleAttribute(true);
7937        const offset4 = calculateRelativePosition(previousActiveTrigger, activeTrigger);
7938        setNewTriggerOffset(offset4);
7939        lastHandledTriggerRef.current = activeTrigger;
7940      }
7941    }, [open2, activeTrigger, previousActiveTrigger]);
7942    useIsoLayoutEffect(() => {
7943      if (previousContentNode == null) {
7944        return;
7945      }
7946      cleanupControllerRef.current?.abort();
7947      setShowStartingStyleAttribute(true);
7948      cleanupFrame.request(() => {
7949        ReactDOM6.flushSync(() => {
7950          setShowStartingStyleAttribute(false);
7951        });
7952        armViewportCleanup();
7953      });
7954    }, [currentContentKey, previousContentNode, armViewportCleanup, cleanupFrame]);
7955    useIsoLayoutEffect(() => {
7956      const source = currentContainerRef.current;
7957      if (!source) {
7958        return;
7959      }
7960      const wrapper = ownerDocument(source).createElement("div");
7961      for (const child of Array.from(source.childNodes)) {
7962        wrapper.appendChild(child.cloneNode(true));
7963      }
7964      capturedNodeRef.current = wrapper;
7965    });
7966    const isTransitioning = previousContentNode != null;
7967    let childrenToRender;
7968    if (!isTransitioning) {
7969      childrenToRender = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
7970        "data-current": true,
7971        ref: currentContainerRef,
7972        children
7973      }, currentContentKey);
7974    } else {
7975      childrenToRender = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(React38.Fragment, {
7976        children: [/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
7977          "data-previous": true,
7978          inert: inertValue(true),
7979          ref: previousContainerRef,
7980          style: {
7981            ...previousContentDimensions ? {
7982              [popupWidth]: `$previousContentDimensions.width}px`,
7983              [popupHeight]: `$previousContentDimensions.height}px`
7984            } : null,
7985            position: "absolute"
7986          },
7987          "data-ending-style": showStartingStyleAttribute ? void 0 : ""
7988        }, "previous"), /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
7989          "data-current": true,
7990          ref: currentContainerRef,
7991          "data-starting-style": showStartingStyleAttribute ? "" : void 0,
7992          children
7993        }, currentContentKey)]
7994      });
7995    }
7996    useIsoLayoutEffect(() => {
7997      const container = previousContainerRef.current;
7998      if (!container || !previousContentNode) {
7999        return;
8000      }
8001      container.replaceChildren(...Array.from(previousContentNode.childNodes));
8002    }, [previousContentNode]);
8003    usePopupAutoResize({
8004      popupElement,
8005      positionerElement,
8006      mounted,
8007      content: payload,
8008      onMeasureLayout: handleMeasureLayout,
8009      onMeasureLayoutComplete: handleMeasureLayoutComplete,
8010      side,
8011      direction
8012    });
8013    const state = {
8014      activationDirection: getActivationDirection(newTriggerOffset),
8015      transitioning: isTransitioning
8016    };
8017    return {
8018      children: childrenToRender,
8019      state
8020    };
8021  }
8022  function getActivationDirection(offset4) {
8023    if (!offset4) {
8024      return void 0;
8025    }
8026    return `$getValueWithTolerance(offset4.horizontal, 5, "right", "left")} $getValueWithTolerance(offset4.vertical, 5, "down", "up")}`;
8027  }
8028  function getValueWithTolerance(value, tolerance, positiveLabel, negativeLabel) {
8029    if (value > tolerance) {
8030      return positiveLabel;
8031    }
8032    if (value < -tolerance) {
8033      return negativeLabel;
8034    }
8035    return "";
8036  }
8037  function calculateRelativePosition(from, to) {
8038    const fromRect = from.getBoundingClientRect();
8039    const toRect = to.getBoundingClientRect();
8040    const fromCenter = {
8041      x: fromRect.left + fromRect.width / 2,
8042      y: fromRect.top + fromRect.height / 2
8043    };
8044    const toCenter = {
8045      x: toRect.left + toRect.width / 2,
8046      y: toRect.top + toRect.height / 2
8047    };
8048    return {
8049      horizontal: toCenter.x - fromCenter.x,
8050      vertical: toCenter.y - fromCenter.y
8051    };
8052  }
8053  function usePopupContentKey(activeTriggerId, payload) {
8054    const [contentKey, setContentKey] = React38.useState(0);
8055    const previousActiveTriggerIdRef = React38.useRef(activeTriggerId);
8056    const previousPayloadRef = React38.useRef(payload);
8057    const pendingPayloadUpdateRef = React38.useRef(false);
8058    useIsoLayoutEffect(() => {
8059      const previousActiveTriggerId = previousActiveTriggerIdRef.current;
8060      const previousPayload = previousPayloadRef.current;
8061      const triggerIdChanged = activeTriggerId !== previousActiveTriggerId;
8062      const payloadChanged = payload !== previousPayload;
8063      if (triggerIdChanged) {
8064        setContentKey((value) => value + 1);
8065        pendingPayloadUpdateRef.current = !payloadChanged;
8066      } else if (pendingPayloadUpdateRef.current && payloadChanged) {
8067        setContentKey((value) => value + 1);
8068        pendingPayloadUpdateRef.current = false;
8069      }
8070      previousActiveTriggerIdRef.current = activeTriggerId;
8071      previousPayloadRef.current = payload;
8072    }, [activeTriggerId, payload]);
8073    return `$activeTriggerId ?? "current"}-$contentKey}`;
8074  }
8075  
8076  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/FloatingPortalLite.mjs
8077  var React39 = __toESM(require_react(), 1);
8078  var ReactDOM7 = __toESM(require_react_dom(), 1);
8079  var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
8080  var FloatingPortalLite = /* @__PURE__ */ React39.forwardRef(function FloatingPortalLite2(componentProps, forwardedRef) {
8081    const {
8082      children,
8083      container,
8084      className,
8085      render,
8086      style,
8087      ...elementProps
8088    } = componentProps;
8089    const {
8090      node: portalNode,
8091      subtree: portalSubtree
8092    } = useFloatingPortalNode({
8093      container,
8094      ref: forwardedRef,
8095      componentProps,
8096      elementProps
8097    });
8098    if (!portalSubtree && !portalNode) {
8099      return null;
8100    }
8101    return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(React39.Fragment, {
8102      children: [portalSubtree, portalNode && /* @__PURE__ */ ReactDOM7.createPortal(children, portalNode)]
8103    });
8104  });
8105  if (true) FloatingPortalLite.displayName = "FloatingPortalLite";
8106  
8107  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/index.parts.mjs
8108  var index_parts_exports = {};
8109  __export(index_parts_exports, {
8110    Arrow: () => TooltipArrow,
8111    Handle: () => TooltipHandle,
8112    Popup: () => TooltipPopup,
8113    Portal: () => TooltipPortal,
8114    Positioner: () => TooltipPositioner,
8115    Provider: () => TooltipProvider,
8116    Root: () => TooltipRoot,
8117    Trigger: () => TooltipTrigger,
8118    Viewport: () => TooltipViewport,
8119    createHandle: () => createTooltipHandle
8120  });
8121  
8122  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/root/TooltipRoot.mjs
8123  var React42 = __toESM(require_react(), 1);
8124  
8125  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/root/TooltipRootContext.mjs
8126  var React40 = __toESM(require_react(), 1);
8127  var TooltipRootContext = /* @__PURE__ */ React40.createContext(void 0);
8128  if (true) TooltipRootContext.displayName = "TooltipRootContext";
8129  function useTooltipRootContext(optional) {
8130    const context = React40.useContext(TooltipRootContext);
8131    if (context === void 0 && !optional) {
8132      throw new Error(true ? "Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>." : formatErrorMessage_default(72));
8133    }
8134    return context;
8135  }
8136  
8137  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/store/TooltipStore.mjs
8138  var React41 = __toESM(require_react(), 1);
8139  var selectors2 = {
8140    ...popupStoreSelectors,
8141    disabled: (state) => state.disabled,
8142    instantType: (state) => state.instantType,
8143    isInstantPhase: (state) => state.isInstantPhase,
8144    trackCursorAxis: (state) => state.trackCursorAxis,
8145    disableHoverablePopup: (state) => state.disableHoverablePopup,
8146    lastOpenChangeReason: (state) => state.openChangeReason,
8147    closeOnClick: (state) => state.closeOnClick,
8148    // Active and inactive trigger props are the same object, so a constant for triggers that discard
8149    // them keeps those triggers from re-rendering when the props change.
8150    appliedTriggerProps: (state, apply) => apply ? state.activeTriggerProps : void 0,
8151    closeDelay: (state) => state.closeDelay,
8152    adaptiveOrigin: (state) => state.adaptiveOrigin
8153  };
8154  var TooltipStore = class extends ReactStore {
8155    constructor(initialState, floatingId, nested) {
8156      const triggerElements = new PopupTriggerMap();
8157      super(createInitialState(initialState, triggerElements, floatingId, nested), createInitialContext(triggerElements), selectors2);
8158    }
8159    setOpen = (nextOpen, eventDetails) => {
8160      applyPopupOpenChange(this, nextOpen, eventDetails, {
8161        extraState: {
8162          openChangeReason: eventDetails.reason
8163        }
8164      });
8165    };
8166    // Used by trigger clicks to clear a delayed hover open without reporting a public open-state change.
8167    cancelPendingOpen(event) {
8168      this.state.floatingRootContext.dispatchOpenChange(false, createChangeEventDetails(reason_parts_exports.triggerPress, event));
8169    }
8170  };
8171  function createNullTooltipStore() {
8172    const triggerElements = new PopupTriggerMap();
8173    const store2 = new NullStore(Object.freeze(createInitialState(void 0, triggerElements)), Object.freeze(createInitialContext(triggerElements)), selectors2);
8174    return Object.assign(store2, {
8175      setOpen: NOOP,
8176      cancelPendingOpen: NOOP
8177    });
8178  }
8179  function createInitialState(initialState, triggerElements, floatingId, nested = false) {
8180    const state = {
8181      ...createInitialPopupStoreState(triggerElements, floatingId, nested),
8182      disabled: false,
8183      instantType: void 0,
8184      isInstantPhase: false,
8185      trackCursorAxis: "none",
8186      disableHoverablePopup: false,
8187      openChangeReason: null,
8188      closeOnClick: true,
8189      closeDelay: 0,
8190      adaptiveOrigin: void 0,
8191      ...initialState
8192    };
8193    return state;
8194  }
8195  function createInitialContext(triggerElements) {
8196    return {
8197      popupRef: /* @__PURE__ */ React41.createRef(),
8198      onOpenChange: void 0,
8199      onOpenChangeComplete: void 0,
8200      triggerElements
8201    };
8202  }
8203  
8204  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/root/TooltipRoot.mjs
8205  var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
8206  var TooltipRoot = fastComponent(function TooltipRoot2(props) {
8207    const {
8208      disabled: disabled2 = false,
8209      defaultOpen = false,
8210      open: openProp,
8211      disableHoverablePopup = false,
8212      trackCursorAxis = "none",
8213      actionsRef,
8214      onOpenChange,
8215      onOpenChangeComplete,
8216      handle,
8217      triggerId: triggerIdProp,
8218      defaultTriggerId: defaultTriggerIdProp = null,
8219      children
8220    } = props;
8221    const store2 = usePopupRootStore((floatingId, nested) => new TooltipStore({
8222      open: defaultOpen,
8223      openProp,
8224      activeTriggerId: defaultTriggerIdProp,
8225      triggerIdProp
8226    }, floatingId, nested));
8227    store2.useControlledProp("openProp", openProp);
8228    store2.useControlledProp("triggerIdProp", triggerIdProp);
8229    store2.useContextCallback("onOpenChange", onOpenChange);
8230    store2.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
8231    const openState = store2.useState("open");
8232    const open2 = !disabled2 && openState;
8233    const activeTriggerId = store2.useState("activeTriggerId");
8234    const mounted = store2.useState("mounted");
8235    const payload = store2.useState("payload");
8236    store2.useSyncedValues({
8237      trackCursorAxis,
8238      disableHoverablePopup,
8239      disabled: disabled2
8240    });
8241    useImplicitActiveTrigger(store2, {
8242      closeOnActiveTriggerUnmount: true
8243    });
8244    const {
8245      forceUnmount,
8246      transitionStatus
8247    } = useOpenStateTransitions(open2, store2);
8248    const isInstantPhase = store2.useState("isInstantPhase");
8249    const instantType = store2.useState("instantType");
8250    const lastOpenChangeReason = store2.useState("lastOpenChangeReason");
8251    const previousInstantTypeRef = React42.useRef(null);
8252    useIsoLayoutEffect(() => {
8253      if (openState && disabled2) {
8254        store2.setOpen(false, createChangeEventDetails(reason_parts_exports.disabled));
8255      }
8256    }, [openState, disabled2, store2]);
8257    useIsoLayoutEffect(() => {
8258      if (transitionStatus === "ending" && lastOpenChangeReason === reason_parts_exports.none || transitionStatus !== "ending" && isInstantPhase) {
8259        if (instantType !== "delay") {
8260          previousInstantTypeRef.current = instantType;
8261        }
8262        store2.set("instantType", "delay");
8263      } else if (previousInstantTypeRef.current !== null) {
8264        store2.set("instantType", previousInstantTypeRef.current);
8265        previousInstantTypeRef.current = null;
8266      }
8267    }, [transitionStatus, isInstantPhase, lastOpenChangeReason, instantType, store2]);
8268    useIsoLayoutEffect(() => {
8269      if (open2) {
8270        if (activeTriggerId == null) {
8271          store2.set("payload", void 0);
8272        }
8273      }
8274    }, [store2, activeTriggerId, open2]);
8275    React42.useImperativeHandle(actionsRef, () => ({
8276      unmount: forceUnmount,
8277      close: () => store2.setOpen(false, createChangeEventDetails(reason_parts_exports.imperativeAction))
8278    }), [forceUnmount, store2]);
8279    const shouldRenderInteractions = open2 || mounted || !disabled2 && trackCursorAxis !== "none";
8280    return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(TooltipRootContext.Provider, {
8281      value: store2,
8282      children: [handle && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PopupHandleAttachment, {
8283        handle,
8284        store: store2
8285      }), shouldRenderInteractions && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TooltipInteractions, {
8286        store: store2,
8287        disabled: disabled2,
8288        trackCursorAxis
8289      }), typeof children === "function" ? children({
8290        payload
8291      }) : children]
8292    });
8293  });
8294  if (true) TooltipRoot.displayName = "TooltipRoot";
8295  function TooltipInteractions({
8296    store: store2,
8297    disabled: disabled2,
8298    trackCursorAxis
8299  }) {
8300    const floatingRootContext = store2.useState("floatingRootContext");
8301    const dismiss = useDismiss(floatingRootContext, {
8302      enabled: !disabled2,
8303      referencePress: () => store2.select("closeOnClick")
8304    });
8305    const clientPoint = useClientPoint(floatingRootContext, {
8306      enabled: !disabled2 && trackCursorAxis !== "none",
8307      axis: trackCursorAxis === "none" ? void 0 : trackCursorAxis
8308    });
8309    const triggerProps = React42.useMemo(() => mergeProps(clientPoint.reference, dismiss.reference), [clientPoint.reference, dismiss.reference]);
8310    usePopupInteractionProps(store2, {
8311      activeTriggerProps: triggerProps,
8312      inactiveTriggerProps: triggerProps,
8313      popupProps: dismiss.floating ?? EMPTY_OBJECT
8314    });
8315    return null;
8316  }
8317  
8318  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/trigger/TooltipTrigger.mjs
8319  var React44 = __toESM(require_react(), 1);
8320  
8321  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/provider/TooltipProviderContext.mjs
8322  var React43 = __toESM(require_react(), 1);
8323  var TooltipProviderContext = /* @__PURE__ */ React43.createContext(void 0);
8324  if (true) TooltipProviderContext.displayName = "TooltipProviderContext";
8325  function useTooltipProviderContext() {
8326    return React43.useContext(TooltipProviderContext);
8327  }
8328  
8329  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/utils/constants.mjs
8330  var OPEN_DELAY = 600;
8331  
8332  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/trigger/TooltipTrigger.mjs
8333  var TOOLTIP_TRIGGER_IDENTIFIER = "data-base-ui-tooltip-trigger";
8334  function getTargetElement(event) {
8335    const target = getTarget(event);
8336    return isElement(target) ? target : null;
8337  }
8338  var TooltipTrigger = fastComponentRef(function TooltipTrigger2(componentProps, forwardedRef) {
8339    const {
8340      render,
8341      className,
8342      style,
8343      handle,
8344      payload,
8345      disabled: disabledProp,
8346      delay,
8347      closeOnClick = true,
8348      closeDelay,
8349      id: idProp,
8350      ...elementProps
8351    } = componentProps;
8352    const rootContext = useTooltipRootContext(true);
8353    const handleStore = usePopupHandleStore(handle);
8354    const store2 = handleStore ?? rootContext;
8355    if (!store2) {
8356      throw new Error(true ? "Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle." : formatErrorMessage_default(82));
8357    }
8358    const thisTriggerId = useBaseUiId(idProp);
8359    const isTriggerActive = store2.useState("isTriggerActive", thisTriggerId);
8360    const isOpenedByThisTrigger = store2.useState("isOpenedByTrigger", thisTriggerId);
8361    const floatingRootContext = store2.useState("floatingRootContext");
8362    const triggerElementRef = React44.useRef(null);
8363    const closeDelayWithDefault = closeDelay ?? 0;
8364    const {
8365      registerTrigger,
8366      isMountedByThisTrigger
8367    } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store2, {
8368      payload,
8369      closeOnClick,
8370      closeDelay: closeDelayWithDefault
8371    });
8372    const providerDelay = useTooltipProviderContext();
8373    const {
8374      activeIdRef,
8375      delayRef,
8376      isInstantPhase,
8377      hasProvider
8378    } = useDelayGroup(floatingRootContext, {
8379      open: isOpenedByThisTrigger
8380    });
8381    const hoverInteraction = useHoverInteractionSharedState(floatingRootContext);
8382    store2.useSyncedValue("isInstantPhase", isInstantPhase);
8383    const rootDisabled = store2.useState("disabled");
8384    const disabled2 = disabledProp ?? rootDisabled;
8385    const disabledRef = useValueAsRef(disabled2);
8386    const trackCursorAxis = store2.useState("trackCursorAxis");
8387    const disableHoverablePopup = store2.useState("disableHoverablePopup");
8388    const isNestedTriggerHoveredRef = React44.useRef(false);
8389    const nestedTriggerOpenTimeout = useTimeout();
8390    const pointerTypeRef = React44.useRef(void 0);
8391    function getOpenDelay() {
8392      if (hasProvider && activeIdRef.current != null) {
8393        return 0;
8394      }
8395      return delay ?? providerDelay ?? OPEN_DELAY;
8396    }
8397    function isEnabledNestedTriggerTarget(target) {
8398      const triggerEl = triggerElementRef.current;
8399      if (!triggerEl || !target) {
8400        return false;
8401      }
8402      const nearestTrigger = closest(target, `[$TOOLTIP_TRIGGER_IDENTIFIER}]`);
8403      return nearestTrigger !== null && nearestTrigger !== triggerEl && contains(triggerEl, nearestTrigger);
8404    }
8405    function detectNestedTriggerHover(target) {
8406      const nestedTriggerHovered = isEnabledNestedTriggerTarget(target);
8407      isNestedTriggerHoveredRef.current = nestedTriggerHovered;
8408      if (nestedTriggerHovered) {
8409        hoverInteraction.openChangeTimeout.clear();
8410        hoverInteraction.restTimeout.clear();
8411        hoverInteraction.restTimeoutPending = false;
8412        nestedTriggerOpenTimeout.clear();
8413      }
8414      return nestedTriggerHovered;
8415    }
8416    const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
8417      enabled: !disabled2,
8418      mouseOnly: true,
8419      move: false,
8420      handleClose: !disableHoverablePopup && trackCursorAxis !== "both" ? safePolygon() : null,
8421      restMs: getOpenDelay,
8422      delay() {
8423        if (closeDelay == null && hasProvider) {
8424          return {
8425            close: getDelay(delayRef.current, "close")
8426          };
8427        }
8428        return {
8429          close: closeDelayWithDefault
8430        };
8431      },
8432      triggerElementRef,
8433      isActiveTrigger: isTriggerActive,
8434      isClosing: () => store2.select("transitionStatus") === "ending",
8435      shouldOpen() {
8436        return !isNestedTriggerHoveredRef.current;
8437      }
8438    });
8439    const focusProps = useFocus(floatingRootContext, {
8440      enabled: !disabled2
8441    }).reference;
8442    const handleNestedTriggerHover = (event) => {
8443      const wasNestedTriggerHovered = isNestedTriggerHoveredRef.current;
8444      const target = getTargetElement(event);
8445      const nestedTriggerHovered = detectNestedTriggerHover(target);
8446      const triggerEl = triggerElementRef.current;
8447      const targetInsideTrigger = triggerEl && target && contains(triggerEl, target);
8448      if (nestedTriggerHovered && store2.select("open") && store2.select("lastOpenChangeReason") === reason_parts_exports.triggerHover) {
8449        store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
8450        return;
8451      }
8452      if (wasNestedTriggerHovered && !nestedTriggerHovered && targetInsideTrigger && !disabledRef.current && !store2.select("open") && triggerEl && // Match the hover hook's non-strict mouse fallback for mouse-only event sequences.
8453      isMouseLikePointerType(pointerTypeRef.current)) {
8454        const open2 = () => {
8455          if (!isNestedTriggerHoveredRef.current && !disabledRef.current && !store2.select("open")) {
8456            store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerEl));
8457          }
8458        };
8459        const openDelay = getOpenDelay();
8460        if (openDelay === 0) {
8461          nestedTriggerOpenTimeout.clear();
8462          open2();
8463        } else {
8464          nestedTriggerOpenTimeout.start(openDelay, open2);
8465        }
8466      }
8467    };
8468    const rootTriggerProps = store2.useState("appliedTriggerProps", isMountedByThisTrigger || trackCursorAxis !== "none");
8469    const state = {
8470      open: isOpenedByThisTrigger
8471    };
8472    const element = useRenderElement("button", componentProps, {
8473      state,
8474      ref: [forwardedRef, registerTrigger, triggerElementRef],
8475      props: [hoverProps, focusProps, rootTriggerProps, {
8476        onMouseOver(event) {
8477          handleNestedTriggerHover(event.nativeEvent);
8478        },
8479        onFocus(event) {
8480          if (isEnabledNestedTriggerTarget(getTargetElement(event.nativeEvent))) {
8481            event.preventBaseUIHandler();
8482          }
8483        },
8484        onMouseLeave() {
8485          isNestedTriggerHoveredRef.current = false;
8486          nestedTriggerOpenTimeout.clear();
8487          pointerTypeRef.current = void 0;
8488        },
8489        onPointerEnter(event) {
8490          pointerTypeRef.current = event.pointerType;
8491        },
8492        onPointerDown(event) {
8493          pointerTypeRef.current = event.pointerType;
8494          store2.set("closeOnClick", closeOnClick);
8495          if (closeOnClick && !store2.select("open")) {
8496            store2.cancelPendingOpen(event.nativeEvent);
8497          }
8498        },
8499        onClick(event) {
8500          if (closeOnClick && !store2.select("open")) {
8501            store2.cancelPendingOpen(event.nativeEvent);
8502          }
8503        },
8504        id: thisTriggerId,
8505        [triggerDisabled]: disabled2 ? "" : void 0,
8506        [TOOLTIP_TRIGGER_IDENTIFIER]: disabled2 ? void 0 : ""
8507      }, elementProps],
8508      stateAttributesMapping: triggerOpenStateMapping
8509    });
8510    return element;
8511  });
8512  if (true) TooltipTrigger.displayName = "TooltipTrigger";
8513  
8514  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/portal/TooltipPortal.mjs
8515  var React46 = __toESM(require_react(), 1);
8516  
8517  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/portal/TooltipPortalContext.mjs
8518  var React45 = __toESM(require_react(), 1);
8519  var TooltipPortalContext = /* @__PURE__ */ React45.createContext(void 0);
8520  if (true) TooltipPortalContext.displayName = "TooltipPortalContext";
8521  function useTooltipPortalContext() {
8522    const value = React45.useContext(TooltipPortalContext);
8523    if (value === void 0) {
8524      throw new Error(true ? "Base UI: <Tooltip.Portal> is missing." : formatErrorMessage_default(70));
8525    }
8526    return value;
8527  }
8528  
8529  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/portal/TooltipPortal.mjs
8530  var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
8531  var TooltipPortal = /* @__PURE__ */ React46.forwardRef(function TooltipPortal2(props, forwardedRef) {
8532    const {
8533      keepMounted = false,
8534      ...portalProps
8535    } = props;
8536    const store2 = useTooltipRootContext();
8537    const mounted = store2.useState("mounted");
8538    const shouldRender = mounted || keepMounted;
8539    if (!shouldRender) {
8540      return null;
8541    }
8542    return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TooltipPortalContext.Provider, {
8543      value: keepMounted,
8544      children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FloatingPortalLite, {
8545        ref: forwardedRef,
8546        ...portalProps
8547      })
8548    });
8549  });
8550  if (true) TooltipPortal.displayName = "TooltipPortal";
8551  
8552  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/positioner/TooltipPositioner.mjs
8553  var React48 = __toESM(require_react(), 1);
8554  
8555  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/positioner/TooltipPositionerContext.mjs
8556  var React47 = __toESM(require_react(), 1);
8557  var TooltipPositionerContext = /* @__PURE__ */ React47.createContext(void 0);
8558  if (true) TooltipPositionerContext.displayName = "TooltipPositionerContext";
8559  function useTooltipPositionerContext() {
8560    const context = React47.useContext(TooltipPositionerContext);
8561    if (context === void 0) {
8562      throw new Error(true ? "Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>." : formatErrorMessage_default(71));
8563    }
8564    return context;
8565  }
8566  
8567  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/positioner/TooltipPositioner.mjs
8568  var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
8569  var TooltipPositioner = /* @__PURE__ */ React48.forwardRef(function TooltipPositioner2(componentProps, forwardedRef) {
8570    const {
8571      render,
8572      className,
8573      anchor,
8574      positionMethod = "absolute",
8575      side = "top",
8576      align = "center",
8577      sideOffset = 0,
8578      alignOffset = 0,
8579      collisionBoundary = "clipping-ancestors",
8580      collisionPadding = 5,
8581      arrowPadding = 5,
8582      sticky = false,
8583      disableAnchorTracking = false,
8584      collisionAvoidance = POPUP_COLLISION_AVOIDANCE,
8585      style,
8586      ...elementProps
8587    } = componentProps;
8588    const store2 = useTooltipRootContext();
8589    const keepMounted = useTooltipPortalContext();
8590    const open2 = store2.useState("open");
8591    const mounted = store2.useState("mounted");
8592    const trackCursorAxis = store2.useState("trackCursorAxis");
8593    const disableHoverablePopup = store2.useState("disableHoverablePopup");
8594    const floatingRootContext = store2.useState("floatingRootContext");
8595    const instantType = store2.useState("instantType");
8596    const transitionStatus = store2.useState("transitionStatus");
8597    const adaptiveOrigin2 = store2.useState("adaptiveOrigin");
8598    const positioning = useAnchorPositioning({
8599      anchor,
8600      positionMethod,
8601      floatingRootContext,
8602      mounted,
8603      side,
8604      sideOffset,
8605      align,
8606      alignOffset,
8607      collisionBoundary,
8608      collisionPadding,
8609      sticky,
8610      arrowPadding,
8611      disableAnchorTracking,
8612      keepMounted,
8613      collisionAvoidance,
8614      adaptiveOrigin: adaptiveOrigin2
8615    });
8616    const state = React48.useMemo(() => ({
8617      open: open2,
8618      side: positioning.side,
8619      align: positioning.align,
8620      anchorHidden: positioning.anchorHidden,
8621      instant: trackCursorAxis !== "none" ? "tracking-cursor" : instantType
8622    }), [open2, positioning.side, positioning.align, positioning.anchorHidden, trackCursorAxis, instantType]);
8623    const element = usePositioner(componentProps, state, {
8624      styles: positioning.positionerStyles,
8625      transitionStatus,
8626      props: elementProps,
8627      refs: [forwardedRef, store2.useStateSetter("positionerElement")],
8628      hidden: !mounted,
8629      inert: !open2 || trackCursorAxis === "both" || disableHoverablePopup
8630    });
8631    return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipPositionerContext.Provider, {
8632      value: positioning,
8633      children: element
8634    });
8635  });
8636  if (true) TooltipPositioner.displayName = "TooltipPositioner";
8637  
8638  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/popup/TooltipPopup.mjs
8639  var React49 = __toESM(require_react(), 1);
8640  var TooltipPopup = /* @__PURE__ */ React49.forwardRef(function TooltipPopup2(componentProps, forwardedRef) {
8641    const {
8642      render,
8643      className,
8644      style,
8645      ...elementProps
8646    } = componentProps;
8647    const store2 = useTooltipRootContext();
8648    const {
8649      side,
8650      align
8651    } = useTooltipPositionerContext();
8652    const open2 = store2.useState("open");
8653    const instantType = store2.useState("instantType");
8654    const transitionStatus = store2.useState("transitionStatus");
8655    const popupProps = store2.useState("popupProps");
8656    const floatingContext = store2.useState("floatingRootContext");
8657    const disabled2 = store2.useState("disabled");
8658    const closeDelay = store2.useState("closeDelay");
8659    useOpenChangeComplete({
8660      open: open2,
8661      ref: store2.context.popupRef,
8662      onComplete() {
8663        if (open2) {
8664          store2.context.onOpenChangeComplete?.(true);
8665        }
8666      }
8667    });
8668    useHoverFloatingInteraction(floatingContext, {
8669      enabled: !disabled2,
8670      closeDelay
8671    });
8672    const setPopupElement = store2.useStateSetter("popupElement");
8673    const state = {
8674      open: open2,
8675      side,
8676      align,
8677      instant: instantType,
8678      transitionStatus
8679    };
8680    const element = useRenderElement("div", componentProps, {
8681      state,
8682      ref: [forwardedRef, store2.context.popupRef, setPopupElement],
8683      props: [FOCUSABLE_POPUP_PROPS, popupProps, getDisabledMountTransitionStyles(transitionStatus), elementProps],
8684      stateAttributesMapping: popupTransitionStateMapping
8685    });
8686    return element;
8687  });
8688  if (true) TooltipPopup.displayName = "TooltipPopup";
8689  
8690  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/arrow/TooltipArrow.mjs
8691  var React50 = __toESM(require_react(), 1);
8692  var TooltipArrow = /* @__PURE__ */ React50.forwardRef(function TooltipArrow2(componentProps, forwardedRef) {
8693    const {
8694      render,
8695      className,
8696      style,
8697      ...elementProps
8698    } = componentProps;
8699    const store2 = useTooltipRootContext();
8700    const {
8701      arrowRef,
8702      side,
8703      align,
8704      arrowUncentered,
8705      arrowStyles
8706    } = useTooltipPositionerContext();
8707    const open2 = store2.useState("open");
8708    const instantType = store2.useState("instantType");
8709    const state = {
8710      open: open2,
8711      side,
8712      align,
8713      uncentered: arrowUncentered,
8714      instant: instantType
8715    };
8716    const element = useRenderElement("div", componentProps, {
8717      state,
8718      ref: [forwardedRef, arrowRef],
8719      props: [{
8720        style: arrowStyles,
8721        "aria-hidden": true
8722      }, elementProps],
8723      stateAttributesMapping: popupStateMapping
8724    });
8725    return element;
8726  });
8727  if (true) TooltipArrow.displayName = "TooltipArrow";
8728  
8729  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/provider/TooltipProvider.mjs
8730  var React51 = __toESM(require_react(), 1);
8731  var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
8732  var TooltipProvider = function TooltipProvider2(props) {
8733    const {
8734      delay,
8735      closeDelay,
8736      timeout = 400
8737    } = props;
8738    const delayValue = React51.useMemo(() => ({
8739      open: delay,
8740      close: closeDelay
8741    }), [delay, closeDelay]);
8742    return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TooltipProviderContext.Provider, {
8743      value: delay,
8744      children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FloatingDelayGroup, {
8745        delay: delayValue,
8746        timeoutMs: timeout,
8747        children: props.children
8748      })
8749    });
8750  };
8751  if (true) TooltipProvider.displayName = "TooltipProvider";
8752  
8753  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/viewport/TooltipViewport.mjs
8754  var React52 = __toESM(require_react(), 1);
8755  var TooltipViewport = /* @__PURE__ */ React52.forwardRef(function TooltipViewport2(componentProps, forwardedRef) {
8756    const {
8757      render,
8758      className,
8759      style,
8760      children,
8761      ...elementProps
8762    } = componentProps;
8763    const store2 = useTooltipRootContext();
8764    const positioner = useTooltipPositionerContext();
8765    const instantType = store2.useState("instantType");
8766    const {
8767      children: childrenToRender,
8768      state: viewportState
8769    } = usePopupViewport({
8770      store: store2,
8771      side: positioner.side,
8772      children
8773    });
8774    const state = {
8775      activationDirection: viewportState.activationDirection,
8776      transitioning: viewportState.transitioning,
8777      instant: instantType
8778    };
8779    return useRenderElement("div", componentProps, {
8780      state,
8781      ref: forwardedRef,
8782      props: [elementProps, {
8783        children: childrenToRender
8784      }],
8785      stateAttributesMapping: popupViewportStateMapping
8786    });
8787  });
8788  if (true) TooltipViewport.displayName = "TooltipViewport";
8789  
8790  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/store/TooltipHandle.mjs
8791  var TooltipHandle = class extends BasePopupHandle {
8792    constructor() {
8793      super(createNullTooltipStore(), "Tooltip");
8794    }
8795    /**
8796     * Opens the tooltip and associates it with the trigger with the given id.
8797     *
8798     * This method should only be called in an event handler or an effect (not during rendering).
8799     *
8800     * @param triggerId ID of the trigger to associate with the tooltip. The trigger must be a matching
8801     * `Tooltip.Trigger` with this handle passed as a prop.
8802     */
8803    open(triggerId) {
8804      this.openByTrigger(triggerId);
8805    }
8806    /**
8807     * Closes the tooltip.
8808     *
8809     * This method should only be called in an event handler or an effect (not during rendering).
8810     */
8811    close() {
8812      this.closePopup();
8813    }
8814    /**
8815     * Whether the tooltip is currently open. Returns `false` while no root is attached to the handle.
8816     */
8817    get isOpen() {
8818      return this.attachedStore?.select("open") ?? false;
8819    }
8820  };
8821  function createTooltipHandle() {
8822    return new TooltipHandle();
8823  }
8824  
8825  // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/use-render/useRender.mjs
8826  function useRender(params) {
8827    return useRenderElement(params.defaultTagName ?? "div", params, params);
8828  }
8829  
8830  // packages/ui/build-module/badge/badge.mjs
8831  var import_element12 = __toESM(require_element(), 1);
8832  
8833  // packages/ui/build-module/text/text.mjs
8834  var import_element11 = __toESM(require_element(), 1);
8835  var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
8836  function getRuntime() {
8837    const globalScope = globalThis;
8838    if (globalScope.__wpStyleRuntime) {
8839      return globalScope.__wpStyleRuntime;
8840    }
8841    globalScope.__wpStyleRuntime = {
8842      documents: /* @__PURE__ */ new Map(),
8843      styles: /* @__PURE__ */ new Map(),
8844      injectedStyles: /* @__PURE__ */ new WeakMap()
8845    };
8846    if (typeof document !== "undefined") {
8847      registerDocument(document);
8848    }
8849    return globalScope.__wpStyleRuntime;
8850  }
8851  function documentContainsStyleHash(targetDocument, hash) {
8852    if (!targetDocument.head) {
8853      return false;
8854    }
8855    for (const style of targetDocument.head.querySelectorAll(
8856      `style[$STYLE_HASH_ATTRIBUTE}]`
8857    )) {
8858      if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
8859        return true;
8860      }
8861    }
8862    return false;
8863  }
8864  function injectStyle(targetDocument, hash, css) {
8865    if (!targetDocument.head) {
8866      return;
8867    }
8868    const runtime = getRuntime();
8869    let injectedStyles = runtime.injectedStyles.get(targetDocument);
8870    if (!injectedStyles) {
8871      injectedStyles = /* @__PURE__ */ new Set();
8872      runtime.injectedStyles.set(targetDocument, injectedStyles);
8873    }
8874    if (injectedStyles.has(hash)) {
8875      return;
8876    }
8877    if (documentContainsStyleHash(targetDocument, hash)) {
8878      injectedStyles.add(hash);
8879      return;
8880    }
8881    const style = targetDocument.createElement("style");
8882    style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
8883    style.appendChild(targetDocument.createTextNode(css));
8884    targetDocument.head.appendChild(style);
8885    injectedStyles.add(hash);
8886  }
8887  function registerDocument(targetDocument) {
8888    const runtime = getRuntime();
8889    runtime.documents.set(
8890      targetDocument,
8891      (runtime.documents.get(targetDocument) ?? 0) + 1
8892    );
8893    for (const [hash, css] of runtime.styles) {
8894      injectStyle(targetDocument, hash, css);
8895    }
8896    return () => {
8897      const count = runtime.documents.get(targetDocument);
8898      if (count === void 0) {
8899        return;
8900      }
8901      if (count <= 1) {
8902        runtime.documents.delete(targetDocument);
8903        return;
8904      }
8905      runtime.documents.set(targetDocument, count - 1);
8906    };
8907  }
8908  function registerStyle(hash, css) {
8909    const runtime = getRuntime();
8910    runtime.styles.set(hash, css);
8911    for (const targetDocument of runtime.documents.keys()) {
8912      injectStyle(targetDocument, hash, css);
8913    }
8914  }
8915  if (typeof process === "undefined" || true) {
8916    registerStyle("3167e7d116", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._83ed8a8da5dd50ea__text{text-wrap:pretty;margin:0}._14437cfb77831647__heading-2xl{--_gcd-heading-font-size:var(--wpds-typography-font-size-2xl,32px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-2xl,32px);--_gcd-p-line-height:var(--wpds-typography-line-height-2xl,40px);font-size:var(--wpds-typography-font-size-2xl,32px);line-height:var(--wpds-typography-line-height-2xl,40px)}._14437cfb77831647__heading-2xl,._3c78b7fa9b4072dd__heading-xl{font-family:var(--wpds-typography-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-emphasis,600)}._3c78b7fa9b4072dd__heading-xl{--_gcd-heading-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-p-line-height:var(--wpds-typography-line-height-md,24px);font-size:var(--wpds-typography-font-size-xl,20px);line-height:var(--wpds-typography-line-height-md,24px)}.aa58f227716bcde2__heading-lg{--_gcd-heading-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-p-line-height:var(--wpds-typography-line-height-sm,20px);font-size:var(--wpds-typography-font-size-lg,15px)}.aa58f227716bcde2__heading-lg,.fc4da56d8dfe52c4__heading-md{font-family:var(--wpds-typography-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-emphasis,600);line-height:var(--wpds-typography-line-height-sm,20px)}.fc4da56d8dfe52c4__heading-md{--_gcd-heading-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-p-line-height:var(--wpds-typography-line-height-sm,20px);font-size:var(--wpds-typography-font-size-md,13px)}.a9b78c7c82e8dff7__heading-sm{--_gcd-heading-font-size:var(--wpds-typography-font-size-xs,11px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-xs,11px);--_gcd-p-line-height:var(--wpds-typography-line-height-xs,16px);font-family:var(--wpds-typography-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-xs,11px);font-weight:var(--wpds-typography-font-weight-emphasis,600);line-height:var(--wpds-typography-line-height-xs,16px);text-transform:uppercase}._305ff559e52180d5__body-xl{--_gcd-heading-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-p-line-height:var(--wpds-typography-line-height-xl,32px);font-size:var(--wpds-typography-font-size-xl,20px);line-height:var(--wpds-typography-line-height-xl,32px)}._305ff559e52180d5__body-xl,.ca1aa3fc2029e958__body-lg{font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-default,400)}.ca1aa3fc2029e958__body-lg{--_gcd-heading-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-p-line-height:var(--wpds-typography-line-height-md,24px);font-size:var(--wpds-typography-font-size-lg,15px);line-height:var(--wpds-typography-line-height-md,24px)}._131101940be12424__body-md{--_gcd-heading-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-p-line-height:var(--wpds-typography-line-height-sm,20px);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-sm,20px)}._0e8d87a42c1f75fa__body-sm,._131101940be12424__body-md{font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-default,400)}._0e8d87a42c1f75fa__body-sm{--_gcd-heading-font-size:var(--wpds-typography-font-size-sm,12px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-sm,12px);--_gcd-p-line-height:var(--wpds-typography-line-height-xs,16px);font-size:var(--wpds-typography-font-size-sm,12px);line-height:var(--wpds-typography-line-height-xs,16px)}}}');
8917  }
8918  var style_default = { "text": "_83ed8a8da5dd50ea__text", "heading-2xl": "_14437cfb77831647__heading-2xl", "heading-xl": "_3c78b7fa9b4072dd__heading-xl", "heading-lg": "aa58f227716bcde2__heading-lg", "heading-md": "fc4da56d8dfe52c4__heading-md", "heading-sm": "a9b78c7c82e8dff7__heading-sm", "body-xl": "_305ff559e52180d5__body-xl", "body-lg": "ca1aa3fc2029e958__body-lg", "body-md": "_131101940be12424__body-md", "body-sm": "_0e8d87a42c1f75fa__body-sm" };
8919  if (typeof process === "undefined" || true) {
8920    registerStyle("abb19c3171", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}[role=treeitem] span._400bf7ee0c6061a9__span[aria-hidden]{display:var(--_gcd-span-display,inline);font-family:var(--_gcd-span-font-family,inherit);font-size:var(--_gcd-span-font-size,inherit);line-height:var(--_gcd-span-line-height,1);pointer-events:var(--_gcd-span-pointer-events,auto);position:var(--_gcd-span-position,static)}");
8921  }
8922  var global_css_defense_default = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li", "span": "_400bf7ee0c6061a9__span" };
8923  var Text = (0, import_element11.forwardRef)(
8924    function UnforwardedText({ variant = "body-md", render, className, ...props }, ref) {
8925      const element = useRender({
8926        render,
8927        defaultTagName: "span",
8928        ref,
8929        props: mergeProps(props, {
8930          className: clsx_default(
8931            style_default.text,
8932            global_css_defense_default.heading,
8933            global_css_defense_default.p,
8934            style_default[variant],
8935            className
8936          )
8937        })
8938      });
8939      return element;
8940    }
8941  );
8942  
8943  // packages/ui/build-module/badge/badge.mjs
8944  var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
8945  var STYLE_HASH_ATTRIBUTE2 = "data-wp-hash";
8946  function getRuntime2() {
8947    const globalScope = globalThis;
8948    if (globalScope.__wpStyleRuntime) {
8949      return globalScope.__wpStyleRuntime;
8950    }
8951    globalScope.__wpStyleRuntime = {
8952      documents: /* @__PURE__ */ new Map(),
8953      styles: /* @__PURE__ */ new Map(),
8954      injectedStyles: /* @__PURE__ */ new WeakMap()
8955    };
8956    if (typeof document !== "undefined") {
8957      registerDocument2(document);
8958    }
8959    return globalScope.__wpStyleRuntime;
8960  }
8961  function documentContainsStyleHash2(targetDocument, hash) {
8962    if (!targetDocument.head) {
8963      return false;
8964    }
8965    for (const style of targetDocument.head.querySelectorAll(
8966      `style[$STYLE_HASH_ATTRIBUTE2}]`
8967    )) {
8968      if (style.getAttribute(STYLE_HASH_ATTRIBUTE2) === hash) {
8969        return true;
8970      }
8971    }
8972    return false;
8973  }
8974  function injectStyle2(targetDocument, hash, css) {
8975    if (!targetDocument.head) {
8976      return;
8977    }
8978    const runtime = getRuntime2();
8979    let injectedStyles = runtime.injectedStyles.get(targetDocument);
8980    if (!injectedStyles) {
8981      injectedStyles = /* @__PURE__ */ new Set();
8982      runtime.injectedStyles.set(targetDocument, injectedStyles);
8983    }
8984    if (injectedStyles.has(hash)) {
8985      return;
8986    }
8987    if (documentContainsStyleHash2(targetDocument, hash)) {
8988      injectedStyles.add(hash);
8989      return;
8990    }
8991    const style = targetDocument.createElement("style");
8992    style.setAttribute(STYLE_HASH_ATTRIBUTE2, hash);
8993    style.appendChild(targetDocument.createTextNode(css));
8994    targetDocument.head.appendChild(style);
8995    injectedStyles.add(hash);
8996  }
8997  function registerDocument2(targetDocument) {
8998    const runtime = getRuntime2();
8999    runtime.documents.set(
9000      targetDocument,
9001      (runtime.documents.get(targetDocument) ?? 0) + 1
9002    );
9003    for (const [hash, css] of runtime.styles) {
9004      injectStyle2(targetDocument, hash, css);
9005    }
9006    return () => {
9007      const count = runtime.documents.get(targetDocument);
9008      if (count === void 0) {
9009        return;
9010      }
9011      if (count <= 1) {
9012        runtime.documents.delete(targetDocument);
9013        return;
9014      }
9015      runtime.documents.set(targetDocument, count - 1);
9016    };
9017  }
9018  function registerStyle2(hash, css) {
9019    const runtime = getRuntime2();
9020    runtime.styles.set(hash, css);
9021    for (const targetDocument of runtime.documents.keys()) {
9022      injectStyle2(targetDocument, hash, css);
9023    }
9024  }
9025  if (typeof process === "undefined" || true) {
9026    registerStyle2("40ea4a6382", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._96e6251aad1a6136__badge{border-radius:var(--wpds-border-radius-lg,8px);padding-block:var(--wpds-dimension-padding-xs,4px);padding-inline:var(--wpds-dimension-padding-sm,8px)}._99f7158cb520f750__is-high-intent{background-color:var(--wpds-color-background-surface-error,#fae5e1);color:var(--wpds-color-foreground-content-error,#470000)}.c20ebef2365bc8b7__is-medium-intent{background-color:var(--wpds-color-background-surface-warning,#fde6be);color:var(--wpds-color-foreground-content-warning,#2e1900)}._365e1626c6202e52__is-low-intent{background-color:var(--wpds-color-background-surface-caution,#fee995);color:var(--wpds-color-foreground-content-caution,#281d00)}._33f8198127ddf4ef__is-stable-intent{background-color:var(--wpds-color-background-surface-success,#c2f8ca);color:var(--wpds-color-foreground-content-success,#002900)}._04c1aca8fc449412__is-informational-intent{background-color:var(--wpds-color-background-surface-info,#deebfa);color:var(--wpds-color-foreground-content-info,#001b4f)}._90726e69d495ec19__is-draft-intent{background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);color:var(--wpds-color-foreground-content-neutral,#1e1e1e)}._898f4a544993bd39__is-none-intent{background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);padding-block:calc(var(--wpds-dimension-padding-xs, 4px) - var(--wpds-border-width-xs, 1px));padding-inline:calc(var(--wpds-dimension-padding-sm, 8px) - var(--wpds-border-width-xs, 1px))}}}");
9027  }
9028  var style_default2 = { "badge": "_96e6251aad1a6136__badge", "is-high-intent": "_99f7158cb520f750__is-high-intent", "is-medium-intent": "c20ebef2365bc8b7__is-medium-intent", "is-low-intent": "_365e1626c6202e52__is-low-intent", "is-stable-intent": "_33f8198127ddf4ef__is-stable-intent", "is-informational-intent": "_04c1aca8fc449412__is-informational-intent", "is-draft-intent": "_90726e69d495ec19__is-draft-intent", "is-none-intent": "_898f4a544993bd39__is-none-intent" };
9029  var Badge = (0, import_element12.forwardRef)(
9030    function UnforwardedBadge({ intent = "none", className, ...props }, ref) {
9031      return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
9032        Text,
9033        {
9034          ref,
9035          className: clsx_default(
9036            style_default2.badge,
9037            style_default2[`is-$intent}-intent`],
9038            className
9039          ),
9040          ...props,
9041          variant: "body-sm"
9042        }
9043      );
9044    }
9045  );
9046  
9047  // packages/ui/build-module/button/button.mjs
9048  var import_element14 = __toESM(require_element(), 1);
9049  var import_i18n = __toESM(require_i18n(), 1);
9050  import { speak } from "@wordpress/a11y";
9051  
9052  // packages/ui/build-module/spinner/spinner.mjs
9053  var import_element13 = __toESM(require_element(), 1);
9054  var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
9055  var STYLE_HASH_ATTRIBUTE3 = "data-wp-hash";
9056  function getRuntime3() {
9057    const globalScope = globalThis;
9058    if (globalScope.__wpStyleRuntime) {
9059      return globalScope.__wpStyleRuntime;
9060    }
9061    globalScope.__wpStyleRuntime = {
9062      documents: /* @__PURE__ */ new Map(),
9063      styles: /* @__PURE__ */ new Map(),
9064      injectedStyles: /* @__PURE__ */ new WeakMap()
9065    };
9066    if (typeof document !== "undefined") {
9067      registerDocument3(document);
9068    }
9069    return globalScope.__wpStyleRuntime;
9070  }
9071  function documentContainsStyleHash3(targetDocument, hash) {
9072    if (!targetDocument.head) {
9073      return false;
9074    }
9075    for (const style of targetDocument.head.querySelectorAll(
9076      `style[$STYLE_HASH_ATTRIBUTE3}]`
9077    )) {
9078      if (style.getAttribute(STYLE_HASH_ATTRIBUTE3) === hash) {
9079        return true;
9080      }
9081    }
9082    return false;
9083  }
9084  function injectStyle3(targetDocument, hash, css) {
9085    if (!targetDocument.head) {
9086      return;
9087    }
9088    const runtime = getRuntime3();
9089    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9090    if (!injectedStyles) {
9091      injectedStyles = /* @__PURE__ */ new Set();
9092      runtime.injectedStyles.set(targetDocument, injectedStyles);
9093    }
9094    if (injectedStyles.has(hash)) {
9095      return;
9096    }
9097    if (documentContainsStyleHash3(targetDocument, hash)) {
9098      injectedStyles.add(hash);
9099      return;
9100    }
9101    const style = targetDocument.createElement("style");
9102    style.setAttribute(STYLE_HASH_ATTRIBUTE3, hash);
9103    style.appendChild(targetDocument.createTextNode(css));
9104    targetDocument.head.appendChild(style);
9105    injectedStyles.add(hash);
9106  }
9107  function registerDocument3(targetDocument) {
9108    const runtime = getRuntime3();
9109    runtime.documents.set(
9110      targetDocument,
9111      (runtime.documents.get(targetDocument) ?? 0) + 1
9112    );
9113    for (const [hash, css] of runtime.styles) {
9114      injectStyle3(targetDocument, hash, css);
9115    }
9116    return () => {
9117      const count = runtime.documents.get(targetDocument);
9118      if (count === void 0) {
9119        return;
9120      }
9121      if (count <= 1) {
9122        runtime.documents.delete(targetDocument);
9123        return;
9124      }
9125      runtime.documents.set(targetDocument, count - 1);
9126    };
9127  }
9128  function registerStyle3(hash, css) {
9129    const runtime = getRuntime3();
9130    runtime.styles.set(hash, css);
9131    for (const targetDocument of runtime.documents.keys()) {
9132      injectStyle3(targetDocument, hash, css);
9133    }
9134  }
9135  if (typeof process === "undefined" || true) {
9136    registerStyle3("dbe7fd6094", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.ab4d64c07c0ba587__spinner{background-color:transparent;color:var(--wpds-color-foreground-content-neutral-weak,#707070);display:inline-block;height:var(--wpds-dimension-size-2xs,16px);opacity:1;overflow:visible;position:relative;width:var(--wpds-dimension-size-2xs,16px)}.a7654e10245bb7d2__indicator{fill:transparent;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;transform-origin:50% 50%;@media (forced-colors:active){stroke:CanvasText}animation:_02322d973909703c__spinner-spin 1.4s linear infinite both}@keyframes _02322d973909703c__spinner-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}}}");
9137  }
9138  var style_default3 = { "spinner": "ab4d64c07c0ba587__spinner", "indicator": "a7654e10245bb7d2__indicator", "spinner-spin": "_02322d973909703c__spinner-spin" };
9139  var Spinner = (0, import_element13.forwardRef)(
9140    function UnforwardedSpinner({ className, color, style, ...props }, ref) {
9141      return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
9142        "svg",
9143        {
9144          className: clsx_default(style_default3.spinner, className),
9145          style: color === void 0 ? style : { ...style, color },
9146          viewBox: "0 0 24 24",
9147          xmlns: "http://www.w3.org/2000/svg",
9148          role: "presentation",
9149          focusable: "false",
9150          ...props,
9151          ref,
9152          children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
9153            "path",
9154            {
9155              className: style_default3.indicator,
9156              d: "m 12 0 a 12 12 0 0 1 0 24"
9157            }
9158          )
9159        }
9160      );
9161    }
9162  );
9163  
9164  // packages/ui/build-module/button/button.mjs
9165  var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
9166  var STYLE_HASH_ATTRIBUTE4 = "data-wp-hash";
9167  function getRuntime4() {
9168    const globalScope = globalThis;
9169    if (globalScope.__wpStyleRuntime) {
9170      return globalScope.__wpStyleRuntime;
9171    }
9172    globalScope.__wpStyleRuntime = {
9173      documents: /* @__PURE__ */ new Map(),
9174      styles: /* @__PURE__ */ new Map(),
9175      injectedStyles: /* @__PURE__ */ new WeakMap()
9176    };
9177    if (typeof document !== "undefined") {
9178      registerDocument4(document);
9179    }
9180    return globalScope.__wpStyleRuntime;
9181  }
9182  function documentContainsStyleHash4(targetDocument, hash) {
9183    if (!targetDocument.head) {
9184      return false;
9185    }
9186    for (const style of targetDocument.head.querySelectorAll(
9187      `style[$STYLE_HASH_ATTRIBUTE4}]`
9188    )) {
9189      if (style.getAttribute(STYLE_HASH_ATTRIBUTE4) === hash) {
9190        return true;
9191      }
9192    }
9193    return false;
9194  }
9195  function injectStyle4(targetDocument, hash, css) {
9196    if (!targetDocument.head) {
9197      return;
9198    }
9199    const runtime = getRuntime4();
9200    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9201    if (!injectedStyles) {
9202      injectedStyles = /* @__PURE__ */ new Set();
9203      runtime.injectedStyles.set(targetDocument, injectedStyles);
9204    }
9205    if (injectedStyles.has(hash)) {
9206      return;
9207    }
9208    if (documentContainsStyleHash4(targetDocument, hash)) {
9209      injectedStyles.add(hash);
9210      return;
9211    }
9212    const style = targetDocument.createElement("style");
9213    style.setAttribute(STYLE_HASH_ATTRIBUTE4, hash);
9214    style.appendChild(targetDocument.createTextNode(css));
9215    targetDocument.head.appendChild(style);
9216    injectedStyles.add(hash);
9217  }
9218  function registerDocument4(targetDocument) {
9219    const runtime = getRuntime4();
9220    runtime.documents.set(
9221      targetDocument,
9222      (runtime.documents.get(targetDocument) ?? 0) + 1
9223    );
9224    for (const [hash, css] of runtime.styles) {
9225      injectStyle4(targetDocument, hash, css);
9226    }
9227    return () => {
9228      const count = runtime.documents.get(targetDocument);
9229      if (count === void 0) {
9230        return;
9231      }
9232      if (count <= 1) {
9233        runtime.documents.delete(targetDocument);
9234        return;
9235      }
9236      runtime.documents.set(targetDocument, count - 1);
9237    };
9238  }
9239  function registerStyle4(hash, css) {
9240    const runtime = getRuntime4();
9241    runtime.styles.set(hash, css);
9242    for (const targetDocument of runtime.documents.keys()) {
9243      injectStyle4(targetDocument, hash, css);
9244    }
9245  }
9246  if (typeof process === "undefined" || true) {
9247    registerStyle4("1052986a11", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._97b0fc33c028be1a__button,.abbb272e2ce49bd6__is-unstyled{appearance:none;padding:0}._97b0fc33c028be1a__button{--wp-ui-button-font-weight:var(--wpds-typography-font-weight-emphasis,600);--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-strong,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-strong-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 93%,#000));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand-strong,#fff);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-strong-active,#fff);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-strong-disabled,#8d8d8d);--wp-ui-button-padding-block:var(--wpds-dimension-padding-xs,4px);--wp-ui-button-padding-inline:var(--wpds-dimension-padding-md,12px);--wp-ui-button-height:var(--wpds-dimension-size-lg,40px);--wp-ui-button-aspect-ratio:auto;--wp-ui-button-font-size:var(--wpds-typography-font-size-md,13px);--wp-ui-button-min-width:calc(4ch + var(--wp-ui-button-padding-inline)*2);--wp-ui-button-icon-margin:calc((var(--wpds-dimension-size-2xs, 16px) - var(--wpds-dimension-size-sm, 24px))/2);--wp-ui-button-border-color:var(--wp-ui-button-background-color);--wp-ui-button-border-color-active:var(--wp-ui-button-background-color-active);--wp-ui-button-border-color-disabled:var(--wp-ui-button-background-color-disabled);--_gcd-button-font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);--_gcd-button-font-size:var(--wp-ui-button-font-size);--_gcd-button-font-weight:var(--wp-ui-button-font-weight);align-items:center;aspect-ratio:var(--wp-ui-button-aspect-ratio);background-clip:border-box;background-color:var(--wp-ui-button-background-color);border-color:var(--wp-ui-button-border-color);border-radius:var(--wpds-border-radius-sm,2px);border-style:solid;border-width:1px;color:var(--wp-ui-button-foreground-color);display:inline-flex;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wp-ui-button-font-size);font-weight:var(--wp-ui-button-font-weight);gap:var(--wpds-dimension-gap-sm,8px);justify-content:center;line-height:var(--wpds-typography-line-height-sm,20px);max-width:100%;min-height:var(--wp-ui-button-height);min-width:var(--wp-ui-button-min-width);overflow-wrap:anywhere;padding-block:var(--wp-ui-button-padding-block);padding-inline:var(--wp-ui-button-padding-inline);position:relative;text-align:center;text-decoration:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}@media not (prefers-reduced-motion){transition:color .1s ease-out;*{transition:opacity .1s ease-out}}&[href]{cursor:pointer}[href]{color:inherit;text-decoration:inherit}&:not([data-disabled]):is(:hover,:active,:focus){background-color:var(--wp-ui-button-background-color-active);border-color:var(--wp-ui-button-border-color-active);color:var(--wp-ui-button-foreground-color-active)}&[data-disabled]:not(._914b42f315c0e580__is-loading){background-color:var(--wp-ui-button-background-color-disabled);border-color:var(--wp-ui-button-border-color-disabled);color:var(--wp-ui-button-foreground-color-disabled);@media (forced-colors:active){border-bottom-color:GrayText;border-left-color:GrayText;border-right-color:GrayText;border-top-color:GrayText;color:GrayText}}}._908205475f9f2a92__is-small{--wp-ui-button-padding-block:0px;--wp-ui-button-padding-inline:var(--wpds-dimension-padding-sm,8px);--wp-ui-button-height:var(--wpds-dimension-size-sm,24px)}._9f6fc6553aeb36fe__icon{margin:var(--wp-ui-button-icon-margin)}.dd460c965226cc77__is-brand{&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000));--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 85%,#000));--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-brand-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000)}}.e722a8f96726aa99__is-neutral{&.ad0619a3217c6a5b__is-minimal[aria-pressed=true],&.b50b3358c5fb4d0b__is-solid{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-strong,#2d2d2d);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-strong-active,#1e1e1e);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral-strong,#f0f0f0);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-strong-active,#f0f0f0);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-strong-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-neutral,#8d8d8d);--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-neutral-active,#6e6e6e);--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-neutral-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000)}}.abbb272e2ce49bd6__is-unstyled{background:none;border:none;min-width:unset}.cf59cf1b69629838__is-compact{--wp-ui-button-height:var(--wpds-dimension-size-md,32px)}._914b42f315c0e580__is-loading:not(.abbb272e2ce49bd6__is-unstyled){color:transparent;&:not([data-disabled]):is(:hover,:active,:focus){color:transparent}@media (forced-colors:active){color:ButtonFace}>:not(._1322fe375ff021a3__spinner){opacity:0}}}@layer compositions{._1322fe375ff021a3__spinner{color:var(--wp-ui-button-foreground-color);height:var(--wp-ui-button-font-size);inset:0;margin:auto;pointer-events:none;position:absolute;width:var(--wp-ui-button-font-size);>*{stroke-width:2.75}@media (prefers-reduced-motion){>*{animation:none}}@media (forced-colors:active){>*{stroke:ButtonText}}}}}');
9248  }
9249  var style_default4 = { "button": "_97b0fc33c028be1a__button", "is-unstyled": "abbb272e2ce49bd6__is-unstyled", "is-loading": "_914b42f315c0e580__is-loading", "is-small": "_908205475f9f2a92__is-small", "icon": "_9f6fc6553aeb36fe__icon", "is-brand": "dd460c965226cc77__is-brand", "is-outline": "_62d5a778b7b258ee__is-outline", "is-minimal": "ad0619a3217c6a5b__is-minimal", "is-neutral": "e722a8f96726aa99__is-neutral", "is-solid": "b50b3358c5fb4d0b__is-solid", "is-compact": "cf59cf1b69629838__is-compact", "spinner": "_1322fe375ff021a3__spinner" };
9250  if (typeof process === "undefined" || true) {
9251    registerStyle4("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
9252  }
9253  var resets_default = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
9254  if (typeof process === "undefined" || true) {
9255    registerStyle4("7c3267f794", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.af79fb116edb0dd7__outset-ring--focus:focus,.dfcfdc28396e5d98__outset-ring--focus-visible:focus-visible,.e5cd9ee879f6403a__outset-ring--focus-within:focus-within{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within,.abc777e9713fa711__outset-ring--focus-except-active:focus{outline:none}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.abc777e9713fa711__outset-ring--focus-except-active:focus:not(:active){--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}}");
9256  }
9257  var focus_module_default = { "outset-ring--focus": "af79fb116edb0dd7__outset-ring--focus", "outset-ring--focus-visible": "dfcfdc28396e5d98__outset-ring--focus-visible", "outset-ring--focus-within": "e5cd9ee879f6403a__outset-ring--focus-within", "outset-ring--focus-except-active": "abc777e9713fa711__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3c9f5ee9fc9c136d__outset-ring--focus-within-except-active" };
9258  if (typeof process === "undefined" || true) {
9259    registerStyle4("abb19c3171", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}[role=treeitem] span._400bf7ee0c6061a9__span[aria-hidden]{display:var(--_gcd-span-display,inline);font-family:var(--_gcd-span-font-family,inherit);font-size:var(--_gcd-span-font-size,inherit);line-height:var(--_gcd-span-line-height,1);pointer-events:var(--_gcd-span-pointer-events,auto);position:var(--_gcd-span-position,static)}");
9260  }
9261  var global_css_defense_default2 = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li", "span": "_400bf7ee0c6061a9__span" };
9262  var Button3 = (0, import_element14.forwardRef)(
9263    function UnforwardedButton({
9264      tone = "brand",
9265      variant = "solid",
9266      size: size4 = "default",
9267      className,
9268      focusableWhenDisabled = true,
9269      disabled: disabled2,
9270      loading,
9271      loadingAnnouncement = (0, import_i18n.__)("Loading"),
9272      children,
9273      ...props
9274    }, ref) {
9275      const mergedClassName = clsx_default(
9276        global_css_defense_default2.button,
9277        resets_default["box-sizing"],
9278        focus_module_default["outset-ring--focus-except-active"],
9279        variant !== "unstyled" && style_default4.button,
9280        style_default4[`is-$tone}`],
9281        style_default4[`is-$variant}`],
9282        style_default4[`is-$size4}`],
9283        loading && style_default4["is-loading"],
9284        className
9285      );
9286      (0, import_element14.useEffect)(() => {
9287        if (loading && loadingAnnouncement) {
9288          speak(loadingAnnouncement);
9289        }
9290      }, [loading, loadingAnnouncement]);
9291      return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
9292        Button,
9293        {
9294          ref,
9295          className: mergedClassName,
9296          focusableWhenDisabled,
9297          disabled: disabled2 ?? loading,
9298          ...props,
9299          children: [
9300            children,
9301            loading && variant !== "unstyled" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Spinner, { className: style_default4.spinner })
9302          ]
9303        }
9304      );
9305    }
9306  );
9307  
9308  // packages/ui/build-module/button/icon.mjs
9309  var import_element15 = __toESM(require_element(), 1);
9310  var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
9311  var STYLE_HASH_ATTRIBUTE5 = "data-wp-hash";
9312  function getRuntime5() {
9313    const globalScope = globalThis;
9314    if (globalScope.__wpStyleRuntime) {
9315      return globalScope.__wpStyleRuntime;
9316    }
9317    globalScope.__wpStyleRuntime = {
9318      documents: /* @__PURE__ */ new Map(),
9319      styles: /* @__PURE__ */ new Map(),
9320      injectedStyles: /* @__PURE__ */ new WeakMap()
9321    };
9322    if (typeof document !== "undefined") {
9323      registerDocument5(document);
9324    }
9325    return globalScope.__wpStyleRuntime;
9326  }
9327  function documentContainsStyleHash5(targetDocument, hash) {
9328    if (!targetDocument.head) {
9329      return false;
9330    }
9331    for (const style of targetDocument.head.querySelectorAll(
9332      `style[$STYLE_HASH_ATTRIBUTE5}]`
9333    )) {
9334      if (style.getAttribute(STYLE_HASH_ATTRIBUTE5) === hash) {
9335        return true;
9336      }
9337    }
9338    return false;
9339  }
9340  function injectStyle5(targetDocument, hash, css) {
9341    if (!targetDocument.head) {
9342      return;
9343    }
9344    const runtime = getRuntime5();
9345    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9346    if (!injectedStyles) {
9347      injectedStyles = /* @__PURE__ */ new Set();
9348      runtime.injectedStyles.set(targetDocument, injectedStyles);
9349    }
9350    if (injectedStyles.has(hash)) {
9351      return;
9352    }
9353    if (documentContainsStyleHash5(targetDocument, hash)) {
9354      injectedStyles.add(hash);
9355      return;
9356    }
9357    const style = targetDocument.createElement("style");
9358    style.setAttribute(STYLE_HASH_ATTRIBUTE5, hash);
9359    style.appendChild(targetDocument.createTextNode(css));
9360    targetDocument.head.appendChild(style);
9361    injectedStyles.add(hash);
9362  }
9363  function registerDocument5(targetDocument) {
9364    const runtime = getRuntime5();
9365    runtime.documents.set(
9366      targetDocument,
9367      (runtime.documents.get(targetDocument) ?? 0) + 1
9368    );
9369    for (const [hash, css] of runtime.styles) {
9370      injectStyle5(targetDocument, hash, css);
9371    }
9372    return () => {
9373      const count = runtime.documents.get(targetDocument);
9374      if (count === void 0) {
9375        return;
9376      }
9377      if (count <= 1) {
9378        runtime.documents.delete(targetDocument);
9379        return;
9380      }
9381      runtime.documents.set(targetDocument, count - 1);
9382    };
9383  }
9384  function registerStyle5(hash, css) {
9385    const runtime = getRuntime5();
9386    runtime.styles.set(hash, css);
9387    for (const targetDocument of runtime.documents.keys()) {
9388      injectStyle5(targetDocument, hash, css);
9389    }
9390  }
9391  if (typeof process === "undefined" || true) {
9392    registerStyle5("1052986a11", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._97b0fc33c028be1a__button,.abbb272e2ce49bd6__is-unstyled{appearance:none;padding:0}._97b0fc33c028be1a__button{--wp-ui-button-font-weight:var(--wpds-typography-font-weight-emphasis,600);--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-strong,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-strong-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 93%,#000));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand-strong,#fff);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-strong-active,#fff);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-strong-disabled,#8d8d8d);--wp-ui-button-padding-block:var(--wpds-dimension-padding-xs,4px);--wp-ui-button-padding-inline:var(--wpds-dimension-padding-md,12px);--wp-ui-button-height:var(--wpds-dimension-size-lg,40px);--wp-ui-button-aspect-ratio:auto;--wp-ui-button-font-size:var(--wpds-typography-font-size-md,13px);--wp-ui-button-min-width:calc(4ch + var(--wp-ui-button-padding-inline)*2);--wp-ui-button-icon-margin:calc((var(--wpds-dimension-size-2xs, 16px) - var(--wpds-dimension-size-sm, 24px))/2);--wp-ui-button-border-color:var(--wp-ui-button-background-color);--wp-ui-button-border-color-active:var(--wp-ui-button-background-color-active);--wp-ui-button-border-color-disabled:var(--wp-ui-button-background-color-disabled);--_gcd-button-font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);--_gcd-button-font-size:var(--wp-ui-button-font-size);--_gcd-button-font-weight:var(--wp-ui-button-font-weight);align-items:center;aspect-ratio:var(--wp-ui-button-aspect-ratio);background-clip:border-box;background-color:var(--wp-ui-button-background-color);border-color:var(--wp-ui-button-border-color);border-radius:var(--wpds-border-radius-sm,2px);border-style:solid;border-width:1px;color:var(--wp-ui-button-foreground-color);display:inline-flex;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wp-ui-button-font-size);font-weight:var(--wp-ui-button-font-weight);gap:var(--wpds-dimension-gap-sm,8px);justify-content:center;line-height:var(--wpds-typography-line-height-sm,20px);max-width:100%;min-height:var(--wp-ui-button-height);min-width:var(--wp-ui-button-min-width);overflow-wrap:anywhere;padding-block:var(--wp-ui-button-padding-block);padding-inline:var(--wp-ui-button-padding-inline);position:relative;text-align:center;text-decoration:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}@media not (prefers-reduced-motion){transition:color .1s ease-out;*{transition:opacity .1s ease-out}}&[href]{cursor:pointer}[href]{color:inherit;text-decoration:inherit}&:not([data-disabled]):is(:hover,:active,:focus){background-color:var(--wp-ui-button-background-color-active);border-color:var(--wp-ui-button-border-color-active);color:var(--wp-ui-button-foreground-color-active)}&[data-disabled]:not(._914b42f315c0e580__is-loading){background-color:var(--wp-ui-button-background-color-disabled);border-color:var(--wp-ui-button-border-color-disabled);color:var(--wp-ui-button-foreground-color-disabled);@media (forced-colors:active){border-bottom-color:GrayText;border-left-color:GrayText;border-right-color:GrayText;border-top-color:GrayText;color:GrayText}}}._908205475f9f2a92__is-small{--wp-ui-button-padding-block:0px;--wp-ui-button-padding-inline:var(--wpds-dimension-padding-sm,8px);--wp-ui-button-height:var(--wpds-dimension-size-sm,24px)}._9f6fc6553aeb36fe__icon{margin:var(--wp-ui-button-icon-margin)}.dd460c965226cc77__is-brand{&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000));--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 85%,#000));--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-brand-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000)}}.e722a8f96726aa99__is-neutral{&.ad0619a3217c6a5b__is-minimal[aria-pressed=true],&.b50b3358c5fb4d0b__is-solid{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-strong,#2d2d2d);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-strong-active,#1e1e1e);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral-strong,#f0f0f0);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-strong-active,#f0f0f0);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-strong-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-neutral,#8d8d8d);--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-neutral-active,#6e6e6e);--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-neutral-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000)}}.abbb272e2ce49bd6__is-unstyled{background:none;border:none;min-width:unset}.cf59cf1b69629838__is-compact{--wp-ui-button-height:var(--wpds-dimension-size-md,32px)}._914b42f315c0e580__is-loading:not(.abbb272e2ce49bd6__is-unstyled){color:transparent;&:not([data-disabled]):is(:hover,:active,:focus){color:transparent}@media (forced-colors:active){color:ButtonFace}>:not(._1322fe375ff021a3__spinner){opacity:0}}}@layer compositions{._1322fe375ff021a3__spinner{color:var(--wp-ui-button-foreground-color);height:var(--wp-ui-button-font-size);inset:0;margin:auto;pointer-events:none;position:absolute;width:var(--wp-ui-button-font-size);>*{stroke-width:2.75}@media (prefers-reduced-motion){>*{animation:none}}@media (forced-colors:active){>*{stroke:ButtonText}}}}}');
9393  }
9394  var style_default5 = { "button": "_97b0fc33c028be1a__button", "is-unstyled": "abbb272e2ce49bd6__is-unstyled", "is-loading": "_914b42f315c0e580__is-loading", "is-small": "_908205475f9f2a92__is-small", "icon": "_9f6fc6553aeb36fe__icon", "is-brand": "dd460c965226cc77__is-brand", "is-outline": "_62d5a778b7b258ee__is-outline", "is-minimal": "ad0619a3217c6a5b__is-minimal", "is-neutral": "e722a8f96726aa99__is-neutral", "is-solid": "b50b3358c5fb4d0b__is-solid", "is-compact": "cf59cf1b69629838__is-compact", "spinner": "_1322fe375ff021a3__spinner" };
9395  var ButtonIcon = (0, import_element15.forwardRef)(
9396    function UnforwardedButtonIcon({ className, icon, ...props }, ref) {
9397      return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
9398        Icon,
9399        {
9400          ref,
9401          icon,
9402          className: clsx_default(style_default5.icon, className),
9403          size: 24,
9404          ...props
9405        }
9406      );
9407    }
9408  );
9409  
9410  // packages/ui/build-module/button/index.mjs
9411  ButtonIcon.displayName = "Button.Icon";
9412  var Button4 = Object.assign(Button3, {
9413    /**
9414     * An icon component specifically designed to work well when rendered inside
9415     * a `Button` component.
9416     */
9417    Icon: ButtonIcon
9418  });
9419  
9420  // packages/icons/build-module/library/caution.mjs
9421  var import_primitives2 = __toESM(require_primitives(), 1);
9422  var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
9423  var caution_default = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_primitives2.Path, { d: "M12 8L12 13M12 14.5L12 16M4.75 12C4.75 7.99593 7.99594 4.75 12 4.75C16.0041 4.75 19.25 7.99594 19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99594 19.25 4.75 16.0041 4.75 12Z", strokeLinejoin: "round" }) });
9424  
9425  // packages/icons/build-module/library/close-small.mjs
9426  var import_primitives3 = __toESM(require_primitives(), 1);
9427  var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
9428  var close_small_default = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_primitives3.Path, { d: "M7.75 16.25L16.25 7.75M16.25 16.25L7.75 7.75" }) });
9429  
9430  // packages/icons/build-module/library/error.mjs
9431  var import_primitives4 = __toESM(require_primitives(), 1);
9432  var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
9433  var error_default = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_primitives4.Path, { d: "M12 9L12 14M12 15.5V17M11.1284 5.04947L3.83827 18.0097C3.46331 18.6763 3.94502 19.5 4.70985 19.5H19.2902C20.055 19.5 20.5367 18.6763 20.1617 18.0097L12.8716 5.04947C12.4893 4.36982 11.5107 4.36982 11.1284 5.04947Z" }) });
9434  
9435  // packages/icons/build-module/library/info.mjs
9436  var import_primitives5 = __toESM(require_primitives(), 1);
9437  var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
9438  var info_default = /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_primitives5.Path, { d: "M12 16V11M12 9.5V8M19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99594 19.25 4.75 16.0041 4.75 12C4.75 7.99594 7.99594 4.75 12 4.75C16.0041 4.75 19.25 7.99594 19.25 12Z", strokeLinejoin: "round" }) });
9439  
9440  // packages/icons/build-module/library/published.mjs
9441  var import_primitives6 = __toESM(require_primitives(), 1);
9442  var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
9443  var published_default = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [
9444    /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_primitives6.Path, { d: "M12 19.25C16.0041 19.25 19.25 16.0041 19.25 12C19.25 7.99594 16.0041 4.75 12 4.75C7.99594 4.75 4.75 7.99594 4.75 12C4.75 16.0041 7.99594 19.25 12 19.25Z", strokeLinejoin: "round" }),
9445    /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_primitives6.Path, { d: "M9 12L11 14L15 10" })
9446  ] });
9447  
9448  // packages/ui/build-module/utils/keyboard-shortcut.mjs
9449  var import_element17 = __toESM(require_element(), 1);
9450  var import_i18n2 = __toESM(require_i18n(), 1);
9451  
9452  // packages/ui/build-module/visually-hidden/visually-hidden.mjs
9453  var import_element16 = __toESM(require_element(), 1);
9454  var STYLE_HASH_ATTRIBUTE6 = "data-wp-hash";
9455  function getRuntime6() {
9456    const globalScope = globalThis;
9457    if (globalScope.__wpStyleRuntime) {
9458      return globalScope.__wpStyleRuntime;
9459    }
9460    globalScope.__wpStyleRuntime = {
9461      documents: /* @__PURE__ */ new Map(),
9462      styles: /* @__PURE__ */ new Map(),
9463      injectedStyles: /* @__PURE__ */ new WeakMap()
9464    };
9465    if (typeof document !== "undefined") {
9466      registerDocument6(document);
9467    }
9468    return globalScope.__wpStyleRuntime;
9469  }
9470  function documentContainsStyleHash6(targetDocument, hash) {
9471    if (!targetDocument.head) {
9472      return false;
9473    }
9474    for (const style of targetDocument.head.querySelectorAll(
9475      `style[$STYLE_HASH_ATTRIBUTE6}]`
9476    )) {
9477      if (style.getAttribute(STYLE_HASH_ATTRIBUTE6) === hash) {
9478        return true;
9479      }
9480    }
9481    return false;
9482  }
9483  function injectStyle6(targetDocument, hash, css) {
9484    if (!targetDocument.head) {
9485      return;
9486    }
9487    const runtime = getRuntime6();
9488    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9489    if (!injectedStyles) {
9490      injectedStyles = /* @__PURE__ */ new Set();
9491      runtime.injectedStyles.set(targetDocument, injectedStyles);
9492    }
9493    if (injectedStyles.has(hash)) {
9494      return;
9495    }
9496    if (documentContainsStyleHash6(targetDocument, hash)) {
9497      injectedStyles.add(hash);
9498      return;
9499    }
9500    const style = targetDocument.createElement("style");
9501    style.setAttribute(STYLE_HASH_ATTRIBUTE6, hash);
9502    style.appendChild(targetDocument.createTextNode(css));
9503    targetDocument.head.appendChild(style);
9504    injectedStyles.add(hash);
9505  }
9506  function registerDocument6(targetDocument) {
9507    const runtime = getRuntime6();
9508    runtime.documents.set(
9509      targetDocument,
9510      (runtime.documents.get(targetDocument) ?? 0) + 1
9511    );
9512    for (const [hash, css] of runtime.styles) {
9513      injectStyle6(targetDocument, hash, css);
9514    }
9515    return () => {
9516      const count = runtime.documents.get(targetDocument);
9517      if (count === void 0) {
9518        return;
9519      }
9520      if (count <= 1) {
9521        runtime.documents.delete(targetDocument);
9522        return;
9523      }
9524      runtime.documents.set(targetDocument, count - 1);
9525    };
9526  }
9527  function registerStyle6(hash, css) {
9528    const runtime = getRuntime6();
9529    runtime.styles.set(hash, css);
9530    for (const targetDocument of runtime.documents.keys()) {
9531      injectStyle6(targetDocument, hash, css);
9532    }
9533  }
9534  if (typeof process === "undefined" || true) {
9535    registerStyle6("15abcab4d0", ".f37b9e2e191ebd66__visually-hidden{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal;padding:0;position:absolute;width:1px;word-break:normal}");
9536  }
9537  var style_default6 = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" };
9538  var VisuallyHidden = (0, import_element16.forwardRef)(
9539    function UnforwardedVisuallyHidden({ render, ...restProps }, ref) {
9540      const element = useRender({
9541        render,
9542        ref,
9543        props: mergeProps(
9544          { className: style_default6["visually-hidden"] },
9545          restProps,
9546          {
9547            // @ts-expect-error Arbitrary data-* attributes aren't indexable on the typed div props. Kept hardcoded so consumers can't change or remove it.
9548            "data-visually-hidden": ""
9549          }
9550        )
9551      });
9552      return element;
9553    }
9554  );
9555  
9556  // packages/ui/build-module/utils/keyboard-shortcut.mjs
9557  var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
9558  function useKeyboardShortcutProps({
9559    "aria-describedby": ariaDescribedBy,
9560    "aria-keyshortcuts": ariaKeyShortcuts,
9561    shortcut
9562  }) {
9563    const generatedDescriptionId = (0, import_element17.useId)();
9564    const descriptionId = shortcut ? generatedDescriptionId : void 0;
9565    const describedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ");
9566    return {
9567      descriptionId,
9568      targetProps: {
9569        "aria-describedby": describedBy || void 0,
9570        "aria-keyshortcuts": shortcut?.ariaKeyShortcut ?? ariaKeyShortcuts
9571      }
9572    };
9573  }
9574  var KeyboardShortcutDescription = (0, import_element17.forwardRef)(function UnforwardedKeyboardShortcutDescription({ descriptionId, shortcut }, ref) {
9575    return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
9576      VisuallyHidden,
9577      {
9578        id: descriptionId,
9579        "aria-hidden": "true",
9580        render: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { ref }),
9581        children: (0, import_i18n2.sprintf)(
9582          /* translators: %s: keyboard shortcut. */
9583          (0, import_i18n2.__)("Keyboard shortcut: %s"),
9584          shortcut.label ?? shortcut.ariaKeyShortcut
9585        )
9586      }
9587    );
9588  });
9589  var KeyboardShortcutDisplay = (0, import_element17.forwardRef)(function UnforwardedKeyboardShortcutDisplay({ className, shortcut }, ref) {
9590    return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { ref, "aria-hidden": "true", className, dir: "ltr", children: shortcut.displayShortcut });
9591  });
9592  
9593  // packages/ui/build-module/utils/render-slot-with-children.mjs
9594  var import_element18 = __toESM(require_element(), 1);
9595  function renderSlotWithChildren(slot, defaultSlot, children) {
9596    return (0, import_element18.cloneElement)(
9597      slot ?? defaultSlot,
9598      { children }
9599    );
9600  }
9601  
9602  // packages/ui/build-module/utils/wp-compat-overlay-slot.mjs
9603  var STYLE_HASH_ATTRIBUTE7 = "data-wp-hash";
9604  function getRuntime7() {
9605    const globalScope = globalThis;
9606    if (globalScope.__wpStyleRuntime) {
9607      return globalScope.__wpStyleRuntime;
9608    }
9609    globalScope.__wpStyleRuntime = {
9610      documents: /* @__PURE__ */ new Map(),
9611      styles: /* @__PURE__ */ new Map(),
9612      injectedStyles: /* @__PURE__ */ new WeakMap()
9613    };
9614    if (typeof document !== "undefined") {
9615      registerDocument7(document);
9616    }
9617    return globalScope.__wpStyleRuntime;
9618  }
9619  function documentContainsStyleHash7(targetDocument, hash) {
9620    if (!targetDocument.head) {
9621      return false;
9622    }
9623    for (const style of targetDocument.head.querySelectorAll(
9624      `style[$STYLE_HASH_ATTRIBUTE7}]`
9625    )) {
9626      if (style.getAttribute(STYLE_HASH_ATTRIBUTE7) === hash) {
9627        return true;
9628      }
9629    }
9630    return false;
9631  }
9632  function injectStyle7(targetDocument, hash, css) {
9633    if (!targetDocument.head) {
9634      return;
9635    }
9636    const runtime = getRuntime7();
9637    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9638    if (!injectedStyles) {
9639      injectedStyles = /* @__PURE__ */ new Set();
9640      runtime.injectedStyles.set(targetDocument, injectedStyles);
9641    }
9642    if (injectedStyles.has(hash)) {
9643      return;
9644    }
9645    if (documentContainsStyleHash7(targetDocument, hash)) {
9646      injectedStyles.add(hash);
9647      return;
9648    }
9649    const style = targetDocument.createElement("style");
9650    style.setAttribute(STYLE_HASH_ATTRIBUTE7, hash);
9651    style.appendChild(targetDocument.createTextNode(css));
9652    targetDocument.head.appendChild(style);
9653    injectedStyles.add(hash);
9654  }
9655  function registerDocument7(targetDocument) {
9656    const runtime = getRuntime7();
9657    runtime.documents.set(
9658      targetDocument,
9659      (runtime.documents.get(targetDocument) ?? 0) + 1
9660    );
9661    for (const [hash, css] of runtime.styles) {
9662      injectStyle7(targetDocument, hash, css);
9663    }
9664    return () => {
9665      const count = runtime.documents.get(targetDocument);
9666      if (count === void 0) {
9667        return;
9668      }
9669      if (count <= 1) {
9670        runtime.documents.delete(targetDocument);
9671        return;
9672      }
9673      runtime.documents.set(targetDocument, count - 1);
9674    };
9675  }
9676  function registerStyle7(hash, css) {
9677    const runtime = getRuntime7();
9678    runtime.styles.set(hash, css);
9679    for (const targetDocument of runtime.documents.keys()) {
9680      injectStyle7(targetDocument, hash, css);
9681    }
9682  }
9683  if (typeof process === "undefined" || true) {
9684    registerStyle7("be37f31c1e", "._11fc52b637ff8a7e__slot{inset:0;isolation:isolate;pointer-events:none;position:fixed;z-index:1000000003}@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._11fc52b637ff8a7e__slot>*{pointer-events:auto}}}");
9685  }
9686  var wp_compat_overlay_slot_default = { "slot": "_11fc52b637ff8a7e__slot" };
9687  var WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE = "data-wp-compat-overlay-slot";
9688  function resolveOwnerDocument() {
9689    return typeof document === "undefined" ? null : document;
9690  }
9691  function isInWordPressEnvironment() {
9692    let topWp;
9693    try {
9694      topWp = window.top?.wp;
9695    } catch {
9696    }
9697    const wp = topWp ?? window.wp;
9698    return typeof wp?.components === "object" && wp.components !== null;
9699  }
9700  var cachedSlot = null;
9701  function ensureSlotIsAccessible(element) {
9702    element.setAttribute("aria-hidden", "false");
9703    return element;
9704  }
9705  function createSlot(ownerDocument2) {
9706    const element = ownerDocument2.createElement("div");
9707    element.setAttribute(WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE, "");
9708    if (wp_compat_overlay_slot_default.slot) {
9709      element.classList.add(wp_compat_overlay_slot_default.slot);
9710    }
9711    ownerDocument2.body.appendChild(element);
9712    return element;
9713  }
9714  function getWpCompatOverlaySlot() {
9715    if (typeof window === "undefined") {
9716      return void 0;
9717    }
9718    if (!isInWordPressEnvironment() && window.__wpUiCompatOverlaySlotEnabled !== true) {
9719      return void 0;
9720    }
9721    const ownerDocument2 = resolveOwnerDocument();
9722    if (!ownerDocument2 || !ownerDocument2.body) {
9723      return void 0;
9724    }
9725    if (cachedSlot && cachedSlot.ownerDocument === ownerDocument2 && cachedSlot.isConnected) {
9726      return ensureSlotIsAccessible(cachedSlot);
9727    }
9728    const existing = ownerDocument2.querySelector(
9729      `[$WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE}]`
9730    );
9731    if (existing instanceof HTMLDivElement) {
9732      cachedSlot = ensureSlotIsAccessible(existing);
9733      return cachedSlot;
9734    }
9735    if (cachedSlot?.isConnected) {
9736      cachedSlot.remove();
9737    }
9738    cachedSlot = ensureSlotIsAccessible(createSlot(ownerDocument2));
9739    return cachedSlot;
9740  }
9741  
9742  // packages/ui/build-module/utils/direction-provider.mjs
9743  var import_i18n3 = __toESM(require_i18n(), 1);
9744  var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
9745  function DirectionProvider3({ children }) {
9746    return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DirectionProvider, { direction: (0, import_i18n3.isRTL)() ? "rtl" : "ltr", children });
9747  }
9748  
9749  // packages/ui/build-module/tooltip/popup.mjs
9750  var import_element21 = __toESM(require_element(), 1);
9751  
9752  // packages/ui/build-module/tooltip/portal.mjs
9753  var import_element19 = __toESM(require_element(), 1);
9754  var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
9755  var Portal = (0, import_element19.forwardRef)(
9756    function TooltipPortal3({ container, ...restProps }, ref) {
9757      return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
9758        index_parts_exports.Portal,
9759        {
9760          container: container === void 0 ? getWpCompatOverlaySlot() : container,
9761          ...restProps,
9762          ref
9763        }
9764      );
9765    }
9766  );
9767  
9768  // packages/ui/build-module/tooltip/positioner.mjs
9769  var import_element20 = __toESM(require_element(), 1);
9770  var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
9771  var STYLE_HASH_ATTRIBUTE8 = "data-wp-hash";
9772  function getRuntime8() {
9773    const globalScope = globalThis;
9774    if (globalScope.__wpStyleRuntime) {
9775      return globalScope.__wpStyleRuntime;
9776    }
9777    globalScope.__wpStyleRuntime = {
9778      documents: /* @__PURE__ */ new Map(),
9779      styles: /* @__PURE__ */ new Map(),
9780      injectedStyles: /* @__PURE__ */ new WeakMap()
9781    };
9782    if (typeof document !== "undefined") {
9783      registerDocument8(document);
9784    }
9785    return globalScope.__wpStyleRuntime;
9786  }
9787  function documentContainsStyleHash8(targetDocument, hash) {
9788    if (!targetDocument.head) {
9789      return false;
9790    }
9791    for (const style of targetDocument.head.querySelectorAll(
9792      `style[$STYLE_HASH_ATTRIBUTE8}]`
9793    )) {
9794      if (style.getAttribute(STYLE_HASH_ATTRIBUTE8) === hash) {
9795        return true;
9796      }
9797    }
9798    return false;
9799  }
9800  function injectStyle8(targetDocument, hash, css) {
9801    if (!targetDocument.head) {
9802      return;
9803    }
9804    const runtime = getRuntime8();
9805    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9806    if (!injectedStyles) {
9807      injectedStyles = /* @__PURE__ */ new Set();
9808      runtime.injectedStyles.set(targetDocument, injectedStyles);
9809    }
9810    if (injectedStyles.has(hash)) {
9811      return;
9812    }
9813    if (documentContainsStyleHash8(targetDocument, hash)) {
9814      injectedStyles.add(hash);
9815      return;
9816    }
9817    const style = targetDocument.createElement("style");
9818    style.setAttribute(STYLE_HASH_ATTRIBUTE8, hash);
9819    style.appendChild(targetDocument.createTextNode(css));
9820    targetDocument.head.appendChild(style);
9821    injectedStyles.add(hash);
9822  }
9823  function registerDocument8(targetDocument) {
9824    const runtime = getRuntime8();
9825    runtime.documents.set(
9826      targetDocument,
9827      (runtime.documents.get(targetDocument) ?? 0) + 1
9828    );
9829    for (const [hash, css] of runtime.styles) {
9830      injectStyle8(targetDocument, hash, css);
9831    }
9832    return () => {
9833      const count = runtime.documents.get(targetDocument);
9834      if (count === void 0) {
9835        return;
9836      }
9837      if (count <= 1) {
9838        runtime.documents.delete(targetDocument);
9839        return;
9840      }
9841      runtime.documents.set(targetDocument, count - 1);
9842    };
9843  }
9844  function registerStyle8(hash, css) {
9845    const runtime = getRuntime8();
9846    runtime.styles.set(hash, css);
9847    for (const targetDocument of runtime.documents.keys()) {
9848      injectStyle8(targetDocument, hash, css);
9849    }
9850  }
9851  if (typeof process === "undefined" || true) {
9852    registerStyle8("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
9853  }
9854  var resets_default2 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
9855  if (typeof process === "undefined" || true) {
9856    registerStyle8("19fcc06039", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._480b748dd3510e64__positioner{z-index:var(--wp-ui-tooltip-z-index,initial)}._50096b232db7709d__popup{--_wp-ui-elevation-sm:0 1px 2px rgba(0,0,0,.05),0 2px 3px rgba(0,0,0,.04),0 6px 6px rgba(0,0,0,.03),0 8px 8px rgba(0,0,0,.02);background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--_wp-ui-elevation-sm);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-sm,12px);line-height:1.4;padding:var(--wpds-dimension-padding-xs,4px) var(--wpds-dimension-padding-sm,8px);@media (forced-colors:active){border-bottom-color:CanvasText;border-bottom-style:solid;border-bottom-width:1px;border-left-color:CanvasText;border-left-style:solid;border-left-width:1px;border-right-color:CanvasText;border-right-style:solid;border-right-width:1px;border-top-color:CanvasText;border-top-style:solid;border-top-width:1px}}}}');
9857  }
9858  var style_default7 = { "positioner": "_480b748dd3510e64__positioner", "popup": "_50096b232db7709d__popup" };
9859  var Positioner = (0, import_element20.forwardRef)(
9860    function TooltipPositioner3({ align = "center", className, side = "top", sideOffset = 4, ...props }, ref) {
9861      return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
9862        index_parts_exports.Positioner,
9863        {
9864          ref,
9865          align,
9866          side,
9867          sideOffset,
9868          ...props,
9869          className: clsx_default(
9870            resets_default2["box-sizing"],
9871            style_default7.positioner,
9872            className
9873          )
9874        }
9875      );
9876    }
9877  );
9878  
9879  // packages/ui/build-module/utils/theme-provider.mjs
9880  var theme = __toESM(require_theme(), 1);
9881  
9882  // packages/ui/build-module/lock-unlock.mjs
9883  var import_private_apis = __toESM(require_private_apis(), 1);
9884  var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
9885    "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
9886    "@wordpress/ui"
9887  );
9888  
9889  // packages/ui/build-module/utils/theme-provider.mjs
9890  function getThemeProvider() {
9891    const themePackage = theme;
9892    if (themePackage.ThemeProvider) {
9893      return themePackage.ThemeProvider;
9894    }
9895    if (!themePackage.privateApis) {
9896      throw new Error(
9897        "@wordpress/ui: @wordpress/theme must expose `ThemeProvider` or `privateApis.ThemeProvider`."
9898      );
9899    }
9900    return unlock(
9901      themePackage.privateApis
9902    ).ThemeProvider;
9903  }
9904  var ThemeProvider = getThemeProvider();
9905  
9906  // packages/ui/build-module/tooltip/popup.mjs
9907  var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
9908  var STYLE_HASH_ATTRIBUTE9 = "data-wp-hash";
9909  function getRuntime9() {
9910    const globalScope = globalThis;
9911    if (globalScope.__wpStyleRuntime) {
9912      return globalScope.__wpStyleRuntime;
9913    }
9914    globalScope.__wpStyleRuntime = {
9915      documents: /* @__PURE__ */ new Map(),
9916      styles: /* @__PURE__ */ new Map(),
9917      injectedStyles: /* @__PURE__ */ new WeakMap()
9918    };
9919    if (typeof document !== "undefined") {
9920      registerDocument9(document);
9921    }
9922    return globalScope.__wpStyleRuntime;
9923  }
9924  function documentContainsStyleHash9(targetDocument, hash) {
9925    if (!targetDocument.head) {
9926      return false;
9927    }
9928    for (const style of targetDocument.head.querySelectorAll(
9929      `style[$STYLE_HASH_ATTRIBUTE9}]`
9930    )) {
9931      if (style.getAttribute(STYLE_HASH_ATTRIBUTE9) === hash) {
9932        return true;
9933      }
9934    }
9935    return false;
9936  }
9937  function injectStyle9(targetDocument, hash, css) {
9938    if (!targetDocument.head) {
9939      return;
9940    }
9941    const runtime = getRuntime9();
9942    let injectedStyles = runtime.injectedStyles.get(targetDocument);
9943    if (!injectedStyles) {
9944      injectedStyles = /* @__PURE__ */ new Set();
9945      runtime.injectedStyles.set(targetDocument, injectedStyles);
9946    }
9947    if (injectedStyles.has(hash)) {
9948      return;
9949    }
9950    if (documentContainsStyleHash9(targetDocument, hash)) {
9951      injectedStyles.add(hash);
9952      return;
9953    }
9954    const style = targetDocument.createElement("style");
9955    style.setAttribute(STYLE_HASH_ATTRIBUTE9, hash);
9956    style.appendChild(targetDocument.createTextNode(css));
9957    targetDocument.head.appendChild(style);
9958    injectedStyles.add(hash);
9959  }
9960  function registerDocument9(targetDocument) {
9961    const runtime = getRuntime9();
9962    runtime.documents.set(
9963      targetDocument,
9964      (runtime.documents.get(targetDocument) ?? 0) + 1
9965    );
9966    for (const [hash, css] of runtime.styles) {
9967      injectStyle9(targetDocument, hash, css);
9968    }
9969    return () => {
9970      const count = runtime.documents.get(targetDocument);
9971      if (count === void 0) {
9972        return;
9973      }
9974      if (count <= 1) {
9975        runtime.documents.delete(targetDocument);
9976        return;
9977      }
9978      runtime.documents.set(targetDocument, count - 1);
9979    };
9980  }
9981  function registerStyle9(hash, css) {
9982    const runtime = getRuntime9();
9983    runtime.styles.set(hash, css);
9984    for (const targetDocument of runtime.documents.keys()) {
9985      injectStyle9(targetDocument, hash, css);
9986    }
9987  }
9988  if (typeof process === "undefined" || true) {
9989    registerStyle9("19fcc06039", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._480b748dd3510e64__positioner{z-index:var(--wp-ui-tooltip-z-index,initial)}._50096b232db7709d__popup{--_wp-ui-elevation-sm:0 1px 2px rgba(0,0,0,.05),0 2px 3px rgba(0,0,0,.04),0 6px 6px rgba(0,0,0,.03),0 8px 8px rgba(0,0,0,.02);background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--_wp-ui-elevation-sm);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-sm,12px);line-height:1.4;padding:var(--wpds-dimension-padding-xs,4px) var(--wpds-dimension-padding-sm,8px);@media (forced-colors:active){border-bottom-color:CanvasText;border-bottom-style:solid;border-bottom-width:1px;border-left-color:CanvasText;border-left-style:solid;border-left-width:1px;border-right-color:CanvasText;border-right-style:solid;border-right-width:1px;border-top-color:CanvasText;border-top-style:solid;border-top-width:1px}}}}');
9990  }
9991  var style_default8 = { "positioner": "_480b748dd3510e64__positioner", "popup": "_50096b232db7709d__popup" };
9992  var POPUP_COLOR = { background: "#1e1e1e" };
9993  var Popup = (0, import_element21.forwardRef)(function TooltipPopup3({ portal, positioner, children, className, ...props }, ref) {
9994    const popupContent = /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ThemeProvider, { color: POPUP_COLOR, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
9995      index_parts_exports.Popup,
9996      {
9997        ref,
9998        className: clsx_default(style_default8.popup, className),
9999        ...props,
10000        children
10001      }
10002    ) });
10003    const positionedPopup = renderSlotWithChildren(
10004      positioner,
10005      /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Positioner, {}),
10006      popupContent
10007    );
10008    return renderSlotWithChildren(portal, /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Portal, {}), positionedPopup);
10009  });
10010  
10011  // packages/ui/build-module/tooltip/trigger.mjs
10012  var import_element22 = __toESM(require_element(), 1);
10013  var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
10014  var Trigger = (0, import_element22.forwardRef)(
10015    function TooltipTrigger3(props, ref) {
10016      return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(index_parts_exports.Trigger, { ref, ...props });
10017    }
10018  );
10019  
10020  // packages/ui/build-module/tooltip/root.mjs
10021  var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
10022  function Root(props) {
10023    return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DirectionProvider3, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(index_parts_exports.Root, { ...props }) });
10024  }
10025  
10026  // packages/ui/build-module/link/link.mjs
10027  var import_element23 = __toESM(require_element(), 1);
10028  var import_i18n4 = __toESM(require_i18n(), 1);
10029  var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
10030  var STYLE_HASH_ATTRIBUTE10 = "data-wp-hash";
10031  function getRuntime10() {
10032    const globalScope = globalThis;
10033    if (globalScope.__wpStyleRuntime) {
10034      return globalScope.__wpStyleRuntime;
10035    }
10036    globalScope.__wpStyleRuntime = {
10037      documents: /* @__PURE__ */ new Map(),
10038      styles: /* @__PURE__ */ new Map(),
10039      injectedStyles: /* @__PURE__ */ new WeakMap()
10040    };
10041    if (typeof document !== "undefined") {
10042      registerDocument10(document);
10043    }
10044    return globalScope.__wpStyleRuntime;
10045  }
10046  function documentContainsStyleHash10(targetDocument, hash) {
10047    if (!targetDocument.head) {
10048      return false;
10049    }
10050    for (const style of targetDocument.head.querySelectorAll(
10051      `style[$STYLE_HASH_ATTRIBUTE10}]`
10052    )) {
10053      if (style.getAttribute(STYLE_HASH_ATTRIBUTE10) === hash) {
10054        return true;
10055      }
10056    }
10057    return false;
10058  }
10059  function injectStyle10(targetDocument, hash, css) {
10060    if (!targetDocument.head) {
10061      return;
10062    }
10063    const runtime = getRuntime10();
10064    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10065    if (!injectedStyles) {
10066      injectedStyles = /* @__PURE__ */ new Set();
10067      runtime.injectedStyles.set(targetDocument, injectedStyles);
10068    }
10069    if (injectedStyles.has(hash)) {
10070      return;
10071    }
10072    if (documentContainsStyleHash10(targetDocument, hash)) {
10073      injectedStyles.add(hash);
10074      return;
10075    }
10076    const style = targetDocument.createElement("style");
10077    style.setAttribute(STYLE_HASH_ATTRIBUTE10, hash);
10078    style.appendChild(targetDocument.createTextNode(css));
10079    targetDocument.head.appendChild(style);
10080    injectedStyles.add(hash);
10081  }
10082  function registerDocument10(targetDocument) {
10083    const runtime = getRuntime10();
10084    runtime.documents.set(
10085      targetDocument,
10086      (runtime.documents.get(targetDocument) ?? 0) + 1
10087    );
10088    for (const [hash, css] of runtime.styles) {
10089      injectStyle10(targetDocument, hash, css);
10090    }
10091    return () => {
10092      const count = runtime.documents.get(targetDocument);
10093      if (count === void 0) {
10094        return;
10095      }
10096      if (count <= 1) {
10097        runtime.documents.delete(targetDocument);
10098        return;
10099      }
10100      runtime.documents.set(targetDocument, count - 1);
10101    };
10102  }
10103  function registerStyle10(hash, css) {
10104    const runtime = getRuntime10();
10105    runtime.styles.set(hash, css);
10106    for (const targetDocument of runtime.documents.keys()) {
10107      injectStyle10(targetDocument, hash, css);
10108    }
10109  }
10110  if (typeof process === "undefined" || true) {
10111    registerStyle10("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
10112  }
10113  var resets_default3 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
10114  if (typeof process === "undefined" || true) {
10115    registerStyle10("7c3267f794", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.af79fb116edb0dd7__outset-ring--focus:focus,.dfcfdc28396e5d98__outset-ring--focus-visible:focus-visible,.e5cd9ee879f6403a__outset-ring--focus-within:focus-within{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within,.abc777e9713fa711__outset-ring--focus-except-active:focus{outline:none}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.abc777e9713fa711__outset-ring--focus-except-active:focus:not(:active){--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}}");
10116  }
10117  var focus_module_default2 = { "outset-ring--focus": "af79fb116edb0dd7__outset-ring--focus", "outset-ring--focus-visible": "dfcfdc28396e5d98__outset-ring--focus-visible", "outset-ring--focus-within": "e5cd9ee879f6403a__outset-ring--focus-within", "outset-ring--focus-except-active": "abc777e9713fa711__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3c9f5ee9fc9c136d__outset-ring--focus-within-except-active" };
10118  if (typeof process === "undefined" || true) {
10119    registerStyle10("888e86d20a", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.d4250949359b05ce__link{--_gcd-a-border-radius:var(--wpds-border-radius-sm,2px);border-radius:var(--wpds-border-radius-sm,2px);text-decoration-thickness:from-font;text-underline-offset:.2em}.f037c632480d4e11__link-with-icon{text-decoration-line:none}._8dc7567f9ff415bf__link-contents{text-decoration:inherit;text-decoration-line:underline}.c6055659b8e2cd2c__is-brand,.c6055659b8e2cd2c__is-brand:visited{--_gcd-a-color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9));color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9))}.c6055659b8e2cd2c__is-brand:active,.c6055659b8e2cd2c__is-brand:hover{--_gcd-a-color:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000));color:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000))}._92e0dfcaeee15b88__is-neutral,._92e0dfcaeee15b88__is-neutral:visited{--_gcd-a-color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);text-decoration-color:var(--wpds-color-stroke-interactive-neutral,#8d8d8d)}._92e0dfcaeee15b88__is-neutral:active,._92e0dfcaeee15b88__is-neutral:hover{--_gcd-a-color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e)}.cf122a9bf1035d42__is-unstyled{--_gcd-a-border-radius:0;--_gcd-a-color:inherit;color:inherit;text-decoration:none}._0cb411afac4c86c7__link-icon{font-weight:var(--wpds-typography-font-weight-default,400);line-height:1;margin-inline-start:var(--wpds-dimension-padding-xs,4px);text-decoration:none}._0cb411afac4c86c7__link-icon:after{content:"\\2060\\2197"}._0cb411afac4c86c7__link-icon:dir(rtl):after{content:"\\2060\\2196"}}}');
10120  }
10121  var style_default9 = { "link": "d4250949359b05ce__link", "link-with-icon": "f037c632480d4e11__link-with-icon", "link-contents": "_8dc7567f9ff415bf__link-contents", "is-brand": "c6055659b8e2cd2c__is-brand", "is-neutral": "_92e0dfcaeee15b88__is-neutral", "is-unstyled": "cf122a9bf1035d42__is-unstyled", "link-icon": "_0cb411afac4c86c7__link-icon" };
10122  if (typeof process === "undefined" || true) {
10123    registerStyle10("abb19c3171", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}[role=treeitem] span._400bf7ee0c6061a9__span[aria-hidden]{display:var(--_gcd-span-display,inline);font-family:var(--_gcd-span-font-family,inherit);font-size:var(--_gcd-span-font-size,inherit);line-height:var(--_gcd-span-line-height,1);pointer-events:var(--_gcd-span-pointer-events,auto);position:var(--_gcd-span-position,static)}");
10124  }
10125  var global_css_defense_default3 = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li", "span": "_400bf7ee0c6061a9__span" };
10126  var Link = (0, import_element23.forwardRef)(
10127    function UnforwardedLink({
10128      children,
10129      variant = "default",
10130      tone = "brand",
10131      openInNewTab = false,
10132      target,
10133      render,
10134      className,
10135      ...props
10136    }, ref) {
10137      const shouldShowNewTabIndicator = openInNewTab || /^_blank$/i.test(target ?? "");
10138      const element = useRender({
10139        render,
10140        defaultTagName: "a",
10141        ref,
10142        props: mergeProps(props, {
10143          className: clsx_default(
10144            global_css_defense_default3.a,
10145            resets_default3["box-sizing"],
10146            focus_module_default2["outset-ring--focus-except-active"],
10147            variant !== "unstyled" && style_default9.link,
10148            variant !== "unstyled" && shouldShowNewTabIndicator && style_default9["link-with-icon"],
10149            variant !== "unstyled" && style_default9[`is-$tone}`],
10150            variant === "unstyled" && style_default9["is-unstyled"],
10151            className
10152          ),
10153          target: target ?? (openInNewTab ? "_blank" : void 0),
10154          children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
10155            shouldShowNewTabIndicator && variant !== "unstyled" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: style_default9["link-contents"], children }) : children,
10156            shouldShowNewTabIndicator && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
10157              "span",
10158              {
10159                className: style_default9["link-icon"],
10160                role: "img",
10161                "aria-label": (
10162                  /* translators: accessibility text appended to link text */
10163                  (0, import_i18n4.__)("(opens in a new tab)")
10164                )
10165              }
10166            )
10167          ] })
10168        })
10169      });
10170      return element;
10171    }
10172  );
10173  
10174  // packages/ui/build-module/icon-button/icon-button.mjs
10175  var import_element24 = __toESM(require_element(), 1);
10176  var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
10177  var STYLE_HASH_ATTRIBUTE11 = "data-wp-hash";
10178  function getRuntime11() {
10179    const globalScope = globalThis;
10180    if (globalScope.__wpStyleRuntime) {
10181      return globalScope.__wpStyleRuntime;
10182    }
10183    globalScope.__wpStyleRuntime = {
10184      documents: /* @__PURE__ */ new Map(),
10185      styles: /* @__PURE__ */ new Map(),
10186      injectedStyles: /* @__PURE__ */ new WeakMap()
10187    };
10188    if (typeof document !== "undefined") {
10189      registerDocument11(document);
10190    }
10191    return globalScope.__wpStyleRuntime;
10192  }
10193  function documentContainsStyleHash11(targetDocument, hash) {
10194    if (!targetDocument.head) {
10195      return false;
10196    }
10197    for (const style of targetDocument.head.querySelectorAll(
10198      `style[$STYLE_HASH_ATTRIBUTE11}]`
10199    )) {
10200      if (style.getAttribute(STYLE_HASH_ATTRIBUTE11) === hash) {
10201        return true;
10202      }
10203    }
10204    return false;
10205  }
10206  function injectStyle11(targetDocument, hash, css) {
10207    if (!targetDocument.head) {
10208      return;
10209    }
10210    const runtime = getRuntime11();
10211    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10212    if (!injectedStyles) {
10213      injectedStyles = /* @__PURE__ */ new Set();
10214      runtime.injectedStyles.set(targetDocument, injectedStyles);
10215    }
10216    if (injectedStyles.has(hash)) {
10217      return;
10218    }
10219    if (documentContainsStyleHash11(targetDocument, hash)) {
10220      injectedStyles.add(hash);
10221      return;
10222    }
10223    const style = targetDocument.createElement("style");
10224    style.setAttribute(STYLE_HASH_ATTRIBUTE11, hash);
10225    style.appendChild(targetDocument.createTextNode(css));
10226    targetDocument.head.appendChild(style);
10227    injectedStyles.add(hash);
10228  }
10229  function registerDocument11(targetDocument) {
10230    const runtime = getRuntime11();
10231    runtime.documents.set(
10232      targetDocument,
10233      (runtime.documents.get(targetDocument) ?? 0) + 1
10234    );
10235    for (const [hash, css] of runtime.styles) {
10236      injectStyle11(targetDocument, hash, css);
10237    }
10238    return () => {
10239      const count = runtime.documents.get(targetDocument);
10240      if (count === void 0) {
10241        return;
10242      }
10243      if (count <= 1) {
10244        runtime.documents.delete(targetDocument);
10245        return;
10246      }
10247      runtime.documents.set(targetDocument, count - 1);
10248    };
10249  }
10250  function registerStyle11(hash, css) {
10251    const runtime = getRuntime11();
10252    runtime.styles.set(hash, css);
10253    for (const targetDocument of runtime.documents.keys()) {
10254      injectStyle11(targetDocument, hash, css);
10255    }
10256  }
10257  if (typeof process === "undefined" || true) {
10258    registerStyle11("c5cdafb1bc", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer compositions{._28cfdc260e755391__icon-button{--wp-ui-button-aspect-ratio:1;--wp-ui-button-padding-inline:0px;--wp-ui-button-min-width:unset}.f1c70d719989a85a__icon{margin:-1px}}}");
10259  }
10260  var style_default10 = { "icon-button": "_28cfdc260e755391__icon-button", "icon": "f1c70d719989a85a__icon" };
10261  var IconButton = (0, import_element24.forwardRef)(
10262    function UnforwardedIconButton({
10263      label,
10264      className,
10265      // Prevent accidental forwarding of `children`
10266      children: _children,
10267      disabled: disabled2,
10268      focusableWhenDisabled = true,
10269      icon,
10270      size: size4,
10271      shortcut,
10272      positioner,
10273      "aria-describedby": ariaDescribedBy,
10274      "aria-keyshortcuts": ariaKeyShortcuts,
10275      ...restProps
10276    }, ref) {
10277      const classes = clsx_default(style_default10["icon-button"], className);
10278      const { descriptionId, targetProps } = useKeyboardShortcutProps({
10279        "aria-describedby": ariaDescribedBy,
10280        "aria-keyshortcuts": ariaKeyShortcuts,
10281        shortcut
10282      });
10283      return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Root, { children: [
10284        /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
10285          Trigger,
10286          {
10287            ref,
10288            ...targetProps,
10289            disabled: disabled2 && !focusableWhenDisabled,
10290            render: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
10291              Button4,
10292              {
10293                ...restProps,
10294                size: size4,
10295                "aria-label": label,
10296                disabled: disabled2,
10297                focusableWhenDisabled
10298              }
10299            ),
10300            className: classes,
10301            children: [
10302              /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon, { icon, size: 24, className: style_default10.icon }),
10303              shortcut && descriptionId && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
10304                KeyboardShortcutDescription,
10305                {
10306                  descriptionId,
10307                  shortcut
10308                }
10309              )
10310            ]
10311          }
10312        ),
10313        /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Popup, { positioner, children: [
10314          label,
10315          shortcut && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
10316            " ",
10317            /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(KeyboardShortcutDisplay, { shortcut })
10318          ] })
10319        ] })
10320      ] });
10321    }
10322  );
10323  
10324  // packages/ui/build-module/stack/stack.mjs
10325  var import_element25 = __toESM(require_element(), 1);
10326  var STYLE_HASH_ATTRIBUTE12 = "data-wp-hash";
10327  function getRuntime12() {
10328    const globalScope = globalThis;
10329    if (globalScope.__wpStyleRuntime) {
10330      return globalScope.__wpStyleRuntime;
10331    }
10332    globalScope.__wpStyleRuntime = {
10333      documents: /* @__PURE__ */ new Map(),
10334      styles: /* @__PURE__ */ new Map(),
10335      injectedStyles: /* @__PURE__ */ new WeakMap()
10336    };
10337    if (typeof document !== "undefined") {
10338      registerDocument12(document);
10339    }
10340    return globalScope.__wpStyleRuntime;
10341  }
10342  function documentContainsStyleHash12(targetDocument, hash) {
10343    if (!targetDocument.head) {
10344      return false;
10345    }
10346    for (const style of targetDocument.head.querySelectorAll(
10347      `style[$STYLE_HASH_ATTRIBUTE12}]`
10348    )) {
10349      if (style.getAttribute(STYLE_HASH_ATTRIBUTE12) === hash) {
10350        return true;
10351      }
10352    }
10353    return false;
10354  }
10355  function injectStyle12(targetDocument, hash, css) {
10356    if (!targetDocument.head) {
10357      return;
10358    }
10359    const runtime = getRuntime12();
10360    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10361    if (!injectedStyles) {
10362      injectedStyles = /* @__PURE__ */ new Set();
10363      runtime.injectedStyles.set(targetDocument, injectedStyles);
10364    }
10365    if (injectedStyles.has(hash)) {
10366      return;
10367    }
10368    if (documentContainsStyleHash12(targetDocument, hash)) {
10369      injectedStyles.add(hash);
10370      return;
10371    }
10372    const style = targetDocument.createElement("style");
10373    style.setAttribute(STYLE_HASH_ATTRIBUTE12, hash);
10374    style.appendChild(targetDocument.createTextNode(css));
10375    targetDocument.head.appendChild(style);
10376    injectedStyles.add(hash);
10377  }
10378  function registerDocument12(targetDocument) {
10379    const runtime = getRuntime12();
10380    runtime.documents.set(
10381      targetDocument,
10382      (runtime.documents.get(targetDocument) ?? 0) + 1
10383    );
10384    for (const [hash, css] of runtime.styles) {
10385      injectStyle12(targetDocument, hash, css);
10386    }
10387    return () => {
10388      const count = runtime.documents.get(targetDocument);
10389      if (count === void 0) {
10390        return;
10391      }
10392      if (count <= 1) {
10393        runtime.documents.delete(targetDocument);
10394        return;
10395      }
10396      runtime.documents.set(targetDocument, count - 1);
10397    };
10398  }
10399  function registerStyle12(hash, css) {
10400    const runtime = getRuntime12();
10401    runtime.styles.set(hash, css);
10402    for (const targetDocument of runtime.documents.keys()) {
10403      injectStyle12(targetDocument, hash, css);
10404    }
10405  }
10406  if (typeof process === "undefined" || true) {
10407    registerStyle12("32aba35fe1", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._19ce0419607e1896__stack{display:flex}}}");
10408  }
10409  var style_default11 = { "stack": "_19ce0419607e1896__stack" };
10410  var gapTokens = {
10411    xs: "var(--wpds-dimension-gap-xs, 4px)",
10412    sm: "var(--wpds-dimension-gap-sm, 8px)",
10413    md: "var(--wpds-dimension-gap-md, 12px)",
10414    lg: "var(--wpds-dimension-gap-lg, 16px)",
10415    xl: "var(--wpds-dimension-gap-xl, 24px)",
10416    "2xl": "var(--wpds-dimension-gap-2xl, 32px)",
10417    "3xl": "var(--wpds-dimension-gap-3xl, 40px)"
10418  };
10419  var Stack = (0, import_element25.forwardRef)(
10420    function UnforwardedStack({ direction, gap, align, justify, wrap, render, ...props }, ref) {
10421      const style = {
10422        gap: gap && gapTokens[gap],
10423        alignItems: align,
10424        justifyContent: justify,
10425        flexDirection: direction,
10426        flexWrap: wrap
10427      };
10428      const element = useRender({
10429        render,
10430        ref,
10431        props: mergeProps(props, {
10432          style,
10433          className: style_default11.stack
10434        })
10435      });
10436      return element;
10437    }
10438  );
10439  
10440  // packages/ui/build-module/notice/index.mjs
10441  var notice_exports = {};
10442  __export(notice_exports, {
10443    ActionButton: () => ActionButton,
10444    ActionLink: () => ActionLink,
10445    Actions: () => Actions,
10446    CloseIconButton: () => CloseIconButton,
10447    Description: () => Description,
10448    Root: () => Root2,
10449    Title: () => Title
10450  });
10451  
10452  // packages/ui/build-module/notice/root.mjs
10453  var import_element26 = __toESM(require_element(), 1);
10454  var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
10455  var STYLE_HASH_ATTRIBUTE13 = "data-wp-hash";
10456  function getRuntime13() {
10457    const globalScope = globalThis;
10458    if (globalScope.__wpStyleRuntime) {
10459      return globalScope.__wpStyleRuntime;
10460    }
10461    globalScope.__wpStyleRuntime = {
10462      documents: /* @__PURE__ */ new Map(),
10463      styles: /* @__PURE__ */ new Map(),
10464      injectedStyles: /* @__PURE__ */ new WeakMap()
10465    };
10466    if (typeof document !== "undefined") {
10467      registerDocument13(document);
10468    }
10469    return globalScope.__wpStyleRuntime;
10470  }
10471  function documentContainsStyleHash13(targetDocument, hash) {
10472    if (!targetDocument.head) {
10473      return false;
10474    }
10475    for (const style of targetDocument.head.querySelectorAll(
10476      `style[$STYLE_HASH_ATTRIBUTE13}]`
10477    )) {
10478      if (style.getAttribute(STYLE_HASH_ATTRIBUTE13) === hash) {
10479        return true;
10480      }
10481    }
10482    return false;
10483  }
10484  function injectStyle13(targetDocument, hash, css) {
10485    if (!targetDocument.head) {
10486      return;
10487    }
10488    const runtime = getRuntime13();
10489    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10490    if (!injectedStyles) {
10491      injectedStyles = /* @__PURE__ */ new Set();
10492      runtime.injectedStyles.set(targetDocument, injectedStyles);
10493    }
10494    if (injectedStyles.has(hash)) {
10495      return;
10496    }
10497    if (documentContainsStyleHash13(targetDocument, hash)) {
10498      injectedStyles.add(hash);
10499      return;
10500    }
10501    const style = targetDocument.createElement("style");
10502    style.setAttribute(STYLE_HASH_ATTRIBUTE13, hash);
10503    style.appendChild(targetDocument.createTextNode(css));
10504    targetDocument.head.appendChild(style);
10505    injectedStyles.add(hash);
10506  }
10507  function registerDocument13(targetDocument) {
10508    const runtime = getRuntime13();
10509    runtime.documents.set(
10510      targetDocument,
10511      (runtime.documents.get(targetDocument) ?? 0) + 1
10512    );
10513    for (const [hash, css] of runtime.styles) {
10514      injectStyle13(targetDocument, hash, css);
10515    }
10516    return () => {
10517      const count = runtime.documents.get(targetDocument);
10518      if (count === void 0) {
10519        return;
10520      }
10521      if (count <= 1) {
10522        runtime.documents.delete(targetDocument);
10523        return;
10524      }
10525      runtime.documents.set(targetDocument, count - 1);
10526    };
10527  }
10528  function registerStyle13(hash, css) {
10529    const runtime = getRuntime13();
10530    runtime.styles.set(hash, css);
10531    for (const targetDocument of runtime.documents.keys()) {
10532      injectStyle13(targetDocument, hash, css);
10533    }
10534  }
10535  if (typeof process === "undefined" || true) {
10536    registerStyle13("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
10537  }
10538  var resets_default4 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
10539  if (typeof process === "undefined" || true) {
10540    registerStyle13("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
10541  }
10542  var style_default12 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
10543  var icons = {
10544    neutral: null,
10545    info: info_default,
10546    warning: caution_default,
10547    success: published_default,
10548    error: error_default
10549  };
10550  var Root2 = (0, import_element26.forwardRef)(function Notice({ intent = "neutral", children, icon, render, ...restProps }, ref) {
10551    const iconElement = icon === null ? null : icon ?? icons[intent];
10552    const mergedClassName = clsx_default(
10553      style_default12.notice,
10554      style_default12[`is-$intent}`],
10555      resets_default4["box-sizing"]
10556    );
10557    const element = useRender({
10558      defaultTagName: "div",
10559      render,
10560      ref,
10561      props: mergeProps(
10562        {
10563          className: mergedClassName,
10564          children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
10565            children,
10566            iconElement && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
10567              Icon,
10568              {
10569                className: style_default12.icon,
10570                icon: iconElement
10571              }
10572            )
10573          ] })
10574        },
10575        restProps
10576      )
10577    });
10578    return element;
10579  });
10580  
10581  // packages/ui/build-module/notice/title.mjs
10582  var import_element27 = __toESM(require_element(), 1);
10583  var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
10584  var STYLE_HASH_ATTRIBUTE14 = "data-wp-hash";
10585  function getRuntime14() {
10586    const globalScope = globalThis;
10587    if (globalScope.__wpStyleRuntime) {
10588      return globalScope.__wpStyleRuntime;
10589    }
10590    globalScope.__wpStyleRuntime = {
10591      documents: /* @__PURE__ */ new Map(),
10592      styles: /* @__PURE__ */ new Map(),
10593      injectedStyles: /* @__PURE__ */ new WeakMap()
10594    };
10595    if (typeof document !== "undefined") {
10596      registerDocument14(document);
10597    }
10598    return globalScope.__wpStyleRuntime;
10599  }
10600  function documentContainsStyleHash14(targetDocument, hash) {
10601    if (!targetDocument.head) {
10602      return false;
10603    }
10604    for (const style of targetDocument.head.querySelectorAll(
10605      `style[$STYLE_HASH_ATTRIBUTE14}]`
10606    )) {
10607      if (style.getAttribute(STYLE_HASH_ATTRIBUTE14) === hash) {
10608        return true;
10609      }
10610    }
10611    return false;
10612  }
10613  function injectStyle14(targetDocument, hash, css) {
10614    if (!targetDocument.head) {
10615      return;
10616    }
10617    const runtime = getRuntime14();
10618    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10619    if (!injectedStyles) {
10620      injectedStyles = /* @__PURE__ */ new Set();
10621      runtime.injectedStyles.set(targetDocument, injectedStyles);
10622    }
10623    if (injectedStyles.has(hash)) {
10624      return;
10625    }
10626    if (documentContainsStyleHash14(targetDocument, hash)) {
10627      injectedStyles.add(hash);
10628      return;
10629    }
10630    const style = targetDocument.createElement("style");
10631    style.setAttribute(STYLE_HASH_ATTRIBUTE14, hash);
10632    style.appendChild(targetDocument.createTextNode(css));
10633    targetDocument.head.appendChild(style);
10634    injectedStyles.add(hash);
10635  }
10636  function registerDocument14(targetDocument) {
10637    const runtime = getRuntime14();
10638    runtime.documents.set(
10639      targetDocument,
10640      (runtime.documents.get(targetDocument) ?? 0) + 1
10641    );
10642    for (const [hash, css] of runtime.styles) {
10643      injectStyle14(targetDocument, hash, css);
10644    }
10645    return () => {
10646      const count = runtime.documents.get(targetDocument);
10647      if (count === void 0) {
10648        return;
10649      }
10650      if (count <= 1) {
10651        runtime.documents.delete(targetDocument);
10652        return;
10653      }
10654      runtime.documents.set(targetDocument, count - 1);
10655    };
10656  }
10657  function registerStyle14(hash, css) {
10658    const runtime = getRuntime14();
10659    runtime.styles.set(hash, css);
10660    for (const targetDocument of runtime.documents.keys()) {
10661      injectStyle14(targetDocument, hash, css);
10662    }
10663  }
10664  if (typeof process === "undefined" || true) {
10665    registerStyle14("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
10666  }
10667  var style_default13 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
10668  var Title = (0, import_element27.forwardRef)(
10669    function NoticeTitle({ className, ...props }, ref) {
10670      return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
10671        Text,
10672        {
10673          ref,
10674          variant: "heading-md",
10675          className: clsx_default(style_default13.title, className),
10676          ...props
10677        }
10678      );
10679    }
10680  );
10681  
10682  // packages/ui/build-module/notice/description.mjs
10683  var import_element28 = __toESM(require_element(), 1);
10684  var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
10685  var STYLE_HASH_ATTRIBUTE15 = "data-wp-hash";
10686  function getRuntime15() {
10687    const globalScope = globalThis;
10688    if (globalScope.__wpStyleRuntime) {
10689      return globalScope.__wpStyleRuntime;
10690    }
10691    globalScope.__wpStyleRuntime = {
10692      documents: /* @__PURE__ */ new Map(),
10693      styles: /* @__PURE__ */ new Map(),
10694      injectedStyles: /* @__PURE__ */ new WeakMap()
10695    };
10696    if (typeof document !== "undefined") {
10697      registerDocument15(document);
10698    }
10699    return globalScope.__wpStyleRuntime;
10700  }
10701  function documentContainsStyleHash15(targetDocument, hash) {
10702    if (!targetDocument.head) {
10703      return false;
10704    }
10705    for (const style of targetDocument.head.querySelectorAll(
10706      `style[$STYLE_HASH_ATTRIBUTE15}]`
10707    )) {
10708      if (style.getAttribute(STYLE_HASH_ATTRIBUTE15) === hash) {
10709        return true;
10710      }
10711    }
10712    return false;
10713  }
10714  function injectStyle15(targetDocument, hash, css) {
10715    if (!targetDocument.head) {
10716      return;
10717    }
10718    const runtime = getRuntime15();
10719    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10720    if (!injectedStyles) {
10721      injectedStyles = /* @__PURE__ */ new Set();
10722      runtime.injectedStyles.set(targetDocument, injectedStyles);
10723    }
10724    if (injectedStyles.has(hash)) {
10725      return;
10726    }
10727    if (documentContainsStyleHash15(targetDocument, hash)) {
10728      injectedStyles.add(hash);
10729      return;
10730    }
10731    const style = targetDocument.createElement("style");
10732    style.setAttribute(STYLE_HASH_ATTRIBUTE15, hash);
10733    style.appendChild(targetDocument.createTextNode(css));
10734    targetDocument.head.appendChild(style);
10735    injectedStyles.add(hash);
10736  }
10737  function registerDocument15(targetDocument) {
10738    const runtime = getRuntime15();
10739    runtime.documents.set(
10740      targetDocument,
10741      (runtime.documents.get(targetDocument) ?? 0) + 1
10742    );
10743    for (const [hash, css] of runtime.styles) {
10744      injectStyle15(targetDocument, hash, css);
10745    }
10746    return () => {
10747      const count = runtime.documents.get(targetDocument);
10748      if (count === void 0) {
10749        return;
10750      }
10751      if (count <= 1) {
10752        runtime.documents.delete(targetDocument);
10753        return;
10754      }
10755      runtime.documents.set(targetDocument, count - 1);
10756    };
10757  }
10758  function registerStyle15(hash, css) {
10759    const runtime = getRuntime15();
10760    runtime.styles.set(hash, css);
10761    for (const targetDocument of runtime.documents.keys()) {
10762      injectStyle15(targetDocument, hash, css);
10763    }
10764  }
10765  if (typeof process === "undefined" || true) {
10766    registerStyle15("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
10767  }
10768  var style_default14 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
10769  var Description = (0, import_element28.forwardRef)(
10770    function NoticeDescription({ className, ...props }, ref) {
10771      return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
10772        Text,
10773        {
10774          ref,
10775          variant: "body-md",
10776          className: clsx_default(style_default14.description, className),
10777          ...props
10778        }
10779      );
10780    }
10781  );
10782  
10783  // packages/ui/build-module/notice/actions.mjs
10784  var import_element29 = __toESM(require_element(), 1);
10785  var STYLE_HASH_ATTRIBUTE16 = "data-wp-hash";
10786  function getRuntime16() {
10787    const globalScope = globalThis;
10788    if (globalScope.__wpStyleRuntime) {
10789      return globalScope.__wpStyleRuntime;
10790    }
10791    globalScope.__wpStyleRuntime = {
10792      documents: /* @__PURE__ */ new Map(),
10793      styles: /* @__PURE__ */ new Map(),
10794      injectedStyles: /* @__PURE__ */ new WeakMap()
10795    };
10796    if (typeof document !== "undefined") {
10797      registerDocument16(document);
10798    }
10799    return globalScope.__wpStyleRuntime;
10800  }
10801  function documentContainsStyleHash16(targetDocument, hash) {
10802    if (!targetDocument.head) {
10803      return false;
10804    }
10805    for (const style of targetDocument.head.querySelectorAll(
10806      `style[$STYLE_HASH_ATTRIBUTE16}]`
10807    )) {
10808      if (style.getAttribute(STYLE_HASH_ATTRIBUTE16) === hash) {
10809        return true;
10810      }
10811    }
10812    return false;
10813  }
10814  function injectStyle16(targetDocument, hash, css) {
10815    if (!targetDocument.head) {
10816      return;
10817    }
10818    const runtime = getRuntime16();
10819    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10820    if (!injectedStyles) {
10821      injectedStyles = /* @__PURE__ */ new Set();
10822      runtime.injectedStyles.set(targetDocument, injectedStyles);
10823    }
10824    if (injectedStyles.has(hash)) {
10825      return;
10826    }
10827    if (documentContainsStyleHash16(targetDocument, hash)) {
10828      injectedStyles.add(hash);
10829      return;
10830    }
10831    const style = targetDocument.createElement("style");
10832    style.setAttribute(STYLE_HASH_ATTRIBUTE16, hash);
10833    style.appendChild(targetDocument.createTextNode(css));
10834    targetDocument.head.appendChild(style);
10835    injectedStyles.add(hash);
10836  }
10837  function registerDocument16(targetDocument) {
10838    const runtime = getRuntime16();
10839    runtime.documents.set(
10840      targetDocument,
10841      (runtime.documents.get(targetDocument) ?? 0) + 1
10842    );
10843    for (const [hash, css] of runtime.styles) {
10844      injectStyle16(targetDocument, hash, css);
10845    }
10846    return () => {
10847      const count = runtime.documents.get(targetDocument);
10848      if (count === void 0) {
10849        return;
10850      }
10851      if (count <= 1) {
10852        runtime.documents.delete(targetDocument);
10853        return;
10854      }
10855      runtime.documents.set(targetDocument, count - 1);
10856    };
10857  }
10858  function registerStyle16(hash, css) {
10859    const runtime = getRuntime16();
10860    runtime.styles.set(hash, css);
10861    for (const targetDocument of runtime.documents.keys()) {
10862      injectStyle16(targetDocument, hash, css);
10863    }
10864  }
10865  if (typeof process === "undefined" || true) {
10866    registerStyle16("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
10867  }
10868  var style_default15 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
10869  var Actions = (0, import_element29.forwardRef)(
10870    function NoticeActions({ render, ...props }, ref) {
10871      const element = useRender({
10872        defaultTagName: "div",
10873        render,
10874        ref,
10875        props: mergeProps(
10876          {
10877            className: style_default15.actions
10878          },
10879          props
10880        )
10881      });
10882      return element;
10883    }
10884  );
10885  
10886  // packages/ui/build-module/notice/close-icon-button.mjs
10887  var import_element30 = __toESM(require_element(), 1);
10888  var import_i18n5 = __toESM(require_i18n(), 1);
10889  var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
10890  var STYLE_HASH_ATTRIBUTE17 = "data-wp-hash";
10891  function getRuntime17() {
10892    const globalScope = globalThis;
10893    if (globalScope.__wpStyleRuntime) {
10894      return globalScope.__wpStyleRuntime;
10895    }
10896    globalScope.__wpStyleRuntime = {
10897      documents: /* @__PURE__ */ new Map(),
10898      styles: /* @__PURE__ */ new Map(),
10899      injectedStyles: /* @__PURE__ */ new WeakMap()
10900    };
10901    if (typeof document !== "undefined") {
10902      registerDocument17(document);
10903    }
10904    return globalScope.__wpStyleRuntime;
10905  }
10906  function documentContainsStyleHash17(targetDocument, hash) {
10907    if (!targetDocument.head) {
10908      return false;
10909    }
10910    for (const style of targetDocument.head.querySelectorAll(
10911      `style[$STYLE_HASH_ATTRIBUTE17}]`
10912    )) {
10913      if (style.getAttribute(STYLE_HASH_ATTRIBUTE17) === hash) {
10914        return true;
10915      }
10916    }
10917    return false;
10918  }
10919  function injectStyle17(targetDocument, hash, css) {
10920    if (!targetDocument.head) {
10921      return;
10922    }
10923    const runtime = getRuntime17();
10924    let injectedStyles = runtime.injectedStyles.get(targetDocument);
10925    if (!injectedStyles) {
10926      injectedStyles = /* @__PURE__ */ new Set();
10927      runtime.injectedStyles.set(targetDocument, injectedStyles);
10928    }
10929    if (injectedStyles.has(hash)) {
10930      return;
10931    }
10932    if (documentContainsStyleHash17(targetDocument, hash)) {
10933      injectedStyles.add(hash);
10934      return;
10935    }
10936    const style = targetDocument.createElement("style");
10937    style.setAttribute(STYLE_HASH_ATTRIBUTE17, hash);
10938    style.appendChild(targetDocument.createTextNode(css));
10939    targetDocument.head.appendChild(style);
10940    injectedStyles.add(hash);
10941  }
10942  function registerDocument17(targetDocument) {
10943    const runtime = getRuntime17();
10944    runtime.documents.set(
10945      targetDocument,
10946      (runtime.documents.get(targetDocument) ?? 0) + 1
10947    );
10948    for (const [hash, css] of runtime.styles) {
10949      injectStyle17(targetDocument, hash, css);
10950    }
10951    return () => {
10952      const count = runtime.documents.get(targetDocument);
10953      if (count === void 0) {
10954        return;
10955      }
10956      if (count <= 1) {
10957        runtime.documents.delete(targetDocument);
10958        return;
10959      }
10960      runtime.documents.set(targetDocument, count - 1);
10961    };
10962  }
10963  function registerStyle17(hash, css) {
10964    const runtime = getRuntime17();
10965    runtime.styles.set(hash, css);
10966    for (const targetDocument of runtime.documents.keys()) {
10967      injectStyle17(targetDocument, hash, css);
10968    }
10969  }
10970  if (typeof process === "undefined" || true) {
10971    registerStyle17("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
10972  }
10973  var style_default16 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
10974  var CloseIconButton = (0, import_element30.forwardRef)(function NoticeCloseIconButton({ className, icon = close_small_default, label = (0, import_i18n5.__)("Dismiss"), ...props }, ref) {
10975    return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10976      IconButton,
10977      {
10978        ...props,
10979        ref,
10980        className: clsx_default(style_default16["close-icon"], className),
10981        variant: "minimal",
10982        size: "small",
10983        tone: "neutral",
10984        icon,
10985        label
10986      }
10987    );
10988  });
10989  
10990  // packages/ui/build-module/notice/action-button.mjs
10991  var import_element31 = __toESM(require_element(), 1);
10992  var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
10993  var STYLE_HASH_ATTRIBUTE18 = "data-wp-hash";
10994  function getRuntime18() {
10995    const globalScope = globalThis;
10996    if (globalScope.__wpStyleRuntime) {
10997      return globalScope.__wpStyleRuntime;
10998    }
10999    globalScope.__wpStyleRuntime = {
11000      documents: /* @__PURE__ */ new Map(),
11001      styles: /* @__PURE__ */ new Map(),
11002      injectedStyles: /* @__PURE__ */ new WeakMap()
11003    };
11004    if (typeof document !== "undefined") {
11005      registerDocument18(document);
11006    }
11007    return globalScope.__wpStyleRuntime;
11008  }
11009  function documentContainsStyleHash18(targetDocument, hash) {
11010    if (!targetDocument.head) {
11011      return false;
11012    }
11013    for (const style of targetDocument.head.querySelectorAll(
11014      `style[$STYLE_HASH_ATTRIBUTE18}]`
11015    )) {
11016      if (style.getAttribute(STYLE_HASH_ATTRIBUTE18) === hash) {
11017        return true;
11018      }
11019    }
11020    return false;
11021  }
11022  function injectStyle18(targetDocument, hash, css) {
11023    if (!targetDocument.head) {
11024      return;
11025    }
11026    const runtime = getRuntime18();
11027    let injectedStyles = runtime.injectedStyles.get(targetDocument);
11028    if (!injectedStyles) {
11029      injectedStyles = /* @__PURE__ */ new Set();
11030      runtime.injectedStyles.set(targetDocument, injectedStyles);
11031    }
11032    if (injectedStyles.has(hash)) {
11033      return;
11034    }
11035    if (documentContainsStyleHash18(targetDocument, hash)) {
11036      injectedStyles.add(hash);
11037      return;
11038    }
11039    const style = targetDocument.createElement("style");
11040    style.setAttribute(STYLE_HASH_ATTRIBUTE18, hash);
11041    style.appendChild(targetDocument.createTextNode(css));
11042    targetDocument.head.appendChild(style);
11043    injectedStyles.add(hash);
11044  }
11045  function registerDocument18(targetDocument) {
11046    const runtime = getRuntime18();
11047    runtime.documents.set(
11048      targetDocument,
11049      (runtime.documents.get(targetDocument) ?? 0) + 1
11050    );
11051    for (const [hash, css] of runtime.styles) {
11052      injectStyle18(targetDocument, hash, css);
11053    }
11054    return () => {
11055      const count = runtime.documents.get(targetDocument);
11056      if (count === void 0) {
11057        return;
11058      }
11059      if (count <= 1) {
11060        runtime.documents.delete(targetDocument);
11061        return;
11062      }
11063      runtime.documents.set(targetDocument, count - 1);
11064    };
11065  }
11066  function registerStyle18(hash, css) {
11067    const runtime = getRuntime18();
11068    runtime.styles.set(hash, css);
11069    for (const targetDocument of runtime.documents.keys()) {
11070      injectStyle18(targetDocument, hash, css);
11071    }
11072  }
11073  if (typeof process === "undefined" || true) {
11074    registerStyle18("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11075  }
11076  var style_default17 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
11077  var ActionButton = (0, import_element31.forwardRef)(
11078    function NoticeActionButton({ className, loading, loadingAnnouncement, variant, ...props }, ref) {
11079      const loadingProps = loading !== void 0 ? { loading, loadingAnnouncement: loadingAnnouncement ?? "" } : {};
11080      return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
11081        Button4,
11082        {
11083          ...props,
11084          ...loadingProps,
11085          ref,
11086          size: "compact",
11087          tone: "neutral",
11088          variant,
11089          className: clsx_default(
11090            style_default17["action-button"],
11091            style_default17[`is-action-button-$variant}`],
11092            className
11093          )
11094        }
11095      );
11096    }
11097  );
11098  
11099  // packages/ui/build-module/notice/action-link.mjs
11100  var import_element32 = __toESM(require_element(), 1);
11101  var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
11102  var STYLE_HASH_ATTRIBUTE19 = "data-wp-hash";
11103  function getRuntime19() {
11104    const globalScope = globalThis;
11105    if (globalScope.__wpStyleRuntime) {
11106      return globalScope.__wpStyleRuntime;
11107    }
11108    globalScope.__wpStyleRuntime = {
11109      documents: /* @__PURE__ */ new Map(),
11110      styles: /* @__PURE__ */ new Map(),
11111      injectedStyles: /* @__PURE__ */ new WeakMap()
11112    };
11113    if (typeof document !== "undefined") {
11114      registerDocument19(document);
11115    }
11116    return globalScope.__wpStyleRuntime;
11117  }
11118  function documentContainsStyleHash19(targetDocument, hash) {
11119    if (!targetDocument.head) {
11120      return false;
11121    }
11122    for (const style of targetDocument.head.querySelectorAll(
11123      `style[$STYLE_HASH_ATTRIBUTE19}]`
11124    )) {
11125      if (style.getAttribute(STYLE_HASH_ATTRIBUTE19) === hash) {
11126        return true;
11127      }
11128    }
11129    return false;
11130  }
11131  function injectStyle19(targetDocument, hash, css) {
11132    if (!targetDocument.head) {
11133      return;
11134    }
11135    const runtime = getRuntime19();
11136    let injectedStyles = runtime.injectedStyles.get(targetDocument);
11137    if (!injectedStyles) {
11138      injectedStyles = /* @__PURE__ */ new Set();
11139      runtime.injectedStyles.set(targetDocument, injectedStyles);
11140    }
11141    if (injectedStyles.has(hash)) {
11142      return;
11143    }
11144    if (documentContainsStyleHash19(targetDocument, hash)) {
11145      injectedStyles.add(hash);
11146      return;
11147    }
11148    const style = targetDocument.createElement("style");
11149    style.setAttribute(STYLE_HASH_ATTRIBUTE19, hash);
11150    style.appendChild(targetDocument.createTextNode(css));
11151    targetDocument.head.appendChild(style);
11152    injectedStyles.add(hash);
11153  }
11154  function registerDocument19(targetDocument) {
11155    const runtime = getRuntime19();
11156    runtime.documents.set(
11157      targetDocument,
11158      (runtime.documents.get(targetDocument) ?? 0) + 1
11159    );
11160    for (const [hash, css] of runtime.styles) {
11161      injectStyle19(targetDocument, hash, css);
11162    }
11163    return () => {
11164      const count = runtime.documents.get(targetDocument);
11165      if (count === void 0) {
11166        return;
11167      }
11168      if (count <= 1) {
11169        runtime.documents.delete(targetDocument);
11170        return;
11171      }
11172      runtime.documents.set(targetDocument, count - 1);
11173    };
11174  }
11175  function registerStyle19(hash, css) {
11176    const runtime = getRuntime19();
11177    runtime.styles.set(hash, css);
11178    for (const targetDocument of runtime.documents.keys()) {
11179      injectStyle19(targetDocument, hash, css);
11180    }
11181  }
11182  if (typeof process === "undefined" || true) {
11183    registerStyle19("30e8b36272", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;isolation:isolate;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.b5397fb9d05389e3__title{--_gcd-heading-color:var(--wp-ui-notice-text-color);color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button,.d329e7416d368d31__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11184  }
11185  var style_default18 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "title": "b5397fb9d05389e3__title", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error" };
11186  var ActionLink = (0, import_element32.forwardRef)(
11187    function NoticeActionLink({ className, render, ...props }, ref) {
11188      return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
11189        Text,
11190        {
11191          ref,
11192          className: clsx_default(style_default18["action-link"], className),
11193          ...props,
11194          variant: "body-md",
11195          render: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Link, { tone: "neutral", variant: "default", render })
11196        }
11197      );
11198    }
11199  );
11200  
11201  // packages/admin-ui/build-module/navigable-region/index.mjs
11202  var import_element33 = __toESM(require_element(), 1);
11203  var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
11204  var NavigableRegion = (0, import_element33.forwardRef)(
11205    ({ children, className, ariaLabel, as: Tag = "div", ...props }, ref) => {
11206      return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
11207        Tag,
11208        {
11209          ref,
11210          className: clsx_default("admin-ui-navigable-region", className),
11211          "aria-label": ariaLabel,
11212          role: "region",
11213          tabIndex: "-1",
11214          ...props,
11215          children
11216        }
11217      );
11218    }
11219  );
11220  NavigableRegion.displayName = "NavigableRegion";
11221  var navigable_region_default = NavigableRegion;
11222  
11223  // packages/admin-ui/build-module/navigation/index.mjs
11224  var import_i18n6 = __toESM(require_i18n(), 1);
11225  var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
11226  var STYLE_HASH_ATTRIBUTE20 = "data-wp-hash";
11227  function getRuntime20() {
11228    const globalScope = globalThis;
11229    if (globalScope.__wpStyleRuntime) {
11230      return globalScope.__wpStyleRuntime;
11231    }
11232    globalScope.__wpStyleRuntime = {
11233      documents: /* @__PURE__ */ new Map(),
11234      styles: /* @__PURE__ */ new Map(),
11235      injectedStyles: /* @__PURE__ */ new WeakMap()
11236    };
11237    if (typeof document !== "undefined") {
11238      registerDocument20(document);
11239    }
11240    return globalScope.__wpStyleRuntime;
11241  }
11242  function documentContainsStyleHash20(targetDocument, hash) {
11243    if (!targetDocument.head) {
11244      return false;
11245    }
11246    for (const style of targetDocument.head.querySelectorAll(
11247      `style[$STYLE_HASH_ATTRIBUTE20}]`
11248    )) {
11249      if (style.getAttribute(STYLE_HASH_ATTRIBUTE20) === hash) {
11250        return true;
11251      }
11252    }
11253    return false;
11254  }
11255  function injectStyle20(targetDocument, hash, css) {
11256    if (!targetDocument.head) {
11257      return;
11258    }
11259    const runtime = getRuntime20();
11260    let injectedStyles = runtime.injectedStyles.get(targetDocument);
11261    if (!injectedStyles) {
11262      injectedStyles = /* @__PURE__ */ new Set();
11263      runtime.injectedStyles.set(targetDocument, injectedStyles);
11264    }
11265    if (injectedStyles.has(hash)) {
11266      return;
11267    }
11268    if (documentContainsStyleHash20(targetDocument, hash)) {
11269      injectedStyles.add(hash);
11270      return;
11271    }
11272    const style = targetDocument.createElement("style");
11273    style.setAttribute(STYLE_HASH_ATTRIBUTE20, hash);
11274    style.appendChild(targetDocument.createTextNode(css));
11275    targetDocument.head.appendChild(style);
11276    injectedStyles.add(hash);
11277  }
11278  function registerDocument20(targetDocument) {
11279    const runtime = getRuntime20();
11280    runtime.documents.set(
11281      targetDocument,
11282      (runtime.documents.get(targetDocument) ?? 0) + 1
11283    );
11284    for (const [hash, css] of runtime.styles) {
11285      injectStyle20(targetDocument, hash, css);
11286    }
11287    return () => {
11288      const count = runtime.documents.get(targetDocument);
11289      if (count === void 0) {
11290        return;
11291      }
11292      if (count <= 1) {
11293        runtime.documents.delete(targetDocument);
11294        return;
11295      }
11296      runtime.documents.set(targetDocument, count - 1);
11297    };
11298  }
11299  function registerStyle20(hash, css) {
11300    const runtime = getRuntime20();
11301    runtime.styles.set(hash, css);
11302    for (const targetDocument of runtime.documents.keys()) {
11303      injectStyle20(targetDocument, hash, css);
11304    }
11305  }
11306  if (typeof process === "undefined" || true) {
11307    registerStyle20("72ef022400", ".bfb5a2dd8cceebd3__list{--focus-ring-size:calc(var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px))*2);list-style:none;margin:calc(var(--focus-ring-size)*-1);overflow-x:auto;padding:var(--focus-ring-size);scroll-padding:var(--focus-ring-size)}.a4759b4cb2c8bd92__li{flex-shrink:0}._07da506d3f2d9afe__item{align-items:center;color:var(--wpds-color-foreground-interactive-neutral-weak,#707070);display:flex;font-weight:var(--wpds-typography-font-weight-default,400);min-block-size:44px;min-inline-size:44px;text-decoration:none}._07da506d3f2d9afe__item:hover,._07da506d3f2d9afe__item[aria-current=page]{color:var(--wpds-color-foreground-interactive-neutral-weak-active,#1e1e1e)}._07da506d3f2d9afe__item[aria-current=page]{font-weight:var(--wpds-typography-font-weight-emphasis,600)}");
11308  }
11309  var style_default19 = { "list": "bfb5a2dd8cceebd3__list", "li": "a4759b4cb2c8bd92__li", "item": "_07da506d3f2d9afe__item" };
11310  var Navigation = ({
11311    items,
11312    currentHref,
11313    ariaLabel = (0, import_i18n6.__)("Sections"),
11314    linkComponent,
11315    className
11316  }) => {
11317    if (!items.length) {
11318      return null;
11319    }
11320    const LinkComponent = linkComponent ?? "a";
11321    if (true) {
11322      const invalidItem = items.find(
11323        (item) => typeof item.href !== "string"
11324      );
11325      if (invalidItem) {
11326        throw new Error(
11327          `Navigation: item "$invalidItem.label}" is missing an \`href\` prop.`
11328        );
11329      }
11330      const duplicate = items.find(
11331        (item, index2) => items.findIndex((other) => other.href === item.href) !== index2
11332      );
11333      if (duplicate) {
11334        throw new Error(
11335          `Navigation: duplicate \`href\` "$duplicate.href}". Each item must have a unique \`href\` so a single item receives \`aria-current="page"\`.`
11336        );
11337      }
11338    }
11339    return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("nav", { "aria-label": ariaLabel, className, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
11340      Stack,
11341      {
11342        render: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { role: "list" }),
11343        direction: "row",
11344        align: "center",
11345        gap: "md",
11346        className: style_default19.list,
11347        children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("li", { className: style_default19.li, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
11348          Text,
11349          {
11350            variant: "body-md",
11351            className: style_default19.item,
11352            render: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
11353              Link,
11354              {
11355                variant: "unstyled",
11356                "aria-current": item.href === currentHref ? "page" : void 0,
11357                render: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(LinkComponent, { href: item.href })
11358              }
11359            ),
11360            children: item.label
11361          }
11362        ) }, item.href))
11363      }
11364    ) });
11365  };
11366  var navigation_default = Navigation;
11367  
11368  // packages/admin-ui/build-module/page/sidebar-toggle-slot.mjs
11369  var import_components = __toESM(require_components(), 1);
11370  var { Fill: SidebarToggleFill, Slot: SidebarToggleSlot } = (0, import_components.createSlotFill)("SidebarToggle");
11371  
11372  // packages/admin-ui/build-module/page/header.mjs
11373  var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
11374  var STYLE_HASH_ATTRIBUTE21 = "data-wp-hash";
11375  function getRuntime21() {
11376    const globalScope = globalThis;
11377    if (globalScope.__wpStyleRuntime) {
11378      return globalScope.__wpStyleRuntime;
11379    }
11380    globalScope.__wpStyleRuntime = {
11381      documents: /* @__PURE__ */ new Map(),
11382      styles: /* @__PURE__ */ new Map(),
11383      injectedStyles: /* @__PURE__ */ new WeakMap()
11384    };
11385    if (typeof document !== "undefined") {
11386      registerDocument21(document);
11387    }
11388    return globalScope.__wpStyleRuntime;
11389  }
11390  function documentContainsStyleHash21(targetDocument, hash) {
11391    if (!targetDocument.head) {
11392      return false;
11393    }
11394    for (const style of targetDocument.head.querySelectorAll(
11395      `style[$STYLE_HASH_ATTRIBUTE21}]`
11396    )) {
11397      if (style.getAttribute(STYLE_HASH_ATTRIBUTE21) === hash) {
11398        return true;
11399      }
11400    }
11401    return false;
11402  }
11403  function injectStyle21(targetDocument, hash, css) {
11404    if (!targetDocument.head) {
11405      return;
11406    }
11407    const runtime = getRuntime21();
11408    let injectedStyles = runtime.injectedStyles.get(targetDocument);
11409    if (!injectedStyles) {
11410      injectedStyles = /* @__PURE__ */ new Set();
11411      runtime.injectedStyles.set(targetDocument, injectedStyles);
11412    }
11413    if (injectedStyles.has(hash)) {
11414      return;
11415    }
11416    if (documentContainsStyleHash21(targetDocument, hash)) {
11417      injectedStyles.add(hash);
11418      return;
11419    }
11420    const style = targetDocument.createElement("style");
11421    style.setAttribute(STYLE_HASH_ATTRIBUTE21, hash);
11422    style.appendChild(targetDocument.createTextNode(css));
11423    targetDocument.head.appendChild(style);
11424    injectedStyles.add(hash);
11425  }
11426  function registerDocument21(targetDocument) {
11427    const runtime = getRuntime21();
11428    runtime.documents.set(
11429      targetDocument,
11430      (runtime.documents.get(targetDocument) ?? 0) + 1
11431    );
11432    for (const [hash, css] of runtime.styles) {
11433      injectStyle21(targetDocument, hash, css);
11434    }
11435    return () => {
11436      const count = runtime.documents.get(targetDocument);
11437      if (count === void 0) {
11438        return;
11439      }
11440      if (count <= 1) {
11441        runtime.documents.delete(targetDocument);
11442        return;
11443      }
11444      runtime.documents.set(targetDocument, count - 1);
11445    };
11446  }
11447  function registerStyle21(hash, css) {
11448    const runtime = getRuntime21();
11449    runtime.styles.set(hash, css);
11450    for (const targetDocument of runtime.documents.keys()) {
11451      injectStyle21(targetDocument, hash, css);
11452    }
11453  }
11454  if (typeof process === "undefined" || true) {
11455    registerStyle21("1f3750277d", "._956b6df0898efed0__page{text-wrap:pretty;background-color:var(--wpds-color-background-surface-neutral,#fcfcfc);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);display:flex;flex-flow:column;height:100%;position:relative;z-index:1}._0625b55e82a0d93d__header{background:var(--wpds-color-background-surface-neutral-strong,#fff);border-block-end:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral-weak,#f0f0f0);inset-block-start:0;padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px);position:sticky;z-index:1}.a43c44d5ae28b2e8__header-content{min-height:var(--wpds-dimension-size-md,32px)}.b7cb5b9daf3a3b25__header-actions{flex-shrink:0}._8bcd33103b451f30__header-lockup{min-width:0}._8113be94e7caf73c__header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._9a776c7f70996f61__header-visual{display:grid;flex-shrink:0;grid-template-columns:1fr;grid-template-rows:1fr;height:var(--wpds-dimension-size-sm,24px);width:var(--wpds-dimension-size-sm,24px);>*{grid-column:1/-1;grid-row:1/-1;max-height:100%;max-width:100%}}.d5e0920cd15d35bc__sidebar-toggle-slot:empty{display:none}._60fea2f6bf5319cd__header-subtitle{color:var(--wpds-color-foreground-content-neutral-weak,#707070);padding-block-end:var(--wpds-dimension-padding-xs,4px)}._0625b55e82a0d93d__header._4b0f17e503d11619__has-navigation,._0625b55e82a0d93d__header._4b0f17e503d11619__has-navigation ._60fea2f6bf5319cd__header-subtitle{padding-block-end:0}._673c99dcbfb58211__header-navigation{margin-block-start:var(--wpds-dimension-gap-md,12px)}.be5e57d029ec4036__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;&._128806d0b26e3a50__has-padding{padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px)}}");
11456  }
11457  var style_default20 = { "page": "_956b6df0898efed0__page", "header": "_0625b55e82a0d93d__header", "header-content": "a43c44d5ae28b2e8__header-content", "header-actions": "b7cb5b9daf3a3b25__header-actions", "header-lockup": "_8bcd33103b451f30__header-lockup", "header-title": "_8113be94e7caf73c__header-title", "header-visual": "_9a776c7f70996f61__header-visual", "sidebar-toggle-slot": "d5e0920cd15d35bc__sidebar-toggle-slot", "header-subtitle": "_60fea2f6bf5319cd__header-subtitle", "has-navigation": "_4b0f17e503d11619__has-navigation", "header-navigation": "_673c99dcbfb58211__header-navigation", "content": "be5e57d029ec4036__content", "has-padding": "_128806d0b26e3a50__has-padding" };
11458  function Header({
11459    headingLevel = 1,
11460    breadcrumbs,
11461    badges,
11462    visual,
11463    title,
11464    subTitle,
11465    actions,
11466    navigation,
11467    components,
11468    showSidebarToggle = true
11469  }) {
11470    const HeadingTag = `h$headingLevel}`;
11471    const hasNavigation = !!navigation?.items?.length;
11472    return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
11473      Stack,
11474      {
11475        direction: "column",
11476        className: clsx_default(
11477          style_default20.header,
11478          hasNavigation && style_default20["has-navigation"]
11479        ),
11480        children: [
11481          /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
11482            Stack,
11483            {
11484              className: style_default20["header-content"],
11485              direction: "row",
11486              gap: "sm",
11487              justify: "space-between",
11488              children: [
11489                /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
11490                  Stack,
11491                  {
11492                    direction: "row",
11493                    gap: "sm",
11494                    align: "center",
11495                    justify: "start",
11496                    className: style_default20["header-lockup"],
11497                    children: [
11498                      showSidebarToggle && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11499                        SidebarToggleSlot,
11500                        {
11501                          bubblesVirtually: true,
11502                          className: style_default20["sidebar-toggle-slot"]
11503                        }
11504                      ),
11505                      visual && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11506                        "div",
11507                        {
11508                          className: style_default20["header-visual"],
11509                          "aria-hidden": "true",
11510                          children: visual
11511                        }
11512                      ),
11513                      title && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11514                        Text,
11515                        {
11516                          className: style_default20["header-title"],
11517                          render: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(HeadingTag, {}),
11518                          variant: "heading-lg",
11519                          children: title
11520                        }
11521                      ),
11522                      breadcrumbs,
11523                      badges
11524                    ]
11525                  }
11526                ),
11527                actions && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11528                  Stack,
11529                  {
11530                    align: "center",
11531                    className: style_default20["header-actions"],
11532                    direction: "row",
11533                    gap: "sm",
11534                    children: actions
11535                  }
11536                )
11537              ]
11538            }
11539          ),
11540          subTitle && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11541            Text,
11542            {
11543              render: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", {}),
11544              variant: "body-md",
11545              className: style_default20["header-subtitle"],
11546              children: subTitle
11547            }
11548          ),
11549          hasNavigation && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11550            navigation_default,
11551            {
11552              ...navigation,
11553              linkComponent: components?.link,
11554              className: style_default20["header-navigation"]
11555            }
11556          )
11557        ]
11558      }
11559    );
11560  }
11561  
11562  // packages/admin-ui/build-module/page/index.mjs
11563  var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
11564  var STYLE_HASH_ATTRIBUTE22 = "data-wp-hash";
11565  function getRuntime22() {
11566    const globalScope = globalThis;
11567    if (globalScope.__wpStyleRuntime) {
11568      return globalScope.__wpStyleRuntime;
11569    }
11570    globalScope.__wpStyleRuntime = {
11571      documents: /* @__PURE__ */ new Map(),
11572      styles: /* @__PURE__ */ new Map(),
11573      injectedStyles: /* @__PURE__ */ new WeakMap()
11574    };
11575    if (typeof document !== "undefined") {
11576      registerDocument22(document);
11577    }
11578    return globalScope.__wpStyleRuntime;
11579  }
11580  function documentContainsStyleHash22(targetDocument, hash) {
11581    if (!targetDocument.head) {
11582      return false;
11583    }
11584    for (const style of targetDocument.head.querySelectorAll(
11585      `style[$STYLE_HASH_ATTRIBUTE22}]`
11586    )) {
11587      if (style.getAttribute(STYLE_HASH_ATTRIBUTE22) === hash) {
11588        return true;
11589      }
11590    }
11591    return false;
11592  }
11593  function injectStyle22(targetDocument, hash, css) {
11594    if (!targetDocument.head) {
11595      return;
11596    }
11597    const runtime = getRuntime22();
11598    let injectedStyles = runtime.injectedStyles.get(targetDocument);
11599    if (!injectedStyles) {
11600      injectedStyles = /* @__PURE__ */ new Set();
11601      runtime.injectedStyles.set(targetDocument, injectedStyles);
11602    }
11603    if (injectedStyles.has(hash)) {
11604      return;
11605    }
11606    if (documentContainsStyleHash22(targetDocument, hash)) {
11607      injectedStyles.add(hash);
11608      return;
11609    }
11610    const style = targetDocument.createElement("style");
11611    style.setAttribute(STYLE_HASH_ATTRIBUTE22, hash);
11612    style.appendChild(targetDocument.createTextNode(css));
11613    targetDocument.head.appendChild(style);
11614    injectedStyles.add(hash);
11615  }
11616  function registerDocument22(targetDocument) {
11617    const runtime = getRuntime22();
11618    runtime.documents.set(
11619      targetDocument,
11620      (runtime.documents.get(targetDocument) ?? 0) + 1
11621    );
11622    for (const [hash, css] of runtime.styles) {
11623      injectStyle22(targetDocument, hash, css);
11624    }
11625    return () => {
11626      const count = runtime.documents.get(targetDocument);
11627      if (count === void 0) {
11628        return;
11629      }
11630      if (count <= 1) {
11631        runtime.documents.delete(targetDocument);
11632        return;
11633      }
11634      runtime.documents.set(targetDocument, count - 1);
11635    };
11636  }
11637  function registerStyle22(hash, css) {
11638    const runtime = getRuntime22();
11639    runtime.styles.set(hash, css);
11640    for (const targetDocument of runtime.documents.keys()) {
11641      injectStyle22(targetDocument, hash, css);
11642    }
11643  }
11644  if (typeof process === "undefined" || true) {
11645    registerStyle22("1f3750277d", "._956b6df0898efed0__page{text-wrap:pretty;background-color:var(--wpds-color-background-surface-neutral,#fcfcfc);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);display:flex;flex-flow:column;height:100%;position:relative;z-index:1}._0625b55e82a0d93d__header{background:var(--wpds-color-background-surface-neutral-strong,#fff);border-block-end:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral-weak,#f0f0f0);inset-block-start:0;padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px);position:sticky;z-index:1}.a43c44d5ae28b2e8__header-content{min-height:var(--wpds-dimension-size-md,32px)}.b7cb5b9daf3a3b25__header-actions{flex-shrink:0}._8bcd33103b451f30__header-lockup{min-width:0}._8113be94e7caf73c__header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._9a776c7f70996f61__header-visual{display:grid;flex-shrink:0;grid-template-columns:1fr;grid-template-rows:1fr;height:var(--wpds-dimension-size-sm,24px);width:var(--wpds-dimension-size-sm,24px);>*{grid-column:1/-1;grid-row:1/-1;max-height:100%;max-width:100%}}.d5e0920cd15d35bc__sidebar-toggle-slot:empty{display:none}._60fea2f6bf5319cd__header-subtitle{color:var(--wpds-color-foreground-content-neutral-weak,#707070);padding-block-end:var(--wpds-dimension-padding-xs,4px)}._0625b55e82a0d93d__header._4b0f17e503d11619__has-navigation,._0625b55e82a0d93d__header._4b0f17e503d11619__has-navigation ._60fea2f6bf5319cd__header-subtitle{padding-block-end:0}._673c99dcbfb58211__header-navigation{margin-block-start:var(--wpds-dimension-gap-md,12px)}.be5e57d029ec4036__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto;&._128806d0b26e3a50__has-padding{padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px)}}");
11646  }
11647  var style_default21 = { "page": "_956b6df0898efed0__page", "header": "_0625b55e82a0d93d__header", "header-content": "a43c44d5ae28b2e8__header-content", "header-actions": "b7cb5b9daf3a3b25__header-actions", "header-lockup": "_8bcd33103b451f30__header-lockup", "header-title": "_8113be94e7caf73c__header-title", "header-visual": "_9a776c7f70996f61__header-visual", "sidebar-toggle-slot": "d5e0920cd15d35bc__sidebar-toggle-slot", "header-subtitle": "_60fea2f6bf5319cd__header-subtitle", "has-navigation": "_4b0f17e503d11619__has-navigation", "header-navigation": "_673c99dcbfb58211__header-navigation", "content": "be5e57d029ec4036__content", "has-padding": "_128806d0b26e3a50__has-padding" };
11648  function Page({
11649    headingLevel,
11650    breadcrumbs,
11651    badges,
11652    visual,
11653    title,
11654    subTitle,
11655    children,
11656    className,
11657    actions,
11658    navigation,
11659    components,
11660    ariaLabel,
11661    hasPadding = false,
11662    showSidebarToggle = true
11663  }) {
11664    const classes = clsx_default(style_default21.page, className);
11665    const effectiveAriaLabel = ariaLabel ?? (typeof title === "string" ? title : "");
11666    return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(navigable_region_default, { className: classes, ariaLabel: effectiveAriaLabel, children: [
11667      (title || breadcrumbs || badges || actions || visual || !!navigation?.items?.length) && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
11668        Header,
11669        {
11670          headingLevel,
11671          breadcrumbs,
11672          badges,
11673          visual,
11674          title,
11675          subTitle,
11676          actions,
11677          navigation,
11678          components,
11679          showSidebarToggle
11680        }
11681      ),
11682      hasPadding ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
11683        "div",
11684        {
11685          className: clsx_default(
11686            style_default21.content,
11687            style_default21["has-padding"]
11688          ),
11689          children
11690        }
11691      ) : children
11692    ] });
11693  }
11694  Page.SidebarToggleFill = SidebarToggleFill;
11695  var page_default = Page;
11696  
11697  // routes/connectors-home/stage.tsx
11698  var import_components4 = __toESM(require_components());
11699  var import_data4 = __toESM(require_data());
11700  var import_element37 = __toESM(require_element());
11701  var import_i18n10 = __toESM(require_i18n());
11702  var import_core_data3 = __toESM(require_core_data());
11703  import {
11704    privateApis as connectorsPrivateApis2
11705  } from "@wordpress/connectors";
11706  
11707  // routes/lock-unlock/index.ts
11708  var import_private_apis2 = __toESM(require_private_apis());
11709  var { lock: lock2, unlock: unlock2 } = (0, import_private_apis2.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
11710    "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
11711    "@wordpress/routes"
11712  );
11713  
11714  // routes/connectors-home/style.scss
11715  if (typeof document !== "undefined" && (typeof process === "undefined" || true) && !document.head.querySelector("style[data-wp-hash='87cd95b244']")) {
11716    const style = document.createElement("style");
11717    style.setAttribute("data-wp-hash", "87cd95b244");
11718    style.appendChild(document.createTextNode(".connectors-page{box-sizing:border-box;margin:0 auto;max-width:680px;padding:24px;width:100%}.connectors-page .components-item{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden;padding:20px;scroll-margin-top:120px}.connectors-page .connector-settings__error{color:#cc1818}.connectors-page .connector-settings .components-text-control__input{font-family:monospace;scroll-margin-top:120px}.connectors-page__file-mods-notice{margin-bottom:16px}.connectors-page--empty{align-items:center;display:flex;flex-direction:column;flex-grow:1;gap:32px;justify-content:center;text-align:center}.connectors-page .ai-plugin-callout{background-color:#e7d4e4;background-image:radial-gradient(ellipse 70% 120% at 18% 115%,rgba(202,158,198,.75) 0,rgba(202,158,198,0) 60%),radial-gradient(ellipse 55% 110% at 92% -15%,rgba(208,175,217,.7) 0,rgba(208,175,217,0) 65%),radial-gradient(ellipse 40% 85% at 58% -10%,rgba(170,130,184,.45) 0,rgba(170,130,184,0) 70%);border-radius:8px;overflow:hidden;padding:24px;padding-inline-end:150px;position:relative}[dir=rtl] .connectors-page .ai-plugin-callout{background-image:radial-gradient(ellipse 70% 120% at 82% 115%,rgba(202,158,198,.75) 0,rgba(202,158,198,0) 60%),radial-gradient(ellipse 55% 110% at 8% -15%,rgba(208,175,217,.7) 0,rgba(208,175,217,0) 65%),radial-gradient(ellipse 40% 85% at 42% -10%,rgba(170,130,184,.45) 0,rgba(170,130,184,0) 70%)}.connectors-page .ai-plugin-callout__content{align-items:flex-start;display:flex;flex-direction:column;gap:12px;padding-top:2px}.connectors-page .ai-plugin-callout__content p{font-size:13px;line-height:20px;margin:0}.connectors-page .ai-plugin-callout__decoration{height:110px;inset-inline-end:16px;position:absolute;top:12px;width:110px}.connectors-page__help-text{color:#2f2f2f}@media (max-width:680px){.connectors-page .ai-plugin-callout{padding:12px;padding-inline-end:100px}.connectors-page .ai-plugin-callout__decoration{height:75px;inset-inline-end:8px;top:8px;width:75px}}@media (max-width:480px){.connectors-page{padding:8px}.connectors-page .ai-plugin-callout{padding-inline-end:130px}.connectors-page .components-item{padding:12px}.connectors-page .components-item>.components-v-stack>.components-h-stack:first-child svg{height:32px;width:32px}.connectors-page .components-item>.components-v-stack>.components-h-stack:first-child>.components-h-stack:last-child{align-items:flex-end;flex-direction:column}}"));
11719    document.head.appendChild(style);
11720  }
11721  
11722  // routes/connectors-home/ai-plugin-callout.tsx
11723  var import_components3 = __toESM(require_components());
11724  var import_core_data2 = __toESM(require_core_data());
11725  var import_data3 = __toESM(require_data());
11726  var import_element36 = __toESM(require_element());
11727  var import_i18n9 = __toESM(require_i18n());
11728  var import_notices2 = __toESM(require_notices());
11729  var import_url = __toESM(require_url());
11730  
11731  // routes/connectors-home/default-connectors.tsx
11732  var import_components2 = __toESM(require_components());
11733  var import_element35 = __toESM(require_element());
11734  var import_data2 = __toESM(require_data());
11735  var import_i18n8 = __toESM(require_i18n());
11736  import {
11737    __experimentalRegisterConnector as registerConnector,
11738    __experimentalConnectorItem as ConnectorItem,
11739    __experimentalDefaultConnectorSettings as DefaultConnectorSettings,
11740    __experimentalApplicationPasswordConnectorSettings as ApplicationPasswordConnectorSettings,
11741    privateApis as connectorsPrivateApis
11742  } from "@wordpress/connectors";
11743  
11744  // routes/connectors-home/use-connector-plugin.ts
11745  var import_core_data = __toESM(require_core_data());
11746  var import_data = __toESM(require_data());
11747  var import_element34 = __toESM(require_element());
11748  var import_i18n7 = __toESM(require_i18n());
11749  var import_notices = __toESM(require_notices());
11750  function useConnectorPlugin({
11751    file: pluginFileFromServer,
11752    settingName,
11753    connectorName,
11754    isInstalled,
11755    isActivated,
11756    keySource = "none",
11757    initialIsConnected = false
11758  }) {
11759    const [isExpanded, setIsExpanded] = (0, import_element34.useState)(false);
11760    const [isBusy, setIsBusy] = (0, import_element34.useState)(false);
11761    const [connectedState, setConnectedState] = (0, import_element34.useState)(initialIsConnected);
11762    const [pluginStatusOverride, setPluginStatusOverride] = (0, import_element34.useState)(null);
11763    const pluginBasename = pluginFileFromServer?.replace(/\.php$/, "");
11764    const pluginSlug = pluginBasename?.includes("/") ? pluginBasename.split("/")[0] : pluginBasename;
11765    const {
11766      derivedPluginStatus,
11767      canManagePlugins,
11768      currentApiKey,
11769      currentUsername,
11770      hasStoredCredentials,
11771      hasResolvedSettings,
11772      canInstallPlugins
11773    } = (0, import_data.useSelect)(
11774      (select2) => {
11775        const store2 = select2(import_core_data.store);
11776        const siteSettings = store2.getEntityRecord("root", "site");
11777        const settingValue = siteSettings?.[settingName];
11778        const apiKey = typeof settingValue === "string" ? settingValue : "";
11779        const credentials = typeof settingValue === "object" && settingValue !== null ? settingValue : void 0;
11780        const credentialsExist = credentials !== void 0 ? !!credentials.username && !!credentials.password : !!apiKey;
11781        const settingsResolved = store2.hasFinishedResolution(
11782          "getEntityRecord",
11783          ["root", "site"]
11784        );
11785        const canCreate = !!store2.canUser("create", {
11786          kind: "root",
11787          name: "plugin"
11788        });
11789        const common = {
11790          currentApiKey: apiKey,
11791          currentUsername: credentials?.username ?? "",
11792          hasStoredCredentials: credentialsExist,
11793          hasResolvedSettings: settingsResolved,
11794          canInstallPlugins: canCreate
11795        };
11796        if (!pluginFileFromServer) {
11797          return {
11798            ...common,
11799            derivedPluginStatus: settingsResolved ? "active" : "checking",
11800            canManagePlugins: void 0
11801          };
11802        }
11803        const plugin = store2.getEntityRecord(
11804          "root",
11805          "plugin",
11806          pluginBasename
11807        );
11808        const hasFinished = store2.hasFinishedResolution(
11809          "getEntityRecord",
11810          ["root", "plugin", pluginBasename]
11811        );
11812        if (!hasFinished) {
11813          return {
11814            ...common,
11815            derivedPluginStatus: "checking",
11816            canManagePlugins: void 0
11817          };
11818        }
11819        if (plugin) {
11820          const isPluginActive = plugin.status === "active" || plugin.status === "network-active";
11821          return {
11822            ...common,
11823            derivedPluginStatus: isPluginActive ? "active" : "inactive",
11824            canManagePlugins: true
11825          };
11826        }
11827        let status = "not-installed";
11828        if (isActivated) {
11829          status = "active";
11830        } else if (isInstalled) {
11831          status = "inactive";
11832        }
11833        return {
11834          ...common,
11835          derivedPluginStatus: status,
11836          canManagePlugins: false
11837        };
11838      },
11839      [
11840        pluginFileFromServer,
11841        pluginBasename,
11842        settingName,
11843        isInstalled,
11844        isActivated
11845      ]
11846    );
11847    const pluginStatus = pluginStatusOverride ?? derivedPluginStatus;
11848    const canActivatePlugins = canManagePlugins;
11849    const isConnected = pluginStatus === "active" && connectedState || // After install/activate, if settings re-fetch reveals stored credentials,
11850    // update connected state (mirrors what the server would report on page load).
11851    pluginStatusOverride === "active" && hasStoredCredentials;
11852    const { saveEntityRecord, invalidateResolution } = (0, import_data.useDispatch)(import_core_data.store);
11853    const { createSuccessNotice, createErrorNotice } = (0, import_data.useDispatch)(import_notices.store);
11854    const saveConnectorSetting = (value) => saveEntityRecord(
11855      "root",
11856      "site",
11857      { [settingName]: value },
11858      { throwOnError: true }
11859    );
11860    const createConnectedNotice = () => {
11861      createSuccessNotice(
11862        (0, import_i18n7.sprintf)(
11863          /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11864          (0, import_i18n7.__)("%s connected successfully."),
11865          connectorName
11866        ),
11867        {
11868          id: "connector-connect-success",
11869          type: "snackbar"
11870        }
11871      );
11872    };
11873    const createDisconnectedNotice = () => {
11874      createSuccessNotice(
11875        (0, import_i18n7.sprintf)(
11876          /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11877          (0, import_i18n7.__)("%s disconnected."),
11878          connectorName
11879        ),
11880        {
11881          id: "connector-disconnect-success",
11882          type: "snackbar"
11883        }
11884      );
11885    };
11886    const createDisconnectErrorNotice = () => {
11887      createErrorNotice(
11888        (0, import_i18n7.sprintf)(
11889          /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11890          (0, import_i18n7.__)("Failed to disconnect %s."),
11891          connectorName
11892        ),
11893        {
11894          id: "connector-disconnect-error",
11895          type: "snackbar"
11896        }
11897      );
11898    };
11899    const installPlugin = async () => {
11900      if (!pluginSlug) {
11901        return;
11902      }
11903      setIsBusy(true);
11904      try {
11905        await saveEntityRecord(
11906          "root",
11907          "plugin",
11908          { slug: pluginSlug, status: "active" },
11909          { throwOnError: true }
11910        );
11911        setPluginStatusOverride("active");
11912        invalidateResolution("getEntityRecord", ["root", "site"]);
11913        setIsExpanded(true);
11914        createSuccessNotice(
11915          (0, import_i18n7.sprintf)(
11916            /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11917            (0, import_i18n7.__)("Plugin for %s installed and activated successfully."),
11918            connectorName
11919          ),
11920          {
11921            id: "connector-plugin-install-success",
11922            type: "snackbar"
11923          }
11924        );
11925      } catch {
11926        createErrorNotice(
11927          (0, import_i18n7.sprintf)(
11928            /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11929            (0, import_i18n7.__)("Failed to install plugin for %s."),
11930            connectorName
11931          ),
11932          {
11933            id: "connector-plugin-install-error",
11934            type: "snackbar"
11935          }
11936        );
11937      } finally {
11938        setIsBusy(false);
11939      }
11940    };
11941    const activatePlugin = async () => {
11942      if (!pluginFileFromServer) {
11943        return;
11944      }
11945      setIsBusy(true);
11946      try {
11947        await saveEntityRecord(
11948          "root",
11949          "plugin",
11950          {
11951            plugin: pluginBasename,
11952            status: "active"
11953          },
11954          { throwOnError: true }
11955        );
11956        setPluginStatusOverride("active");
11957        invalidateResolution("getEntityRecord", ["root", "site"]);
11958        setIsExpanded(true);
11959        createSuccessNotice(
11960          (0, import_i18n7.sprintf)(
11961            /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11962            (0, import_i18n7.__)("Plugin for %s activated successfully."),
11963            connectorName
11964          ),
11965          {
11966            id: "connector-plugin-activate-success",
11967            type: "snackbar"
11968          }
11969        );
11970      } catch {
11971        createErrorNotice(
11972          (0, import_i18n7.sprintf)(
11973            /* translators: %s: Name of the connector (e.g. "OpenAI"). */
11974            (0, import_i18n7.__)("Failed to activate plugin for %s."),
11975            connectorName
11976          ),
11977          {
11978            id: "connector-plugin-activate-error",
11979            type: "snackbar"
11980          }
11981        );
11982      } finally {
11983        setIsBusy(false);
11984      }
11985    };
11986    const handleButtonClick = () => {
11987      if (pluginStatus === "not-installed") {
11988        if (canInstallPlugins === false) {
11989          return;
11990        }
11991        installPlugin();
11992      } else if (pluginStatus === "inactive") {
11993        if (canActivatePlugins === false) {
11994          return;
11995        }
11996        activatePlugin();
11997      } else {
11998        setIsExpanded(!isExpanded);
11999      }
12000    };
12001    const getButtonLabel = () => {
12002      if (isBusy) {
12003        return pluginStatus === "not-installed" ? (0, import_i18n7.__)("Installing\u2026") : (0, import_i18n7.__)("Activating\u2026");
12004      }
12005      if (isExpanded) {
12006        return (0, import_i18n7.__)("Cancel");
12007      }
12008      if (isConnected) {
12009        return (0, import_i18n7.__)("Edit");
12010      }
12011      switch (pluginStatus) {
12012        case "checking":
12013          return (0, import_i18n7.__)("Checking\u2026");
12014        case "not-installed":
12015          return (0, import_i18n7.__)("Install");
12016        case "inactive":
12017          return (0, import_i18n7.__)("Activate");
12018        case "active":
12019          return (0, import_i18n7.__)("Set up");
12020      }
12021    };
12022    const saveApiKey = async (apiKey) => {
12023      const previousApiKey = currentApiKey;
12024      try {
12025        const updatedRecord = await saveConnectorSetting(apiKey);
12026        const record = updatedRecord;
12027        const returnedKey = record?.[settingName];
12028        if (apiKey && (returnedKey === previousApiKey || !returnedKey)) {
12029          throw new Error(
12030            "It was not possible to connect to the provider using this key."
12031          );
12032        }
12033        setConnectedState(true);
12034        createConnectedNotice();
12035      } catch (error2) {
12036        console.error("Failed to save API key:", error2);
12037        throw error2;
12038      }
12039    };
12040    const saveCredentials = async ({
12041      username,
12042      applicationPassword
12043    }) => {
12044      try {
12045        const updatedRecord = await saveConnectorSetting({
12046          username,
12047          password: applicationPassword
12048        });
12049        const record = updatedRecord;
12050        const credentials = record?.[settingName];
12051        if (!credentials?.username || !credentials?.password) {
12052          throw new Error(
12053            (0, import_i18n7.__)("It was not possible to save these credentials.")
12054          );
12055        }
12056        setConnectedState(true);
12057        createConnectedNotice();
12058      } catch (error2) {
12059        console.error("Failed to save credentials:", error2);
12060        throw error2;
12061      }
12062    };
12063    const removeApiKey = async () => {
12064      try {
12065        await saveConnectorSetting("");
12066        setConnectedState(false);
12067        createDisconnectedNotice();
12068      } catch (error2) {
12069        console.error("Failed to remove API key:", error2);
12070        createDisconnectErrorNotice();
12071      }
12072    };
12073    const removeCredentials = async () => {
12074      try {
12075        await saveConnectorSetting({
12076          username: "",
12077          password: ""
12078        });
12079        setConnectedState(false);
12080        createDisconnectedNotice();
12081      } catch (error2) {
12082        console.error("Failed to remove credentials:", error2);
12083        createDisconnectErrorNotice();
12084      }
12085    };
12086    return {
12087      pluginStatus,
12088      canInstallPlugins,
12089      canActivatePlugins,
12090      isExpanded,
12091      setIsExpanded,
12092      isBusy,
12093      isConnected,
12094      currentApiKey,
12095      currentUsername,
12096      hasResolvedSettings,
12097      keySource,
12098      handleButtonClick,
12099      getButtonLabel,
12100      saveApiKey,
12101      removeApiKey,
12102      saveCredentials,
12103      removeCredentials
12104    };
12105  }
12106  
12107  // routes/connectors-home/logos.tsx
12108  var import_jsx_runtime41 = __toESM(require_jsx_runtime());
12109  var OpenAILogo = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12110    "svg",
12111    {
12112      width: "40",
12113      height: "40",
12114      viewBox: "0 0 24 24",
12115      fill: "none",
12116      xmlns: "http://www.w3.org/2000/svg",
12117      "aria-hidden": "true",
12118      children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12119        "path",
12120        {
12121          d: "M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364l2.0201-1.1685a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.4043-.6813zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z",
12122          fill: "currentColor"
12123        }
12124      )
12125    }
12126  );
12127  var ClaudeLogo = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12128    "svg",
12129    {
12130      width: "40",
12131      height: "40",
12132      viewBox: "0 0 32 32",
12133      fill: "none",
12134      xmlns: "http://www.w3.org/2000/svg",
12135      "aria-hidden": "true",
12136      children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12137        "path",
12138        {
12139          d: "M6.2 21.024L12.416 17.536L12.52 17.232L12.416 17.064H12.112L11.072 17L7.52 16.904L4.44 16.776L1.456 16.616L0.704 16.456L0 15.528L0.072 15.064L0.704 14.64L1.608 14.72L3.608 14.856L6.608 15.064L8.784 15.192L12.008 15.528H12.52L12.592 15.32L12.416 15.192L12.28 15.064L9.176 12.96L5.816 10.736L4.056 9.456L3.104 8.808L2.624 8.2L2.416 6.872L3.28 5.92L4.44 6L4.736 6.08L5.912 6.984L8.424 8.928L11.704 11.344L12.184 11.744L12.376 11.608L12.4 11.512L12.184 11.152L10.4 7.928L8.496 4.648L7.648 3.288L7.424 2.472C7.344 2.136 7.288 1.856 7.288 1.512L8.272 0.176L8.816 0L10.128 0.176L10.68 0.656L11.496 2.52L12.816 5.456L14.864 9.448L15.464 10.632L15.784 11.728L15.904 12.064H16.112V11.872L16.28 9.624L16.592 6.864L16.896 3.312L17 2.312L17.496 1.112L18.48 0.464L19.248 0.832L19.88 1.736L19.792 2.32L19.416 4.76L18.68 8.584L18.2 11.144H18.48L18.8 10.824L20.096 9.104L22.272 6.384L23.232 5.304L24.352 4.112L25.072 3.544H26.432L27.432 5.032L26.984 6.568L25.584 8.344L24.424 9.848L22.76 12.088L21.72 13.88L21.816 14.024L22.064 14L25.824 13.2L27.856 12.832L30.28 12.416L31.376 12.928L31.496 13.448L31.064 14.512L28.472 15.152L25.432 15.76L20.904 16.832L20.848 16.872L20.912 16.952L22.952 17.144L23.824 17.192H25.96L29.936 17.488L30.976 18.176L31.6 19.016L31.496 19.656L29.896 20.472L27.736 19.96L22.696 18.76L20.968 18.328H20.728V18.472L22.168 19.88L24.808 22.264L28.112 25.336L28.28 26.096L27.856 26.696L27.408 26.632L24.504 24.448L23.384 23.464L20.848 21.328H20.68V21.552L21.264 22.408L24.352 27.048L24.512 28.472L24.288 28.936L23.488 29.216L22.608 29.056L20.8 26.52L18.936 23.664L17.432 21.104L17.248 21.208L16.36 30.768L15.944 31.256L14.984 31.624L14.184 31.016L13.76 30.032L14.184 28.088L14.696 25.552L15.112 23.536L15.488 21.032L15.712 20.2L15.696 20.144L15.512 20.168L13.624 22.76L10.752 26.64L8.48 29.072L7.936 29.288L6.992 28.8L7.08 27.928L7.608 27.152L10.752 23.152L12.648 20.672L13.872 19.24L13.864 19.032H13.792L5.44 24.456L3.952 24.648L3.312 24.048L3.392 23.064L3.696 22.744L6.208 21.016L6.2 21.024Z",
12140          fill: "#D97757"
12141        }
12142      )
12143    }
12144  );
12145  var DefaultConnectorLogo = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
12146    "svg",
12147    {
12148      width: "40",
12149      height: "40",
12150      viewBox: "0 0 32 32",
12151      fill: "none",
12152      xmlns: "http://www.w3.org/2000/svg",
12153      "aria-hidden": "true",
12154      children: [
12155        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12156          "path",
12157          {
12158            d: "M0 4C0 1.79086 1.79086 0 4 0H28C30.2091 0 32 1.79086 32 4V28C32 30.2091 30.2091 32 28 32H4C1.79086 32 0 30.2091 0 28V4Z",
12159            fill: "#F0F0F0"
12160          }
12161        ),
12162        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12163          "path",
12164          {
12165            d: "M14.5 8V12H17.5V8H19V12H20.5C20.7652 12 21.0196 12.1054 21.2071 12.2929C21.3946 12.4804 21.5 12.7348 21.5 13V17L18.5 21V23C18.5 23.2652 18.3946 23.5196 18.2071 23.7071C18.0196 23.8946 17.7652 24 17.5 24H14.5C14.2348 24 13.9804 23.8946 13.7929 23.7071C13.6054 23.5196 13.5 23.2652 13.5 23V21L10.5 17V13C10.5 12.7348 10.6054 12.4804 10.7929 12.2929C10.9804 12.1054 11.2348 12 11.5 12H13V8H14.5ZM15 20.5V22.5H17V20.5L20 16.5V13.5H12V16.5L15 20.5Z",
12166            fill: "#949494"
12167          }
12168        )
12169      ]
12170    }
12171  );
12172  var AkismetLogo = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
12173    "svg",
12174    {
12175      width: "40",
12176      height: "40",
12177      viewBox: "0 0 44 44",
12178      fill: "none",
12179      xmlns: "http://www.w3.org/2000/svg",
12180      "aria-hidden": "true",
12181      children: [
12182        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("rect", { width: "44", height: "44", fill: "#357B49", rx: "6" }),
12183        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12184          "path",
12185          {
12186            fill: "#fff",
12187            fillRule: "evenodd",
12188            d: "m29.746 28.31-6.392-16.797c-.152-.397-.305-.672-.789-.675-.673 0-1.408.611-1.746 1.316l-7.378 16.154c-.072.16-.143.311-.214.454-.5.995-1.045 1.546-2.357 1.626a.399.399 0 0 0-.16.033l-.01.004a.399.399 0 0 0-.23.392v.01c0 .054.01.106.03.155l.004.01a.416.416 0 0 0 .394.252h6.212a.417.417 0 0 0 .307-.12.416.416 0 0 0 .124-.305.398.398 0 0 0-.105-.302.399.399 0 0 0-.294-.127c-.757 0-2.197-.062-2.197-1.164.02-.318.103-.63.245-.916l1.399-3.152c.52-1.163 1.654-1.163 2.572-1.163h5.843c.023 0 .044 0 .062.003.13.014.16.081.214.242l1.534 4.07a2.857 2.857 0 0 1 .216 1.04c0 .054-.003.104-.01.153-.09.726-.831.887-1.49.887a.4.4 0 0 0-.294.127l-.007.008-.007.008a.401.401 0 0 0-.092.286v.01c0 .054.01.106.03.155l.005.01a.42.42 0 0 0 .395.252h7.011a.413.413 0 0 0 .279-.13.412.412 0 0 0 .11-.297.387.387 0 0 0-.09-.294.388.388 0 0 0-.277-.135c-1.448-.122-2.295-.643-2.847-2.08Zm-11.985-5.844 2.847-6.304c.361-.728.659-1.486.889-2.265 0-.06.03-.092.06-.092s.061.032.061.091c.02.122.045.247.073.374.197.888.584 1.878.914 2.723l.176.453 1.684 4.529a.927.927 0 0 1 .092.4.473.473 0 0 1-.009.094c-.041.202-.228.272-.602.272h-6.063c-.122 0-.184-.03-.184-.092a.36.36 0 0 1 .062-.183Zm17.107-.721c0 .786-.446 1.231-1.25 1.231-.806 0-1.125-.409-1.125-1.034 0-.786.465-1.231 1.25-1.231.785 0 1.125.427 1.125 1.034ZM9.629 23.002c.803 0 1.25-.447 1.25-1.231 0-.607-.343-1.036-1.128-1.036-.785 0-1.25.447-1.25 1.231 0 .625.325 1.036 1.128 1.036Z",
12189            clipRule: "evenodd"
12190          }
12191        )
12192      ]
12193    }
12194  );
12195  var GeminiLogo = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
12196    "svg",
12197    {
12198      width: "40",
12199      height: "40",
12200      style: { flex: "none", lineHeight: 1 },
12201      viewBox: "0 0 24 24",
12202      xmlns: "http://www.w3.org/2000/svg",
12203      "aria-hidden": "true",
12204      children: [
12205        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12206          "path",
12207          {
12208            d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",
12209            fill: "#3186FF"
12210          }
12211        ),
12212        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12213          "path",
12214          {
12215            d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",
12216            fill: "url(#lobe-icons-gemini-fill-0)"
12217          }
12218        ),
12219        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12220          "path",
12221          {
12222            d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",
12223            fill: "url(#lobe-icons-gemini-fill-1)"
12224          }
12225        ),
12226        /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
12227          "path",
12228          {
12229            d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z",
12230            fill: "url(#lobe-icons-gemini-fill-2)"
12231          }
12232        ),
12233        /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("defs", { children: [
12234          /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
12235            "linearGradient",
12236            {
12237              gradientUnits: "userSpaceOnUse",
12238              id: "lobe-icons-gemini-fill-0",
12239              x1: "7",
12240              x2: "11",
12241              y1: "15.5",
12242              y2: "12",
12243              children: [
12244                /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("stop", { stopColor: "#08B962" }),
12245                /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("stop", { offset: "1", stopColor: "#08B962", stopOpacity: "0" })
12246              ]
12247            }
12248          ),
12249          /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
12250            "linearGradient",
12251            {
12252              gradientUnits: "userSpaceOnUse",
12253              id: "lobe-icons-gemini-fill-1",
12254              x1: "8",
12255              x2: "11.5",
12256              y1: "5.5",
12257              y2: "11",
12258              children: [
12259                /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("stop", { stopColor: "#F94543" }),
12260                /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("stop", { offset: "1", stopColor: "#F94543", stopOpacity: "0" })
12261              ]
12262            }
12263          ),
12264          /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
12265            "linearGradient",
12266            {
12267              gradientUnits: "userSpaceOnUse",
12268              id: "lobe-icons-gemini-fill-2",
12269              x1: "3.5",
12270              x2: "17.5",
12271              y1: "13.5",
12272              y2: "12",
12273              children: [
12274                /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("stop", { stopColor: "#FABC12" }),
12275                /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("stop", { offset: ".46", stopColor: "#FABC12", stopOpacity: "0" })
12276              ]
12277            }
12278          )
12279        ] })
12280      ]
12281    }
12282  );
12283  
12284  // routes/connectors-home/default-connectors.tsx
12285  var import_jsx_runtime42 = __toESM(require_jsx_runtime());
12286  var { store: connectorsStore } = unlock2(connectorsPrivateApis);
12287  function getConnectorScriptModuleData() {
12288    try {
12289      const script = document.querySelector(
12290        'script[id="wp-script-module-data-options-connectors-wp-admin"]'
12291      );
12292      if (script instanceof HTMLScriptElement) {
12293        return JSON.parse(script.text);
12294      }
12295    } catch {
12296    }
12297    return {};
12298  }
12299  function getConnectorData() {
12300    return getConnectorScriptModuleData().connectors ?? {};
12301  }
12302  function getIsFileModDisabled() {
12303    return !!getConnectorScriptModuleData().isFileModDisabled;
12304  }
12305  var CONNECTOR_LOGOS = {
12306    google: GeminiLogo,
12307    openai: OpenAILogo,
12308    anthropic: ClaudeLogo,
12309    akismet: AkismetLogo
12310  };
12311  function getConnectorLogo(connectorId, logoUrl) {
12312    if (logoUrl) {
12313      return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("img", { src: logoUrl, alt: "", width: 40, height: 40 });
12314    }
12315    const Logo = CONNECTOR_LOGOS[connectorId];
12316    if (Logo) {
12317      return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Logo, {});
12318    }
12319    return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DefaultConnectorLogo, {});
12320  }
12321  var ConnectedBadge = () => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12322    "span",
12323    {
12324      style: {
12325        color: "#345b37",
12326        backgroundColor: "#eff8f0",
12327        padding: "4px 12px",
12328        borderRadius: "2px",
12329        fontSize: "13px",
12330        fontWeight: "var(--wpds-typography-font-weight-emphasis)",
12331        whiteSpace: "nowrap"
12332      },
12333      children: (0, import_i18n8.__)("Connected")
12334    }
12335  );
12336  var PluginDirectoryLink = ({ slug }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12337    Link,
12338    {
12339      href: (0, import_i18n8.sprintf)(
12340        /* translators: %s: plugin slug. */
12341        (0, import_i18n8.__)("https://wordpress.org/plugins/%s/"),
12342        slug
12343      ),
12344      openInNewTab: true,
12345      children: (0, import_i18n8.__)("Learn more")
12346    }
12347  );
12348  var UnavailableActionBadge = () => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Badge, { children: (0, import_i18n8.__)("Not available") });
12349  function ConnectorActionArea({
12350    isConnected,
12351    showUnavailableBadge,
12352    pluginSlug,
12353    isExpanded,
12354    isBusy,
12355    pluginStatus,
12356    actionButtonRef,
12357    handleButtonClick,
12358    getButtonLabel
12359  }) {
12360    return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_components2.__experimentalHStack, { spacing: 3, expanded: false, children: [
12361      isConnected && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ConnectedBadge, {}),
12362      showUnavailableBadge && (pluginSlug ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(PluginDirectoryLink, { slug: pluginSlug }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(UnavailableActionBadge, {})),
12363      !showUnavailableBadge && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12364        import_components2.Button,
12365        {
12366          ref: actionButtonRef,
12367          variant: isExpanded || isConnected ? "tertiary" : "secondary",
12368          size: "compact",
12369          onClick: handleButtonClick,
12370          disabled: pluginStatus === "checking" || isBusy,
12371          isBusy,
12372          accessibleWhenDisabled: true,
12373          children: getButtonLabel()
12374        }
12375      )
12376    ] });
12377  }
12378  function getPluginSlug(pluginFile) {
12379    const pluginBasename = pluginFile?.replace(/\.php$/, "");
12380    return pluginBasename?.includes("/") ? pluginBasename.split("/")[0] : pluginBasename;
12381  }
12382  function ApiKeyConnector({
12383    name,
12384    description,
12385    logo,
12386    authentication,
12387    plugin
12388  }) {
12389    const auth = authentication?.method === "api_key" ? authentication : void 0;
12390    const settingName = auth?.settingName ?? "";
12391    const helpUrl = auth?.credentialsUrl ?? void 0;
12392    const pluginSlug = getPluginSlug(plugin?.file);
12393    const {
12394      pluginStatus,
12395      canInstallPlugins,
12396      canActivatePlugins,
12397      isExpanded,
12398      setIsExpanded,
12399      isBusy,
12400      isConnected,
12401      currentApiKey,
12402      hasResolvedSettings,
12403      keySource,
12404      handleButtonClick,
12405      getButtonLabel,
12406      saveApiKey,
12407      removeApiKey
12408    } = useConnectorPlugin({
12409      file: plugin?.file,
12410      settingName,
12411      connectorName: name,
12412      isInstalled: plugin?.isInstalled,
12413      isActivated: plugin?.isActivated,
12414      keySource: auth?.keySource,
12415      initialIsConnected: auth?.isConnected
12416    });
12417    const isExternallyConfigured = keySource === "env" || keySource === "constant";
12418    const isReadOnly = isConnected || isExternallyConfigured || !!currentApiKey;
12419    const showUnavailableBadge = pluginStatus === "not-installed" && canInstallPlugins === false || pluginStatus === "inactive" && canActivatePlugins === false;
12420    const actionButtonRef = (0, import_element35.useRef)(null);
12421    return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12422      ConnectorItem,
12423      {
12424        className: pluginSlug ? `connector-item--$pluginSlug}` : void 0,
12425        logo,
12426        name,
12427        description,
12428        actionArea: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12429          ConnectorActionArea,
12430          {
12431            isConnected,
12432            showUnavailableBadge,
12433            pluginSlug,
12434            isExpanded,
12435            isBusy,
12436            pluginStatus,
12437            actionButtonRef,
12438            handleButtonClick,
12439            getButtonLabel
12440          }
12441        ),
12442        children: isExpanded && pluginStatus === "active" && hasResolvedSettings && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12443          DefaultConnectorSettings,
12444          {
12445            initialValue: isExternallyConfigured ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" : currentApiKey,
12446            helpUrl,
12447            readOnly: isReadOnly,
12448            keySource,
12449            onRemove: isExternallyConfigured ? void 0 : async () => {
12450              await removeApiKey();
12451              actionButtonRef.current?.focus();
12452            },
12453            onSave: async (apiKey) => {
12454              await saveApiKey(apiKey);
12455              setIsExpanded(false);
12456              actionButtonRef.current?.focus();
12457            }
12458          },
12459          isReadOnly ? "read-only" : "setup"
12460        )
12461      }
12462    );
12463  }
12464  function ApplicationPasswordConnector({
12465    name,
12466    description,
12467    logo,
12468    authentication,
12469    plugin
12470  }) {
12471    const auth = authentication?.method === "application_password" ? authentication : void 0;
12472    const settingName = auth?.settingName ?? "";
12473    const helpUrl = auth?.credentialsUrl ?? void 0;
12474    const pluginSlug = getPluginSlug(plugin?.file);
12475    const {
12476      pluginStatus,
12477      canInstallPlugins,
12478      canActivatePlugins,
12479      isExpanded,
12480      setIsExpanded,
12481      isBusy,
12482      isConnected,
12483      currentUsername,
12484      hasResolvedSettings,
12485      keySource,
12486      handleButtonClick,
12487      getButtonLabel,
12488      saveCredentials,
12489      removeCredentials
12490    } = useConnectorPlugin({
12491      file: plugin?.file,
12492      settingName,
12493      connectorName: name,
12494      isInstalled: plugin?.isInstalled,
12495      isActivated: plugin?.isActivated,
12496      keySource: auth?.keySource,
12497      initialIsConnected: auth?.isConnected
12498    });
12499    const isExternallyConfigured = keySource === "env" || keySource === "constant";
12500    const actionButtonRef = (0, import_element35.useRef)(null);
12501    const showUnavailableBadge = pluginStatus === "not-installed" && canInstallPlugins === false || pluginStatus === "inactive" && canActivatePlugins === false;
12502    return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12503      ConnectorItem,
12504      {
12505        className: pluginSlug ? `connector-item--$pluginSlug}` : void 0,
12506        logo,
12507        name,
12508        description,
12509        actionArea: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12510          ConnectorActionArea,
12511          {
12512            isConnected,
12513            showUnavailableBadge,
12514            pluginSlug,
12515            isExpanded,
12516            isBusy,
12517            pluginStatus,
12518            actionButtonRef,
12519            handleButtonClick,
12520            getButtonLabel
12521          }
12522        ),
12523        children: isExpanded && pluginStatus === "active" && hasResolvedSettings && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
12524          ApplicationPasswordConnectorSettings,
12525          {
12526            initialUsername: isExternallyConfigured ? "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" : currentUsername,
12527            helpUrl,
12528            readOnly: isConnected || isExternallyConfigured,
12529            keySource,
12530            onRemove: isExternallyConfigured ? void 0 : async () => {
12531              await removeCredentials();
12532              actionButtonRef.current?.focus();
12533            },
12534            onSave: async (credentials) => {
12535              await saveCredentials(credentials);
12536              setIsExpanded(false);
12537              actionButtonRef.current?.focus();
12538            }
12539          },
12540          isConnected ? "connected" : "setup"
12541        )
12542      }
12543    );
12544  }
12545  function registerDefaultConnectors() {
12546    const connectors = getConnectorData();
12547    const sanitize = (s) => s.replace(/[^a-z0-9-_]/gi, "-");
12548    for (const [connectorId, data] of Object.entries(connectors)) {
12549      if (connectorId === "akismet" && !data.plugin?.isInstalled) {
12550        continue;
12551      }
12552      const { authentication } = data;
12553      const connectorName = sanitize(connectorId);
12554      const args = {
12555        name: data.name,
12556        description: data.description,
12557        type: data.type,
12558        logo: getConnectorLogo(connectorId, data.logoUrl),
12559        authentication,
12560        plugin: data.plugin
12561      };
12562      const existing = unlock2((0, import_data2.select)(connectorsStore)).getConnector(
12563        connectorName
12564      );
12565      if (authentication.method === "api_key" && !existing?.render) {
12566        args.render = ApiKeyConnector;
12567      } else if (authentication.method === "application_password" && !existing?.render) {
12568        args.render = ApplicationPasswordConnector;
12569      }
12570      registerConnector(connectorName, args);
12571    }
12572  }
12573  
12574  // routes/connectors-home/wp-logo-decoration.tsx
12575  var import_jsx_runtime43 = __toESM(require_jsx_runtime());
12576  function WpLogoDecoration() {
12577    return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "ai-plugin-callout__decoration", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
12578      "svg",
12579      {
12580        viewBox: "0 0 248 248",
12581        xmlns: "http://www.w3.org/2000/svg",
12582        xmlnsXlink: "http://www.w3.org/1999/xlink",
12583        focusable: "false",
12584        style: { width: "100%", height: "100%" },
12585        children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
12586          "image",
12587          {
12588            href: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAQAElEQVR4AezdC3ojWW5tYflOzPbIbI/M9sh8+WdrdZ+KpiiKL5FB5KedwN7AeSFIpHRYmfX/PubXVGAqMBV4kQpMw3qRBzXbnApMBT4+pmHNq2AqMBV4mQpMw3qZR3X9RmeGqcCrV2Aa1qs/wdn/VOCNKjAN640e9hx1KvDqFZiG9epPcPY/FThWgZ1q07B2+mDnWFOBPVZgGtYen+qcaSqw0wpMw9rpg51jTQX2WIFpWMee6mhTganAU1ZgGtZTPpbZ1FRgKnCsAtOwjlVltKnAVOApKzAN6ykfy2zqcRWYlV6pAtOwXulpzV6nAm9egWlYb/4CmONPBV6pAtOwXulpve9e//Nw9P/7xL8d7Hy9aQWubFhvWrU59qMr8D+HBcPBna93rcA0rHd98q91bs3q3w9bBv7Bna93rMA0rHd86nPmqcCLVmAa1os+uF/Y9m8u6Q7rvw8bgLnDOhTiXb+mYb3rk3+tc//rYbsaVTjQP18amct4+h9hftt3BaZh7fv57v107rNg7+ec831WYBrWZyHGPHUF/vewu//6xNqg+HMRfyjMrb+edb5pWM/6ZGZfawX86Bc0qTU2/htVYBrWGz3sOepU4NUrMA3r1Z/g7H8q8EYVmIZ1h4c9U04FpgL3qcA0rPvUdWadCkwF7lCBaVh3KOpMORWYCtynAtOw7lPXmfVdKjDnfGgFpmE9tNyz2FRgKnBNBaZhXVO9GTsVmAo8tALTsB5a7llsKjAVuKYCv9uwrtn5jJ0KTAXergLTsN7ukc+BpwKvW4FpWK/77GbnU4G3q8A0rLd75L914Fl3KnB9BaZhXV/DmWEqMBV4UAWmYT2o0LPMVGAqcH0FpmFdX8OZYSowFfhrBe7GpmHdrbQz8VRgKnDrCkzDunVFZ76pwFTgbhWYhnW30s7EU4GpwK0rMA3r1hW9fr6ZYSowFfiiAtOwvijMyFOBqcDzVWAa1vM9k9nRVGAq8EUFpmF9UZiRpwKPqMCs8bMKTMP6Wb0meyowFfjFCkzD+sXiz9JTganAzyowDetn9ZrsqcBU4Bcr8NIN6xfrNktPBaYCv1CBaVi/UPRZciowFbisAtOwLqvbjJoKTAV+oQLTsH6h6LPkBRWYIVOBQwWmYR2KMF9TganAa1RgGtZrPKfZ5VRgKnCowDSsQxHmayowFXimCny9l2lYX9dmIlOBqcCTVWAa1pM9kNnOVGAq8HUFpmF9XZuJTAWmAk9WgWlYT/ZArt/OzDAV2G8FpmHt99nOyaYCu6vANKzdPdK7HOjfDrP+9yf4B/fP138efoeDma+pwP0rMA3r/jXewwqaVFjP8x8HAmIHd74eXIG3W24a1ts98pse+H8Os8HBzNdU4P4VmIZ1/xrvYQU/9v3L4SCwNqh/P2iwagdpvqYC96nANKz71HVmnQpMBe5QgXduWHco526n9B3W9tJ91fi7Pfwc7HkqMA3reZ7FM+/kXw+bc7EeDvTPV1z8jzC/TQXuWYFpWPes7sw9FZgK3LQC07BuWs7dTva/h5P91ye6YGfT2EP4eb9mZ/uowDSsfTzHe5/CHVXQqKzHbjX6YCpwtwpMw7pbaX808f8dsoN7oQOdr6nAVGBbgWlY24o8hvvEzXcnp1YTl3cq51ExTdRe7GldE6ev2vhTgbtV4KyGdbfV33diDeC7T9bE5T1LlezFntb94PRVG38qcLcKTMO6W2lPTuy/GPdfiJfED+6G6Lg8/m/Dnuxne7lOe5Y9/naNZv0HVGAa1gOKfMYSGkI4I/1XUp59f79SlFn0sRWYhvXYereaex/3PyunQT9iiePlPMbOKlOBJ67ANKzfeTiakvufVsdDmjgtPnYq8PYVmIb1Oy8B9z7uf06tLi7vVM7EpgJvVYFpWM/xuF1mB3dFz7Gr2cXOK/B6x5uG9RzPzH1VeI4dzS6mAk9YgWlYT/hQZktTganA8QpMwzpel1GnAlOBJ6zANKyLH8oMnApMBR5dgWlYj674rDcVmApcXIFpWBeXbgZOBaYCj67ANKxHV3zWe8UKzJ6fpALTsJ7kQcw2pgJTge8rMA3r+xpNxlRgKvAkFZiG9SQPYrYxFZgKfF+BRzSs73cxGVOBqcBU4IwKTMM6o0iTMhWYCjxHBaZhPcdzmF1MBaYCZ1RgGtYZRXrSFP9Wln/gD/htEwd/mTqNT4Nyj2ny+7/3sDgYh4NxNBYHcdrH4Tc8HOifL/E044hsmjgN0tj2Ko6DcfLE8EADcfmAg1w64IMXrcA0rNd5cN6Y3njrjnE4pvkHANP58iCNxQO+B3x11v84HA6c9+DO1ytWYBrW6zw1/6Df/FtZlz8vtYPLZ5iRv16BaVi//gjO3sD2zYb7F0mB30Q4aHBpfBqU68cjHPjl4iHNPy5oDljH4yBeLh7SxNN+Mr7cY+PFmpNtLf52/2suv9yx11TgF8ZOw/qFor/gkt7kKzrCJZox9xzf3GN3WIFpWK/xUN27hHbsuyIXyyBGZ/FAgzgrh7aO59PE5AQaiKfJ2WriNCiPPZabxsqBa8ebw9rAD9agmX+r0QcvVoFpWK/xwLzxvOFcGq87pof0OHtKE5MDLqpxwAMO4mksDfggjgMecBBPY2lsEKdBGouDOB5oEGdx4Ac8pLFpY1+sAtOwfuuBXb+uN/H1s9x2hm0zWH/8u+1KM9tbVmAa1ms8dj/SuEh2odyOXUSHtTGksadyjZETjuWm/e/BKc+4A/1g09iPw69j2kH+OHe8XHMF89GOjaeXx+LAD41nt5rcwYtVYBrWiz2wZbvehBoZ8IVYPNAgzuKw5vK32prLD8dy08xRHosDP5TLbrVtLg7lscbRWDzQIM7isObyaYMXrMA0rBd8aN9s2Y9lodQ4m/ZK1r7Duu80Np0f0n7ZzvK3qsA0rFtV8vHzeFP6r9+Bbwesy/lAgzgrh8YaC+t3I3SclRdoEGflbDU6TYwfaBBn5Ww1fN2nPB820ECcZiweaLDmyqGBcSunDV6sAtOwXuyBPWC73tTe9NulaNuLfhqsuY1nV13eOeONMRb4t4Q93HK+mevBFZiG9eCC33i5ay+S3efAui3fibjc3+o06625OH3VjKOZZ9V9aCB/1XC5q2YczTyrfq7vgt5YWMc076qN/2IVeIGG9WIVfdx2vSG9CaFVaRpDSI+zcuisxgDrHMXYFfLhO018m0eDrY6D2AoapNmjvUN7FcdDueLyQU762B1UYBrWDh7iHGEq8C4VmIa1vyfdJbTvNDqdi/Ww3g3JgfKe1TpT+2+/zpHGtne6HEgbu5MKTMPayYNcjuENC9sL7iXl765LaPi78MvOLZZ3dmc65/y3WG/meGAFpmE9sNhPuJQ7HhffT7i1i7fkTODy/eJJZuBzVmAa1nM+l2t21SW0S+fm4Qdv5lV/hR+dNNXt/p0jje1M6a9wrvY89swKTMM6s1AvnuZNHF7xKO092xnibNrYF6nAJduchnVJ1Z57jO8sQjt1aR3c8aS/inWe7f6dI43tLPSQNnYnFZiGtZMHuRzDhTOsl869gdkl9cOna7Bqz+g7i72H9hhnV00DU4O0sTupwDSsnTzIOcZU4B0qMA3rRZ/yiW27gAYX1aXxw3rf0wV9ec9qfeJ3bP9pbHv346NzqUHa2J1UYBrWTh7kcgwNKSR7E4e0V7LtnXU2e2fxQBvsvALTsHb+gD+P544nfEovZdo7u24cD6s+/k4rMA1rfw/WJTq4eO50/OANvtXjz2pdoLd/31HZp3OksTQQx1n89TEn+HsFpmH9vRRv6XjTw94O70w+Wdzbud7+PNOw9vcScLcDLqq/O52Lafgu75Xizu5M60X8K+1/9nqiAtOwThTnRUPerLD+SORTs+AN3dH4EH9W6zztv3PZdxrb3ukhbexOKrD/hrWTBzXHmApMBT4+pmHt71Xgwhn6TsQJXcIH9zs04AP/meE87b9z2Xca2/7pciBt7E4qMA1rJw9yOYY3LJxz6awRwDL85V1n96niOed/+cO+2wGmYb3bE//reXd21/PncJ3pnA8d/gyY316nAtOwXudZnbvTfzkkgovqg/vnix+8of+Ih9/SDu5Tf/nEr722fzaN7QDp8yNhFdmRnYa1o4d54ijexOFE2tOG2nu2jcbZtLE7rsA0rP09XN9ZhE7nniq440l/Fes82/07Rxr7KmeZfV5RgaVhXTHLDH2mCrhwhvXS2Zs7rHutEazaM/rO0v7Z9sgPac7kU8NpYlVkR3Ya1o4e5hzlLxWYS/e/lGMfZBrWPp7jeoouqNl0fljve3w3sl5Yl/9sVvM5tv80tj07kw8d2LSxO6nANKydPMjlGN6omhIk0wLt1dDe2c7F4uHVzjT7vaAC07AuKNoLDumeh33B7X/Yd/hYfqWxizzuXiswDWt/T9aFM6yXzvywvrnTnr0KPkRor76jsl/nSGNpII6z+GBHFZiGtaOHecFRvOnhgqFPPcSZfLL41Jt81Ob2tM40rD09zb+dxd0OuKj+m/L17y7c4euM14v4zsqZ1ov41zvF7PhoBaZhHS3LS4verOCN20F8ahY0s3Q+xJ/VOk/771z2ncauexeDVRt/BxWYhrWDhzhHmAq8SwWmYX3zpF8w7MIZ+k7EEVzCB/c7NOAD/5nhPO2/c9l3Gtv+6XIgbexOKjANaycPcjmGNyycc+msEcAy/OVdZ/ep4jnnf/nDvtsBpmG92xP/63nd88Bf1ddmzgPnfOjw2id9w91Pw9rfQ3cBDS6qOx0/eDNv9fizWp/4bffvHGlse0//+Y+EzTD2aSswDetpH81NN+ZNHG468YMma+/Zlo2zaWN3XIFpWPt7uL6zCJ0uzrrjSX+Utaa1gW9dFg+0r7Dm8strLJs2dscVmIa1v4frwhnWS2c8rCf26Rqs2j381mZrOCwO617pPghg24uckM6mseVqXs5kjrSxO6nA7RrWTgoyx3iaCmhIT7OZ2chzVGAa1nM8h1vuwgV1aN44u973uJyH8u5lfWJnbWh9Fg+tTXeJ7jultGPjxRrL4mCcM5kDH+yoAtOwdvQwP4/iDQve+J/SBx4+fuFXa7Pti8WBf2pbckK5bBp7avzEdlKBaVg7eZDfHMOPV+Gb1HPCP85pbbbB/BXpx+xXeV/px+YYbQcVmIa1g4e4OYILZ1gvnfnBm7wh8mDVil1jfcezzulSvPXFzC2eJk4DcTqLgzgN0tfxdHkgjrP4YEcVmIa1o4f5w6N4w/9wyFnp5tVgzkr+Iskc6yeHX6R9KV87/suJJ/C7FZiG9bv1v8fq7nbARfWp+eW4rIZTeT+NmdeFN/vTsfKNsyfAf4prx/90vb3nP9X5pmE91eO4yWY0C1h/JPKpWfCGbiE5sGrFrrHb+eyn9a1nbjZNnAbGirE4iJcrRhNPY2lAl8Pigx1VYBrWjh7mHGUqsPcKTMPa3xN24Qy+y+h0LtaD+x06Kwfwe8Ia9gTWtRaLgzjtK8hpoPtu7gAAEABJREFU/+Uan8Y2li4H0sbupALTsO77IH9jdm9YOOfS2uU4yL/3Xq0B6zo4nLPXddwp33zOdMs5T603sQdWYBrWA4s9Sz2kAu6u4LsPHR6ymVnkthWYhnXbej7DbC6gwUV1++EHb2Y6Kw/4tHvBj2fWgdZi29N3nwiKl2ucfbJpLA3SrYkPdlSBaVg7epgnjuJNHE6kPTzUnthTi4uvKPeYVuzhdha8fwWmYd2/xo9ewR0OrN9h8INYe+JD/FmtPR7bfxr7rHuffd2wAtOwbljMJ5nKJ2qwXjq7hA5tUxOQB/z0Z7TtnW2vLB7at+blU0PnShu7kwpMw9rJg5xjTAXeoQJP07DeodgPOqML6tCSx+56aC6rgV/uM1qf+NkjrPvDQ7rvsJxJDdLG7qQC07B28iCXY3jDgjdysjdwWHU+lPes1nnaP98+7TuNpQUxiI/dSQWmYe3kQX5zDPc94ZvUpwy3d3bdIB5WffydVmAa1v4erAtnWC+d+cEb3KlZecCnPQY/X8XFevvvOyx7TmObVRxn08bupALTsHbyIOcYf6mAZrZ+SvqX4JDXrcA0rNd9dl/t3N0NuKj+Kocux8U04HvBXs+1l+dz1TmmYV1Vvqcc7AIa1h+J/JWY4A3dxuXAqhV7Jus87d9+7c2e01ga0OWw+OBXK3Dbxadh3baeM9tUYCpwxwpMw7pjcR8wtbsaaCm+S/SQHmflpL+K9R2Ti3Ro/6zzhM4iJ8hJH7uDCkzDeu2H2Bvz0lNoBHDp+EeO03zCqXXLYU/lTewFKzAN66kf2rebc08D3yZ+kaBZXTP+i2lHngrcpwLTsO5T10fN6jIaWk/zwUN6nJWTzm457dmgsdo7tF8WD+05zspJH7uDCkzD2sFD3BzBmzQUirNpr2btPbT3OHtKKzb2xSswDet1H6A7Gt95AL+T4CFNPKTtwXZOtvPwgzNv9VUr9gx29nBGBaZhnVGkJ03xxvNXVoBvmyweaEC/9oLePM8EZ+qc63/Vnsa2Xw0MB+PSx75YBaZhvdgDm+1OBd65AtOwXvfpu7cJ6ynS2HTfYbiEhrQ9WH+tKHQe515Bx8vj0wYvWIG9NKwXLP3VW/bG04BAQzLhqtFpQQzir26dxbmB33mcO6SJywN++tgXq8A0rBd7YMt23cWERf5IYz/u+Mv8K1rqmFbsEfbY+se0R+xl1rhxBaZh3bigd5rOhfn2r6B4E9LBdw6WXjU67RZo3tYxZ5p1XGbTAA84GNf+jaMBH/iXwFhzs41vbTadxUF+uXScTRv7xBWYhvXED+fJtuZNvX4ad4vtmVMT+dFcS7Lxa7NcQme5144/a5FJul0FpmHdrpb3nMm/beXuBe65zqm5u7Q+lXMqZu+w5vjuZv2nYdbYOb753Fex5+Rvc6x/zfjtfMPvXIFpWHcu8I2m743lzdWUNG924NO9cfFAuwXMaw22+fDWWfeVxq65cmCdo/il1lywjrduKLbulb/ml7Nq4z9pBaZhPemDmW1NBaYCHx8fmyJMw9oU5AmoexXfBbBtpwtrNl2O+x9IK/8aay5Y57CGtcG6YiwO4jTAAw7iacbRrEGHNPq1MJc5oblop9Zfcxsz9gkrMA3r+R6KS2Twhv5ud3JCubg3aPyn1nhvYPanY3+abw245WW+ucwJ3+1HTvgud+JPUIFpWE/wEDZb6IJ9I59N3cnA2QM2ica6YGc3oaFTgd+twDSs363/sdV9d+Rymi2OhxqJ+FYr/285sZ9ZY829jtLAtmvJSRMvP41NE8fB/HQWB3HaLWAuc0LzrXu1Lp2VE2iDJ6/ANKwnf0Cf2/PmCp/SH5PG/hHu9Jv5V7TMJZoxp8YXu9SaP6xzpLHp/JA29okrMA3r+R6O7wZCu4uz7lzS+RC/hbVGaD5rpPHpbBpLA37AYc3lbzX5tHvBmtYAfuvgIU08jZ8+9gkqMA3rdx+CNwS0C74L95AeZ9PkuhwHfvq11hqhueJsa7E4uOg+lntMM47OGgvrePqtz2RO6wB/uz6dBvyAvwjeY5vTsH73OXvzwLFd+FHlmH5P7au93HPNY3PbBxyLjfbGFZiG9bsPvx891l1oVODTwnQ8rFoXxmLp11qX1qG57MUakMYP4sf0NPFy0+Ks+Kr7L9XVJu1aa43OxG8+fkizl2O5xcf+YgWmYf1i8Y8s7c1TE1rfsGmsnIbyIX6tNZd1Q/Ph1gY+XS4OaXQ84CCexqd9NV7s1rCWdYFvfrY9sTSQE/DBE1VgGtafh/FUv/lRKLSxOJt2L2uN0Bpx9pj2lX4q15gV5T7SHlv/mPbIPc1aJyowDetEce4c8qf4uX9dxCV08IZqa3yIX2vN1Tps87mExsG+6WuuOA3kBBzE04yjsWniNDA/ncVvAWtVa745WesEGsRZOTTg33JP5hz8sALTsH5YsCdL9yaCJ9vWVdvxiaEzsVdNdOPBmirceNqZ7icVmIb1k2rdNtcdSrh0Zn/iw6Xjn3GcS291YW+5P3PCpXO6iF/vui6dZ8ZdUYFpWFcU78qh3jzeAFDTofmELLREnJWTfmtrbmuE5rfHtPbKpomXm8amieNgHJ3FQZwGdJzFbwHnMifwzclaO9AgzsqhAR/4g1+qwDSsXyr8LDsVmAr8vALTsH5es0tGuJPxHQM0nu9iF8TpLB5oEGfl0G453lzmNLc1Ag3E0+RsNXEalMfiII7DT8Yfy01jzResA3FWDu3Y+mJygjyIs3Jo63g+bfALFfhpw/qFLe5iSZe1sF4k870hQgeNs6c0MTkBhziLAz/gIc1etppYmjge0uPiW00sTRwP6XHxrSaWJo6H9Dh7ShOTE3CIszjwAx7S7CVt7IMrMA3rwQWf5aYCU4HLKzAN6/La/WSky16XuGzj+tSJ1mUui4dy46wcuh9NcEhj8SAP4qwc2jreXmhicgINxNPk0I6Np5fH4nDp+NY6Nl7MGsE6EGfl0Na9prFygjyIs3Jo63h7oQ1+oQLTsH6h6J9LejOs+JQ/ztU+Dr/OzT2Wdxj+cUz/u/bxj1+rxi/CD+dq8s/NPZZ3yXjzGBdwiLM48AMe0ti0sQ+uwDSsxxTcn9DBXYhV2a1GT2Nx4AfjaOxWo6exOPCDcTQ2jaUBP+Cw5vK3mnwa8AMOxqTxaZDG4sAP5bJbbZuLQ3mscTQWBz4N8IBDnC2XxYM8iLP44M4VmIZ15wJ/Tu/CPXxKH3HWG4LO4oEGcRaHNZe/1dZcfpAHxqR1kbxqYvKAH+TQ2LTG09NYOV9p3uRy4KvxxoKc0JxsGisP+AGHNZe/1eTTgB9wMCbtu73KH9ypAtOw7lTYN53WG/tNj/7ix36R7U/DesyDcu+xwqr+6kkaHtLYn2ryjQs4xFkc+MFeaJDG4iCOAw78IL7VitHFV06Ls+I0wAMO4luNnsbiwA84xFk84OFczV7KdQEf0sbesQLTsO5Y3GVqnziFZD8SpfHp3jxpLA34QQ6NTbv3ePOfWkvcnqA8FgdxHPi0Y/unywlyaMak8WliaSwN+EEOjU271XjzmivggztXYBrWnQv8Ob0flcKn9BHPfnz+irOf0gc/fCy/0thkfjiliZXH4sAPOMSzNIizOPADDvEsDeIsDvyAQzxLgziLAz/gIY39qSbfuIBDnMUHd67ANKxbFPgfc3jh9u8u+ZO3iL/mEeTQXeJuNbE0Vh7wgxya+beaWBorD/hBDm0dby80sfJYGojjIId2bDxdTsDh0vGtdWy8WOuw1gF+kENb95rGlsfKA36QQ1vH2wtNrDyWFsTyx96wAtOwbljMmWoq8FkBDUyT+6RjblWBaVi3quQ/5nFfEv6hjvdOFfC3GrwG3unMDznrNKzbltmLtMtdfrN7AYd0eWn9aSyWxp4ab4wc4Mu9dLy9nBovbh1oLRYHceMBDziIpxlHY9PEaZDGOg9NHAfjaGJ4oEGclUMzBgc+TQwPNIizcmjG4P/y8fFhLzSxNJa2Qnzl49+gAtOwblDEmWIqMBV4TAWmYV1XZ5er0Cz+JHZ/Afx0PJQvvtXE0thHjbcXa321vrj9gBy5q8angZyAg3jaT8Yfy01jm5O1DvCDHNqx9cXKY+UBP8ihreP5NLHyWBqI4yCHNrhRBaZhXV5IL0Yvyj41aiY6rH+FAw/liaex6fxwShMrj8WBH3CIs3jAwV62Gj1NHA/pcfGtJpYmjof0uPhWE0sTx0N6nD2lickJOMRZHPgBD2n2stXE0sRxSBt7owo8uGHdaNfPM417ivW/fH6enc1OpgI7rMA0rMsfqmblAtaPAM1C669qsOn8IIeu0W01epq5cUhjG8/iwJcHOPxkvHxjgR9wOLZXa5bHygN+wOHS8db4ajy9dVgc+KHx7Fbb5uJQHmscjcUDDeIsDny1B+NogxtVYBrWjQr5OY0XqAYG/E/5Aw8fn7/ibLksDvzP1A88fHz+Ek/jk9mtRk9jcTiWu2prLj/I+Wo8vTwWB364x3hzWwf4AQdrpvG3mhgN+AEHY9L4W02MBuIBH9ywAtOwLi+mOwovVOCbicUDDeKsHBqLA58GeMAhzpbL4sCXB3jAIc6Wy+JBHsRZHNZc/lZbc/kA8sAYHPhbjU4DfjiWm7bNxaGxbLksDnx5gAcc4my5LB7kQZzFYc3lb7U1V2zwgwpMw/pBsTapLtvD+sJMc/nakDT2mHZs/Fe5jTdGDvDpLB5oEGdxWHPb66qtufwg56vx9PJYHPjhHuPNbR3gBxysmcbfamI04AccjEm7Za3MPfhBBaZh/aBYkzoVmAr8bgWmYV1efxfJ27uKOCve7HhIE99qYmksDvyAQ5zFAx7O1ezlVK74qTnFHz3eeu2JxYEfcIizeMDDudotz9qaL28fdYBpWJdX2l2ET4KAbyYvfhzS6HiQQxNP49PE0lga8IMcGpt27/HmP7WWuD1BeSwO4jjwacf2T5cT5NCMSePTxNJYGvCDHBqbdu/x5j+1lrg9DS6owDSsC4r2OcS9xopP+eMSzZiPz1/88Cl9xNmP5RcekuPsKU1MTsAhzuLAX0GDSzRjjAV+wCHO4sBfQYNztZ/kHpvz0vHmMhb4AR9cUIFpWOcVzZ+K/qt2thEuYWnghUgXx0GcBngoV3yriaWxxgI/yKGta6Wx5bHygB/k0Nbx9kITK4+lgTgOcmjHxtPlBBwuHd9ax8aLtQ5rHeAHObR1r2lseaw84Ac5tHW8vdDEymNpII6DHNqx8fTBDyswDeu8gvlkyIuPPW/ED7Im9a0r4B98fOsC/OTw07DOq5aLVvcg7HkjJmsqcF4Fjv3TNOeNfMOsaVjnPXTf0rtIZRuBe7FBOouDeLl40Pjo4mnG0cTSWBrwgxyaMWl8mlgaSwN+kEMzJs1eaGJpLA3EcTCOxuIgTgM84CCeZhyNTROnQRprPzRxHIyjieGBBnFWDs0YHPg0MTzQIM7KoRmDg73QxPBAA/E042hsmjhtcEEFpmFdUFjYef8AAA5ZSURBVLQZMhW4uAIz8KoKTMP65/K5q4I14gI1FPOn5ilNvDnKY0+NF5MTHjW+vX61vnh7kmNfq8anQXksDuI4/GT8sdw01nzBOhBn5dCOrS8mJ8iDOCuHto7n08TkBBqIp8nZauI0KI/FB99UYBrWPxfIiwd6scngBxxcwKexNOCDOA54wEE8jaUBP+AQZ/GAh59q8htrLziksTiI44EGcXEc0lgcxPFAg7g4DmksDuJ4oEGcxYEf8JDG/lSTbxzYCw54wEE8jaUBH8RxwAM++KYC07C+KdCEpwJTgeepwGs1rMfUrctRl6qt6N84Cuk+MdxqYmnsT8fLNw7Wy1k8WEMeu9XoaSwO/GAcjU1jacAPOFx6VmPh0vH2+NV4evtkceCD+jWepQFfHuABhzhbLosHeRBncfjJWe0xGDv4pgLTsL4p0GfYvUP4lD7irBf0x+EXiwP/IP35wsMf4fBbnC2XxYF/SPvzhYc/wuE38TT+Qfpg09iPz1/88Cl9rLn8j8Mvtjz2IP354gc5RHar0dNYHPjBOBq71ehpLA78YByNTWNpwAdxHPg04G81Og34AQdj0vhbTYwG/HAsN00uP+CDbyowDeuvBXKf0IuNLcoPcujsVqOnsTjwg3E0dqvR01gc+ME4GrvV6GksDvxgHI1NY2nADzisufytJp8G/ICDMWl8GqSxOPBDuexW2+biUB5rHI3FgU8DPOAgnsbfamI04AccjEnjbzUxGvADDsYEfLBUYBrWUoyD64Xir1bAejmKh0Pan684axzRiw+HS8abx9hgToizOKy5/K225vKDPDAmrb2umpg84Ac5NDat8fQ0Fgd+MI72Ta0+5MsDfmg8m8bKA37AYc3lbzX5NOAHHIxJ66yrJiYP+EEOjU1rPD2NxUGuD30AHywVmIa1FONM17fwZ6ZO2gtWQMN4wW2/x5anYf31OWtGweVp0TQ2TRyHNH4QP6aniZebxqaxOPADDnEWD3g4V7OXU7nip+YUf/R467UnFgd+wCHO4gEP52r3Pqv9uMSH9jT2swLTsD4L8Wm8WPrUxo8sn/Kf/z15epp4Gp9+zng5co05NV5MHvBD49k0c8lbNTEa8IMcGpv23XjxU7ni5oTyWBzEceDTjq1PlxPk0IxJ49PE0lga8IMcGpt27/HmP7WWuD1BeSwO9ioH8HfA2WechvXPpfIjQSgaZ49pX+nHco9pl4w3j3EBhziLAz/gIY09V/tJ7rE5f2O8fVg34BBnceAHPKSx52o/yT025zq++Fvbd29Y/hSDXgR8l52wXoTioVzxtF5Y54wv99h4seZkW4sf5NDXtdLY8lh5wA9yaOt4e6GJlcfSQBwHObRj4+lyAg6Xjm+tY+PFWoe1DvCDHNq61zS2PFYeHFtrHS8u79rx5rBuwMH8adagDT4r8M4Ny4vBi2P91OazLGOmAlOBZ6zAOzcsz8PFJvBfFbPv21bAH2S3nXFmu1kF3rlhdbnJVlDf+vdXc9aL0DS2XHEcjKOzOIjTAA+tJ55mnDyxNJYG/CCHZkwanyaWxtKAH+TQjEmzF5pYGksDcRyMo7E4iNMADziIpxlHY9PEaZDG2g9NHAfjaGJ4oEGclUMzBgc+TQwPNIizcmjG4GAvNDE80EA8zTgamyZOgzQWB3EcjKMNPivwzg3rswRjpgJTgVepwDs3LH96bS83V43fcyyPTRPHoR8jVo1frpxwLDeNLY991Pj2+tX64vYDcuxr1fg0kBNwEE/7yfhjuWlsc7LWAX6QQzu2vlh5rDw4lrtqfHnXjjeHdQMO5k+zBg3o/3lwVu1A3+vrnRuWy3YPP/Tk4+JbTSxNHA/pcfGtJpYmjof0OHtKE5MTcIizOPADHtLsZauJpYnjIT0uvtXE0sTxkB4X32piaeJ4SI+zpzQxOQGHOIvDuhYe5ID4VqOnieMhPS6+1cTSxPGQ7gMioKe9nX3nhvV2D3sOfFYF3rohnFWhX0x654blr1j4hBBcoHoMLB5oEGdxuHS8Nb4aT7dGwCHONp7FgS8P8IBDnC2XxYM8iLM4XHpWY+HS8fb41Xi6PQYc4i6vG8+m8+VBGosDP5TLprHygB9wuPSsxsKx8XSX8OBHQ/wt8VYNa/OEPfjgBSnMbjV6GosDPxhHY7caPY3FgR+Mo7FpLA34AYc1l7/V5NOAH3AwJo2/1cRowA/HctO2uTg0li2XxYEvD/CAQ5wtl8WDPIiL48Df6qsmJg/4AYc1l7/V5NOAH47lpm1zcWgsu+aKvT3epWH5Nj/00HEvCuDTWTzQIM7KobE48LcanQb8cCw3bZuLQ2PZclkc+PIADzjE2XJZPMiDOIvDmsvfamsuP8gDY9L4W02MBvxwLDdtm4tDY9lyWRz48gAPOIin8beaGA34AQdj0vhbTYwG/ICDMWn8rSZGe0u8S8PqUxe2B+0CM6wvjDSXn8dyj2n3GG8fx9ZKs6Yc4NNZPNAgzuKw5nbWVVtz+UHOV+Pp5bE48MM9xpvbOsAPOFgzjb/VxGjgNYIDDsbg8Ey1sre3wrs0rLd6qHPYj4+PKcIuK/AuDauLUbYH6XLTHQGk8YP4MT1NvNy0OCt+TE8TlwdpLB5wiLM48AMe0thzNXs5lStuPjiWJ35MTxM3FtL4QfyYniZebhqbxuLADzjEWTzg4VzNXk7lip+aU/xW45vnbey7NCw/94ceLu6TJODTvdBwSKPjQQ5NPI1PE9tq9DRWDs0YHPg0MTzQIM7KobE43Hu8+a0D/K/Wp8sJOBiTxqcd2z+9PFYOzRgc+DQxPNAgzsqhsTjce7z5rQP8r9anywk4GJPGpx3bP/3t8C4N6+0e7Bx4KrDHChxvWPs7qYtU6E8sJ8T/7+BAOouD+CH85wsPLmCJ4mnG0dg0cRqksafGi8kJxkKclUNb1+LTxOQEGsRZOTRjcGivYniQB+JpxtHYNHEapLE4iONgHI3FQZwGeLAfmniacTSxNJYG/CCHZkwanyaWxtKAH+TQjEmzF5pYGksDcRyMo7E4iNMADziIpxlHY9PEaW+Jd2lYXlzQJzxv+bDn0FOBV6/AuzQsdwCwXni++rOb/U8F3q4C79KwtpeYHjTNX3UA33LTWBzEaYAHjY8mnmYcjU0Tp0Eae2q8mJxgLMRZObR1LT5NTE6gQZyVQzPmXz4+PmjtVQwP8kA8zTgamyZOgzQWB3EcjKOxOIjTAA/2QxNPM44mlsbSgB/k0IxJ49PE0lga8IMcmjFp9kITS2NpII6DcTQWB3Ea4AEH8TTjaGyaOO0t8S4N6y0f7hx6KrC3Crxzw/KnlgtMcL/l2a4anwZywrHcNLa8a8ebx9rAD9agmX+riaWx8oAf5NDW8XyaWHksDcRxkLPVxGkgJ+AgnvaT8cdy09jmZK0D/CCHdmx9sfJYecAPcmjreD5NrDyWBuI4yNlq4jSQE3AQT2s8nQ/8t8U7NywX8F4AsL4AcBBPx0OaeBpLZ4M4DdJYHMTxQIM4iwM/4CGN/akm3ziwFxzwgIN4GksDPojjgAccxNNYGvBBHAc84CCextKAH3CIs3jAw081+Y21FxzSWBzE8UCDuDgOaSwO4niggb8WpJHR8Uvw8mPeuWG9/MObA7xVBXxg5N7srQ69Pew7Nyx/TccFJvRCYOmhesVZOXQvIBzSWDzIgzgrh3ZsPF1OwCHONp7FgS8PcHAuHPBQLpvGygN+wOHYXh8x3hpfrU9vnywO/NB4dqttc3EojzWOxuKBBnEWh3vUyrx+VPRM7QV/S7xzw/LgQw8f98IAfjoejmnlsuXxj+Ue08plG88ey01bc/l01jjg0wAPOIin8beaGA344Vhu2jYXh8ay5bI48OUBHnCIs+WyeJAHcRaHNZe/1dZcfpAHxqTxt5oYDfjhWG7aNheHxrJrrtjb450b1rGH735gRTlePEGczp7SxOQBPxhHY7caPY3FgR+Mo7FbjZ7G4sAPxtHYNJYG/IDDmsvfavJpwA84GJPG32piNOCHY7lp21wcGsuWy+LAlwd4wCHOlsviQR7EWRzWXP5WW3P5QR4YE/DBUoFpWEsxDq4XiotNcMl5kP588cMf4fBbnDXuIH2wOLg8/fj8hYdP6SPOGkdn8UCDOIvDmsvfamsuP8gDY9La66qJyQN+kENj0xpPT2Nx4AfjaGzatePNY07gBxzWtfhbTT4N+AEHY9La66qJyQN+kENj0xpPT2NxkOv1B3za4LMC07A+CzFmKjAVeP4KTMP66zNyZxBcnhZNY9PEcUjjB/Fjepp4uWlsGosDP+AQZ/GAh3M1ezmVK35qTvFHj7dee2Jx4Acc4iwe8PAX7UDoB/Pnix/ufVbruMQH/p8NzG9/q8A0rL/Vod+9QHwSA+4W0vEghy6exqeJbTV6GiuHZgwOfJoYHmgQZ+XQWBzuPd781gH+V+vT5QQcjEnj047tn14eK4dmDA58mhgeaBBn5dBYHO493vzWAf5X69PlBBzs1TjAB0sFpmEtxRh3KjAVeO4KTMN67ufzTLv7yQXwT3Kf6YyzlyevwF0a1pOfebZ3ugKajX8sbpvlkyyxVceP/ejiE641b/ypwE0qMA3rJmXc1STuUPxTJttDuWsRW3X8WMM6Nn4dN/5U4KIKTMO6qGwzaCowFfiNCkzD+o2q72nNOctU4IEVmIb1wGLPUlOBqcB1FZiGdV39ZvRUYCrwwApMw3pgsWepqcBrV+D3dz8N6/efwexgKjAVOLMC07DOLNSkTQWmAr9fgWlYv/8MZgdTganAmRWYhnVmoa5PmxmmAlOBayswDevaCs74qcBU4GEVmIb1sFLPQlOBqcC1FZiGdW0FZ/xU4J8rMMqdKjAN606FnWmnAlOB21dgGtbtazozTgWmAneqwDSsOxV2pp0KTAVuX4H/DwAA//9sB2hHAAAABklEQVQDAB9QlitZA9bLAAAAAElFTkSuQmCC",
12589            width: "248",
12590            height: "248",
12591            style: { mixBlendMode: "multiply" }
12592          }
12593        )
12594      }
12595    ) });
12596  }
12597  
12598  // routes/connectors-home/ai-plugin-callout.tsx
12599  var import_jsx_runtime44 = __toESM(require_jsx_runtime());
12600  var AI_PLUGIN_SLUG = "ai";
12601  var AI_PLUGIN_PAGE_SLUG = "ai-wp-admin";
12602  var AI_PLUGIN_ID = "ai/ai";
12603  var AI_PLUGIN_URL = "https://wordpress.org/plugins/ai/";
12604  var connectorDataValues = Object.values(getConnectorData());
12605  var hasAiProviders = connectorDataValues.some(
12606    (c) => c.type === "ai_provider"
12607  );
12608  var aiProviderSettingNames = [];
12609  for (const c of connectorDataValues) {
12610    if (c.type === "ai_provider" && c.authentication.method === "api_key") {
12611      aiProviderSettingNames.push(c.authentication.settingName);
12612    }
12613  }
12614  function AiPluginCallout() {
12615    const [isBusy, setIsBusy] = (0, import_element36.useState)(false);
12616    const [justActivated, setJustActivated] = (0, import_element36.useState)(false);
12617    const actionButtonRef = (0, import_element36.useRef)(null);
12618    (0, import_element36.useEffect)(() => {
12619      if (justActivated) {
12620        actionButtonRef.current?.focus();
12621      }
12622    }, [justActivated]);
12623    const initialHasConnectedProvider = (0, import_element36.useRef)(
12624      connectorDataValues.some(
12625        (c) => c.type === "ai_provider" && c.authentication.method === "api_key" && c.authentication.isConnected
12626      )
12627    ).current;
12628    const {
12629      pluginStatus,
12630      canInstallPlugins,
12631      canManagePlugins,
12632      hasConnectedProvider
12633    } = (0, import_data3.useSelect)((select2) => {
12634      const store2 = select2(import_core_data2.store);
12635      const canCreate = !!store2.canUser("create", {
12636        kind: "root",
12637        name: "plugin"
12638      });
12639      const siteSettings = store2.getEntityRecord("root", "site");
12640      const hasConnected = initialHasConnectedProvider || aiProviderSettingNames.some(
12641        (name) => !!siteSettings?.[name]
12642      );
12643      const plugin = store2.getEntityRecord(
12644        "root",
12645        "plugin",
12646        AI_PLUGIN_ID
12647      );
12648      const hasFinished = store2.hasFinishedResolution("getEntityRecord", [
12649        "root",
12650        "plugin",
12651        AI_PLUGIN_ID
12652      ]);
12653      if (!hasFinished) {
12654        return {
12655          pluginStatus: "checking",
12656          canInstallPlugins: canCreate,
12657          canManagePlugins: void 0,
12658          hasConnectedProvider: hasConnected
12659        };
12660      }
12661      if (!plugin) {
12662        return {
12663          pluginStatus: "not-installed",
12664          canInstallPlugins: canCreate,
12665          canManagePlugins: canCreate,
12666          hasConnectedProvider: hasConnected
12667        };
12668      }
12669      return {
12670        pluginStatus: plugin.status === "active" ? "active" : "inactive",
12671        canInstallPlugins: canCreate,
12672        canManagePlugins: true,
12673        hasConnectedProvider: hasConnected
12674      };
12675    }, []);
12676    const { saveEntityRecord } = (0, import_data3.useDispatch)(import_core_data2.store);
12677    const { createSuccessNotice, createErrorNotice } = (0, import_data3.useDispatch)(import_notices2.store);
12678    const installPlugin = async () => {
12679      setIsBusy(true);
12680      try {
12681        await saveEntityRecord(
12682          "root",
12683          "plugin",
12684          { slug: AI_PLUGIN_SLUG, status: "active" },
12685          { throwOnError: true }
12686        );
12687        setJustActivated(true);
12688        createSuccessNotice(
12689          (0, import_i18n9.__)("AI plugin installed and activated successfully."),
12690          {
12691            id: "ai-plugin-install-success",
12692            type: "snackbar"
12693          }
12694        );
12695      } catch {
12696        createErrorNotice((0, import_i18n9.__)("Failed to install the AI plugin."), {
12697          id: "ai-plugin-install-error",
12698          type: "snackbar"
12699        });
12700      } finally {
12701        setIsBusy(false);
12702      }
12703    };
12704    const activatePlugin = async () => {
12705      setIsBusy(true);
12706      try {
12707        await saveEntityRecord(
12708          "root",
12709          "plugin",
12710          { plugin: AI_PLUGIN_ID, status: "active" },
12711          { throwOnError: true }
12712        );
12713        setJustActivated(true);
12714        createSuccessNotice((0, import_i18n9.__)("AI plugin activated successfully."), {
12715          id: "ai-plugin-activate-success",
12716          type: "snackbar"
12717        });
12718      } catch {
12719        createErrorNotice((0, import_i18n9.__)("Failed to activate the AI plugin."), {
12720          id: "ai-plugin-activate-error",
12721          type: "snackbar"
12722        });
12723      } finally {
12724        setIsBusy(false);
12725      }
12726    };
12727    if (!hasAiProviders) {
12728      return null;
12729    }
12730    if (pluginStatus === "checking") {
12731      return null;
12732    }
12733    if (pluginStatus === "active" && initialHasConnectedProvider && !justActivated) {
12734      return null;
12735    }
12736    if (pluginStatus === "inactive" && canManagePlugins === false) {
12737      return null;
12738    }
12739    const isActiveNoProvider = pluginStatus === "active" && !hasConnectedProvider;
12740    const isJustConnected = pluginStatus === "active" && hasConnectedProvider && (!initialHasConnectedProvider || justActivated);
12741    const showInstallActivate = pluginStatus === "not-installed" || pluginStatus === "inactive";
12742    const hideButtons = pluginStatus === "not-installed" && canInstallPlugins === false;
12743    const getMessage = () => {
12744      if (isJustConnected) {
12745        return (0, import_i18n9.__)(
12746          "The <strong>AI plugin</strong> is ready to use. You can use it to generate featured images, alt text, titles, excerpts and more. <a>Learn more</a>"
12747        );
12748      }
12749      if (isActiveNoProvider) {
12750        return (0, import_i18n9.__)(
12751          "The <strong>AI plugin</strong> is installed. Connect an AI provider below to generate featured images, alt text, titles, excerpts, and more. <a>Learn more</a>"
12752        );
12753      }
12754      return (0, import_i18n9.__)(
12755        "The <strong>AI plugin</strong> can use your AI connectors to generate featured images, alt text, titles, excerpts and more. <a>Learn more</a>"
12756      );
12757    };
12758    const getPrimaryButtonProps = () => {
12759      if (pluginStatus === "not-installed") {
12760        return {
12761          label: isBusy ? (0, import_i18n9.__)("Installing\u2026") : (0, import_i18n9.__)("Install the AI plugin"),
12762          disabled: isBusy,
12763          onClick: isBusy ? void 0 : installPlugin
12764        };
12765      }
12766      return {
12767        label: isBusy ? (0, import_i18n9.__)("Activating\u2026") : (0, import_i18n9.__)("Activate the AI plugin"),
12768        disabled: isBusy,
12769        onClick: isBusy ? void 0 : activatePlugin
12770      };
12771    };
12772    return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "ai-plugin-callout", children: [
12773      /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "ai-plugin-callout__content", children: [
12774        /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { children: (0, import_element36.createInterpolateElement)(getMessage(), {
12775          strong: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("strong", {}),
12776          // @ts-expect-error `children` is injected by `createInterpolateElement` at runtime.
12777          a: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_components3.ExternalLink, { href: AI_PLUGIN_URL })
12778        }) }),
12779        !hideButtons && (showInstallActivate ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
12780          import_components3.Button,
12781          {
12782            variant: "primary",
12783            size: "compact",
12784            isBusy,
12785            disabled: getPrimaryButtonProps().disabled,
12786            accessibleWhenDisabled: true,
12787            onClick: getPrimaryButtonProps().onClick,
12788            children: getPrimaryButtonProps().label
12789          }
12790        ) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
12791          import_components3.Button,
12792          {
12793            ref: actionButtonRef,
12794            variant: "secondary",
12795            size: "compact",
12796            href: (0, import_url.addQueryArgs)("options-general.php", {
12797              page: AI_PLUGIN_PAGE_SLUG
12798            }),
12799            children: (0, import_i18n9.__)("Control features in the AI plugin")
12800          }
12801        ))
12802      ] }),
12803      /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(WpLogoDecoration, {})
12804    ] });
12805  }
12806  
12807  // routes/connectors-home/stage.tsx
12808  var import_jsx_runtime45 = __toESM(require_jsx_runtime());
12809  var { store } = unlock2(connectorsPrivateApis2);
12810  registerDefaultConnectors();
12811  function ConnectorsPage() {
12812    const isFileModDisabled = getIsFileModDisabled();
12813    const { connectors, canInstallPlugins, isAiPluginInstalled } = (0, import_data4.useSelect)(
12814      (select2) => {
12815        const coreSelect = select2(import_core_data3.store);
12816        const aiPlugin = coreSelect.getEntityRecord(
12817          "root",
12818          "plugin",
12819          "ai/ai"
12820        );
12821        return {
12822          connectors: unlock2(select2(store)).getConnectors(),
12823          canInstallPlugins: coreSelect.canUser("create", {
12824            kind: "root",
12825            name: "plugin"
12826          }),
12827          isAiPluginInstalled: !!aiPlugin
12828        };
12829      },
12830      []
12831    );
12832    const renderableConnectors = connectors.filter(
12833      (connector) => connector.render
12834    );
12835    const aiProviderPluginSlugs = Array.from(
12836      new Set(
12837        connectors.filter(
12838          (connector) => connector.type === "ai_provider"
12839        ).map(
12840          (connector) => connector.plugin?.file?.split("/")[0]
12841        ).filter(
12842          (slug) => !!slug
12843        )
12844      )
12845    ).sort();
12846    const installedPluginSlugs = new Set(
12847      connectors.filter(
12848        (connector) => connector.plugin?.isInstalled
12849      ).map(
12850        (connector) => connector.plugin?.file?.split("/")[0]
12851      ).filter((slug) => !!slug)
12852    );
12853    if (isAiPluginInstalled) {
12854      installedPluginSlugs.add("ai");
12855    }
12856    const manualInstallPluginSlugs = ["ai", ...aiProviderPluginSlugs].filter(
12857      (slug) => !installedPluginSlugs.has(slug)
12858    );
12859    const isEmpty = renderableConnectors.length === 0;
12860    return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
12861      page_default,
12862      {
12863        title: (0, import_i18n10.__)("Connectors"),
12864        subTitle: (0, import_i18n10.__)(
12865          "All of your API keys and credentials are stored here and shared across plugins. Configure once and use everywhere."
12866        ),
12867        children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
12868          "div",
12869          {
12870            className: `connectors-page$isEmpty ? " connectors-page--empty" : ""}`,
12871            children: [
12872              manualInstallPluginSlugs.length > 0 && (isFileModDisabled || !canInstallPlugins) && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
12873                notice_exports.Root,
12874                {
12875                  intent: "info",
12876                  className: "connectors-page__file-mods-notice",
12877                  children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(notice_exports.Description, { children: isFileModDisabled ? (0, import_i18n10.__)(
12878                    "Plugins cannot be installed here due to your site configuration. Install them manually using your normal deployment workflow."
12879                  ) : (0, import_i18n10.__)(
12880                    "You do not have permission to install plugins. Please ask a site administrator to install them for you."
12881                  ) })
12882                }
12883              ),
12884              isEmpty ? /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
12885                import_components4.__experimentalVStack,
12886                {
12887                  alignment: "center",
12888                  spacing: 3,
12889                  style: { maxWidth: 480 },
12890                  children: [
12891                    /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_components4.__experimentalVStack, { alignment: "center", spacing: 2, children: [
12892                      /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components4.__experimentalHeading, { level: 2, size: 15, children: (0, import_i18n10.__)("No connectors yet") }),
12893                      /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components4.__experimentalText, { size: 12, children: (0, import_i18n10.__)(
12894                        "Connectors appear here when you install plugins that use external services. Each plugin registers the API keys it needs, and you manage them all in one place."
12895                      ) })
12896                    ] }),
12897                    /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
12898                      import_components4.Button,
12899                      {
12900                        variant: "secondary",
12901                        href: "plugin-install.php",
12902                        __next40pxDefaultSize: true,
12903                        children: (0, import_i18n10.__)("Learn more")
12904                      }
12905                    )
12906                  ]
12907                }
12908              ) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_components4.__experimentalVStack, { spacing: 3, children: [
12909                /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(AiPluginCallout, {}),
12910                /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components4.__experimentalVStack, { spacing: 3, role: "list", children: connectors.map(
12911                  (connector) => {
12912                    if (connector.render) {
12913                      return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
12914                        connector.render,
12915                        {
12916                          slug: connector.slug,
12917                          name: connector.name,
12918                          description: connector.description,
12919                          type: connector.type,
12920                          logo: connector.logo,
12921                          authentication: connector.authentication,
12922                          plugin: connector.plugin
12923                        },
12924                        connector.slug
12925                      );
12926                    }
12927                    return null;
12928                  }
12929                ) })
12930              ] }),
12931              canInstallPlugins && !isFileModDisabled && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("p", { className: "connectors-page__help-text", children: (0, import_element37.createInterpolateElement)(
12932                (0, import_i18n10.__)(
12933                  "If the connector you need is not listed, <a>search the plugin directory</a> to see if a connector is available."
12934                ),
12935                {
12936                  a: (
12937                    // eslint-disable-next-line jsx-a11y/anchor-has-content
12938                    /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("a", { href: "plugin-install.php?s=connector&tab=search&type=tag" })
12939                  )
12940                }
12941              ) })
12942            ]
12943          }
12944        )
12945      }
12946    );
12947  }
12948  function Stage() {
12949    return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ConnectorsPage, {});
12950  }
12951  var stage = Stage;
12952  export {
12953    stage
12954  };
12955  /*! Bundled license information:
12956  
12957  use-sync-external-store/cjs/use-sync-external-store-shim.development.js:
12958    (**
12959     * @license React
12960     * use-sync-external-store-shim.development.js
12961     *
12962     * Copyright (c) Meta Platforms, Inc. and affiliates.
12963     *
12964     * This source code is licensed under the MIT license found in the
12965     * LICENSE file in the root directory of this source tree.
12966     *)
12967  
12968  use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js:
12969    (**
12970     * @license React
12971     * use-sync-external-store-shim/with-selector.development.js
12972     *
12973     * Copyright (c) Meta Platforms, Inc. and affiliates.
12974     *
12975     * This source code is licensed under the MIT license found in the
12976     * LICENSE file in the root directory of this source tree.
12977     *)
12978  */


Generated : Mon Nov 2 08:20:36 2026 Cross-referenced by PHPXref