[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/js/dist/ -> block-directory.js (source)

   1  (function() {
   2  var wp;
   3  (wp ||= {}).blockDirectory = (() => {
   4    var __create = Object.create;
   5    var __defProp = Object.defineProperty;
   6    var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
   7    var __getOwnPropNames = Object.getOwnPropertyNames;
   8    var __getProtoOf = Object.getPrototypeOf;
   9    var __hasOwnProp = Object.prototype.hasOwnProperty;
  10    var __commonJS = (cb, mod) => function __require() {
  11      return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  12    };
  13    var __export = (target, all) => {
  14      for (var name in all)
  15        __defProp(target, name, { get: all[name], enumerable: true });
  16    };
  17    var __copyProps = (to, from, except, desc) => {
  18      if (from && typeof from === "object" || typeof from === "function") {
  19        for (let key of __getOwnPropNames(from))
  20          if (!__hasOwnProp.call(to, key) && key !== except)
  21            __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  22      }
  23      return to;
  24    };
  25    var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  26      // If the importer is in node compatibility mode or this is not an ESM
  27      // file that has been converted to a CommonJS file using a Babel-
  28      // compatible transform (i.e. "__esModule" has not been set), then set
  29      // "default" to the CommonJS "module.exports" for node compatibility.
  30      isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  31      mod
  32    ));
  33    var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  34  
  35    // package-external:@wordpress/plugins
  36    var require_plugins = __commonJS({
  37      "package-external:@wordpress/plugins"(exports, module) {
  38        module.exports = window.wp.plugins;
  39      }
  40    });
  41  
  42    // package-external:@wordpress/hooks
  43    var require_hooks = __commonJS({
  44      "package-external:@wordpress/hooks"(exports, module) {
  45        module.exports = window.wp.hooks;
  46      }
  47    });
  48  
  49    // package-external:@wordpress/blocks
  50    var require_blocks = __commonJS({
  51      "package-external:@wordpress/blocks"(exports, module) {
  52        module.exports = window.wp.blocks;
  53      }
  54    });
  55  
  56    // package-external:@wordpress/data
  57    var require_data = __commonJS({
  58      "package-external:@wordpress/data"(exports, module) {
  59        module.exports = window.wp.data;
  60      }
  61    });
  62  
  63    // package-external:@wordpress/element
  64    var require_element = __commonJS({
  65      "package-external:@wordpress/element"(exports, module) {
  66        module.exports = window.wp.element;
  67      }
  68    });
  69  
  70    // package-external:@wordpress/editor
  71    var require_editor = __commonJS({
  72      "package-external:@wordpress/editor"(exports, module) {
  73        module.exports = window.wp.editor;
  74      }
  75    });
  76  
  77    // package-external:@wordpress/block-editor
  78    var require_block_editor = __commonJS({
  79      "package-external:@wordpress/block-editor"(exports, module) {
  80        module.exports = window.wp.blockEditor;
  81      }
  82    });
  83  
  84    // package-external:@wordpress/i18n
  85    var require_i18n = __commonJS({
  86      "package-external:@wordpress/i18n"(exports, module) {
  87        module.exports = window.wp.i18n;
  88      }
  89    });
  90  
  91    // package-external:@wordpress/api-fetch
  92    var require_api_fetch = __commonJS({
  93      "package-external:@wordpress/api-fetch"(exports, module) {
  94        module.exports = window.wp.apiFetch;
  95      }
  96    });
  97  
  98    // package-external:@wordpress/notices
  99    var require_notices = __commonJS({
 100      "package-external:@wordpress/notices"(exports, module) {
 101        module.exports = window.wp.notices;
 102      }
 103    });
 104  
 105    // package-external:@wordpress/url
 106    var require_url = __commonJS({
 107      "package-external:@wordpress/url"(exports, module) {
 108        module.exports = window.wp.url;
 109      }
 110    });
 111  
 112    // package-external:@wordpress/compose
 113    var require_compose = __commonJS({
 114      "package-external:@wordpress/compose"(exports, module) {
 115        module.exports = window.wp.compose;
 116      }
 117    });
 118  
 119    // package-external:@wordpress/components
 120    var require_components = __commonJS({
 121      "package-external:@wordpress/components"(exports, module) {
 122        module.exports = window.wp.components;
 123      }
 124    });
 125  
 126    // package-external:@wordpress/core-data
 127    var require_core_data = __commonJS({
 128      "package-external:@wordpress/core-data"(exports, module) {
 129        module.exports = window.wp.coreData;
 130      }
 131    });
 132  
 133    // package-external:@wordpress/html-entities
 134    var require_html_entities = __commonJS({
 135      "package-external:@wordpress/html-entities"(exports, module) {
 136        module.exports = window.wp.htmlEntities;
 137      }
 138    });
 139  
 140    // vendor-external:react
 141    var require_react = __commonJS({
 142      "vendor-external:react"(exports, module) {
 143        module.exports = window.React;
 144      }
 145    });
 146  
 147    // vendor-external:react/jsx-runtime
 148    var require_jsx_runtime = __commonJS({
 149      "vendor-external:react/jsx-runtime"(exports, module) {
 150        module.exports = window.ReactJSXRuntime;
 151      }
 152    });
 153  
 154    // vendor-external:react-dom
 155    var require_react_dom = __commonJS({
 156      "vendor-external:react-dom"(exports, module) {
 157        module.exports = window.ReactDOM;
 158      }
 159    });
 160  
 161    // package-external:@wordpress/primitives
 162    var require_primitives = __commonJS({
 163      "package-external:@wordpress/primitives"(exports, module) {
 164        module.exports = window.wp.primitives;
 165      }
 166    });
 167  
 168    // 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
 169    var require_use_sync_external_store_shim_development = __commonJS({
 170      "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) {
 171        "use strict";
 172        (function() {
 173          function is(x, y) {
 174            return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
 175          }
 176          function useSyncExternalStore$2(subscribe, getSnapshot) {
 177            didWarnOld18Alpha || void 0 === React53.startTransition || (didWarnOld18Alpha = true, console.error(
 178              "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."
 179            ));
 180            var value = getSnapshot();
 181            if (!didWarnUncachedGetSnapshot) {
 182              var cachedValue = getSnapshot();
 183              objectIs(value, cachedValue) || (console.error(
 184                "The result of getSnapshot should be cached to avoid an infinite loop"
 185              ), didWarnUncachedGetSnapshot = true);
 186            }
 187            cachedValue = useState13({
 188              inst: { value, getSnapshot }
 189            });
 190            var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
 191            useLayoutEffect3(
 192              function() {
 193                inst.value = value;
 194                inst.getSnapshot = getSnapshot;
 195                checkIfSnapshotChanged(inst) && forceUpdate({ inst });
 196              },
 197              [subscribe, value, getSnapshot]
 198            );
 199            useEffect15(
 200              function() {
 201                checkIfSnapshotChanged(inst) && forceUpdate({ inst });
 202                return subscribe(function() {
 203                  checkIfSnapshotChanged(inst) && forceUpdate({ inst });
 204                });
 205              },
 206              [subscribe]
 207            );
 208            useDebugValue2(value);
 209            return value;
 210          }
 211          function checkIfSnapshotChanged(inst) {
 212            var latestGetSnapshot = inst.getSnapshot;
 213            inst = inst.value;
 214            try {
 215              var nextValue = latestGetSnapshot();
 216              return !objectIs(inst, nextValue);
 217            } catch (error2) {
 218              return true;
 219            }
 220          }
 221          function useSyncExternalStore$1(subscribe, getSnapshot) {
 222            return getSnapshot();
 223          }
 224          "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
 225          var React53 = require_react(), objectIs = "function" === typeof Object.is ? Object.is : is, useState13 = React53.useState, useEffect15 = 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;
 226          exports.useSyncExternalStore = void 0 !== React53.useSyncExternalStore ? React53.useSyncExternalStore : shim;
 227          "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
 228        })();
 229      }
 230    });
 231  
 232    // node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/index.js
 233    var require_shim = __commonJS({
 234      "node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/index.js"(exports, module) {
 235        "use strict";
 236        if (false) {
 237          module.exports = null;
 238        } else {
 239          module.exports = require_use_sync_external_store_shim_development();
 240        }
 241      }
 242    });
 243  
 244    // 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
 245    var require_with_selector_development = __commonJS({
 246      "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) {
 247        "use strict";
 248        (function() {
 249          function is(x, y) {
 250            return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
 251          }
 252          "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
 253          var React53 = require_react(), shim = require_shim(), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore3 = shim.useSyncExternalStore, useRef20 = React53.useRef, useEffect15 = React53.useEffect, useMemo17 = React53.useMemo, useDebugValue2 = React53.useDebugValue;
 254          exports.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
 255            var instRef = useRef20(null);
 256            if (null === instRef.current) {
 257              var inst = { hasValue: false, value: null };
 258              instRef.current = inst;
 259            } else inst = instRef.current;
 260            instRef = useMemo17(
 261              function() {
 262                function memoizedSelector(nextSnapshot) {
 263                  if (!hasMemo) {
 264                    hasMemo = true;
 265                    memoizedSnapshot = nextSnapshot;
 266                    nextSnapshot = selector(nextSnapshot);
 267                    if (void 0 !== isEqual && inst.hasValue) {
 268                      var currentSelection = inst.value;
 269                      if (isEqual(currentSelection, nextSnapshot))
 270                        return memoizedSelection = currentSelection;
 271                    }
 272                    return memoizedSelection = nextSnapshot;
 273                  }
 274                  currentSelection = memoizedSelection;
 275                  if (objectIs(memoizedSnapshot, nextSnapshot))
 276                    return currentSelection;
 277                  var nextSelection = selector(nextSnapshot);
 278                  if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
 279                    return memoizedSnapshot = nextSnapshot, currentSelection;
 280                  memoizedSnapshot = nextSnapshot;
 281                  return memoizedSelection = nextSelection;
 282                }
 283                var hasMemo = false, memoizedSnapshot, memoizedSelection, maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot;
 284                return [
 285                  function() {
 286                    return memoizedSelector(getSnapshot());
 287                  },
 288                  null === maybeGetServerSnapshot ? void 0 : function() {
 289                    return memoizedSelector(maybeGetServerSnapshot());
 290                  }
 291                ];
 292              },
 293              [getSnapshot, getServerSnapshot, selector, isEqual]
 294            );
 295            var value = useSyncExternalStore3(subscribe, instRef[0], instRef[1]);
 296            useEffect15(
 297              function() {
 298                inst.hasValue = true;
 299                inst.value = value;
 300              },
 301              [value]
 302            );
 303            useDebugValue2(value);
 304            return value;
 305          };
 306          "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
 307        })();
 308      }
 309    });
 310  
 311    // node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/with-selector.js
 312    var require_with_selector = __commonJS({
 313      "node_modules/.store/use-sync-external-store@1.7.0-jHNF5n8408rkWhZ5NHKclA/node_modules/use-sync-external-store/shim/with-selector.js"(exports, module) {
 314        "use strict";
 315        if (false) {
 316          module.exports = null;
 317        } else {
 318          module.exports = require_with_selector_development();
 319        }
 320      }
 321    });
 322  
 323    // package-external:@wordpress/a11y
 324    var require_a11y = __commonJS({
 325      "package-external:@wordpress/a11y"(exports, module) {
 326        module.exports = window.wp.a11y;
 327      }
 328    });
 329  
 330    // package-external:@wordpress/theme
 331    var require_theme = __commonJS({
 332      "package-external:@wordpress/theme"(exports, module) {
 333        module.exports = window.wp.theme;
 334      }
 335    });
 336  
 337    // package-external:@wordpress/private-apis
 338    var require_private_apis = __commonJS({
 339      "package-external:@wordpress/private-apis"(exports, module) {
 340        module.exports = window.wp.privateApis;
 341      }
 342    });
 343  
 344    // packages/block-directory/build-module/index.mjs
 345    var index_exports = {};
 346    __export(index_exports, {
 347      store: () => store
 348    });
 349  
 350    // packages/block-directory/build-module/plugins/index.mjs
 351    var import_plugins = __toESM(require_plugins(), 1);
 352    var import_hooks = __toESM(require_hooks(), 1);
 353  
 354    // packages/block-directory/build-module/components/auto-block-uninstaller/index.mjs
 355    var import_blocks2 = __toESM(require_blocks(), 1);
 356    var import_data4 = __toESM(require_data(), 1);
 357    var import_element = __toESM(require_element(), 1);
 358    var import_editor = __toESM(require_editor(), 1);
 359  
 360    // packages/block-directory/build-module/store/index.mjs
 361    var import_data3 = __toESM(require_data(), 1);
 362  
 363    // packages/block-directory/build-module/store/reducer.mjs
 364    var import_data = __toESM(require_data(), 1);
 365    var downloadableBlocks = (state = {}, action) => {
 366      switch (action.type) {
 367        case "FETCH_DOWNLOADABLE_BLOCKS":
 368          return {
 369            ...state,
 370            [action.filterValue]: {
 371              isRequesting: true
 372            }
 373          };
 374        case "RECEIVE_DOWNLOADABLE_BLOCKS":
 375          return {
 376            ...state,
 377            [action.filterValue]: {
 378              results: action.downloadableBlocks,
 379              isRequesting: false
 380            }
 381          };
 382      }
 383      return state;
 384    };
 385    var blockManagement = (state = {
 386      installedBlockTypes: [],
 387      isInstalling: {}
 388    }, action) => {
 389      switch (action.type) {
 390        case "ADD_INSTALLED_BLOCK_TYPE":
 391          return {
 392            ...state,
 393            installedBlockTypes: [
 394              ...state.installedBlockTypes,
 395              action.item
 396            ]
 397          };
 398        case "REMOVE_INSTALLED_BLOCK_TYPE":
 399          return {
 400            ...state,
 401            installedBlockTypes: state.installedBlockTypes.filter(
 402              (blockType) => blockType.name !== action.item.name
 403            )
 404          };
 405        case "SET_INSTALLING_BLOCK":
 406          return {
 407            ...state,
 408            isInstalling: {
 409              ...state.isInstalling,
 410              [action.blockId]: action.isInstalling
 411            }
 412          };
 413      }
 414      return state;
 415    };
 416    var errorNotices = (state = {}, action) => {
 417      switch (action.type) {
 418        case "SET_ERROR_NOTICE":
 419          return {
 420            ...state,
 421            [action.blockId]: {
 422              message: action.message,
 423              isFatal: action.isFatal
 424            }
 425          };
 426        case "CLEAR_ERROR_NOTICE":
 427          const { [action.blockId]: blockId, ...restState } = state;
 428          return restState;
 429      }
 430      return state;
 431    };
 432    var reducer_default = (0, import_data.combineReducers)({
 433      downloadableBlocks,
 434      blockManagement,
 435      errorNotices
 436    });
 437  
 438    // packages/block-directory/build-module/store/selectors.mjs
 439    var selectors_exports = {};
 440    __export(selectors_exports, {
 441      getDownloadableBlocks: () => getDownloadableBlocks,
 442      getErrorNoticeForBlock: () => getErrorNoticeForBlock,
 443      getErrorNotices: () => getErrorNotices,
 444      getInstalledBlockTypes: () => getInstalledBlockTypes,
 445      getNewBlockTypes: () => getNewBlockTypes,
 446      getUnusedBlockTypes: () => getUnusedBlockTypes,
 447      isInstalling: () => isInstalling,
 448      isRequestingDownloadableBlocks: () => isRequestingDownloadableBlocks
 449    });
 450    var import_data2 = __toESM(require_data(), 1);
 451    var import_block_editor = __toESM(require_block_editor(), 1);
 452    var EMPTY_ARRAY = [];
 453    function isRequestingDownloadableBlocks(state, filterValue) {
 454      return state.downloadableBlocks[filterValue]?.isRequesting ?? false;
 455    }
 456    function getDownloadableBlocks(state, filterValue) {
 457      return state.downloadableBlocks[filterValue]?.results ?? EMPTY_ARRAY;
 458    }
 459    function getInstalledBlockTypes(state) {
 460      return state.blockManagement.installedBlockTypes;
 461    }
 462    var getNewBlockTypes = (0, import_data2.createRegistrySelector)(
 463      (select) => (0, import_data2.createSelector)(
 464        (state) => {
 465          const installedBlockTypes = getInstalledBlockTypes(state);
 466          if (!installedBlockTypes.length) {
 467            return EMPTY_ARRAY;
 468          }
 469          const { getBlockName, getClientIdsWithDescendants } = select(import_block_editor.store);
 470          const installedBlockNames = installedBlockTypes.map(
 471            (blockType) => blockType.name
 472          );
 473          const foundBlockNames = getClientIdsWithDescendants().flatMap(
 474            (clientId) => {
 475              const blockName = getBlockName(clientId);
 476              return installedBlockNames.includes(blockName) ? blockName : [];
 477            }
 478          );
 479          const newBlockTypes = installedBlockTypes.filter(
 480            (blockType) => foundBlockNames.includes(blockType.name)
 481          );
 482          return newBlockTypes.length > 0 ? newBlockTypes : EMPTY_ARRAY;
 483        },
 484        (state) => [
 485          getInstalledBlockTypes(state),
 486          select(import_block_editor.store).getClientIdsWithDescendants()
 487        ]
 488      )
 489    );
 490    var getUnusedBlockTypes = (0, import_data2.createRegistrySelector)(
 491      (select) => (0, import_data2.createSelector)(
 492        (state) => {
 493          const installedBlockTypes = getInstalledBlockTypes(state);
 494          if (!installedBlockTypes.length) {
 495            return EMPTY_ARRAY;
 496          }
 497          const { getBlockName, getClientIdsWithDescendants } = select(import_block_editor.store);
 498          const installedBlockNames = installedBlockTypes.map(
 499            (blockType) => blockType.name
 500          );
 501          const foundBlockNames = getClientIdsWithDescendants().flatMap(
 502            (clientId) => {
 503              const blockName = getBlockName(clientId);
 504              return installedBlockNames.includes(blockName) ? blockName : [];
 505            }
 506          );
 507          const unusedBlockTypes = installedBlockTypes.filter(
 508            (blockType) => !foundBlockNames.includes(blockType.name)
 509          );
 510          return unusedBlockTypes.length > 0 ? unusedBlockTypes : EMPTY_ARRAY;
 511        },
 512        (state) => [
 513          getInstalledBlockTypes(state),
 514          select(import_block_editor.store).getClientIdsWithDescendants()
 515        ]
 516      )
 517    );
 518    function isInstalling(state, blockId) {
 519      return state.blockManagement.isInstalling[blockId] || false;
 520    }
 521    function getErrorNotices(state) {
 522      return state.errorNotices;
 523    }
 524    function getErrorNoticeForBlock(state, blockId) {
 525      return state.errorNotices[blockId];
 526    }
 527  
 528    // packages/block-directory/build-module/store/actions.mjs
 529    var actions_exports = {};
 530    __export(actions_exports, {
 531      addInstalledBlockType: () => addInstalledBlockType,
 532      clearErrorNotice: () => clearErrorNotice,
 533      fetchDownloadableBlocks: () => fetchDownloadableBlocks,
 534      installBlockType: () => installBlockType,
 535      receiveDownloadableBlocks: () => receiveDownloadableBlocks,
 536      removeInstalledBlockType: () => removeInstalledBlockType,
 537      setErrorNotice: () => setErrorNotice,
 538      setIsInstalling: () => setIsInstalling,
 539      uninstallBlockType: () => uninstallBlockType
 540    });
 541    var import_blocks = __toESM(require_blocks(), 1);
 542    var import_i18n = __toESM(require_i18n(), 1);
 543    var import_api_fetch2 = __toESM(require_api_fetch(), 1);
 544    var import_notices = __toESM(require_notices(), 1);
 545    var import_url = __toESM(require_url(), 1);
 546  
 547    // packages/block-directory/build-module/store/load-assets.mjs
 548    var import_api_fetch = __toESM(require_api_fetch(), 1);
 549    var loadAsset = (el) => {
 550      return new Promise((resolve, reject) => {
 551        const newNode = document.createElement(el.nodeName);
 552        ["id", "rel", "src", "href", "type"].forEach((attr2) => {
 553          if (el[attr2]) {
 554            newNode[attr2] = el[attr2];
 555          }
 556        });
 557        if (el.innerHTML) {
 558          newNode.appendChild(document.createTextNode(el.innerHTML));
 559        }
 560        newNode.onload = () => resolve(true);
 561        newNode.onerror = () => reject(new Error("Error loading asset."));
 562        document.body.appendChild(newNode);
 563        if ("link" === newNode.nodeName.toLowerCase() || "script" === newNode.nodeName.toLowerCase() && !newNode.src) {
 564          resolve();
 565        }
 566      });
 567    };
 568    async function loadAssets() {
 569      const response = await (0, import_api_fetch.default)({
 570        url: document.location.href,
 571        parse: false
 572      });
 573      const data = await response.text();
 574      const doc = new window.DOMParser().parseFromString(data, "text/html");
 575      const newAssets = Array.from(
 576        doc.querySelectorAll('link[rel="stylesheet"],script')
 577      ).filter((asset) => asset.id && !document.getElementById(asset.id));
 578      for (const newAsset of newAssets) {
 579        await loadAsset(newAsset);
 580      }
 581    }
 582  
 583    // packages/block-directory/build-module/store/utils/get-plugin-url.mjs
 584    function getPluginUrl(block) {
 585      if (!block) {
 586        return false;
 587      }
 588      const link = block.links["wp:plugin"] || block.links.self;
 589      if (link && link.length) {
 590        return link[0].href;
 591      }
 592      return false;
 593    }
 594  
 595    // packages/block-directory/build-module/store/actions.mjs
 596    function fetchDownloadableBlocks(filterValue) {
 597      return { type: "FETCH_DOWNLOADABLE_BLOCKS", filterValue };
 598    }
 599    function receiveDownloadableBlocks(downloadableBlocks2, filterValue) {
 600      return {
 601        type: "RECEIVE_DOWNLOADABLE_BLOCKS",
 602        downloadableBlocks: downloadableBlocks2,
 603        filterValue
 604      };
 605    }
 606    var installBlockType = (block) => async ({ registry, dispatch }) => {
 607      const { id, name } = block;
 608      let success = false;
 609      dispatch.clearErrorNotice(id);
 610      try {
 611        dispatch.setIsInstalling(id, true);
 612        const url = getPluginUrl(block);
 613        let links = {};
 614        if (url) {
 615          await (0, import_api_fetch2.default)({
 616            method: "PUT",
 617            url,
 618            data: { status: "active" }
 619          });
 620        } else {
 621          const response = await (0, import_api_fetch2.default)({
 622            method: "POST",
 623            path: "wp/v2/plugins",
 624            data: { slug: id, status: "active" }
 625          });
 626          links = response._links;
 627        }
 628        dispatch.addInstalledBlockType({
 629          ...block,
 630          links: { ...block.links, ...links }
 631        });
 632        const metadataFields = [
 633          "api_version",
 634          "title",
 635          "category",
 636          "parent",
 637          "ancestor",
 638          "icon",
 639          "description",
 640          "keywords",
 641          "attributes",
 642          "provides_context",
 643          "uses_context",
 644          "selectors",
 645          "supports",
 646          "styles",
 647          "example",
 648          "variations",
 649          "allowed_blocks",
 650          "block_hooks"
 651        ];
 652        await (0, import_api_fetch2.default)({
 653          path: (0, import_url.addQueryArgs)(`/wp/v2/block-types/$name}`, {
 654            _fields: metadataFields
 655          })
 656        }).catch(() => {
 657        }).then((response) => {
 658          if (!response) {
 659            return;
 660          }
 661          (0, import_blocks.unstable__bootstrapServerSideBlockDefinitions)({
 662            [name]: Object.fromEntries(
 663              Object.entries(response).filter(
 664                ([key]) => metadataFields.includes(key)
 665              )
 666            )
 667          });
 668        });
 669        await loadAssets();
 670        const registeredBlocks = registry.select(import_blocks.store).getBlockTypes();
 671        if (!registeredBlocks.some((i) => i.name === name)) {
 672          throw new Error(
 673            (0, import_i18n.__)("Error registering block. Try reloading the page.")
 674          );
 675        }
 676        registry.dispatch(import_notices.store).createInfoNotice(
 677          (0, import_i18n.sprintf)(
 678            // translators: %s is the block title.
 679            (0, import_i18n.__)("Block %s installed and added."),
 680            block.title
 681          ),
 682          {
 683            speak: true,
 684            type: "snackbar"
 685          }
 686        );
 687        success = true;
 688      } catch (error2) {
 689        let message = error2.message || (0, import_i18n.__)("An error occurred.");
 690        let isFatal = error2 instanceof Error;
 691        const fatalAPIErrors = {
 692          folder_exists: (0, import_i18n.__)(
 693            "This block is already installed. Try reloading the page."
 694          ),
 695          unable_to_connect_to_filesystem: (0, import_i18n.__)(
 696            "Error installing block. You can reload the page and try again."
 697          )
 698        };
 699        if (fatalAPIErrors[error2.code]) {
 700          isFatal = true;
 701          message = fatalAPIErrors[error2.code];
 702        }
 703        dispatch.setErrorNotice(id, message, isFatal);
 704        registry.dispatch(import_notices.store).createErrorNotice(message, {
 705          speak: true,
 706          isDismissible: true
 707        });
 708      }
 709      dispatch.setIsInstalling(id, false);
 710      return success;
 711    };
 712    var uninstallBlockType = (block) => async ({ registry, dispatch }) => {
 713      try {
 714        const url = getPluginUrl(block);
 715        await (0, import_api_fetch2.default)({
 716          method: "PUT",
 717          url,
 718          data: { status: "inactive" }
 719        });
 720        await (0, import_api_fetch2.default)({
 721          method: "DELETE",
 722          url
 723        });
 724        dispatch.removeInstalledBlockType(block);
 725      } catch (error2) {
 726        registry.dispatch(import_notices.store).createErrorNotice(
 727          error2.message || (0, import_i18n.__)("An error occurred.")
 728        );
 729      }
 730    };
 731    function addInstalledBlockType(item) {
 732      return {
 733        type: "ADD_INSTALLED_BLOCK_TYPE",
 734        item
 735      };
 736    }
 737    function removeInstalledBlockType(item) {
 738      return {
 739        type: "REMOVE_INSTALLED_BLOCK_TYPE",
 740        item
 741      };
 742    }
 743    function setIsInstalling(blockId, isInstalling2) {
 744      return {
 745        type: "SET_INSTALLING_BLOCK",
 746        blockId,
 747        isInstalling: isInstalling2
 748      };
 749    }
 750    function setErrorNotice(blockId, message, isFatal = false) {
 751      return {
 752        type: "SET_ERROR_NOTICE",
 753        blockId,
 754        message,
 755        isFatal
 756      };
 757    }
 758    function clearErrorNotice(blockId) {
 759      return {
 760        type: "CLEAR_ERROR_NOTICE",
 761        blockId
 762      };
 763    }
 764  
 765    // packages/block-directory/build-module/store/resolvers.mjs
 766    var resolvers_exports = {};
 767    __export(resolvers_exports, {
 768      getDownloadableBlocks: () => getDownloadableBlocks2
 769    });
 770  
 771    // node_modules/.store/tslib@2.8.1-LT-dxu1EkVy7OUDyVf5glQ/node_modules/tslib/tslib.es6.mjs
 772    var __assign = function() {
 773      __assign = Object.assign || function __assign2(t) {
 774        for (var s, i = 1, n = arguments.length; i < n; i++) {
 775          s = arguments[i];
 776          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
 777        }
 778        return t;
 779      };
 780      return __assign.apply(this, arguments);
 781    };
 782  
 783    // node_modules/.store/lower-case@2.0.2-5YZP5nczP5_f_8Vt5KBPjA/node_modules/lower-case/dist.es2015/index.js
 784    function lowerCase(str) {
 785      return str.toLowerCase();
 786    }
 787  
 788    // node_modules/.store/no-case@3.0.4-R4Hzt6qn-erEsTak7ojDpg/node_modules/no-case/dist.es2015/index.js
 789    var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
 790    var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
 791    function noCase(input, options) {
 792      if (options === void 0) {
 793        options = {};
 794      }
 795      var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d;
 796      var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
 797      var start = 0;
 798      var end = result.length;
 799      while (result.charAt(start) === "\0")
 800        start++;
 801      while (result.charAt(end - 1) === "\0")
 802        end--;
 803      return result.slice(start, end).split("\0").map(transform).join(delimiter);
 804    }
 805    function replace(input, re, value) {
 806      if (re instanceof RegExp)
 807        return input.replace(re, value);
 808      return re.reduce(function(input2, re2) {
 809        return input2.replace(re2, value);
 810      }, input);
 811    }
 812  
 813    // node_modules/.store/pascal-case@3.1.2-khtSA9hpCTEVLYfMgyRdoA/node_modules/pascal-case/dist.es2015/index.js
 814    function pascalCaseTransform(input, index2) {
 815      var firstChar = input.charAt(0);
 816      var lowerChars = input.substr(1).toLowerCase();
 817      if (index2 > 0 && firstChar >= "0" && firstChar <= "9") {
 818        return "_" + firstChar + lowerChars;
 819      }
 820      return "" + firstChar.toUpperCase() + lowerChars;
 821    }
 822    function pascalCase(input, options) {
 823      if (options === void 0) {
 824        options = {};
 825      }
 826      return noCase(input, __assign({ delimiter: "", transform: pascalCaseTransform }, options));
 827    }
 828  
 829    // node_modules/.store/camel-case@4.1.2-5Gz5buNb7xjdcDcS4uJ7xw/node_modules/camel-case/dist.es2015/index.js
 830    function camelCaseTransform(input, index2) {
 831      if (index2 === 0)
 832        return input.toLowerCase();
 833      return pascalCaseTransform(input, index2);
 834    }
 835    function camelCase(input, options) {
 836      if (options === void 0) {
 837        options = {};
 838      }
 839      return pascalCase(input, __assign({ transform: camelCaseTransform }, options));
 840    }
 841  
 842    // packages/block-directory/build-module/store/resolvers.mjs
 843    var import_api_fetch3 = __toESM(require_api_fetch(), 1);
 844    var getDownloadableBlocks2 = (filterValue) => async ({ dispatch }) => {
 845      if (!filterValue) {
 846        return;
 847      }
 848      try {
 849        dispatch(fetchDownloadableBlocks(filterValue));
 850        const results = await (0, import_api_fetch3.default)({
 851          path: `wp/v2/block-directory/search?term=$filterValue}`
 852        });
 853        const blocks = results.map(
 854          (result) => Object.fromEntries(
 855            Object.entries(result).map(([key, value]) => [
 856              camelCase(key),
 857              value
 858            ])
 859          )
 860        );
 861        dispatch(receiveDownloadableBlocks(blocks, filterValue));
 862      } catch {
 863        dispatch(receiveDownloadableBlocks([], filterValue));
 864      }
 865    };
 866  
 867    // packages/block-directory/build-module/store/index.mjs
 868    var STORE_NAME = "core/block-directory";
 869    var storeConfig = {
 870      reducer: reducer_default,
 871      selectors: selectors_exports,
 872      actions: actions_exports,
 873      resolvers: resolvers_exports
 874    };
 875    var store = (0, import_data3.createReduxStore)(STORE_NAME, storeConfig);
 876    (0, import_data3.register)(store);
 877  
 878    // packages/block-directory/build-module/components/auto-block-uninstaller/index.mjs
 879    function AutoBlockUninstaller() {
 880      const { uninstallBlockType: uninstallBlockType2 } = (0, import_data4.useDispatch)(store);
 881      const shouldRemoveBlockTypes = (0, import_data4.useSelect)((select) => {
 882        const { isAutosavingPost, isSavingPost } = select(import_editor.store);
 883        return isSavingPost() && !isAutosavingPost();
 884      }, []);
 885      const unusedBlockTypes = (0, import_data4.useSelect)(
 886        (select) => select(store).getUnusedBlockTypes(),
 887        []
 888      );
 889      (0, import_element.useEffect)(() => {
 890        if (shouldRemoveBlockTypes && unusedBlockTypes.length) {
 891          unusedBlockTypes.forEach((blockType) => {
 892            uninstallBlockType2(blockType);
 893            (0, import_blocks2.unregisterBlockType)(blockType.name);
 894          });
 895        }
 896      }, [shouldRemoveBlockTypes]);
 897      return null;
 898    }
 899  
 900    // packages/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.mjs
 901    var import_block_editor3 = __toESM(require_block_editor(), 1);
 902    var import_compose = __toESM(require_compose(), 1);
 903    var import_element35 = __toESM(require_element(), 1);
 904  
 905    // packages/block-directory/build-module/components/downloadable-blocks-panel/index.mjs
 906    var import_i18n13 = __toESM(require_i18n(), 1);
 907    var import_components3 = __toESM(require_components(), 1);
 908    var import_core_data = __toESM(require_core_data(), 1);
 909    var import_data8 = __toESM(require_data(), 1);
 910    var import_blocks5 = __toESM(require_blocks(), 1);
 911  
 912    // packages/block-directory/build-module/components/downloadable-blocks-list/index.mjs
 913    var import_i18n10 = __toESM(require_i18n(), 1);
 914    var import_components2 = __toESM(require_components(), 1);
 915    var import_blocks4 = __toESM(require_blocks(), 1);
 916    var import_data7 = __toESM(require_data(), 1);
 917  
 918    // node_modules/.store/clsx@2.1.1-XOLP1vUL9vEGfpiXm37fAw/node_modules/clsx/dist/clsx.mjs
 919    function r(e) {
 920      var t, f, n = "";
 921      if ("string" == typeof e || "number" == typeof e) n += e;
 922      else if ("object" == typeof e) if (Array.isArray(e)) {
 923        var o = e.length;
 924        for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
 925      } else for (f in e) e[f] && (n && (n += " "), n += f);
 926      return n;
 927    }
 928    function clsx() {
 929      for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
 930      return n;
 931    }
 932    var clsx_default = clsx;
 933  
 934    // packages/block-directory/build-module/components/downloadable-block-list-item/index.mjs
 935    var import_i18n9 = __toESM(require_i18n(), 1);
 936    var import_components = __toESM(require_components(), 1);
 937    var import_element33 = __toESM(require_element(), 1);
 938    var import_html_entities = __toESM(require_html_entities(), 1);
 939    var import_blocks3 = __toESM(require_blocks(), 1);
 940    var import_data6 = __toESM(require_data(), 1);
 941  
 942    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useRenderElement.mjs
 943    var React4 = __toESM(require_react(), 1);
 944  
 945    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useRefWithInit.mjs
 946    var React = __toESM(require_react(), 1);
 947    var UNINITIALIZED = {};
 948    function useRefWithInit(init, initArg) {
 949      const ref = React.useRef(UNINITIALIZED);
 950      if (ref.current === UNINITIALIZED) {
 951        ref.current = init(initArg);
 952      }
 953      return ref;
 954    }
 955  
 956    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useMergedRefs.mjs
 957    function useMergedRefs(a, b, c, d) {
 958      const forkRef = useRefWithInit(createForkRef).current;
 959      if (didChange(forkRef, a, b, c, d)) {
 960        update(forkRef, [a, b, c, d]);
 961      }
 962      return forkRef.callback;
 963    }
 964    function useMergedRefsN(refs) {
 965      const forkRef = useRefWithInit(createForkRef).current;
 966      if (didChangeN(forkRef, refs)) {
 967        update(forkRef, refs);
 968      }
 969      return forkRef.callback;
 970    }
 971    function createForkRef() {
 972      return {
 973        callback: null,
 974        cleanup: null,
 975        refs: []
 976      };
 977    }
 978    function didChange(forkRef, a, b, c, d) {
 979      return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
 980    }
 981    function didChangeN(forkRef, newRefs) {
 982      return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index2) => ref !== newRefs[index2]);
 983    }
 984    function update(forkRef, refs) {
 985      forkRef.refs = refs;
 986      if (refs.every((ref) => ref == null)) {
 987        forkRef.callback = null;
 988        return;
 989      }
 990      forkRef.callback = (instance) => {
 991        if (forkRef.cleanup) {
 992          forkRef.cleanup();
 993          forkRef.cleanup = null;
 994        }
 995        if (instance != null) {
 996          const cleanupCallbacks = Array(refs.length).fill(null);
 997          for (let i = 0; i < refs.length; i += 1) {
 998            const ref = refs[i];
 999            if (ref == null) {
1000              continue;
1001            }
1002            switch (typeof ref) {
1003              case "function": {
1004                const refCleanup = ref(instance);
1005                if (typeof refCleanup === "function") {
1006                  cleanupCallbacks[i] = refCleanup;
1007                }
1008                break;
1009              }
1010              case "object": {
1011                ref.current = instance;
1012                break;
1013              }
1014              default:
1015            }
1016          }
1017          forkRef.cleanup = () => {
1018            for (let i = 0; i < refs.length; i += 1) {
1019              const ref = refs[i];
1020              if (ref == null) {
1021                continue;
1022              }
1023              switch (typeof ref) {
1024                case "function": {
1025                  const cleanupCallback = cleanupCallbacks[i];
1026                  if (typeof cleanupCallback === "function") {
1027                    cleanupCallback();
1028                  } else {
1029                    void ref(null);
1030                  }
1031                  break;
1032                }
1033                case "object": {
1034                  ref.current = null;
1035                  break;
1036                }
1037                default:
1038              }
1039            }
1040          };
1041        }
1042      };
1043    }
1044  
1045    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/getReactElementRef.mjs
1046    var React3 = __toESM(require_react(), 1);
1047  
1048    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/reactVersion.mjs
1049    var React2 = __toESM(require_react(), 1);
1050    var majorVersion = parseInt(React2.version, 10);
1051    function isReactVersionAtLeast(reactVersionToCheck) {
1052      return majorVersion >= reactVersionToCheck;
1053    }
1054  
1055    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/getReactElementRef.mjs
1056    function getReactElementRef(element) {
1057      if (!/* @__PURE__ */ React3.isValidElement(element)) {
1058        return null;
1059      }
1060      const reactElement = element;
1061      const propsWithRef = reactElement.props;
1062      return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null;
1063    }
1064  
1065    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/mergeObjects.mjs
1066    function mergeObjects(a, b) {
1067      if (a && !b) {
1068        return a;
1069      }
1070      if (!a && b) {
1071        return b;
1072      }
1073      if (a || b) {
1074        return {
1075          ...a,
1076          ...b
1077        };
1078      }
1079      return void 0;
1080    }
1081  
1082    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/createLogOnce.mjs
1083    var loggedMessages;
1084    if (true) {
1085      loggedMessages = /* @__PURE__ */ new Set();
1086    }
1087    function createLogOnce(severity, prefix) {
1088      return function logOnce(...messages) {
1089        if (true) {
1090          const message = messages.join(" ");
1091          const output = prefix ? `$prefix}: $message}` : message;
1092          const key = `$severity}:$output}`;
1093          if (!loggedMessages.has(key)) {
1094            loggedMessages.add(key);
1095            if (severity === "warn") {
1096              console.warn(output);
1097            } else {
1098              console.error(output);
1099            }
1100          }
1101        }
1102      };
1103    }
1104  
1105    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/warn.mjs
1106    var warn = createLogOnce("warn", "Base UI");
1107  
1108    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/empty.mjs
1109    function NOOP() {
1110    }
1111    var EMPTY_ARRAY2 = Object.freeze([]);
1112    var EMPTY_OBJECT = Object.freeze({});
1113  
1114    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/getStateAttributesProps.mjs
1115    function getStateAttributesProps(state, customMapping) {
1116      const props = {};
1117      for (const key in state) {
1118        const value = state[key];
1119        if (customMapping?.hasOwnProperty(key)) {
1120          const customProps = customMapping[key](value);
1121          if (customProps != null) {
1122            Object.assign(props, customProps);
1123          }
1124          continue;
1125        }
1126        if (value === true) {
1127          props[`data-$key.toLowerCase()}`] = "";
1128        } else if (value) {
1129          props[`data-$key.toLowerCase()}`] = value.toString();
1130        }
1131      }
1132      return props;
1133    }
1134  
1135    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/resolveClassName.mjs
1136    function resolveClassName(className, state) {
1137      return typeof className === "function" ? className(state) : className;
1138    }
1139  
1140    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/resolveStyle.mjs
1141    function resolveStyle(style, state) {
1142      return typeof style === "function" ? style(state) : style;
1143    }
1144  
1145    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/merge-props/mergeProps.mjs
1146    var EMPTY_PROPS = {};
1147    function mergeProps(a, b, c, d, e) {
1148      if (!c && !d && !e && !a) {
1149        return createInitialMergedProps(b);
1150      }
1151      let merged = createInitialMergedProps(a);
1152      if (b) {
1153        merged = mergeInto(merged, b);
1154      }
1155      if (c) {
1156        merged = mergeInto(merged, c);
1157      }
1158      if (d) {
1159        merged = mergeInto(merged, d);
1160      }
1161      if (e) {
1162        merged = mergeInto(merged, e);
1163      }
1164      return merged;
1165    }
1166    function mergePropsN(props) {
1167      if (props.length === 0) {
1168        return EMPTY_PROPS;
1169      }
1170      if (props.length === 1) {
1171        return createInitialMergedProps(props[0]);
1172      }
1173      let merged = createInitialMergedProps(props[0]);
1174      for (let i = 1; i < props.length; i += 1) {
1175        merged = mergeInto(merged, props[i]);
1176      }
1177      return merged;
1178    }
1179    function createInitialMergedProps(inputProps) {
1180      if (isPropsGetter(inputProps)) {
1181        return {
1182          ...inputProps(EMPTY_PROPS)
1183        };
1184      }
1185      return copyInitialProps(inputProps);
1186    }
1187    function mergeInto(merged, inputProps) {
1188      if (isPropsGetter(inputProps)) {
1189        return inputProps(merged);
1190      }
1191      return mutablyMergeInto(merged, inputProps);
1192    }
1193    function copyInitialProps(inputProps) {
1194      const copiedProps = {
1195        ...inputProps
1196      };
1197      for (const propName in copiedProps) {
1198        const propValue = copiedProps[propName];
1199        if (isEventHandler(propName, propValue)) {
1200          copiedProps[propName] = wrapEventHandler(propValue);
1201        }
1202      }
1203      return copiedProps;
1204    }
1205    function mutablyMergeInto(mergedProps, externalProps) {
1206      if (!externalProps) {
1207        return mergedProps;
1208      }
1209      for (const propName in externalProps) {
1210        const externalPropValue = externalProps[propName];
1211        switch (propName) {
1212          case "style": {
1213            mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);
1214            break;
1215          }
1216          case "className": {
1217            mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);
1218            break;
1219          }
1220          default: {
1221            if (isEventHandler(propName, externalPropValue)) {
1222              mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);
1223            } else {
1224              mergedProps[propName] = externalPropValue;
1225            }
1226          }
1227        }
1228      }
1229      return mergedProps;
1230    }
1231    function isEventHandler(key, value) {
1232      const code0 = key.charCodeAt(0);
1233      const code1 = key.charCodeAt(1);
1234      const code2 = key.charCodeAt(2);
1235      return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined");
1236    }
1237    function isPropsGetter(inputProps) {
1238      return typeof inputProps === "function";
1239    }
1240    function mergeEventHandlers(ourHandler, theirHandler) {
1241      if (!theirHandler) {
1242        return ourHandler;
1243      }
1244      if (!ourHandler) {
1245        return wrapEventHandler(theirHandler);
1246      }
1247      return (...args) => {
1248        const event = args[0];
1249        if (isSyntheticEvent(event)) {
1250          const baseUIEvent = event;
1251          makeEventPreventable(baseUIEvent);
1252          const result2 = theirHandler(...args);
1253          if (!baseUIEvent.baseUIHandlerPrevented) {
1254            ourHandler?.(...args);
1255          }
1256          return result2;
1257        }
1258        const result = theirHandler(...args);
1259        ourHandler?.(...args);
1260        return result;
1261      };
1262    }
1263    function wrapEventHandler(handler) {
1264      if (!handler) {
1265        return handler;
1266      }
1267      return (...args) => {
1268        const event = args[0];
1269        if (isSyntheticEvent(event)) {
1270          makeEventPreventable(event);
1271        }
1272        return handler(...args);
1273      };
1274    }
1275    function makeEventPreventable(event) {
1276      event.preventBaseUIHandler = () => {
1277        event.baseUIHandlerPrevented = true;
1278      };
1279      return event;
1280    }
1281    function mergeClassNames(ourClassName, theirClassName) {
1282      if (theirClassName) {
1283        if (ourClassName) {
1284          return theirClassName + " " + ourClassName;
1285        }
1286        return theirClassName;
1287      }
1288      return ourClassName;
1289    }
1290    function isSyntheticEvent(event) {
1291      return event != null && typeof event === "object" && "nativeEvent" in event;
1292    }
1293  
1294    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useRenderElement.mjs
1295    var import_react = __toESM(require_react(), 1);
1296    function useRenderElement(element, componentProps, params = {}) {
1297      let renderProp = componentProps.render;
1298      if (params.enabled !== false) {
1299        renderProp = unwrapLazyRenderProp(renderProp);
1300      }
1301      const outProps = useRenderElementProps(componentProps, params, renderProp);
1302      if (params.enabled === false) {
1303        return null;
1304      }
1305      const state = params.state ?? EMPTY_OBJECT;
1306      return evaluateRenderProp(element, renderProp, outProps, state);
1307    }
1308    function useRenderElementProps(componentProps, params, renderProp) {
1309      const {
1310        className: classNameProp,
1311        style: styleProp
1312      } = componentProps;
1313      const {
1314        state = EMPTY_OBJECT,
1315        ref,
1316        props,
1317        stateAttributesMapping,
1318        enabled = true
1319      } = params;
1320      const className = enabled ? resolveClassName(classNameProp, state) : void 0;
1321      const style = enabled ? resolveStyle(styleProp, state) : void 0;
1322      const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
1323      const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0;
1324      const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT;
1325      if (typeof document !== "undefined") {
1326        if (!enabled) {
1327          void useMergedRefs(null, null);
1328        } else if (Array.isArray(ref)) {
1329          outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);
1330        } else {
1331          outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);
1332        }
1333      }
1334      if (!enabled) {
1335        return EMPTY_OBJECT;
1336      }
1337      if (className !== void 0) {
1338        outProps.className = mergeClassNames(outProps.className, className);
1339      }
1340      if (style !== void 0) {
1341        outProps.style = mergeObjects(outProps.style, style);
1342      }
1343      return outProps;
1344    }
1345    function resolveRenderFunctionProps(props) {
1346      if (Array.isArray(props)) {
1347        return mergePropsN(props);
1348      }
1349      return mergeProps(void 0, props);
1350    }
1351    var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
1352    var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/;
1353    var LOWERCASE_CHARACTER_PATTERN = /[a-z]/;
1354    function unwrapLazyRenderProp(render) {
1355      if (render?.$$typeof !== REACT_LAZY_TYPE) {
1356        return render;
1357      }
1358      const unwrapped = React4.Children.toArray(render)[0];
1359      return /* @__PURE__ */ React4.isValidElement(unwrapped) ? unwrapped : render;
1360    }
1361    function evaluateRenderProp(element, render, props, state) {
1362      if (render) {
1363        if (typeof render === "function") {
1364          if (true) {
1365            warnIfRenderPropLooksLikeComponent(render);
1366          }
1367          return render(props, state);
1368        }
1369        const mergedProps = mergeProps(props, render.props);
1370        mergedProps.ref = props.ref;
1371        if (true) {
1372          if (!/* @__PURE__ */ React4.isValidElement(render)) {
1373            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"));
1374          }
1375        }
1376        return /* @__PURE__ */ React4.cloneElement(render, mergedProps);
1377      }
1378      return renderTag(element, props);
1379    }
1380    function warnIfRenderPropLooksLikeComponent(renderFn) {
1381      const functionName = renderFn.name;
1382      if (functionName.length === 0) {
1383        return;
1384      }
1385      if (!COMPONENT_IDENTIFIER_PATTERN.test(functionName)) {
1386        return;
1387      }
1388      if (!LOWERCASE_CHARACTER_PATTERN.test(functionName)) {
1389        return;
1390      }
1391      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");
1392    }
1393    function renderTag(Tag, props) {
1394      if (Tag === "button") {
1395        return /* @__PURE__ */ (0, import_react.createElement)("button", {
1396          type: "button",
1397          ...props,
1398          key: props.key
1399        });
1400      }
1401      if (Tag === "img") {
1402        return /* @__PURE__ */ (0, import_react.createElement)("img", {
1403          alt: "",
1404          ...props,
1405          key: props.key
1406        });
1407      }
1408      return /* @__PURE__ */ React4.createElement(Tag, props);
1409    }
1410  
1411    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/safeReact.mjs
1412    var React5 = __toESM(require_react(), 1);
1413    var SafeReact = {
1414      ...React5
1415    };
1416  
1417    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useStableCallback.mjs
1418    var useInsertionEffect = SafeReact.useInsertionEffect;
1419    var useSafeInsertionEffect = (
1420      // React 17 doesn't have useInsertionEffect.
1421      useInsertionEffect && // Preact replaces useInsertionEffect with useLayoutEffect and fires too late.
1422      useInsertionEffect !== SafeReact.useLayoutEffect ? useInsertionEffect : (fn) => fn()
1423    );
1424    function useStableCallback(callback) {
1425      const stable = useRefWithInit(createStableCallback).current;
1426      stable.next = callback;
1427      useSafeInsertionEffect(stable.effect);
1428      return stable.trampoline;
1429    }
1430    function createStableCallback() {
1431      const stable = {
1432        next: void 0,
1433        callback: assertNotCalled,
1434        trampoline: (...args) => stable.callback?.(...args),
1435        effect: () => {
1436          stable.callback = stable.next;
1437        }
1438      };
1439      return stable;
1440    }
1441    function assertNotCalled() {
1442      if (true) {
1443        throw (
1444          /* minify-error-disabled */
1445          new Error("Base UI: Cannot call an event handler while rendering.")
1446        );
1447      }
1448    }
1449  
1450    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useIsoLayoutEffect.mjs
1451    var React6 = __toESM(require_react(), 1);
1452    var noop = () => {
1453    };
1454    var useIsoLayoutEffect = typeof document !== "undefined" ? React6.useLayoutEffect : noop;
1455  
1456    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs
1457    var React8 = __toESM(require_react(), 1);
1458  
1459    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnimationsFinished.mjs
1460    var ReactDOM = __toESM(require_react_dom(), 1);
1461  
1462    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useOnMount.mjs
1463    var React7 = __toESM(require_react(), 1);
1464    function useOnMount(fn) {
1465      React7.useEffect(fn, EMPTY_ARRAY2);
1466    }
1467  
1468    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useAnimationFrame.mjs
1469    var EMPTY = null;
1470    var LAST_RAF = globalThis.requestAnimationFrame;
1471    var Scheduler = class {
1472      /* This implementation uses an array as a backing data-structure for frame callbacks.
1473       * It allows `O(1)` callback cancelling by inserting a `null` in the array, though it
1474       * never calls the native `cancelAnimationFrame` if there are no frames left. This can
1475       * be much more efficient if there is a call pattern that alterns as
1476       * "request-cancel-request-cancel-…".
1477       * But in the case of "request-request-…-cancel-cancel-…", it leaves the final animation
1478       * frame to run anyway. We turn that frame into a `O(1)` no-op via `callbacksCount`. */
1479      callbacks = [];
1480      callbacksCount = 0;
1481      nextId = 1;
1482      startId = 1;
1483      isScheduled = false;
1484      tick = (timestamp) => {
1485        this.isScheduled = false;
1486        const currentCallbacks = this.callbacks;
1487        const currentCallbacksCount = this.callbacksCount;
1488        this.callbacks = [];
1489        this.callbacksCount = 0;
1490        this.startId = this.nextId;
1491        if (currentCallbacksCount > 0) {
1492          for (let i = 0; i < currentCallbacks.length; i += 1) {
1493            currentCallbacks[i]?.(timestamp);
1494          }
1495        }
1496      };
1497      request(fn) {
1498        const id = this.nextId;
1499        this.nextId += 1;
1500        this.callbacks.push(fn);
1501        this.callbacksCount += 1;
1502        const didRAFChange = LAST_RAF !== requestAnimationFrame && (LAST_RAF = requestAnimationFrame, true);
1503        if (!this.isScheduled || didRAFChange) {
1504          requestAnimationFrame(this.tick);
1505          this.isScheduled = true;
1506        }
1507        return id;
1508      }
1509      cancel(id) {
1510        const index2 = id - this.startId;
1511        if (index2 < 0 || index2 >= this.callbacks.length) {
1512          return;
1513        }
1514        if (this.callbacks[index2] === null) {
1515          return;
1516        }
1517        this.callbacks[index2] = null;
1518        this.callbacksCount -= 1;
1519      }
1520    };
1521    var scheduler = new Scheduler();
1522    var AnimationFrame = class _AnimationFrame {
1523      static create() {
1524        return new _AnimationFrame();
1525      }
1526      static request(fn) {
1527        return scheduler.request(fn);
1528      }
1529      static cancel(id) {
1530        return scheduler.cancel(id);
1531      }
1532      currentId = EMPTY;
1533      /**
1534       * Executes `fn` after `delay`, clearing any previously scheduled call.
1535       */
1536      request(fn) {
1537        this.cancel();
1538        this.currentId = scheduler.request(() => {
1539          this.currentId = EMPTY;
1540          fn();
1541        });
1542      }
1543      cancel = () => {
1544        if (this.currentId !== EMPTY) {
1545          scheduler.cancel(this.currentId);
1546          this.currentId = EMPTY;
1547        }
1548      };
1549      disposeEffect = () => {
1550        return this.cancel;
1551      };
1552    };
1553    function useAnimationFrame() {
1554      const timeout = useRefWithInit(AnimationFrame.create).current;
1555      useOnMount(timeout.disposeEffect);
1556      return timeout;
1557    }
1558  
1559    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/resolveRef.mjs
1560    function resolveRef(maybeRef) {
1561      if (maybeRef == null) {
1562        return maybeRef;
1563      }
1564      return "current" in maybeRef ? maybeRef.current : maybeRef;
1565    }
1566  
1567    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/getFiniteAnimations.mjs
1568    function getFiniteAnimations(element, options) {
1569      return element.getAnimations(options).filter((animation) => {
1570        const timing = animation.effect?.getTiming();
1571        return timing?.duration !== Infinity && timing?.iterations !== Infinity;
1572      });
1573    }
1574  
1575    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/TransitionStatusDataAttributes.mjs
1576    var startingStyle = "data-starting-style";
1577    var endingStyle = "data-ending-style";
1578  
1579    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnimationsFinished.mjs
1580    var pendingCallbacks = null;
1581    function flushBeforePaint(fn) {
1582      if (!pendingCallbacks) {
1583        const callbacks = [];
1584        pendingCallbacks = callbacks;
1585        queueMicrotask(() => {
1586          pendingCallbacks = null;
1587          ReactDOM.flushSync(() => {
1588            for (const callback of callbacks) {
1589              callback();
1590            }
1591          });
1592        });
1593      }
1594      pendingCallbacks.push(fn);
1595    }
1596    function useAnimationsFinished(elementOrRef, waitForStartingStyleRemoved = false, batch = false) {
1597      const frame = useAnimationFrame();
1598      return useStableCallback((fnToExecute, signal = null) => {
1599        frame.cancel();
1600        const element = resolveRef(elementOrRef);
1601        if (element == null) {
1602          return;
1603        }
1604        const resolvedElement = element;
1605        const done = () => {
1606          if (!batch) {
1607            ReactDOM.flushSync(fnToExecute);
1608            return;
1609          }
1610          flushBeforePaint(() => {
1611            if (!signal?.aborted) {
1612              fnToExecute();
1613            }
1614          });
1615        };
1616        if (typeof resolvedElement.getAnimations !== "function" || globalThis.BASE_UI_ANIMATIONS_DISABLED) {
1617          fnToExecute();
1618          return;
1619        }
1620        function exec() {
1621          Promise.all(getFiniteAnimations(resolvedElement).map((animation) => animation.finished.then(NOOP))).then(() => {
1622            if (!signal?.aborted) {
1623              done();
1624            }
1625          }, () => {
1626            if (signal?.aborted) {
1627              return;
1628            }
1629            const currentAnimations = getFiniteAnimations(resolvedElement);
1630            if (currentAnimations.some((animation) => animation.pending || animation.playState !== "finished")) {
1631              exec();
1632              return;
1633            }
1634            done();
1635          });
1636        }
1637        if (waitForStartingStyleRemoved) {
1638          const startingStyleAttribute = startingStyle;
1639          if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
1640            frame.request(exec);
1641            return;
1642          }
1643          const attributeObserver = new MutationObserver(() => {
1644            if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
1645              attributeObserver.disconnect();
1646              exec();
1647            }
1648          });
1649          attributeObserver.observe(resolvedElement, {
1650            attributes: true,
1651            attributeFilter: [startingStyleAttribute]
1652          });
1653          signal?.addEventListener("abort", () => attributeObserver.disconnect(), {
1654            once: true
1655          });
1656          return;
1657        }
1658        frame.request(exec);
1659      });
1660    }
1661  
1662    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs
1663    function useOpenChangeComplete(parameters) {
1664      const {
1665        enabled = true,
1666        open: open2,
1667        ref,
1668        batch = false,
1669        onComplete: onCompleteParam
1670      } = parameters;
1671      const onComplete = useStableCallback(onCompleteParam);
1672      const runOnceAnimationsFinish = useAnimationsFinished(ref, open2, batch);
1673      React8.useEffect(() => {
1674        if (!enabled) {
1675          return void 0;
1676        }
1677        const abortController = new AbortController();
1678        runOnceAnimationsFinish(onComplete, abortController.signal);
1679        return () => {
1680          abortController.abort();
1681        };
1682      }, [enabled, open2, onComplete, runOnceAnimationsFinish]);
1683    }
1684  
1685    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/stateAttributesMapping.mjs
1686    var STARTING_HOOK = {
1687      [startingStyle]: ""
1688    };
1689    var ENDING_HOOK = {
1690      [endingStyle]: ""
1691    };
1692    var transitionStatusMapping = {
1693      transitionStatus(value) {
1694        if (value === "starting") {
1695          return STARTING_HOOK;
1696        }
1697        if (value === "ending") {
1698          return ENDING_HOOK;
1699        }
1700        return null;
1701      }
1702    };
1703  
1704    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useTransitionStatus.mjs
1705    var React9 = __toESM(require_react(), 1);
1706    function useTransitionStatus(open2, enableIdleState = false, deferEndingState = false, animateInitialOpen = false) {
1707      const [transitionStatus, setTransitionStatus] = React9.useState(open2 && enableIdleState ? "idle" : void 0);
1708      const [mounted, setMounted] = React9.useState(open2 && !animateInitialOpen);
1709      if (open2 && !mounted) {
1710        setMounted(true);
1711        setTransitionStatus("starting");
1712      }
1713      if (!open2 && mounted && transitionStatus !== "ending" && !deferEndingState) {
1714        setTransitionStatus("ending");
1715      }
1716      if (!open2 && !mounted && transitionStatus === "ending") {
1717        setTransitionStatus(void 0);
1718      }
1719      useIsoLayoutEffect(() => {
1720        if (!open2 && mounted && transitionStatus !== "ending" && deferEndingState) {
1721          const frame = AnimationFrame.request(() => {
1722            setTransitionStatus("ending");
1723          });
1724          return () => {
1725            AnimationFrame.cancel(frame);
1726          };
1727        }
1728        return void 0;
1729      }, [open2, mounted, transitionStatus, deferEndingState]);
1730      useIsoLayoutEffect(() => {
1731        if (!open2 || enableIdleState || transitionStatus === void 0) {
1732          return void 0;
1733        }
1734        const frame = AnimationFrame.request(() => {
1735          setTransitionStatus(void 0);
1736        });
1737        return () => {
1738          AnimationFrame.cancel(frame);
1739        };
1740      }, [enableIdleState, open2, transitionStatus]);
1741      useIsoLayoutEffect(() => {
1742        if (!open2 || !enableIdleState) {
1743          return void 0;
1744        }
1745        if (open2 && mounted && transitionStatus !== "idle") {
1746          setTransitionStatus("starting");
1747        }
1748        const frame = AnimationFrame.request(() => {
1749          setTransitionStatus("idle");
1750        });
1751        return () => {
1752          AnimationFrame.cancel(frame);
1753        };
1754      }, [enableIdleState, open2, mounted, transitionStatus]);
1755      return {
1756        mounted,
1757        setMounted,
1758        transitionStatus
1759      };
1760    }
1761  
1762    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useTimeout.mjs
1763    var EMPTY2 = 0;
1764    var Timeout = class _Timeout {
1765      static create() {
1766        return new _Timeout();
1767      }
1768      currentId = EMPTY2;
1769      /**
1770       * Executes `fn` after `delay`, clearing any previously scheduled call.
1771       */
1772      start(delay, fn) {
1773        this.clear();
1774        this.currentId = setTimeout(() => {
1775          this.currentId = EMPTY2;
1776          fn();
1777        }, delay);
1778      }
1779      isStarted() {
1780        return this.currentId !== EMPTY2;
1781      }
1782      clear = () => {
1783        if (this.currentId !== EMPTY2) {
1784          clearTimeout(this.currentId);
1785          this.currentId = EMPTY2;
1786        }
1787      };
1788      disposeEffect = () => {
1789        return this.clear;
1790      };
1791    };
1792    function useTimeout() {
1793      const timeout = useRefWithInit(Timeout.create).current;
1794      useOnMount(timeout.disposeEffect);
1795      return timeout;
1796    }
1797  
1798    // packages/ui/build-module/icon/icon.mjs
1799    var import_element2 = __toESM(require_element(), 1);
1800    var import_primitives = __toESM(require_primitives(), 1);
1801    var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
1802    var Icon = (0, import_element2.forwardRef)(
1803      function UnforwardedIcon({ icon, size: size4 = 24, style, ...restProps }, ref) {
1804        const mergedStyle = icon.props.style || style ? { ...icon.props.style, ...style } : void 0;
1805        return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
1806          import_primitives.SVG,
1807          {
1808            ref,
1809            ...icon.props,
1810            ...restProps,
1811            ...mergedStyle ? { style: mergedStyle } : {},
1812            width: size4,
1813            height: size4
1814          }
1815        );
1816      }
1817    );
1818  
1819    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/error.mjs
1820    var error = createLogOnce("error", "Base UI");
1821  
1822    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useId.mjs
1823    var React11 = __toESM(require_react(), 1);
1824  
1825    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useForcedRerendering.mjs
1826    var React10 = __toESM(require_react(), 1);
1827    function useForcedRerendering() {
1828      const [, setState] = React10.useState({});
1829      return React10.useCallback(() => {
1830        setState({});
1831      }, []);
1832    }
1833  
1834    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useId.mjs
1835    var globalId = 0;
1836    function useGlobalId(idOverride, prefix = "mui") {
1837      const defaultId = React11.useRef(void 0);
1838      const forceRerender = useForcedRerendering();
1839      const id = idOverride ?? defaultId.current;
1840      React11.useEffect(() => {
1841        if (defaultId.current == null) {
1842          globalId += 1;
1843          defaultId.current = `$prefix}-$globalId}`;
1844          if (idOverride == null) {
1845            forceRerender();
1846          }
1847        }
1848      }, [idOverride, prefix, forceRerender]);
1849      return id;
1850    }
1851    var maybeReactUseId = SafeReact.useId;
1852    function useId(idOverride, prefix) {
1853      if (maybeReactUseId !== void 0) {
1854        const reactId = maybeReactUseId();
1855        return idOverride ?? (prefix ? `$prefix}-$reactId}` : reactId);
1856      }
1857      return useGlobalId(idOverride, prefix);
1858    }
1859  
1860    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useBaseUiId.mjs
1861    function useBaseUiId(idOverride) {
1862      return useId(idOverride, "base-ui");
1863    }
1864  
1865    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/createBaseUIEventDetails.mjs
1866    function createChangeEventDetails(reason, event, trigger, customProperties) {
1867      let canceled = false;
1868      let allowPropagation = false;
1869      const custom = customProperties ?? EMPTY_OBJECT;
1870      const details = {
1871        reason,
1872        event: event ?? new Event("base-ui"),
1873        cancel() {
1874          canceled = true;
1875        },
1876        allowPropagation() {
1877          allowPropagation = true;
1878        },
1879        get isCanceled() {
1880          return canceled;
1881        },
1882        get isPropagationAllowed() {
1883          return allowPropagation;
1884        },
1885        trigger,
1886        ...custom
1887      };
1888      return details;
1889    }
1890  
1891    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/reason-parts.mjs
1892    var reason_parts_exports = {};
1893    __export(reason_parts_exports, {
1894      cancelOpen: () => cancelOpen,
1895      chipRemovePress: () => chipRemovePress,
1896      clearPress: () => clearPress,
1897      closePress: () => closePress,
1898      closeWatcher: () => closeWatcher,
1899      decrementPress: () => decrementPress,
1900      disabled: () => disabled,
1901      drag: () => drag,
1902      escapeKey: () => escapeKey,
1903      focusOut: () => focusOut,
1904      imperativeAction: () => imperativeAction,
1905      incrementPress: () => incrementPress,
1906      initial: () => initial,
1907      inputBlur: () => inputBlur,
1908      inputChange: () => inputChange,
1909      inputClear: () => inputClear,
1910      inputPaste: () => inputPaste,
1911      inputPress: () => inputPress,
1912      itemPress: () => itemPress,
1913      keyboard: () => keyboard,
1914      linkPress: () => linkPress,
1915      listNavigation: () => listNavigation,
1916      missing: () => missing,
1917      none: () => none,
1918      outsidePress: () => outsidePress,
1919      pointer: () => pointer,
1920      popupClose: () => popupClose,
1921      scrub: () => scrub,
1922      siblingOpen: () => siblingOpen,
1923      swipe: () => swipe,
1924      trackPress: () => trackPress,
1925      triggerFocus: () => triggerFocus,
1926      triggerHover: () => triggerHover,
1927      triggerPress: () => triggerPress,
1928      wheel: () => wheel,
1929      windowResize: () => windowResize
1930    });
1931    var none = "none";
1932    var triggerPress = "trigger-press";
1933    var triggerHover = "trigger-hover";
1934    var triggerFocus = "trigger-focus";
1935    var outsidePress = "outside-press";
1936    var itemPress = "item-press";
1937    var closePress = "close-press";
1938    var linkPress = "link-press";
1939    var clearPress = "clear-press";
1940    var chipRemovePress = "chip-remove-press";
1941    var trackPress = "track-press";
1942    var incrementPress = "increment-press";
1943    var decrementPress = "decrement-press";
1944    var inputChange = "input-change";
1945    var inputClear = "input-clear";
1946    var inputBlur = "input-blur";
1947    var inputPaste = "input-paste";
1948    var inputPress = "input-press";
1949    var focusOut = "focus-out";
1950    var escapeKey = "escape-key";
1951    var closeWatcher = "close-watcher";
1952    var listNavigation = "list-navigation";
1953    var keyboard = "keyboard";
1954    var pointer = "pointer";
1955    var drag = "drag";
1956    var wheel = "wheel";
1957    var scrub = "scrub";
1958    var popupClose = "popup-close";
1959    var cancelOpen = "cancel-open";
1960    var siblingOpen = "sibling-open";
1961    var disabled = "disabled";
1962    var missing = "missing";
1963    var initial = "initial";
1964    var imperativeAction = "imperative-action";
1965    var swipe = "swipe";
1966    var windowResize = "window-resize";
1967  
1968    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/use-button/useButton.mjs
1969    var React14 = __toESM(require_react(), 1);
1970  
1971    // node_modules/.store/@floating-ui/utils@0.2.12-gOxTzMf36nCrbeHpEew-rw/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
1972    function hasWindow() {
1973      return typeof window !== "undefined";
1974    }
1975    function getNodeName(node) {
1976      if (isNode(node)) {
1977        return (node.nodeName || "").toLowerCase();
1978      }
1979      return "#document";
1980    }
1981    function getWindow(node) {
1982      var _node$ownerDocument;
1983      return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
1984    }
1985    function getDocumentElement(node) {
1986      var _ref;
1987      return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
1988    }
1989    function isNode(value) {
1990      if (!hasWindow()) {
1991        return false;
1992      }
1993      return value instanceof Node || value instanceof getWindow(value).Node;
1994    }
1995    function isElement(value) {
1996      if (!hasWindow()) {
1997        return false;
1998      }
1999      return value instanceof Element || value instanceof getWindow(value).Element;
2000    }
2001    function isHTMLElement(value) {
2002      if (!hasWindow()) {
2003        return false;
2004      }
2005      return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
2006    }
2007    function isShadowRoot(value) {
2008      if (!hasWindow() || typeof ShadowRoot === "undefined") {
2009        return false;
2010      }
2011      return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
2012    }
2013    function isOverflowElement(element) {
2014      const {
2015        overflow,
2016        overflowX,
2017        overflowY,
2018        display
2019      } = getComputedStyle2(element);
2020      return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== "inline" && display !== "contents";
2021    }
2022    function isTableElement(element) {
2023      return /^(table|td|th)$/.test(getNodeName(element));
2024    }
2025    function isTopLayer(element) {
2026      try {
2027        if (element.matches(":popover-open")) {
2028          return true;
2029        }
2030      } catch (_e) {
2031      }
2032      try {
2033        return element.matches(":modal");
2034      } catch (_e) {
2035        return false;
2036      }
2037    }
2038    var willChangeRe = /transform|translate|scale|rotate|perspective|filter/;
2039    var containRe = /paint|layout|strict|content/;
2040    var isNotNone = (value) => !!value && value !== "none";
2041    var isWebKitValue;
2042    function isContainingBlock(elementOrCss) {
2043      const css = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
2044      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 || "");
2045    }
2046    function getContainingBlock(element) {
2047      let currentNode = getParentNode(element);
2048      while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
2049        if (isContainingBlock(currentNode)) {
2050          return currentNode;
2051        } else if (isTopLayer(currentNode)) {
2052          return null;
2053        }
2054        currentNode = getParentNode(currentNode);
2055      }
2056      return null;
2057    }
2058    function isWebKit() {
2059      if (isWebKitValue == null) {
2060        isWebKitValue = typeof CSS !== "undefined" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none");
2061      }
2062      return isWebKitValue;
2063    }
2064    function isLastTraversableNode(node) {
2065      return /^(html|body|#document)$/.test(getNodeName(node));
2066    }
2067    function getComputedStyle2(element) {
2068      return getWindow(element).getComputedStyle(element);
2069    }
2070    function getNodeScroll(element) {
2071      if (isElement(element)) {
2072        return {
2073          scrollLeft: element.scrollLeft,
2074          scrollTop: element.scrollTop
2075        };
2076      }
2077      return {
2078        scrollLeft: element.scrollX,
2079        scrollTop: element.scrollY
2080      };
2081    }
2082    function getParentNode(node) {
2083      if (getNodeName(node) === "html") {
2084        return node;
2085      }
2086      const result = (
2087        // Step into the shadow DOM of the parent of a slotted node.
2088        node.assignedSlot || // DOM Element detected.
2089        node.parentNode || // ShadowRoot detected.
2090        isShadowRoot(node) && node.host || // Fallback.
2091        getDocumentElement(node)
2092      );
2093      return isShadowRoot(result) ? result.host : result;
2094    }
2095    function getNearestOverflowAncestor(node) {
2096      const parentNode = getParentNode(node);
2097      if (isLastTraversableNode(parentNode)) {
2098        return (node.ownerDocument || node).body;
2099      }
2100      if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
2101        return parentNode;
2102      }
2103      return getNearestOverflowAncestor(parentNode);
2104    }
2105    function getOverflowAncestors(node, list, traverseIframes) {
2106      var _node$ownerDocument2;
2107      if (list === void 0) {
2108        list = [];
2109      }
2110      if (traverseIframes === void 0) {
2111        traverseIframes = true;
2112      }
2113      const scrollableAncestor = getNearestOverflowAncestor(node);
2114      const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
2115      const win = getWindow(scrollableAncestor);
2116      if (isBody) {
2117        const frameElement = getFrameElement(win);
2118        return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
2119      } else {
2120        return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
2121      }
2122    }
2123    function getFrameElement(win) {
2124      return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
2125    }
2126  
2127    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/composite/root/CompositeRootContext.mjs
2128    var React12 = __toESM(require_react(), 1);
2129    var CompositeRootContext = /* @__PURE__ */ React12.createContext(void 0);
2130    if (true) CompositeRootContext.displayName = "CompositeRootContext";
2131    function useCompositeRootContext(optional = false) {
2132      const context = React12.useContext(CompositeRootContext);
2133      if (context === void 0 && !optional) {
2134        throw new Error(true ? "Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>." : formatErrorMessage_default(16));
2135      }
2136      return context;
2137    }
2138  
2139    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/useFocusableWhenDisabled.mjs
2140    var React13 = __toESM(require_react(), 1);
2141    function useFocusableWhenDisabled(parameters) {
2142      const {
2143        focusableWhenDisabled,
2144        disabled: disabled2,
2145        composite = false,
2146        tabIndex: tabIndexProp = 0,
2147        isNativeButton
2148      } = parameters;
2149      const isFocusableComposite = composite && focusableWhenDisabled !== false;
2150      const isNonFocusableComposite = composite && focusableWhenDisabled === false;
2151      const props = React13.useMemo(() => {
2152        const additionalProps = {
2153          // allow Tabbing away from focusableWhenDisabled elements
2154          onKeyDown(event) {
2155            if (disabled2 && focusableWhenDisabled && event.key !== "Tab") {
2156              event.preventDefault();
2157            }
2158          }
2159        };
2160        if (!composite) {
2161          additionalProps.tabIndex = tabIndexProp;
2162          if (!isNativeButton && disabled2) {
2163            additionalProps.tabIndex = focusableWhenDisabled ? tabIndexProp : -1;
2164          }
2165        }
2166        if (isNativeButton && (focusableWhenDisabled || isFocusableComposite) || !isNativeButton && disabled2) {
2167          additionalProps["aria-disabled"] = disabled2;
2168        }
2169        if (isNativeButton && (!focusableWhenDisabled || isNonFocusableComposite)) {
2170          additionalProps.disabled = disabled2;
2171        }
2172        return additionalProps;
2173      }, [composite, disabled2, focusableWhenDisabled, isFocusableComposite, isNonFocusableComposite, isNativeButton, tabIndexProp]);
2174      return {
2175        props
2176      };
2177    }
2178  
2179    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/owner.mjs
2180    function ownerDocument(node) {
2181      return node?.ownerDocument || document;
2182    }
2183  
2184    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/dispatchClickWithModifiers.mjs
2185    function dispatchClickWithModifiers(target, sourceEvent, {
2186      detail = 0,
2187      pointerType = ""
2188    } = {}) {
2189      target.dispatchEvent(new (getWindow(target)).PointerEvent("click", {
2190        bubbles: true,
2191        cancelable: true,
2192        composed: true,
2193        detail,
2194        pointerType,
2195        shiftKey: sourceEvent.shiftKey,
2196        ctrlKey: sourceEvent.ctrlKey,
2197        altKey: sourceEvent.altKey,
2198        metaKey: sourceEvent.metaKey
2199      }));
2200    }
2201  
2202    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/use-button/useButton.mjs
2203    function useButton(parameters = {}) {
2204      const {
2205        disabled: disabled2 = false,
2206        focusableWhenDisabled,
2207        tabIndex = 0,
2208        native: isNativeButton = true,
2209        composite: compositeProp
2210      } = parameters;
2211      const elementRef = React14.useRef(null);
2212      const compositeRootContext = useCompositeRootContext(true);
2213      const isCompositeItem = compositeProp ?? compositeRootContext !== void 0;
2214      const {
2215        props: focusableWhenDisabledProps
2216      } = useFocusableWhenDisabled({
2217        focusableWhenDisabled,
2218        disabled: disabled2,
2219        composite: isCompositeItem,
2220        tabIndex,
2221        isNativeButton
2222      });
2223      if (true) {
2224        React14.useEffect(() => {
2225          if (!elementRef.current) {
2226            return;
2227          }
2228          const isButtonTag = isButtonElement(elementRef.current);
2229          if (isNativeButton) {
2230            if (!isButtonTag) {
2231              const ownerStackMessage = SafeReact.captureOwnerStack?.() || "";
2232              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`.";
2233              error(`$message}$ownerStackMessage}`);
2234            }
2235          } else if (isButtonTag) {
2236            const ownerStackMessage = SafeReact.captureOwnerStack?.() || "";
2237            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`.";
2238            error(`$message}$ownerStackMessage}`);
2239          }
2240        }, [isNativeButton]);
2241      }
2242      const updateDisabled = React14.useCallback(() => {
2243        const element = elementRef.current;
2244        if (!isButtonElement(element)) {
2245          return;
2246        }
2247        if (isCompositeItem && disabled2 && focusableWhenDisabledProps.disabled === void 0 && element.disabled) {
2248          element.disabled = false;
2249        }
2250      }, [disabled2, focusableWhenDisabledProps.disabled, isCompositeItem]);
2251      useIsoLayoutEffect(updateDisabled, [updateDisabled]);
2252      const getButtonProps = React14.useCallback((externalProps = {}) => {
2253        const {
2254          onClick: externalOnClick,
2255          onMouseDown: externalOnMouseDown,
2256          onKeyUp: externalOnKeyUp,
2257          onKeyDown: externalOnKeyDown,
2258          onPointerDown: externalOnPointerDown,
2259          ...otherExternalProps
2260        } = externalProps;
2261        return mergeProps({
2262          onClick(event) {
2263            if (disabled2) {
2264              event.preventDefault();
2265              return;
2266            }
2267            externalOnClick?.(event);
2268          },
2269          onMouseDown(event) {
2270            if (!disabled2) {
2271              externalOnMouseDown?.(event);
2272            }
2273          },
2274          onKeyDown(event) {
2275            if (disabled2) {
2276              return;
2277            }
2278            makeEventPreventable(event);
2279            externalOnKeyDown?.(event);
2280            if (event.baseUIHandlerPrevented) {
2281              return;
2282            }
2283            const isCurrentTarget = event.target === event.currentTarget;
2284            const currentTarget = event.currentTarget;
2285            const isButton = isButtonElement(currentTarget);
2286            const isLink = !isNativeButton && isValidLinkElement(currentTarget);
2287            const shouldClick = isCurrentTarget && (isNativeButton ? isButton : !isLink);
2288            const isEnterKey = event.key === "Enter";
2289            const isSpaceKey = event.key === " ";
2290            const role = currentTarget.getAttribute("role");
2291            const isTextNavigationRole = role?.startsWith("menuitem") || role === "option" || role === "gridcell";
2292            if (isCurrentTarget && isCompositeItem && isSpaceKey) {
2293              if (event.defaultPrevented && isTextNavigationRole) {
2294                return;
2295              }
2296              event.preventDefault();
2297              if (!isNativeButton || isButton) {
2298                event.preventBaseUIHandler();
2299                dispatchClickWithModifiers(currentTarget, event);
2300              }
2301              return;
2302            }
2303            if (!shouldClick || isNativeButton || !isSpaceKey && !isEnterKey) {
2304              if (isCurrentTarget && isLink && isSpaceKey) {
2305                event.preventDefault();
2306              }
2307              return;
2308            }
2309            if (event.defaultPrevented) {
2310              return;
2311            }
2312            event.preventDefault();
2313            if (isEnterKey) {
2314              event.preventBaseUIHandler();
2315              dispatchClickWithModifiers(currentTarget, event);
2316            }
2317          },
2318          onKeyUp(event) {
2319            if (disabled2) {
2320              return;
2321            }
2322            makeEventPreventable(event);
2323            externalOnKeyUp?.(event);
2324            if (event.target === event.currentTarget && isNativeButton && isCompositeItem && isButtonElement(event.currentTarget) && event.key === " ") {
2325              event.preventDefault();
2326              return;
2327            }
2328            if (event.baseUIHandlerPrevented) {
2329              return;
2330            }
2331            if (event.target === event.currentTarget && !isNativeButton && !isCompositeItem && !event.defaultPrevented && event.key === " ") {
2332              event.preventBaseUIHandler();
2333              dispatchClickWithModifiers(event.currentTarget, event);
2334            }
2335          },
2336          onPointerDown(event) {
2337            if (disabled2) {
2338              event.preventDefault();
2339              return;
2340            }
2341            externalOnPointerDown?.(event);
2342          }
2343        }, isNativeButton ? {
2344          type: "button"
2345        } : {
2346          role: "button"
2347        }, focusableWhenDisabledProps, otherExternalProps);
2348      }, [disabled2, focusableWhenDisabledProps, isCompositeItem, isNativeButton]);
2349      const buttonRef = useStableCallback((element) => {
2350        elementRef.current = element;
2351        updateDisabled();
2352      });
2353      return {
2354        getButtonProps,
2355        buttonRef
2356      };
2357    }
2358    function isButtonElement(elem) {
2359      return isHTMLElement(elem) && elem.tagName === "BUTTON";
2360    }
2361    function isValidLinkElement(elem) {
2362      return isHTMLElement(elem) && elem.tagName === "A" && Boolean(elem.href);
2363    }
2364  
2365    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/addEventListener.mjs
2366    function addEventListener(target, type, listener, options) {
2367      target.addEventListener(type, listener, options);
2368      return () => {
2369        target.removeEventListener(type, listener, options);
2370      };
2371    }
2372  
2373    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/useValueAsRef.mjs
2374    function useValueAsRef(value) {
2375      const latest = useRefWithInit(createLatestRef, value).current;
2376      latest.next = value;
2377      useIsoLayoutEffect(latest.effect);
2378      return latest;
2379    }
2380    function createLatestRef(value) {
2381      const latest = {
2382        current: value,
2383        next: value,
2384        effect: () => {
2385          latest.current = latest.next;
2386        }
2387      };
2388      return latest;
2389    }
2390  
2391    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/parts.mjs
2392    var parts_exports = {};
2393    __export(parts_exports, {
2394      engine: () => engine_exports,
2395      env: () => env_exports,
2396      mediaQuery: () => media_query_exports,
2397      os: () => os_exports,
2398      screenReader: () => screen_reader_exports
2399    });
2400  
2401    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/os.mjs
2402    var os_exports = {};
2403    __export(os_exports, {
2404      android: () => android,
2405      apple: () => apple,
2406      ios: () => ios,
2407      linux: () => linux,
2408      mac: () => mac,
2409      windows: () => windows
2410    });
2411  
2412    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/shared.mjs
2413    function readRawData() {
2414      if (typeof navigator === "undefined") {
2415        return {
2416          userAgent: "",
2417          platform: "",
2418          maxTouchPoints: 0
2419        };
2420      }
2421      if (true) {
2422        const uaData = navigator.userAgentData;
2423        if (uaData && Array.isArray(uaData.brands)) {
2424          return {
2425            userAgent: uaData.brands.map(({
2426              brand,
2427              version: version2
2428            }) => `$brand}/$version2}`).join(" "),
2429            platform: uaData.platform ?? navigator.platform ?? "",
2430            maxTouchPoints: navigator.maxTouchPoints ?? 0
2431          };
2432        }
2433      }
2434      return {
2435        userAgent: navigator.userAgent,
2436        platform: navigator.platform ?? "",
2437        maxTouchPoints: navigator.maxTouchPoints ?? 0
2438      };
2439    }
2440    var {
2441      userAgent,
2442      platform,
2443      maxTouchPoints
2444    } = readRawData();
2445    var lowerUserAgent = userAgent.toLowerCase();
2446    var lowerPlatform = platform.toLowerCase();
2447  
2448    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/os.mjs
2449    var ios = /^i(os$|p)/.test(lowerPlatform) || lowerPlatform === "macintel" && maxTouchPoints > 1;
2450    var ANDROID_STRING = "android";
2451    var android = lowerPlatform === ANDROID_STRING || lowerUserAgent.includes(ANDROID_STRING);
2452    var mac = !ios && lowerPlatform.startsWith("mac");
2453    var windows = lowerPlatform.startsWith("win");
2454    var linux = !android && /^(linux|chrome os)/.test(lowerPlatform);
2455    var apple = mac || ios;
2456  
2457    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/engine.mjs
2458    var engine_exports = {};
2459    __export(engine_exports, {
2460      blink: () => blink,
2461      gecko: () => gecko,
2462      webkit: () => webkit
2463    });
2464    var webkit = typeof CSS !== "undefined" && !!CSS.supports?.("-webkit-backdrop-filter:none");
2465    var gecko = !webkit && lowerUserAgent.includes("firefox");
2466    var blink = !webkit && lowerUserAgent.includes("chrom");
2467  
2468    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/screen-reader.mjs
2469    var screen_reader_exports = {};
2470    __export(screen_reader_exports, {
2471      voiceOver: () => voiceOver
2472    });
2473    var voiceOver = apple;
2474  
2475    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/env.mjs
2476    var env_exports = {};
2477    __export(env_exports, {
2478      jsdom: () => jsdom
2479    });
2480    var jsdom = /jsdom|happydom/.test(lowerUserAgent);
2481  
2482    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/platform/media-query.mjs
2483    var media_query_exports = {};
2484    __export(media_query_exports, {
2485      iOS: () => iOS
2486    });
2487    var iOS = "@supports (-webkit-touch-callout: none)";
2488  
2489    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingDelayGroup.mjs
2490    var React15 = __toESM(require_react(), 1);
2491  
2492    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/event.mjs
2493    function isReactEvent(event) {
2494      return "nativeEvent" in event;
2495    }
2496    function isVirtualClick(event) {
2497      if (event.pointerType === "" && event.isTrusted) {
2498        return true;
2499      }
2500      if (parts_exports.os.android && event.pointerType) {
2501        return event.type === "click" && event.buttons === 1;
2502      }
2503      return event.detail === 0 && !event.pointerType;
2504    }
2505    function isMouseLikePointerType(pointerType, strict) {
2506      const values = ["mouse", "pen"];
2507      if (!strict) {
2508        values.push("", void 0);
2509      }
2510      return values.includes(pointerType);
2511    }
2512    function isClickLikeEvent(event) {
2513      const type = event.type;
2514      return type === "click" || type === "mousedown" || type === "keydown" || type === "keyup";
2515    }
2516  
2517    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/shadowDom.mjs
2518    function activeElement(doc) {
2519      let element = doc.activeElement;
2520      while (element?.shadowRoot?.activeElement != null) {
2521        element = element.shadowRoot.activeElement;
2522      }
2523      return element;
2524    }
2525    function contains(parent, child) {
2526      if (!parent || !child) {
2527        return false;
2528      }
2529      const rootNode = child.getRootNode?.();
2530      if (parent.contains(child)) {
2531        return true;
2532      }
2533      if (rootNode && isShadowRoot(rootNode)) {
2534        let next = child;
2535        while (next) {
2536          if (parent === next) {
2537            return true;
2538          }
2539          next = next.parentNode || next.host;
2540        }
2541      }
2542      return false;
2543    }
2544    function closest(node, selector) {
2545      let current = node;
2546      while (current) {
2547        if (isElement(current) && current.matches(selector)) {
2548          return current;
2549        }
2550        current = current.assignedSlot ?? current.parentNode ?? (isShadowRoot(current) ? current.host : null);
2551      }
2552      return null;
2553    }
2554    function getTarget(event) {
2555      if ("composedPath" in event) {
2556        return event.composedPath()[0] ?? event.target;
2557      }
2558      return event.target;
2559    }
2560  
2561    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/constants.mjs
2562    var FOCUSABLE_ATTRIBUTE = "data-base-ui-focusable";
2563    var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
2564  
2565    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonPopupDataAttributes.mjs
2566    var open = "data-open";
2567    var closed = "data-closed";
2568    var anchorHidden = "data-anchor-hidden";
2569  
2570    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonTriggerDataAttributes.mjs
2571    var CommonTriggerDataAttributes_exports = {};
2572    __export(CommonTriggerDataAttributes_exports, {
2573      popupOpen: () => popupOpen,
2574      pressed: () => pressed
2575    });
2576    var popupOpen = "data-popup-open";
2577    var pressed = "data-pressed";
2578  
2579    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popupStateMapping.mjs
2580    var TRIGGER_HOOK = {
2581      [popupOpen]: ""
2582    };
2583    var PRESSABLE_TRIGGER_HOOK = {
2584      [popupOpen]: "",
2585      [pressed]: ""
2586    };
2587    var POPUP_OPEN_HOOK = {
2588      [open]: ""
2589    };
2590    var POPUP_CLOSED_HOOK = {
2591      [closed]: ""
2592    };
2593    var ANCHOR_HIDDEN_HOOK = {
2594      [anchorHidden]: ""
2595    };
2596    var triggerOpenStateMapping = {
2597      open(value) {
2598        if (value) {
2599          return TRIGGER_HOOK;
2600        }
2601        return null;
2602      }
2603    };
2604    var popupStateMapping = {
2605      open(value) {
2606        if (value) {
2607          return POPUP_OPEN_HOOK;
2608        }
2609        return POPUP_CLOSED_HOOK;
2610      },
2611      anchorHidden(value) {
2612        if (value) {
2613          return ANCHOR_HIDDEN_HOOK;
2614        }
2615        return null;
2616      }
2617    };
2618    var popupTransitionStateMapping = {
2619      ...popupStateMapping,
2620      ...transitionStatusMapping
2621    };
2622  
2623    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/trigger/TooltipTriggerDataAttributes.mjs
2624    var popupOpen2 = CommonTriggerDataAttributes_exports.popupOpen;
2625    var triggerDisabled = "data-trigger-disabled";
2626  
2627    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/element.mjs
2628    function isTargetInsideEnabledTrigger(target, triggerElements) {
2629      if (!isElement(target)) {
2630        return false;
2631      }
2632      const targetElement = target;
2633      if (triggerElements.hasElement(targetElement)) {
2634        return !targetElement.hasAttribute(triggerDisabled);
2635      }
2636      for (const [, trigger] of triggerElements.entries()) {
2637        if (contains(trigger, targetElement)) {
2638          return !trigger.hasAttribute(triggerDisabled);
2639        }
2640      }
2641      return false;
2642    }
2643    function isEventTargetWithin(event, node) {
2644      if (node == null) {
2645        return false;
2646      }
2647      if ("composedPath" in event) {
2648        return event.composedPath().includes(node);
2649      }
2650      const eventAgain = event;
2651      return eventAgain.target != null && node.contains(eventAgain.target);
2652    }
2653    function isRootElement(element) {
2654      return element.matches("html,body");
2655    }
2656    function isTypeableElement(element) {
2657      return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
2658    }
2659    function isInteractiveElement(element) {
2660      return closest(element, `button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),$TYPEABLE_SELECTOR}`) != null;
2661    }
2662    function matchesFocusVisible(element) {
2663      if (!element || parts_exports.env.jsdom) {
2664        return true;
2665      }
2666      try {
2667        return element.matches(":focus-visible");
2668      } catch (_e) {
2669        return true;
2670      }
2671    }
2672  
2673    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverShared.mjs
2674    function resolveValue(value, pointerType) {
2675      if (pointerType != null && !isMouseLikePointerType(pointerType)) {
2676        return 0;
2677      }
2678      if (typeof value === "function") {
2679        return value();
2680      }
2681      return value;
2682    }
2683    function getDelay(value, prop, pointerType) {
2684      const result = resolveValue(value, pointerType);
2685      if (typeof result === "number") {
2686        return result;
2687      }
2688      return result?.[prop];
2689    }
2690    function getRestMs(value) {
2691      if (typeof value === "function") {
2692        return value();
2693      }
2694      return value;
2695    }
2696    function isClickLikeOpenEvent(openEventType, interactedInside) {
2697      return interactedInside || openEventType === "click" || openEventType === "mousedown";
2698    }
2699    function isHoverOpenEvent(openEventType) {
2700      return openEventType?.includes("mouse") && openEventType !== "mousedown";
2701    }
2702  
2703    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingDelayGroup.mjs
2704    var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
2705    var FloatingDelayGroupContext = /* @__PURE__ */ React15.createContext({
2706      hasProvider: false,
2707      timeoutMs: 0,
2708      delayRef: {
2709        current: 0
2710      },
2711      initialDelayRef: {
2712        current: 0
2713      },
2714      timeout: new Timeout(),
2715      currentIdRef: {
2716        current: null
2717      },
2718      currentContextRef: {
2719        current: null
2720      }
2721    });
2722    if (true) FloatingDelayGroupContext.displayName = "FloatingDelayGroupContext";
2723    function resetDelayRef(delayRef, initialDelayRef) {
2724      delayRef.current = initialDelayRef.current;
2725    }
2726    function FloatingDelayGroup(props) {
2727      const {
2728        children,
2729        delay,
2730        timeoutMs = 0
2731      } = props;
2732      const delayRef = React15.useRef(delay);
2733      const initialDelayRef = React15.useRef(delay);
2734      const currentIdRef = React15.useRef(null);
2735      const currentContextRef = React15.useRef(null);
2736      const timeout = useTimeout();
2737      useIsoLayoutEffect(() => {
2738        initialDelayRef.current = delay;
2739        if (!currentIdRef.current) {
2740          delayRef.current = delay;
2741          return;
2742        }
2743        delayRef.current = {
2744          open: getDelay(delayRef.current, "open"),
2745          close: getDelay(delay, "close")
2746        };
2747      }, [delay, currentIdRef, delayRef, initialDelayRef]);
2748      return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FloatingDelayGroupContext.Provider, {
2749        value: React15.useMemo(() => ({
2750          hasProvider: true,
2751          delayRef,
2752          initialDelayRef,
2753          currentIdRef,
2754          timeoutMs,
2755          currentContextRef,
2756          timeout
2757        }), [timeoutMs, timeout]),
2758        children
2759      });
2760    }
2761    function useDelayGroup(store2, options = {
2762      open: false
2763    }) {
2764      const {
2765        open: open2
2766      } = options;
2767      const floatingId = store2.useState("floatingId");
2768      const groupContext = React15.useContext(FloatingDelayGroupContext);
2769      const {
2770        currentIdRef,
2771        delayRef,
2772        timeoutMs,
2773        initialDelayRef,
2774        currentContextRef,
2775        hasProvider,
2776        timeout
2777      } = groupContext;
2778      const [isInstantPhase, setIsInstantPhase] = React15.useState(false);
2779      const openRef = React15.useRef(open2);
2780      useIsoLayoutEffect(() => {
2781        openRef.current = open2;
2782      }, [open2]);
2783      useIsoLayoutEffect(() => {
2784        function unset() {
2785          currentContextRef.current?.setIsInstantPhase(false);
2786          currentIdRef.current = null;
2787          currentContextRef.current = null;
2788          delayRef.current = initialDelayRef.current;
2789          timeout.clear();
2790        }
2791        if (!currentIdRef.current) {
2792          return void 0;
2793        }
2794        if (!open2 && currentIdRef.current === floatingId) {
2795          setIsInstantPhase(false);
2796          if (timeoutMs) {
2797            const closingId = floatingId;
2798            timeout.start(timeoutMs, () => {
2799              if (store2.select("open") || currentIdRef.current && currentIdRef.current !== closingId) {
2800                return;
2801              }
2802              unset();
2803            });
2804            return () => {
2805              if (openRef.current || currentIdRef.current !== closingId) {
2806                timeout.clear();
2807              }
2808            };
2809          }
2810          unset();
2811        }
2812        return void 0;
2813      }, [open2, floatingId, currentIdRef, delayRef, timeoutMs, initialDelayRef, currentContextRef, timeout, store2]);
2814      useIsoLayoutEffect(() => {
2815        if (!open2) {
2816          return;
2817        }
2818        const prevContext = currentContextRef.current;
2819        const prevId = currentIdRef.current;
2820        timeout.clear();
2821        currentContextRef.current = {
2822          onOpenChange: store2.setOpen,
2823          setIsInstantPhase
2824        };
2825        currentIdRef.current = floatingId;
2826        delayRef.current = {
2827          open: 0,
2828          close: getDelay(initialDelayRef.current, "close")
2829        };
2830        if (prevId !== null && prevId !== floatingId) {
2831          setIsInstantPhase(true);
2832          prevContext?.setIsInstantPhase(true);
2833          prevContext?.onOpenChange(false, createChangeEventDetails(reason_parts_exports.none));
2834        } else {
2835          setIsInstantPhase(false);
2836          prevContext?.setIsInstantPhase(false);
2837        }
2838      }, [open2, floatingId, store2, currentIdRef, delayRef, initialDelayRef, currentContextRef, timeout]);
2839      useIsoLayoutEffect(() => {
2840        return () => {
2841          if (currentIdRef.current === floatingId) {
2842            currentContextRef.current = null;
2843            if (!openRef.current) {
2844              return;
2845            }
2846            currentIdRef.current = null;
2847            resetDelayRef(delayRef, initialDelayRef);
2848            timeout.clear();
2849          }
2850        };
2851      }, [currentContextRef, currentIdRef, delayRef, floatingId, initialDelayRef, timeout]);
2852      return React15.useMemo(() => ({
2853        activeIdRef: currentIdRef,
2854        hasProvider,
2855        delayRef,
2856        isInstantPhase
2857      }), [currentIdRef, hasProvider, delayRef, isInstantPhase]);
2858    }
2859  
2860    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/mergeCleanups.mjs
2861    function mergeCleanups(...cleanups) {
2862      return () => {
2863        for (let i = 0; i < cleanups.length; i += 1) {
2864          const cleanup = cleanups[i];
2865          if (cleanup) {
2866            cleanup();
2867          }
2868        }
2869      };
2870    }
2871  
2872    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/FocusGuard.mjs
2873    var React16 = __toESM(require_react(), 1);
2874  
2875    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/visuallyHidden.mjs
2876    var visuallyHiddenBase = {
2877      clipPath: "inset(50%)",
2878      overflow: "hidden",
2879      whiteSpace: "nowrap",
2880      border: 0,
2881      padding: 0,
2882      width: 1,
2883      height: 1,
2884      margin: -1
2885    };
2886    var visuallyHidden = {
2887      ...visuallyHiddenBase,
2888      position: "fixed",
2889      margin: 0,
2890      top: 0,
2891      left: 0
2892    };
2893    var visuallyHiddenInput = {
2894      ...visuallyHiddenBase,
2895      position: "absolute"
2896    };
2897  
2898    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/FocusGuard.mjs
2899    var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
2900    var FocusGuard = /* @__PURE__ */ React16.forwardRef(function FocusGuard2(props, ref) {
2901      const [role, setRole] = React16.useState();
2902      useIsoLayoutEffect(() => {
2903        if (parts_exports.screenReader.voiceOver && parts_exports.engine.webkit) {
2904          setRole("button");
2905        }
2906      }, []);
2907      const restProps = {
2908        tabIndex: 0,
2909        // Role is only for VoiceOver
2910        role
2911      };
2912      return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", {
2913        ...props,
2914        ref,
2915        style: visuallyHidden,
2916        "aria-hidden": role ? void 0 : true,
2917        ...restProps,
2918        "data-base-ui-focus-guard": ""
2919      });
2920    });
2921    if (true) FocusGuard.displayName = "FocusGuard";
2922  
2923    // node_modules/.store/@floating-ui/utils@0.2.12-gOxTzMf36nCrbeHpEew-rw/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
2924    var min = Math.min;
2925    var max = Math.max;
2926    var round = Math.round;
2927    var floor = Math.floor;
2928    var createCoords = (v) => ({
2929      x: v,
2930      y: v
2931    });
2932    var oppositeSideMap = {
2933      left: "right",
2934      right: "left",
2935      bottom: "top",
2936      top: "bottom"
2937    };
2938    function clamp(start, value, end) {
2939      return max(start, min(value, end));
2940    }
2941    function evaluate(value, param) {
2942      return typeof value === "function" ? value(param) : value;
2943    }
2944    function getSide(placement) {
2945      return placement.split("-")[0];
2946    }
2947    function getAlignment(placement) {
2948      return placement.split("-")[1];
2949    }
2950    function getOppositeAxis(axis) {
2951      return axis === "x" ? "y" : "x";
2952    }
2953    function getAxisLength(axis) {
2954      return axis === "y" ? "height" : "width";
2955    }
2956    function getSideAxis(placement) {
2957      const firstChar = placement[0];
2958      return firstChar === "t" || firstChar === "b" ? "y" : "x";
2959    }
2960    function getAlignmentAxis(placement) {
2961      return getOppositeAxis(getSideAxis(placement));
2962    }
2963    function getAlignmentSides(placement, rects, rtl) {
2964      if (rtl === void 0) {
2965        rtl = false;
2966      }
2967      const alignment = getAlignment(placement);
2968      const alignmentAxis = getAlignmentAxis(placement);
2969      const length = getAxisLength(alignmentAxis);
2970      let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
2971      if (rects.reference[length] > rects.floating[length]) {
2972        mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
2973      }
2974      return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
2975    }
2976    function getExpandedPlacements(placement) {
2977      const oppositePlacement = getOppositePlacement(placement);
2978      return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
2979    }
2980    function getOppositeAlignmentPlacement(placement) {
2981      return placement.includes("start") ? placement.replace("start", "end") : placement.replace("end", "start");
2982    }
2983    var lrPlacement = ["left", "right"];
2984    var rlPlacement = ["right", "left"];
2985    var tbPlacement = ["top", "bottom"];
2986    var btPlacement = ["bottom", "top"];
2987    function getSideList(side, isStart, rtl) {
2988      switch (side) {
2989        case "top":
2990        case "bottom":
2991          if (rtl) return isStart ? rlPlacement : lrPlacement;
2992          return isStart ? lrPlacement : rlPlacement;
2993        case "left":
2994        case "right":
2995          return isStart ? tbPlacement : btPlacement;
2996        default:
2997          return [];
2998      }
2999    }
3000    function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
3001      const alignment = getAlignment(placement);
3002      let list = getSideList(getSide(placement), direction === "start", rtl);
3003      if (alignment) {
3004        list = list.map((side) => side + "-" + alignment);
3005        if (flipAlignment) {
3006          list = list.concat(list.map(getOppositeAlignmentPlacement));
3007        }
3008      }
3009      return list;
3010    }
3011    function getOppositePlacement(placement) {
3012      const side = getSide(placement);
3013      return oppositeSideMap[side] + placement.slice(side.length);
3014    }
3015    function expandPaddingObject(padding) {
3016      var _padding$top, _padding$right, _padding$bottom, _padding$left;
3017      return {
3018        top: (_padding$top = padding.top) != null ? _padding$top : 0,
3019        right: (_padding$right = padding.right) != null ? _padding$right : 0,
3020        bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
3021        left: (_padding$left = padding.left) != null ? _padding$left : 0
3022      };
3023    }
3024    function getPaddingObject(padding) {
3025      return typeof padding !== "number" ? expandPaddingObject(padding) : {
3026        top: padding,
3027        right: padding,
3028        bottom: padding,
3029        left: padding
3030      };
3031    }
3032    function rectToClientRect(rect) {
3033      const {
3034        x,
3035        y,
3036        width,
3037        height
3038      } = rect;
3039      return {
3040        width,
3041        height,
3042        top: y,
3043        left: x,
3044        right: x + width,
3045        bottom: y + height,
3046        x,
3047        y
3048      };
3049    }
3050  
3051    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/composite.mjs
3052    function isHiddenByStyles(styles) {
3053      return styles.visibility === "hidden" || styles.visibility === "collapse";
3054    }
3055    function isElementVisible(element, styles = element ? getComputedStyle2(element) : null) {
3056      if (!element || !element.isConnected || !styles || isHiddenByStyles(styles)) {
3057        return false;
3058      }
3059      if (typeof element.checkVisibility === "function") {
3060        return element.checkVisibility();
3061      }
3062      return styles.display !== "none" && styles.display !== "contents";
3063    }
3064  
3065    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/tabbable.mjs
3066    var CANDIDATE_SELECTOR = 'a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';
3067    function getParentElement(element) {
3068      const assignedSlot = element.assignedSlot;
3069      if (assignedSlot) {
3070        return assignedSlot;
3071      }
3072      if (element.parentElement) {
3073        return element.parentElement;
3074      }
3075      const rootNode = element.getRootNode();
3076      return isShadowRoot(rootNode) ? rootNode.host : null;
3077    }
3078    function getDetailsSummary(details) {
3079      for (const child of Array.from(details.children)) {
3080        if (getNodeName(child) === "summary") {
3081          return child;
3082        }
3083      }
3084      return null;
3085    }
3086    function isWithinOpenDetailsSummary(element, details) {
3087      const summary = getDetailsSummary(details);
3088      return !!summary && (element === summary || contains(summary, element));
3089    }
3090    function isFocusableCandidate(element) {
3091      const nodeName = element ? getNodeName(element) : "";
3092      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");
3093    }
3094    function isFocusableElement(element) {
3095      if (!isFocusableCandidate(element) || !element.isConnected || element.matches(":disabled")) {
3096        return false;
3097      }
3098      for (let current = element; current; current = getParentElement(current)) {
3099        const isAncestor = current !== element;
3100        const isSlot = getNodeName(current) === "slot";
3101        if (current.hasAttribute("inert")) {
3102          return false;
3103        }
3104        if (isAncestor && getNodeName(current) === "details" && !current.open && !isWithinOpenDetailsSummary(element, current) || current.hasAttribute("hidden") || !isSlot && !isVisibleInTabbableTree(current, isAncestor)) {
3105          return false;
3106        }
3107      }
3108      return true;
3109    }
3110    function isVisibleInTabbableTree(element, isAncestor) {
3111      const styles = getComputedStyle2(element);
3112      if (!isAncestor) {
3113        return isElementVisible(element, styles);
3114      }
3115      return styles.display !== "none";
3116    }
3117    function getTabIndex(element) {
3118      const tabIndex = element.tabIndex;
3119      if (tabIndex < 0) {
3120        const nodeName = getNodeName(element);
3121        if (nodeName === "details" || nodeName === "audio" || nodeName === "video" || isHTMLElement(element) && element.isContentEditable) {
3122          return 0;
3123        }
3124      }
3125      return tabIndex;
3126    }
3127    function getNamedRadioInput(element) {
3128      if (getNodeName(element) !== "input") {
3129        return null;
3130      }
3131      const input = element;
3132      return input.type === "radio" && input.name !== "" ? input : null;
3133    }
3134    function isTabbableRadio(element, candidates) {
3135      const input = getNamedRadioInput(element);
3136      if (!input) {
3137        return true;
3138      }
3139      const checkedRadio = candidates.find((candidate) => {
3140        const radio = getNamedRadioInput(candidate);
3141        return radio?.name === input.name && radio.form === input.form && radio.checked;
3142      });
3143      if (checkedRadio) {
3144        return checkedRadio === input;
3145      }
3146      return candidates.find((candidate) => {
3147        const radio = getNamedRadioInput(candidate);
3148        return radio?.name === input.name && radio.form === input.form;
3149      }) === input;
3150    }
3151    function getComposedChildren(container) {
3152      if (isHTMLElement(container) && getNodeName(container) === "slot") {
3153        const assignedElements = container.assignedElements({
3154          flatten: true
3155        });
3156        if (assignedElements.length > 0) {
3157          return assignedElements;
3158        }
3159      }
3160      if (isHTMLElement(container) && container.shadowRoot) {
3161        return Array.from(container.shadowRoot.children);
3162      }
3163      return Array.from(container.children);
3164    }
3165    function appendCandidates(container, list) {
3166      getComposedChildren(container).forEach((child) => {
3167        if (isFocusableCandidate(child)) {
3168          list.push(child);
3169        }
3170        appendCandidates(child, list);
3171      });
3172    }
3173    function appendMatchingElements(container, selector, list) {
3174      getComposedChildren(container).forEach((child) => {
3175        if (isHTMLElement(child) && child.matches(selector)) {
3176          list.push(child);
3177        }
3178        appendMatchingElements(child, selector, list);
3179      });
3180    }
3181    function focusable(container) {
3182      const candidates = [];
3183      appendCandidates(container, candidates);
3184      return candidates.filter(isFocusableElement);
3185    }
3186    function tabbable(container) {
3187      const candidates = focusable(container);
3188      return candidates.filter((element) => getTabIndex(element) >= 0 && isTabbableRadio(element, candidates));
3189    }
3190    function getTabbableIn(container, dir) {
3191      const list = tabbable(container);
3192      const len = list.length;
3193      if (len === 0) {
3194        return void 0;
3195      }
3196      const active = activeElement(ownerDocument(container));
3197      const index2 = list.indexOf(active);
3198      const nextIndex = index2 === -1 ? dir === 1 ? 0 : len - 1 : index2 + dir;
3199      return list[nextIndex];
3200    }
3201    function getNextTabbable(referenceElement) {
3202      return getTabbableIn(ownerDocument(referenceElement).body, 1) || referenceElement;
3203    }
3204    function getPreviousTabbable(referenceElement) {
3205      return getTabbableIn(ownerDocument(referenceElement).body, -1) || referenceElement;
3206    }
3207    function isOutsideEvent(event, container) {
3208      const containerElement = container || event.currentTarget;
3209      const relatedTarget = event.relatedTarget;
3210      return !relatedTarget || !contains(containerElement, relatedTarget);
3211    }
3212    function disableFocusInside(container) {
3213      const tabbableElements = tabbable(container);
3214      tabbableElements.forEach((element) => {
3215        element.dataset.tabindex = element.getAttribute("tabindex") || "";
3216        element.setAttribute("tabindex", "-1");
3217      });
3218    }
3219    function enableFocusInside(container) {
3220      const elements = [];
3221      appendMatchingElements(container, "[data-tabindex]", elements);
3222      elements.forEach((element) => {
3223        const tabindex = element.dataset.tabindex;
3224        delete element.dataset.tabindex;
3225        if (tabindex) {
3226          element.setAttribute("tabindex", tabindex);
3227        } else {
3228          element.removeAttribute("tabindex");
3229        }
3230      });
3231    }
3232  
3233    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/nodes.mjs
3234    function getNodeChildren(nodes, id, onlyOpenChildren = true) {
3235      const directChildren = nodes.filter((node) => node.parentId === id);
3236      return directChildren.flatMap((child) => [...!onlyOpenChildren || child.context?.open ? [child] : [], ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);
3237    }
3238  
3239    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/createAttribute.mjs
3240    function createAttribute(name) {
3241      return `data-base-ui-$name}`;
3242    }
3243  
3244    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingPortal.mjs
3245    var React17 = __toESM(require_react(), 1);
3246    var ReactDOM2 = __toESM(require_react_dom(), 1);
3247  
3248    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/constants.mjs
3249    var DISABLED_TRANSITIONS_STYLE = {
3250      style: {
3251        transition: "none"
3252      }
3253    };
3254    var BASE_UI_SWIPE_IGNORE_ATTRIBUTE = "data-base-ui-swipe-ignore";
3255    var LEGACY_SWIPE_IGNORE_ATTRIBUTE = "data-swipe-ignore";
3256    var BASE_UI_SWIPE_IGNORE_SELECTOR = `[$BASE_UI_SWIPE_IGNORE_ATTRIBUTE}]`;
3257    var LEGACY_SWIPE_IGNORE_SELECTOR = `[$LEGACY_SWIPE_IGNORE_ATTRIBUTE}]`;
3258    var POPUP_COLLISION_AVOIDANCE = {
3259      fallbackAxisSide: "end"
3260    };
3261    var ownerVisuallyHidden = {
3262      clipPath: "inset(50%)",
3263      position: "fixed",
3264      top: 0,
3265      left: 0
3266    };
3267  
3268    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingPortal.mjs
3269    var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
3270    var PortalContext = /* @__PURE__ */ React17.createContext(null);
3271    if (true) PortalContext.displayName = "PortalContext";
3272    var usePortalContext = () => React17.useContext(PortalContext);
3273    var attr = createAttribute("portal");
3274    function useFloatingPortalNode(props = {}) {
3275      const {
3276        ref,
3277        container: containerProp,
3278        componentProps = EMPTY_OBJECT,
3279        elementProps
3280      } = props;
3281      const uniqueId = useId();
3282      const portalContext = usePortalContext();
3283      const parentPortalNode = portalContext?.portalNode;
3284      const [containerElement, setContainerElement] = React17.useState(null);
3285      const [portalNode, setPortalNode] = React17.useState(null);
3286      const setPortalNodeRef = useStableCallback((node) => {
3287        if (node !== null) {
3288          setPortalNode(node);
3289        }
3290      });
3291      const containerRef = React17.useRef(null);
3292      useIsoLayoutEffect(() => {
3293        if (containerProp === null) {
3294          if (containerRef.current) {
3295            containerRef.current = null;
3296            setPortalNode(null);
3297            setContainerElement(null);
3298          }
3299          return;
3300        }
3301        const resolvedContainer = (containerProp && (isNode(containerProp) ? containerProp : containerProp.current)) ?? parentPortalNode ?? document.body;
3302        if (resolvedContainer == null) {
3303          if (containerRef.current) {
3304            containerRef.current = null;
3305            setPortalNode(null);
3306            setContainerElement(null);
3307          }
3308          return;
3309        }
3310        if (containerRef.current !== resolvedContainer) {
3311          containerRef.current = resolvedContainer;
3312          setPortalNode(null);
3313          setContainerElement(resolvedContainer);
3314        }
3315      }, [containerProp, parentPortalNode]);
3316      const portalElement = useRenderElement("div", componentProps, {
3317        ref: [ref, setPortalNodeRef],
3318        props: [{
3319          id: uniqueId,
3320          [attr]: ""
3321        }, elementProps]
3322      });
3323      const portalSubtree = containerElement && portalElement ? /* @__PURE__ */ ReactDOM2.createPortal(portalElement, containerElement) : null;
3324      return {
3325        node: portalNode,
3326        // `id` and `render` props can override or remove the generated ID. Use the exact
3327        // rendered value so `aria-owns` never points at an ID absent from the DOM.
3328        nodeId: /* @__PURE__ */ React17.isValidElement(portalElement) ? portalElement.props.id : void 0,
3329        subtree: portalSubtree
3330      };
3331    }
3332    var FloatingPortal = /* @__PURE__ */ React17.forwardRef(function FloatingPortal2(componentProps, forwardedRef) {
3333      const {
3334        render,
3335        className,
3336        style,
3337        children,
3338        container,
3339        portalOwnerRole,
3340        ...elementProps
3341      } = componentProps;
3342      const {
3343        node: portalNode,
3344        nodeId: portalNodeId,
3345        subtree: portalSubtree
3346      } = useFloatingPortalNode({
3347        container,
3348        ref: forwardedRef,
3349        componentProps,
3350        elementProps
3351      });
3352      const beforeOutsideRef = React17.useRef(null);
3353      const afterOutsideRef = React17.useRef(null);
3354      const beforeInsideRef = React17.useRef(null);
3355      const afterInsideRef = React17.useRef(null);
3356      const [focusManagerState, setFocusManagerState] = React17.useState(null);
3357      const focusInsideDisabledRef = React17.useRef(false);
3358      const modal = focusManagerState?.modal;
3359      const open2 = focusManagerState?.open;
3360      const shouldRenderGuards = !!focusManagerState && !focusManagerState.modal && focusManagerState.open && !!portalNode;
3361      React17.useEffect(() => {
3362        if (!portalNode || modal) {
3363          return void 0;
3364        }
3365        function onFocus(event) {
3366          if (portalNode && event.relatedTarget && isOutsideEvent(event)) {
3367            if (event.type === "focusin") {
3368              if (focusInsideDisabledRef.current) {
3369                enableFocusInside(portalNode);
3370                focusInsideDisabledRef.current = false;
3371              }
3372            } else {
3373              disableFocusInside(portalNode);
3374              focusInsideDisabledRef.current = true;
3375            }
3376          }
3377        }
3378        return mergeCleanups(addEventListener(portalNode, "focusin", onFocus, true), addEventListener(portalNode, "focusout", onFocus, true));
3379      }, [portalNode, modal]);
3380      useIsoLayoutEffect(() => {
3381        if (!portalNode || open2 !== true || !focusInsideDisabledRef.current) {
3382          return;
3383        }
3384        enableFocusInside(portalNode);
3385        focusInsideDisabledRef.current = false;
3386      }, [open2, portalNode]);
3387      const portalContextValue = React17.useMemo(() => ({
3388        beforeOutsideRef,
3389        afterOutsideRef,
3390        beforeInsideRef,
3391        afterInsideRef,
3392        portalNode,
3393        setFocusManagerState
3394      }), [portalNode]);
3395      return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(React17.Fragment, {
3396        children: [portalSubtree, /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(PortalContext.Provider, {
3397          value: portalContextValue,
3398          children: [shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FocusGuard, {
3399            "data-type": "outside",
3400            ref: beforeOutsideRef,
3401            onFocus: (event) => {
3402              if (isOutsideEvent(event, portalNode)) {
3403                beforeInsideRef.current?.focus();
3404              } else {
3405                const domReference = focusManagerState ? focusManagerState.domReference : null;
3406                const prevTabbable = getPreviousTabbable(domReference);
3407                prevTabbable?.focus();
3408              }
3409            }
3410          }), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", {
3411            role: portalOwnerRole,
3412            "aria-owns": portalNodeId,
3413            style: ownerVisuallyHidden
3414          }), portalNode && /* @__PURE__ */ ReactDOM2.createPortal(children, portalNode), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FocusGuard, {
3415            "data-type": "outside",
3416            ref: afterOutsideRef,
3417            onFocus: (event) => {
3418              if (isOutsideEvent(event, portalNode)) {
3419                afterInsideRef.current?.focus();
3420              } else {
3421                const domReference = focusManagerState ? focusManagerState.domReference : null;
3422                const nextTabbable = getNextTabbable(domReference);
3423                nextTabbable?.focus();
3424                if (focusManagerState?.closeOnFocusOut) {
3425                  focusManagerState?.onOpenChange(false, createChangeEventDetails(reason_parts_exports.focusOut, event.nativeEvent));
3426                }
3427              }
3428            }
3429          })]
3430        })]
3431      });
3432    });
3433    if (true) FloatingPortal.displayName = "FloatingPortal";
3434  
3435    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingTree.mjs
3436    var React18 = __toESM(require_react(), 1);
3437  
3438    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/utils/createEventEmitter.mjs
3439    function createEventEmitter() {
3440      const map = /* @__PURE__ */ new Map();
3441      return {
3442        emit(event, data) {
3443          map.get(event)?.forEach((listener) => listener(data));
3444        },
3445        on(event, listener) {
3446          if (!map.has(event)) {
3447            map.set(event, /* @__PURE__ */ new Set());
3448          }
3449          map.get(event).add(listener);
3450        },
3451        off(event, listener) {
3452          map.get(event)?.delete(listener);
3453        }
3454      };
3455    }
3456  
3457    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingTree.mjs
3458    var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
3459    var FloatingNodeContext = /* @__PURE__ */ React18.createContext(null);
3460    if (true) FloatingNodeContext.displayName = "FloatingNodeContext";
3461    var FloatingTreeContext = /* @__PURE__ */ React18.createContext(null);
3462    if (true) FloatingTreeContext.displayName = "FloatingTreeContext";
3463    var useFloatingParentNodeId = () => React18.useContext(FloatingNodeContext)?.id || null;
3464    var useFloatingTree = (externalTree) => {
3465      const contextTree = React18.useContext(FloatingTreeContext);
3466      return externalTree ?? contextTree;
3467    };
3468  
3469    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useClientPoint.mjs
3470    var React19 = __toESM(require_react(), 1);
3471    function createVirtualElement(domElement, data) {
3472      let offsetX = null;
3473      let offsetY = null;
3474      let isAutoUpdateEvent = false;
3475      return {
3476        contextElement: domElement || void 0,
3477        getBoundingClientRect() {
3478          const domRect = domElement?.getBoundingClientRect() || {
3479            width: 0,
3480            height: 0,
3481            x: 0,
3482            y: 0
3483          };
3484          const isXAxis = data.axis === "x" || data.axis === "both";
3485          const isYAxis = data.axis === "y" || data.axis === "both";
3486          const canTrackCursorOnAutoUpdate = ["mouseenter", "mousemove"].includes(data.dataRef.current.openEvent?.type || "") && data.pointerType !== "touch";
3487          const width = data.axis === "y" ? domRect.width : 0;
3488          const height = data.axis === "x" ? domRect.height : 0;
3489          let x = domRect.x;
3490          let y = domRect.y;
3491          if (offsetX == null && data.x && isXAxis) {
3492            offsetX = domRect.x - data.x;
3493          }
3494          if (offsetY == null && data.y && isYAxis) {
3495            offsetY = domRect.y - data.y;
3496          }
3497          x -= offsetX || 0;
3498          y -= offsetY || 0;
3499          if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {
3500            x = isXAxis && data.x != null ? data.x : x;
3501            y = isYAxis && data.y != null ? data.y : y;
3502          }
3503          isAutoUpdateEvent = true;
3504          return {
3505            width,
3506            height,
3507            x,
3508            y,
3509            top: y,
3510            right: x + width,
3511            bottom: y + height,
3512            left: x
3513          };
3514        }
3515      };
3516    }
3517    function isMouseBasedEvent(event) {
3518      return event != null && event.clientX != null;
3519    }
3520    function useClientPoint(store2, props = {}) {
3521      const {
3522        enabled = true,
3523        axis = "both"
3524      } = props;
3525      const open2 = store2.useState("open");
3526      const floating = store2.useState("floatingElement");
3527      const domReference = store2.useState("domReferenceElement");
3528      const dataRef = store2.context.dataRef;
3529      const initialRef = React19.useRef(false);
3530      const cleanupListenerRef = React19.useRef(null);
3531      const [pointerType, setPointerType] = React19.useState();
3532      const [reactive, setReactive] = React19.useState([]);
3533      const resetReference = useStableCallback((reference2) => {
3534        store2.set("positionReference", reference2);
3535      });
3536      const setReference = useStableCallback((newX, newY, referenceElement) => {
3537        if (initialRef.current) {
3538          return;
3539        }
3540        if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {
3541          return;
3542        }
3543        store2.set("positionReference", createVirtualElement(referenceElement ?? domReference, {
3544          x: newX,
3545          y: newY,
3546          axis,
3547          dataRef,
3548          pointerType
3549        }));
3550      });
3551      const handleReferenceEnterOrMove = useStableCallback((event) => {
3552        if (!open2) {
3553          setReference(event.clientX, event.clientY, event.currentTarget);
3554        } else if (!cleanupListenerRef.current) {
3555          setReference(event.clientX, event.clientY, event.currentTarget);
3556          setReactive([]);
3557        }
3558      });
3559      const openCheck = isMouseLikePointerType(pointerType) ? floating : open2;
3560      React19.useEffect(() => {
3561        if (!enabled) {
3562          resetReference(domReference);
3563          return void 0;
3564        }
3565        if (!openCheck) {
3566          return void 0;
3567        }
3568        function cleanupListener() {
3569          cleanupListenerRef.current?.();
3570          cleanupListenerRef.current = null;
3571        }
3572        const win = getWindow(floating);
3573        function handleMouseMove(event) {
3574          const target = getTarget(event);
3575          if (!contains(floating, target)) {
3576            setReference(event.clientX, event.clientY);
3577          } else {
3578            cleanupListener();
3579          }
3580        }
3581        if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {
3582          cleanupListenerRef.current = addEventListener(win, "mousemove", handleMouseMove);
3583        } else {
3584          resetReference(domReference);
3585        }
3586        return cleanupListener;
3587      }, [openCheck, enabled, floating, dataRef, domReference, store2, setReference, resetReference, reactive]);
3588      React19.useEffect(() => () => {
3589        store2.set("positionReference", null);
3590      }, [store2]);
3591      React19.useEffect(() => {
3592        if (enabled && !floating) {
3593          initialRef.current = false;
3594        }
3595      }, [enabled, floating]);
3596      React19.useEffect(() => {
3597        if (!enabled && open2) {
3598          initialRef.current = true;
3599        }
3600      }, [enabled, open2]);
3601      const reference = React19.useMemo(() => {
3602        function setPointerTypeRef(event) {
3603          setPointerType(event.pointerType);
3604        }
3605        return {
3606          onPointerDown: setPointerTypeRef,
3607          onPointerEnter: setPointerTypeRef,
3608          onMouseMove: handleReferenceEnterOrMove,
3609          onMouseEnter: handleReferenceEnterOrMove
3610        };
3611      }, [handleReferenceEnterOrMove]);
3612      return React19.useMemo(() => enabled ? {
3613        reference,
3614        trigger: reference
3615      } : {}, [enabled, reference]);
3616    }
3617  
3618    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useDismiss.mjs
3619    var React20 = __toESM(require_react(), 1);
3620    function alwaysFalse() {
3621      return false;
3622    }
3623    function normalizeProp(normalizable) {
3624      return {
3625        escapeKey: typeof normalizable === "boolean" ? normalizable : normalizable?.escapeKey ?? false,
3626        outsidePress: typeof normalizable === "boolean" ? normalizable : normalizable?.outsidePress ?? true
3627      };
3628    }
3629    function useDismiss(store2, props = {}) {
3630      const {
3631        enabled = true,
3632        escapeKey: escapeKey2 = true,
3633        outsidePress: outsidePressProp = true,
3634        outsidePressEvent = "sloppy",
3635        referencePress = alwaysFalse,
3636        bubbles,
3637        externalTree
3638      } = props;
3639      const open2 = store2.useState("open");
3640      const floatingElement = store2.useState("floatingElement");
3641      const {
3642        dataRef,
3643        events
3644      } = store2.context;
3645      const tree = useFloatingTree(externalTree);
3646      const outsidePressFn = useStableCallback(typeof outsidePressProp === "function" ? outsidePressProp : () => false);
3647      const outsidePress2 = typeof outsidePressProp === "function" ? outsidePressFn : outsidePressProp;
3648      const outsidePressEnabled = outsidePress2 !== false;
3649      const getOutsidePressEventProp = useStableCallback(() => outsidePressEvent);
3650      const {
3651        escapeKey: escapeKeyBubbles,
3652        outsidePress: outsidePressBubbles
3653      } = normalizeProp(bubbles);
3654      const pressStartedInsideRef = React20.useRef(false);
3655      const pressStartPreventedRef = React20.useRef(false);
3656      const suppressNextOutsideClickRef = React20.useRef(false);
3657      const sawPressWhileOpenRef = React20.useRef(false);
3658      const isComposingRef = React20.useRef(false);
3659      const currentPointerTypeRef = React20.useRef("");
3660      const touchStateRef = React20.useRef(null);
3661      const cancelDismissOnEndTimeout = useTimeout();
3662      const clearInsideReactTreeTimeout = useTimeout();
3663      const compositionTimeout = useTimeout();
3664      const clearInsideReactTree = useStableCallback(() => {
3665        clearInsideReactTreeTimeout.clear();
3666        dataRef.current.insideReactTree = false;
3667      });
3668      const hasBlockingChild = useStableCallback((bubbleKey) => {
3669        const nodeId = dataRef.current.floatingContext?.nodeId;
3670        const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];
3671        return children.some((child) => child.context?.open && !child.context.dataRef.current[bubbleKey]);
3672      });
3673      const isEventWithinOwnElements = useStableCallback((event) => {
3674        return isEventTargetWithin(event, store2.select("floatingElement")) || isEventTargetWithin(event, store2.select("domReferenceElement"));
3675      });
3676      const closeOnReferencePress = useStableCallback((event) => {
3677        if (!referencePress()) {
3678          return;
3679        }
3680        store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerPress, event.nativeEvent));
3681      });
3682      const closeOnEscapeKeyDown = useStableCallback((event) => {
3683        if (!open2 || !enabled || !escapeKey2 || event.key !== "Escape") {
3684          return;
3685        }
3686        const native = isReactEvent(event) ? event.nativeEvent : event;
3687        if (isComposingRef.current || native.isComposing) {
3688          return;
3689        }
3690        if (!escapeKeyBubbles && hasBlockingChild("__escapeKeyBubbles")) {
3691          return;
3692        }
3693        const eventDetails = createChangeEventDetails(reason_parts_exports.escapeKey, native);
3694        store2.setOpen(false, eventDetails);
3695        if (!eventDetails.isCanceled) {
3696          event.preventDefault();
3697        }
3698        if (!escapeKeyBubbles && !eventDetails.isPropagationAllowed) {
3699          event.stopPropagation();
3700        }
3701      });
3702      const markInsideReactTree = useStableCallback(() => {
3703        dataRef.current.insideReactTree = true;
3704        clearInsideReactTreeTimeout.start(0, clearInsideReactTree);
3705      });
3706      const markPressStartedInsideReactTree = useStableCallback((event) => {
3707        if (!open2 || !enabled || event.button !== 0) {
3708          return;
3709        }
3710        const target = getTarget(event.nativeEvent);
3711        if (!contains(store2.select("floatingElement"), target)) {
3712          return;
3713        }
3714        if (!pressStartedInsideRef.current) {
3715          pressStartedInsideRef.current = true;
3716          pressStartPreventedRef.current = false;
3717        }
3718      });
3719      const markInsidePressStartPrevented = useStableCallback((event) => {
3720        if (!open2 || !enabled) {
3721          return;
3722        }
3723        if (!(event.defaultPrevented || event.nativeEvent.defaultPrevented)) {
3724          return;
3725        }
3726        if (pressStartedInsideRef.current) {
3727          pressStartPreventedRef.current = true;
3728        }
3729      });
3730      React20.useEffect(() => {
3731        function handleOpenChange(details) {
3732          if (!details.open) {
3733            sawPressWhileOpenRef.current = false;
3734          }
3735        }
3736        events.on("openchange", handleOpenChange);
3737        return () => {
3738          events.off("openchange", handleOpenChange);
3739        };
3740      }, [events]);
3741      React20.useEffect(() => clearInsideReactTree, [clearInsideReactTree]);
3742      React20.useEffect(() => {
3743        if (!open2 || !enabled) {
3744          if (!open2) {
3745            sawPressWhileOpenRef.current = false;
3746            isComposingRef.current = false;
3747            currentPointerTypeRef.current = "";
3748            touchStateRef.current = null;
3749          }
3750          return clearInsideReactTree;
3751        }
3752        dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;
3753        dataRef.current.__outsidePressBubbles = outsidePressBubbles;
3754        const preventedPressSuppressionTimeout = new Timeout();
3755        const doc = ownerDocument(floatingElement);
3756        function handleCompositionStart() {
3757          compositionTimeout.clear();
3758          isComposingRef.current = true;
3759        }
3760        function handleCompositionEnd() {
3761          isComposingRef.current = true;
3762          compositionTimeout.start(
3763            // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
3764            // Only apply to WebKit for the test to remain 0ms.
3765            parts_exports.engine.webkit ? 5 : 0,
3766            () => {
3767              isComposingRef.current = false;
3768            }
3769          );
3770        }
3771        function suppressImmediateOutsideClickAfterPreventedStart() {
3772          suppressNextOutsideClickRef.current = true;
3773          preventedPressSuppressionTimeout.start(0, () => {
3774            suppressNextOutsideClickRef.current = false;
3775          });
3776        }
3777        function resetPressStartState() {
3778          pressStartedInsideRef.current = false;
3779          pressStartPreventedRef.current = false;
3780        }
3781        function getOutsidePressEvent() {
3782          const type = currentPointerTypeRef.current;
3783          const computedType = type === "pen" || !type ? "mouse" : type;
3784          const outsidePressEventValue = getOutsidePressEventProp();
3785          const resolved = typeof outsidePressEventValue === "function" ? outsidePressEventValue() : outsidePressEventValue;
3786          if (typeof resolved === "string") {
3787            return resolved;
3788          }
3789          return resolved[computedType];
3790        }
3791        function shouldIgnoreEvent(event) {
3792          const computedOutsidePressEvent = getOutsidePressEvent();
3793          return computedOutsidePressEvent === "intentional" && event.type !== "click" || computedOutsidePressEvent === "sloppy" && event.type === "click";
3794        }
3795        function isEventWithinFloatingTree(event) {
3796          const nodeId = dataRef.current.floatingContext?.nodeId;
3797          const targetIsInsideChildren = tree && getNodeChildren(tree.nodesRef.current, nodeId).some((node) => isEventTargetWithin(event, node.context?.elements.floating));
3798          return isEventWithinOwnElements(event) || targetIsInsideChildren;
3799        }
3800        function closeOnPressOutside(event) {
3801          if (shouldIgnoreEvent(event)) {
3802            if (event.type !== "click" && !isEventWithinOwnElements(event)) {
3803              preventedPressSuppressionTimeout.clear();
3804              suppressNextOutsideClickRef.current = false;
3805            }
3806            clearInsideReactTree();
3807            return;
3808          }
3809          if (dataRef.current.insideReactTree) {
3810            clearInsideReactTree();
3811            return;
3812          }
3813          const target = getTarget(event);
3814          const inertSelector = `[$createAttribute("inert")}]`;
3815          const targetRoot = isElement(target) ? target.getRootNode() : null;
3816          const markers = Array.from((isShadowRoot(targetRoot) ? targetRoot : ownerDocument(store2.select("floatingElement"))).querySelectorAll(inertSelector));
3817          const triggers = store2.context.triggerElements;
3818          if (target && (triggers.hasElement(target) || triggers.hasMatchingElement((trigger) => contains(trigger, target)))) {
3819            return;
3820          }
3821          let targetRootAncestor = isElement(target) ? target : null;
3822          while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {
3823            const nextParent = getParentNode(targetRootAncestor);
3824            if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {
3825              break;
3826            }
3827            targetRootAncestor = nextParent;
3828          }
3829          if (markers.length && isElement(target) && !isRootElement(target) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
3830          !contains(target, store2.select("floatingElement")) && // If the target root element contains none of the markers, then the
3831          // element was injected after the floating element rendered.
3832          markers.every((marker) => !contains(targetRootAncestor, marker))) {
3833            return;
3834          }
3835          if (isHTMLElement(target) && !("touches" in event)) {
3836            const lastTraversableNode = isLastTraversableNode(target);
3837            const style = getComputedStyle2(target);
3838            const scrollRe = /auto|scroll/;
3839            const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);
3840            const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);
3841            const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;
3842            const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;
3843            const isRTL3 = style.direction === "rtl";
3844            const pressedVerticalScrollbar = canScrollY && (isRTL3 ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);
3845            const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;
3846            if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {
3847              return;
3848            }
3849          }
3850          if (isEventWithinFloatingTree(event)) {
3851            return;
3852          }
3853          if (getOutsidePressEvent() === "intentional") {
3854            if (event.detail !== 0 && !isVirtualClick(event) && !sawPressWhileOpenRef.current) {
3855              return;
3856            }
3857            if (suppressNextOutsideClickRef.current) {
3858              preventedPressSuppressionTimeout.clear();
3859              suppressNextOutsideClickRef.current = false;
3860              return;
3861            }
3862          }
3863          if (typeof outsidePress2 === "function" && !outsidePress2(event)) {
3864            return;
3865          }
3866          if (hasBlockingChild("__outsidePressBubbles")) {
3867            return;
3868          }
3869          store2.setOpen(false, createChangeEventDetails(reason_parts_exports.outsidePress, event));
3870          clearInsideReactTree();
3871        }
3872        function handlePointerDown(event) {
3873          if (getOutsidePressEvent() !== "sloppy" || event.pointerType === "touch" || !store2.select("open") || !enabled || isEventWithinOwnElements(event)) {
3874            return;
3875          }
3876          closeOnPressOutside(event);
3877        }
3878        function handleTouchStart(event) {
3879          if (getOutsidePressEvent() !== "sloppy" || !store2.select("open") || !enabled || isEventWithinOwnElements(event)) {
3880            return;
3881          }
3882          const touch = event.touches[0];
3883          if (touch) {
3884            touchStateRef.current = {
3885              startTime: Date.now(),
3886              startX: touch.clientX,
3887              startY: touch.clientY,
3888              dismissOnTouchEnd: false,
3889              dismissOnMouseDown: true
3890            };
3891            cancelDismissOnEndTimeout.start(1e3, () => {
3892              if (touchStateRef.current) {
3893                touchStateRef.current.dismissOnTouchEnd = false;
3894                touchStateRef.current.dismissOnMouseDown = false;
3895              }
3896            });
3897          }
3898        }
3899        function addTargetEventListenerOnce(event, listener) {
3900          const target = getTarget(event);
3901          if (!target) {
3902            return;
3903          }
3904          const unsubscribe2 = addEventListener(target, event.type, () => {
3905            listener(event);
3906            unsubscribe2();
3907          });
3908        }
3909        function handleTouchStartCapture(event) {
3910          currentPointerTypeRef.current = "touch";
3911          addTargetEventListenerOnce(event, handleTouchStart);
3912        }
3913        function closeOnPressOutsideCapture(event) {
3914          cancelDismissOnEndTimeout.clear();
3915          if (event.type === "pointerdown") {
3916            if (event.button === 0) {
3917              sawPressWhileOpenRef.current = true;
3918            }
3919            currentPointerTypeRef.current = event.pointerType;
3920          }
3921          if (event.type === "mousedown" && touchStateRef.current && !touchStateRef.current.dismissOnMouseDown) {
3922            return;
3923          }
3924          addTargetEventListenerOnce(event, (targetEvent) => {
3925            if (targetEvent.type === "pointerdown") {
3926              handlePointerDown(targetEvent);
3927            } else {
3928              closeOnPressOutside(targetEvent);
3929            }
3930          });
3931        }
3932        function handlePressEndCapture(event) {
3933          if (event.type === "pointercancel") {
3934            sawPressWhileOpenRef.current = false;
3935          }
3936          if (!pressStartedInsideRef.current) {
3937            return;
3938          }
3939          const pressStartedInsideDefaultPrevented = pressStartPreventedRef.current;
3940          resetPressStartState();
3941          if (getOutsidePressEvent() !== "intentional") {
3942            return;
3943          }
3944          if (event.type === "pointercancel") {
3945            if (pressStartedInsideDefaultPrevented) {
3946              suppressImmediateOutsideClickAfterPreventedStart();
3947            }
3948            return;
3949          }
3950          if (isEventWithinFloatingTree(event)) {
3951            return;
3952          }
3953          if (pressStartedInsideDefaultPrevented) {
3954            suppressImmediateOutsideClickAfterPreventedStart();
3955            return;
3956          }
3957          if (typeof outsidePress2 === "function" && !outsidePress2(event)) {
3958            return;
3959          }
3960          preventedPressSuppressionTimeout.clear();
3961          suppressNextOutsideClickRef.current = true;
3962          clearInsideReactTree();
3963        }
3964        function handleTouchMove(event) {
3965          if (getOutsidePressEvent() !== "sloppy" || !touchStateRef.current || isEventWithinOwnElements(event)) {
3966            return;
3967          }
3968          const touch = event.touches[0];
3969          if (!touch) {
3970            return;
3971          }
3972          const deltaX = Math.abs(touch.clientX - touchStateRef.current.startX);
3973          const deltaY = Math.abs(touch.clientY - touchStateRef.current.startY);
3974          const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
3975          if (distance > 5) {
3976            touchStateRef.current.dismissOnTouchEnd = true;
3977          }
3978          if (distance > 10) {
3979            closeOnPressOutside(event);
3980            cancelDismissOnEndTimeout.clear();
3981            touchStateRef.current = null;
3982          }
3983        }
3984        function handleTouchMoveCapture(event) {
3985          addTargetEventListenerOnce(event, handleTouchMove);
3986        }
3987        function handleTouchEnd(event) {
3988          if (getOutsidePressEvent() !== "sloppy" || !touchStateRef.current || isEventWithinOwnElements(event)) {
3989            return;
3990          }
3991          if (touchStateRef.current.dismissOnTouchEnd) {
3992            closeOnPressOutside(event);
3993          }
3994          cancelDismissOnEndTimeout.clear();
3995          touchStateRef.current = null;
3996        }
3997        function handleTouchEndCapture(event) {
3998          addTargetEventListenerOnce(event, handleTouchEnd);
3999        }
4000        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, {
4001          capture: true,
4002          passive: true
4003        }), addEventListener(doc, "touchmove", handleTouchMoveCapture, {
4004          capture: true,
4005          passive: true
4006        }), addEventListener(doc, "touchend", handleTouchEndCapture, {
4007          capture: true,
4008          passive: true
4009        })));
4010        return () => {
4011          unsubscribe();
4012          preventedPressSuppressionTimeout.clear();
4013          resetPressStartState();
4014          suppressNextOutsideClickRef.current = false;
4015        };
4016      }, [dataRef, floatingElement, escapeKey2, outsidePressEnabled, outsidePress2, open2, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, clearInsideReactTree, getOutsidePressEventProp, hasBlockingChild, isEventWithinOwnElements, tree, store2, cancelDismissOnEndTimeout, compositionTimeout]);
4017      const reference = React20.useMemo(() => ({
4018        onKeyDown: closeOnEscapeKeyDown,
4019        onPointerDown: closeOnReferencePress,
4020        onClick: closeOnReferencePress
4021      }), [closeOnEscapeKeyDown, closeOnReferencePress]);
4022      const floating = React20.useMemo(() => ({
4023        onKeyDown: closeOnEscapeKeyDown,
4024        // `onMouseDown` may be blocked if `event.preventDefault()` is called in
4025        // `onPointerDown`, such as with <NumberField.ScrubArea>.
4026        // See https://github.com/mui/base-ui/pull/3379
4027        onPointerDown: markInsidePressStartPrevented,
4028        onMouseDown: markInsidePressStartPrevented,
4029        onClickCapture: markInsideReactTree,
4030        onMouseDownCapture(event) {
4031          markInsideReactTree();
4032          markPressStartedInsideReactTree(event);
4033        },
4034        onPointerDownCapture(event) {
4035          markInsideReactTree();
4036          markPressStartedInsideReactTree(event);
4037        },
4038        onMouseUpCapture: markInsideReactTree,
4039        onTouchEndCapture: markInsideReactTree,
4040        onTouchMoveCapture: markInsideReactTree
4041      }), [closeOnEscapeKeyDown, markInsideReactTree, markPressStartedInsideReactTree, markInsidePressStartPrevented]);
4042      return React20.useMemo(() => enabled ? {
4043        reference,
4044        floating,
4045        trigger: reference
4046      } : {}, [enabled, reference, floating]);
4047    }
4048  
4049    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupHandle.mjs
4050    var BasePopupHandle = class {
4051      /**
4052       * Stores of every root currently using this handle, in attach order. A handle is meant to be used
4053       * by a single mounted root, but roots can transiently overlap (e.g. during an animated route
4054       * transition), so this stack lets `attachStore`'s cleanup restore the previous root instead of
4055       * leaving a still-mounted root uncontrollable when a newer overlapping root detaches first.
4056       */
4057      attachedStores = [];
4058      /**
4059       * Store of the root that currently controls the handle: the most recently attached one still
4060       * mounted, or `null` when no root is attached. Imperative methods are no-ops while this is `null`.
4061       */
4062      attachedStoreValue = null;
4063      /**
4064       * Listeners notified when `attachedStore` changes, so detached triggers can follow the store pointer.
4065       */
4066      storeListeners = /* @__PURE__ */ new Set();
4067      /**
4068       * Creates a handle backed by the store used while no root is attached.
4069       *
4070       * @param fallbackStore Inert, closed store handed to detached triggers while no root is attached,
4071       * so they can render and register without a mounted root. Triggers register into whichever store
4072       * `store` currently resolves to, so while detached they live in this store's trigger map and
4073       * migrate themselves to the root's store (and back) as it attaches/detaches.
4074       * @param componentName Component name used to prefix dev warnings, e.g. `'Menu'` produces
4075       * `MenuHandle.open()` in warning text.
4076       * @param throwOnMissingTrigger Whether `open(triggerId)` throws when no trigger with that id is
4077       * registered. Anchored popups (Menu, Popover, Tooltip, PreviewCard) need a trigger to anchor to,
4078       * so they throw; Dialog is not anchored and instead opens unassociated with a dev warning.
4079       */
4080      constructor(fallbackStore, componentName, throwOnMissingTrigger = true) {
4081        this.fallbackStore = fallbackStore;
4082        this.componentName = componentName;
4083        this.throwOnMissingTrigger = throwOnMissingTrigger;
4084      }
4085      get attachedStore() {
4086        return this.attachedStoreValue;
4087      }
4088      /**
4089       * Store that detached triggers read from: the attached root's store, or an inert fallback store
4090       * used while no root is attached.
4091       * @internal
4092       */
4093      get store() {
4094        return this.attachedStoreValue ?? this.fallbackStore;
4095      }
4096      /**
4097       * Stable fallback store used for server rendering and hydration. Root stores cannot be recorded on
4098       * the handle during render because a handle can be shared by concurrent server-rendered requests.
4099       * @internal
4100       */
4101      get serverStore() {
4102        return this.fallbackStore;
4103      }
4104      /**
4105       * Subscribes to changes of the attached store pointer so detached triggers re-render and re-bind
4106       * when a root attaches or detaches. Returns a function that removes the listener.
4107       * @internal
4108       */
4109      subscribeStore(listener) {
4110        this.storeListeners.add(listener);
4111        return () => {
4112          this.storeListeners.delete(listener);
4113        };
4114      }
4115      /**
4116       * Points the handle at a root's store and notifies subscribers so detached triggers re-render and
4117       * re-register into it (their registration effect migrates them when the store pointer changes).
4118       * Returns a cleanup function that detaches the store again.
4119       * @internal
4120       */
4121      attachStore(newStore) {
4122        this.attachedStores.push(newStore);
4123        this.setActiveStore(newStore);
4124        if (true) {
4125          if (this.attachedStores.length > 1) {
4126            const dev = this;
4127            (dev.overlapWarningFrame ??= AnimationFrame.create()).request(() => {
4128              if (this.attachedStores.length > 1) {
4129                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.");
4130              }
4131            });
4132          }
4133        }
4134        return () => {
4135          const index2 = this.attachedStores.lastIndexOf(newStore);
4136          if (index2 !== -1) {
4137            this.attachedStores.splice(index2, 1);
4138          }
4139          this.setActiveStore(this.attachedStores[this.attachedStores.length - 1] ?? null);
4140        };
4141      }
4142      /**
4143       * Sets the store that currently controls the handle and notifies subscribers when it changes, so
4144       * detached triggers re-render and migrate their registration to the new store.
4145       */
4146      setActiveStore(store2) {
4147        if (this.attachedStoreValue !== store2) {
4148          this.attachedStoreValue = store2;
4149          this.storeListeners.forEach((listener) => {
4150            listener();
4151          });
4152        }
4153      }
4154      /**
4155       * Opens the attached root's store and associates it with the trigger with the given id, or a
4156       * no-op (with a dev warning) while no root is attached. Shared by every concrete handle's public
4157       * `open()` method, which only narrows the parameter type.
4158       *
4159       * When a trigger id is given but no matching trigger is registered, anchored popups throw (see
4160       * `throwOnMissingTrigger`); Dialog opens unassociated with a dev warning instead.
4161       *
4162       * This method should only be called in an event handler or an effect (not during rendering).
4163       *
4164       * @param triggerId ID of the trigger to associate with the popup, or `null`/`undefined` to open
4165       * without associating any trigger.
4166       */
4167      openByTrigger(triggerId) {
4168        const attachedStore = this.attachedStore;
4169        if (attachedStore === null) {
4170          if (true) {
4171            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.`);
4172          }
4173          return;
4174        }
4175        let triggerElement;
4176        if (triggerId) {
4177          for (let i = this.attachedStores.length - 1; i >= 0 && !triggerElement; i -= 1) {
4178            triggerElement = this.attachedStores[i].context.triggerElements.getById(triggerId);
4179          }
4180          triggerElement ??= this.fallbackStore.context.triggerElements.getById(triggerId);
4181        }
4182        if (triggerId && !triggerElement) {
4183          if (this.throwOnMissingTrigger) {
4184            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));
4185          }
4186          if (true) {
4187            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.`);
4188          }
4189        }
4190        attachedStore.setOpen(true, createChangeEventDetails(reason_parts_exports.imperativeAction, void 0, triggerElement));
4191      }
4192      /**
4193       * Closes the popup by setting the attached root's store to closed, or a no-op (with a dev warning)
4194       * while no root is attached. Shared by every concrete handle's public `close()` method.
4195       *
4196       * This method should only be called in an event handler or an effect (not during rendering).
4197       */
4198      closePopup() {
4199        const attachedStore = this.attachedStore;
4200        if (attachedStore === null) {
4201          if (true) {
4202            console.warn(`Base UI: $this.componentName}Handle.close() was called while no root using this handle is mounted. The call was ignored.`);
4203          }
4204          return;
4205        }
4206        attachedStore.setOpen(false, createChangeEventDetails(reason_parts_exports.imperativeAction));
4207      }
4208    };
4209  
4210    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupStoreUtils.mjs
4211    var React22 = __toESM(require_react(), 1);
4212    var ReactDOM3 = __toESM(require_react_dom(), 1);
4213  
4214    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useSyncedFloatingRootContext.mjs
4215    function useSyncedFloatingRootContext(options) {
4216      const {
4217        popupStore,
4218        treatPopupAsFloatingElement = false,
4219        floatingRootContext: store2,
4220        floatingId,
4221        nested,
4222        onOpenChange
4223      } = options;
4224      const open2 = popupStore.useState("open");
4225      const referenceElement = popupStore.useState("activeTriggerElement");
4226      const floatingElement = popupStore.useState(treatPopupAsFloatingElement ? "popupElement" : "positionerElement");
4227      const handleOpenChange = onOpenChange;
4228      popupStore.useSyncedValue("floatingId", floatingId);
4229      useIsoLayoutEffect(() => {
4230        const valuesToSync = {
4231          open: open2,
4232          floatingId,
4233          referenceElement,
4234          floatingElement
4235        };
4236        if (isElement(referenceElement)) {
4237          valuesToSync.domReferenceElement = referenceElement;
4238        }
4239        if (store2.state.positionReference === store2.state.referenceElement) {
4240          valuesToSync.positionReference = referenceElement;
4241        }
4242        store2.update(valuesToSync);
4243      }, [open2, floatingId, referenceElement, floatingElement, store2]);
4244      store2.context.onOpenChange = handleOpenChange;
4245      store2.context.nested = nested;
4246      return store2;
4247    }
4248  
4249    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useUnmountAfterClose.mjs
4250    var React21 = __toESM(require_react(), 1);
4251    function useUnmountAfterClose(parameters) {
4252      const {
4253        open: open2,
4254        ref,
4255        preventUnmountOnClose,
4256        setPreventUnmountOnClose: setPreventUnmountOnCloseParam,
4257        onUnmount,
4258        animateInitialOpen
4259      } = parameters;
4260      const setPreventUnmountOnClose = useStableCallback(setPreventUnmountOnCloseParam);
4261      const {
4262        mounted,
4263        setMounted,
4264        transitionStatus
4265      } = useTransitionStatus(open2, false, false, animateInitialOpen);
4266      const preventUnmountingOnClose = open2 ? false : preventUnmountOnClose;
4267      useIsoLayoutEffect(() => {
4268        if (open2) {
4269          setPreventUnmountOnClose(false);
4270        }
4271      }, [open2, setPreventUnmountOnClose]);
4272      const mountedRef = React21.useRef(mounted);
4273      const pendingUnmountRef = React21.useRef(false);
4274      const rerender = useForcedRerendering();
4275      const unmount = () => {
4276        mountedRef.current = false;
4277        setMounted(false);
4278        onUnmount();
4279      };
4280      useIsoLayoutEffect(() => {
4281        mountedRef.current = mounted;
4282        if (pendingUnmountRef.current) {
4283          pendingUnmountRef.current = false;
4284          if (!open2 && mounted) {
4285            unmount();
4286          }
4287        }
4288      });
4289      const forceUnmount = useStableCallback(() => {
4290        if (!mountedRef.current) {
4291          return;
4292        }
4293        if (open2) {
4294          pendingUnmountRef.current = true;
4295          rerender();
4296          return;
4297        }
4298        unmount();
4299      });
4300      useOpenChangeComplete({
4301        enabled: mounted && !open2 && !preventUnmountingOnClose,
4302        open: open2,
4303        ref,
4304        onComplete() {
4305          if (!open2) {
4306            forceUnmount();
4307          }
4308        }
4309      });
4310      return {
4311        mounted,
4312        transitionStatus,
4313        preventUnmountingOnClose,
4314        forceUnmount
4315      };
4316    }
4317  
4318    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupStoreUtils.mjs
4319    var FOCUSABLE_POPUP_PROPS = {
4320      tabIndex: -1,
4321      [FOCUSABLE_ATTRIBUTE]: ""
4322    };
4323    function usePopupRootStore(createStore, treatPopupAsFloatingElement = false) {
4324      const floatingId = useId();
4325      const nested = useFloatingParentNodeId() != null;
4326      const store2 = useRefWithInit(() => createStore(floatingId, nested)).current;
4327      useSyncedFloatingRootContext({
4328        popupStore: store2,
4329        treatPopupAsFloatingElement,
4330        floatingRootContext: store2.state.floatingRootContext,
4331        floatingId,
4332        nested,
4333        onOpenChange: store2.setOpen
4334      });
4335      return store2;
4336    }
4337    function PopupHandleAttachment({
4338      handle,
4339      store: store2
4340    }) {
4341      useIsoLayoutEffect(() => {
4342        return handle.attachStore(store2);
4343      }, [handle, store2]);
4344      return null;
4345    }
4346    function syncTriggerCount(store2) {
4347      const triggerCount = store2.context.triggerElements.size;
4348      if (store2.select("open") && store2.state.triggerCount !== triggerCount) {
4349        store2.set("triggerCount", triggerCount);
4350      }
4351    }
4352    function useTriggerRegistration(id, store2) {
4353      const registrationRef = React22.useRef(null);
4354      return useStableCallback((element) => {
4355        const registration = registrationRef.current;
4356        if (registration !== null) {
4357          if (registration.element === element && registration.store === store2 && registration.id === id) {
4358            return;
4359          }
4360          registrationRef.current = null;
4361          const registeredStore = registration.store;
4362          if (registeredStore.context.triggerElements.getById(registration.id) === registration.element) {
4363            registeredStore.context.triggerElements.delete(registration.id);
4364            syncTriggerCount(registeredStore);
4365          }
4366        }
4367        if (element !== null && id !== void 0) {
4368          registrationRef.current = {
4369            store: store2,
4370            id,
4371            element
4372          };
4373          store2.context.triggerElements.add(id, element);
4374          syncTriggerCount(store2);
4375        }
4376      });
4377    }
4378    function createPopupOpenState(state, open2, trigger, preventUnmountOnClose = false) {
4379      let preventUnmountingOnClose = state.preventUnmountingOnClose;
4380      if (open2) {
4381        preventUnmountingOnClose = false;
4382      } else if (preventUnmountOnClose) {
4383        preventUnmountingOnClose = true;
4384      }
4385      const triggerId = trigger?.id ?? null;
4386      let activeTriggerId = state.activeTriggerId;
4387      let activeTriggerElement = state.activeTriggerElement;
4388      if (triggerId || open2) {
4389        activeTriggerId = triggerId;
4390        activeTriggerElement = trigger ?? null;
4391      }
4392      return {
4393        open: open2,
4394        preventUnmountingOnClose,
4395        activeTriggerId,
4396        activeTriggerElement,
4397        // An open request without a trigger (a handle's `open(null)` or `openWithPayload()`) must not
4398        // be reassociated with a lone registered trigger later on. Controlled and default opens never
4399        // pass through here, so they keep claiming a lone trigger. A close request keeps the flag: a
4400        // controlled root may decline it and stay open, so the Root clears the flag only once the
4401        // popup is effectively closed.
4402        openedWithoutTrigger: open2 ? trigger == null : state.openedWithoutTrigger
4403      };
4404    }
4405    function attachPreventUnmountOnClose(eventDetails) {
4406      let preventUnmountOnClose = false;
4407      eventDetails.preventUnmountOnClose = () => {
4408        preventUnmountOnClose = true;
4409      };
4410      return () => preventUnmountOnClose;
4411    }
4412    function applyPopupOpenChange(store2, nextOpen, eventDetails, options = {}) {
4413      const reason = eventDetails.reason;
4414      const isHover = reason === reason_parts_exports.triggerHover;
4415      const isFocusOpen = nextOpen && reason === reason_parts_exports.triggerFocus;
4416      const isDismissClose = !nextOpen && (reason === reason_parts_exports.triggerPress || reason === reason_parts_exports.escapeKey);
4417      const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(eventDetails);
4418      store2.context.onOpenChange?.(nextOpen, eventDetails);
4419      if (eventDetails.isCanceled) {
4420        return;
4421      }
4422      options.onBeforeDispatch?.();
4423      store2.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
4424      const changeState = () => {
4425        const popupOpenState = createPopupOpenState(store2.state, nextOpen, eventDetails.trigger, shouldPreventUnmountOnClose());
4426        const updatedState = {
4427          ...options.extraState,
4428          ...popupOpenState
4429        };
4430        if (isFocusOpen) {
4431          updatedState.instantType = "focus";
4432        } else if (isDismissClose) {
4433          updatedState.instantType = "dismiss";
4434        } else if (isHover) {
4435          updatedState.instantType = void 0;
4436        }
4437        store2.update(updatedState);
4438      };
4439      if (isHover) {
4440        ReactDOM3.flushSync(changeState);
4441      } else {
4442        changeState();
4443      }
4444    }
4445    function useTriggerDataForwarding(triggerId, triggerElementRef, store2, stateUpdates) {
4446      const isMountedByThisTrigger = store2.useState("isMountedByTrigger", triggerId);
4447      const baseRegisterTrigger = useTriggerRegistration(triggerId, store2);
4448      const applyTriggerData = useStableCallback((element) => {
4449        const open2 = store2.select("open");
4450        const activeTriggerId = store2.select("activeTriggerId");
4451        if (activeTriggerId === triggerId) {
4452          const changes = {
4453            activeTriggerElement: element,
4454            ...open2 ? stateUpdates : null
4455          };
4456          store2.update(changes);
4457          return;
4458        }
4459        if (activeTriggerId == null && open2 && !store2.state.openedWithoutTrigger) {
4460          const changes = {
4461            activeTriggerId: triggerId ?? null,
4462            activeTriggerElement: element,
4463            ...stateUpdates
4464          };
4465          store2.update(changes);
4466        }
4467      });
4468      const registerTrigger = useStableCallback((element) => {
4469        baseRegisterTrigger(element);
4470        if (element) {
4471          applyTriggerData(element);
4472        }
4473      });
4474      useIsoLayoutEffect(() => {
4475        registerTrigger(triggerElementRef.current);
4476        return () => registerTrigger(null);
4477      }, [registerTrigger, triggerElementRef, store2, triggerId]);
4478      useIsoLayoutEffect(() => {
4479        if (isMountedByThisTrigger) {
4480          const changes = {
4481            activeTriggerElement: triggerElementRef.current,
4482            ...stateUpdates
4483          };
4484          store2.update(changes);
4485        }
4486      }, [isMountedByThisTrigger, store2, triggerElementRef, ...Object.values(stateUpdates)]);
4487      return {
4488        registerTrigger,
4489        isMountedByThisTrigger
4490      };
4491    }
4492    function useImplicitActiveTrigger(store2, options = {}) {
4493      const {
4494        closeOnActiveTriggerUnmount = false
4495      } = options;
4496      const resolvedActiveTriggerIdRef = React22.useRef(null);
4497      const open2 = store2.useState("open");
4498      const reactiveTriggerCount = store2.useState("triggerCount");
4499      const activeTriggerId = store2.useState("activeTriggerId");
4500      const reactiveActiveTriggerElement = store2.useState("activeTriggerElement");
4501      useIsoLayoutEffect(() => {
4502        if (!open2) {
4503          resolvedActiveTriggerIdRef.current = null;
4504          if (store2.state.triggerCount !== 0) {
4505            store2.set("triggerCount", 0);
4506          }
4507          if (store2.state.openedWithoutTrigger) {
4508            store2.set("openedWithoutTrigger", false);
4509          }
4510          return;
4511        }
4512        const triggerCount = store2.context.triggerElements.size;
4513        const stateUpdates = {};
4514        if (store2.state.triggerCount !== triggerCount) {
4515          stateUpdates.triggerCount = triggerCount;
4516        }
4517        const currentActiveTriggerId = store2.select("activeTriggerId");
4518        let lostActiveTriggerId = null;
4519        if (currentActiveTriggerId) {
4520          const activeTriggerElement = store2.context.triggerElements.getById(currentActiveTriggerId);
4521          if (!activeTriggerElement) {
4522            for (const [triggerId, triggerElement] of store2.context.triggerElements.entries()) {
4523              if (triggerElement === store2.state.activeTriggerElement) {
4524                stateUpdates.activeTriggerId = triggerId;
4525                stateUpdates.activeTriggerElement = triggerElement;
4526                resolvedActiveTriggerIdRef.current = triggerId;
4527                break;
4528              }
4529            }
4530            if (stateUpdates.activeTriggerId === void 0) {
4531              if (resolvedActiveTriggerIdRef.current === currentActiveTriggerId) {
4532                lostActiveTriggerId = currentActiveTriggerId;
4533              } else {
4534                resolvedActiveTriggerIdRef.current = null;
4535              }
4536            }
4537          } else {
4538            resolvedActiveTriggerIdRef.current = currentActiveTriggerId;
4539            if (activeTriggerElement !== store2.state.activeTriggerElement) {
4540              stateUpdates.activeTriggerElement = activeTriggerElement;
4541            }
4542          }
4543        } else {
4544          resolvedActiveTriggerIdRef.current = null;
4545        }
4546        if (!lostActiveTriggerId && !currentActiveTriggerId && !store2.state.openedWithoutTrigger && triggerCount === 1) {
4547          const iteratorResult = store2.context.triggerElements.entries().next();
4548          if (!iteratorResult.done) {
4549            const [implicitTriggerId, implicitTriggerElement] = iteratorResult.value;
4550            stateUpdates.activeTriggerId = implicitTriggerId;
4551            stateUpdates.activeTriggerElement = implicitTriggerElement;
4552            resolvedActiveTriggerIdRef.current = implicitTriggerId;
4553          }
4554        }
4555        if (stateUpdates.triggerCount !== void 0 || stateUpdates.activeTriggerId !== void 0 || stateUpdates.activeTriggerElement !== void 0) {
4556          store2.update(stateUpdates);
4557        }
4558        if (lostActiveTriggerId) {
4559          if (closeOnActiveTriggerUnmount) {
4560            queueMicrotask(() => {
4561              if (store2.select("open") && store2.select("activeTriggerId") === lostActiveTriggerId && !store2.context.triggerElements.getById(lostActiveTriggerId)) {
4562                const eventDetails = createChangeEventDetails(reason_parts_exports.none);
4563                store2.setOpen(false, eventDetails);
4564                if (!eventDetails.isCanceled) {
4565                  store2.update({
4566                    activeTriggerId: null,
4567                    activeTriggerElement: null
4568                  });
4569                }
4570              }
4571            });
4572          }
4573        }
4574      }, [open2, store2, reactiveTriggerCount, activeTriggerId, reactiveActiveTriggerElement, closeOnActiveTriggerUnmount]);
4575    }
4576    function useOpenStateTransitions(open2, store2, onUnmount, animateInitialOpen) {
4577      const {
4578        mounted,
4579        transitionStatus,
4580        forceUnmount
4581      } = useUnmountAfterClose({
4582        open: open2,
4583        ref: store2.context.popupRef,
4584        preventUnmountOnClose: store2.useState("preventUnmountingOnClose"),
4585        setPreventUnmountOnClose: (preventUnmountOnClose) => store2.set("preventUnmountingOnClose", preventUnmountOnClose),
4586        animateInitialOpen,
4587        onUnmount() {
4588          store2.update({
4589            activeTriggerId: null,
4590            activeTriggerElement: null,
4591            mounted: false,
4592            preventUnmountingOnClose: false
4593          });
4594          onUnmount?.();
4595          store2.context.onOpenChangeComplete?.(false);
4596        }
4597      });
4598      useRefWithInit(() => {
4599        store2.set("mounted", mounted);
4600        return null;
4601      });
4602      store2.useSyncedValues({
4603        mounted,
4604        transitionStatus
4605      });
4606      return {
4607        forceUnmount,
4608        transitionStatus
4609      };
4610    }
4611    function usePopupInteractionProps(store2, statePart) {
4612      store2.useSyncedValues(statePart);
4613      useIsoLayoutEffect(() => () => {
4614        store2.update({
4615          activeTriggerProps: EMPTY_OBJECT,
4616          inactiveTriggerProps: EMPTY_OBJECT,
4617          popupProps: EMPTY_OBJECT
4618        });
4619      }, [store2]);
4620    }
4621  
4622    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/popupTriggerMap.mjs
4623    var devElementIdsByMap;
4624    function getDevElementIds(map) {
4625      devElementIdsByMap ??= /* @__PURE__ */ new WeakMap();
4626      let elementIds = devElementIdsByMap.get(map);
4627      if (!elementIds) {
4628        elementIds = /* @__PURE__ */ new WeakMap();
4629        devElementIdsByMap.set(map, elementIds);
4630      }
4631      return elementIds;
4632    }
4633    var PopupTriggerMap = class {
4634      idMap = /* @__PURE__ */ new Map();
4635      /**
4636       * Adds a trigger element with the given ID.
4637       *
4638       * Note: The provided element is assumed to not be registered under multiple IDs.
4639       */
4640      add(id, element) {
4641        if (true) {
4642          const elementIds = getDevElementIds(this);
4643          const existingId = elementIds.get(element);
4644          if (existingId !== void 0 && existingId !== id) {
4645            throw new Error("Base UI: A trigger element cannot be registered under multiple IDs in PopupTriggerMap.");
4646          }
4647          const previousElement = this.idMap.get(id);
4648          if (previousElement !== void 0 && previousElement !== element) {
4649            elementIds.delete(previousElement);
4650          }
4651          elementIds.set(element, id);
4652        }
4653        this.idMap.set(id, element);
4654      }
4655      /**
4656       * Removes the trigger element with the given ID.
4657       */
4658      delete(id) {
4659        if (true) {
4660          const element = this.idMap.get(id);
4661          if (element !== void 0) {
4662            devElementIdsByMap?.get(this)?.delete(element);
4663          }
4664        }
4665        this.idMap.delete(id);
4666      }
4667      /**
4668       * Whether the given element is registered as a trigger.
4669       */
4670      hasElement(element) {
4671        for (const registered of this.idMap.values()) {
4672          if (registered === element) {
4673            return true;
4674          }
4675        }
4676        return false;
4677      }
4678      /**
4679       * Whether there is a registered trigger element matching the given predicate.
4680       */
4681      hasMatchingElement(predicate) {
4682        for (const element of this.idMap.values()) {
4683          if (predicate(element)) {
4684            return true;
4685          }
4686        }
4687        return false;
4688      }
4689      /**
4690       * Returns the trigger element associated with the given ID, or undefined if no such element exists.
4691       */
4692      getById(id) {
4693        return this.idMap.get(id);
4694      }
4695      /**
4696       * Returns an iterable of all registered trigger entries, where each entry is a tuple of [id, element].
4697       */
4698      entries() {
4699        return this.idMap.entries();
4700      }
4701      /**
4702       * Returns an iterable of all registered trigger elements.
4703       */
4704      elements() {
4705        return this.idMap.values();
4706      }
4707      /**
4708       * Returns the number of registered trigger elements.
4709       */
4710      get size() {
4711        return this.idMap.size;
4712      }
4713    };
4714  
4715    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/useStore.mjs
4716    var React24 = __toESM(require_react(), 1);
4717    var import_shim = __toESM(require_shim(), 1);
4718    var import_with_selector = __toESM(require_with_selector(), 1);
4719  
4720    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/fastHooks.mjs
4721    var React23 = __toESM(require_react(), 1);
4722    var hooks = [];
4723    var currentInstance = void 0;
4724    function getInstance() {
4725      return currentInstance;
4726    }
4727    function register2(hook) {
4728      hooks.push(hook);
4729    }
4730    function fastComponent(fn) {
4731      const FastComponent = (props, forwardedRef) => {
4732        const instance = useRefWithInit(createInstance).current;
4733        let result;
4734        try {
4735          currentInstance = instance;
4736          for (const hook of hooks) {
4737            hook.before(instance);
4738          }
4739          result = fn(props, forwardedRef);
4740          for (const hook of hooks) {
4741            hook.after(instance);
4742          }
4743          instance.didInitialize = true;
4744        } finally {
4745          currentInstance = void 0;
4746        }
4747        return result;
4748      };
4749      FastComponent.displayName = fn.displayName || fn.name;
4750      return FastComponent;
4751    }
4752    function fastComponentRef(fn) {
4753      return /* @__PURE__ */ React23.forwardRef(fastComponent(fn));
4754    }
4755    function createInstance() {
4756      return {
4757        didInitialize: false
4758      };
4759    }
4760  
4761    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/useStore.mjs
4762    var canUseRawUseSyncExternalStore = isReactVersionAtLeast(19);
4763    var useStoreImplementation = canUseRawUseSyncExternalStore ? useStoreFast : useStoreLegacy;
4764    function useStore(store2, selector, a1, a2, a3) {
4765      return useStoreImplementation(store2, selector, a1, a2, a3);
4766    }
4767    function useStoreR19(store2, selector, a1, a2, a3) {
4768      const getSelection = React24.useCallback(() => selector(store2.getSnapshot(), a1, a2, a3), [store2, selector, a1, a2, a3]);
4769      return (0, import_shim.useSyncExternalStore)(store2.subscribe, getSelection, getSelection);
4770    }
4771    register2({
4772      before(instance) {
4773        instance.syncIndex = 0;
4774        if (!instance.didInitialize) {
4775          instance.syncTick = 1;
4776          instance.syncHooks = [];
4777          instance.didChangeStore = true;
4778          instance.getSnapshot = () => {
4779            let didChange2 = false;
4780            for (let i = 0; i < instance.syncHooks.length; i += 1) {
4781              const hook = instance.syncHooks[i];
4782              const value = hook.selector(hook.store.state, hook.a1, hook.a2, hook.a3);
4783              if (!Object.is(hook.value, value)) {
4784                didChange2 = true;
4785                hook.value = value;
4786              }
4787            }
4788            if (didChange2) {
4789              instance.syncTick += 1;
4790            }
4791            return instance.syncTick;
4792          };
4793        }
4794      },
4795      after(instance) {
4796        if (instance.syncHooks.length > 0) {
4797          if (instance.didChangeStore) {
4798            instance.didChangeStore = false;
4799            instance.subscribe = (onStoreChange) => {
4800              const stores = /* @__PURE__ */ new Set();
4801              for (const hook of instance.syncHooks) {
4802                stores.add(hook.store);
4803              }
4804              const unsubscribes = [];
4805              for (const store2 of stores) {
4806                unsubscribes.push(store2.subscribe(onStoreChange));
4807              }
4808              return () => {
4809                for (const unsubscribe of unsubscribes) {
4810                  unsubscribe();
4811                }
4812              };
4813            };
4814          }
4815          (0, import_shim.useSyncExternalStore)(instance.subscribe, instance.getSnapshot, instance.getSnapshot);
4816        }
4817      }
4818    });
4819    function useStoreFast(store2, selector, a1, a2, a3) {
4820      const instance = getInstance();
4821      if (!instance) {
4822        return useStoreR19(store2, selector, a1, a2, a3);
4823      }
4824      const index2 = instance.syncIndex;
4825      instance.syncIndex += 1;
4826      let hook;
4827      if (!instance.didInitialize) {
4828        hook = {
4829          store: store2,
4830          selector,
4831          a1,
4832          a2,
4833          a3,
4834          value: selector(store2.getSnapshot(), a1, a2, a3)
4835        };
4836        instance.syncHooks.push(hook);
4837      } else {
4838        hook = instance.syncHooks[index2];
4839        if (hook.store !== store2 || hook.selector !== selector || !Object.is(hook.a1, a1) || !Object.is(hook.a2, a2) || !Object.is(hook.a3, a3)) {
4840          if (hook.store !== store2) {
4841            instance.didChangeStore = true;
4842          }
4843          hook.store = store2;
4844          hook.selector = selector;
4845          hook.a1 = a1;
4846          hook.a2 = a2;
4847          hook.a3 = a3;
4848          hook.value = selector(store2.getSnapshot(), a1, a2, a3);
4849        }
4850      }
4851      return hook.value;
4852    }
4853    function useStoreLegacy(store2, selector, a1, a2, a3) {
4854      return (0, import_with_selector.useSyncExternalStoreWithSelector)(store2.subscribe, store2.getSnapshot, store2.getSnapshot, (state) => selector(state, a1, a2, a3));
4855    }
4856  
4857    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/Store.mjs
4858    var Store = class {
4859      /**
4860       * Creates a store with the given initial state, constructing the class it is called on.
4861       * Calling it on a generic base class (e.g. `ReactStore.create(...)`) constructs that
4862       * class but degrades the inferred instance type to `Store`; use `new` there instead.
4863       */
4864      static create(state) {
4865        return new this(state);
4866      }
4867      /**
4868       * The current state of the store.
4869       * This property is updated immediately when the state changes as a result of calling {@link setState}, {@link update}, or {@link set}.
4870       * 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).
4871       * The values can be used directly (to avoid subscribing to the store) in effects or event handlers.
4872       *
4873       * Do not modify properties in state directly. Instead, use the provided methods to ensure proper state management and listener notification.
4874       */
4875      // Internal state to handle recursive `setState()` calls
4876      constructor(state) {
4877        this.state = state;
4878        this.listeners = /* @__PURE__ */ new Set();
4879        this.updateTick = 0;
4880      }
4881      /**
4882       * Registers a listener that will be called whenever the store's state changes.
4883       *
4884       * @param fn The listener function to be called on state changes.
4885       * @returns A function to unsubscribe the listener.
4886       */
4887      subscribe = (fn) => {
4888        this.listeners.add(fn);
4889        return () => {
4890          this.listeners.delete(fn);
4891        };
4892      };
4893      /**
4894       * Returns the current state of the store.
4895       */
4896      getSnapshot = () => {
4897        return this.state;
4898      };
4899      /**
4900       * Updates the entire store's state and notifies all registered listeners.
4901       *
4902       * @param newState The new state to set for the store.
4903       */
4904      setState(newState) {
4905        if (this.state === newState) {
4906          return;
4907        }
4908        this.state = newState;
4909        this.updateTick += 1;
4910        const currentTick = this.updateTick;
4911        for (const listener of this.listeners) {
4912          if (currentTick !== this.updateTick) {
4913            return;
4914          }
4915          listener(newState);
4916        }
4917      }
4918      /**
4919       * Merges the provided changes into the current state and notifies listeners if there are changes.
4920       * Each value must match its state key. Pass an exact known subset rather than a broad
4921       * `Partial<State>`, which may contain `undefined` for required state fields.
4922       *
4923       * @param changes An object containing the changes to apply to the current state.
4924       */
4925      update(changes) {
4926        for (const key in changes) {
4927          if (!Object.is(this.state[key], changes[key])) {
4928            this.setState({
4929              ...this.state,
4930              ...changes
4931            });
4932            return;
4933          }
4934        }
4935      }
4936      /**
4937       * Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
4938       *
4939       * @param key The key in the store's state to update.
4940       * @param value The new value to set for the specified key.
4941       */
4942      set(key, value) {
4943        if (!Object.is(this.state[key], value)) {
4944          this.setState({
4945            ...this.state,
4946            [key]: value
4947          });
4948        }
4949      }
4950      /**
4951       * Gives the state a new reference and updates all registered listeners.
4952       */
4953      notifyAll() {
4954        const newState = {
4955          ...this.state
4956        };
4957        this.setState(newState);
4958      }
4959      use(selector, a1, a2, a3) {
4960        return useStore(this, selector, a1, a2, a3);
4961      }
4962    };
4963  
4964    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/store/ReactStore.mjs
4965    var React25 = __toESM(require_react(), 1);
4966    var ReactStore = class extends Store {
4967      /**
4968       * Creates a new ReactStore instance.
4969       *
4970       * @param state Initial state of the store.
4971       * @param context Non-reactive context values.
4972       * @param selectors Optional selectors for use with `useState`.
4973       */
4974      constructor(state, context = {}, selectors3) {
4975        super(state);
4976        this.context = context;
4977        this.selectors = selectors3;
4978      }
4979      /**
4980       * Non-reactive values such as refs, callbacks, etc.
4981       */
4982      /**
4983       * Synchronizes a single external value into the store.
4984       *
4985       * Note that the while the value in `state` is updated immediately, the value returned
4986       * by `useState` is updated before the next render (similarly to React's `useState`).
4987       */
4988      useSyncedValue(key, value) {
4989        React25.useDebugValue(key);
4990        const store2 = this;
4991        useIsoLayoutEffect(() => {
4992          if (store2.state[key] !== value) {
4993            store2.set(key, value);
4994          }
4995        }, [store2, key, value]);
4996      }
4997      /**
4998       * Synchronizes a single external value into the store and
4999       * cleans it up (sets to `undefined`) on unmount.
5000       *
5001       * Note that the while the value in `state` is updated immediately, the value returned
5002       * by `useState` is updated before the next render (similarly to React's `useState`).
5003       */
5004      useSyncedValueWithCleanup(key, value) {
5005        const store2 = this;
5006        useIsoLayoutEffect(() => {
5007          if (store2.state[key] !== value) {
5008            store2.set(key, value);
5009          }
5010          return () => {
5011            store2.set(key, void 0);
5012          };
5013        }, [store2, key, value]);
5014      }
5015      /**
5016       * Synchronizes multiple external values into the store.
5017       * Each value must match its state key. Pass an exact known subset rather than a broad
5018       * `Partial<State>`, which may contain `undefined` for required state fields.
5019       *
5020       * Note that the while the values in `state` are updated immediately, the values returned
5021       * by `useState` are updated before the next render (similarly to React's `useState`).
5022       *
5023       * @param statePart An exact subset of state fields to synchronize. Unknown keys are not accepted.
5024       */
5025      useSyncedValues(statePart) {
5026        const store2 = this;
5027        if (true) {
5028          React25.useDebugValue(statePart, (p) => Object.keys(p));
5029          const keys = React25.useRef(Object.keys(statePart)).current;
5030          const nextKeys = Object.keys(statePart);
5031          if (keys.length !== nextKeys.length || keys.some((key, index2) => key !== nextKeys[index2])) {
5032            console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
5033          }
5034        }
5035        const dependencies = Object.values(statePart);
5036        useIsoLayoutEffect(() => {
5037          store2.update(statePart);
5038        }, [store2, ...dependencies]);
5039      }
5040      /**
5041       * Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`
5042       * is non-undefined, the store's state at `key` is updated to match `controlled`.
5043       */
5044      useControlledProp(key, controlled) {
5045        React25.useDebugValue(key);
5046        const store2 = this;
5047        const isControlled = controlled !== void 0;
5048        useIsoLayoutEffect(() => {
5049          if (isControlled && !Object.is(store2.state[key], controlled)) {
5050            store2.setState({
5051              ...store2.state,
5052              [key]: controlled
5053            });
5054          }
5055        }, [store2, key, controlled, isControlled]);
5056        if (true) {
5057          const cache = this.controlledValues ??= /* @__PURE__ */ new Map();
5058          if (!cache.has(key)) {
5059            cache.set(key, isControlled);
5060          }
5061          const previouslyControlled = cache.get(key);
5062          if (previouslyControlled !== void 0 && previouslyControlled !== isControlled) {
5063            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).`);
5064          }
5065        }
5066      }
5067      /** Gets the current value from the store using a selector with the provided key.
5068       *
5069       * @param key Key of the selector to use.
5070       */
5071      select(key, a1, a2, a3) {
5072        const selector = this.selectors[key];
5073        return selector(this.state, a1, a2, a3);
5074      }
5075      /**
5076       * Returns a value from the store's state using a selector function.
5077       * Used to subscribe to specific parts of the state.
5078       * This methods causes a rerender whenever the selected state changes.
5079       *
5080       * @param key Key of the selector to use.
5081       */
5082      useState(key, a1, a2, a3) {
5083        React25.useDebugValue(key);
5084        return useStore(this, this.selectors[key], a1, a2, a3);
5085      }
5086      /**
5087       * Wraps a function with `useStableCallback` to ensure it has a stable reference
5088       * and assigns it to the context.
5089       *
5090       * @param key Key of the event callback. Must be a function in the context.
5091       * @param fn Function to assign.
5092       */
5093      useContextCallback(key, fn) {
5094        React25.useDebugValue(key);
5095        const stableFunction = useStableCallback(fn ?? NOOP);
5096        this.context[key] = stableFunction;
5097      }
5098      /**
5099       * Returns a stable setter function for a specific key in the store's state.
5100       * It's commonly used to pass as a ref callback to React elements.
5101       *
5102       * @param key Key of the state to set.
5103       */
5104      useStateSetter(key) {
5105        const ref = React25.useRef(void 0);
5106        if (ref.current === void 0) {
5107          ref.current = (value) => {
5108            this.set(key, value);
5109          };
5110        }
5111        return ref.current;
5112      }
5113      /**
5114       * Observes changes derived from the store's selectors and calls the listener when the selected value changes.
5115       *
5116       * @param key Key of the selector to observe.
5117       * @param listener Listener function called when the selector result changes.
5118       */
5119      observe(selector, listener) {
5120        let selectFn;
5121        if (typeof selector === "function") {
5122          selectFn = selector;
5123        } else {
5124          selectFn = this.selectors[selector];
5125        }
5126        let prevValue = selectFn(this.state);
5127        listener(prevValue, prevValue, this);
5128        return this.subscribe((nextState) => {
5129          const nextValue = selectFn(nextState);
5130          if (!Object.is(prevValue, nextValue)) {
5131            const oldValue = prevValue;
5132            prevValue = nextValue;
5133            listener(nextValue, oldValue, this);
5134          }
5135        });
5136      }
5137    };
5138  
5139    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/components/FloatingRootStore.mjs
5140    var selectors = {
5141      open: (state) => state.open,
5142      transitionStatus: (state) => state.transitionStatus,
5143      domReferenceElement: (state) => state.domReferenceElement,
5144      referenceElement: (state) => state.positionReference ?? state.referenceElement,
5145      floatingElement: (state) => state.floatingElement,
5146      floatingId: (state) => state.floatingId
5147    };
5148    var FloatingRootStore = class extends ReactStore {
5149      constructor(options) {
5150        const {
5151          syncOnly,
5152          nested,
5153          onOpenChange,
5154          triggerElements,
5155          ...initialState
5156        } = options;
5157        super({
5158          ...initialState,
5159          positionReference: initialState.referenceElement,
5160          domReferenceElement: initialState.referenceElement
5161        }, {
5162          onOpenChange,
5163          dataRef: {
5164            current: {}
5165          },
5166          events: createEventEmitter(),
5167          nested,
5168          triggerElements
5169        }, selectors);
5170        this.syncOnly = syncOnly;
5171      }
5172      /**
5173       * Syncs the event used by hover logic to distinguish hover-open from click-like interaction.
5174       */
5175      syncOpenEvent = (newOpen, event) => {
5176        if (!newOpen || !this.state.open || // Prevent a pending hover-open from overwriting a click-open event, while allowing
5177        // click events to upgrade a hover-open.
5178        event != null && isClickLikeEvent(event)) {
5179          this.context.dataRef.current.openEvent = newOpen ? event : void 0;
5180        }
5181      };
5182      /**
5183       * Runs the root-owned side effects for an open state change.
5184       */
5185      dispatchOpenChange = (newOpen, eventDetails) => {
5186        this.syncOpenEvent(newOpen, eventDetails.event);
5187        const details = {
5188          open: newOpen,
5189          reason: eventDetails.reason,
5190          nativeEvent: eventDetails.event,
5191          nested: this.context.nested,
5192          triggerElement: eventDetails.trigger
5193        };
5194        this.context.events.emit("openchange", details);
5195      };
5196      /**
5197       * Emits the `openchange` event through the internal event emitter and calls the `onOpenChange` handler with the provided arguments.
5198       *
5199       * @param newOpen The new open state.
5200       * @param eventDetails Details about the event that triggered the open state change.
5201       */
5202      setOpen = (newOpen, eventDetails) => {
5203        if (this.syncOnly) {
5204          this.context.onOpenChange?.(newOpen, eventDetails);
5205          return;
5206        }
5207        this.dispatchOpenChange(newOpen, eventDetails);
5208        this.context.onOpenChange?.(newOpen, eventDetails);
5209      };
5210    };
5211  
5212    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/store.mjs
5213    function createInitialPopupStoreState(triggerElements, floatingId, nested = false) {
5214      return {
5215        open: false,
5216        openProp: void 0,
5217        mounted: false,
5218        transitionStatus: void 0,
5219        floatingRootContext: new FloatingRootStore({
5220          open: false,
5221          transitionStatus: void 0,
5222          floatingElement: null,
5223          referenceElement: null,
5224          triggerElements,
5225          floatingId,
5226          syncOnly: true,
5227          nested,
5228          onOpenChange: void 0
5229        }),
5230        floatingId,
5231        triggerCount: 0,
5232        preventUnmountingOnClose: false,
5233        payload: void 0,
5234        activeTriggerId: null,
5235        activeTriggerElement: null,
5236        openedWithoutTrigger: false,
5237        triggerIdProp: void 0,
5238        popupElement: null,
5239        positionerElement: null,
5240        activeTriggerProps: EMPTY_OBJECT,
5241        inactiveTriggerProps: EMPTY_OBJECT,
5242        popupProps: EMPTY_OBJECT
5243      };
5244    }
5245    var activeTriggerIdSelector = (state) => state.triggerIdProp ?? state.activeTriggerId;
5246    var openSelector = (state) => state.openProp ?? state.open;
5247    var popupIdSelector = (state) => {
5248      const popupId = state.popupElement?.id ?? state.floatingId;
5249      return popupId || void 0;
5250    };
5251    function triggerOwnsOpenPopup(state, triggerId) {
5252      return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) === triggerId;
5253    }
5254    function triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) {
5255      if (triggerOwnsOpenPopup(state, triggerId)) {
5256        return true;
5257      }
5258      return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) == null && !state.openedWithoutTrigger && state.triggerCount === 1;
5259    }
5260    var popupStoreSelectors = {
5261      open: openSelector,
5262      mounted: (state) => state.mounted,
5263      // `open` is written synchronously on an open change; `mounted`/`transitionStatus` sync in a
5264      // layout effect. Match useTransitionStatus so a retained popup does not miss its starting phase.
5265      transitionStatus: (state) => openSelector(state) && !state.mounted ? "starting" : state.transitionStatus,
5266      floatingRootContext: (state) => state.floatingRootContext,
5267      triggerCount: (state) => state.triggerCount,
5268      preventUnmountingOnClose: (state) => state.preventUnmountingOnClose,
5269      payload: (state) => state.payload,
5270      activeTriggerId: activeTriggerIdSelector,
5271      activeTriggerElement: (state) => state.mounted ? state.activeTriggerElement : null,
5272      popupId: popupIdSelector,
5273      /**
5274       * Whether the trigger with the given ID was used to open the popup.
5275       */
5276      isTriggerActive: (state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId,
5277      /**
5278       * Whether the popup is open and was activated by a trigger with the given ID.
5279       */
5280      isOpenedByTrigger: (state, triggerId) => triggerOwnsOpenPopup(state, triggerId),
5281      /**
5282       * Whether the popup is mounted and was activated by a trigger with the given ID.
5283       */
5284      isMountedByTrigger: (state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId && state.mounted,
5285      triggerProps: (state, isActive) => isActive ? state.activeTriggerProps : state.inactiveTriggerProps,
5286      /**
5287       * Popup id for the trigger that currently owns the open popup.
5288       */
5289      triggerPopupId: (state, triggerId) => triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) ? popupIdSelector(state) : void 0,
5290      popupProps: (state) => state.popupProps,
5291      popupElement: (state) => state.popupElement,
5292      positionerElement: (state) => state.positionerElement
5293    };
5294  
5295    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/popups/usePopupHandleStore.mjs
5296    var React26 = __toESM(require_react(), 1);
5297    var import_shim2 = __toESM(require_shim(), 1);
5298    function usePopupHandleStore(handle) {
5299      const subscribe = React26.useCallback((listener) => {
5300        if (handle === void 0) {
5301          return NOOP;
5302        }
5303        return handle.subscribeStore(listener);
5304      }, [handle]);
5305      const getSnapshot = React26.useCallback(() => {
5306        return handle === void 0 ? void 0 : handle.store;
5307      }, [handle]);
5308      return (0, import_shim2.useSyncExternalStore)(subscribe, getSnapshot, () => handle?.serverStore);
5309    }
5310  
5311    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useFocus.mjs
5312    var React27 = __toESM(require_react(), 1);
5313    var isMacSafari = parts_exports.os.mac && parts_exports.engine.webkit;
5314    function useFocus(store2, props = {}) {
5315      const {
5316        enabled = true,
5317        delay
5318      } = props;
5319      const {
5320        events,
5321        dataRef
5322      } = store2.context;
5323      const blockFocusRef = React27.useRef(false);
5324      const blockedReferenceRef = React27.useRef(null);
5325      const keyboardModalityRef = React27.useRef(true);
5326      const timeout = useTimeout();
5327      React27.useEffect(() => {
5328        const domReference = store2.select("domReferenceElement");
5329        if (!enabled) {
5330          return void 0;
5331        }
5332        const win = getWindow(domReference);
5333        function onBlur() {
5334          const currentDomReference = store2.select("domReferenceElement");
5335          if (!store2.select("open") && isHTMLElement(currentDomReference) && currentDomReference === activeElement(ownerDocument(currentDomReference))) {
5336            blockFocusRef.current = true;
5337            blockedReferenceRef.current = currentDomReference;
5338          }
5339        }
5340        function onKeyDown() {
5341          keyboardModalityRef.current = true;
5342        }
5343        function onPointerDown() {
5344          keyboardModalityRef.current = false;
5345        }
5346        return mergeCleanups(addEventListener(win, "blur", onBlur), isMacSafari && addEventListener(win, "keydown", onKeyDown, true), isMacSafari && addEventListener(win, "pointerdown", onPointerDown, true));
5347      }, [store2, enabled]);
5348      React27.useEffect(() => {
5349        if (!enabled) {
5350          return void 0;
5351        }
5352        function onOpenChangeLocal(details) {
5353          if (details.reason === reason_parts_exports.triggerPress || details.reason === reason_parts_exports.escapeKey) {
5354            const referenceElement = store2.select("domReferenceElement");
5355            if (isElement(referenceElement)) {
5356              blockedReferenceRef.current = referenceElement;
5357              blockFocusRef.current = true;
5358            }
5359          }
5360        }
5361        events.on("openchange", onOpenChangeLocal);
5362        return () => {
5363          events.off("openchange", onOpenChangeLocal);
5364        };
5365      }, [events, enabled, store2]);
5366      const reference = React27.useMemo(() => {
5367        function resetBlockedFocus() {
5368          blockFocusRef.current = false;
5369          blockedReferenceRef.current = null;
5370        }
5371        return {
5372          onMouseLeave() {
5373            resetBlockedFocus();
5374          },
5375          onFocus(event) {
5376            const focusTarget = event.currentTarget;
5377            if (blockFocusRef.current) {
5378              if (blockedReferenceRef.current === focusTarget) {
5379                return;
5380              }
5381              resetBlockedFocus();
5382            }
5383            const target = getTarget(event.nativeEvent);
5384            if (isElement(target)) {
5385              if (isMacSafari && !event.relatedTarget) {
5386                if (!keyboardModalityRef.current && !isTypeableElement(target)) {
5387                  return;
5388                }
5389              } else if (!matchesFocusVisible(target)) {
5390                return;
5391              }
5392            }
5393            const movedFromOtherEnabledTrigger = isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements);
5394            const {
5395              nativeEvent,
5396              currentTarget
5397            } = event;
5398            if (store2.select("open") && movedFromOtherEnabledTrigger || !delay) {
5399              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent, currentTarget));
5400              return;
5401            }
5402            timeout.start(delay, () => {
5403              if (blockFocusRef.current) {
5404                return;
5405              }
5406              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent, currentTarget));
5407            });
5408          },
5409          onBlur(event) {
5410            resetBlockedFocus();
5411            const relatedTarget = event.relatedTarget;
5412            const nativeEvent = event.nativeEvent;
5413            const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute("focus-guard")) && relatedTarget.getAttribute("data-type") === "outside";
5414            timeout.start(0, () => {
5415              const domReference = store2.select("domReferenceElement");
5416              const activeEl = activeElement(ownerDocument(domReference));
5417              if (!relatedTarget && activeEl === domReference) {
5418                return;
5419              }
5420              if (contains(dataRef.current.floatingContext?.refs.floating.current, activeEl) || contains(domReference, activeEl) || movedToFocusGuard) {
5421                return;
5422              }
5423              const nextFocusedElement = relatedTarget ?? activeEl;
5424              if (isTargetInsideEnabledTrigger(nextFocusedElement, store2.context.triggerElements)) {
5425                return;
5426              }
5427              store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent));
5428            });
5429          }
5430        };
5431      }, [dataRef, delay, store2, timeout]);
5432      return React27.useMemo(() => enabled ? {
5433        reference,
5434        trigger: reference
5435      } : {}, [enabled, reference]);
5436    }
5437  
5438    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverFloatingInteraction.mjs
5439    var React28 = __toESM(require_react(), 1);
5440  
5441    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverInteractionSharedState.mjs
5442    var HoverInteraction = class _HoverInteraction {
5443      pointerType = void 0;
5444      interactedInside = false;
5445      handler = void 0;
5446      blockMouseMove = true;
5447      performedPointerEventsMutation = false;
5448      pointerEventsScopeElement = null;
5449      pointerEventsReferenceElement = null;
5450      pointerEventsFloatingElement = null;
5451      restTimeoutPending = false;
5452      openChangeTimeout = new Timeout();
5453      restTimeout = new Timeout();
5454      handleCloseOptions = void 0;
5455      static create() {
5456        return new _HoverInteraction();
5457      }
5458      dispose = () => {
5459        this.openChangeTimeout.clear();
5460        this.restTimeout.clear();
5461      };
5462      disposeEffect = () => {
5463        return this.dispose;
5464      };
5465    };
5466    var pointerEventsMutationOwnerByScopeElement = /* @__PURE__ */ new WeakMap();
5467    function clearSafePolygonPointerEventsMutation(instance) {
5468      if (!instance.performedPointerEventsMutation) {
5469        return;
5470      }
5471      const scopeElement = instance.pointerEventsScopeElement;
5472      if (scopeElement && pointerEventsMutationOwnerByScopeElement.get(scopeElement) === instance) {
5473        instance.pointerEventsScopeElement?.style.removeProperty("pointer-events");
5474        instance.pointerEventsReferenceElement?.style.removeProperty("pointer-events");
5475        instance.pointerEventsFloatingElement?.style.removeProperty("pointer-events");
5476        pointerEventsMutationOwnerByScopeElement.delete(scopeElement);
5477      }
5478      instance.performedPointerEventsMutation = false;
5479      instance.pointerEventsScopeElement = null;
5480      instance.pointerEventsReferenceElement = null;
5481      instance.pointerEventsFloatingElement = null;
5482    }
5483    function applySafePolygonPointerEventsMutation(instance, options) {
5484      const {
5485        scopeElement,
5486        referenceElement,
5487        floatingElement
5488      } = options;
5489      const existingOwner = pointerEventsMutationOwnerByScopeElement.get(scopeElement);
5490      if (existingOwner && existingOwner !== instance) {
5491        clearSafePolygonPointerEventsMutation(existingOwner);
5492      }
5493      clearSafePolygonPointerEventsMutation(instance);
5494      instance.performedPointerEventsMutation = true;
5495      instance.pointerEventsScopeElement = scopeElement;
5496      instance.pointerEventsReferenceElement = referenceElement;
5497      instance.pointerEventsFloatingElement = floatingElement;
5498      pointerEventsMutationOwnerByScopeElement.set(scopeElement, instance);
5499      scopeElement.style.pointerEvents = "none";
5500      referenceElement.style.pointerEvents = "auto";
5501      floatingElement.style.pointerEvents = "auto";
5502    }
5503    function useHoverInteractionSharedState(store2) {
5504      const data = store2.context.dataRef.current;
5505      const instance = useRefWithInit(() => data.hoverInteractionState ?? HoverInteraction.create()).current;
5506      if (!data.hoverInteractionState) {
5507        data.hoverInteractionState = instance;
5508      }
5509      useOnMount(data.hoverInteractionState.disposeEffect);
5510      return data.hoverInteractionState;
5511    }
5512  
5513    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverFloatingInteraction.mjs
5514    function useHoverFloatingInteraction(store2, parameters = {}) {
5515      const {
5516        enabled = true,
5517        closeDelay: closeDelayProp = 0,
5518        nodeId: nodeIdProp
5519      } = parameters;
5520      const open2 = store2.useState("open");
5521      const floatingElement = store2.useState("floatingElement");
5522      const domReferenceElement = store2.useState("domReferenceElement");
5523      const {
5524        dataRef
5525      } = store2.context;
5526      const tree = useFloatingTree();
5527      const parentId = useFloatingParentNodeId();
5528      const instance = useHoverInteractionSharedState(store2);
5529      const childClosedTimeout = useTimeout();
5530      const isClickLikeOpenEvent2 = useStableCallback(() => {
5531        return isClickLikeOpenEvent(dataRef.current.openEvent?.type, instance.interactedInside);
5532      });
5533      const isHoverOpen = useStableCallback(() => {
5534        return isHoverOpenEvent(dataRef.current.openEvent?.type);
5535      });
5536      const clearPointerEvents = useStableCallback(() => {
5537        clearSafePolygonPointerEventsMutation(instance);
5538      });
5539      useIsoLayoutEffect(() => {
5540        if (!open2) {
5541          instance.pointerType = void 0;
5542          instance.restTimeoutPending = false;
5543          instance.interactedInside = false;
5544          clearPointerEvents();
5545        }
5546      }, [open2, instance, clearPointerEvents]);
5547      React28.useEffect(() => {
5548        return clearPointerEvents;
5549      }, [clearPointerEvents]);
5550      useIsoLayoutEffect(() => {
5551        if (!enabled) {
5552          return void 0;
5553        }
5554        if (open2 && instance.handleCloseOptions?.blockPointerEvents && isHoverOpen() && isElement(domReferenceElement) && floatingElement) {
5555          const ref = domReferenceElement;
5556          const floatingEl = floatingElement;
5557          const doc = ownerDocument(floatingElement);
5558          const parentFloating = tree?.nodesRef.current.find((node) => node.id === parentId)?.context?.elements.floating;
5559          if (parentFloating) {
5560            parentFloating.style.pointerEvents = "";
5561          }
5562          const cachedScopeElement = instance.pointerEventsScopeElement !== floatingEl ? instance.pointerEventsScopeElement : null;
5563          const parentScopeElement = parentFloating !== floatingEl ? parentFloating : null;
5564          const scopeElement = instance.handleCloseOptions?.getScope?.() ?? cachedScopeElement ?? parentScopeElement ?? closest(ref, "[data-rootownerid]") ?? doc.body;
5565          applySafePolygonPointerEventsMutation(instance, {
5566            scopeElement,
5567            referenceElement: ref,
5568            floatingElement: floatingEl
5569          });
5570          return () => {
5571            clearPointerEvents();
5572          };
5573        }
5574        return void 0;
5575      }, [enabled, open2, domReferenceElement, floatingElement, instance, isHoverOpen, tree, parentId, clearPointerEvents]);
5576      React28.useEffect(() => {
5577        if (!enabled) {
5578          return void 0;
5579        }
5580        function hasParentChildren() {
5581          return !!(tree && parentId && getNodeChildren(tree.nodesRef.current, parentId).length > 0);
5582        }
5583        function closeWithDelay(event) {
5584          const closeDelay = getDelay(closeDelayProp, "close", instance.pointerType);
5585          const close = () => {
5586            store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
5587            tree?.events.emit("floating.closed", event);
5588          };
5589          if (closeDelay) {
5590            instance.openChangeTimeout.start(closeDelay, close);
5591          } else {
5592            instance.openChangeTimeout.clear();
5593            close();
5594          }
5595        }
5596        function handleInteractInside(event) {
5597          const target = getTarget(event);
5598          if (!isInteractiveElement(target)) {
5599            instance.interactedInside = false;
5600            return;
5601          }
5602          instance.interactedInside = closest(target, "[aria-haspopup]") != null;
5603        }
5604        function onFloatingMouseEnter() {
5605          instance.openChangeTimeout.clear();
5606          childClosedTimeout.clear();
5607          tree?.events.off("floating.closed", onNodeClosed);
5608          clearPointerEvents();
5609        }
5610        function onFloatingMouseLeave(event) {
5611          if (hasParentChildren() && tree) {
5612            tree.events.on("floating.closed", onNodeClosed);
5613            return;
5614          }
5615          if (isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements)) {
5616            return;
5617          }
5618          const currentNodeId = dataRef.current.floatingContext?.nodeId ?? nodeIdProp;
5619          const relatedTarget = event.relatedTarget;
5620          const isMovingIntoDescendantFloating = tree && currentNodeId && isElement(relatedTarget) && getNodeChildren(tree.nodesRef.current, currentNodeId, false).some((node) => contains(node.context?.elements.floating, relatedTarget));
5621          if (isMovingIntoDescendantFloating) {
5622            return;
5623          }
5624          if (instance.handler) {
5625            instance.handler(event);
5626            return;
5627          }
5628          clearPointerEvents();
5629          if (isHoverOpen() && !isClickLikeOpenEvent2()) {
5630            closeWithDelay(event);
5631          }
5632        }
5633        function onNodeClosed(event) {
5634          if (!tree || !parentId || hasParentChildren()) {
5635            return;
5636          }
5637          childClosedTimeout.start(0, () => {
5638            tree.events.off("floating.closed", onNodeClosed);
5639            store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
5640            tree.events.emit("floating.closed", event);
5641          });
5642        }
5643        const floating = floatingElement;
5644        return mergeCleanups(floating && addEventListener(floating, "mouseenter", onFloatingMouseEnter), floating && addEventListener(floating, "mouseleave", onFloatingMouseLeave), floating && addEventListener(floating, "pointerdown", handleInteractInside, true), () => {
5645          tree?.events.off("floating.closed", onNodeClosed);
5646        });
5647      }, [enabled, floatingElement, store2, dataRef, closeDelayProp, nodeIdProp, isHoverOpen, isClickLikeOpenEvent2, clearPointerEvents, instance, tree, parentId, childClosedTimeout]);
5648    }
5649  
5650    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useHoverReferenceInteraction.mjs
5651    var React29 = __toESM(require_react(), 1);
5652    var ReactDOM4 = __toESM(require_react_dom(), 1);
5653    var EMPTY_REF = {
5654      current: null
5655    };
5656    function useHoverReferenceInteraction(store2, props = {}) {
5657      const {
5658        enabled = true,
5659        delay = 0,
5660        handleClose = null,
5661        mouseOnly = false,
5662        restMs = 0,
5663        move = true,
5664        triggerElementRef = EMPTY_REF,
5665        externalTree,
5666        isActiveTrigger = true,
5667        getHandleCloseContext,
5668        isClosing,
5669        shouldOpen: shouldOpenProp,
5670        guardStaleOpen = false
5671      } = props;
5672      const {
5673        dataRef,
5674        events
5675      } = store2.context;
5676      const tree = useFloatingTree(externalTree);
5677      const instance = useHoverInteractionSharedState(store2);
5678      const isHoverCloseActiveRef = React29.useRef(false);
5679      const handleCloseRef = useValueAsRef(handleClose);
5680      const delayRef = useValueAsRef(delay);
5681      const restMsRef = useValueAsRef(restMs);
5682      const enabledRef = useValueAsRef(enabled);
5683      const shouldOpenRef = useValueAsRef(shouldOpenProp);
5684      const isClosingRef = useValueAsRef(isClosing);
5685      const isClickLikeOpenEvent2 = useStableCallback(() => {
5686        return isClickLikeOpenEvent(dataRef.current.openEvent?.type, instance.interactedInside);
5687      });
5688      const checkShouldOpen = useStableCallback(() => {
5689        return shouldOpenRef.current?.() !== false;
5690      });
5691      const isOverInactiveTrigger = useStableCallback((currentDomReference, currentTarget, target) => {
5692        const allTriggers = store2.context.triggerElements;
5693        if (allTriggers.hasElement(currentTarget)) {
5694          return !currentDomReference || !contains(currentDomReference, currentTarget);
5695        }
5696        if (!isElement(target)) {
5697          return false;
5698        }
5699        const targetElement = target;
5700        return allTriggers.hasMatchingElement((trigger) => contains(trigger, targetElement)) && (!currentDomReference || !contains(currentDomReference, targetElement));
5701      });
5702      const cleanupMouseMoveHandler = useStableCallback(() => {
5703        if (!instance.handler) {
5704          return;
5705        }
5706        const doc = ownerDocument(store2.select("domReferenceElement"));
5707        doc.removeEventListener("mousemove", instance.handler);
5708        instance.handler = void 0;
5709      });
5710      const clearPointerEvents = useStableCallback(() => {
5711        clearSafePolygonPointerEventsMutation(instance);
5712      });
5713      if (isActiveTrigger) {
5714        instance.handleCloseOptions = handleClose?.__options;
5715      }
5716      React29.useEffect(() => cleanupMouseMoveHandler, [cleanupMouseMoveHandler]);
5717      React29.useEffect(() => {
5718        if (!enabled) {
5719          return void 0;
5720        }
5721        function onOpenChangeLocal(details) {
5722          if (!details.open) {
5723            isHoverCloseActiveRef.current = details.reason === reason_parts_exports.triggerHover;
5724            cleanupMouseMoveHandler();
5725            instance.openChangeTimeout.clear();
5726            instance.restTimeout.clear();
5727            instance.blockMouseMove = true;
5728            instance.restTimeoutPending = false;
5729          } else {
5730            isHoverCloseActiveRef.current = false;
5731          }
5732        }
5733        events.on("openchange", onOpenChangeLocal);
5734        return () => {
5735          events.off("openchange", onOpenChangeLocal);
5736        };
5737      }, [enabled, events, instance, cleanupMouseMoveHandler]);
5738      React29.useEffect(() => {
5739        if (!enabled) {
5740          return void 0;
5741        }
5742        function closeWithDelay(event, runElseBranch = true) {
5743          const closeDelay = getDelay(delayRef.current, "close", instance.pointerType);
5744          if (closeDelay) {
5745            instance.openChangeTimeout.start(closeDelay, () => {
5746              store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
5747              tree?.events.emit("floating.closed", event);
5748            });
5749          } else if (runElseBranch) {
5750            instance.openChangeTimeout.clear();
5751            store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
5752            tree?.events.emit("floating.closed", event);
5753          }
5754        }
5755        const trigger = triggerElementRef.current ?? (isActiveTrigger ? store2.select("domReferenceElement") : null);
5756        if (!isElement(trigger)) {
5757          return void 0;
5758        }
5759        function onMouseEnter(event) {
5760          instance.openChangeTimeout.clear();
5761          instance.blockMouseMove = false;
5762          if (mouseOnly && !isMouseLikePointerType(instance.pointerType)) {
5763            return;
5764          }
5765          const restMsValue = getRestMs(restMsRef.current);
5766          const openDelay = getDelay(delayRef.current, "open", instance.pointerType);
5767          const eventTarget = getTarget(event);
5768          const currentTarget = event.currentTarget ?? null;
5769          const currentDomReference = store2.select("domReferenceElement");
5770          let triggerNode = currentTarget;
5771          if (isElement(eventTarget) && !store2.context.triggerElements.hasElement(eventTarget)) {
5772            for (const triggerElement of store2.context.triggerElements.elements()) {
5773              if (contains(triggerElement, eventTarget)) {
5774                triggerNode = triggerElement;
5775                break;
5776              }
5777            }
5778          }
5779          if (isElement(currentTarget) && isElement(currentDomReference) && !store2.context.triggerElements.hasElement(currentTarget) && contains(currentTarget, currentDomReference)) {
5780            triggerNode = currentDomReference;
5781          }
5782          const isOverInactive = triggerNode == null ? false : isOverInactiveTrigger(currentDomReference, triggerNode, eventTarget);
5783          const isOpen = store2.select("open");
5784          const isInClosingTransition = isClosingRef.current?.() ?? store2.select("transitionStatus") === "ending";
5785          const isHoverCloseTransition = !isOpen && isInClosingTransition && isHoverCloseActiveRef.current;
5786          const isReenteringSameTriggerDuringCloseTransition = !isOverInactive && isElement(triggerNode) && isElement(currentDomReference) && contains(currentDomReference, triggerNode) && isHoverCloseTransition;
5787          const isRestOnlyDelay = restMsValue > 0 && !openDelay;
5788          const shouldOpenImmediately = isOverInactive && (isOpen || isHoverCloseTransition) || isReenteringSameTriggerDuringCloseTransition;
5789          const shouldOpen = !isOpen || isOverInactive;
5790          if (shouldOpenImmediately) {
5791            if (checkShouldOpen()) {
5792              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
5793            }
5794            return;
5795          }
5796          if (isRestOnlyDelay) {
5797            return;
5798          }
5799          if (openDelay) {
5800            instance.openChangeTimeout.start(openDelay, () => {
5801              if (shouldOpen && checkShouldOpen()) {
5802                store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
5803              }
5804            });
5805          } else if (shouldOpen) {
5806            if (checkShouldOpen()) {
5807              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
5808            }
5809          }
5810        }
5811        function onMouseLeave(event) {
5812          if (isClickLikeOpenEvent2()) {
5813            clearPointerEvents();
5814            return;
5815          }
5816          cleanupMouseMoveHandler();
5817          const domReferenceElement = store2.select("domReferenceElement");
5818          const doc = ownerDocument(domReferenceElement);
5819          instance.restTimeout.clear();
5820          instance.restTimeoutPending = false;
5821          const handleCloseContextBase = dataRef.current.floatingContext ?? getHandleCloseContext?.();
5822          if (isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements)) {
5823            return;
5824          }
5825          if (handleCloseRef.current && handleCloseContextBase) {
5826            if (!store2.select("open")) {
5827              instance.openChangeTimeout.clear();
5828            }
5829            const currentTrigger = triggerElementRef.current;
5830            instance.handler = handleCloseRef.current({
5831              ...handleCloseContextBase,
5832              tree,
5833              x: event.clientX,
5834              y: event.clientY,
5835              onClose() {
5836                clearPointerEvents();
5837                cleanupMouseMoveHandler();
5838                if (enabledRef.current && !isClickLikeOpenEvent2() && currentTrigger === store2.select("domReferenceElement")) {
5839                  closeWithDelay(event, true);
5840                }
5841              }
5842            });
5843            doc.addEventListener("mousemove", instance.handler);
5844            instance.handler(event);
5845            return;
5846          }
5847          const shouldClose = instance.pointerType === "touch" ? !contains(store2.select("floatingElement"), event.relatedTarget) : true;
5848          if (shouldClose) {
5849            closeWithDelay(event);
5850          }
5851        }
5852        function onMouseOut(event) {
5853          if (contains(trigger, event.relatedTarget)) {
5854            return;
5855          }
5856          instance.openChangeTimeout.clear();
5857          instance.restTimeout.clear();
5858          instance.restTimeoutPending = false;
5859        }
5860        const staleOpenGuard = guardStaleOpen ? addEventListener(trigger, "mouseout", onMouseOut) : void 0;
5861        if (move) {
5862          return mergeCleanups(addEventListener(trigger, "mousemove", onMouseEnter, {
5863            once: true
5864          }), addEventListener(trigger, "mouseenter", onMouseEnter), addEventListener(trigger, "mouseleave", onMouseLeave), staleOpenGuard);
5865        }
5866        return mergeCleanups(addEventListener(trigger, "mouseenter", onMouseEnter), addEventListener(trigger, "mouseleave", onMouseLeave), staleOpenGuard);
5867      }, [cleanupMouseMoveHandler, clearPointerEvents, dataRef, delayRef, store2, enabled, handleCloseRef, instance, isActiveTrigger, isOverInactiveTrigger, isClickLikeOpenEvent2, mouseOnly, move, restMsRef, triggerElementRef, tree, enabledRef, getHandleCloseContext, isClosingRef, checkShouldOpen, guardStaleOpen]);
5868      return React29.useMemo(() => {
5869        if (!enabled) {
5870          return void 0;
5871        }
5872        function setPointerRef(event) {
5873          instance.pointerType = event.pointerType;
5874        }
5875        return {
5876          onPointerDown: setPointerRef,
5877          onPointerEnter: setPointerRef,
5878          onMouseMove(event) {
5879            const {
5880              nativeEvent
5881            } = event;
5882            const trigger = event.currentTarget;
5883            const currentDomReference = store2.select("domReferenceElement");
5884            const currentOpen = store2.select("open");
5885            const isOverInactive = isOverInactiveTrigger(currentDomReference, trigger, event.target);
5886            if (mouseOnly && !isMouseLikePointerType(instance.pointerType)) {
5887              return;
5888            }
5889            if (currentOpen && isOverInactive && instance.handleCloseOptions?.blockPointerEvents) {
5890              const floatingElement = store2.select("floatingElement");
5891              if (floatingElement) {
5892                const scopeElement = instance.handleCloseOptions?.getScope?.() ?? trigger.ownerDocument.body;
5893                applySafePolygonPointerEventsMutation(instance, {
5894                  scopeElement,
5895                  referenceElement: trigger,
5896                  floatingElement
5897                });
5898              }
5899            }
5900            const restMsValue = getRestMs(restMsRef.current);
5901            if (currentOpen && !isOverInactive || restMsValue === 0) {
5902              return;
5903            }
5904            if (!isOverInactive && instance.restTimeoutPending && event.movementX ** 2 + event.movementY ** 2 < 2) {
5905              return;
5906            }
5907            instance.restTimeout.clear();
5908            function handleMouseMove() {
5909              instance.restTimeoutPending = false;
5910              if (isClickLikeOpenEvent2()) {
5911                return;
5912              }
5913              const latestOpen = store2.select("open");
5914              if (!instance.blockMouseMove && (!latestOpen || isOverInactive) && checkShouldOpen()) {
5915                store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, nativeEvent, trigger));
5916              }
5917            }
5918            if (instance.pointerType === "touch") {
5919              ReactDOM4.flushSync(() => {
5920                handleMouseMove();
5921              });
5922            } else if (isOverInactive && currentOpen) {
5923              handleMouseMove();
5924            } else {
5925              instance.restTimeoutPending = true;
5926              instance.restTimeout.start(restMsValue, handleMouseMove);
5927            }
5928          }
5929        };
5930      }, [enabled, instance, isClickLikeOpenEvent2, isOverInactiveTrigger, mouseOnly, store2, restMsRef, checkShouldOpen]);
5931    }
5932  
5933    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/safePolygon.mjs
5934    var CURSOR_SPEED_THRESHOLD = 0.1;
5935    var CURSOR_SPEED_THRESHOLD_SQUARED = CURSOR_SPEED_THRESHOLD * CURSOR_SPEED_THRESHOLD;
5936    var POLYGON_BUFFER = 0.5;
5937    function hasIntersectingEdge(pointX, pointY, xi, yi, xj, yj) {
5938      return yi >= pointY !== yj >= pointY && pointX <= (xj - xi) * (pointY - yi) / (yj - yi) + xi;
5939    }
5940    function isPointInQuadrilateral(pointX, pointY, x1, y1, x2, y2, x3, y3, x4, y4) {
5941      let isInsideValue = false;
5942      if (hasIntersectingEdge(pointX, pointY, x1, y1, x2, y2)) {
5943        isInsideValue = !isInsideValue;
5944      }
5945      if (hasIntersectingEdge(pointX, pointY, x2, y2, x3, y3)) {
5946        isInsideValue = !isInsideValue;
5947      }
5948      if (hasIntersectingEdge(pointX, pointY, x3, y3, x4, y4)) {
5949        isInsideValue = !isInsideValue;
5950      }
5951      if (hasIntersectingEdge(pointX, pointY, x4, y4, x1, y1)) {
5952        isInsideValue = !isInsideValue;
5953      }
5954      return isInsideValue;
5955    }
5956    function isInsideRect(pointX, pointY, rect) {
5957      return pointX >= rect.x && pointX <= rect.x + rect.width && pointY >= rect.y && pointY <= rect.y + rect.height;
5958    }
5959    function isInsideAxisAlignedRect(pointX, pointY, x1, y1, x2, y2) {
5960      const minX = Math.min(x1, x2);
5961      const maxX = Math.max(x1, x2);
5962      const minY = Math.min(y1, y2);
5963      const maxY = Math.max(y1, y2);
5964      return pointX >= minX && pointX <= maxX && pointY >= minY && pointY <= maxY;
5965    }
5966    function safePolygon(options = {}) {
5967      const {
5968        blockPointerEvents = false
5969      } = options;
5970      const timeout = new Timeout();
5971      const fn = ({
5972        x,
5973        y,
5974        placement,
5975        elements,
5976        onClose,
5977        nodeId,
5978        tree
5979      }) => {
5980        const side = placement?.split("-")[0];
5981        let hasLanded = false;
5982        let lastX = null;
5983        let lastY = null;
5984        let lastCursorTime = typeof performance !== "undefined" ? performance.now() : 0;
5985        function isCursorMovingSlowly(nextX, nextY) {
5986          const currentTime = performance.now();
5987          const elapsedTime = currentTime - lastCursorTime;
5988          if (lastX === null || lastY === null || elapsedTime === 0) {
5989            lastX = nextX;
5990            lastY = nextY;
5991            lastCursorTime = currentTime;
5992            return false;
5993          }
5994          const deltaX = nextX - lastX;
5995          const deltaY = nextY - lastY;
5996          const distanceSquared = deltaX * deltaX + deltaY * deltaY;
5997          const thresholdSquared = elapsedTime * elapsedTime * CURSOR_SPEED_THRESHOLD_SQUARED;
5998          lastX = nextX;
5999          lastY = nextY;
6000          lastCursorTime = currentTime;
6001          return distanceSquared < thresholdSquared;
6002        }
6003        function close() {
6004          timeout.clear();
6005          onClose();
6006        }
6007        return function onMouseMove(event) {
6008          timeout.clear();
6009          const domReference = elements.domReference;
6010          const floating = elements.floating;
6011          if (!domReference || !floating || side == null || x == null || y == null) {
6012            return void 0;
6013          }
6014          const {
6015            clientX,
6016            clientY
6017          } = event;
6018          const target = getTarget(event);
6019          const isLeave = event.type === "mouseleave";
6020          const isOverFloatingEl = contains(floating, target);
6021          const isOverReferenceEl = contains(domReference, target);
6022          if (isOverFloatingEl) {
6023            hasLanded = true;
6024            if (!isLeave) {
6025              return void 0;
6026            }
6027          }
6028          if (isOverReferenceEl) {
6029            hasLanded = false;
6030            if (!isLeave) {
6031              hasLanded = true;
6032              return void 0;
6033            }
6034          }
6035          if (isLeave && isElement(event.relatedTarget) && contains(floating, event.relatedTarget)) {
6036            return void 0;
6037          }
6038          function hasOpenChildNode() {
6039            return Boolean(tree && getNodeChildren(tree.nodesRef.current, nodeId).length > 0);
6040          }
6041          function closeIfNoOpenChild() {
6042            if (!hasOpenChildNode()) {
6043              close();
6044            }
6045          }
6046          if (hasOpenChildNode()) {
6047            return void 0;
6048          }
6049          const refRect = domReference.getBoundingClientRect();
6050          const rect = floating.getBoundingClientRect();
6051          const cursorLeaveFromRight = x > rect.right - rect.width / 2;
6052          const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
6053          const isFloatingWider = rect.width > refRect.width;
6054          const isFloatingTaller = rect.height > refRect.height;
6055          const left = (isFloatingWider ? refRect : rect).left;
6056          const right = (isFloatingWider ? refRect : rect).right;
6057          const top = (isFloatingTaller ? refRect : rect).top;
6058          const bottom = (isFloatingTaller ? refRect : rect).bottom;
6059          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) {
6060            closeIfNoOpenChild();
6061            return void 0;
6062          }
6063          let isInsideTroughRect = false;
6064          switch (side) {
6065            case "top":
6066              isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, left, refRect.top + 1, right, rect.bottom - 1);
6067              break;
6068            case "bottom":
6069              isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, left, rect.top + 1, right, refRect.bottom - 1);
6070              break;
6071            case "left":
6072              isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, rect.right - 1, bottom, refRect.left + 1, top);
6073              break;
6074            case "right":
6075              isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, refRect.right - 1, bottom, rect.left + 1, top);
6076              break;
6077            default:
6078          }
6079          if (isInsideTroughRect) {
6080            return void 0;
6081          }
6082          if (hasLanded && !isInsideRect(clientX, clientY, refRect)) {
6083            closeIfNoOpenChild();
6084            return void 0;
6085          }
6086          if (!isLeave && isCursorMovingSlowly(clientX, clientY)) {
6087            closeIfNoOpenChild();
6088            return void 0;
6089          }
6090          let isInsidePolygon = false;
6091          switch (side) {
6092            case "top": {
6093              const cursorXOffset = isFloatingWider ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
6094              const cursorPointOneX = isFloatingWider ? x + cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
6095              const cursorPointTwoX = isFloatingWider ? x - cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
6096              const cursorPointY = y + POLYGON_BUFFER + 1;
6097              const commonYLeft = cursorLeaveFromRight ? rect.bottom - POLYGON_BUFFER : isFloatingWider ? rect.bottom - POLYGON_BUFFER : rect.top;
6098              const commonYRight = cursorLeaveFromRight ? isFloatingWider ? rect.bottom - POLYGON_BUFFER : rect.top : rect.bottom - POLYGON_BUFFER;
6099              isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointOneX, cursorPointY, cursorPointTwoX, cursorPointY, rect.left, commonYLeft, rect.right, commonYRight);
6100              break;
6101            }
6102            case "bottom": {
6103              const cursorXOffset = isFloatingWider ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
6104              const cursorPointOneX = isFloatingWider ? x + cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
6105              const cursorPointTwoX = isFloatingWider ? x - cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
6106              const cursorPointY = y - POLYGON_BUFFER;
6107              const commonYLeft = cursorLeaveFromRight ? rect.top + POLYGON_BUFFER : isFloatingWider ? rect.top + POLYGON_BUFFER : rect.bottom;
6108              const commonYRight = cursorLeaveFromRight ? isFloatingWider ? rect.top + POLYGON_BUFFER : rect.bottom : rect.top + POLYGON_BUFFER;
6109              isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointOneX, cursorPointY, cursorPointTwoX, cursorPointY, rect.left, commonYLeft, rect.right, commonYRight);
6110              break;
6111            }
6112            case "left": {
6113              const cursorYOffset = isFloatingTaller ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
6114              const cursorPointOneY = isFloatingTaller ? y + cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
6115              const cursorPointTwoY = isFloatingTaller ? y - cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
6116              const cursorPointX = x + POLYGON_BUFFER + 1;
6117              const commonXTop = cursorLeaveFromBottom ? rect.right - POLYGON_BUFFER : isFloatingTaller ? rect.right - POLYGON_BUFFER : rect.left;
6118              const commonXBottom = cursorLeaveFromBottom ? isFloatingTaller ? rect.right - POLYGON_BUFFER : rect.left : rect.right - POLYGON_BUFFER;
6119              isInsidePolygon = isPointInQuadrilateral(clientX, clientY, commonXTop, rect.top, commonXBottom, rect.bottom, cursorPointX, cursorPointOneY, cursorPointX, cursorPointTwoY);
6120              break;
6121            }
6122            case "right": {
6123              const cursorYOffset = isFloatingTaller ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
6124              const cursorPointOneY = isFloatingTaller ? y + cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
6125              const cursorPointTwoY = isFloatingTaller ? y - cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
6126              const cursorPointX = x - POLYGON_BUFFER;
6127              const commonXTop = cursorLeaveFromBottom ? rect.left + POLYGON_BUFFER : isFloatingTaller ? rect.left + POLYGON_BUFFER : rect.right;
6128              const commonXBottom = cursorLeaveFromBottom ? isFloatingTaller ? rect.left + POLYGON_BUFFER : rect.right : rect.left + POLYGON_BUFFER;
6129              isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointX, cursorPointOneY, cursorPointX, cursorPointTwoY, commonXTop, rect.top, commonXBottom, rect.bottom);
6130              break;
6131            }
6132            default:
6133          }
6134          if (!isInsidePolygon) {
6135            closeIfNoOpenChild();
6136          } else if (!hasLanded) {
6137            timeout.start(40, closeIfNoOpenChild);
6138          }
6139          return void 0;
6140        };
6141      };
6142      fn.__options = {
6143        ...options,
6144        blockPointerEvents
6145      };
6146      return fn;
6147    }
6148  
6149    // node_modules/.store/@floating-ui/core@1.8.0-3V8aS7jJHHGcsCINjP9-5A/node_modules/@floating-ui/core/dist/floating-ui.core.mjs
6150    function computeCoordsFromPlacement(_ref, placement, rtl) {
6151      let {
6152        reference,
6153        floating
6154      } = _ref;
6155      const sideAxis = getSideAxis(placement);
6156      const alignmentAxis = getAlignmentAxis(placement);
6157      const alignLength = getAxisLength(alignmentAxis);
6158      const side = getSide(placement);
6159      const isVertical = sideAxis === "y";
6160      const commonX = reference.x + reference.width / 2 - floating.width / 2;
6161      const commonY = reference.y + reference.height / 2 - floating.height / 2;
6162      const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
6163      let coords;
6164      switch (side) {
6165        case "top":
6166          coords = {
6167            x: commonX,
6168            y: reference.y - floating.height
6169          };
6170          break;
6171        case "bottom":
6172          coords = {
6173            x: commonX,
6174            y: reference.y + reference.height
6175          };
6176          break;
6177        case "right":
6178          coords = {
6179            x: reference.x + reference.width,
6180            y: commonY
6181          };
6182          break;
6183        case "left":
6184          coords = {
6185            x: reference.x - floating.width,
6186            y: commonY
6187          };
6188          break;
6189        default:
6190          coords = {
6191            x: reference.x,
6192            y: reference.y
6193          };
6194      }
6195      const alignment = getAlignment(placement);
6196      if (alignment) {
6197        coords[alignmentAxis] += commonAlign * (alignment === "end" ? 1 : -1) * (rtl && isVertical ? -1 : 1);
6198      }
6199      return coords;
6200    }
6201    async function detectOverflow(state, options) {
6202      var _await$platform$isEle;
6203      if (options === void 0) {
6204        options = {};
6205      }
6206      const {
6207        x,
6208        y,
6209        platform: platform3,
6210        rects,
6211        elements,
6212        strategy
6213      } = state;
6214      const {
6215        boundary = "clippingAncestors",
6216        rootBoundary = "viewport",
6217        elementContext = "floating",
6218        altBoundary = false,
6219        padding = 0
6220      } = evaluate(options, state);
6221      const paddingObject = getPaddingObject(padding);
6222      const altContext = elementContext === "floating" ? "reference" : "floating";
6223      const element = elements[altBoundary ? altContext : elementContext];
6224      const clippingClientRect = rectToClientRect(await platform3.getClippingRect({
6225        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)),
6226        boundary,
6227        rootBoundary,
6228        strategy
6229      }));
6230      const rect = elementContext === "floating" ? {
6231        x,
6232        y,
6233        width: rects.floating.width,
6234        height: rects.floating.height
6235      } : rects.reference;
6236      const offsetParent = await (platform3.getOffsetParent == null ? void 0 : platform3.getOffsetParent(elements.floating));
6237      const offsetScale = await (platform3.isElement == null ? void 0 : platform3.isElement(offsetParent)) && await (platform3.getScale == null ? void 0 : platform3.getScale(offsetParent)) || {
6238        x: 1,
6239        y: 1
6240      };
6241      const elementClientRect = rectToClientRect(platform3.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform3.convertOffsetParentRelativeRectToViewportRelativeRect({
6242        elements,
6243        rect,
6244        offsetParent,
6245        strategy
6246      }) : rect);
6247      return {
6248        top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
6249        bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
6250        left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
6251        right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
6252      };
6253    }
6254    var MAX_RESET_COUNT = 50;
6255    var computePosition = async (reference, floating, config) => {
6256      const {
6257        placement = "bottom",
6258        strategy = "absolute",
6259        middleware = [],
6260        platform: platform3
6261      } = config;
6262      const platformWithDetectOverflow = platform3.detectOverflow ? platform3 : {
6263        ...platform3,
6264        detectOverflow
6265      };
6266      const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(floating));
6267      let rects = await platform3.getElementRects({
6268        reference,
6269        floating,
6270        strategy
6271      });
6272      let {
6273        x,
6274        y
6275      } = computeCoordsFromPlacement(rects, placement, rtl);
6276      let statefulPlacement = placement;
6277      let resetCount = 0;
6278      const middlewareData = {};
6279      for (let i = 0; i < middleware.length; i++) {
6280        const currentMiddleware = middleware[i];
6281        if (!currentMiddleware) {
6282          continue;
6283        }
6284        const {
6285          name,
6286          fn
6287        } = currentMiddleware;
6288        const {
6289          x: nextX,
6290          y: nextY,
6291          data,
6292          reset
6293        } = await fn({
6294          x,
6295          y,
6296          initialPlacement: placement,
6297          placement: statefulPlacement,
6298          strategy,
6299          middlewareData,
6300          rects,
6301          platform: platformWithDetectOverflow,
6302          elements: {
6303            reference,
6304            floating
6305          }
6306        });
6307        x = nextX != null ? nextX : x;
6308        y = nextY != null ? nextY : y;
6309        middlewareData[name] = {
6310          ...middlewareData[name],
6311          ...data
6312        };
6313        if (reset && resetCount < MAX_RESET_COUNT) {
6314          resetCount++;
6315          if (typeof reset === "object") {
6316            if (reset.placement) {
6317              statefulPlacement = reset.placement;
6318            }
6319            if (reset.rects) {
6320              rects = reset.rects === true ? await platform3.getElementRects({
6321                reference,
6322                floating,
6323                strategy
6324              }) : reset.rects;
6325            }
6326            ({
6327              x,
6328              y
6329            } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
6330          }
6331          i = -1;
6332        }
6333      }
6334      return {
6335        x,
6336        y,
6337        placement: statefulPlacement,
6338        strategy,
6339        middlewareData
6340      };
6341    };
6342    var flip = function(options) {
6343      if (options === void 0) {
6344        options = {};
6345      }
6346      return {
6347        name: "flip",
6348        options,
6349        async fn(state) {
6350          var _middlewareData$arrow, _middlewareData$flip;
6351          const {
6352            placement,
6353            middlewareData,
6354            rects,
6355            initialPlacement,
6356            platform: platform3,
6357            elements
6358          } = state;
6359          const {
6360            mainAxis: checkMainAxis = true,
6361            crossAxis: checkCrossAxis = true,
6362            fallbackPlacements: specifiedFallbackPlacements,
6363            fallbackStrategy = "bestFit",
6364            fallbackAxisSideDirection = "none",
6365            flipAlignment = true,
6366            ...detectOverflowOptions
6367          } = evaluate(options, state);
6368          if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
6369            return {};
6370          }
6371          const side = getSide(placement);
6372          const initialSideAxis = getSideAxis(initialPlacement);
6373          const isBasePlacement = getSide(initialPlacement) === initialPlacement;
6374          const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating));
6375          const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
6376          const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
6377          if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
6378            fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
6379          }
6380          const placements2 = [initialPlacement, ...fallbackPlacements];
6381          const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
6382          const overflows = [];
6383          let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
6384          if (checkMainAxis) {
6385            overflows.push(overflow[side]);
6386          }
6387          if (checkCrossAxis) {
6388            const sides2 = getAlignmentSides(placement, rects, rtl);
6389            overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
6390          }
6391          overflowsData = [...overflowsData, {
6392            placement,
6393            overflows
6394          }];
6395          if (!overflows.every((side2) => side2 <= 0)) {
6396            var _middlewareData$flip2, _overflowsData$filter;
6397            const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
6398            const nextPlacement = placements2[nextIndex];
6399            if (nextPlacement) {
6400              const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
6401              if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
6402              // overflows the main axis.
6403              overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
6404                return {
6405                  data: {
6406                    index: nextIndex,
6407                    overflows: overflowsData
6408                  },
6409                  reset: {
6410                    placement: nextPlacement
6411                  }
6412                };
6413              }
6414            }
6415            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;
6416            if (!resetPlacement) {
6417              switch (fallbackStrategy) {
6418                case "bestFit": {
6419                  var _overflowsData$filter2;
6420                  const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
6421                    if (hasFallbackAxisSideDirection) {
6422                      const currentSideAxis = getSideAxis(d.placement);
6423                      return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
6424                      // reading directions favoring greater width.
6425                      currentSideAxis === "y";
6426                    }
6427                    return true;
6428                  }).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];
6429                  if (placement2) {
6430                    resetPlacement = placement2;
6431                  }
6432                  break;
6433                }
6434                case "initialPlacement":
6435                  resetPlacement = initialPlacement;
6436                  break;
6437              }
6438            }
6439            if (placement !== resetPlacement) {
6440              return {
6441                reset: {
6442                  placement: resetPlacement
6443                }
6444              };
6445            }
6446          }
6447          return {};
6448        }
6449      };
6450    };
6451    var originSides = /* @__PURE__ */ new Set(["left", "top"]);
6452    async function convertValueToCoords(state, options) {
6453      const {
6454        placement,
6455        platform: platform3,
6456        elements
6457      } = state;
6458      const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating));
6459      const side = getSide(placement);
6460      const alignment = getAlignment(placement);
6461      const isVertical = getSideAxis(placement) === "y";
6462      const mainAxisMulti = originSides.has(side) ? -1 : 1;
6463      const crossAxisMulti = rtl && isVertical ? -1 : 1;
6464      const rawValue = evaluate(options, state);
6465      let {
6466        mainAxis,
6467        crossAxis,
6468        alignmentAxis
6469      } = typeof rawValue === "number" ? {
6470        mainAxis: rawValue,
6471        crossAxis: 0,
6472        alignmentAxis: null
6473      } : {
6474        mainAxis: rawValue.mainAxis || 0,
6475        crossAxis: rawValue.crossAxis || 0,
6476        alignmentAxis: rawValue.alignmentAxis
6477      };
6478      if (alignment && typeof alignmentAxis === "number") {
6479        crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
6480      }
6481      return isVertical ? {
6482        x: crossAxis * crossAxisMulti,
6483        y: mainAxis * mainAxisMulti
6484      } : {
6485        x: mainAxis * mainAxisMulti,
6486        y: crossAxis * crossAxisMulti
6487      };
6488    }
6489    var offset = function(options) {
6490      if (options === void 0) {
6491        options = 0;
6492      }
6493      return {
6494        name: "offset",
6495        options,
6496        async fn(state) {
6497          var _middlewareData$offse, _middlewareData$arrow;
6498          const {
6499            x,
6500            y,
6501            placement,
6502            middlewareData
6503          } = state;
6504          const diffCoords = await convertValueToCoords(state, options);
6505          if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
6506            return {};
6507          }
6508          return {
6509            x: x + diffCoords.x,
6510            y: y + diffCoords.y,
6511            data: {
6512              ...diffCoords,
6513              placement
6514            }
6515          };
6516        }
6517      };
6518    };
6519    var shift = function(options) {
6520      if (options === void 0) {
6521        options = {};
6522      }
6523      return {
6524        name: "shift",
6525        options,
6526        async fn(state) {
6527          const {
6528            x,
6529            y,
6530            placement,
6531            platform: platform3
6532          } = state;
6533          const {
6534            mainAxis: checkMainAxis = true,
6535            crossAxis: checkCrossAxis = false,
6536            limiter = {
6537              fn: (_ref) => {
6538                let {
6539                  x: x2,
6540                  y: y2
6541                } = _ref;
6542                return {
6543                  x: x2,
6544                  y: y2
6545                };
6546              }
6547            },
6548            ...detectOverflowOptions
6549          } = evaluate(options, state);
6550          const coords = {
6551            x,
6552            y
6553          };
6554          const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
6555          const crossAxis = getSideAxis(placement);
6556          const mainAxis = getOppositeAxis(crossAxis);
6557          let mainAxisCoord = coords[mainAxis];
6558          let crossAxisCoord = coords[crossAxis];
6559          const clampCoord = (axis, coord) => clamp(coord + overflow[axis === "y" ? "top" : "left"], coord, coord - overflow[axis === "y" ? "bottom" : "right"]);
6560          if (checkMainAxis) {
6561            mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
6562          }
6563          if (checkCrossAxis) {
6564            crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
6565          }
6566          const limitedCoords = limiter.fn({
6567            ...state,
6568            [mainAxis]: mainAxisCoord,
6569            [crossAxis]: crossAxisCoord
6570          });
6571          return {
6572            ...limitedCoords,
6573            data: {
6574              x: limitedCoords.x - x,
6575              y: limitedCoords.y - y,
6576              enabled: {
6577                [mainAxis]: checkMainAxis,
6578                [crossAxis]: checkCrossAxis
6579              }
6580            }
6581          };
6582        }
6583      };
6584    };
6585    var limitShift = function(options) {
6586      if (options === void 0) {
6587        options = {};
6588      }
6589      return {
6590        options,
6591        fn(state) {
6592          var _rawOffset$mainAxis, _rawOffset$crossAxis;
6593          const {
6594            x,
6595            y,
6596            placement,
6597            rects,
6598            middlewareData
6599          } = state;
6600          const {
6601            offset: offset4 = 0,
6602            mainAxis: checkMainAxis = true,
6603            crossAxis: checkCrossAxis = true
6604          } = evaluate(options, state);
6605          const coords = {
6606            x,
6607            y
6608          };
6609          const crossAxis = getSideAxis(placement);
6610          const mainAxis = getOppositeAxis(crossAxis);
6611          let mainAxisCoord = coords[mainAxis];
6612          let crossAxisCoord = coords[crossAxis];
6613          const rawOffset = evaluate(offset4, state);
6614          const computedOffset = typeof rawOffset === "number" ? {
6615            mainAxis: rawOffset,
6616            crossAxis: 0
6617          } : {
6618            mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,
6619            crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0
6620          };
6621          if (checkMainAxis) {
6622            const len = mainAxis === "y" ? "height" : "width";
6623            const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
6624            const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
6625            if (mainAxisCoord < limitMin) {
6626              mainAxisCoord = limitMin;
6627            } else if (mainAxisCoord > limitMax) {
6628              mainAxisCoord = limitMax;
6629            }
6630          }
6631          if (checkCrossAxis) {
6632            var _middlewareData$offse, _middlewareData$offse2;
6633            const len = mainAxis === "y" ? "width" : "height";
6634            const isOriginSide = originSides.has(getSide(placement));
6635            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);
6636            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);
6637            if (crossAxisCoord < limitMin) {
6638              crossAxisCoord = limitMin;
6639            } else if (crossAxisCoord > limitMax) {
6640              crossAxisCoord = limitMax;
6641            }
6642          }
6643          return {
6644            [mainAxis]: mainAxisCoord,
6645            [crossAxis]: crossAxisCoord
6646          };
6647        }
6648      };
6649    };
6650    var size = function(options) {
6651      if (options === void 0) {
6652        options = {};
6653      }
6654      return {
6655        name: "size",
6656        options,
6657        async fn(state) {
6658          const {
6659            placement,
6660            rects,
6661            platform: platform3,
6662            elements
6663          } = state;
6664          const {
6665            apply = () => {
6666            },
6667            ...detectOverflowOptions
6668          } = evaluate(options, state);
6669          const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
6670          const side = getSide(placement);
6671          const alignment = getAlignment(placement);
6672          const isYAxis = getSideAxis(placement) === "y";
6673          const {
6674            width,
6675            height
6676          } = rects.floating;
6677          let heightSide;
6678          let widthSide;
6679          if (side === "top" || side === "bottom") {
6680            heightSide = side;
6681            widthSide = alignment === (await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
6682          } else {
6683            widthSide = side;
6684            heightSide = alignment === "end" ? "top" : "bottom";
6685          }
6686          const maximumClippingHeight = height - overflow.top - overflow.bottom;
6687          const maximumClippingWidth = width - overflow.left - overflow.right;
6688          const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
6689          const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
6690          const shiftData = state.middlewareData.shift;
6691          const noShift = !shiftData;
6692          let availableHeight2 = overflowAvailableHeight;
6693          let availableWidth2 = overflowAvailableWidth;
6694          if (shiftData != null && shiftData.enabled.x) {
6695            availableWidth2 = maximumClippingWidth;
6696          }
6697          if (shiftData != null && shiftData.enabled.y) {
6698            availableHeight2 = maximumClippingHeight;
6699          }
6700          if (noShift && !alignment) {
6701            if (isYAxis) {
6702              availableWidth2 = width - 2 * max(overflow.left, overflow.right);
6703            } else {
6704              availableHeight2 = height - 2 * max(overflow.top, overflow.bottom);
6705            }
6706          }
6707          await apply({
6708            ...state,
6709            availableWidth: availableWidth2,
6710            availableHeight: availableHeight2
6711          });
6712          const nextDimensions = await platform3.getDimensions(elements.floating);
6713          if (width !== nextDimensions.width || height !== nextDimensions.height) {
6714            return {
6715              reset: {
6716                rects: true
6717              }
6718            };
6719          }
6720          return {};
6721        }
6722      };
6723    };
6724  
6725    // node_modules/.store/@floating-ui/dom@1.8.0-vHXcr4FgWneV0cgwFw-d7A/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
6726    function getCssDimensions(element) {
6727      const css = getComputedStyle2(element);
6728      let width = parseFloat(css.width) || 0;
6729      let height = parseFloat(css.height) || 0;
6730      const hasOffset = isHTMLElement(element);
6731      const offsetWidth = hasOffset ? element.offsetWidth : width;
6732      const offsetHeight = hasOffset ? element.offsetHeight : height;
6733      const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
6734      if (shouldFallback) {
6735        width = offsetWidth;
6736        height = offsetHeight;
6737      }
6738      return {
6739        width,
6740        height,
6741        $: shouldFallback
6742      };
6743    }
6744    function unwrapElement(element) {
6745      return !isElement(element) ? element.contextElement : element;
6746    }
6747    function getScale(element) {
6748      const domElement = unwrapElement(element);
6749      if (!isHTMLElement(domElement)) {
6750        return createCoords(1);
6751      }
6752      const rect = domElement.getBoundingClientRect();
6753      const {
6754        width,
6755        height,
6756        $
6757      } = getCssDimensions(domElement);
6758      let x = ($ ? round(rect.width) : rect.width) / width;
6759      let y = ($ ? round(rect.height) : rect.height) / height;
6760      if (!x || !Number.isFinite(x)) {
6761        x = 1;
6762      }
6763      if (!y || !Number.isFinite(y)) {
6764        y = 1;
6765      }
6766      return {
6767        x,
6768        y
6769      };
6770    }
6771    var noOffsets = /* @__PURE__ */ createCoords(0);
6772    function getVisualOffsets(element) {
6773      const win = getWindow(element);
6774      if (!isWebKit() || !win.visualViewport) {
6775        return noOffsets;
6776      }
6777      return {
6778        x: win.visualViewport.offsetLeft,
6779        y: win.visualViewport.offsetTop
6780      };
6781    }
6782    function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
6783      if (isFixed === void 0) {
6784        isFixed = false;
6785      }
6786      return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
6787    }
6788    function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
6789      if (includeScale === void 0) {
6790        includeScale = false;
6791      }
6792      if (isFixedStrategy === void 0) {
6793        isFixedStrategy = false;
6794      }
6795      const clientRect = element.getBoundingClientRect();
6796      const domElement = unwrapElement(element);
6797      let scale = createCoords(1);
6798      if (includeScale) {
6799        if (offsetParent) {
6800          if (isElement(offsetParent)) {
6801            scale = getScale(offsetParent);
6802          }
6803        } else {
6804          scale = getScale(element);
6805        }
6806      }
6807      const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
6808      let x = (clientRect.left + visualOffsets.x) / scale.x;
6809      let y = (clientRect.top + visualOffsets.y) / scale.y;
6810      let width = clientRect.width / scale.x;
6811      let height = clientRect.height / scale.y;
6812      if (domElement && offsetParent) {
6813        const win = getWindow(domElement);
6814        const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
6815        let currentWin = win;
6816        let currentIFrame = getFrameElement(currentWin);
6817        while (currentIFrame && offsetWin !== currentWin) {
6818          const iframeScale = getScale(currentIFrame);
6819          const iframeRect = currentIFrame.getBoundingClientRect();
6820          const css = getComputedStyle2(currentIFrame);
6821          const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
6822          const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
6823          x *= iframeScale.x;
6824          y *= iframeScale.y;
6825          width *= iframeScale.x;
6826          height *= iframeScale.y;
6827          x += left;
6828          y += top;
6829          currentWin = getWindow(currentIFrame);
6830          currentIFrame = getFrameElement(currentWin);
6831        }
6832      }
6833      return rectToClientRect({
6834        width,
6835        height,
6836        x,
6837        y
6838      });
6839    }
6840    function getWindowScrollBarX(element, rect) {
6841      const leftScroll = getNodeScroll(element).scrollLeft;
6842      if (!rect) {
6843        return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
6844      }
6845      return rect.left + leftScroll;
6846    }
6847    function getHTMLOffset(documentElement, scroll) {
6848      const htmlRect = documentElement.getBoundingClientRect();
6849      const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
6850      const y = htmlRect.top + scroll.scrollTop;
6851      return {
6852        x,
6853        y
6854      };
6855    }
6856    function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
6857      let {
6858        elements,
6859        rect,
6860        offsetParent,
6861        strategy
6862      } = _ref;
6863      const isFixed = strategy === "fixed";
6864      const documentElement = getDocumentElement(offsetParent);
6865      const topLayer = elements ? isTopLayer(elements.floating) : false;
6866      if (offsetParent === documentElement || topLayer && isFixed) {
6867        return rect;
6868      }
6869      let scroll = {
6870        scrollLeft: 0,
6871        scrollTop: 0
6872      };
6873      let scale = createCoords(1);
6874      const offsets = createCoords(0);
6875      const isOffsetParentAnElement = isHTMLElement(offsetParent);
6876      if (isOffsetParentAnElement || !isFixed) {
6877        if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
6878          scroll = getNodeScroll(offsetParent);
6879        }
6880        if (isOffsetParentAnElement) {
6881          const offsetRect = getBoundingClientRect(offsetParent);
6882          scale = getScale(offsetParent);
6883          offsets.x = offsetRect.x + offsetParent.clientLeft;
6884          offsets.y = offsetRect.y + offsetParent.clientTop;
6885        }
6886      }
6887      const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
6888      return {
6889        width: rect.width * scale.x,
6890        height: rect.height * scale.y,
6891        x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
6892        y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
6893      };
6894    }
6895    function getClientRects(element) {
6896      return element.getClientRects ? Array.from(element.getClientRects()) : [];
6897    }
6898    function getDocumentRect(html) {
6899      const scroll = getNodeScroll(html);
6900      const body = html.ownerDocument.body;
6901      const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
6902      const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
6903      let x = -scroll.scrollLeft + getWindowScrollBarX(html);
6904      const y = -scroll.scrollTop;
6905      if (getComputedStyle2(body).direction === "rtl") {
6906        x += max(html.clientWidth, body.clientWidth) - width;
6907      }
6908      return {
6909        width,
6910        height,
6911        x,
6912        y
6913      };
6914    }
6915    var SCROLLBAR_MAX = 25;
6916    function getViewportRect(element, strategy, rootBoundary) {
6917      if (rootBoundary === void 0) {
6918        rootBoundary = "viewport";
6919      }
6920      const isLayoutViewport = rootBoundary === "layoutViewport";
6921      const win = getWindow(element);
6922      const html = getDocumentElement(element);
6923      const visualViewport = win.visualViewport;
6924      let width = html.clientWidth;
6925      let height = html.clientHeight;
6926      let x = 0;
6927      let y = 0;
6928      if (visualViewport) {
6929        const layoutRelativeClientCoords = !isWebKit() || strategy === "fixed";
6930        if (isLayoutViewport) {
6931          if (!layoutRelativeClientCoords) {
6932            x = -visualViewport.offsetLeft;
6933            y = -visualViewport.offsetTop;
6934          }
6935        } else {
6936          width = visualViewport.width;
6937          height = visualViewport.height;
6938          if (layoutRelativeClientCoords) {
6939            x = visualViewport.offsetLeft;
6940            y = visualViewport.offsetTop;
6941          }
6942        }
6943      }
6944      const windowScrollbarX = getWindowScrollBarX(html);
6945      if (windowScrollbarX <= 0) {
6946        const doc = html.ownerDocument;
6947        const body = doc.body;
6948        const bodyStyles = getComputedStyle(body);
6949        const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
6950        const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
6951        const gutter = getComputedStyle(html).scrollbarGutter === "stable both-edges" ? reservedWidth / 2 : reservedWidth;
6952        if (gutter <= SCROLLBAR_MAX) {
6953          width -= gutter;
6954        }
6955      }
6956      return {
6957        width,
6958        height,
6959        x,
6960        y
6961      };
6962    }
6963    function getInnerBoundingClientRect(element, strategy) {
6964      const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
6965      const top = clientRect.top + element.clientTop;
6966      const left = clientRect.left + element.clientLeft;
6967      const scale = getScale(element);
6968      const width = element.clientWidth * scale.x;
6969      const height = element.clientHeight * scale.y;
6970      const x = left * scale.x;
6971      const y = top * scale.y;
6972      return {
6973        width,
6974        height,
6975        x,
6976        y
6977      };
6978    }
6979    function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
6980      let rect;
6981      if (clippingAncestor === "viewport" || clippingAncestor === "layoutViewport") {
6982        rect = getViewportRect(element, strategy, clippingAncestor);
6983      } else if (clippingAncestor === "document") {
6984        rect = getDocumentRect(getDocumentElement(element));
6985      } else if (isElement(clippingAncestor)) {
6986        rect = getInnerBoundingClientRect(clippingAncestor, strategy);
6987      } else {
6988        const visualOffsets = getVisualOffsets(element);
6989        rect = {
6990          x: clippingAncestor.x - visualOffsets.x,
6991          y: clippingAncestor.y - visualOffsets.y,
6992          width: clippingAncestor.width,
6993          height: clippingAncestor.height
6994        };
6995      }
6996      return rectToClientRect(rect);
6997    }
6998    function getClippingElementAncestors(element, cache) {
6999      const cachedResult = cache.get(element);
7000      if (cachedResult) {
7001        return cachedResult;
7002      }
7003      let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
7004      let lastKeptComputedStyle = null;
7005      const elementIsFixed = getComputedStyle2(element).position === "fixed";
7006      let currentNode = elementIsFixed ? getParentNode(element) : element;
7007      while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
7008        const computedStyle = getComputedStyle2(currentNode);
7009        const currentNodeIsContaining = isContainingBlock(currentNode);
7010        const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? "fixed" : "";
7011        const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === "fixed" || lastPosition === "absolute" && computedStyle.position === "static");
7012        if (shouldDropCurrentNode) {
7013          result = result.filter((ancestor) => ancestor !== currentNode);
7014        } else {
7015          lastKeptComputedStyle = computedStyle;
7016        }
7017        currentNode = getParentNode(currentNode);
7018      }
7019      cache.set(element, result);
7020      return result;
7021    }
7022    function getClippingRect(_ref) {
7023      let {
7024        element,
7025        boundary,
7026        rootBoundary,
7027        strategy
7028      } = _ref;
7029      const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
7030      const clippingAncestors = [...elementClippingAncestors, rootBoundary];
7031      const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);
7032      let top = firstRect.top;
7033      let right = firstRect.right;
7034      let bottom = firstRect.bottom;
7035      let left = firstRect.left;
7036      for (let i = 1; i < clippingAncestors.length; i++) {
7037        const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);
7038        top = max(rect.top, top);
7039        right = min(rect.right, right);
7040        bottom = min(rect.bottom, bottom);
7041        left = max(rect.left, left);
7042      }
7043      return {
7044        width: right - left,
7045        height: bottom - top,
7046        x: left,
7047        y: top
7048      };
7049    }
7050    function getDimensions(element) {
7051      const {
7052        width,
7053        height
7054      } = getCssDimensions(element);
7055      return {
7056        width,
7057        height
7058      };
7059    }
7060    function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
7061      const isOffsetParentAnElement = isHTMLElement(offsetParent);
7062      const documentElement = getDocumentElement(offsetParent);
7063      const isFixed = strategy === "fixed";
7064      const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
7065      let scroll = {
7066        scrollLeft: 0,
7067        scrollTop: 0
7068      };
7069      const offsets = createCoords(0);
7070      if (isOffsetParentAnElement || !isFixed) {
7071        if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
7072          scroll = getNodeScroll(offsetParent);
7073        }
7074        if (isOffsetParentAnElement) {
7075          const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
7076          offsets.x = offsetRect.x + offsetParent.clientLeft;
7077          offsets.y = offsetRect.y + offsetParent.clientTop;
7078        }
7079      }
7080      if (!isOffsetParentAnElement && documentElement) {
7081        offsets.x = getWindowScrollBarX(documentElement);
7082      }
7083      const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
7084      const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
7085      const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
7086      return {
7087        x,
7088        y,
7089        width: rect.width,
7090        height: rect.height
7091      };
7092    }
7093    function isStaticPositioned(element) {
7094      return getComputedStyle2(element).position === "static";
7095    }
7096    function getTrueOffsetParent(element, polyfill) {
7097      if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
7098        return null;
7099      }
7100      if (polyfill) {
7101        return polyfill(element);
7102      }
7103      let rawOffsetParent = element.offsetParent;
7104      if (getDocumentElement(element) === rawOffsetParent) {
7105        rawOffsetParent = rawOffsetParent.ownerDocument.body;
7106      }
7107      return rawOffsetParent;
7108    }
7109    function getOffsetParent(element, polyfill) {
7110      const win = getWindow(element);
7111      if (isTopLayer(element)) {
7112        return win;
7113      }
7114      if (!isHTMLElement(element)) {
7115        let svgOffsetParent = getParentNode(element);
7116        while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
7117          if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
7118            return svgOffsetParent;
7119          }
7120          svgOffsetParent = getParentNode(svgOffsetParent);
7121        }
7122        return win;
7123      }
7124      let offsetParent = getTrueOffsetParent(element, polyfill);
7125      while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
7126        offsetParent = getTrueOffsetParent(offsetParent, polyfill);
7127      }
7128      if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
7129        return win;
7130      }
7131      return offsetParent || getContainingBlock(element) || win;
7132    }
7133    var getElementRects = async function(data) {
7134      const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
7135      const getDimensionsFn = this.getDimensions;
7136      const floatingDimensions = await getDimensionsFn(data.floating);
7137      return {
7138        reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
7139        floating: {
7140          x: 0,
7141          y: 0,
7142          width: floatingDimensions.width,
7143          height: floatingDimensions.height
7144        }
7145      };
7146    };
7147    function isRTL(element) {
7148      return getComputedStyle2(element).direction === "rtl";
7149    }
7150    var platform2 = {
7151      convertOffsetParentRelativeRectToViewportRelativeRect,
7152      getDocumentElement,
7153      getClippingRect,
7154      getOffsetParent,
7155      getElementRects,
7156      getClientRects,
7157      getDimensions,
7158      getScale,
7159      isElement,
7160      isRTL
7161    };
7162    function rectsAreEqual(a, b) {
7163      return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
7164    }
7165    function observeMove(element, onMove, ancestorResize) {
7166      let io = null;
7167      let timeoutId;
7168      const root = getDocumentElement(element);
7169      function cleanup() {
7170        var _io;
7171        clearTimeout(timeoutId);
7172        (_io = io) == null || _io.disconnect();
7173        io = null;
7174      }
7175      function refresh(skip, threshold) {
7176        if (skip === void 0) {
7177          skip = false;
7178        }
7179        if (threshold === void 0) {
7180          threshold = 1;
7181        }
7182        cleanup();
7183        const elementRectForRootMargin = element.getBoundingClientRect();
7184        const {
7185          left,
7186          top,
7187          width,
7188          height
7189        } = elementRectForRootMargin;
7190        if (!skip) {
7191          onMove();
7192        }
7193        if (!width || !height) {
7194          return;
7195        }
7196        const insetTop = floor(top);
7197        const insetRight = floor(root.clientWidth - (left + width));
7198        const insetBottom = floor(root.clientHeight - (top + height));
7199        const insetLeft = floor(left);
7200        const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
7201        const options = {
7202          rootMargin,
7203          threshold: max(0, min(1, threshold)) || 1
7204        };
7205        let isFirstUpdate = true;
7206        function handleObserve(entries) {
7207          const ratio = entries[0].intersectionRatio;
7208          if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
7209            return refresh();
7210          }
7211          if (ratio !== threshold) {
7212            if (!isFirstUpdate) {
7213              return refresh();
7214            }
7215            if (!ratio) {
7216              timeoutId = setTimeout(() => {
7217                refresh(false, 1e-7);
7218              }, 1e3);
7219            } else {
7220              refresh(false, ratio);
7221            }
7222          }
7223          isFirstUpdate = false;
7224        }
7225        try {
7226          io = new IntersectionObserver(handleObserve, {
7227            ...options,
7228            // Handle <iframe>s
7229            root: root.ownerDocument
7230          });
7231        } catch (_e) {
7232          io = new IntersectionObserver(handleObserve, options);
7233        }
7234        io.observe(element);
7235      }
7236      const win = getWindow(element);
7237      const handleResize = () => refresh(ancestorResize);
7238      win.addEventListener("resize", handleResize);
7239      refresh(true);
7240      return () => {
7241        win.removeEventListener("resize", handleResize);
7242        cleanup();
7243      };
7244    }
7245    function autoUpdate(reference, floating, update2, options) {
7246      if (options === void 0) {
7247        options = {};
7248      }
7249      const {
7250        ancestorScroll = true,
7251        ancestorResize = true,
7252        elementResize = typeof ResizeObserver === "function",
7253        layoutShift = typeof IntersectionObserver === "function",
7254        animationFrame = false
7255      } = options;
7256      const referenceEl = unwrapElement(reference);
7257      const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...floating ? getOverflowAncestors(floating) : []] : [];
7258      ancestors.forEach((ancestor) => {
7259        ancestorScroll && ancestor.addEventListener("scroll", update2);
7260        ancestorResize && ancestor.addEventListener("resize", update2);
7261      });
7262      const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update2, ancestorResize) : null;
7263      let reobserveFrame = -1;
7264      let resizeObserver = null;
7265      if (elementResize) {
7266        resizeObserver = new ResizeObserver((_ref) => {
7267          let [firstEntry] = _ref;
7268          if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {
7269            resizeObserver.unobserve(floating);
7270            cancelAnimationFrame(reobserveFrame);
7271            reobserveFrame = requestAnimationFrame(() => {
7272              var _resizeObserver;
7273              (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
7274            });
7275          }
7276          update2();
7277        });
7278        if (referenceEl && !animationFrame) {
7279          resizeObserver.observe(referenceEl);
7280        }
7281        if (floating) {
7282          resizeObserver.observe(floating);
7283        }
7284      }
7285      let frameId;
7286      let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
7287      if (animationFrame) {
7288        frameLoop();
7289      }
7290      function frameLoop() {
7291        const nextRefRect = getBoundingClientRect(reference);
7292        if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
7293          update2();
7294        }
7295        prevRefRect = nextRefRect;
7296        frameId = requestAnimationFrame(frameLoop);
7297      }
7298      update2();
7299      return () => {
7300        var _resizeObserver2;
7301        ancestors.forEach((ancestor) => {
7302          ancestorScroll && ancestor.removeEventListener("scroll", update2);
7303          ancestorResize && ancestor.removeEventListener("resize", update2);
7304        });
7305        cleanupIo == null || cleanupIo();
7306        (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
7307        resizeObserver = null;
7308        if (animationFrame) {
7309          cancelAnimationFrame(frameId);
7310        }
7311      };
7312    }
7313    var offset2 = offset;
7314    var shift2 = shift;
7315    var flip2 = flip;
7316    var size2 = size;
7317    var limitShift2 = limitShift;
7318    var computePosition2 = (reference, floating, options) => {
7319      const cache = /* @__PURE__ */ new Map();
7320      const mergedOptions = options != null ? options : {};
7321      const platformWithCache = {
7322        ...platform2,
7323        ...mergedOptions.platform,
7324        _c: cache
7325      };
7326      return computePosition(reference, floating, {
7327        ...mergedOptions,
7328        platform: platformWithCache
7329      });
7330    };
7331  
7332    // node_modules/.store/@floating-ui/react-dom@2.1.9-AxWcAwqlMfOrAFOinFKSVg/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs
7333    var React30 = __toESM(require_react(), 1);
7334    var import_react2 = __toESM(require_react(), 1);
7335    var ReactDOM5 = __toESM(require_react_dom(), 1);
7336    var isClient = typeof document !== "undefined";
7337    var noop2 = function noop3() {
7338    };
7339    var index = isClient ? import_react2.useLayoutEffect : noop2;
7340    function deepEqual(a, b) {
7341      if (a === b) {
7342        return true;
7343      }
7344      if (typeof a !== typeof b) {
7345        return false;
7346      }
7347      if (typeof a === "function" && a.toString() === b.toString()) {
7348        return true;
7349      }
7350      let length;
7351      let i;
7352      let keys;
7353      if (a && b && typeof a === "object") {
7354        if (Array.isArray(a)) {
7355          length = a.length;
7356          if (length !== b.length) return false;
7357          for (i = length; i-- !== 0; ) {
7358            if (!deepEqual(a[i], b[i])) {
7359              return false;
7360            }
7361          }
7362          return true;
7363        }
7364        keys = Object.keys(a);
7365        length = keys.length;
7366        if (length !== Object.keys(b).length) {
7367          return false;
7368        }
7369        for (i = length; i-- !== 0; ) {
7370          if (!{}.hasOwnProperty.call(b, keys[i])) {
7371            return false;
7372          }
7373        }
7374        for (i = length; i-- !== 0; ) {
7375          const key = keys[i];
7376          if (key === "_owner" && a.$$typeof) {
7377            continue;
7378          }
7379          if (!deepEqual(a[key], b[key])) {
7380            return false;
7381          }
7382        }
7383        return true;
7384      }
7385      return a !== a && b !== b;
7386    }
7387    function getDPR(element) {
7388      if (typeof window === "undefined") {
7389        return 1;
7390      }
7391      const win = element.ownerDocument.defaultView || window;
7392      return win.devicePixelRatio || 1;
7393    }
7394    function roundByDPR(element, value) {
7395      const dpr = getDPR(element);
7396      return Math.round(value * dpr) / dpr;
7397    }
7398    function useLatestRef(value) {
7399      const ref = React30.useRef(value);
7400      index(() => {
7401        ref.current = value;
7402      });
7403      return ref;
7404    }
7405    function useFloating(options) {
7406      if (options === void 0) {
7407        options = {};
7408      }
7409      const {
7410        placement = "bottom",
7411        strategy = "absolute",
7412        middleware = [],
7413        platform: platform3,
7414        elements: {
7415          reference: externalReference,
7416          floating: externalFloating
7417        } = {},
7418        transform = true,
7419        whileElementsMounted,
7420        open: open2
7421      } = options;
7422      const [data, setData] = React30.useState({
7423        x: 0,
7424        y: 0,
7425        strategy,
7426        placement,
7427        middlewareData: {},
7428        isPositioned: false
7429      });
7430      const [latestMiddleware, setLatestMiddleware] = React30.useState(middleware);
7431      if (!deepEqual(latestMiddleware, middleware)) {
7432        setLatestMiddleware(middleware);
7433      }
7434      const [_reference, _setReference] = React30.useState(null);
7435      const [_floating, _setFloating] = React30.useState(null);
7436      const setReference = React30.useCallback((node) => {
7437        if (node !== referenceRef.current) {
7438          referenceRef.current = node;
7439          _setReference(node);
7440        }
7441      }, []);
7442      const setFloating = React30.useCallback((node) => {
7443        if (node !== floatingRef.current) {
7444          floatingRef.current = node;
7445          _setFloating(node);
7446        }
7447      }, []);
7448      const referenceEl = externalReference || _reference;
7449      const floatingEl = externalFloating || _floating;
7450      const referenceRef = React30.useRef(null);
7451      const floatingRef = React30.useRef(null);
7452      const dataRef = React30.useRef(data);
7453      const hasWhileElementsMounted = whileElementsMounted != null;
7454      const whileElementsMountedRef = useLatestRef(whileElementsMounted);
7455      const platformRef = useLatestRef(platform3);
7456      const openRef = useLatestRef(open2);
7457      const update2 = React30.useCallback(() => {
7458        if (!referenceRef.current || !floatingRef.current) {
7459          return;
7460        }
7461        const config = {
7462          placement,
7463          strategy,
7464          middleware: latestMiddleware
7465        };
7466        if (platformRef.current) {
7467          config.platform = platformRef.current;
7468        }
7469        computePosition2(referenceRef.current, floatingRef.current, config).then((data2) => {
7470          const fullData = {
7471            ...data2,
7472            // The floating element's position may be recomputed while it's closed
7473            // but still mounted (such as when transitioning out). To ensure
7474            // `isPositioned` will be `false` initially on the next open, avoid
7475            // setting it to `true` when `open === false` (must be specified).
7476            isPositioned: openRef.current !== false
7477          };
7478          if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {
7479            dataRef.current = fullData;
7480            ReactDOM5.flushSync(() => {
7481              setData(fullData);
7482            });
7483          }
7484        });
7485      }, [latestMiddleware, placement, strategy, platformRef, openRef]);
7486      index(() => {
7487        if (open2 === false && dataRef.current.isPositioned) {
7488          dataRef.current.isPositioned = false;
7489          setData((data2) => ({
7490            ...data2,
7491            isPositioned: false
7492          }));
7493        }
7494      }, [open2]);
7495      const isMountedRef = React30.useRef(false);
7496      index(() => {
7497        isMountedRef.current = true;
7498        return () => {
7499          isMountedRef.current = false;
7500        };
7501      }, []);
7502      index(() => {
7503        if (referenceEl) referenceRef.current = referenceEl;
7504        if (floatingEl) floatingRef.current = floatingEl;
7505        if (referenceEl && floatingEl) {
7506          if (whileElementsMountedRef.current) {
7507            return whileElementsMountedRef.current(referenceEl, floatingEl, update2);
7508          }
7509          update2();
7510        }
7511      }, [referenceEl, floatingEl, update2, whileElementsMountedRef, hasWhileElementsMounted]);
7512      const refs = React30.useMemo(() => ({
7513        reference: referenceRef,
7514        floating: floatingRef,
7515        setReference,
7516        setFloating
7517      }), [setReference, setFloating]);
7518      const elements = React30.useMemo(() => ({
7519        reference: referenceEl,
7520        floating: floatingEl
7521      }), [referenceEl, floatingEl]);
7522      const floatingStyles = React30.useMemo(() => {
7523        const initialStyles = {
7524          position: strategy,
7525          left: 0,
7526          top: 0
7527        };
7528        if (!elements.floating) {
7529          return initialStyles;
7530        }
7531        const x = roundByDPR(elements.floating, data.x);
7532        const y = roundByDPR(elements.floating, data.y);
7533        if (transform) {
7534          return {
7535            ...initialStyles,
7536            transform: "translate(" + x + "px, " + y + "px)",
7537            ...getDPR(elements.floating) >= 1.5 && {
7538              willChange: "transform"
7539            }
7540          };
7541        }
7542        return {
7543          position: strategy,
7544          left: x,
7545          top: y
7546        };
7547      }, [strategy, transform, elements.floating, data.x, data.y]);
7548      return React30.useMemo(() => ({
7549        ...data,
7550        update: update2,
7551        refs,
7552        elements,
7553        floatingStyles
7554      }), [data, update2, refs, elements, floatingStyles]);
7555    }
7556    var offset3 = (options, deps) => {
7557      const result = offset2(options);
7558      return {
7559        name: result.name,
7560        fn: result.fn,
7561        options: [options, deps]
7562      };
7563    };
7564    var shift3 = (options, deps) => {
7565      const result = shift2(options);
7566      return {
7567        name: result.name,
7568        fn: result.fn,
7569        options: [options, deps]
7570      };
7571    };
7572    var limitShift3 = (options, deps) => {
7573      const result = limitShift2(options);
7574      return {
7575        fn: result.fn,
7576        options: [options, deps]
7577      };
7578    };
7579    var flip3 = (options, deps) => {
7580      const result = flip2(options);
7581      return {
7582        name: result.name,
7583        fn: result.fn,
7584        options: [options, deps]
7585      };
7586    };
7587    var size3 = (options, deps) => {
7588      const result = size2(options);
7589      return {
7590        name: result.name,
7591        fn: result.fn,
7592        options: [options, deps]
7593      };
7594    };
7595  
7596    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/NullStore.mjs
7597    var NullStore = class extends ReactStore {
7598      // `update`/`set`/`notifyAll` funnel through `setState` in the base `Store`, so overriding
7599      // `setState` alone would neutralize them today. They are overridden explicitly so the store stays
7600      // inert even if a future base-class change stops routing a mutator through `setState`.
7601      setState(_newState) {
7602      }
7603      update(_changes) {
7604      }
7605      set(_key, _value) {
7606      }
7607      notifyAll() {
7608      }
7609    };
7610  
7611    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/inertValue.mjs
7612    function inertValue(value) {
7613      if (isReactVersionAtLeast(19)) {
7614        return value;
7615      }
7616      return value ? "true" : void 0;
7617    }
7618  
7619    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/direction-context/DirectionContext.mjs
7620    var React31 = __toESM(require_react(), 1);
7621    var DirectionContext = /* @__PURE__ */ React31.createContext(void 0);
7622    if (true) DirectionContext.displayName = "DirectionContext";
7623    function useDirection() {
7624      const context = React31.useContext(DirectionContext);
7625      return context?.direction ?? "ltr";
7626    }
7627  
7628    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnchorPositioning.mjs
7629    var React33 = __toESM(require_react(), 1);
7630  
7631    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/hooks/useFloating.mjs
7632    var React32 = __toESM(require_react(), 1);
7633    function useBaseUIFloating(options) {
7634      const {
7635        nodeId,
7636        externalTree,
7637        rootContext: store2
7638      } = options;
7639      const referenceElement = store2.useState("referenceElement");
7640      const floatingElement = store2.useState("floatingElement");
7641      const domReferenceElement = store2.useState("domReferenceElement");
7642      const open2 = store2.useState("open");
7643      const floatingId = store2.useState("floatingId");
7644      const [positionReference, setPositionReferenceRaw] = React32.useState(null);
7645      const domReferenceRef = React32.useRef(null);
7646      const tree = useFloatingTree(externalTree);
7647      const storeElements = React32.useMemo(() => ({
7648        reference: referenceElement,
7649        floating: floatingElement,
7650        domReference: domReferenceElement
7651      }), [referenceElement, floatingElement, domReferenceElement]);
7652      const position = useFloating({
7653        ...options,
7654        elements: {
7655          ...storeElements,
7656          ...positionReference && {
7657            reference: positionReference
7658          }
7659        }
7660      });
7661      const setPositionReference = React32.useCallback((node) => {
7662        const computedPositionReference = isElement(node) ? {
7663          getBoundingClientRect: () => node.getBoundingClientRect(),
7664          getClientRects: () => node.getClientRects(),
7665          contextElement: node
7666        } : node;
7667        setPositionReferenceRaw(computedPositionReference);
7668        position.refs.setReference(computedPositionReference);
7669      }, [position.refs]);
7670      const refs = React32.useMemo(() => ({
7671        ...position.refs,
7672        setPositionReference,
7673        domReference: domReferenceRef
7674      }), [position.refs, setPositionReference]);
7675      const elements = React32.useMemo(() => ({
7676        ...position.elements,
7677        domReference: domReferenceElement
7678      }), [position.elements, domReferenceElement]);
7679      const context = React32.useMemo(() => ({
7680        ...position,
7681        dataRef: store2.context.dataRef,
7682        open: open2,
7683        onOpenChange: store2.setOpen,
7684        events: store2.context.events,
7685        floatingId,
7686        refs,
7687        elements,
7688        nodeId,
7689        rootStore: store2
7690      }), [position, refs, elements, nodeId, store2, open2, floatingId]);
7691      useIsoLayoutEffect(() => {
7692        if (domReferenceElement) {
7693          domReferenceRef.current = domReferenceElement;
7694        }
7695      }, [domReferenceElement]);
7696      useIsoLayoutEffect(() => {
7697        store2.context.dataRef.current.floatingContext = context;
7698        const node = tree?.nodesRef.current.find((n) => n.id === nodeId);
7699        if (node) {
7700          node.context = context;
7701        }
7702      });
7703      return React32.useMemo(() => ({
7704        ...position,
7705        context,
7706        refs,
7707        elements,
7708        rootStore: store2
7709      }), [position, refs, elements, context, store2]);
7710    }
7711  
7712    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/floating-ui-react/middleware/arrow.mjs
7713    var baseArrow = (options) => ({
7714      name: "arrow",
7715      options,
7716      async fn(state) {
7717        const {
7718          x,
7719          y,
7720          placement,
7721          rects,
7722          platform: platform3,
7723          elements,
7724          middlewareData
7725        } = state;
7726        const {
7727          element,
7728          padding = 0
7729        } = evaluate(options, state) || {};
7730        if (element == null) {
7731          return {};
7732        }
7733        const paddingObject = getPaddingObject(padding);
7734        const coords = {
7735          x,
7736          y
7737        };
7738        const axis = getAlignmentAxis(placement);
7739        const length = getAxisLength(axis);
7740        const arrowDimensions = await platform3.getDimensions(element);
7741        const isYAxis = axis === "y";
7742        const minProp = isYAxis ? "top" : "left";
7743        const maxProp = isYAxis ? "bottom" : "right";
7744        const clientProp = isYAxis ? "clientHeight" : "clientWidth";
7745        const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
7746        const startDiff = coords[axis] - rects.reference[axis];
7747        const clientSize = elements.floating[clientProp] || rects.floating[length];
7748        const centerToReference = endDiff / 2 - startDiff / 2;
7749        const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
7750        const minPadding = Math.min(paddingObject[minProp], largestPossiblePadding);
7751        const maxPadding = Math.min(paddingObject[maxProp], largestPossiblePadding);
7752        const min2 = minPadding;
7753        const max2 = clientSize - arrowDimensions[length] - maxPadding;
7754        const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
7755        const offset4 = clamp(min2, center, max2);
7756        const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset4 && rects.reference[length] / 2 - (center < min2 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
7757        const alignmentOffset = shouldAddOffset ? center < min2 ? center - min2 : center - max2 : 0;
7758        return {
7759          [axis]: coords[axis] + alignmentOffset,
7760          data: {
7761            [axis]: offset4,
7762            centerOffset: center - offset4 - alignmentOffset,
7763            ...shouldAddOffset && {
7764              alignmentOffset
7765            }
7766          },
7767          reset: shouldAddOffset
7768        };
7769      }
7770    });
7771    var arrow4 = (options, deps) => {
7772      const {
7773        name,
7774        fn
7775      } = baseArrow(options);
7776      return {
7777        name,
7778        fn,
7779        options: [options, deps]
7780      };
7781    };
7782  
7783    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/hideMiddleware.mjs
7784    var hide4 = {
7785      name: "hide",
7786      async fn(state) {
7787        const {
7788          width,
7789          height,
7790          x,
7791          y
7792        } = state.rects.reference;
7793        const anchorHidden2 = width === 0 && height === 0 && x === 0 && y === 0;
7794        const overflow = await state.platform.detectOverflow(state, {
7795          elementContext: "reference"
7796        });
7797        const referenceHidden = overflow.top - height >= 0 || overflow.right - width >= 0 || overflow.bottom - height >= 0 || overflow.left - width >= 0;
7798        return {
7799          data: {
7800            referenceHidden: referenceHidden || anchorHidden2
7801          }
7802        };
7803      }
7804    };
7805  
7806    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/adaptiveOriginConstants.mjs
7807    var DEFAULT_SIDES = {
7808      sideX: "left",
7809      sideY: "top"
7810    };
7811  
7812    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonPositionerCssVars.mjs
7813    var availableWidth = "--available-width";
7814    var availableHeight = "--available-height";
7815    var anchorWidth = "--anchor-width";
7816    var anchorHeight = "--anchor-height";
7817    var transformOrigin = "--transform-origin";
7818    var positionerWidth = "--positioner-width";
7819    var positionerHeight = "--positioner-height";
7820  
7821    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/useAnchorPositioning.mjs
7822    var AVAILABLE_WIDTH_VAR = availableWidth;
7823    var AVAILABLE_HEIGHT_VAR = availableHeight;
7824    function getLogicalSide(sideParam, renderedSide, isRtl) {
7825      const isLogicalSideParam = sideParam === "inline-start" || sideParam === "inline-end";
7826      const logicalRight = isRtl ? "inline-start" : "inline-end";
7827      const logicalLeft = isRtl ? "inline-end" : "inline-start";
7828      return {
7829        top: "top",
7830        right: isLogicalSideParam ? logicalRight : "right",
7831        bottom: "bottom",
7832        left: isLogicalSideParam ? logicalLeft : "left"
7833      }[renderedSide];
7834    }
7835    function getOffsetData(state, sideParam, isRtl) {
7836      const {
7837        rects,
7838        placement
7839      } = state;
7840      const data = {
7841        side: getLogicalSide(sideParam, getSide(placement), isRtl),
7842        align: getAlignment(placement) || "center",
7843        anchor: {
7844          width: rects.reference.width,
7845          height: rects.reference.height
7846        },
7847        positioner: {
7848          width: rects.floating.width,
7849          height: rects.floating.height
7850        }
7851      };
7852      return data;
7853    }
7854    function useAnchorPositioning(params) {
7855      return useAnchorPositioningWithHook(params, useBaseUIFloating);
7856    }
7857    function useAnchorPositioningWithHook(params, useFloatingHook) {
7858      const {
7859        // Public parameters
7860        anchor,
7861        positionMethod = "absolute",
7862        side: sideParam = "bottom",
7863        sideOffset = 0,
7864        align = "center",
7865        alignOffset = 0,
7866        collisionBoundary,
7867        collisionPadding: collisionPaddingParam = 5,
7868        sticky = false,
7869        arrowPadding = 5,
7870        disableAnchorTracking = false,
7871        inline: inlineMiddleware,
7872        // Private parameters
7873        keepMounted = false,
7874        floatingRootContext,
7875        mounted,
7876        collisionAvoidance,
7877        shift: shift4,
7878        nodeId,
7879        adaptiveOrigin: adaptiveOrigin2,
7880        lazyFlip = false,
7881        externalTree
7882      } = params;
7883      const collisionAvoidanceSide = collisionAvoidance.side || "flip";
7884      const collisionAvoidanceAlign = collisionAvoidance.align || "flip";
7885      const collisionAvoidanceFallbackAxisSide = collisionAvoidance.fallbackAxisSide || "end";
7886      const shiftCrossAxis = shift4?.crossAxis ?? false;
7887      const shiftRootBoundary = shift4?.rootBoundary;
7888      const anchorFn = typeof anchor === "function" ? anchor : void 0;
7889      const anchorFnCallback = useStableCallback(anchorFn);
7890      const anchorDep = anchorFn ? anchorFnCallback : anchor;
7891      const anchorValueRef = useValueAsRef(anchor);
7892      const mountedRef = useValueAsRef(mounted);
7893      const direction = useDirection();
7894      const isRtl = direction === "rtl";
7895      const [mountPlacement, setMountPlacement] = React33.useState(null);
7896      if (!mounted && mountPlacement !== null) {
7897        setMountPlacement(null);
7898      }
7899      const lockAlign = lazyFlip === "placement";
7900      const mountSide = mountPlacement ? getSide(mountPlacement) : null;
7901      const mountAlign = mountPlacement && lockAlign ? getAlignment(mountPlacement) || "center" : null;
7902      const side = mountSide || {
7903        top: "top",
7904        right: "right",
7905        bottom: "bottom",
7906        left: "left",
7907        "inline-end": isRtl ? "left" : "right",
7908        "inline-start": isRtl ? "right" : "left"
7909      }[sideParam];
7910      const placementAlign = mountAlign || align;
7911      const placement = placementAlign === "center" ? side : `$side}-$placementAlign}`;
7912      let collisionPadding = collisionPaddingParam;
7913      if (typeof collisionPadding === "number") {
7914        collisionPadding = {
7915          top: collisionPadding,
7916          right: collisionPadding,
7917          bottom: collisionPadding,
7918          left: collisionPadding
7919        };
7920      } else if (collisionPadding) {
7921        collisionPadding = {
7922          top: collisionPadding.top || 0,
7923          right: collisionPadding.right || 0,
7924          bottom: collisionPadding.bottom || 0,
7925          left: collisionPadding.left || 0
7926        };
7927      }
7928      const bias = 1;
7929      const biasTop = sideParam === "bottom" ? bias : 0;
7930      const biasBottom = sideParam === "top" ? bias : 0;
7931      const biasLeft = sideParam === "right" ? bias : 0;
7932      const biasRight = sideParam === "left" ? bias : 0;
7933      const commonCollisionProps = {
7934        boundary: collisionBoundary === "clipping-ancestors" ? "clippingAncestors" : collisionBoundary,
7935        padding: collisionPadding
7936      };
7937      const arrowRef = React33.useRef(null);
7938      const sideOffsetRef = useValueAsRef(sideOffset);
7939      const alignOffsetRef = useValueAsRef(alignOffset);
7940      const sideOffsetDep = typeof sideOffset !== "function" ? sideOffset : 0;
7941      const alignOffsetDep = typeof alignOffset !== "function" ? alignOffset : 0;
7942      const middleware = [];
7943      if (inlineMiddleware) {
7944        middleware.push(inlineMiddleware);
7945      }
7946      middleware.push(offset3((state) => {
7947        const data = getOffsetData(state, sideParam, isRtl);
7948        const sideAxis = typeof sideOffsetRef.current === "function" ? sideOffsetRef.current(data) : sideOffsetRef.current;
7949        const alignAxis = typeof alignOffsetRef.current === "function" ? alignOffsetRef.current(data) : alignOffsetRef.current;
7950        return {
7951          mainAxis: sideAxis,
7952          crossAxis: alignAxis,
7953          alignmentAxis: alignAxis
7954        };
7955      }, [sideOffsetDep, alignOffsetDep, isRtl, sideParam]));
7956      const shiftDisabled = collisionAvoidanceAlign === "none" && collisionAvoidanceSide !== "shift";
7957      const crossAxisShiftEnabled = !shiftDisabled && (sticky || shiftCrossAxis || collisionAvoidanceSide === "shift");
7958      const flipMiddleware = collisionAvoidanceSide === "none" ? null : flip3({
7959        ...commonCollisionProps,
7960        // Ensure the popup flips if it's been limited by its --available-height and it resizes.
7961        // Since the size() padding is smaller than the flip() padding, flip() will take precedence.
7962        padding: {
7963          top: collisionPadding.top + bias + biasTop,
7964          right: collisionPadding.right + bias + biasRight,
7965          bottom: collisionPadding.bottom + bias + biasBottom,
7966          left: collisionPadding.left + bias + biasLeft
7967        },
7968        mainAxis: !shiftCrossAxis && collisionAvoidanceSide === "flip",
7969        crossAxis: collisionAvoidanceAlign === "flip" ? "alignment" : false,
7970        fallbackAxisSideDirection: collisionAvoidanceFallbackAxisSide
7971      });
7972      const shiftMiddleware = shiftDisabled ? null : shift3({
7973        ...commonCollisionProps,
7974        // Use the Layout Viewport to avoid shifting around when pinch-zooming.
7975        rootBoundary: shiftRootBoundary,
7976        mainAxis: collisionAvoidanceAlign !== "none",
7977        crossAxis: crossAxisShiftEnabled,
7978        limiter: sticky || shiftCrossAxis ? void 0 : limitShift3((limitData) => {
7979          if (!arrowRef.current) {
7980            return {};
7981          }
7982          const {
7983            width,
7984            height
7985          } = arrowRef.current.getBoundingClientRect();
7986          const sideAxis = getSideAxis(getSide(limitData.placement));
7987          const arrowSize = sideAxis === "y" ? width : height;
7988          const offsetAmount = sideAxis === "y" ? collisionPadding.left + collisionPadding.right : collisionPadding.top + collisionPadding.bottom;
7989          return {
7990            offset: arrowSize / 2 + offsetAmount / 2
7991          };
7992        })
7993      }, [commonCollisionProps, sticky, shiftCrossAxis, shiftRootBoundary, collisionPadding, collisionAvoidanceAlign]);
7994      if (collisionAvoidanceSide === "shift" || collisionAvoidanceAlign === "shift" || placementAlign === "center") {
7995        middleware.push(shiftMiddleware, flipMiddleware);
7996      } else {
7997        middleware.push(flipMiddleware, shiftMiddleware);
7998      }
7999      middleware.push(size3({
8000        ...commonCollisionProps,
8001        apply({
8002          elements: {
8003            floating
8004          },
8005          availableWidth: availableWidth2,
8006          availableHeight: availableHeight2,
8007          rects
8008        }) {
8009          if (!mountedRef.current) {
8010            return;
8011          }
8012          const floatingStyle = floating.style;
8013          floatingStyle.setProperty(AVAILABLE_WIDTH_VAR, `$availableWidth2}px`);
8014          floatingStyle.setProperty(AVAILABLE_HEIGHT_VAR, `$availableHeight2}px`);
8015          const dpr = getWindow(floating).devicePixelRatio || 1;
8016          const {
8017            x: x2,
8018            y: y2,
8019            width,
8020            height
8021          } = rects.reference;
8022          const anchorWidth2 = (Math.round((x2 + width) * dpr) - Math.round(x2 * dpr)) / dpr;
8023          const anchorHeight2 = (Math.round((y2 + height) * dpr) - Math.round(y2 * dpr)) / dpr;
8024          floatingStyle.setProperty(anchorWidth, `$anchorWidth2}px`);
8025          floatingStyle.setProperty(anchorHeight, `$anchorHeight2}px`);
8026        }
8027      }), arrow4((state) => ({
8028        // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,
8029        // we'll create a fake element.
8030        element: arrowRef.current || ownerDocument(state.elements.floating).createElement("div"),
8031        // No padding for the fake arrow: it would displace aligned popups on narrow anchors.
8032        padding: arrowRef.current ? arrowPadding : 0
8033      }), [arrowPadding]), {
8034        name: "transformOrigin",
8035        fn(state) {
8036          const {
8037            elements: {
8038              floating
8039            },
8040            middlewareData: middlewareData2,
8041            placement: renderedPlacement2,
8042            platform: platform3,
8043            rects,
8044            y: y2
8045          } = state;
8046          const renderedSide2 = getSide(renderedPlacement2);
8047          const renderedAlign2 = getAlignment(renderedPlacement2);
8048          const isVertical = getSideAxis(renderedSide2) === "y";
8049          const arrowEl = arrowRef.current;
8050          const sideOffsetValue = typeof sideOffset === "function" ? sideOffset(getOffsetData(state, sideParam, isRtl)) : sideOffset;
8051          let crossOrigin;
8052          if (!arrowEl && renderedAlign2 && Math.abs(isVertical ? middlewareData2.shift?.x || 0 : middlewareData2.shift?.y || 0) <= 1) {
8053            crossOrigin = renderedAlign2 === "start" === (isVertical && platform3.isRTL?.(floating) === true) ? "100%" : "0%";
8054          } else {
8055            const arrowOffset = isVertical ? middlewareData2.arrow?.x || 0 : middlewareData2.arrow?.y || 0;
8056            const arrowSize = isVertical ? arrowEl?.clientWidth || 0 : arrowEl?.clientHeight || 0;
8057            crossOrigin = `$arrowOffset + arrowSize / 2}px`;
8058          }
8059          let sideOrigin = renderedSide2 === "top" || renderedSide2 === "left" ? `calc(100% + $sideOffsetValue}px)` : `${-sideOffsetValue}px`;
8060          if (crossAxisShiftEnabled && isVertical && Math.abs(middlewareData2.shift?.y || 0) > sideOffsetValue) {
8061            sideOrigin = `$rects.reference.y + rects.reference.height / 2 - y2}px`;
8062          }
8063          floating.style.setProperty(transformOrigin, isVertical ? `$crossOrigin} $sideOrigin}` : `$sideOrigin} $crossOrigin}`);
8064          return {};
8065        }
8066      }, hide4, adaptiveOrigin2);
8067      useIsoLayoutEffect(() => {
8068        if (!mounted && floatingRootContext) {
8069          floatingRootContext.update({
8070            referenceElement: null,
8071            floatingElement: null,
8072            domReferenceElement: null,
8073            positionReference: null
8074          });
8075        }
8076      }, [mounted, floatingRootContext]);
8077      const autoUpdateOptions = React33.useMemo(() => ({
8078        ancestorScroll: !disableAnchorTracking,
8079        elementResize: !disableAnchorTracking && typeof ResizeObserver !== "undefined",
8080        layoutShift: !disableAnchorTracking && typeof IntersectionObserver !== "undefined"
8081      }), [disableAnchorTracking]);
8082      const {
8083        refs,
8084        elements,
8085        x,
8086        y,
8087        middlewareData,
8088        update: update2,
8089        placement: renderedPlacement,
8090        context,
8091        isPositioned,
8092        floatingStyles: originalFloatingStyles
8093      } = useFloatingHook({
8094        rootContext: floatingRootContext,
8095        open: keepMounted ? mounted : void 0,
8096        placement,
8097        middleware,
8098        strategy: positionMethod,
8099        whileElementsMounted: keepMounted ? void 0 : (...args) => autoUpdate(...args, autoUpdateOptions),
8100        nodeId,
8101        externalTree
8102      });
8103      const {
8104        sideX,
8105        sideY
8106      } = middlewareData.adaptiveOrigin || DEFAULT_SIDES;
8107      const resolvedPosition = isPositioned ? positionMethod : "fixed";
8108      const floatingStyles = React33.useMemo(() => {
8109        let base;
8110        if (!isPositioned) {
8111          base = {
8112            position: resolvedPosition,
8113            top: 0,
8114            left: 0
8115          };
8116        } else if (adaptiveOrigin2) {
8117          base = {
8118            position: resolvedPosition,
8119            [sideX]: x,
8120            [sideY]: y
8121          };
8122        } else {
8123          base = {
8124            ...originalFloatingStyles,
8125            position: resolvedPosition
8126          };
8127        }
8128        base[AVAILABLE_WIDTH_VAR] = "100vw";
8129        base[AVAILABLE_HEIGHT_VAR] = "100vh";
8130        if (!isPositioned) {
8131          base.opacity = 0;
8132        }
8133        return base;
8134      }, [adaptiveOrigin2, resolvedPosition, sideX, x, sideY, y, originalFloatingStyles, isPositioned]);
8135      const registeredPositionReferenceRef = React33.useRef(null);
8136      useIsoLayoutEffect(() => {
8137        if (!mounted) {
8138          return;
8139        }
8140        const anchorValue = anchorValueRef.current;
8141        const resolvedAnchor = typeof anchorValue === "function" ? anchorValue() : anchorValue;
8142        const unwrappedElement = (isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor) || null;
8143        const finalAnchor = unwrappedElement || null;
8144        if (finalAnchor !== registeredPositionReferenceRef.current) {
8145          refs.setPositionReference(finalAnchor);
8146          registeredPositionReferenceRef.current = finalAnchor;
8147        }
8148      }, [mounted, refs, anchorDep, anchorValueRef]);
8149      React33.useEffect(() => {
8150        if (!mounted) {
8151          return;
8152        }
8153        const anchorValue = anchorValueRef.current;
8154        if (typeof anchorValue === "function") {
8155          return;
8156        }
8157        if (isRef(anchorValue) && anchorValue.current !== registeredPositionReferenceRef.current) {
8158          refs.setPositionReference(anchorValue.current);
8159          registeredPositionReferenceRef.current = anchorValue.current;
8160        }
8161      }, [mounted, refs, anchorDep, anchorValueRef]);
8162      React33.useEffect(() => {
8163        if (keepMounted && mounted && elements.reference && elements.floating) {
8164          return autoUpdate(elements.reference, elements.floating, update2, autoUpdateOptions);
8165        }
8166        return void 0;
8167      }, [keepMounted, mounted, elements, update2, autoUpdateOptions]);
8168      const renderedSide = getSide(renderedPlacement);
8169      const logicalRenderedSide = getLogicalSide(sideParam, renderedSide, isRtl);
8170      const renderedAlign = getAlignment(renderedPlacement) || "center";
8171      const anchorHidden2 = Boolean(middlewareData.hide?.referenceHidden);
8172      useIsoLayoutEffect(() => {
8173        if (lazyFlip && mounted && isPositioned && (renderedSide !== side || lockAlign && renderedAlign !== placementAlign)) {
8174          setMountPlacement(renderedPlacement);
8175        }
8176      }, [lazyFlip, lockAlign, mounted, isPositioned, renderedPlacement, renderedSide, renderedAlign, side, placementAlign]);
8177      const arrowStyles = React33.useMemo(() => ({
8178        position: "absolute",
8179        top: middlewareData.arrow?.y,
8180        left: middlewareData.arrow?.x
8181      }), [middlewareData.arrow]);
8182      const arrowUncentered = middlewareData.arrow?.centerOffset !== 0;
8183      return React33.useMemo(() => ({
8184        positionerStyles: floatingStyles,
8185        arrowStyles,
8186        arrowRef,
8187        arrowUncentered,
8188        side: logicalRenderedSide,
8189        align: renderedAlign,
8190        physicalSide: renderedSide,
8191        anchorHidden: anchorHidden2,
8192        refs,
8193        context,
8194        isPositioned,
8195        update: update2
8196      }), [floatingStyles, arrowStyles, arrowRef, arrowUncentered, logicalRenderedSide, renderedAlign, renderedSide, anchorHidden2, refs, context, isPositioned, update2]);
8197    }
8198    function isRef(param) {
8199      return param != null && "current" in param;
8200    }
8201  
8202    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/internals/getDisabledMountTransitionStyles.mjs
8203    function getDisabledMountTransitionStyles(transitionStatus) {
8204      return transitionStatus === "starting" ? DISABLED_TRANSITIONS_STYLE : EMPTY_OBJECT;
8205    }
8206  
8207    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePositioner.mjs
8208    function usePositioner(componentProps, state, {
8209      styles,
8210      transitionStatus,
8211      props,
8212      refs,
8213      hidden,
8214      inert = false
8215    }) {
8216      const style = {
8217        ...styles
8218      };
8219      if (inert) {
8220        style.pointerEvents = "none";
8221      }
8222      return useRenderElement("div", componentProps, {
8223        state,
8224        ref: refs,
8225        props: [{
8226          role: "presentation",
8227          hidden,
8228          style
8229        }, getDisabledMountTransitionStyles(transitionStatus), props],
8230        stateAttributesMapping: popupStateMapping
8231      });
8232    }
8233  
8234    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/button/Button.mjs
8235    var React34 = __toESM(require_react(), 1);
8236    var Button = /* @__PURE__ */ React34.forwardRef(function Button2(componentProps, forwardedRef) {
8237      const {
8238        render,
8239        className,
8240        disabled: disabled2 = false,
8241        focusableWhenDisabled = false,
8242        nativeButton = true,
8243        style,
8244        ...elementProps
8245      } = componentProps;
8246      const {
8247        getButtonProps,
8248        buttonRef
8249      } = useButton({
8250        disabled: disabled2,
8251        focusableWhenDisabled,
8252        native: nativeButton
8253      });
8254      const state = {
8255        disabled: disabled2
8256      };
8257      return useRenderElement("button", componentProps, {
8258        state,
8259        ref: [forwardedRef, buttonRef],
8260        props: [elementProps, getButtonProps]
8261      });
8262    });
8263    if (true) Button.displayName = "Button";
8264  
8265    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupViewport.mjs
8266    var React38 = __toESM(require_react(), 1);
8267    var ReactDOM6 = __toESM(require_react_dom(), 1);
8268  
8269    // node_modules/.store/@base-ui/utils@0.5.0--7My7Lubseca8je9LSEweA/node_modules/@base-ui/utils/usePreviousValue.mjs
8270    var React35 = __toESM(require_react(), 1);
8271    function usePreviousValue(value) {
8272      const [state, setState] = React35.useState({
8273        current: value,
8274        previous: null
8275      });
8276      if (!Object.is(value, state.current)) {
8277        setState({
8278          current: value,
8279          previous: state.current
8280        });
8281      }
8282      return state.previous;
8283    }
8284  
8285    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupAutoResize.mjs
8286    var React36 = __toESM(require_react(), 1);
8287  
8288    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/getCssDimensions.mjs
8289    function getCssDimensions2(element) {
8290      const css = getComputedStyle2(element);
8291      let width = parseFloat(css.width) || 0;
8292      let height = parseFloat(css.height) || 0;
8293      const hasOffset = isHTMLElement(element);
8294      const offsetWidth = hasOffset ? element.offsetWidth : width;
8295      const offsetHeight = hasOffset ? element.offsetHeight : height;
8296      const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
8297      if (shouldFallback) {
8298        width = offsetWidth;
8299        height = offsetHeight;
8300      }
8301      return {
8302        width,
8303        height
8304      };
8305    }
8306  
8307    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonPopupCssVars.mjs
8308    var popupWidth = "--popup-width";
8309    var popupHeight = "--popup-height";
8310  
8311    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupAutoResize.mjs
8312    function usePopupAutoResize(parameters) {
8313      const {
8314        popupElement,
8315        positionerElement,
8316        content,
8317        mounted,
8318        onMeasureLayout: onMeasureLayoutParam,
8319        onMeasureLayoutComplete: onMeasureLayoutCompleteParam,
8320        side,
8321        direction
8322      } = parameters;
8323      const runOnceAnimationsFinish = useAnimationsFinished(popupElement, true);
8324      const animationFrame = useAnimationFrame();
8325      const committedDimensionsRef = React36.useRef(null);
8326      const onMeasureLayout = useStableCallback(onMeasureLayoutParam);
8327      const onMeasureLayoutComplete = useStableCallback(onMeasureLayoutCompleteParam);
8328      const anchoringStyles = React36.useMemo(() => getPopupAnchoringStyles(side, direction), [side, direction]);
8329      useIsoLayoutEffect(() => {
8330        if (!mounted) {
8331          committedDimensionsRef.current = null;
8332          return void 0;
8333        }
8334        if (!popupElement || !positionerElement) {
8335          return void 0;
8336        }
8337        const restoreAnchoringStyles = applyElementStyles(popupElement, anchoringStyles);
8338        setPopupCssSize(popupElement, "auto");
8339        const restorePopupPosition = overrideElementStyle(popupElement, "position", "static");
8340        const restorePopupTransform = overrideElementStyle(popupElement, "transform", "none");
8341        const restorePopupScale = overrideElementStyle(popupElement, "scale", "1");
8342        const restorePositionerAvailableSize = applyElementStyles(positionerElement, {
8343          [availableWidth]: "max-content",
8344          [availableHeight]: "max-content"
8345        });
8346        function restoreMeasurementOverrides() {
8347          restorePopupPosition();
8348          restorePopupTransform();
8349          restorePositionerAvailableSize();
8350          restorePopupScale();
8351        }
8352        onMeasureLayout?.();
8353        if (committedDimensionsRef.current === null) {
8354          setPositionerCssSize(positionerElement, "max-content");
8355          const dimensions = getCssDimensions2(popupElement);
8356          committedDimensionsRef.current = dimensions;
8357          setPositionerCssSize(positionerElement, dimensions);
8358          restoreMeasurementOverrides();
8359          onMeasureLayoutComplete?.(null, dimensions);
8360          return restoreAnchoringStyles;
8361        }
8362        setPositionerCssSize(positionerElement, "max-content");
8363        const previousDimensions = committedDimensionsRef.current;
8364        const newDimensions = getCssDimensions2(popupElement);
8365        committedDimensionsRef.current = newDimensions;
8366        setPopupCssSize(popupElement, previousDimensions);
8367        restoreMeasurementOverrides();
8368        onMeasureLayoutComplete?.(previousDimensions, newDimensions);
8369        setPositionerCssSize(positionerElement, newDimensions);
8370        const abortController = new AbortController();
8371        animationFrame.request(() => {
8372          setPopupCssSize(popupElement, newDimensions);
8373          runOnceAnimationsFinish(() => {
8374            popupElement.style.setProperty(popupWidth, "auto");
8375            popupElement.style.setProperty(popupHeight, "auto");
8376          }, abortController.signal);
8377        });
8378        return () => {
8379          abortController.abort();
8380          animationFrame.cancel();
8381          restoreAnchoringStyles();
8382        };
8383      }, [content, popupElement, positionerElement, runOnceAnimationsFinish, animationFrame, mounted, onMeasureLayout, onMeasureLayoutComplete, anchoringStyles]);
8384    }
8385    function getPopupAnchoringStyles(side, direction) {
8386      const isPhysicalTop = side === "top";
8387      const isPhysicalLeft = side === "left" || side === (direction === "rtl" ? "inline-end" : "inline-start");
8388      if (!isPhysicalTop && !isPhysicalLeft) {
8389        return EMPTY_OBJECT;
8390      }
8391      return {
8392        position: "absolute",
8393        [isPhysicalTop ? "bottom" : "top"]: "0",
8394        [isPhysicalLeft ? "right" : "left"]: "0"
8395      };
8396    }
8397    function overrideElementStyle(element, property, value) {
8398      const originalValue = element.style.getPropertyValue(property);
8399      element.style.setProperty(property, value);
8400      return () => {
8401        element.style.setProperty(property, originalValue);
8402      };
8403    }
8404    function applyElementStyles(element, styles) {
8405      const restorers = [];
8406      for (const [key, value] of Object.entries(styles)) {
8407        restorers.push(overrideElementStyle(element, key, value));
8408      }
8409      return restorers.length ? () => {
8410        restorers.forEach((restore) => restore());
8411      } : NOOP;
8412    }
8413    function setPopupCssSize(popupElement, size4) {
8414      const width = size4 === "auto" ? "auto" : `$size4.width}px`;
8415      const height = size4 === "auto" ? "auto" : `$size4.height}px`;
8416      popupElement.style.setProperty(popupWidth, width);
8417      popupElement.style.setProperty(popupHeight, height);
8418    }
8419    function setPositionerCssSize(positionerElement, size4) {
8420      const width = size4 === "max-content" ? "max-content" : `$size4.width}px`;
8421      const height = size4 === "max-content" ? "max-content" : `$size4.height}px`;
8422      positionerElement.style.setProperty(positionerWidth, width);
8423      positionerElement.style.setProperty(positionerHeight, height);
8424    }
8425  
8426    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/direction-provider/DirectionProvider.mjs
8427    var React37 = __toESM(require_react(), 1);
8428    var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
8429    var DirectionProvider = function DirectionProvider2(props) {
8430      const {
8431        direction = "ltr"
8432      } = props;
8433      const contextValue = React37.useMemo(() => ({
8434        direction
8435      }), [direction]);
8436      return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DirectionContext.Provider, {
8437        value: contextValue,
8438        children: props.children
8439      });
8440    };
8441    if (true) DirectionProvider.displayName = "DirectionProvider";
8442  
8443    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/adaptiveOriginMiddleware.mjs
8444    var adaptiveOrigin = {
8445      name: "adaptiveOrigin",
8446      async fn(state) {
8447        const {
8448          x: rawX,
8449          y: rawY,
8450          rects: {
8451            floating: floatRect
8452          },
8453          elements: {
8454            floating
8455          },
8456          platform: platform3,
8457          strategy,
8458          placement
8459        } = state;
8460        const win = getWindow(floating);
8461        const styles = win.getComputedStyle(floating);
8462        const hasTransition = styles.transitionDuration !== "0s" && styles.transitionDuration !== "";
8463        if (!hasTransition) {
8464          return {
8465            x: rawX,
8466            y: rawY,
8467            data: DEFAULT_SIDES
8468          };
8469        }
8470        const offsetParent = await platform3.getOffsetParent?.(floating);
8471        let offsetDimensions = {
8472          width: 0,
8473          height: 0
8474        };
8475        if (strategy === "fixed" && win?.visualViewport) {
8476          offsetDimensions = {
8477            width: win.visualViewport.width,
8478            height: win.visualViewport.height
8479          };
8480        } else if (offsetParent === win) {
8481          const doc = ownerDocument(floating);
8482          offsetDimensions = {
8483            width: doc.documentElement.clientWidth,
8484            height: doc.documentElement.clientHeight
8485          };
8486        } else if (await platform3.isElement?.(offsetParent)) {
8487          offsetDimensions = await platform3.getDimensions(offsetParent);
8488        }
8489        const currentSide = getSide(placement);
8490        let x = rawX;
8491        let y = rawY;
8492        if (currentSide === "left") {
8493          x = offsetDimensions.width - (rawX + floatRect.width);
8494        }
8495        if (currentSide === "top") {
8496          y = offsetDimensions.height - (rawY + floatRect.height);
8497        }
8498        const sideX = currentSide === "left" ? "right" : DEFAULT_SIDES.sideX;
8499        const sideY = currentSide === "top" ? "bottom" : DEFAULT_SIDES.sideY;
8500        return {
8501          x,
8502          y,
8503          data: {
8504            sideX,
8505            sideY
8506          }
8507        };
8508      }
8509    };
8510  
8511    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/CommonViewportDataAttributes.mjs
8512    var activationDirection = "data-activation-direction";
8513  
8514    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/usePopupViewport.mjs
8515    var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
8516    var popupViewportStateMapping = {
8517      activationDirection: (value) => value ? {
8518        [activationDirection]: value
8519      } : null
8520    };
8521    function usePopupViewport(parameters) {
8522      const {
8523        store: store2,
8524        side,
8525        children
8526      } = parameters;
8527      const direction = useDirection();
8528      const activeTrigger = store2.useState("activeTriggerElement");
8529      const activeTriggerId = store2.useState("activeTriggerId");
8530      const open2 = store2.useState("open");
8531      const payload = store2.useState("payload");
8532      const mounted = store2.useState("mounted");
8533      const popupElement = store2.useState("popupElement");
8534      const positionerElement = store2.useState("positionerElement");
8535      const previousActiveTrigger = usePreviousValue(open2 ? activeTrigger : null);
8536      const currentContentKey = usePopupContentKey(activeTriggerId, payload);
8537      const capturedNodeRef = React38.useRef(null);
8538      const [previousContentNode, setPreviousContentNode] = React38.useState(null);
8539      const [newTriggerOffset, setNewTriggerOffset] = React38.useState(null);
8540      const currentContainerRef = React38.useRef(null);
8541      const previousContainerRef = React38.useRef(null);
8542      const onAnimationsFinished = useAnimationsFinished(currentContainerRef, true);
8543      const cleanupFrame = useAnimationFrame();
8544      const cleanupControllerRef = React38.useRef(null);
8545      const [previousContentDimensions, setPreviousContentDimensions] = React38.useState(null);
8546      const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React38.useState(false);
8547      useIsoLayoutEffect(() => {
8548        store2.set("adaptiveOrigin", adaptiveOrigin);
8549        return () => {
8550          store2.set("adaptiveOrigin", void 0);
8551        };
8552      }, [store2]);
8553      const handleMeasureLayout = useStableCallback(() => {
8554        currentContainerRef.current?.style.setProperty("animation", "none");
8555        currentContainerRef.current?.style.setProperty("transition", "none");
8556        previousContainerRef.current?.style.setProperty("display", "none");
8557      });
8558      const handleMeasureLayoutComplete = useStableCallback((previousDimensions) => {
8559        currentContainerRef.current?.style.removeProperty("animation");
8560        currentContainerRef.current?.style.removeProperty("transition");
8561        previousContainerRef.current?.style.removeProperty("display");
8562        if (previousDimensions) {
8563          setPreviousContentDimensions(previousDimensions);
8564        }
8565      });
8566      const armViewportCleanup = useStableCallback(() => {
8567        cleanupControllerRef.current?.abort();
8568        const controller = new AbortController();
8569        cleanupControllerRef.current = controller;
8570        onAnimationsFinished(() => {
8571          setPreviousContentNode(null);
8572          setPreviousContentDimensions(null);
8573          capturedNodeRef.current = null;
8574        }, controller.signal);
8575      });
8576      const lastHandledTriggerRef = React38.useRef(null);
8577      useIsoLayoutEffect(() => {
8578        if (!open2 || !mounted) {
8579          lastHandledTriggerRef.current = null;
8580        }
8581      }, [open2, mounted]);
8582      useIsoLayoutEffect(() => {
8583        if (open2 && activeTrigger && previousActiveTrigger && activeTrigger !== previousActiveTrigger && lastHandledTriggerRef.current !== activeTrigger && capturedNodeRef.current) {
8584          setPreviousContentNode(capturedNodeRef.current);
8585          setShowStartingStyleAttribute(true);
8586          const offset4 = calculateRelativePosition(previousActiveTrigger, activeTrigger);
8587          setNewTriggerOffset(offset4);
8588          lastHandledTriggerRef.current = activeTrigger;
8589        }
8590      }, [open2, activeTrigger, previousActiveTrigger]);
8591      useIsoLayoutEffect(() => {
8592        if (previousContentNode == null) {
8593          return;
8594        }
8595        cleanupControllerRef.current?.abort();
8596        setShowStartingStyleAttribute(true);
8597        cleanupFrame.request(() => {
8598          ReactDOM6.flushSync(() => {
8599            setShowStartingStyleAttribute(false);
8600          });
8601          armViewportCleanup();
8602        });
8603      }, [currentContentKey, previousContentNode, armViewportCleanup, cleanupFrame]);
8604      useIsoLayoutEffect(() => {
8605        const source = currentContainerRef.current;
8606        if (!source) {
8607          return;
8608        }
8609        const wrapper = ownerDocument(source).createElement("div");
8610        for (const child of Array.from(source.childNodes)) {
8611          wrapper.appendChild(child.cloneNode(true));
8612        }
8613        capturedNodeRef.current = wrapper;
8614      });
8615      const isTransitioning = previousContentNode != null;
8616      let childrenToRender;
8617      if (!isTransitioning) {
8618        childrenToRender = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
8619          "data-current": true,
8620          ref: currentContainerRef,
8621          children
8622        }, currentContentKey);
8623      } else {
8624        childrenToRender = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(React38.Fragment, {
8625          children: [/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
8626            "data-previous": true,
8627            inert: inertValue(true),
8628            ref: previousContainerRef,
8629            style: {
8630              ...previousContentDimensions ? {
8631                [popupWidth]: `$previousContentDimensions.width}px`,
8632                [popupHeight]: `$previousContentDimensions.height}px`
8633              } : null,
8634              position: "absolute"
8635            },
8636            "data-ending-style": showStartingStyleAttribute ? void 0 : ""
8637          }, "previous"), /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
8638            "data-current": true,
8639            ref: currentContainerRef,
8640            "data-starting-style": showStartingStyleAttribute ? "" : void 0,
8641            children
8642          }, currentContentKey)]
8643        });
8644      }
8645      useIsoLayoutEffect(() => {
8646        const container = previousContainerRef.current;
8647        if (!container || !previousContentNode) {
8648          return;
8649        }
8650        container.replaceChildren(...Array.from(previousContentNode.childNodes));
8651      }, [previousContentNode]);
8652      usePopupAutoResize({
8653        popupElement,
8654        positionerElement,
8655        mounted,
8656        content: payload,
8657        onMeasureLayout: handleMeasureLayout,
8658        onMeasureLayoutComplete: handleMeasureLayoutComplete,
8659        side,
8660        direction
8661      });
8662      const state = {
8663        activationDirection: getActivationDirection(newTriggerOffset),
8664        transitioning: isTransitioning
8665      };
8666      return {
8667        children: childrenToRender,
8668        state
8669      };
8670    }
8671    function getActivationDirection(offset4) {
8672      if (!offset4) {
8673        return void 0;
8674      }
8675      return `$getValueWithTolerance(offset4.horizontal, 5, "right", "left")} $getValueWithTolerance(offset4.vertical, 5, "down", "up")}`;
8676    }
8677    function getValueWithTolerance(value, tolerance, positiveLabel, negativeLabel) {
8678      if (value > tolerance) {
8679        return positiveLabel;
8680      }
8681      if (value < -tolerance) {
8682        return negativeLabel;
8683      }
8684      return "";
8685    }
8686    function calculateRelativePosition(from, to) {
8687      const fromRect = from.getBoundingClientRect();
8688      const toRect = to.getBoundingClientRect();
8689      const fromCenter = {
8690        x: fromRect.left + fromRect.width / 2,
8691        y: fromRect.top + fromRect.height / 2
8692      };
8693      const toCenter = {
8694        x: toRect.left + toRect.width / 2,
8695        y: toRect.top + toRect.height / 2
8696      };
8697      return {
8698        horizontal: toCenter.x - fromCenter.x,
8699        vertical: toCenter.y - fromCenter.y
8700      };
8701    }
8702    function usePopupContentKey(activeTriggerId, payload) {
8703      const [contentKey, setContentKey] = React38.useState(0);
8704      const previousActiveTriggerIdRef = React38.useRef(activeTriggerId);
8705      const previousPayloadRef = React38.useRef(payload);
8706      const pendingPayloadUpdateRef = React38.useRef(false);
8707      useIsoLayoutEffect(() => {
8708        const previousActiveTriggerId = previousActiveTriggerIdRef.current;
8709        const previousPayload = previousPayloadRef.current;
8710        const triggerIdChanged = activeTriggerId !== previousActiveTriggerId;
8711        const payloadChanged = payload !== previousPayload;
8712        if (triggerIdChanged) {
8713          setContentKey((value) => value + 1);
8714          pendingPayloadUpdateRef.current = !payloadChanged;
8715        } else if (pendingPayloadUpdateRef.current && payloadChanged) {
8716          setContentKey((value) => value + 1);
8717          pendingPayloadUpdateRef.current = false;
8718        }
8719        previousActiveTriggerIdRef.current = activeTriggerId;
8720        previousPayloadRef.current = payload;
8721      }, [activeTriggerId, payload]);
8722      return `$activeTriggerId ?? "current"}-$contentKey}`;
8723    }
8724  
8725    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/utils/FloatingPortalLite.mjs
8726    var React39 = __toESM(require_react(), 1);
8727    var ReactDOM7 = __toESM(require_react_dom(), 1);
8728    var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
8729    var FloatingPortalLite = /* @__PURE__ */ React39.forwardRef(function FloatingPortalLite2(componentProps, forwardedRef) {
8730      const {
8731        children,
8732        container,
8733        className,
8734        render,
8735        style,
8736        ...elementProps
8737      } = componentProps;
8738      const {
8739        node: portalNode,
8740        subtree: portalSubtree
8741      } = useFloatingPortalNode({
8742        container,
8743        ref: forwardedRef,
8744        componentProps,
8745        elementProps
8746      });
8747      if (!portalSubtree && !portalNode) {
8748        return null;
8749      }
8750      return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(React39.Fragment, {
8751        children: [portalSubtree, portalNode && /* @__PURE__ */ ReactDOM7.createPortal(children, portalNode)]
8752      });
8753    });
8754    if (true) FloatingPortalLite.displayName = "FloatingPortalLite";
8755  
8756    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/index.parts.mjs
8757    var index_parts_exports = {};
8758    __export(index_parts_exports, {
8759      Arrow: () => TooltipArrow,
8760      Handle: () => TooltipHandle,
8761      Popup: () => TooltipPopup,
8762      Portal: () => TooltipPortal,
8763      Positioner: () => TooltipPositioner,
8764      Provider: () => TooltipProvider,
8765      Root: () => TooltipRoot,
8766      Trigger: () => TooltipTrigger,
8767      Viewport: () => TooltipViewport,
8768      createHandle: () => createTooltipHandle
8769    });
8770  
8771    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/root/TooltipRoot.mjs
8772    var React42 = __toESM(require_react(), 1);
8773  
8774    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/root/TooltipRootContext.mjs
8775    var React40 = __toESM(require_react(), 1);
8776    var TooltipRootContext = /* @__PURE__ */ React40.createContext(void 0);
8777    if (true) TooltipRootContext.displayName = "TooltipRootContext";
8778    function useTooltipRootContext(optional) {
8779      const context = React40.useContext(TooltipRootContext);
8780      if (context === void 0 && !optional) {
8781        throw new Error(true ? "Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>." : formatErrorMessage_default(72));
8782      }
8783      return context;
8784    }
8785  
8786    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/store/TooltipStore.mjs
8787    var React41 = __toESM(require_react(), 1);
8788    var selectors2 = {
8789      ...popupStoreSelectors,
8790      disabled: (state) => state.disabled,
8791      instantType: (state) => state.instantType,
8792      isInstantPhase: (state) => state.isInstantPhase,
8793      trackCursorAxis: (state) => state.trackCursorAxis,
8794      disableHoverablePopup: (state) => state.disableHoverablePopup,
8795      lastOpenChangeReason: (state) => state.openChangeReason,
8796      closeOnClick: (state) => state.closeOnClick,
8797      // Active and inactive trigger props are the same object, so a constant for triggers that discard
8798      // them keeps those triggers from re-rendering when the props change.
8799      appliedTriggerProps: (state, apply) => apply ? state.activeTriggerProps : void 0,
8800      closeDelay: (state) => state.closeDelay,
8801      adaptiveOrigin: (state) => state.adaptiveOrigin
8802    };
8803    var TooltipStore = class extends ReactStore {
8804      constructor(initialState, floatingId, nested) {
8805        const triggerElements = new PopupTriggerMap();
8806        super(createInitialState(initialState, triggerElements, floatingId, nested), createInitialContext(triggerElements), selectors2);
8807      }
8808      setOpen = (nextOpen, eventDetails) => {
8809        applyPopupOpenChange(this, nextOpen, eventDetails, {
8810          extraState: {
8811            openChangeReason: eventDetails.reason
8812          }
8813        });
8814      };
8815      // Used by trigger clicks to clear a delayed hover open without reporting a public open-state change.
8816      cancelPendingOpen(event) {
8817        this.state.floatingRootContext.dispatchOpenChange(false, createChangeEventDetails(reason_parts_exports.triggerPress, event));
8818      }
8819    };
8820    function createNullTooltipStore() {
8821      const triggerElements = new PopupTriggerMap();
8822      const store2 = new NullStore(Object.freeze(createInitialState(void 0, triggerElements)), Object.freeze(createInitialContext(triggerElements)), selectors2);
8823      return Object.assign(store2, {
8824        setOpen: NOOP,
8825        cancelPendingOpen: NOOP
8826      });
8827    }
8828    function createInitialState(initialState, triggerElements, floatingId, nested = false) {
8829      const state = {
8830        ...createInitialPopupStoreState(triggerElements, floatingId, nested),
8831        disabled: false,
8832        instantType: void 0,
8833        isInstantPhase: false,
8834        trackCursorAxis: "none",
8835        disableHoverablePopup: false,
8836        openChangeReason: null,
8837        closeOnClick: true,
8838        closeDelay: 0,
8839        adaptiveOrigin: void 0,
8840        ...initialState
8841      };
8842      return state;
8843    }
8844    function createInitialContext(triggerElements) {
8845      return {
8846        popupRef: /* @__PURE__ */ React41.createRef(),
8847        onOpenChange: void 0,
8848        onOpenChangeComplete: void 0,
8849        triggerElements
8850      };
8851    }
8852  
8853    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/root/TooltipRoot.mjs
8854    var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
8855    var TooltipRoot = fastComponent(function TooltipRoot2(props) {
8856      const {
8857        disabled: disabled2 = false,
8858        defaultOpen = false,
8859        open: openProp,
8860        disableHoverablePopup = false,
8861        trackCursorAxis = "none",
8862        actionsRef,
8863        onOpenChange,
8864        onOpenChangeComplete,
8865        handle,
8866        triggerId: triggerIdProp,
8867        defaultTriggerId: defaultTriggerIdProp = null,
8868        children
8869      } = props;
8870      const store2 = usePopupRootStore((floatingId, nested) => new TooltipStore({
8871        open: defaultOpen,
8872        openProp,
8873        activeTriggerId: defaultTriggerIdProp,
8874        triggerIdProp
8875      }, floatingId, nested));
8876      store2.useControlledProp("openProp", openProp);
8877      store2.useControlledProp("triggerIdProp", triggerIdProp);
8878      store2.useContextCallback("onOpenChange", onOpenChange);
8879      store2.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
8880      const openState = store2.useState("open");
8881      const open2 = !disabled2 && openState;
8882      const activeTriggerId = store2.useState("activeTriggerId");
8883      const mounted = store2.useState("mounted");
8884      const payload = store2.useState("payload");
8885      store2.useSyncedValues({
8886        trackCursorAxis,
8887        disableHoverablePopup,
8888        disabled: disabled2
8889      });
8890      useImplicitActiveTrigger(store2, {
8891        closeOnActiveTriggerUnmount: true
8892      });
8893      const {
8894        forceUnmount,
8895        transitionStatus
8896      } = useOpenStateTransitions(open2, store2);
8897      const isInstantPhase = store2.useState("isInstantPhase");
8898      const instantType = store2.useState("instantType");
8899      const lastOpenChangeReason = store2.useState("lastOpenChangeReason");
8900      const previousInstantTypeRef = React42.useRef(null);
8901      useIsoLayoutEffect(() => {
8902        if (openState && disabled2) {
8903          store2.setOpen(false, createChangeEventDetails(reason_parts_exports.disabled));
8904        }
8905      }, [openState, disabled2, store2]);
8906      useIsoLayoutEffect(() => {
8907        if (transitionStatus === "ending" && lastOpenChangeReason === reason_parts_exports.none || transitionStatus !== "ending" && isInstantPhase) {
8908          if (instantType !== "delay") {
8909            previousInstantTypeRef.current = instantType;
8910          }
8911          store2.set("instantType", "delay");
8912        } else if (previousInstantTypeRef.current !== null) {
8913          store2.set("instantType", previousInstantTypeRef.current);
8914          previousInstantTypeRef.current = null;
8915        }
8916      }, [transitionStatus, isInstantPhase, lastOpenChangeReason, instantType, store2]);
8917      useIsoLayoutEffect(() => {
8918        if (open2) {
8919          if (activeTriggerId == null) {
8920            store2.set("payload", void 0);
8921          }
8922        }
8923      }, [store2, activeTriggerId, open2]);
8924      React42.useImperativeHandle(actionsRef, () => ({
8925        unmount: forceUnmount,
8926        close: () => store2.setOpen(false, createChangeEventDetails(reason_parts_exports.imperativeAction))
8927      }), [forceUnmount, store2]);
8928      const shouldRenderInteractions = open2 || mounted || !disabled2 && trackCursorAxis !== "none";
8929      return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(TooltipRootContext.Provider, {
8930        value: store2,
8931        children: [handle && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PopupHandleAttachment, {
8932          handle,
8933          store: store2
8934        }), shouldRenderInteractions && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TooltipInteractions, {
8935          store: store2,
8936          disabled: disabled2,
8937          trackCursorAxis
8938        }), typeof children === "function" ? children({
8939          payload
8940        }) : children]
8941      });
8942    });
8943    if (true) TooltipRoot.displayName = "TooltipRoot";
8944    function TooltipInteractions({
8945      store: store2,
8946      disabled: disabled2,
8947      trackCursorAxis
8948    }) {
8949      const floatingRootContext = store2.useState("floatingRootContext");
8950      const dismiss = useDismiss(floatingRootContext, {
8951        enabled: !disabled2,
8952        referencePress: () => store2.select("closeOnClick")
8953      });
8954      const clientPoint = useClientPoint(floatingRootContext, {
8955        enabled: !disabled2 && trackCursorAxis !== "none",
8956        axis: trackCursorAxis === "none" ? void 0 : trackCursorAxis
8957      });
8958      const triggerProps = React42.useMemo(() => mergeProps(clientPoint.reference, dismiss.reference), [clientPoint.reference, dismiss.reference]);
8959      usePopupInteractionProps(store2, {
8960        activeTriggerProps: triggerProps,
8961        inactiveTriggerProps: triggerProps,
8962        popupProps: dismiss.floating ?? EMPTY_OBJECT
8963      });
8964      return null;
8965    }
8966  
8967    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/trigger/TooltipTrigger.mjs
8968    var React44 = __toESM(require_react(), 1);
8969  
8970    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/provider/TooltipProviderContext.mjs
8971    var React43 = __toESM(require_react(), 1);
8972    var TooltipProviderContext = /* @__PURE__ */ React43.createContext(void 0);
8973    if (true) TooltipProviderContext.displayName = "TooltipProviderContext";
8974    function useTooltipProviderContext() {
8975      return React43.useContext(TooltipProviderContext);
8976    }
8977  
8978    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/utils/constants.mjs
8979    var OPEN_DELAY = 600;
8980  
8981    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/trigger/TooltipTrigger.mjs
8982    var TOOLTIP_TRIGGER_IDENTIFIER = "data-base-ui-tooltip-trigger";
8983    function getTargetElement(event) {
8984      const target = getTarget(event);
8985      return isElement(target) ? target : null;
8986    }
8987    var TooltipTrigger = fastComponentRef(function TooltipTrigger2(componentProps, forwardedRef) {
8988      const {
8989        render,
8990        className,
8991        style,
8992        handle,
8993        payload,
8994        disabled: disabledProp,
8995        delay,
8996        closeOnClick = true,
8997        closeDelay,
8998        id: idProp,
8999        ...elementProps
9000      } = componentProps;
9001      const rootContext = useTooltipRootContext(true);
9002      const handleStore = usePopupHandleStore(handle);
9003      const store2 = handleStore ?? rootContext;
9004      if (!store2) {
9005        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));
9006      }
9007      const thisTriggerId = useBaseUiId(idProp);
9008      const isTriggerActive = store2.useState("isTriggerActive", thisTriggerId);
9009      const isOpenedByThisTrigger = store2.useState("isOpenedByTrigger", thisTriggerId);
9010      const floatingRootContext = store2.useState("floatingRootContext");
9011      const triggerElementRef = React44.useRef(null);
9012      const closeDelayWithDefault = closeDelay ?? 0;
9013      const {
9014        registerTrigger,
9015        isMountedByThisTrigger
9016      } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store2, {
9017        payload,
9018        closeOnClick,
9019        closeDelay: closeDelayWithDefault
9020      });
9021      const providerDelay = useTooltipProviderContext();
9022      const {
9023        activeIdRef,
9024        delayRef,
9025        isInstantPhase,
9026        hasProvider
9027      } = useDelayGroup(floatingRootContext, {
9028        open: isOpenedByThisTrigger
9029      });
9030      const hoverInteraction = useHoverInteractionSharedState(floatingRootContext);
9031      store2.useSyncedValue("isInstantPhase", isInstantPhase);
9032      const rootDisabled = store2.useState("disabled");
9033      const disabled2 = disabledProp ?? rootDisabled;
9034      const disabledRef = useValueAsRef(disabled2);
9035      const trackCursorAxis = store2.useState("trackCursorAxis");
9036      const disableHoverablePopup = store2.useState("disableHoverablePopup");
9037      const isNestedTriggerHoveredRef = React44.useRef(false);
9038      const nestedTriggerOpenTimeout = useTimeout();
9039      const pointerTypeRef = React44.useRef(void 0);
9040      function getOpenDelay() {
9041        if (hasProvider && activeIdRef.current != null) {
9042          return 0;
9043        }
9044        return delay ?? providerDelay ?? OPEN_DELAY;
9045      }
9046      function isEnabledNestedTriggerTarget(target) {
9047        const triggerEl = triggerElementRef.current;
9048        if (!triggerEl || !target) {
9049          return false;
9050        }
9051        const nearestTrigger = closest(target, `[$TOOLTIP_TRIGGER_IDENTIFIER}]`);
9052        return nearestTrigger !== null && nearestTrigger !== triggerEl && contains(triggerEl, nearestTrigger);
9053      }
9054      function detectNestedTriggerHover(target) {
9055        const nestedTriggerHovered = isEnabledNestedTriggerTarget(target);
9056        isNestedTriggerHoveredRef.current = nestedTriggerHovered;
9057        if (nestedTriggerHovered) {
9058          hoverInteraction.openChangeTimeout.clear();
9059          hoverInteraction.restTimeout.clear();
9060          hoverInteraction.restTimeoutPending = false;
9061          nestedTriggerOpenTimeout.clear();
9062        }
9063        return nestedTriggerHovered;
9064      }
9065      const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
9066        enabled: !disabled2,
9067        mouseOnly: true,
9068        move: false,
9069        handleClose: !disableHoverablePopup && trackCursorAxis !== "both" ? safePolygon() : null,
9070        restMs: getOpenDelay,
9071        delay() {
9072          if (closeDelay == null && hasProvider) {
9073            return {
9074              close: getDelay(delayRef.current, "close")
9075            };
9076          }
9077          return {
9078            close: closeDelayWithDefault
9079          };
9080        },
9081        triggerElementRef,
9082        isActiveTrigger: isTriggerActive,
9083        isClosing: () => store2.select("transitionStatus") === "ending",
9084        shouldOpen() {
9085          return !isNestedTriggerHoveredRef.current;
9086        }
9087      });
9088      const focusProps = useFocus(floatingRootContext, {
9089        enabled: !disabled2
9090      }).reference;
9091      const handleNestedTriggerHover = (event) => {
9092        const wasNestedTriggerHovered = isNestedTriggerHoveredRef.current;
9093        const target = getTargetElement(event);
9094        const nestedTriggerHovered = detectNestedTriggerHover(target);
9095        const triggerEl = triggerElementRef.current;
9096        const targetInsideTrigger = triggerEl && target && contains(triggerEl, target);
9097        if (nestedTriggerHovered && store2.select("open") && store2.select("lastOpenChangeReason") === reason_parts_exports.triggerHover) {
9098          store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
9099          return;
9100        }
9101        if (wasNestedTriggerHovered && !nestedTriggerHovered && targetInsideTrigger && !disabledRef.current && !store2.select("open") && triggerEl && // Match the hover hook's non-strict mouse fallback for mouse-only event sequences.
9102        isMouseLikePointerType(pointerTypeRef.current)) {
9103          const open2 = () => {
9104            if (!isNestedTriggerHoveredRef.current && !disabledRef.current && !store2.select("open")) {
9105              store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerEl));
9106            }
9107          };
9108          const openDelay = getOpenDelay();
9109          if (openDelay === 0) {
9110            nestedTriggerOpenTimeout.clear();
9111            open2();
9112          } else {
9113            nestedTriggerOpenTimeout.start(openDelay, open2);
9114          }
9115        }
9116      };
9117      const rootTriggerProps = store2.useState("appliedTriggerProps", isMountedByThisTrigger || trackCursorAxis !== "none");
9118      const state = {
9119        open: isOpenedByThisTrigger
9120      };
9121      const element = useRenderElement("button", componentProps, {
9122        state,
9123        ref: [forwardedRef, registerTrigger, triggerElementRef],
9124        props: [hoverProps, focusProps, rootTriggerProps, {
9125          onMouseOver(event) {
9126            handleNestedTriggerHover(event.nativeEvent);
9127          },
9128          onFocus(event) {
9129            if (isEnabledNestedTriggerTarget(getTargetElement(event.nativeEvent))) {
9130              event.preventBaseUIHandler();
9131            }
9132          },
9133          onMouseLeave() {
9134            isNestedTriggerHoveredRef.current = false;
9135            nestedTriggerOpenTimeout.clear();
9136            pointerTypeRef.current = void 0;
9137          },
9138          onPointerEnter(event) {
9139            pointerTypeRef.current = event.pointerType;
9140          },
9141          onPointerDown(event) {
9142            pointerTypeRef.current = event.pointerType;
9143            store2.set("closeOnClick", closeOnClick);
9144            if (closeOnClick && !store2.select("open")) {
9145              store2.cancelPendingOpen(event.nativeEvent);
9146            }
9147          },
9148          onClick(event) {
9149            if (closeOnClick && !store2.select("open")) {
9150              store2.cancelPendingOpen(event.nativeEvent);
9151            }
9152          },
9153          id: thisTriggerId,
9154          [triggerDisabled]: disabled2 ? "" : void 0,
9155          [TOOLTIP_TRIGGER_IDENTIFIER]: disabled2 ? void 0 : ""
9156        }, elementProps],
9157        stateAttributesMapping: triggerOpenStateMapping
9158      });
9159      return element;
9160    });
9161    if (true) TooltipTrigger.displayName = "TooltipTrigger";
9162  
9163    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/portal/TooltipPortal.mjs
9164    var React46 = __toESM(require_react(), 1);
9165  
9166    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/portal/TooltipPortalContext.mjs
9167    var React45 = __toESM(require_react(), 1);
9168    var TooltipPortalContext = /* @__PURE__ */ React45.createContext(void 0);
9169    if (true) TooltipPortalContext.displayName = "TooltipPortalContext";
9170    function useTooltipPortalContext() {
9171      const value = React45.useContext(TooltipPortalContext);
9172      if (value === void 0) {
9173        throw new Error(true ? "Base UI: <Tooltip.Portal> is missing." : formatErrorMessage_default(70));
9174      }
9175      return value;
9176    }
9177  
9178    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/portal/TooltipPortal.mjs
9179    var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
9180    var TooltipPortal = /* @__PURE__ */ React46.forwardRef(function TooltipPortal2(props, forwardedRef) {
9181      const {
9182        keepMounted = false,
9183        ...portalProps
9184      } = props;
9185      const store2 = useTooltipRootContext();
9186      const mounted = store2.useState("mounted");
9187      const shouldRender = mounted || keepMounted;
9188      if (!shouldRender) {
9189        return null;
9190      }
9191      return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TooltipPortalContext.Provider, {
9192        value: keepMounted,
9193        children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FloatingPortalLite, {
9194          ref: forwardedRef,
9195          ...portalProps
9196        })
9197      });
9198    });
9199    if (true) TooltipPortal.displayName = "TooltipPortal";
9200  
9201    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/positioner/TooltipPositioner.mjs
9202    var React48 = __toESM(require_react(), 1);
9203  
9204    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/positioner/TooltipPositionerContext.mjs
9205    var React47 = __toESM(require_react(), 1);
9206    var TooltipPositionerContext = /* @__PURE__ */ React47.createContext(void 0);
9207    if (true) TooltipPositionerContext.displayName = "TooltipPositionerContext";
9208    function useTooltipPositionerContext() {
9209      const context = React47.useContext(TooltipPositionerContext);
9210      if (context === void 0) {
9211        throw new Error(true ? "Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>." : formatErrorMessage_default(71));
9212      }
9213      return context;
9214    }
9215  
9216    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/positioner/TooltipPositioner.mjs
9217    var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
9218    var TooltipPositioner = /* @__PURE__ */ React48.forwardRef(function TooltipPositioner2(componentProps, forwardedRef) {
9219      const {
9220        render,
9221        className,
9222        anchor,
9223        positionMethod = "absolute",
9224        side = "top",
9225        align = "center",
9226        sideOffset = 0,
9227        alignOffset = 0,
9228        collisionBoundary = "clipping-ancestors",
9229        collisionPadding = 5,
9230        arrowPadding = 5,
9231        sticky = false,
9232        disableAnchorTracking = false,
9233        collisionAvoidance = POPUP_COLLISION_AVOIDANCE,
9234        style,
9235        ...elementProps
9236      } = componentProps;
9237      const store2 = useTooltipRootContext();
9238      const keepMounted = useTooltipPortalContext();
9239      const open2 = store2.useState("open");
9240      const mounted = store2.useState("mounted");
9241      const trackCursorAxis = store2.useState("trackCursorAxis");
9242      const disableHoverablePopup = store2.useState("disableHoverablePopup");
9243      const floatingRootContext = store2.useState("floatingRootContext");
9244      const instantType = store2.useState("instantType");
9245      const transitionStatus = store2.useState("transitionStatus");
9246      const adaptiveOrigin2 = store2.useState("adaptiveOrigin");
9247      const positioning = useAnchorPositioning({
9248        anchor,
9249        positionMethod,
9250        floatingRootContext,
9251        mounted,
9252        side,
9253        sideOffset,
9254        align,
9255        alignOffset,
9256        collisionBoundary,
9257        collisionPadding,
9258        sticky,
9259        arrowPadding,
9260        disableAnchorTracking,
9261        keepMounted,
9262        collisionAvoidance,
9263        adaptiveOrigin: adaptiveOrigin2
9264      });
9265      const state = React48.useMemo(() => ({
9266        open: open2,
9267        side: positioning.side,
9268        align: positioning.align,
9269        anchorHidden: positioning.anchorHidden,
9270        instant: trackCursorAxis !== "none" ? "tracking-cursor" : instantType
9271      }), [open2, positioning.side, positioning.align, positioning.anchorHidden, trackCursorAxis, instantType]);
9272      const element = usePositioner(componentProps, state, {
9273        styles: positioning.positionerStyles,
9274        transitionStatus,
9275        props: elementProps,
9276        refs: [forwardedRef, store2.useStateSetter("positionerElement")],
9277        hidden: !mounted,
9278        inert: !open2 || trackCursorAxis === "both" || disableHoverablePopup
9279      });
9280      return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipPositionerContext.Provider, {
9281        value: positioning,
9282        children: element
9283      });
9284    });
9285    if (true) TooltipPositioner.displayName = "TooltipPositioner";
9286  
9287    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/popup/TooltipPopup.mjs
9288    var React49 = __toESM(require_react(), 1);
9289    var TooltipPopup = /* @__PURE__ */ React49.forwardRef(function TooltipPopup2(componentProps, forwardedRef) {
9290      const {
9291        render,
9292        className,
9293        style,
9294        ...elementProps
9295      } = componentProps;
9296      const store2 = useTooltipRootContext();
9297      const {
9298        side,
9299        align
9300      } = useTooltipPositionerContext();
9301      const open2 = store2.useState("open");
9302      const instantType = store2.useState("instantType");
9303      const transitionStatus = store2.useState("transitionStatus");
9304      const popupProps = store2.useState("popupProps");
9305      const floatingContext = store2.useState("floatingRootContext");
9306      const disabled2 = store2.useState("disabled");
9307      const closeDelay = store2.useState("closeDelay");
9308      useOpenChangeComplete({
9309        open: open2,
9310        ref: store2.context.popupRef,
9311        onComplete() {
9312          if (open2) {
9313            store2.context.onOpenChangeComplete?.(true);
9314          }
9315        }
9316      });
9317      useHoverFloatingInteraction(floatingContext, {
9318        enabled: !disabled2,
9319        closeDelay
9320      });
9321      const setPopupElement = store2.useStateSetter("popupElement");
9322      const state = {
9323        open: open2,
9324        side,
9325        align,
9326        instant: instantType,
9327        transitionStatus
9328      };
9329      const element = useRenderElement("div", componentProps, {
9330        state,
9331        ref: [forwardedRef, store2.context.popupRef, setPopupElement],
9332        props: [FOCUSABLE_POPUP_PROPS, popupProps, getDisabledMountTransitionStyles(transitionStatus), elementProps],
9333        stateAttributesMapping: popupTransitionStateMapping
9334      });
9335      return element;
9336    });
9337    if (true) TooltipPopup.displayName = "TooltipPopup";
9338  
9339    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/arrow/TooltipArrow.mjs
9340    var React50 = __toESM(require_react(), 1);
9341    var TooltipArrow = /* @__PURE__ */ React50.forwardRef(function TooltipArrow2(componentProps, forwardedRef) {
9342      const {
9343        render,
9344        className,
9345        style,
9346        ...elementProps
9347      } = componentProps;
9348      const store2 = useTooltipRootContext();
9349      const {
9350        arrowRef,
9351        side,
9352        align,
9353        arrowUncentered,
9354        arrowStyles
9355      } = useTooltipPositionerContext();
9356      const open2 = store2.useState("open");
9357      const instantType = store2.useState("instantType");
9358      const state = {
9359        open: open2,
9360        side,
9361        align,
9362        uncentered: arrowUncentered,
9363        instant: instantType
9364      };
9365      const element = useRenderElement("div", componentProps, {
9366        state,
9367        ref: [forwardedRef, arrowRef],
9368        props: [{
9369          style: arrowStyles,
9370          "aria-hidden": true
9371        }, elementProps],
9372        stateAttributesMapping: popupStateMapping
9373      });
9374      return element;
9375    });
9376    if (true) TooltipArrow.displayName = "TooltipArrow";
9377  
9378    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/provider/TooltipProvider.mjs
9379    var React51 = __toESM(require_react(), 1);
9380    var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
9381    var TooltipProvider = function TooltipProvider2(props) {
9382      const {
9383        delay,
9384        closeDelay,
9385        timeout = 400
9386      } = props;
9387      const delayValue = React51.useMemo(() => ({
9388        open: delay,
9389        close: closeDelay
9390      }), [delay, closeDelay]);
9391      return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TooltipProviderContext.Provider, {
9392        value: delay,
9393        children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FloatingDelayGroup, {
9394          delay: delayValue,
9395          timeoutMs: timeout,
9396          children: props.children
9397        })
9398      });
9399    };
9400    if (true) TooltipProvider.displayName = "TooltipProvider";
9401  
9402    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/viewport/TooltipViewport.mjs
9403    var React52 = __toESM(require_react(), 1);
9404    var TooltipViewport = /* @__PURE__ */ React52.forwardRef(function TooltipViewport2(componentProps, forwardedRef) {
9405      const {
9406        render,
9407        className,
9408        style,
9409        children,
9410        ...elementProps
9411      } = componentProps;
9412      const store2 = useTooltipRootContext();
9413      const positioner = useTooltipPositionerContext();
9414      const instantType = store2.useState("instantType");
9415      const {
9416        children: childrenToRender,
9417        state: viewportState
9418      } = usePopupViewport({
9419        store: store2,
9420        side: positioner.side,
9421        children
9422      });
9423      const state = {
9424        activationDirection: viewportState.activationDirection,
9425        transitioning: viewportState.transitioning,
9426        instant: instantType
9427      };
9428      return useRenderElement("div", componentProps, {
9429        state,
9430        ref: forwardedRef,
9431        props: [elementProps, {
9432          children: childrenToRender
9433        }],
9434        stateAttributesMapping: popupViewportStateMapping
9435      });
9436    });
9437    if (true) TooltipViewport.displayName = "TooltipViewport";
9438  
9439    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/tooltip/store/TooltipHandle.mjs
9440    var TooltipHandle = class extends BasePopupHandle {
9441      constructor() {
9442        super(createNullTooltipStore(), "Tooltip");
9443      }
9444      /**
9445       * Opens the tooltip and associates it with the trigger with the given id.
9446       *
9447       * This method should only be called in an event handler or an effect (not during rendering).
9448       *
9449       * @param triggerId ID of the trigger to associate with the tooltip. The trigger must be a matching
9450       * `Tooltip.Trigger` with this handle passed as a prop.
9451       */
9452      open(triggerId) {
9453        this.openByTrigger(triggerId);
9454      }
9455      /**
9456       * Closes the tooltip.
9457       *
9458       * This method should only be called in an event handler or an effect (not during rendering).
9459       */
9460      close() {
9461        this.closePopup();
9462      }
9463      /**
9464       * Whether the tooltip is currently open. Returns `false` while no root is attached to the handle.
9465       */
9466      get isOpen() {
9467        return this.attachedStore?.select("open") ?? false;
9468      }
9469    };
9470    function createTooltipHandle() {
9471      return new TooltipHandle();
9472    }
9473  
9474    // node_modules/.store/@base-ui/react@1.9.0-uHNeM94OdjIeOtpyYGvL0A/node_modules/@base-ui/react/use-render/useRender.mjs
9475    function useRender(params) {
9476      return useRenderElement(params.defaultTagName ?? "div", params, params);
9477    }
9478  
9479    // packages/ui/build-module/text/text.mjs
9480    var import_element12 = __toESM(require_element(), 1);
9481    var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
9482    function getRuntime() {
9483      const globalScope = globalThis;
9484      if (globalScope.__wpStyleRuntime) {
9485        return globalScope.__wpStyleRuntime;
9486      }
9487      globalScope.__wpStyleRuntime = {
9488        documents: /* @__PURE__ */ new Map(),
9489        styles: /* @__PURE__ */ new Map(),
9490        injectedStyles: /* @__PURE__ */ new WeakMap()
9491      };
9492      if (typeof document !== "undefined") {
9493        registerDocument(document);
9494      }
9495      return globalScope.__wpStyleRuntime;
9496    }
9497    function documentContainsStyleHash(targetDocument, hash) {
9498      if (!targetDocument.head) {
9499        return false;
9500      }
9501      for (const style of targetDocument.head.querySelectorAll(
9502        `style[$STYLE_HASH_ATTRIBUTE}]`
9503      )) {
9504        if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
9505          return true;
9506        }
9507      }
9508      return false;
9509    }
9510    function injectStyle(targetDocument, hash, css) {
9511      if (!targetDocument.head) {
9512        return;
9513      }
9514      const runtime = getRuntime();
9515      let injectedStyles = runtime.injectedStyles.get(targetDocument);
9516      if (!injectedStyles) {
9517        injectedStyles = /* @__PURE__ */ new Set();
9518        runtime.injectedStyles.set(targetDocument, injectedStyles);
9519      }
9520      if (injectedStyles.has(hash)) {
9521        return;
9522      }
9523      if (documentContainsStyleHash(targetDocument, hash)) {
9524        injectedStyles.add(hash);
9525        return;
9526      }
9527      const style = targetDocument.createElement("style");
9528      style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
9529      style.appendChild(targetDocument.createTextNode(css));
9530      targetDocument.head.appendChild(style);
9531      injectedStyles.add(hash);
9532    }
9533    function registerDocument(targetDocument) {
9534      const runtime = getRuntime();
9535      runtime.documents.set(
9536        targetDocument,
9537        (runtime.documents.get(targetDocument) ?? 0) + 1
9538      );
9539      for (const [hash, css] of runtime.styles) {
9540        injectStyle(targetDocument, hash, css);
9541      }
9542      return () => {
9543        const count = runtime.documents.get(targetDocument);
9544        if (count === void 0) {
9545          return;
9546        }
9547        if (count <= 1) {
9548          runtime.documents.delete(targetDocument);
9549          return;
9550        }
9551        runtime.documents.set(targetDocument, count - 1);
9552      };
9553    }
9554    function registerStyle(hash, css) {
9555      const runtime = getRuntime();
9556      runtime.styles.set(hash, css);
9557      for (const targetDocument of runtime.documents.keys()) {
9558        injectStyle(targetDocument, hash, css);
9559      }
9560    }
9561    if (typeof process === "undefined" || true) {
9562      registerStyle("09bae534ff", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._9745ffa515d864cf__text{text-wrap:pretty;margin:0}._8882b6a7feb4fd3d__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)}._664e3e7687c45603__heading-xl,._8882b6a7feb4fd3d__heading-2xl{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)}._664e3e7687c45603__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)}.dac661a5de0ed2bd__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)}._59c7f3f740e2f96e__heading-md,.dac661a5de0ed2bd__heading-lg{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)}._59c7f3f740e2f96e__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)}.cf052fbad8d93b7e__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}._212b9cfef57a0af4__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)}._07f57bc0aa36b2c6__body-lg,._212b9cfef57a0af4__body-xl{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)}._07f57bc0aa36b2c6__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)}._0c6da4457aec9e62__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)}._0c6da4457aec9e62__body-md,.b998f87ff17b7bec__body-sm{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)}.b998f87ff17b7bec__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)}}}');
9563    }
9564    var style_default = { "text": "_9745ffa515d864cf__text", "heading-2xl": "_8882b6a7feb4fd3d__heading-2xl", "heading-xl": "_664e3e7687c45603__heading-xl", "heading-lg": "dac661a5de0ed2bd__heading-lg", "heading-md": "_59c7f3f740e2f96e__heading-md", "heading-sm": "cf052fbad8d93b7e__heading-sm", "body-xl": "_212b9cfef57a0af4__body-xl", "body-lg": "_07f57bc0aa36b2c6__body-lg", "body-md": "_0c6da4457aec9e62__body-md", "body-sm": "b998f87ff17b7bec__body-sm" };
9565    if (typeof process === "undefined" || true) {
9566      registerStyle("726f348f3f", "._78c10a0773e51a91__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)}._5b33aa2d48624b4f__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)}}._980b3b4776ac8f81__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._43e478b4279a076c__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._698099e25b0fb1a6__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)._326aee4184d261fd__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)}.e9576240835601ba__a,.e9576240835601ba__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)}._3f05789653864a73__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)}._3c72ff72abe57859__li{margin:var(--_gcd-li-margin,0)}[role=treeitem] span._79d16267c15d9eb2__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)}");
9567    }
9568    var global_css_defense_default = { "button": "_78c10a0773e51a91__button", "input": "_5b33aa2d48624b4f__input", "textarea": "_980b3b4776ac8f81__textarea", "div": "_43e478b4279a076c__div", "p": "_698099e25b0fb1a6__p", "heading": "_326aee4184d261fd__heading", "a": "e9576240835601ba__a", "ol": "_3f05789653864a73__ol", "li": "_3c72ff72abe57859__li", "span": "_79d16267c15d9eb2__span" };
9569    var Text = (0, import_element12.forwardRef)(
9570      function UnforwardedText({ variant = "body-md", render, className, ...props }, ref) {
9571        const element = useRender({
9572          render,
9573          defaultTagName: "span",
9574          ref,
9575          props: mergeProps(props, {
9576            className: clsx_default(
9577              style_default.text,
9578              global_css_defense_default.heading,
9579              global_css_defense_default.p,
9580              style_default[variant],
9581              className
9582            )
9583          })
9584        });
9585        return element;
9586      }
9587    );
9588  
9589    // packages/ui/build-module/button/button.mjs
9590    var import_a11y = __toESM(require_a11y(), 1);
9591    var import_element14 = __toESM(require_element(), 1);
9592    var import_i18n2 = __toESM(require_i18n(), 1);
9593  
9594    // packages/ui/build-module/spinner/spinner.mjs
9595    var import_element13 = __toESM(require_element(), 1);
9596    var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
9597    var STYLE_HASH_ATTRIBUTE2 = "data-wp-hash";
9598    function getRuntime2() {
9599      const globalScope = globalThis;
9600      if (globalScope.__wpStyleRuntime) {
9601        return globalScope.__wpStyleRuntime;
9602      }
9603      globalScope.__wpStyleRuntime = {
9604        documents: /* @__PURE__ */ new Map(),
9605        styles: /* @__PURE__ */ new Map(),
9606        injectedStyles: /* @__PURE__ */ new WeakMap()
9607      };
9608      if (typeof document !== "undefined") {
9609        registerDocument2(document);
9610      }
9611      return globalScope.__wpStyleRuntime;
9612    }
9613    function documentContainsStyleHash2(targetDocument, hash) {
9614      if (!targetDocument.head) {
9615        return false;
9616      }
9617      for (const style of targetDocument.head.querySelectorAll(
9618        `style[$STYLE_HASH_ATTRIBUTE2}]`
9619      )) {
9620        if (style.getAttribute(STYLE_HASH_ATTRIBUTE2) === hash) {
9621          return true;
9622        }
9623      }
9624      return false;
9625    }
9626    function injectStyle2(targetDocument, hash, css) {
9627      if (!targetDocument.head) {
9628        return;
9629      }
9630      const runtime = getRuntime2();
9631      let injectedStyles = runtime.injectedStyles.get(targetDocument);
9632      if (!injectedStyles) {
9633        injectedStyles = /* @__PURE__ */ new Set();
9634        runtime.injectedStyles.set(targetDocument, injectedStyles);
9635      }
9636      if (injectedStyles.has(hash)) {
9637        return;
9638      }
9639      if (documentContainsStyleHash2(targetDocument, hash)) {
9640        injectedStyles.add(hash);
9641        return;
9642      }
9643      const style = targetDocument.createElement("style");
9644      style.setAttribute(STYLE_HASH_ATTRIBUTE2, hash);
9645      style.appendChild(targetDocument.createTextNode(css));
9646      targetDocument.head.appendChild(style);
9647      injectedStyles.add(hash);
9648    }
9649    function registerDocument2(targetDocument) {
9650      const runtime = getRuntime2();
9651      runtime.documents.set(
9652        targetDocument,
9653        (runtime.documents.get(targetDocument) ?? 0) + 1
9654      );
9655      for (const [hash, css] of runtime.styles) {
9656        injectStyle2(targetDocument, hash, css);
9657      }
9658      return () => {
9659        const count = runtime.documents.get(targetDocument);
9660        if (count === void 0) {
9661          return;
9662        }
9663        if (count <= 1) {
9664          runtime.documents.delete(targetDocument);
9665          return;
9666        }
9667        runtime.documents.set(targetDocument, count - 1);
9668      };
9669    }
9670    function registerStyle2(hash, css) {
9671      const runtime = getRuntime2();
9672      runtime.styles.set(hash, css);
9673      for (const targetDocument of runtime.documents.keys()) {
9674        injectStyle2(targetDocument, hash, css);
9675      }
9676    }
9677    if (typeof process === "undefined" || true) {
9678      registerStyle2("b081213352", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.da418dc15e63be57__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)}._8b83deccaefa3c92__indicator{fill:transparent;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;transform-origin:50% 50%;@media (forced-colors:active){stroke:CanvasText}animation:_0da63cf2c7b08803__spinner-spin 1.4s linear infinite both}@keyframes _0da63cf2c7b08803__spinner-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}}}");
9679    }
9680    var style_default2 = { "spinner": "da418dc15e63be57__spinner", "indicator": "_8b83deccaefa3c92__indicator", "spinner-spin": "_0da63cf2c7b08803__spinner-spin" };
9681    var Spinner = (0, import_element13.forwardRef)(
9682      function UnforwardedSpinner({ className, color, style, ...props }, ref) {
9683        return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
9684          "svg",
9685          {
9686            className: clsx_default(style_default2.spinner, className),
9687            style: color === void 0 ? style : { ...style, color },
9688            viewBox: "0 0 24 24",
9689            xmlns: "http://www.w3.org/2000/svg",
9690            role: "presentation",
9691            focusable: "false",
9692            ...props,
9693            ref,
9694            children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
9695              "path",
9696              {
9697                className: style_default2.indicator,
9698                d: "m 12 0 a 12 12 0 0 1 0 24"
9699              }
9700            )
9701          }
9702        );
9703      }
9704    );
9705  
9706    // packages/ui/build-module/button/button.mjs
9707    var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
9708    var STYLE_HASH_ATTRIBUTE3 = "data-wp-hash";
9709    function getRuntime3() {
9710      const globalScope = globalThis;
9711      if (globalScope.__wpStyleRuntime) {
9712        return globalScope.__wpStyleRuntime;
9713      }
9714      globalScope.__wpStyleRuntime = {
9715        documents: /* @__PURE__ */ new Map(),
9716        styles: /* @__PURE__ */ new Map(),
9717        injectedStyles: /* @__PURE__ */ new WeakMap()
9718      };
9719      if (typeof document !== "undefined") {
9720        registerDocument3(document);
9721      }
9722      return globalScope.__wpStyleRuntime;
9723    }
9724    function documentContainsStyleHash3(targetDocument, hash) {
9725      if (!targetDocument.head) {
9726        return false;
9727      }
9728      for (const style of targetDocument.head.querySelectorAll(
9729        `style[$STYLE_HASH_ATTRIBUTE3}]`
9730      )) {
9731        if (style.getAttribute(STYLE_HASH_ATTRIBUTE3) === hash) {
9732          return true;
9733        }
9734      }
9735      return false;
9736    }
9737    function injectStyle3(targetDocument, hash, css) {
9738      if (!targetDocument.head) {
9739        return;
9740      }
9741      const runtime = getRuntime3();
9742      let injectedStyles = runtime.injectedStyles.get(targetDocument);
9743      if (!injectedStyles) {
9744        injectedStyles = /* @__PURE__ */ new Set();
9745        runtime.injectedStyles.set(targetDocument, injectedStyles);
9746      }
9747      if (injectedStyles.has(hash)) {
9748        return;
9749      }
9750      if (documentContainsStyleHash3(targetDocument, hash)) {
9751        injectedStyles.add(hash);
9752        return;
9753      }
9754      const style = targetDocument.createElement("style");
9755      style.setAttribute(STYLE_HASH_ATTRIBUTE3, hash);
9756      style.appendChild(targetDocument.createTextNode(css));
9757      targetDocument.head.appendChild(style);
9758      injectedStyles.add(hash);
9759    }
9760    function registerDocument3(targetDocument) {
9761      const runtime = getRuntime3();
9762      runtime.documents.set(
9763        targetDocument,
9764        (runtime.documents.get(targetDocument) ?? 0) + 1
9765      );
9766      for (const [hash, css] of runtime.styles) {
9767        injectStyle3(targetDocument, hash, css);
9768      }
9769      return () => {
9770        const count = runtime.documents.get(targetDocument);
9771        if (count === void 0) {
9772          return;
9773        }
9774        if (count <= 1) {
9775          runtime.documents.delete(targetDocument);
9776          return;
9777        }
9778        runtime.documents.set(targetDocument, count - 1);
9779      };
9780    }
9781    function registerStyle3(hash, css) {
9782      const runtime = getRuntime3();
9783      runtime.styles.set(hash, css);
9784      for (const targetDocument of runtime.documents.keys()) {
9785        injectStyle3(targetDocument, hash, css);
9786      }
9787    }
9788    if (typeof process === "undefined" || true) {
9789      registerStyle3("06ca4dbe45", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.e01b07636421375d__button,.ec10ae721bc68934__is-unstyled{appearance:none;padding:0}.e01b07636421375d__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(._414eb921eb9928fa__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}}}._36aecfa8aa1c059c__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)}._6e27e09880945492__icon{margin:var(--wp-ui-button-icon-margin)}.e861e38ec209c386__is-brand{&._126c37d7228179eb__is-outline,&._52d3a0733adabb28__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)}&._126c37d7228179eb__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)}&._52d3a0733adabb28__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)}}._4f1e6661283d0b09__is-neutral{&._52d3a0733adabb28__is-minimal[aria-pressed=true],&._7b8ab25ed58515d2__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)}&._126c37d7228179eb__is-outline,&._52d3a0733adabb28__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)}&._126c37d7228179eb__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)}&._52d3a0733adabb28__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)}}.ec10ae721bc68934__is-unstyled{background:none;border:none;min-width:unset}.df99f7773c9c8915__is-compact{--wp-ui-button-height:var(--wpds-dimension-size-md,32px)}._414eb921eb9928fa__is-loading:not(.ec10ae721bc68934__is-unstyled){color:transparent;&:not([data-disabled]):is(:hover,:active,:focus){color:transparent}@media (forced-colors:active){color:ButtonFace}>:not(._20f9e334daee91a7__spinner){opacity:0}}}@layer compositions{._20f9e334daee91a7__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}}}}}');
9790    }
9791    var style_default3 = { "button": "e01b07636421375d__button", "is-unstyled": "ec10ae721bc68934__is-unstyled", "is-loading": "_414eb921eb9928fa__is-loading", "is-small": "_36aecfa8aa1c059c__is-small", "icon": "_6e27e09880945492__icon", "is-brand": "e861e38ec209c386__is-brand", "is-outline": "_126c37d7228179eb__is-outline", "is-minimal": "_52d3a0733adabb28__is-minimal", "is-neutral": "_4f1e6661283d0b09__is-neutral", "is-solid": "_7b8ab25ed58515d2__is-solid", "is-compact": "df99f7773c9c8915__is-compact", "spinner": "_20f9e334daee91a7__spinner" };
9792    if (typeof process === "undefined" || true) {
9793      registerStyle3("37477070fb", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.ccc29f9575c4c758__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
9794    }
9795    var resets_default = { "box-sizing": "ccc29f9575c4c758__box-sizing" };
9796    if (typeof process === "undefined" || true) {
9797      registerStyle3("c13e206e92", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._0f52be5f1d4ce686__outset-ring--focus-within:focus-within,._8f922cee854f2408__outset-ring--focus-visible:focus-visible,.accedd6ae8fd878e__outset-ring--focus:focus{--_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))}._3ad2c88c126f2bdd__outset-ring--focus-within-except-active:focus-within,.c20f61b115485a7f__outset-ring--focus-except-active:focus{outline:none}._3ad2c88c126f2bdd__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.c20f61b115485a7f__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))}}}");
9798    }
9799    var focus_module_default = { "outset-ring--focus": "accedd6ae8fd878e__outset-ring--focus", "outset-ring--focus-visible": "_8f922cee854f2408__outset-ring--focus-visible", "outset-ring--focus-within": "_0f52be5f1d4ce686__outset-ring--focus-within", "outset-ring--focus-except-active": "c20f61b115485a7f__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3ad2c88c126f2bdd__outset-ring--focus-within-except-active" };
9800    if (typeof process === "undefined" || true) {
9801      registerStyle3("726f348f3f", "._78c10a0773e51a91__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)}._5b33aa2d48624b4f__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)}}._980b3b4776ac8f81__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._43e478b4279a076c__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._698099e25b0fb1a6__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)._326aee4184d261fd__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)}.e9576240835601ba__a,.e9576240835601ba__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)}._3f05789653864a73__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)}._3c72ff72abe57859__li{margin:var(--_gcd-li-margin,0)}[role=treeitem] span._79d16267c15d9eb2__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)}");
9802    }
9803    var global_css_defense_default2 = { "button": "_78c10a0773e51a91__button", "input": "_5b33aa2d48624b4f__input", "textarea": "_980b3b4776ac8f81__textarea", "div": "_43e478b4279a076c__div", "p": "_698099e25b0fb1a6__p", "heading": "_326aee4184d261fd__heading", "a": "e9576240835601ba__a", "ol": "_3f05789653864a73__ol", "li": "_3c72ff72abe57859__li", "span": "_79d16267c15d9eb2__span" };
9804    var Button3 = (0, import_element14.forwardRef)(
9805      function UnforwardedButton({
9806        tone = "brand",
9807        variant = "solid",
9808        size: size4 = "default",
9809        className,
9810        focusableWhenDisabled = true,
9811        disabled: disabled2,
9812        loading,
9813        loadingAnnouncement = (0, import_i18n2.__)("Loading"),
9814        children,
9815        ...props
9816      }, ref) {
9817        const mergedClassName = clsx_default(
9818          global_css_defense_default2.button,
9819          resets_default["box-sizing"],
9820          focus_module_default["outset-ring--focus-except-active"],
9821          variant !== "unstyled" && style_default3.button,
9822          style_default3[`is-$tone}`],
9823          style_default3[`is-$variant}`],
9824          style_default3[`is-$size4}`],
9825          loading && style_default3["is-loading"],
9826          className
9827        );
9828        (0, import_element14.useEffect)(() => {
9829          if (loading && loadingAnnouncement) {
9830            (0, import_a11y.speak)(loadingAnnouncement);
9831          }
9832        }, [loading, loadingAnnouncement]);
9833        return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
9834          Button,
9835          {
9836            ref,
9837            className: mergedClassName,
9838            focusableWhenDisabled,
9839            disabled: disabled2 ?? loading,
9840            ...props,
9841            children: [
9842              children,
9843              loading && variant !== "unstyled" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Spinner, { className: style_default3.spinner })
9844            ]
9845          }
9846        );
9847      }
9848    );
9849  
9850    // packages/ui/build-module/button/icon.mjs
9851    var import_element15 = __toESM(require_element(), 1);
9852    var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
9853    var STYLE_HASH_ATTRIBUTE4 = "data-wp-hash";
9854    function getRuntime4() {
9855      const globalScope = globalThis;
9856      if (globalScope.__wpStyleRuntime) {
9857        return globalScope.__wpStyleRuntime;
9858      }
9859      globalScope.__wpStyleRuntime = {
9860        documents: /* @__PURE__ */ new Map(),
9861        styles: /* @__PURE__ */ new Map(),
9862        injectedStyles: /* @__PURE__ */ new WeakMap()
9863      };
9864      if (typeof document !== "undefined") {
9865        registerDocument4(document);
9866      }
9867      return globalScope.__wpStyleRuntime;
9868    }
9869    function documentContainsStyleHash4(targetDocument, hash) {
9870      if (!targetDocument.head) {
9871        return false;
9872      }
9873      for (const style of targetDocument.head.querySelectorAll(
9874        `style[$STYLE_HASH_ATTRIBUTE4}]`
9875      )) {
9876        if (style.getAttribute(STYLE_HASH_ATTRIBUTE4) === hash) {
9877          return true;
9878        }
9879      }
9880      return false;
9881    }
9882    function injectStyle4(targetDocument, hash, css) {
9883      if (!targetDocument.head) {
9884        return;
9885      }
9886      const runtime = getRuntime4();
9887      let injectedStyles = runtime.injectedStyles.get(targetDocument);
9888      if (!injectedStyles) {
9889        injectedStyles = /* @__PURE__ */ new Set();
9890        runtime.injectedStyles.set(targetDocument, injectedStyles);
9891      }
9892      if (injectedStyles.has(hash)) {
9893        return;
9894      }
9895      if (documentContainsStyleHash4(targetDocument, hash)) {
9896        injectedStyles.add(hash);
9897        return;
9898      }
9899      const style = targetDocument.createElement("style");
9900      style.setAttribute(STYLE_HASH_ATTRIBUTE4, hash);
9901      style.appendChild(targetDocument.createTextNode(css));
9902      targetDocument.head.appendChild(style);
9903      injectedStyles.add(hash);
9904    }
9905    function registerDocument4(targetDocument) {
9906      const runtime = getRuntime4();
9907      runtime.documents.set(
9908        targetDocument,
9909        (runtime.documents.get(targetDocument) ?? 0) + 1
9910      );
9911      for (const [hash, css] of runtime.styles) {
9912        injectStyle4(targetDocument, hash, css);
9913      }
9914      return () => {
9915        const count = runtime.documents.get(targetDocument);
9916        if (count === void 0) {
9917          return;
9918        }
9919        if (count <= 1) {
9920          runtime.documents.delete(targetDocument);
9921          return;
9922        }
9923        runtime.documents.set(targetDocument, count - 1);
9924      };
9925    }
9926    function registerStyle4(hash, css) {
9927      const runtime = getRuntime4();
9928      runtime.styles.set(hash, css);
9929      for (const targetDocument of runtime.documents.keys()) {
9930        injectStyle4(targetDocument, hash, css);
9931      }
9932    }
9933    if (typeof process === "undefined" || true) {
9934      registerStyle4("06ca4dbe45", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.e01b07636421375d__button,.ec10ae721bc68934__is-unstyled{appearance:none;padding:0}.e01b07636421375d__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(._414eb921eb9928fa__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}}}._36aecfa8aa1c059c__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)}._6e27e09880945492__icon{margin:var(--wp-ui-button-icon-margin)}.e861e38ec209c386__is-brand{&._126c37d7228179eb__is-outline,&._52d3a0733adabb28__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)}&._126c37d7228179eb__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)}&._52d3a0733adabb28__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)}}._4f1e6661283d0b09__is-neutral{&._52d3a0733adabb28__is-minimal[aria-pressed=true],&._7b8ab25ed58515d2__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)}&._126c37d7228179eb__is-outline,&._52d3a0733adabb28__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)}&._126c37d7228179eb__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)}&._52d3a0733adabb28__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)}}.ec10ae721bc68934__is-unstyled{background:none;border:none;min-width:unset}.df99f7773c9c8915__is-compact{--wp-ui-button-height:var(--wpds-dimension-size-md,32px)}._414eb921eb9928fa__is-loading:not(.ec10ae721bc68934__is-unstyled){color:transparent;&:not([data-disabled]):is(:hover,:active,:focus){color:transparent}@media (forced-colors:active){color:ButtonFace}>:not(._20f9e334daee91a7__spinner){opacity:0}}}@layer compositions{._20f9e334daee91a7__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}}}}}');
9935    }
9936    var style_default4 = { "button": "e01b07636421375d__button", "is-unstyled": "ec10ae721bc68934__is-unstyled", "is-loading": "_414eb921eb9928fa__is-loading", "is-small": "_36aecfa8aa1c059c__is-small", "icon": "_6e27e09880945492__icon", "is-brand": "e861e38ec209c386__is-brand", "is-outline": "_126c37d7228179eb__is-outline", "is-minimal": "_52d3a0733adabb28__is-minimal", "is-neutral": "_4f1e6661283d0b09__is-neutral", "is-solid": "_7b8ab25ed58515d2__is-solid", "is-compact": "df99f7773c9c8915__is-compact", "spinner": "_20f9e334daee91a7__spinner" };
9937    var ButtonIcon = (0, import_element15.forwardRef)(
9938      function UnforwardedButtonIcon({ className, icon, ...props }, ref) {
9939        return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
9940          Icon,
9941          {
9942            ref,
9943            icon,
9944            className: clsx_default(style_default4.icon, className),
9945            size: 24,
9946            ...props
9947          }
9948        );
9949      }
9950    );
9951  
9952    // packages/ui/build-module/button/index.mjs
9953    ButtonIcon.displayName = "Button.Icon";
9954    var Button4 = Object.assign(Button3, {
9955      /**
9956       * An icon component specifically designed to work well when rendered inside
9957       * a `Button` component.
9958       */
9959      Icon: ButtonIcon
9960    });
9961  
9962    // packages/icons/build-module/icon/index.mjs
9963    var import_element16 = __toESM(require_element(), 1);
9964    var icon_default = (0, import_element16.forwardRef)(
9965      ({ icon, size: size4 = 24, style, ...props }, ref) => {
9966        const intrinsicStyle = icon.props.style;
9967        const mergedStyle = intrinsicStyle || style ? { ...intrinsicStyle, ...style } : void 0;
9968        return (0, import_element16.cloneElement)(icon, {
9969          width: size4,
9970          height: size4,
9971          ...props,
9972          // Merge styles so the icon's intrinsic style (e.g. `fill: none` on
9973          // stroke-based icons) is preserved unless the consumer overrides
9974          // the same property explicitly.
9975          ...mergedStyle ? { style: mergedStyle } : {},
9976          ref
9977        });
9978      }
9979    );
9980  
9981    // packages/icons/build-module/library/caution.mjs
9982    var import_primitives2 = __toESM(require_primitives(), 1);
9983    var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
9984    var caution_default = /* @__PURE__ */ (0, import_jsx_runtime16.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_runtime16.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" }) });
9985  
9986    // packages/icons/build-module/library/close-small.mjs
9987    var import_primitives3 = __toESM(require_primitives(), 1);
9988    var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
9989    var close_small_default = /* @__PURE__ */ (0, import_jsx_runtime17.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_runtime17.jsx)(import_primitives3.Path, { d: "M7.75 16.25L16.25 7.75M16.25 16.25L7.75 7.75" }) });
9990  
9991    // packages/icons/build-module/library/error.mjs
9992    var import_primitives4 = __toESM(require_primitives(), 1);
9993    var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
9994    var error_default = /* @__PURE__ */ (0, import_jsx_runtime18.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_runtime18.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" }) });
9995  
9996    // packages/icons/build-module/library/info.mjs
9997    var import_primitives5 = __toESM(require_primitives(), 1);
9998    var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
9999    var info_default = /* @__PURE__ */ (0, import_jsx_runtime19.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_runtime19.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" }) });
10000  
10001    // packages/icons/build-module/library/published.mjs
10002    var import_primitives6 = __toESM(require_primitives(), 1);
10003    var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
10004    var published_default = /* @__PURE__ */ (0, import_jsx_runtime20.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: [
10005      /* @__PURE__ */ (0, import_jsx_runtime20.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" }),
10006      /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_primitives6.Path, { d: "M9 12L11 14L15 10" })
10007    ] });
10008  
10009    // packages/icons/build-module/library/star-empty.mjs
10010    var import_primitives7 = __toESM(require_primitives(), 1);
10011    var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
10012    var star_empty_default = /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_primitives7.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_runtime21.jsx)(import_primitives7.Path, { d: "M12 5.71576L13.6106 8.97924C13.7563 9.27438 14.0379 9.47895 14.3636 9.52628L17.965 10.0496L15.359 12.5899C15.1233 12.8196 15.0157 13.1506 15.0714 13.475L15.6866 17.0619L12.4653 15.3684C12.174 15.2152 11.826 15.2152 11.5347 15.3684L8.31341 17.0619L8.92861 13.475C8.98425 13.1506 8.8767 12.8196 8.64102 12.5899L6.03497 10.0496L9.63644 9.52628C9.96215 9.47895 10.2437 9.27438 10.3894 8.97924L12 5.71576Z" }) });
10013  
10014    // packages/icons/build-module/library/star-filled.mjs
10015    var import_primitives8 = __toESM(require_primitives(), 1);
10016    var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
10017    var star_filled_default = /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_primitives8.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_runtime22.jsx)(import_primitives8.Path, { d: "M12 5.71576L13.6106 8.97924C13.7563 9.27438 14.0379 9.47895 14.3636 9.52628L17.965 10.0496L15.359 12.5899C15.1233 12.8196 15.0157 13.1506 15.0714 13.475L15.6866 17.0619L12.4653 15.3684C12.174 15.2152 11.826 15.2152 11.5347 15.3684L8.31341 17.0619L8.92861 13.475C8.98425 13.1506 8.8767 12.8196 8.64102 12.5899L6.03497 10.0496L9.63644 9.52628C9.96215 9.47895 10.2437 9.27438 10.3894 8.97924L12 5.71576Z", fill: "currentColor" }) });
10018  
10019    // packages/icons/build-module/library/star-half.mjs
10020    var import_primitives9 = __toESM(require_primitives(), 1);
10021    var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
10022    var star_half_default = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_primitives9.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [
10023      /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_primitives9.Path, { d: "M12 5.71576L13.6106 8.97924C13.7563 9.27438 14.0379 9.47895 14.3636 9.52628L17.965 10.0496L15.359 12.5899C15.1233 12.8196 15.0157 13.1506 15.0714 13.475L15.6866 17.0619L12.4653 15.3684C12.174 15.2152 11.826 15.2152 11.5347 15.3684L8.31341 17.0619L8.92861 13.475C8.98425 13.1506 8.8767 12.8196 8.64102 12.5899L6.03497 10.0496L9.63644 9.52628C9.96215 9.47895 10.2437 9.27438 10.3894 8.97924L12 5.71576Z" }),
10024      /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_primitives9.Path, { d: "M11.4653 15.4048C11.7941 15.232 12 14.8912 12 14.5197V5.71576L10.3894 8.97924C10.2437 9.27438 9.96215 9.47895 9.63644 9.52628L6.03497 10.0496L8.64102 12.5899C8.8767 12.8196 8.98425 13.1506 8.92861 13.475L8.31341 17.0619L11.4653 15.4048Z", fill: "currentColor", stroke: "none" })
10025    ] });
10026  
10027    // packages/icons/build-module/library/tip.mjs
10028    var import_primitives10 = __toESM(require_primitives(), 1);
10029    var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
10030    var tip_default = /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_primitives10.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_runtime24.jsx)(import_primitives10.Path, { d: "M8 18.25L16 18.25M10 21.25H14M18 9C18 12.3137 15.3137 15 12 15C8.68629 15 6 12.3137 6 9C6 5.68629 8.68629 3 12 3C15.3137 3 18 5.68629 18 9Z" }) });
10031  
10032    // packages/ui/build-module/utils/keyboard-shortcut.mjs
10033    var import_element18 = __toESM(require_element(), 1);
10034    var import_i18n3 = __toESM(require_i18n(), 1);
10035  
10036    // packages/ui/build-module/visually-hidden/visually-hidden.mjs
10037    var import_element17 = __toESM(require_element(), 1);
10038    var STYLE_HASH_ATTRIBUTE5 = "data-wp-hash";
10039    function getRuntime5() {
10040      const globalScope = globalThis;
10041      if (globalScope.__wpStyleRuntime) {
10042        return globalScope.__wpStyleRuntime;
10043      }
10044      globalScope.__wpStyleRuntime = {
10045        documents: /* @__PURE__ */ new Map(),
10046        styles: /* @__PURE__ */ new Map(),
10047        injectedStyles: /* @__PURE__ */ new WeakMap()
10048      };
10049      if (typeof document !== "undefined") {
10050        registerDocument5(document);
10051      }
10052      return globalScope.__wpStyleRuntime;
10053    }
10054    function documentContainsStyleHash5(targetDocument, hash) {
10055      if (!targetDocument.head) {
10056        return false;
10057      }
10058      for (const style of targetDocument.head.querySelectorAll(
10059        `style[$STYLE_HASH_ATTRIBUTE5}]`
10060      )) {
10061        if (style.getAttribute(STYLE_HASH_ATTRIBUTE5) === hash) {
10062          return true;
10063        }
10064      }
10065      return false;
10066    }
10067    function injectStyle5(targetDocument, hash, css) {
10068      if (!targetDocument.head) {
10069        return;
10070      }
10071      const runtime = getRuntime5();
10072      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10073      if (!injectedStyles) {
10074        injectedStyles = /* @__PURE__ */ new Set();
10075        runtime.injectedStyles.set(targetDocument, injectedStyles);
10076      }
10077      if (injectedStyles.has(hash)) {
10078        return;
10079      }
10080      if (documentContainsStyleHash5(targetDocument, hash)) {
10081        injectedStyles.add(hash);
10082        return;
10083      }
10084      const style = targetDocument.createElement("style");
10085      style.setAttribute(STYLE_HASH_ATTRIBUTE5, hash);
10086      style.appendChild(targetDocument.createTextNode(css));
10087      targetDocument.head.appendChild(style);
10088      injectedStyles.add(hash);
10089    }
10090    function registerDocument5(targetDocument) {
10091      const runtime = getRuntime5();
10092      runtime.documents.set(
10093        targetDocument,
10094        (runtime.documents.get(targetDocument) ?? 0) + 1
10095      );
10096      for (const [hash, css] of runtime.styles) {
10097        injectStyle5(targetDocument, hash, css);
10098      }
10099      return () => {
10100        const count = runtime.documents.get(targetDocument);
10101        if (count === void 0) {
10102          return;
10103        }
10104        if (count <= 1) {
10105          runtime.documents.delete(targetDocument);
10106          return;
10107        }
10108        runtime.documents.set(targetDocument, count - 1);
10109      };
10110    }
10111    function registerStyle5(hash, css) {
10112      const runtime = getRuntime5();
10113      runtime.styles.set(hash, css);
10114      for (const targetDocument of runtime.documents.keys()) {
10115        injectStyle5(targetDocument, hash, css);
10116      }
10117    }
10118    if (typeof process === "undefined" || true) {
10119      registerStyle5("7caae29f9e", ".e2c3cbe6ada7d785__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}");
10120    }
10121    var style_default5 = { "visually-hidden": "e2c3cbe6ada7d785__visually-hidden" };
10122    var VisuallyHidden = (0, import_element17.forwardRef)(
10123      function UnforwardedVisuallyHidden({ render, ...restProps }, ref) {
10124        const element = useRender({
10125          render,
10126          ref,
10127          props: mergeProps(
10128            { className: style_default5["visually-hidden"] },
10129            restProps,
10130            {
10131              // @ts-expect-error Arbitrary data-* attributes aren't indexable on the typed div props. Kept hardcoded so consumers can't change or remove it.
10132              "data-visually-hidden": ""
10133            }
10134          )
10135        });
10136        return element;
10137      }
10138    );
10139  
10140    // packages/ui/build-module/utils/keyboard-shortcut.mjs
10141    var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
10142    function useKeyboardShortcutProps({
10143      "aria-describedby": ariaDescribedBy,
10144      "aria-keyshortcuts": ariaKeyShortcuts,
10145      shortcut
10146    }) {
10147      const generatedDescriptionId = (0, import_element18.useId)();
10148      const descriptionId = shortcut ? generatedDescriptionId : void 0;
10149      const describedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ");
10150      return {
10151        descriptionId,
10152        targetProps: {
10153          "aria-describedby": describedBy || void 0,
10154          "aria-keyshortcuts": shortcut?.ariaKeyShortcut ?? ariaKeyShortcuts
10155        }
10156      };
10157    }
10158    var KeyboardShortcutDescription = (0, import_element18.forwardRef)(function UnforwardedKeyboardShortcutDescription({ descriptionId, shortcut }, ref) {
10159      return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
10160        VisuallyHidden,
10161        {
10162          id: descriptionId,
10163          "aria-hidden": "true",
10164          render: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { ref }),
10165          children: (0, import_i18n3.sprintf)(
10166            /* translators: %s: keyboard shortcut. */
10167            (0, import_i18n3.__)("Keyboard shortcut: %s"),
10168            shortcut.label ?? shortcut.ariaKeyShortcut
10169          )
10170        }
10171      );
10172    });
10173    var KeyboardShortcutDisplay = (0, import_element18.forwardRef)(function UnforwardedKeyboardShortcutDisplay({ className, shortcut }, ref) {
10174      return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { ref, "aria-hidden": "true", className, dir: "ltr", children: shortcut.displayShortcut });
10175    });
10176  
10177    // packages/ui/build-module/utils/render-slot-with-children.mjs
10178    var import_element19 = __toESM(require_element(), 1);
10179    function renderSlotWithChildren(slot, defaultSlot, children) {
10180      return (0, import_element19.cloneElement)(
10181        slot ?? defaultSlot,
10182        { children }
10183      );
10184    }
10185  
10186    // packages/ui/build-module/utils/wp-compat-overlay-slot.mjs
10187    var STYLE_HASH_ATTRIBUTE6 = "data-wp-hash";
10188    function getRuntime6() {
10189      const globalScope = globalThis;
10190      if (globalScope.__wpStyleRuntime) {
10191        return globalScope.__wpStyleRuntime;
10192      }
10193      globalScope.__wpStyleRuntime = {
10194        documents: /* @__PURE__ */ new Map(),
10195        styles: /* @__PURE__ */ new Map(),
10196        injectedStyles: /* @__PURE__ */ new WeakMap()
10197      };
10198      if (typeof document !== "undefined") {
10199        registerDocument6(document);
10200      }
10201      return globalScope.__wpStyleRuntime;
10202    }
10203    function documentContainsStyleHash6(targetDocument, hash) {
10204      if (!targetDocument.head) {
10205        return false;
10206      }
10207      for (const style of targetDocument.head.querySelectorAll(
10208        `style[$STYLE_HASH_ATTRIBUTE6}]`
10209      )) {
10210        if (style.getAttribute(STYLE_HASH_ATTRIBUTE6) === hash) {
10211          return true;
10212        }
10213      }
10214      return false;
10215    }
10216    function injectStyle6(targetDocument, hash, css) {
10217      if (!targetDocument.head) {
10218        return;
10219      }
10220      const runtime = getRuntime6();
10221      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10222      if (!injectedStyles) {
10223        injectedStyles = /* @__PURE__ */ new Set();
10224        runtime.injectedStyles.set(targetDocument, injectedStyles);
10225      }
10226      if (injectedStyles.has(hash)) {
10227        return;
10228      }
10229      if (documentContainsStyleHash6(targetDocument, hash)) {
10230        injectedStyles.add(hash);
10231        return;
10232      }
10233      const style = targetDocument.createElement("style");
10234      style.setAttribute(STYLE_HASH_ATTRIBUTE6, hash);
10235      style.appendChild(targetDocument.createTextNode(css));
10236      targetDocument.head.appendChild(style);
10237      injectedStyles.add(hash);
10238    }
10239    function registerDocument6(targetDocument) {
10240      const runtime = getRuntime6();
10241      runtime.documents.set(
10242        targetDocument,
10243        (runtime.documents.get(targetDocument) ?? 0) + 1
10244      );
10245      for (const [hash, css] of runtime.styles) {
10246        injectStyle6(targetDocument, hash, css);
10247      }
10248      return () => {
10249        const count = runtime.documents.get(targetDocument);
10250        if (count === void 0) {
10251          return;
10252        }
10253        if (count <= 1) {
10254          runtime.documents.delete(targetDocument);
10255          return;
10256        }
10257        runtime.documents.set(targetDocument, count - 1);
10258      };
10259    }
10260    function registerStyle6(hash, css) {
10261      const runtime = getRuntime6();
10262      runtime.styles.set(hash, css);
10263      for (const targetDocument of runtime.documents.keys()) {
10264        injectStyle6(targetDocument, hash, css);
10265      }
10266    }
10267    if (typeof process === "undefined" || true) {
10268      registerStyle6("40df669685", "._9e7887c25dedb459__slot{inset:0;isolation:isolate;pointer-events:none;position:fixed;z-index:1000000003}@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._9e7887c25dedb459__slot>*{pointer-events:auto}}}");
10269    }
10270    var wp_compat_overlay_slot_default = { "slot": "_9e7887c25dedb459__slot" };
10271    var WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE = "data-wp-compat-overlay-slot";
10272    function resolveOwnerDocument() {
10273      return typeof document === "undefined" ? null : document;
10274    }
10275    function isInWordPressEnvironment() {
10276      let topWp;
10277      try {
10278        topWp = window.top?.wp;
10279      } catch {
10280      }
10281      const wp = topWp ?? window.wp;
10282      return typeof wp?.components === "object" && wp.components !== null;
10283    }
10284    var cachedSlot = null;
10285    function ensureSlotIsAccessible(element) {
10286      element.setAttribute("aria-hidden", "false");
10287      return element;
10288    }
10289    function createSlot(ownerDocument2) {
10290      const element = ownerDocument2.createElement("div");
10291      element.setAttribute(WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE, "");
10292      if (wp_compat_overlay_slot_default.slot) {
10293        element.classList.add(wp_compat_overlay_slot_default.slot);
10294      }
10295      ownerDocument2.body.appendChild(element);
10296      return element;
10297    }
10298    function getWpCompatOverlaySlot() {
10299      if (typeof window === "undefined") {
10300        return void 0;
10301      }
10302      if (!isInWordPressEnvironment() && window.__wpUiCompatOverlaySlotEnabled !== true) {
10303        return void 0;
10304      }
10305      const ownerDocument2 = resolveOwnerDocument();
10306      if (!ownerDocument2 || !ownerDocument2.body) {
10307        return void 0;
10308      }
10309      if (cachedSlot && cachedSlot.ownerDocument === ownerDocument2 && cachedSlot.isConnected) {
10310        return ensureSlotIsAccessible(cachedSlot);
10311      }
10312      const existing = ownerDocument2.querySelector(
10313        `[$WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE}]`
10314      );
10315      if (existing instanceof HTMLDivElement) {
10316        cachedSlot = ensureSlotIsAccessible(existing);
10317        return cachedSlot;
10318      }
10319      if (cachedSlot?.isConnected) {
10320        cachedSlot.remove();
10321      }
10322      cachedSlot = ensureSlotIsAccessible(createSlot(ownerDocument2));
10323      return cachedSlot;
10324    }
10325  
10326    // packages/ui/build-module/utils/direction-provider.mjs
10327    var import_i18n4 = __toESM(require_i18n(), 1);
10328    var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
10329    function DirectionProvider3({ children }) {
10330      return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(DirectionProvider, { direction: (0, import_i18n4.isRTL)() ? "rtl" : "ltr", children });
10331    }
10332  
10333    // packages/ui/build-module/tooltip/index.mjs
10334    var tooltip_exports = {};
10335    __export(tooltip_exports, {
10336      Popup: () => Popup,
10337      Portal: () => Portal,
10338      Positioner: () => Positioner,
10339      Provider: () => Provider,
10340      Root: () => Root,
10341      Trigger: () => Trigger
10342    });
10343  
10344    // packages/ui/build-module/tooltip/popup.mjs
10345    var import_element22 = __toESM(require_element(), 1);
10346  
10347    // packages/ui/build-module/tooltip/portal.mjs
10348    var import_element20 = __toESM(require_element(), 1);
10349    var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
10350    var Portal = (0, import_element20.forwardRef)(
10351      function TooltipPortal3({ container, ...restProps }, ref) {
10352        return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
10353          index_parts_exports.Portal,
10354          {
10355            container: container === void 0 ? getWpCompatOverlaySlot() : container,
10356            ...restProps,
10357            ref
10358          }
10359        );
10360      }
10361    );
10362  
10363    // packages/ui/build-module/tooltip/positioner.mjs
10364    var import_element21 = __toESM(require_element(), 1);
10365    var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
10366    var STYLE_HASH_ATTRIBUTE7 = "data-wp-hash";
10367    function getRuntime7() {
10368      const globalScope = globalThis;
10369      if (globalScope.__wpStyleRuntime) {
10370        return globalScope.__wpStyleRuntime;
10371      }
10372      globalScope.__wpStyleRuntime = {
10373        documents: /* @__PURE__ */ new Map(),
10374        styles: /* @__PURE__ */ new Map(),
10375        injectedStyles: /* @__PURE__ */ new WeakMap()
10376      };
10377      if (typeof document !== "undefined") {
10378        registerDocument7(document);
10379      }
10380      return globalScope.__wpStyleRuntime;
10381    }
10382    function documentContainsStyleHash7(targetDocument, hash) {
10383      if (!targetDocument.head) {
10384        return false;
10385      }
10386      for (const style of targetDocument.head.querySelectorAll(
10387        `style[$STYLE_HASH_ATTRIBUTE7}]`
10388      )) {
10389        if (style.getAttribute(STYLE_HASH_ATTRIBUTE7) === hash) {
10390          return true;
10391        }
10392      }
10393      return false;
10394    }
10395    function injectStyle7(targetDocument, hash, css) {
10396      if (!targetDocument.head) {
10397        return;
10398      }
10399      const runtime = getRuntime7();
10400      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10401      if (!injectedStyles) {
10402        injectedStyles = /* @__PURE__ */ new Set();
10403        runtime.injectedStyles.set(targetDocument, injectedStyles);
10404      }
10405      if (injectedStyles.has(hash)) {
10406        return;
10407      }
10408      if (documentContainsStyleHash7(targetDocument, hash)) {
10409        injectedStyles.add(hash);
10410        return;
10411      }
10412      const style = targetDocument.createElement("style");
10413      style.setAttribute(STYLE_HASH_ATTRIBUTE7, hash);
10414      style.appendChild(targetDocument.createTextNode(css));
10415      targetDocument.head.appendChild(style);
10416      injectedStyles.add(hash);
10417    }
10418    function registerDocument7(targetDocument) {
10419      const runtime = getRuntime7();
10420      runtime.documents.set(
10421        targetDocument,
10422        (runtime.documents.get(targetDocument) ?? 0) + 1
10423      );
10424      for (const [hash, css] of runtime.styles) {
10425        injectStyle7(targetDocument, hash, css);
10426      }
10427      return () => {
10428        const count = runtime.documents.get(targetDocument);
10429        if (count === void 0) {
10430          return;
10431        }
10432        if (count <= 1) {
10433          runtime.documents.delete(targetDocument);
10434          return;
10435        }
10436        runtime.documents.set(targetDocument, count - 1);
10437      };
10438    }
10439    function registerStyle7(hash, css) {
10440      const runtime = getRuntime7();
10441      runtime.styles.set(hash, css);
10442      for (const targetDocument of runtime.documents.keys()) {
10443        injectStyle7(targetDocument, hash, css);
10444      }
10445    }
10446    if (typeof process === "undefined" || true) {
10447      registerStyle7("37477070fb", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.ccc29f9575c4c758__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
10448    }
10449    var resets_default2 = { "box-sizing": "ccc29f9575c4c758__box-sizing" };
10450    if (typeof process === "undefined" || true) {
10451      registerStyle7("aaf79ac691", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.b9266862d9435660__positioner{z-index:var(--wp-ui-tooltip-z-index,initial)}._7bb3fd8a0810be6d__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}}}}');
10452    }
10453    var style_default6 = { "positioner": "b9266862d9435660__positioner", "popup": "_7bb3fd8a0810be6d__popup" };
10454    var Positioner = (0, import_element21.forwardRef)(
10455      function TooltipPositioner3({ align = "center", className, side = "top", sideOffset = 4, ...props }, ref) {
10456        return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
10457          index_parts_exports.Positioner,
10458          {
10459            ref,
10460            align,
10461            side,
10462            sideOffset,
10463            ...props,
10464            className: clsx_default(
10465              resets_default2["box-sizing"],
10466              style_default6.positioner,
10467              className
10468            )
10469          }
10470        );
10471      }
10472    );
10473  
10474    // packages/ui/build-module/utils/theme-provider.mjs
10475    var theme = __toESM(require_theme(), 1);
10476  
10477    // packages/ui/build-module/lock-unlock.mjs
10478    var import_private_apis = __toESM(require_private_apis(), 1);
10479    var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
10480      "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
10481      "@wordpress/ui"
10482    );
10483  
10484    // packages/ui/build-module/utils/theme-provider.mjs
10485    function getThemeProvider() {
10486      const themePackage = theme;
10487      if (themePackage.ThemeProvider) {
10488        return themePackage.ThemeProvider;
10489      }
10490      if (!themePackage.privateApis) {
10491        throw new Error(
10492          "@wordpress/ui: @wordpress/theme must expose `ThemeProvider` or `privateApis.ThemeProvider`."
10493        );
10494      }
10495      return unlock(
10496        themePackage.privateApis
10497      ).ThemeProvider;
10498    }
10499    var ThemeProvider = getThemeProvider();
10500  
10501    // packages/ui/build-module/tooltip/popup.mjs
10502    var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
10503    var STYLE_HASH_ATTRIBUTE8 = "data-wp-hash";
10504    function getRuntime8() {
10505      const globalScope = globalThis;
10506      if (globalScope.__wpStyleRuntime) {
10507        return globalScope.__wpStyleRuntime;
10508      }
10509      globalScope.__wpStyleRuntime = {
10510        documents: /* @__PURE__ */ new Map(),
10511        styles: /* @__PURE__ */ new Map(),
10512        injectedStyles: /* @__PURE__ */ new WeakMap()
10513      };
10514      if (typeof document !== "undefined") {
10515        registerDocument8(document);
10516      }
10517      return globalScope.__wpStyleRuntime;
10518    }
10519    function documentContainsStyleHash8(targetDocument, hash) {
10520      if (!targetDocument.head) {
10521        return false;
10522      }
10523      for (const style of targetDocument.head.querySelectorAll(
10524        `style[$STYLE_HASH_ATTRIBUTE8}]`
10525      )) {
10526        if (style.getAttribute(STYLE_HASH_ATTRIBUTE8) === hash) {
10527          return true;
10528        }
10529      }
10530      return false;
10531    }
10532    function injectStyle8(targetDocument, hash, css) {
10533      if (!targetDocument.head) {
10534        return;
10535      }
10536      const runtime = getRuntime8();
10537      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10538      if (!injectedStyles) {
10539        injectedStyles = /* @__PURE__ */ new Set();
10540        runtime.injectedStyles.set(targetDocument, injectedStyles);
10541      }
10542      if (injectedStyles.has(hash)) {
10543        return;
10544      }
10545      if (documentContainsStyleHash8(targetDocument, hash)) {
10546        injectedStyles.add(hash);
10547        return;
10548      }
10549      const style = targetDocument.createElement("style");
10550      style.setAttribute(STYLE_HASH_ATTRIBUTE8, hash);
10551      style.appendChild(targetDocument.createTextNode(css));
10552      targetDocument.head.appendChild(style);
10553      injectedStyles.add(hash);
10554    }
10555    function registerDocument8(targetDocument) {
10556      const runtime = getRuntime8();
10557      runtime.documents.set(
10558        targetDocument,
10559        (runtime.documents.get(targetDocument) ?? 0) + 1
10560      );
10561      for (const [hash, css] of runtime.styles) {
10562        injectStyle8(targetDocument, hash, css);
10563      }
10564      return () => {
10565        const count = runtime.documents.get(targetDocument);
10566        if (count === void 0) {
10567          return;
10568        }
10569        if (count <= 1) {
10570          runtime.documents.delete(targetDocument);
10571          return;
10572        }
10573        runtime.documents.set(targetDocument, count - 1);
10574      };
10575    }
10576    function registerStyle8(hash, css) {
10577      const runtime = getRuntime8();
10578      runtime.styles.set(hash, css);
10579      for (const targetDocument of runtime.documents.keys()) {
10580        injectStyle8(targetDocument, hash, css);
10581      }
10582    }
10583    if (typeof process === "undefined" || true) {
10584      registerStyle8("aaf79ac691", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.b9266862d9435660__positioner{z-index:var(--wp-ui-tooltip-z-index,initial)}._7bb3fd8a0810be6d__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}}}}');
10585    }
10586    var style_default7 = { "positioner": "b9266862d9435660__positioner", "popup": "_7bb3fd8a0810be6d__popup" };
10587    var POPUP_COLOR = { background: "#1e1e1e" };
10588    var Popup = (0, import_element22.forwardRef)(function TooltipPopup3({ portal, positioner, children, className, ...props }, ref) {
10589      const popupContent = /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ThemeProvider, { color: POPUP_COLOR, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
10590        index_parts_exports.Popup,
10591        {
10592          ref,
10593          className: clsx_default(style_default7.popup, className),
10594          ...props,
10595          children
10596        }
10597      ) });
10598      const positionedPopup = renderSlotWithChildren(
10599        positioner,
10600        /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Positioner, {}),
10601        popupContent
10602      );
10603      return renderSlotWithChildren(portal, /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Portal, {}), positionedPopup);
10604    });
10605  
10606    // packages/ui/build-module/tooltip/trigger.mjs
10607    var import_element23 = __toESM(require_element(), 1);
10608    var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
10609    var Trigger = (0, import_element23.forwardRef)(
10610      function TooltipTrigger3(props, ref) {
10611        return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(index_parts_exports.Trigger, { ref, ...props });
10612      }
10613    );
10614  
10615    // packages/ui/build-module/tooltip/root.mjs
10616    var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
10617    function Root(props) {
10618      return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DirectionProvider3, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(index_parts_exports.Root, { ...props }) });
10619    }
10620  
10621    // packages/ui/build-module/tooltip/provider.mjs
10622    var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
10623    function Provider({ ...props }) {
10624      return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(index_parts_exports.Provider, { ...props });
10625    }
10626  
10627    // packages/ui/build-module/link/link.mjs
10628    var import_element24 = __toESM(require_element(), 1);
10629    var import_i18n5 = __toESM(require_i18n(), 1);
10630    var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
10631    var STYLE_HASH_ATTRIBUTE9 = "data-wp-hash";
10632    function getRuntime9() {
10633      const globalScope = globalThis;
10634      if (globalScope.__wpStyleRuntime) {
10635        return globalScope.__wpStyleRuntime;
10636      }
10637      globalScope.__wpStyleRuntime = {
10638        documents: /* @__PURE__ */ new Map(),
10639        styles: /* @__PURE__ */ new Map(),
10640        injectedStyles: /* @__PURE__ */ new WeakMap()
10641      };
10642      if (typeof document !== "undefined") {
10643        registerDocument9(document);
10644      }
10645      return globalScope.__wpStyleRuntime;
10646    }
10647    function documentContainsStyleHash9(targetDocument, hash) {
10648      if (!targetDocument.head) {
10649        return false;
10650      }
10651      for (const style of targetDocument.head.querySelectorAll(
10652        `style[$STYLE_HASH_ATTRIBUTE9}]`
10653      )) {
10654        if (style.getAttribute(STYLE_HASH_ATTRIBUTE9) === hash) {
10655          return true;
10656        }
10657      }
10658      return false;
10659    }
10660    function injectStyle9(targetDocument, hash, css) {
10661      if (!targetDocument.head) {
10662        return;
10663      }
10664      const runtime = getRuntime9();
10665      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10666      if (!injectedStyles) {
10667        injectedStyles = /* @__PURE__ */ new Set();
10668        runtime.injectedStyles.set(targetDocument, injectedStyles);
10669      }
10670      if (injectedStyles.has(hash)) {
10671        return;
10672      }
10673      if (documentContainsStyleHash9(targetDocument, hash)) {
10674        injectedStyles.add(hash);
10675        return;
10676      }
10677      const style = targetDocument.createElement("style");
10678      style.setAttribute(STYLE_HASH_ATTRIBUTE9, hash);
10679      style.appendChild(targetDocument.createTextNode(css));
10680      targetDocument.head.appendChild(style);
10681      injectedStyles.add(hash);
10682    }
10683    function registerDocument9(targetDocument) {
10684      const runtime = getRuntime9();
10685      runtime.documents.set(
10686        targetDocument,
10687        (runtime.documents.get(targetDocument) ?? 0) + 1
10688      );
10689      for (const [hash, css] of runtime.styles) {
10690        injectStyle9(targetDocument, hash, css);
10691      }
10692      return () => {
10693        const count = runtime.documents.get(targetDocument);
10694        if (count === void 0) {
10695          return;
10696        }
10697        if (count <= 1) {
10698          runtime.documents.delete(targetDocument);
10699          return;
10700        }
10701        runtime.documents.set(targetDocument, count - 1);
10702      };
10703    }
10704    function registerStyle9(hash, css) {
10705      const runtime = getRuntime9();
10706      runtime.styles.set(hash, css);
10707      for (const targetDocument of runtime.documents.keys()) {
10708        injectStyle9(targetDocument, hash, css);
10709      }
10710    }
10711    if (typeof process === "undefined" || true) {
10712      registerStyle9("37477070fb", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.ccc29f9575c4c758__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
10713    }
10714    var resets_default3 = { "box-sizing": "ccc29f9575c4c758__box-sizing" };
10715    if (typeof process === "undefined" || true) {
10716      registerStyle9("c13e206e92", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._0f52be5f1d4ce686__outset-ring--focus-within:focus-within,._8f922cee854f2408__outset-ring--focus-visible:focus-visible,.accedd6ae8fd878e__outset-ring--focus:focus{--_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))}._3ad2c88c126f2bdd__outset-ring--focus-within-except-active:focus-within,.c20f61b115485a7f__outset-ring--focus-except-active:focus{outline:none}._3ad2c88c126f2bdd__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.c20f61b115485a7f__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))}}}");
10717    }
10718    var focus_module_default2 = { "outset-ring--focus": "accedd6ae8fd878e__outset-ring--focus", "outset-ring--focus-visible": "_8f922cee854f2408__outset-ring--focus-visible", "outset-ring--focus-within": "_0f52be5f1d4ce686__outset-ring--focus-within", "outset-ring--focus-except-active": "c20f61b115485a7f__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3ad2c88c126f2bdd__outset-ring--focus-within-except-active" };
10719    if (typeof process === "undefined" || true) {
10720      registerStyle9("c87d91cdf7", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.a574f9f242212d58__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}._2d2f0506e717a46c__link-with-icon{text-decoration-line:none}._92b7b6a03fbb27ac__link-contents{text-decoration:inherit;text-decoration-line:underline}._69f40d9212adc58d__is-brand,._69f40d9212adc58d__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))}._69f40d9212adc58d__is-brand:active,._69f40d9212adc58d__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))}._9a9c54c6e67b4c3c__is-neutral,._9a9c54c6e67b4c3c__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)}._9a9c54c6e67b4c3c__is-neutral:active,._9a9c54c6e67b4c3c__is-neutral:hover{--_gcd-a-color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e)}._93be0b747897baad__is-unstyled{--_gcd-a-border-radius:0;--_gcd-a-color:inherit;color:inherit;text-decoration:none}._9c39df40fdc09594__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}._9c39df40fdc09594__link-icon:after{content:"\\2060\\2197"}._9c39df40fdc09594__link-icon:dir(rtl):after{content:"\\2060\\2196"}}}');
10721    }
10722    var style_default8 = { "link": "a574f9f242212d58__link", "link-with-icon": "_2d2f0506e717a46c__link-with-icon", "link-contents": "_92b7b6a03fbb27ac__link-contents", "is-brand": "_69f40d9212adc58d__is-brand", "is-neutral": "_9a9c54c6e67b4c3c__is-neutral", "is-unstyled": "_93be0b747897baad__is-unstyled", "link-icon": "_9c39df40fdc09594__link-icon" };
10723    if (typeof process === "undefined" || true) {
10724      registerStyle9("726f348f3f", "._78c10a0773e51a91__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)}._5b33aa2d48624b4f__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)}}._980b3b4776ac8f81__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._43e478b4279a076c__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._698099e25b0fb1a6__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)._326aee4184d261fd__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)}.e9576240835601ba__a,.e9576240835601ba__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)}._3f05789653864a73__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)}._3c72ff72abe57859__li{margin:var(--_gcd-li-margin,0)}[role=treeitem] span._79d16267c15d9eb2__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)}");
10725    }
10726    var global_css_defense_default3 = { "button": "_78c10a0773e51a91__button", "input": "_5b33aa2d48624b4f__input", "textarea": "_980b3b4776ac8f81__textarea", "div": "_43e478b4279a076c__div", "p": "_698099e25b0fb1a6__p", "heading": "_326aee4184d261fd__heading", "a": "e9576240835601ba__a", "ol": "_3f05789653864a73__ol", "li": "_3c72ff72abe57859__li", "span": "_79d16267c15d9eb2__span" };
10727    var Link = (0, import_element24.forwardRef)(
10728      function UnforwardedLink({
10729        children,
10730        variant = "default",
10731        tone = "brand",
10732        openInNewTab = false,
10733        target,
10734        render,
10735        className,
10736        ...props
10737      }, ref) {
10738        const shouldShowNewTabIndicator = openInNewTab || /^_blank$/i.test(target ?? "");
10739        const element = useRender({
10740          render,
10741          defaultTagName: "a",
10742          ref,
10743          props: mergeProps(props, {
10744            className: clsx_default(
10745              global_css_defense_default3.a,
10746              resets_default3["box-sizing"],
10747              focus_module_default2["outset-ring--focus-except-active"],
10748              variant !== "unstyled" && style_default8.link,
10749              variant !== "unstyled" && shouldShowNewTabIndicator && style_default8["link-with-icon"],
10750              variant !== "unstyled" && style_default8[`is-$tone}`],
10751              variant === "unstyled" && style_default8["is-unstyled"],
10752              className
10753            ),
10754            target: target ?? (openInNewTab ? "_blank" : void 0),
10755            children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
10756              shouldShowNewTabIndicator && variant !== "unstyled" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: style_default8["link-contents"], children }) : children,
10757              shouldShowNewTabIndicator && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
10758                "span",
10759                {
10760                  className: style_default8["link-icon"],
10761                  role: "img",
10762                  "aria-label": (
10763                    /* translators: accessibility text appended to link text */
10764                    (0, import_i18n5.__)("(opens in a new tab)")
10765                  )
10766                }
10767              )
10768            ] })
10769          })
10770        });
10771        return element;
10772      }
10773    );
10774  
10775    // packages/ui/build-module/icon-button/icon-button.mjs
10776    var import_element25 = __toESM(require_element(), 1);
10777    var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
10778    var STYLE_HASH_ATTRIBUTE10 = "data-wp-hash";
10779    function getRuntime10() {
10780      const globalScope = globalThis;
10781      if (globalScope.__wpStyleRuntime) {
10782        return globalScope.__wpStyleRuntime;
10783      }
10784      globalScope.__wpStyleRuntime = {
10785        documents: /* @__PURE__ */ new Map(),
10786        styles: /* @__PURE__ */ new Map(),
10787        injectedStyles: /* @__PURE__ */ new WeakMap()
10788      };
10789      if (typeof document !== "undefined") {
10790        registerDocument10(document);
10791      }
10792      return globalScope.__wpStyleRuntime;
10793    }
10794    function documentContainsStyleHash10(targetDocument, hash) {
10795      if (!targetDocument.head) {
10796        return false;
10797      }
10798      for (const style of targetDocument.head.querySelectorAll(
10799        `style[$STYLE_HASH_ATTRIBUTE10}]`
10800      )) {
10801        if (style.getAttribute(STYLE_HASH_ATTRIBUTE10) === hash) {
10802          return true;
10803        }
10804      }
10805      return false;
10806    }
10807    function injectStyle10(targetDocument, hash, css) {
10808      if (!targetDocument.head) {
10809        return;
10810      }
10811      const runtime = getRuntime10();
10812      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10813      if (!injectedStyles) {
10814        injectedStyles = /* @__PURE__ */ new Set();
10815        runtime.injectedStyles.set(targetDocument, injectedStyles);
10816      }
10817      if (injectedStyles.has(hash)) {
10818        return;
10819      }
10820      if (documentContainsStyleHash10(targetDocument, hash)) {
10821        injectedStyles.add(hash);
10822        return;
10823      }
10824      const style = targetDocument.createElement("style");
10825      style.setAttribute(STYLE_HASH_ATTRIBUTE10, hash);
10826      style.appendChild(targetDocument.createTextNode(css));
10827      targetDocument.head.appendChild(style);
10828      injectedStyles.add(hash);
10829    }
10830    function registerDocument10(targetDocument) {
10831      const runtime = getRuntime10();
10832      runtime.documents.set(
10833        targetDocument,
10834        (runtime.documents.get(targetDocument) ?? 0) + 1
10835      );
10836      for (const [hash, css] of runtime.styles) {
10837        injectStyle10(targetDocument, hash, css);
10838      }
10839      return () => {
10840        const count = runtime.documents.get(targetDocument);
10841        if (count === void 0) {
10842          return;
10843        }
10844        if (count <= 1) {
10845          runtime.documents.delete(targetDocument);
10846          return;
10847        }
10848        runtime.documents.set(targetDocument, count - 1);
10849      };
10850    }
10851    function registerStyle10(hash, css) {
10852      const runtime = getRuntime10();
10853      runtime.styles.set(hash, css);
10854      for (const targetDocument of runtime.documents.keys()) {
10855        injectStyle10(targetDocument, hash, css);
10856      }
10857    }
10858    if (typeof process === "undefined" || true) {
10859      registerStyle10("2a111665b3", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer compositions{._7f5dbf30e44a43dd__icon-button{--wp-ui-button-aspect-ratio:1;--wp-ui-button-padding-inline:0px;--wp-ui-button-min-width:unset}._1b3c0d159ecbf3d5__icon{margin:-1px}}}");
10860    }
10861    var style_default9 = { "icon-button": "_7f5dbf30e44a43dd__icon-button", "icon": "_1b3c0d159ecbf3d5__icon" };
10862    var IconButton = (0, import_element25.forwardRef)(
10863      function UnforwardedIconButton({
10864        label,
10865        className,
10866        // Prevent accidental forwarding of `children`
10867        children: _children,
10868        disabled: disabled2,
10869        focusableWhenDisabled = true,
10870        icon,
10871        size: size4,
10872        shortcut,
10873        positioner,
10874        "aria-describedby": ariaDescribedBy,
10875        "aria-keyshortcuts": ariaKeyShortcuts,
10876        ...restProps
10877      }, ref) {
10878        const classes = clsx_default(style_default9["icon-button"], className);
10879        const { descriptionId, targetProps } = useKeyboardShortcutProps({
10880          "aria-describedby": ariaDescribedBy,
10881          "aria-keyshortcuts": ariaKeyShortcuts,
10882          shortcut
10883        });
10884        return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Root, { children: [
10885          /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
10886            Trigger,
10887            {
10888              ref,
10889              ...targetProps,
10890              disabled: disabled2 && !focusableWhenDisabled,
10891              render: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10892                Button4,
10893                {
10894                  ...restProps,
10895                  size: size4,
10896                  "aria-label": label,
10897                  disabled: disabled2,
10898                  focusableWhenDisabled
10899                }
10900              ),
10901              className: classes,
10902              children: [
10903                /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { icon, size: 24, className: style_default9.icon }),
10904                shortcut && descriptionId && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10905                  KeyboardShortcutDescription,
10906                  {
10907                    descriptionId,
10908                    shortcut
10909                  }
10910                )
10911              ]
10912            }
10913          ),
10914          /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Popup, { positioner, children: [
10915            label,
10916            shortcut && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
10917              " ",
10918              /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(KeyboardShortcutDisplay, { shortcut })
10919            ] })
10920          ] })
10921        ] });
10922      }
10923    );
10924  
10925    // packages/ui/build-module/notice/index.mjs
10926    var notice_exports = {};
10927    __export(notice_exports, {
10928      ActionButton: () => ActionButton,
10929      ActionLink: () => ActionLink,
10930      Actions: () => Actions,
10931      CloseIconButton: () => CloseIconButton,
10932      Description: () => Description,
10933      Root: () => Root2,
10934      Title: () => Title
10935    });
10936  
10937    // packages/ui/build-module/notice/root.mjs
10938    var import_element26 = __toESM(require_element(), 1);
10939    var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
10940    var STYLE_HASH_ATTRIBUTE11 = "data-wp-hash";
10941    function getRuntime11() {
10942      const globalScope = globalThis;
10943      if (globalScope.__wpStyleRuntime) {
10944        return globalScope.__wpStyleRuntime;
10945      }
10946      globalScope.__wpStyleRuntime = {
10947        documents: /* @__PURE__ */ new Map(),
10948        styles: /* @__PURE__ */ new Map(),
10949        injectedStyles: /* @__PURE__ */ new WeakMap()
10950      };
10951      if (typeof document !== "undefined") {
10952        registerDocument11(document);
10953      }
10954      return globalScope.__wpStyleRuntime;
10955    }
10956    function documentContainsStyleHash11(targetDocument, hash) {
10957      if (!targetDocument.head) {
10958        return false;
10959      }
10960      for (const style of targetDocument.head.querySelectorAll(
10961        `style[$STYLE_HASH_ATTRIBUTE11}]`
10962      )) {
10963        if (style.getAttribute(STYLE_HASH_ATTRIBUTE11) === hash) {
10964          return true;
10965        }
10966      }
10967      return false;
10968    }
10969    function injectStyle11(targetDocument, hash, css) {
10970      if (!targetDocument.head) {
10971        return;
10972      }
10973      const runtime = getRuntime11();
10974      let injectedStyles = runtime.injectedStyles.get(targetDocument);
10975      if (!injectedStyles) {
10976        injectedStyles = /* @__PURE__ */ new Set();
10977        runtime.injectedStyles.set(targetDocument, injectedStyles);
10978      }
10979      if (injectedStyles.has(hash)) {
10980        return;
10981      }
10982      if (documentContainsStyleHash11(targetDocument, hash)) {
10983        injectedStyles.add(hash);
10984        return;
10985      }
10986      const style = targetDocument.createElement("style");
10987      style.setAttribute(STYLE_HASH_ATTRIBUTE11, hash);
10988      style.appendChild(targetDocument.createTextNode(css));
10989      targetDocument.head.appendChild(style);
10990      injectedStyles.add(hash);
10991    }
10992    function registerDocument11(targetDocument) {
10993      const runtime = getRuntime11();
10994      runtime.documents.set(
10995        targetDocument,
10996        (runtime.documents.get(targetDocument) ?? 0) + 1
10997      );
10998      for (const [hash, css] of runtime.styles) {
10999        injectStyle11(targetDocument, hash, css);
11000      }
11001      return () => {
11002        const count = runtime.documents.get(targetDocument);
11003        if (count === void 0) {
11004          return;
11005        }
11006        if (count <= 1) {
11007          runtime.documents.delete(targetDocument);
11008          return;
11009        }
11010        runtime.documents.set(targetDocument, count - 1);
11011      };
11012    }
11013    function registerStyle11(hash, css) {
11014      const runtime = getRuntime11();
11015      runtime.styles.set(hash, css);
11016      for (const targetDocument of runtime.documents.keys()) {
11017        injectStyle11(targetDocument, hash, css);
11018      }
11019    }
11020    if (typeof process === "undefined" || true) {
11021      registerStyle11("37477070fb", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.ccc29f9575c4c758__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
11022    }
11023    var resets_default4 = { "box-sizing": "ccc29f9575c4c758__box-sizing" };
11024    if (typeof process === "undefined" || true) {
11025      registerStyle11("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11026    }
11027    var style_default10 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11028    var icons = {
11029      neutral: null,
11030      info: info_default,
11031      warning: caution_default,
11032      success: published_default,
11033      error: error_default
11034    };
11035    var Root2 = (0, import_element26.forwardRef)(function Notice({ intent = "neutral", children, icon, render, ...restProps }, ref) {
11036      const iconElement = icon === null ? null : icon ?? icons[intent];
11037      const mergedClassName = clsx_default(
11038        style_default10.notice,
11039        style_default10[`is-$intent}`],
11040        resets_default4["box-sizing"]
11041      );
11042      const element = useRender({
11043        defaultTagName: "div",
11044        render,
11045        ref,
11046        props: mergeProps(
11047          {
11048            className: mergedClassName,
11049            children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
11050              children,
11051              iconElement && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
11052                Icon,
11053                {
11054                  className: style_default10.icon,
11055                  icon: iconElement
11056                }
11057              )
11058            ] })
11059          },
11060          restProps
11061        )
11062      });
11063      return element;
11064    });
11065  
11066    // packages/ui/build-module/notice/title.mjs
11067    var import_element27 = __toESM(require_element(), 1);
11068    var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
11069    var STYLE_HASH_ATTRIBUTE12 = "data-wp-hash";
11070    function getRuntime12() {
11071      const globalScope = globalThis;
11072      if (globalScope.__wpStyleRuntime) {
11073        return globalScope.__wpStyleRuntime;
11074      }
11075      globalScope.__wpStyleRuntime = {
11076        documents: /* @__PURE__ */ new Map(),
11077        styles: /* @__PURE__ */ new Map(),
11078        injectedStyles: /* @__PURE__ */ new WeakMap()
11079      };
11080      if (typeof document !== "undefined") {
11081        registerDocument12(document);
11082      }
11083      return globalScope.__wpStyleRuntime;
11084    }
11085    function documentContainsStyleHash12(targetDocument, hash) {
11086      if (!targetDocument.head) {
11087        return false;
11088      }
11089      for (const style of targetDocument.head.querySelectorAll(
11090        `style[$STYLE_HASH_ATTRIBUTE12}]`
11091      )) {
11092        if (style.getAttribute(STYLE_HASH_ATTRIBUTE12) === hash) {
11093          return true;
11094        }
11095      }
11096      return false;
11097    }
11098    function injectStyle12(targetDocument, hash, css) {
11099      if (!targetDocument.head) {
11100        return;
11101      }
11102      const runtime = getRuntime12();
11103      let injectedStyles = runtime.injectedStyles.get(targetDocument);
11104      if (!injectedStyles) {
11105        injectedStyles = /* @__PURE__ */ new Set();
11106        runtime.injectedStyles.set(targetDocument, injectedStyles);
11107      }
11108      if (injectedStyles.has(hash)) {
11109        return;
11110      }
11111      if (documentContainsStyleHash12(targetDocument, hash)) {
11112        injectedStyles.add(hash);
11113        return;
11114      }
11115      const style = targetDocument.createElement("style");
11116      style.setAttribute(STYLE_HASH_ATTRIBUTE12, hash);
11117      style.appendChild(targetDocument.createTextNode(css));
11118      targetDocument.head.appendChild(style);
11119      injectedStyles.add(hash);
11120    }
11121    function registerDocument12(targetDocument) {
11122      const runtime = getRuntime12();
11123      runtime.documents.set(
11124        targetDocument,
11125        (runtime.documents.get(targetDocument) ?? 0) + 1
11126      );
11127      for (const [hash, css] of runtime.styles) {
11128        injectStyle12(targetDocument, hash, css);
11129      }
11130      return () => {
11131        const count = runtime.documents.get(targetDocument);
11132        if (count === void 0) {
11133          return;
11134        }
11135        if (count <= 1) {
11136          runtime.documents.delete(targetDocument);
11137          return;
11138        }
11139        runtime.documents.set(targetDocument, count - 1);
11140      };
11141    }
11142    function registerStyle12(hash, css) {
11143      const runtime = getRuntime12();
11144      runtime.styles.set(hash, css);
11145      for (const targetDocument of runtime.documents.keys()) {
11146        injectStyle12(targetDocument, hash, css);
11147      }
11148    }
11149    if (typeof process === "undefined" || true) {
11150      registerStyle12("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11151    }
11152    var style_default11 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11153    var Title = (0, import_element27.forwardRef)(
11154      function NoticeTitle({ className, ...props }, ref) {
11155        return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
11156          Text,
11157          {
11158            ref,
11159            variant: "heading-md",
11160            className: clsx_default(style_default11.title, className),
11161            ...props
11162          }
11163        );
11164      }
11165    );
11166  
11167    // packages/ui/build-module/notice/description.mjs
11168    var import_element28 = __toESM(require_element(), 1);
11169    var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
11170    var STYLE_HASH_ATTRIBUTE13 = "data-wp-hash";
11171    function getRuntime13() {
11172      const globalScope = globalThis;
11173      if (globalScope.__wpStyleRuntime) {
11174        return globalScope.__wpStyleRuntime;
11175      }
11176      globalScope.__wpStyleRuntime = {
11177        documents: /* @__PURE__ */ new Map(),
11178        styles: /* @__PURE__ */ new Map(),
11179        injectedStyles: /* @__PURE__ */ new WeakMap()
11180      };
11181      if (typeof document !== "undefined") {
11182        registerDocument13(document);
11183      }
11184      return globalScope.__wpStyleRuntime;
11185    }
11186    function documentContainsStyleHash13(targetDocument, hash) {
11187      if (!targetDocument.head) {
11188        return false;
11189      }
11190      for (const style of targetDocument.head.querySelectorAll(
11191        `style[$STYLE_HASH_ATTRIBUTE13}]`
11192      )) {
11193        if (style.getAttribute(STYLE_HASH_ATTRIBUTE13) === hash) {
11194          return true;
11195        }
11196      }
11197      return false;
11198    }
11199    function injectStyle13(targetDocument, hash, css) {
11200      if (!targetDocument.head) {
11201        return;
11202      }
11203      const runtime = getRuntime13();
11204      let injectedStyles = runtime.injectedStyles.get(targetDocument);
11205      if (!injectedStyles) {
11206        injectedStyles = /* @__PURE__ */ new Set();
11207        runtime.injectedStyles.set(targetDocument, injectedStyles);
11208      }
11209      if (injectedStyles.has(hash)) {
11210        return;
11211      }
11212      if (documentContainsStyleHash13(targetDocument, hash)) {
11213        injectedStyles.add(hash);
11214        return;
11215      }
11216      const style = targetDocument.createElement("style");
11217      style.setAttribute(STYLE_HASH_ATTRIBUTE13, hash);
11218      style.appendChild(targetDocument.createTextNode(css));
11219      targetDocument.head.appendChild(style);
11220      injectedStyles.add(hash);
11221    }
11222    function registerDocument13(targetDocument) {
11223      const runtime = getRuntime13();
11224      runtime.documents.set(
11225        targetDocument,
11226        (runtime.documents.get(targetDocument) ?? 0) + 1
11227      );
11228      for (const [hash, css] of runtime.styles) {
11229        injectStyle13(targetDocument, hash, css);
11230      }
11231      return () => {
11232        const count = runtime.documents.get(targetDocument);
11233        if (count === void 0) {
11234          return;
11235        }
11236        if (count <= 1) {
11237          runtime.documents.delete(targetDocument);
11238          return;
11239        }
11240        runtime.documents.set(targetDocument, count - 1);
11241      };
11242    }
11243    function registerStyle13(hash, css) {
11244      const runtime = getRuntime13();
11245      runtime.styles.set(hash, css);
11246      for (const targetDocument of runtime.documents.keys()) {
11247        injectStyle13(targetDocument, hash, css);
11248      }
11249    }
11250    if (typeof process === "undefined" || true) {
11251      registerStyle13("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11252    }
11253    var style_default12 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11254    var Description = (0, import_element28.forwardRef)(
11255      function NoticeDescription({ className, ...props }, ref) {
11256        return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
11257          Text,
11258          {
11259            ref,
11260            variant: "body-md",
11261            className: clsx_default(style_default12.description, className),
11262            ...props
11263          }
11264        );
11265      }
11266    );
11267  
11268    // packages/ui/build-module/notice/actions.mjs
11269    var import_element29 = __toESM(require_element(), 1);
11270    var STYLE_HASH_ATTRIBUTE14 = "data-wp-hash";
11271    function getRuntime14() {
11272      const globalScope = globalThis;
11273      if (globalScope.__wpStyleRuntime) {
11274        return globalScope.__wpStyleRuntime;
11275      }
11276      globalScope.__wpStyleRuntime = {
11277        documents: /* @__PURE__ */ new Map(),
11278        styles: /* @__PURE__ */ new Map(),
11279        injectedStyles: /* @__PURE__ */ new WeakMap()
11280      };
11281      if (typeof document !== "undefined") {
11282        registerDocument14(document);
11283      }
11284      return globalScope.__wpStyleRuntime;
11285    }
11286    function documentContainsStyleHash14(targetDocument, hash) {
11287      if (!targetDocument.head) {
11288        return false;
11289      }
11290      for (const style of targetDocument.head.querySelectorAll(
11291        `style[$STYLE_HASH_ATTRIBUTE14}]`
11292      )) {
11293        if (style.getAttribute(STYLE_HASH_ATTRIBUTE14) === hash) {
11294          return true;
11295        }
11296      }
11297      return false;
11298    }
11299    function injectStyle14(targetDocument, hash, css) {
11300      if (!targetDocument.head) {
11301        return;
11302      }
11303      const runtime = getRuntime14();
11304      let injectedStyles = runtime.injectedStyles.get(targetDocument);
11305      if (!injectedStyles) {
11306        injectedStyles = /* @__PURE__ */ new Set();
11307        runtime.injectedStyles.set(targetDocument, injectedStyles);
11308      }
11309      if (injectedStyles.has(hash)) {
11310        return;
11311      }
11312      if (documentContainsStyleHash14(targetDocument, hash)) {
11313        injectedStyles.add(hash);
11314        return;
11315      }
11316      const style = targetDocument.createElement("style");
11317      style.setAttribute(STYLE_HASH_ATTRIBUTE14, hash);
11318      style.appendChild(targetDocument.createTextNode(css));
11319      targetDocument.head.appendChild(style);
11320      injectedStyles.add(hash);
11321    }
11322    function registerDocument14(targetDocument) {
11323      const runtime = getRuntime14();
11324      runtime.documents.set(
11325        targetDocument,
11326        (runtime.documents.get(targetDocument) ?? 0) + 1
11327      );
11328      for (const [hash, css] of runtime.styles) {
11329        injectStyle14(targetDocument, hash, css);
11330      }
11331      return () => {
11332        const count = runtime.documents.get(targetDocument);
11333        if (count === void 0) {
11334          return;
11335        }
11336        if (count <= 1) {
11337          runtime.documents.delete(targetDocument);
11338          return;
11339        }
11340        runtime.documents.set(targetDocument, count - 1);
11341      };
11342    }
11343    function registerStyle14(hash, css) {
11344      const runtime = getRuntime14();
11345      runtime.styles.set(hash, css);
11346      for (const targetDocument of runtime.documents.keys()) {
11347        injectStyle14(targetDocument, hash, css);
11348      }
11349    }
11350    if (typeof process === "undefined" || true) {
11351      registerStyle14("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11352    }
11353    var style_default13 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11354    var Actions = (0, import_element29.forwardRef)(
11355      function NoticeActions({ render, ...props }, ref) {
11356        const element = useRender({
11357          defaultTagName: "div",
11358          render,
11359          ref,
11360          props: mergeProps(
11361            {
11362              className: style_default13.actions
11363            },
11364            props
11365          )
11366        });
11367        return element;
11368      }
11369    );
11370  
11371    // packages/ui/build-module/notice/close-icon-button.mjs
11372    var import_element30 = __toESM(require_element(), 1);
11373    var import_i18n6 = __toESM(require_i18n(), 1);
11374    var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
11375    var STYLE_HASH_ATTRIBUTE15 = "data-wp-hash";
11376    function getRuntime15() {
11377      const globalScope = globalThis;
11378      if (globalScope.__wpStyleRuntime) {
11379        return globalScope.__wpStyleRuntime;
11380      }
11381      globalScope.__wpStyleRuntime = {
11382        documents: /* @__PURE__ */ new Map(),
11383        styles: /* @__PURE__ */ new Map(),
11384        injectedStyles: /* @__PURE__ */ new WeakMap()
11385      };
11386      if (typeof document !== "undefined") {
11387        registerDocument15(document);
11388      }
11389      return globalScope.__wpStyleRuntime;
11390    }
11391    function documentContainsStyleHash15(targetDocument, hash) {
11392      if (!targetDocument.head) {
11393        return false;
11394      }
11395      for (const style of targetDocument.head.querySelectorAll(
11396        `style[$STYLE_HASH_ATTRIBUTE15}]`
11397      )) {
11398        if (style.getAttribute(STYLE_HASH_ATTRIBUTE15) === hash) {
11399          return true;
11400        }
11401      }
11402      return false;
11403    }
11404    function injectStyle15(targetDocument, hash, css) {
11405      if (!targetDocument.head) {
11406        return;
11407      }
11408      const runtime = getRuntime15();
11409      let injectedStyles = runtime.injectedStyles.get(targetDocument);
11410      if (!injectedStyles) {
11411        injectedStyles = /* @__PURE__ */ new Set();
11412        runtime.injectedStyles.set(targetDocument, injectedStyles);
11413      }
11414      if (injectedStyles.has(hash)) {
11415        return;
11416      }
11417      if (documentContainsStyleHash15(targetDocument, hash)) {
11418        injectedStyles.add(hash);
11419        return;
11420      }
11421      const style = targetDocument.createElement("style");
11422      style.setAttribute(STYLE_HASH_ATTRIBUTE15, hash);
11423      style.appendChild(targetDocument.createTextNode(css));
11424      targetDocument.head.appendChild(style);
11425      injectedStyles.add(hash);
11426    }
11427    function registerDocument15(targetDocument) {
11428      const runtime = getRuntime15();
11429      runtime.documents.set(
11430        targetDocument,
11431        (runtime.documents.get(targetDocument) ?? 0) + 1
11432      );
11433      for (const [hash, css] of runtime.styles) {
11434        injectStyle15(targetDocument, hash, css);
11435      }
11436      return () => {
11437        const count = runtime.documents.get(targetDocument);
11438        if (count === void 0) {
11439          return;
11440        }
11441        if (count <= 1) {
11442          runtime.documents.delete(targetDocument);
11443          return;
11444        }
11445        runtime.documents.set(targetDocument, count - 1);
11446      };
11447    }
11448    function registerStyle15(hash, css) {
11449      const runtime = getRuntime15();
11450      runtime.styles.set(hash, css);
11451      for (const targetDocument of runtime.documents.keys()) {
11452        injectStyle15(targetDocument, hash, css);
11453      }
11454    }
11455    if (typeof process === "undefined" || true) {
11456      registerStyle15("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11457    }
11458    var style_default14 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11459    var CloseIconButton = (0, import_element30.forwardRef)(function NoticeCloseIconButton({ className, icon = close_small_default, label = (0, import_i18n6.__)("Dismiss"), ...props }, ref) {
11460      return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
11461        IconButton,
11462        {
11463          ...props,
11464          ref,
11465          className: clsx_default(style_default14["close-icon"], className),
11466          variant: "minimal",
11467          size: "small",
11468          tone: "neutral",
11469          icon,
11470          label
11471        }
11472      );
11473    });
11474  
11475    // packages/ui/build-module/notice/action-button.mjs
11476    var import_element31 = __toESM(require_element(), 1);
11477    var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
11478    var STYLE_HASH_ATTRIBUTE16 = "data-wp-hash";
11479    function getRuntime16() {
11480      const globalScope = globalThis;
11481      if (globalScope.__wpStyleRuntime) {
11482        return globalScope.__wpStyleRuntime;
11483      }
11484      globalScope.__wpStyleRuntime = {
11485        documents: /* @__PURE__ */ new Map(),
11486        styles: /* @__PURE__ */ new Map(),
11487        injectedStyles: /* @__PURE__ */ new WeakMap()
11488      };
11489      if (typeof document !== "undefined") {
11490        registerDocument16(document);
11491      }
11492      return globalScope.__wpStyleRuntime;
11493    }
11494    function documentContainsStyleHash16(targetDocument, hash) {
11495      if (!targetDocument.head) {
11496        return false;
11497      }
11498      for (const style of targetDocument.head.querySelectorAll(
11499        `style[$STYLE_HASH_ATTRIBUTE16}]`
11500      )) {
11501        if (style.getAttribute(STYLE_HASH_ATTRIBUTE16) === hash) {
11502          return true;
11503        }
11504      }
11505      return false;
11506    }
11507    function injectStyle16(targetDocument, hash, css) {
11508      if (!targetDocument.head) {
11509        return;
11510      }
11511      const runtime = getRuntime16();
11512      let injectedStyles = runtime.injectedStyles.get(targetDocument);
11513      if (!injectedStyles) {
11514        injectedStyles = /* @__PURE__ */ new Set();
11515        runtime.injectedStyles.set(targetDocument, injectedStyles);
11516      }
11517      if (injectedStyles.has(hash)) {
11518        return;
11519      }
11520      if (documentContainsStyleHash16(targetDocument, hash)) {
11521        injectedStyles.add(hash);
11522        return;
11523      }
11524      const style = targetDocument.createElement("style");
11525      style.setAttribute(STYLE_HASH_ATTRIBUTE16, hash);
11526      style.appendChild(targetDocument.createTextNode(css));
11527      targetDocument.head.appendChild(style);
11528      injectedStyles.add(hash);
11529    }
11530    function registerDocument16(targetDocument) {
11531      const runtime = getRuntime16();
11532      runtime.documents.set(
11533        targetDocument,
11534        (runtime.documents.get(targetDocument) ?? 0) + 1
11535      );
11536      for (const [hash, css] of runtime.styles) {
11537        injectStyle16(targetDocument, hash, css);
11538      }
11539      return () => {
11540        const count = runtime.documents.get(targetDocument);
11541        if (count === void 0) {
11542          return;
11543        }
11544        if (count <= 1) {
11545          runtime.documents.delete(targetDocument);
11546          return;
11547        }
11548        runtime.documents.set(targetDocument, count - 1);
11549      };
11550    }
11551    function registerStyle16(hash, css) {
11552      const runtime = getRuntime16();
11553      runtime.styles.set(hash, css);
11554      for (const targetDocument of runtime.documents.keys()) {
11555        injectStyle16(targetDocument, hash, css);
11556      }
11557    }
11558    if (typeof process === "undefined" || true) {
11559      registerStyle16("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11560    }
11561    var style_default15 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11562    var ActionButton = (0, import_element31.forwardRef)(
11563      function NoticeActionButton({ className, loading, loadingAnnouncement, variant, ...props }, ref) {
11564        const loadingProps = loading !== void 0 ? { loading, loadingAnnouncement: loadingAnnouncement ?? "" } : {};
11565        return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
11566          Button4,
11567          {
11568            ...props,
11569            ...loadingProps,
11570            ref,
11571            size: "compact",
11572            tone: "neutral",
11573            variant,
11574            className: clsx_default(
11575              style_default15["action-button"],
11576              style_default15[`is-action-button-$variant}`],
11577              className
11578            )
11579          }
11580        );
11581      }
11582    );
11583  
11584    // packages/ui/build-module/notice/action-link.mjs
11585    var import_element32 = __toESM(require_element(), 1);
11586    var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
11587    var STYLE_HASH_ATTRIBUTE17 = "data-wp-hash";
11588    function getRuntime17() {
11589      const globalScope = globalThis;
11590      if (globalScope.__wpStyleRuntime) {
11591        return globalScope.__wpStyleRuntime;
11592      }
11593      globalScope.__wpStyleRuntime = {
11594        documents: /* @__PURE__ */ new Map(),
11595        styles: /* @__PURE__ */ new Map(),
11596        injectedStyles: /* @__PURE__ */ new WeakMap()
11597      };
11598      if (typeof document !== "undefined") {
11599        registerDocument17(document);
11600      }
11601      return globalScope.__wpStyleRuntime;
11602    }
11603    function documentContainsStyleHash17(targetDocument, hash) {
11604      if (!targetDocument.head) {
11605        return false;
11606      }
11607      for (const style of targetDocument.head.querySelectorAll(
11608        `style[$STYLE_HASH_ATTRIBUTE17}]`
11609      )) {
11610        if (style.getAttribute(STYLE_HASH_ATTRIBUTE17) === hash) {
11611          return true;
11612        }
11613      }
11614      return false;
11615    }
11616    function injectStyle17(targetDocument, hash, css) {
11617      if (!targetDocument.head) {
11618        return;
11619      }
11620      const runtime = getRuntime17();
11621      let injectedStyles = runtime.injectedStyles.get(targetDocument);
11622      if (!injectedStyles) {
11623        injectedStyles = /* @__PURE__ */ new Set();
11624        runtime.injectedStyles.set(targetDocument, injectedStyles);
11625      }
11626      if (injectedStyles.has(hash)) {
11627        return;
11628      }
11629      if (documentContainsStyleHash17(targetDocument, hash)) {
11630        injectedStyles.add(hash);
11631        return;
11632      }
11633      const style = targetDocument.createElement("style");
11634      style.setAttribute(STYLE_HASH_ATTRIBUTE17, hash);
11635      style.appendChild(targetDocument.createTextNode(css));
11636      targetDocument.head.appendChild(style);
11637      injectedStyles.add(hash);
11638    }
11639    function registerDocument17(targetDocument) {
11640      const runtime = getRuntime17();
11641      runtime.documents.set(
11642        targetDocument,
11643        (runtime.documents.get(targetDocument) ?? 0) + 1
11644      );
11645      for (const [hash, css] of runtime.styles) {
11646        injectStyle17(targetDocument, hash, css);
11647      }
11648      return () => {
11649        const count = runtime.documents.get(targetDocument);
11650        if (count === void 0) {
11651          return;
11652        }
11653        if (count <= 1) {
11654          runtime.documents.delete(targetDocument);
11655          return;
11656        }
11657        runtime.documents.set(targetDocument, count - 1);
11658      };
11659    }
11660    function registerStyle17(hash, css) {
11661      const runtime = getRuntime17();
11662      runtime.styles.set(hash, css);
11663      for (const targetDocument of runtime.documents.keys()) {
11664        injectStyle17(targetDocument, hash, css);
11665      }
11666    }
11667    if (typeof process === "undefined" || true) {
11668      registerStyle17("e57e872b6c", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._173ad03087dbb509__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)}._86733bd626c7e048__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._6688caffadaf5a66__description{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._48b3142dec93ee87__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._173ad03087dbb509__notice:has(._6688caffadaf5a66__description) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}.adcfc74c7c481a8b__action-button{flex-shrink:0}.b0ce2ddf3e16f445__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)}}._234d6ae581e5eb29__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._4e822398b0e00dd5__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)}._1ef9a1d966bd5220__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)}.e98dc9c1e2c0bf3b__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)}._673065a55bda7056__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){._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._48b3142dec93ee87__actions,._173ad03087dbb509__notice:has(._6d6c0651ee903d00__title) ._6688caffadaf5a66__description{grid-column:1/3}}}@layer compositions{._6d6c0651ee903d00__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)}.b0ce2ddf3e16f445__action-link{margin-block:auto}._234d6ae581e5eb29__close-icon,.adcfc74c7c481a8b__action-button,.b0ce2ddf3e16f445__action-link{mix-blend-mode:luminosity;@media (forced-colors:active){mix-blend-mode:normal}}}}");
11669    }
11670    var style_default16 = { "notice": "_173ad03087dbb509__notice", "icon": "_86733bd626c7e048__icon", "description": "_6688caffadaf5a66__description", "actions": "_48b3142dec93ee87__actions", "title": "_6d6c0651ee903d00__title", "action-button": "adcfc74c7c481a8b__action-button", "action-link": "b0ce2ddf3e16f445__action-link", "close-icon": "_234d6ae581e5eb29__close-icon", "is-info": "_4e822398b0e00dd5__is-info", "is-warning": "_1ef9a1d966bd5220__is-warning", "is-success": "e98dc9c1e2c0bf3b__is-success", "is-error": "_673065a55bda7056__is-error" };
11671    var ActionLink = (0, import_element32.forwardRef)(
11672      function NoticeActionLink({ className, render, ...props }, ref) {
11673        return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
11674          Text,
11675          {
11676            ref,
11677            className: clsx_default(style_default16["action-link"], className),
11678            ...props,
11679            variant: "body-md",
11680            render: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Link, { tone: "neutral", variant: "default", render })
11681          }
11682        );
11683      }
11684    );
11685  
11686    // packages/block-directory/build-module/components/block-ratings/stars.mjs
11687    var import_i18n7 = __toESM(require_i18n(), 1);
11688    var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
11689    function Stars({ rating }) {
11690      const stars = Math.round(rating / 0.5) * 0.5;
11691      const fullStarCount = Math.floor(rating);
11692      const halfStarCount = Math.ceil(rating - fullStarCount);
11693      const emptyStarCount = 5 - (fullStarCount + halfStarCount);
11694      return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
11695        "span",
11696        {
11697          "aria-label": (0, import_i18n7.sprintf)(
11698            /* translators: %s: number of stars. */
11699            (0, import_i18n7.__)("%s out of 5 stars"),
11700            stars
11701          ),
11702          children: [
11703            Array.from({ length: fullStarCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11704              icon_default,
11705              {
11706                className: "block-directory-block-ratings__star-full",
11707                icon: star_filled_default,
11708                size: 16
11709              },
11710              `full_stars_$i}`
11711            )),
11712            Array.from({ length: halfStarCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11713              icon_default,
11714              {
11715                className: "block-directory-block-ratings__star-half-full",
11716                icon: star_half_default,
11717                size: 16
11718              },
11719              `half_stars_$i}`
11720            )),
11721            Array.from({ length: emptyStarCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11722              icon_default,
11723              {
11724                className: "block-directory-block-ratings__star-empty",
11725                icon: star_empty_default,
11726                size: 16
11727              },
11728              `empty_stars_$i}`
11729            ))
11730          ]
11731        }
11732      );
11733    }
11734    var stars_default = Stars;
11735  
11736    // packages/block-directory/build-module/components/block-ratings/index.mjs
11737    var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
11738    var BlockRatings = ({ rating }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "block-directory-block-ratings", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(stars_default, { rating }) });
11739    var block_ratings_default = BlockRatings;
11740  
11741    // packages/block-directory/build-module/components/downloadable-block-icon/index.mjs
11742    var import_block_editor2 = __toESM(require_block_editor(), 1);
11743    var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
11744    function DownloadableBlockIcon({ icon }) {
11745      const className = "block-directory-downloadable-block-icon";
11746      return icon.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/) !== null ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("img", { className, src: icon, alt: "" }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_block_editor2.BlockIcon, { className, icon, showColors: true });
11747    }
11748    var downloadable_block_icon_default = DownloadableBlockIcon;
11749  
11750    // packages/block-directory/build-module/components/downloadable-block-notice/index.mjs
11751    var import_i18n8 = __toESM(require_i18n(), 1);
11752    var import_data5 = __toESM(require_data(), 1);
11753    var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
11754    var DownloadableBlockNotice = ({ block }) => {
11755      const errorNotice = (0, import_data5.useSelect)(
11756        (select) => select(store).getErrorNoticeForBlock(block.id),
11757        [block]
11758      );
11759      if (!errorNotice) {
11760        return null;
11761      }
11762      return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "block-directory-downloadable-block-notice", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "block-directory-downloadable-block-notice__content", children: [
11763        errorNotice.message,
11764        errorNotice.isFatal ? " " + (0, import_i18n8.__)("Try reloading the page.") : null
11765      ] }) });
11766    };
11767    var downloadable_block_notice_default = DownloadableBlockNotice;
11768  
11769    // packages/block-directory/build-module/components/downloadable-block-list-item/index.mjs
11770    var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
11771    function getDownloadableBlockLabel({ title, rating, ratingCount }, { hasNotice, isInstalled, isInstalling: isInstalling2 }) {
11772      const stars = Math.round(rating / 0.5) * 0.5;
11773      if (!isInstalled && hasNotice) {
11774        return (0, import_i18n9.sprintf)(
11775          /* translators: %s: block title */
11776          (0, import_i18n9.__)("Retry installing %s."),
11777          (0, import_html_entities.decodeEntities)(title)
11778        );
11779      }
11780      if (isInstalled) {
11781        return (0, import_i18n9.sprintf)(
11782          /* translators: %s: block title */
11783          (0, import_i18n9.__)("Add %s."),
11784          (0, import_html_entities.decodeEntities)(title)
11785        );
11786      }
11787      if (isInstalling2) {
11788        return (0, import_i18n9.sprintf)(
11789          /* translators: %s: block title */
11790          (0, import_i18n9.__)("Installing %s."),
11791          (0, import_html_entities.decodeEntities)(title)
11792        );
11793      }
11794      if (ratingCount < 1) {
11795        return (0, import_i18n9.sprintf)(
11796          /* translators: %s: block title */
11797          (0, import_i18n9.__)("Install %s."),
11798          (0, import_html_entities.decodeEntities)(title)
11799        );
11800      }
11801      return (0, import_i18n9.sprintf)(
11802        /* translators: 1: block title, 2: average rating, 3: total ratings count. */
11803        (0, import_i18n9._n)(
11804          "Install %1$s. %2$s stars with %3$s review.",
11805          "Install %1$s. %2$s stars with %3$s reviews.",
11806          ratingCount
11807        ),
11808        (0, import_html_entities.decodeEntities)(title),
11809        stars,
11810        ratingCount
11811      );
11812    }
11813    function DownloadableBlockListItem({ item, onClick }) {
11814      const { author, description, icon, rating, title } = item;
11815      const isInstalled = !!(0, import_blocks3.getBlockType)(item.name);
11816      const { hasNotice, isInstalling: isInstalling2, isInstallable } = (0, import_data6.useSelect)(
11817        (select) => {
11818          const { getErrorNoticeForBlock: getErrorNoticeForBlock2, isInstalling: isBlockInstalling } = select(store);
11819          const notice = getErrorNoticeForBlock2(item.id);
11820          const hasFatal = notice && notice.isFatal;
11821          return {
11822            hasNotice: !!notice,
11823            isInstalling: isBlockInstalling(item.id),
11824            isInstallable: !hasFatal
11825          };
11826        },
11827        [item]
11828      );
11829      let statusText = "";
11830      if (isInstalled) {
11831        statusText = (0, import_i18n9.__)("Installed!");
11832      } else if (isInstalling2) {
11833        statusText = (0, import_i18n9.__)("Installing\u2026");
11834      }
11835      const itemLabel = getDownloadableBlockLabel(item, {
11836        hasNotice,
11837        isInstalled,
11838        isInstalling: isInstalling2
11839      });
11840      return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(tooltip_exports.Root, { children: [
11841        /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
11842          tooltip_exports.Trigger,
11843          {
11844            render: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
11845              import_components.Composite.Item,
11846              {
11847                className: clsx_default(
11848                  "block-directory-downloadable-block-list-item",
11849                  isInstalling2 && "is-installing"
11850                ),
11851                accessibleWhenDisabled: true,
11852                disabled: isInstalling2 || !isInstallable,
11853                onClick: (event) => {
11854                  event.preventDefault();
11855                  onClick();
11856                },
11857                "aria-label": itemLabel,
11858                type: "button",
11859                role: "option",
11860                children: [
11861                  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "block-directory-downloadable-block-list-item__icon", children: [
11862                    /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
11863                      downloadable_block_icon_default,
11864                      {
11865                        icon,
11866                        title
11867                      }
11868                    ),
11869                    isInstalling2 ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "block-directory-downloadable-block-list-item__spinner", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components.Spinner, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(block_ratings_default, { rating })
11870                  ] }),
11871                  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "block-directory-downloadable-block-list-item__details", children: [
11872                    /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "block-directory-downloadable-block-list-item__title", children: (0, import_element33.createInterpolateElement)(
11873                      (0, import_i18n9.sprintf)(
11874                        /* translators: 1: block title. 2: author name. */
11875                        (0, import_i18n9.__)("%1$s <span>by %2$s</span>"),
11876                        (0, import_html_entities.decodeEntities)(title),
11877                        author
11878                      ),
11879                      {
11880                        span: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "block-directory-downloadable-block-list-item__author" })
11881                      }
11882                    ) }),
11883                    hasNotice ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(downloadable_block_notice_default, { block: item }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
11884                      /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "block-directory-downloadable-block-list-item__desc", children: !!statusText ? statusText : (0, import_html_entities.decodeEntities)(description) }),
11885                      isInstallable && !(isInstalled || isInstalling2) && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(VisuallyHidden, { children: (0, import_i18n9.__)("Install block") })
11886                    ] })
11887                  ] })
11888                ]
11889              }
11890            )
11891          }
11892        ),
11893        /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(tooltip_exports.Popup, { children: itemLabel })
11894      ] });
11895    }
11896    var downloadable_block_list_item_default = DownloadableBlockListItem;
11897  
11898    // packages/block-directory/build-module/components/downloadable-blocks-list/index.mjs
11899    var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
11900    var noop4 = () => {
11901    };
11902    function DownloadableBlocksList({ items, onHover = noop4, onSelect }) {
11903      const { installBlockType: installBlockType2 } = (0, import_data7.useDispatch)(store);
11904      if (!items.length) {
11905        return null;
11906      }
11907      return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
11908        import_components2.Composite,
11909        {
11910          role: "listbox",
11911          className: "block-directory-downloadable-blocks-list",
11912          "aria-label": (0, import_i18n10.__)("Blocks available for install"),
11913          children: items.map((item) => {
11914            return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
11915              downloadable_block_list_item_default,
11916              {
11917                onClick: () => {
11918                  if ((0, import_blocks4.getBlockType)(item.name)) {
11919                    onSelect(item);
11920                  } else {
11921                    installBlockType2(item).then((success) => {
11922                      if (success) {
11923                        onSelect(item);
11924                      }
11925                    });
11926                  }
11927                  onHover(null);
11928                },
11929                onHover,
11930                item
11931              },
11932              item.id
11933            );
11934          })
11935        }
11936      );
11937    }
11938    var downloadable_blocks_list_default = DownloadableBlocksList;
11939  
11940    // packages/block-directory/build-module/components/downloadable-blocks-panel/inserter-panel.mjs
11941    var import_i18n11 = __toESM(require_i18n(), 1);
11942    var import_element34 = __toESM(require_element(), 1);
11943    var import_a11y2 = __toESM(require_a11y(), 1);
11944    var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
11945    function DownloadableBlocksInserterPanel({
11946      children,
11947      downloadableItems,
11948      hasLocalBlocks
11949    }) {
11950      const count = downloadableItems.length;
11951      (0, import_element34.useEffect)(() => {
11952        (0, import_a11y2.speak)(
11953          (0, import_i18n11.sprintf)(
11954            /* translators: %d: number of available blocks. */
11955            (0, import_i18n11._n)(
11956              "%d additional block is available to install.",
11957              "%d additional blocks are available to install.",
11958              count
11959            ),
11960            count
11961          )
11962        );
11963      }, [count]);
11964      return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
11965        !hasLocalBlocks && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "block-directory-downloadable-blocks-panel__no-local", children: (0, import_i18n11.__)("No results available from your installed blocks.") }),
11966        /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "block-editor-inserter__quick-inserter-separator" }),
11967        /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "block-directory-downloadable-blocks-panel", children: [
11968          /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "block-directory-downloadable-blocks-panel__header", children: [
11969            /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("h2", { className: "block-directory-downloadable-blocks-panel__title", children: (0, import_i18n11.__)("Available to install") }),
11970            /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "block-directory-downloadable-blocks-panel__description", children: (0, import_i18n11.__)(
11971              "Select a block to install and add it to your post."
11972            ) })
11973          ] }),
11974          children
11975        ] })
11976      ] });
11977    }
11978    var inserter_panel_default = DownloadableBlocksInserterPanel;
11979  
11980    // packages/block-directory/build-module/components/downloadable-blocks-panel/no-results.mjs
11981    var import_i18n12 = __toESM(require_i18n(), 1);
11982    var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
11983    function DownloadableBlocksNoResults() {
11984      return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
11985        /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "block-editor-inserter__no-results", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { children: (0, import_i18n12.__)("No results found.") }) }),
11986        /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "block-editor-inserter__tips", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(notice_exports.Root, { intent: "info", icon: tip_default, children: [
11987          /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(notice_exports.Description, { children: (0, import_i18n12.__)("Interested in creating your own block?") }),
11988          /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(notice_exports.Actions, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
11989            notice_exports.ActionLink,
11990            {
11991              href: "https://developer.wordpress.org/block-editor/",
11992              openInNewTab: true,
11993              children: [
11994                (0, import_i18n12.__)("Get started here"),
11995                "."
11996              ]
11997            }
11998          ) })
11999        ] }) })
12000      ] });
12001    }
12002    var no_results_default = DownloadableBlocksNoResults;
12003  
12004    // packages/block-directory/build-module/components/downloadable-blocks-panel/index.mjs
12005    var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
12006    var EMPTY_ARRAY3 = [];
12007    var useDownloadableBlocks = (filterValue) => (0, import_data8.useSelect)(
12008      (select) => {
12009        const {
12010          getDownloadableBlocks: getDownloadableBlocks3,
12011          isRequestingDownloadableBlocks: isRequestingDownloadableBlocks2,
12012          getInstalledBlockTypes: getInstalledBlockTypes2
12013        } = select(store);
12014        const hasPermission = select(import_core_data.store).canUser(
12015          "read",
12016          "block-directory/search"
12017        );
12018        let downloadableBlocks2 = EMPTY_ARRAY3;
12019        if (hasPermission) {
12020          downloadableBlocks2 = getDownloadableBlocks3(filterValue);
12021          const installedBlockTypes = getInstalledBlockTypes2();
12022          const installableBlocks = downloadableBlocks2.filter(
12023            ({ name }) => {
12024              const isJustInstalled = installedBlockTypes.some(
12025                (blockType) => blockType.name === name
12026              );
12027              const isPreviouslyInstalled = (0, import_blocks5.getBlockType)(name);
12028              return isJustInstalled || !isPreviouslyInstalled;
12029            }
12030          );
12031          if (installableBlocks.length !== downloadableBlocks2.length) {
12032            downloadableBlocks2 = installableBlocks;
12033          }
12034          if (downloadableBlocks2.length === 0) {
12035            downloadableBlocks2 = EMPTY_ARRAY3;
12036          }
12037        }
12038        return {
12039          hasPermission,
12040          downloadableBlocks: downloadableBlocks2,
12041          isLoading: isRequestingDownloadableBlocks2(filterValue)
12042        };
12043      },
12044      [filterValue]
12045    );
12046    function DownloadableBlocksPanel({
12047      onSelect,
12048      onHover,
12049      hasLocalBlocks,
12050      isTyping,
12051      filterValue
12052    }) {
12053      const { hasPermission, downloadableBlocks: downloadableBlocks2, isLoading } = useDownloadableBlocks(filterValue);
12054      if (hasPermission === void 0 || isLoading || isTyping) {
12055        return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
12056          hasPermission && !hasLocalBlocks && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
12057            /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "block-directory-downloadable-blocks-panel__no-local", children: (0, import_i18n13.__)(
12058              "No results available from your installed blocks."
12059            ) }),
12060            /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "block-editor-inserter__quick-inserter-separator" })
12061          ] }),
12062          /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "block-directory-downloadable-blocks-panel has-blocks-loading", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_components3.Spinner, {}) })
12063        ] });
12064      }
12065      if (false === hasPermission) {
12066        if (!hasLocalBlocks) {
12067          return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(no_results_default, {});
12068        }
12069        return null;
12070      }
12071      if (downloadableBlocks2.length === 0) {
12072        return hasLocalBlocks ? null : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(no_results_default, {});
12073      }
12074      return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
12075        inserter_panel_default,
12076        {
12077          downloadableItems: downloadableBlocks2,
12078          hasLocalBlocks,
12079          children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
12080            downloadable_blocks_list_default,
12081            {
12082              items: downloadableBlocks2,
12083              onSelect,
12084              onHover
12085            }
12086          )
12087        }
12088      );
12089    }
12090  
12091    // packages/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.mjs
12092    var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
12093    function InserterMenuDownloadableBlocksPanel() {
12094      const [debouncedFilterValue, setFilterValue] = (0, import_element35.useState)("");
12095      const debouncedSetFilterValue = (0, import_compose.debounce)(setFilterValue, 400);
12096      return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_block_editor3.__unstableInserterMenuExtension, { children: ({ onSelect, onHover, filterValue, hasItems }) => {
12097        if (debouncedFilterValue !== filterValue) {
12098          debouncedSetFilterValue(filterValue);
12099        }
12100        if (!debouncedFilterValue) {
12101          return null;
12102        }
12103        return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
12104          DownloadableBlocksPanel,
12105          {
12106            onSelect,
12107            onHover,
12108            filterValue: debouncedFilterValue,
12109            hasLocalBlocks: hasItems,
12110            isTyping: filterValue !== debouncedFilterValue
12111          }
12112        );
12113      } });
12114    }
12115    var inserter_menu_downloadable_blocks_panel_default = InserterMenuDownloadableBlocksPanel;
12116  
12117    // packages/block-directory/build-module/plugins/installed-blocks-pre-publish-panel/index.mjs
12118    var import_i18n15 = __toESM(require_i18n(), 1);
12119    var import_data9 = __toESM(require_data(), 1);
12120    var import_editor2 = __toESM(require_editor(), 1);
12121  
12122    // packages/block-directory/build-module/components/compact-list/index.mjs
12123    var import_i18n14 = __toESM(require_i18n(), 1);
12124    var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
12125    function CompactList({ items }) {
12126      if (!items.length) {
12127        return null;
12128      }
12129      return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("ul", { className: "block-directory-compact-list", children: items.map(({ icon, id, title, author }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("li", { className: "block-directory-compact-list__item", children: [
12130        /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(downloadable_block_icon_default, { icon, title }),
12131        /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "block-directory-compact-list__item-details", children: [
12132          /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "block-directory-compact-list__item-title", children: title }),
12133          /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "block-directory-compact-list__item-author", children: (0, import_i18n14.sprintf)(
12134            /* translators: %s: Name of the block author. */
12135            (0, import_i18n14.__)("By %s"),
12136            author
12137          ) })
12138        ] })
12139      ] }, id)) });
12140    }
12141  
12142    // packages/block-directory/build-module/plugins/installed-blocks-pre-publish-panel/index.mjs
12143    var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
12144    function InstalledBlocksPrePublishPanel() {
12145      const newBlockTypes = (0, import_data9.useSelect)(
12146        (select) => select(store).getNewBlockTypes(),
12147        []
12148      );
12149      if (!newBlockTypes.length) {
12150        return null;
12151      }
12152      return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
12153        import_editor2.PluginPrePublishPanel,
12154        {
12155          title: (0, import_i18n15.sprintf)(
12156            // translators: %d: number of blocks (number).
12157            (0, import_i18n15._n)(
12158              "Added: %d block",
12159              "Added: %d blocks",
12160              newBlockTypes.length
12161            ),
12162            newBlockTypes.length
12163          ),
12164          initialOpen: true,
12165          children: [
12166            /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "installed-blocks-pre-publish-panel__copy", children: (0, import_i18n15._n)(
12167              "The following block has been added to your site.",
12168              "The following blocks have been added to your site.",
12169              newBlockTypes.length
12170            ) }),
12171            /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(CompactList, { items: newBlockTypes })
12172          ]
12173        }
12174      );
12175    }
12176  
12177    // packages/block-directory/build-module/plugins/get-install-missing/index.mjs
12178    var import_i18n17 = __toESM(require_i18n(), 1);
12179    var import_components5 = __toESM(require_components(), 1);
12180    var import_blocks7 = __toESM(require_blocks(), 1);
12181    var import_element36 = __toESM(require_element(), 1);
12182    var import_data11 = __toESM(require_data(), 1);
12183    var import_core_data2 = __toESM(require_core_data(), 1);
12184    var import_block_editor5 = __toESM(require_block_editor(), 1);
12185  
12186    // packages/block-directory/build-module/plugins/get-install-missing/install-button.mjs
12187    var import_i18n16 = __toESM(require_i18n(), 1);
12188    var import_components4 = __toESM(require_components(), 1);
12189    var import_blocks6 = __toESM(require_blocks(), 1);
12190    var import_data10 = __toESM(require_data(), 1);
12191    var import_block_editor4 = __toESM(require_block_editor(), 1);
12192    var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
12193    function InstallButton({ attributes, block, clientId }) {
12194      const isInstallingBlock = (0, import_data10.useSelect)(
12195        (select) => select(store).isInstalling(block.id),
12196        [block.id]
12197      );
12198      const { installBlockType: installBlockType2 } = (0, import_data10.useDispatch)(store);
12199      const { replaceBlock } = (0, import_data10.useDispatch)(import_block_editor4.store);
12200      return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
12201        import_components4.Button,
12202        {
12203          __next40pxDefaultSize: true,
12204          onClick: () => installBlockType2(block).then((success) => {
12205            if (success) {
12206              const blockType = (0, import_blocks6.getBlockType)(block.name);
12207              const [originalBlock] = (0, import_blocks6.parse)(
12208                attributes.originalContent
12209              );
12210              if (originalBlock && blockType) {
12211                replaceBlock(
12212                  clientId,
12213                  (0, import_blocks6.createBlock)(
12214                    blockType.name,
12215                    originalBlock.attributes,
12216                    originalBlock.innerBlocks
12217                  )
12218                );
12219              }
12220            }
12221          }),
12222          accessibleWhenDisabled: true,
12223          disabled: isInstallingBlock,
12224          isBusy: isInstallingBlock,
12225          variant: "primary",
12226          children: (0, import_i18n16.sprintf)(
12227            /* translators: %s: block name */
12228            (0, import_i18n16.__)("Install %s"),
12229            block.title
12230          )
12231        }
12232      );
12233    }
12234  
12235    // packages/block-directory/build-module/plugins/get-install-missing/index.mjs
12236    var import_jsx_runtime54 = __toESM(require_jsx_runtime(), 1);
12237    var getInstallMissing = (OriginalComponent) => (props) => {
12238      const { originalName } = props.attributes;
12239      const { block, hasPermission } = (0, import_data11.useSelect)(
12240        (select) => {
12241          const { getDownloadableBlocks: getDownloadableBlocks3 } = select(store);
12242          const blocks = getDownloadableBlocks3(
12243            "block:" + originalName
12244          ).filter(({ name }) => originalName === name);
12245          return {
12246            hasPermission: select(import_core_data2.store).canUser(
12247              "read",
12248              "block-directory/search"
12249            ),
12250            block: blocks.length && blocks[0]
12251          };
12252        },
12253        [originalName]
12254      );
12255      if (!hasPermission || !block) {
12256        return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(OriginalComponent, { ...props });
12257      }
12258      return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ModifiedWarning, { ...props, originalBlock: block });
12259    };
12260    var ModifiedWarning = ({ originalBlock, ...props }) => {
12261      const { originalName, originalUndelimitedContent, clientId } = props.attributes;
12262      const { replaceBlock } = (0, import_data11.useDispatch)(import_block_editor5.store);
12263      const convertToHTML = () => {
12264        replaceBlock(
12265          props.clientId,
12266          (0, import_blocks7.createBlock)("core/html", {}, [], [originalUndelimitedContent])
12267        );
12268      };
12269      const hasContent = !!originalUndelimitedContent;
12270      const hasHTMLBlock = (0, import_data11.useSelect)(
12271        (select) => {
12272          const { canInsertBlockType, getBlockRootClientId } = select(import_block_editor5.store);
12273          return canInsertBlockType(
12274            "core/html",
12275            getBlockRootClientId(clientId)
12276          );
12277        },
12278        [clientId]
12279      );
12280      let messageHTML = (0, import_i18n17.sprintf)(
12281        /* translators: %s: block name */
12282        (0, import_i18n17.__)(
12283          "Your site doesn\u2019t include support for the %s block. You can try installing the block or remove it entirely."
12284        ),
12285        originalBlock.title || originalName
12286      );
12287      const actions = [
12288        /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12289          InstallButton,
12290          {
12291            block: originalBlock,
12292            attributes: props.attributes,
12293            clientId: props.clientId
12294          },
12295          "install"
12296        )
12297      ];
12298      if (hasContent && hasHTMLBlock) {
12299        messageHTML = (0, import_i18n17.sprintf)(
12300          /* translators: %s: block name */
12301          (0, import_i18n17.__)(
12302            "Your site doesn\u2019t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely."
12303          ),
12304          originalBlock.title || originalName
12305        );
12306        actions.push(
12307          /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12308            import_components5.Button,
12309            {
12310              __next40pxDefaultSize: true,
12311              onClick: convertToHTML,
12312              variant: "tertiary",
12313              children: (0, import_i18n17.__)("Keep as HTML")
12314            },
12315            "convert"
12316          )
12317        );
12318      }
12319      return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { ...(0, import_block_editor5.useBlockProps)(), children: [
12320        /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_block_editor5.Warning, { actions, children: messageHTML }),
12321        /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_element36.RawHTML, { children: originalUndelimitedContent })
12322      ] });
12323    };
12324    var get_install_missing_default = getInstallMissing;
12325  
12326    // packages/block-directory/build-module/plugins/index.mjs
12327    var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1);
12328    (0, import_plugins.registerPlugin)("block-directory", {
12329      // The icon is explicitly set to undefined to prevent PluginPrePublishPanel
12330      // from rendering the fallback icon pluginIcon.
12331      icon: void 0,
12332      render() {
12333        return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
12334          /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AutoBlockUninstaller, {}),
12335          /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(inserter_menu_downloadable_blocks_panel_default, {}),
12336          /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(InstalledBlocksPrePublishPanel, {})
12337        ] });
12338      }
12339    });
12340    (0, import_hooks.addFilter)(
12341      "blocks.registerBlockType",
12342      "block-directory/fallback",
12343      (settings, name) => {
12344        if (name !== "core/missing") {
12345          return settings;
12346        }
12347        settings.edit = get_install_missing_default(settings.edit);
12348        return settings;
12349      }
12350    );
12351    return __toCommonJS(index_exports);
12352  })();
12353  /*! Bundled license information:
12354  
12355  use-sync-external-store/cjs/use-sync-external-store-shim.development.js:
12356    (**
12357     * @license React
12358     * use-sync-external-store-shim.development.js
12359     *
12360     * Copyright (c) Meta Platforms, Inc. and affiliates.
12361     *
12362     * This source code is licensed under the MIT license found in the
12363     * LICENSE file in the root directory of this source tree.
12364     *)
12365  
12366  use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js:
12367    (**
12368     * @license React
12369     * use-sync-external-store-shim/with-selector.development.js
12370     *
12371     * Copyright (c) Meta Platforms, Inc. and affiliates.
12372     *
12373     * This source code is licensed under the MIT license found in the
12374     * LICENSE file in the root directory of this source tree.
12375     *)
12376  */
12377  (window.wp ||= {}).blockDirectory = wp.blockDirectory;
12378  })();


Generated : Fri Nov 6 08:20:37 2026 Cross-referenced by PHPXref