[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/js/dist/ -> commands.js (source)

   1  (function() {
   2  "use strict";
   3  var wp;
   4  (wp ||= {}).commands = (() => {
   5    var __create = Object.create;
   6    var __defProp = Object.defineProperty;
   7    var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
   8    var __getOwnPropNames = Object.getOwnPropertyNames;
   9    var __getProtoOf = Object.getPrototypeOf;
  10    var __hasOwnProp = Object.prototype.hasOwnProperty;
  11    var __commonJS = (cb, mod) => function __require() {
  12      return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  13    };
  14    var __export = (target, all) => {
  15      for (var name in all)
  16        __defProp(target, name, { get: all[name], enumerable: true });
  17    };
  18    var __copyProps = (to, from, except, desc) => {
  19      if (from && typeof from === "object" || typeof from === "function") {
  20        for (let key of __getOwnPropNames(from))
  21          if (!__hasOwnProp.call(to, key) && key !== except)
  22            __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  23      }
  24      return to;
  25    };
  26    var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  27      // If the importer is in node compatibility mode or this is not an ESM
  28      // file that has been converted to a CommonJS file using a Babel-
  29      // compatible transform (i.e. "__esModule" has not been set), then set
  30      // "default" to the CommonJS "module.exports" for node compatibility.
  31      isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  32      mod
  33    ));
  34    var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  35  
  36    // vendor-external:react
  37    var require_react = __commonJS({
  38      "vendor-external:react"(exports, module) {
  39        module.exports = window.React;
  40      }
  41    });
  42  
  43    // vendor-external:react/jsx-runtime
  44    var require_jsx_runtime = __commonJS({
  45      "vendor-external:react/jsx-runtime"(exports, module) {
  46        module.exports = window.ReactJSXRuntime;
  47      }
  48    });
  49  
  50    // vendor-external:react-dom
  51    var require_react_dom = __commonJS({
  52      "vendor-external:react-dom"(exports, module) {
  53        module.exports = window.ReactDOM;
  54      }
  55    });
  56  
  57    // package-external:@wordpress/data
  58    var require_data = __commonJS({
  59      "package-external:@wordpress/data"(exports, module) {
  60        module.exports = window.wp.data;
  61      }
  62    });
  63  
  64    // package-external:@wordpress/element
  65    var require_element = __commonJS({
  66      "package-external:@wordpress/element"(exports, module) {
  67        module.exports = window.wp.element;
  68      }
  69    });
  70  
  71    // package-external:@wordpress/i18n
  72    var require_i18n = __commonJS({
  73      "package-external:@wordpress/i18n"(exports, module) {
  74        module.exports = window.wp.i18n;
  75      }
  76    });
  77  
  78    // package-external:@wordpress/components
  79    var require_components = __commonJS({
  80      "package-external:@wordpress/components"(exports, module) {
  81        module.exports = window.wp.components;
  82      }
  83    });
  84  
  85    // package-external:@wordpress/keyboard-shortcuts
  86    var require_keyboard_shortcuts = __commonJS({
  87      "package-external:@wordpress/keyboard-shortcuts"(exports, module) {
  88        module.exports = window.wp.keyboardShortcuts;
  89      }
  90    });
  91  
  92    // package-external:@wordpress/keycodes
  93    var require_keycodes = __commonJS({
  94      "package-external:@wordpress/keycodes"(exports, module) {
  95        module.exports = window.wp.keycodes;
  96      }
  97    });
  98  
  99    // package-external:@wordpress/primitives
 100    var require_primitives = __commonJS({
 101      "package-external:@wordpress/primitives"(exports, module) {
 102        module.exports = window.wp.primitives;
 103      }
 104    });
 105  
 106    // package-external:@wordpress/private-apis
 107    var require_private_apis = __commonJS({
 108      "package-external:@wordpress/private-apis"(exports, module) {
 109        module.exports = window.wp.privateApis;
 110      }
 111    });
 112  
 113    // package-external:@wordpress/preferences
 114    var require_preferences = __commonJS({
 115      "package-external:@wordpress/preferences"(exports, module) {
 116        module.exports = window.wp.preferences;
 117      }
 118    });
 119  
 120    // packages/commands/build-module/index.mjs
 121    var index_exports = {};
 122    __export(index_exports, {
 123      CommandMenu: () => CommandMenu,
 124      privateApis: () => privateApis,
 125      store: () => store,
 126      useCommand: () => useCommand,
 127      useCommandLoader: () => useCommandLoader,
 128      useCommands: () => useCommands
 129    });
 130  
 131    // node_modules/.store/cmdk@1.1.1-2SvSjHrFhiqsPDore7Lelw/node_modules/cmdk/dist/chunk-NZJY6EH4.mjs
 132    var U = 1;
 133    var Y = 0.9;
 134    var H = 0.8;
 135    var J = 0.17;
 136    var p = 0.1;
 137    var u = 0.999;
 138    var $ = 0.9999;
 139    var k = 0.99;
 140    var m = /[\\\/_+.#"@\[\(\{&]/;
 141    var B = /[\\\/_+.#"@\[\(\{&]/g;
 142    var K = /[\s-]/;
 143    var X = /[\s-]/g;
 144    function G(_, C, h, P2, A, f, O) {
 145      if (f === C.length) return A === _.length ? U : k;
 146      var T2 = `$A},$f}`;
 147      if (O[T2] !== void 0) return O[T2];
 148      for (var L2 = P2.charAt(f), c = h.indexOf(L2, A), S = 0, E, N2, R, M; c >= 0; ) E = G(_, C, h, P2, c + 1, f + 1, O), E > S && (c === A ? E *= U : m.test(_.charAt(c - 1)) ? (E *= H, R = _.slice(A, c - 1).match(B), R && A > 0 && (E *= Math.pow(u, R.length))) : K.test(_.charAt(c - 1)) ? (E *= Y, M = _.slice(A, c - 1).match(X), M && A > 0 && (E *= Math.pow(u, M.length))) : (E *= J, A > 0 && (E *= Math.pow(u, c - A))), _.charAt(c) !== C.charAt(f) && (E *= $)), (E < p && h.charAt(c - 1) === P2.charAt(f + 1) || P2.charAt(f + 1) === P2.charAt(f) && h.charAt(c - 1) !== P2.charAt(f)) && (N2 = G(_, C, h, P2, c + 1, f + 2, O), N2 * p > E && (E = N2 * p)), E > S && (S = E), c = h.indexOf(L2, c + 1);
 149      return O[T2] = S, S;
 150    }
 151    function D(_) {
 152      return _.toLowerCase().replace(X, " ");
 153    }
 154    function W(_, C, h) {
 155      return _ = h && h.length > 0 ? `$_ + " " + h.join(" ")}` : _, G(_, C, D(_), D(C), 0, 0, {});
 156    }
 157  
 158    // node_modules/.store/@radix-ui/react-dialog@1.1.23-ytDSaPyJAw3b9aD4KkIiOA/node_modules/@radix-ui/react-dialog/dist/index.mjs
 159    var React24 = __toESM(require_react(), 1);
 160  
 161    // node_modules/.store/@radix-ui/primitive@1.1.7-U6Tg5_5zgTQvcXJNNg7HcQ/node_modules/@radix-ui/primitive/dist/index.mjs
 162    var __defProp2 = Object.defineProperty;
 163    var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
 164    var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
 165    function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
 166      return /* @__PURE__ */ __name(function handleEvent(event) {
 167        originalEventHandler?.(event);
 168        if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {
 169          return ourEventHandler?.(event);
 170        }
 171      }, "handleEvent");
 172    }
 173    __name(composeEventHandlers, "composeEventHandlers");
 174    function getOwnerWindow(element) {
 175      if (!canUseDOM) {
 176        throw new Error("Cannot access window outside of the DOM");
 177      }
 178      return element?.ownerDocument?.defaultView ?? window;
 179    }
 180    __name(getOwnerWindow, "getOwnerWindow");
 181    function getOwnerDocument(element) {
 182      if (!canUseDOM) {
 183        throw new Error("Cannot access document outside of the DOM");
 184      }
 185      return element?.ownerDocument ?? document;
 186    }
 187    __name(getOwnerDocument, "getOwnerDocument");
 188    function getActiveElement(node, activeDescendant = false) {
 189      const { activeElement } = getOwnerDocument(node);
 190      if (!activeElement?.nodeName) {
 191        return null;
 192      }
 193      if (isFrame(activeElement) && activeElement.contentDocument) {
 194        return getActiveElement(activeElement.contentDocument.body, activeDescendant);
 195      }
 196      if (activeDescendant) {
 197        const id = activeElement.getAttribute("aria-activedescendant");
 198        if (id) {
 199          const element = getOwnerDocument(activeElement).getElementById(id);
 200          if (element) {
 201            return element;
 202          }
 203        }
 204      }
 205      return activeElement;
 206    }
 207    __name(getActiveElement, "getActiveElement");
 208    function isFrame(element) {
 209      return element.tagName === "IFRAME";
 210    }
 211    __name(isFrame, "isFrame");
 212  
 213    // node_modules/.store/@radix-ui/react-compose-refs@1.1.5-Yxi_9Vcwu9BZ5W9uATcsBQ/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
 214    var React = __toESM(require_react(), 1);
 215    var __defProp3 = Object.defineProperty;
 216    var __name2 = (target, value) => __defProp3(target, "name", { value, configurable: true });
 217    function setRef(ref, value) {
 218      if (typeof ref === "function") {
 219        return ref(value);
 220      } else if (ref !== null && ref !== void 0) {
 221        ref.current = value;
 222      }
 223    }
 224    __name2(setRef, "setRef");
 225    function composeRefs(...refs) {
 226      return (node) => {
 227        let hasCleanup = false;
 228        const cleanups = refs.map((ref) => {
 229          const cleanup = setRef(ref, node);
 230          if (!hasCleanup && typeof cleanup == "function") {
 231            hasCleanup = true;
 232          }
 233          return cleanup;
 234        });
 235        if (hasCleanup) {
 236          return () => {
 237            for (let i = 0; i < cleanups.length; i++) {
 238              const cleanup = cleanups[i];
 239              if (typeof cleanup == "function") {
 240                cleanup();
 241              } else {
 242                setRef(refs[i], null);
 243              }
 244            }
 245          };
 246        }
 247      };
 248    }
 249    __name2(composeRefs, "composeRefs");
 250    function useComposedRefs(...refs) {
 251      return React.useCallback(composeRefs(...refs), refs);
 252    }
 253    __name2(useComposedRefs, "useComposedRefs");
 254  
 255    // node_modules/.store/@radix-ui/react-context@1.2.2-j7-25QEapK1ImCGTa8GJpg/node_modules/@radix-ui/react-context/dist/index.mjs
 256    var React2 = __toESM(require_react(), 1);
 257    var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
 258    var __defProp4 = Object.defineProperty;
 259    var __name3 = (target, value) => __defProp4(target, "name", { value, configurable: true });
 260    // @__NO_SIDE_EFFECTS__
 261    function createContext2(rootComponentName, defaultContext) {
 262      const Context = React2.createContext(defaultContext);
 263      Context.displayName = rootComponentName + "Context";
 264      const Provider = /* @__PURE__ */ __name3((props) => {
 265        const { children, ...context2 } = props;
 266        const value = React2.useMemo(() => context2, Object.values(context2));
 267        return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children });
 268      }, "Provider");
 269      Provider.displayName = rootComponentName + "Provider";
 270      function useContext22(consumerName, options = {}) {
 271        const { optional = false } = options;
 272        const context2 = React2.useContext(Context);
 273        if (context2) return context2;
 274        if (defaultContext !== void 0) return defaultContext;
 275        if (optional) return void 0;
 276        throw new Error(`\`$consumerName}\` must be used within \`$rootComponentName}\``);
 277      }
 278      __name3(useContext22, "useContext");
 279      return [Provider, useContext22];
 280    }
 281    __name3(createContext2, "createContext");
 282    // @__NO_SIDE_EFFECTS__
 283    function createContextScope(scopeName, createContextScopeDeps = []) {
 284      let defaultContexts = [];
 285      function createContext32(rootComponentName, defaultContext) {
 286        const BaseContext = React2.createContext(defaultContext);
 287        BaseContext.displayName = rootComponentName + "Context";
 288        const index = defaultContexts.length;
 289        defaultContexts = [...defaultContexts, defaultContext];
 290        const Provider = /* @__PURE__ */ __name3((props) => {
 291          const { scope, children, ...context2 } = props;
 292          const Context = scope?.[scopeName]?.[index] || BaseContext;
 293          const value = React2.useMemo(() => context2, Object.values(context2));
 294          return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children });
 295        }, "Provider");
 296        Provider.displayName = rootComponentName + "Provider";
 297        function useContext22(consumerName, scope, options = {}) {
 298          const { optional = false } = options;
 299          const Context = scope?.[scopeName]?.[index] || BaseContext;
 300          const context2 = React2.useContext(Context);
 301          if (context2) return context2;
 302          if (defaultContext !== void 0) return defaultContext;
 303          if (optional) return void 0;
 304          throw new Error(`\`$consumerName}\` must be used within \`$rootComponentName}\``);
 305        }
 306        __name3(useContext22, "useContext");
 307        return [Provider, useContext22];
 308      }
 309      __name3(createContext32, "createContext");
 310      const createScope = /* @__PURE__ */ __name3(() => {
 311        const scopeContexts = defaultContexts.map((defaultContext) => {
 312          return React2.createContext(defaultContext);
 313        });
 314        return /* @__PURE__ */ __name3(function useScope(scope) {
 315          const contexts = scope?.[scopeName] || scopeContexts;
 316          return React2.useMemo(
 317            () => ({ [`__scope$scopeName}`]: { ...scope, [scopeName]: contexts } }),
 318            [scope, contexts]
 319          );
 320        }, "useScope");
 321      }, "createScope");
 322      createScope.scopeName = scopeName;
 323      return [createContext32, composeContextScopes(createScope, ...createContextScopeDeps)];
 324    }
 325    __name3(createContextScope, "createContextScope");
 326    function composeContextScopes(...scopes) {
 327      const baseScope = scopes[0];
 328      if (scopes.length === 1) return baseScope;
 329      const createScope = /* @__PURE__ */ __name3(() => {
 330        const scopeHooks = scopes.map((createScope2) => ({
 331          useScope: createScope2(),
 332          scopeName: createScope2.scopeName
 333        }));
 334        return /* @__PURE__ */ __name3(function useComposedScopes(overrideScopes) {
 335          const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
 336            const scopeProps = useScope(overrideScopes);
 337            const currentScope = scopeProps[`__scope$scopeName}`];
 338            return { ...nextScopes2, ...currentScope };
 339          }, {});
 340          return React2.useMemo(() => ({ [`__scope$baseScope.scopeName}`]: nextScopes }), [nextScopes]);
 341        }, "useComposedScopes");
 342      }, "createScope");
 343      createScope.scopeName = baseScope.scopeName;
 344      return createScope;
 345    }
 346    __name3(composeContextScopes, "composeContextScopes");
 347  
 348    // node_modules/.store/@radix-ui/react-id@1.1.4-lJYQ8uCc9ZjR3dGsRybCAQ/node_modules/@radix-ui/react-id/dist/index.mjs
 349    var React4 = __toESM(require_react(), 1);
 350  
 351    // node_modules/.store/@radix-ui/react-use-layout-effect@1.1.4-xgr8ZdGzRbbpiAVfalj0KQ/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
 352    var React3 = __toESM(require_react(), 1);
 353    var useLayoutEffect2 = globalThis?.document ? React3.useLayoutEffect : () => {
 354    };
 355  
 356    // node_modules/.store/@radix-ui/react-id@1.1.4-lJYQ8uCc9ZjR3dGsRybCAQ/node_modules/@radix-ui/react-id/dist/index.mjs
 357    var __defProp5 = Object.defineProperty;
 358    var __name4 = (target, value) => __defProp5(target, "name", { value, configurable: true });
 359    var useReactId = React4[" useId ".trim().toString()] || (() => void 0);
 360    var count = 0;
 361    function useId(deterministicId) {
 362      const [id, setId] = React4.useState(useReactId());
 363      useLayoutEffect2(() => {
 364        if (!deterministicId) setId((reactId) => reactId ?? String(count++));
 365      }, [deterministicId]);
 366      return deterministicId || (id ? `radix-$id}` : "");
 367    }
 368    __name4(useId, "useId");
 369  
 370    // node_modules/.store/@radix-ui/react-use-controllable-state@1.2.6-E1gehUSActoGL_ABO78qWQ/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
 371    var React6 = __toESM(require_react(), 1);
 372  
 373    // node_modules/.store/@radix-ui/primitive@1.1.7-U6Tg5_5zgTQvcXJNNg7HcQ/node_modules/@radix-ui/primitive/dist/internal/is-development.true.mjs
 374    var IS_DEVELOPMENT = true;
 375  
 376    // node_modules/.store/@radix-ui/react-use-controllable-state@1.2.6-E1gehUSActoGL_ABO78qWQ/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
 377    var React22 = __toESM(require_react(), 1);
 378  
 379    // node_modules/.store/@radix-ui/react-use-effect-event@0.0.5-Yi5oSZAZmYwW6OVrdtieoA/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs
 380    var React5 = __toESM(require_react(), 1);
 381    var __defProp6 = Object.defineProperty;
 382    var __name5 = (target, value) => __defProp6(target, "name", { value, configurable: true });
 383    var useReactEffectEvent = React5[" useEffectEvent ".trim().toString()];
 384    var useReactInsertionEffect = React5[" useInsertionEffect ".trim().toString()];
 385    function useEffectEvent(callback) {
 386      if (typeof useReactEffectEvent === "function") {
 387        return useReactEffectEvent(callback);
 388      }
 389      const ref = React5.useRef(() => {
 390        throw new Error("Cannot call an event handler while rendering.");
 391      });
 392      if (typeof useReactInsertionEffect === "function") {
 393        useReactInsertionEffect(() => {
 394          ref.current = callback;
 395        });
 396      } else {
 397        useLayoutEffect2(() => {
 398          ref.current = callback;
 399        });
 400      }
 401      return React5.useMemo(() => ((...args) => ref.current?.(...args)), []);
 402    }
 403    __name5(useEffectEvent, "useEffectEvent");
 404  
 405    // node_modules/.store/@radix-ui/react-use-controllable-state@1.2.6-E1gehUSActoGL_ABO78qWQ/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
 406    var __defProp7 = Object.defineProperty;
 407    var __name6 = (target, value) => __defProp7(target, "name", { value, configurable: true });
 408    var useInsertionEffect = React6[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
 409    function useControllableState({
 410      prop,
 411      defaultProp,
 412      onChange = /* @__PURE__ */ __name6(() => {
 413      }, "onChange"),
 414      caller
 415    }) {
 416      const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
 417        defaultProp,
 418        onChange
 419      });
 420      const isControlled = prop !== void 0;
 421      const value = isControlled ? prop : uncontrolledProp;
 422      if (IS_DEVELOPMENT) {
 423        const isControlledRef = React6.useRef(prop !== void 0);
 424        React6.useEffect(() => {
 425          const wasControlled = isControlledRef.current;
 426          if (wasControlled !== isControlled) {
 427            const from = wasControlled ? "controlled" : "uncontrolled";
 428            const to = isControlled ? "controlled" : "uncontrolled";
 429            console.warn(
 430              `$caller} is changing from $from} to $to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
 431            );
 432          }
 433          isControlledRef.current = isControlled;
 434        }, [isControlled, caller]);
 435      }
 436      const setValue = React6.useCallback(
 437        (nextValue) => {
 438          if (isControlled) {
 439            const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
 440            if (value2 !== prop) {
 441              onChangeRef.current?.(value2);
 442            }
 443          } else {
 444            setUncontrolledProp(nextValue);
 445          }
 446        },
 447        [isControlled, prop, setUncontrolledProp, onChangeRef]
 448      );
 449      return [value, setValue];
 450    }
 451    __name6(useControllableState, "useControllableState");
 452    function useUncontrolledState({
 453      defaultProp,
 454      onChange
 455    }) {
 456      const [value, setValue] = React6.useState(defaultProp);
 457      const prevValueRef = React6.useRef(value);
 458      const onChangeRef = React6.useRef(onChange);
 459      useInsertionEffect(() => {
 460        onChangeRef.current = onChange;
 461      }, [onChange]);
 462      React6.useEffect(() => {
 463        if (prevValueRef.current !== value) {
 464          onChangeRef.current?.(value);
 465          prevValueRef.current = value;
 466        }
 467      }, [value, prevValueRef]);
 468      return [value, setValue, onChangeRef];
 469    }
 470    __name6(useUncontrolledState, "useUncontrolledState");
 471    function isFunction(value) {
 472      return typeof value === "function";
 473    }
 474    __name6(isFunction, "isFunction");
 475    var SYNC_STATE = /* @__PURE__ */ Symbol("RADIX:SYNC_STATE");
 476    function useControllableStateReducer(reducer2, userArgs, initialArg, init) {
 477      const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;
 478      const isControlled = controlledState !== void 0;
 479      const onChange = useEffectEvent(onChangeProp);
 480      if (IS_DEVELOPMENT) {
 481        const isControlledRef = React22.useRef(controlledState !== void 0);
 482        React22.useEffect(() => {
 483          const wasControlled = isControlledRef.current;
 484          if (wasControlled !== isControlled) {
 485            const from = wasControlled ? "controlled" : "uncontrolled";
 486            const to = isControlled ? "controlled" : "uncontrolled";
 487            console.warn(
 488              `$caller} is changing from $from} to $to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
 489            );
 490          }
 491          isControlledRef.current = isControlled;
 492        }, [isControlled, caller]);
 493      }
 494      const args = [{ ...initialArg, state: defaultProp }];
 495      if (init) {
 496        args.push(init);
 497      }
 498      const [internalState, dispatch2] = React22.useReducer(
 499        (state2, action) => {
 500          if (action.type === SYNC_STATE) {
 501            return { ...state2, state: action.state };
 502          }
 503          const next = reducer2(state2, action);
 504          if (isControlled && !Object.is(next.state, state2.state)) {
 505            onChange(next.state);
 506          }
 507          return next;
 508        },
 509        ...args
 510      );
 511      const uncontrolledState = internalState.state;
 512      const prevValueRef = React22.useRef(uncontrolledState);
 513      React22.useEffect(() => {
 514        if (prevValueRef.current !== uncontrolledState) {
 515          prevValueRef.current = uncontrolledState;
 516          if (!isControlled) {
 517            onChange(uncontrolledState);
 518          }
 519        }
 520      }, [uncontrolledState, prevValueRef, isControlled]);
 521      const state = React22.useMemo(() => {
 522        const isControlled2 = controlledState !== void 0;
 523        if (isControlled2) {
 524          return { ...internalState, state: controlledState };
 525        }
 526        return internalState;
 527      }, [internalState, controlledState]);
 528      React22.useEffect(() => {
 529        if (isControlled && !Object.is(controlledState, internalState.state)) {
 530          dispatch2({ type: SYNC_STATE, state: controlledState });
 531        }
 532      }, [controlledState, internalState.state, isControlled]);
 533      return [state, dispatch2];
 534    }
 535    __name6(useControllableStateReducer, "useControllableStateReducer");
 536  
 537    // node_modules/.store/@radix-ui/react-dismissable-layer@1.1.19-TH-TBgk6yZ9haPsxC6i4zw/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs
 538    var React10 = __toESM(require_react(), 1);
 539  
 540    // node_modules/.store/@radix-ui/react-primitive@2.1.10-zeSsoG72bCPsw9Cm9y8JEw/node_modules/@radix-ui/react-primitive/dist/index.mjs
 541    var React8 = __toESM(require_react(), 1);
 542    var ReactDOM = __toESM(require_react_dom(), 1);
 543  
 544    // node_modules/.store/@radix-ui/react-slot@1.3.3-gXjH-EJQB-ydh9AEtBi9Xg/node_modules/@radix-ui/react-slot/dist/index.mjs
 545    var React7 = __toESM(require_react(), 1);
 546    var __defProp8 = Object.defineProperty;
 547    var __name7 = (target, value) => __defProp8(target, "name", { value, configurable: true });
 548    // @__NO_SIDE_EFFECTS__
 549    function createSlot(ownerName) {
 550      const Slot2 = React7.forwardRef((props, forwardedRef) => {
 551        let { children, ...slotProps } = props;
 552        let slottableElement = null;
 553        let hasSlottable = false;
 554        const newChildren = [];
 555        if (isLazyComponent(children) && typeof use === "function") {
 556          children = use(children._payload);
 557        }
 558        React7.Children.forEach(children, (maybeSlottable) => {
 559          if (isSlottable(maybeSlottable)) {
 560            hasSlottable = true;
 561            const slottable = maybeSlottable;
 562            let child = "child" in slottable.props ? slottable.props.child : slottable.props.children;
 563            if (isLazyComponent(child) && typeof use === "function") {
 564              child = use(child._payload);
 565            }
 566            slottableElement = getSlottableElementFromSlottable(slottable, child);
 567            newChildren.push(slottableElement?.props?.children);
 568          } else {
 569            newChildren.push(maybeSlottable);
 570          }
 571        });
 572        if (slottableElement) {
 573          slottableElement = React7.cloneElement(slottableElement, void 0, newChildren);
 574        } else if (
 575          // A `Slottable` was found but it didn't resolve to a single element (e.g.
 576          // it wrapped multiple elements, text, or a render-prop `child` that
 577          // wasn't an element). Don't fall back to treating the `Slottable` wrapper
 578          // itself as the slot target — throw a descriptive error below instead.
 579          !hasSlottable && React7.Children.count(children) === 1 && React7.isValidElement(children)
 580        ) {
 581          slottableElement = children;
 582        }
 583        const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;
 584        const composedRef = useComposedRefs(forwardedRef, slottableElementRef);
 585        if (!slottableElement) {
 586          if (children || children === 0) {
 587            throw new Error(
 588              hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)
 589            );
 590          }
 591          return children;
 592        }
 593        const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});
 594        if (slottableElement.type !== React7.Fragment) {
 595          mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;
 596        }
 597        return React7.cloneElement(slottableElement, mergedProps);
 598      });
 599      Slot2.displayName = `$ownerName}.Slot`;
 600      return Slot2;
 601    }
 602    __name7(createSlot, "createSlot");
 603    var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol.for("radix.slottable");
 604    // @__NO_SIDE_EFFECTS__
 605    function createSlottable(ownerName) {
 606      const Slottable2 = /* @__PURE__ */ __name7((props) => "child" in props ? props.children(props.child) : props.children, "Slottable");
 607      Slottable2.displayName = `$ownerName}.Slottable`;
 608      Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
 609      return Slottable2;
 610    }
 611    __name7(createSlottable, "createSlottable");
 612    var getSlottableElementFromSlottable = /* @__PURE__ */ __name7((slottable, child) => {
 613      if ("child" in slottable.props) {
 614        const child2 = slottable.props.child;
 615        if (!React7.isValidElement(child2)) return null;
 616        return React7.cloneElement(child2, void 0, slottable.props.children(child2.props.children));
 617      }
 618      return React7.isValidElement(child) ? child : null;
 619    }, "getSlottableElementFromSlottable");
 620    function mergeProps(slotProps, childProps) {
 621      const overrideProps = { ...childProps };
 622      for (const propName in childProps) {
 623        const slotPropValue = slotProps[propName];
 624        const childPropValue = childProps[propName];
 625        const isHandler = /^on[A-Z]/.test(propName);
 626        if (isHandler) {
 627          if (slotPropValue && childPropValue) {
 628            overrideProps[propName] = (...args) => {
 629              const result = childPropValue(...args);
 630              slotPropValue(...args);
 631              return result;
 632            };
 633          } else if (slotPropValue) {
 634            overrideProps[propName] = slotPropValue;
 635          }
 636        } else if (propName === "style") {
 637          overrideProps[propName] = { ...slotPropValue, ...childPropValue };
 638        } else if (propName === "className") {
 639          overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
 640        }
 641      }
 642      return { ...slotProps, ...overrideProps };
 643    }
 644    __name7(mergeProps, "mergeProps");
 645    function getElementRef(element) {
 646      let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
 647      let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
 648      if (mayWarn) {
 649        return element.ref;
 650      }
 651      getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
 652      mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
 653      if (mayWarn) {
 654        return element.props.ref;
 655      }
 656      return element.props.ref || element.ref;
 657    }
 658    __name7(getElementRef, "getElementRef");
 659    function isSlottable(child) {
 660      return React7.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
 661    }
 662    __name7(isSlottable, "isSlottable");
 663    var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
 664    function isLazyComponent(element) {
 665      return element != null && typeof element === "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload);
 666    }
 667    __name7(isLazyComponent, "isLazyComponent");
 668    function isPromiseLike(value) {
 669      return typeof value === "object" && value !== null && "then" in value;
 670    }
 671    __name7(isPromiseLike, "isPromiseLike");
 672    var createSlotError = /* @__PURE__ */ __name7((ownerName) => {
 673      return `$ownerName} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`;
 674    }, "createSlotError");
 675    var createSlottableError = /* @__PURE__ */ __name7((ownerName) => {
 676      return `$ownerName} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`;
 677    }, "createSlottableError");
 678    var use = React7[" use ".trim().toString()];
 679  
 680    // node_modules/.store/@radix-ui/react-primitive@2.1.10-zeSsoG72bCPsw9Cm9y8JEw/node_modules/@radix-ui/react-primitive/dist/index.mjs
 681    var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
 682    var __defProp9 = Object.defineProperty;
 683    var __name8 = (target, value) => __defProp9(target, "name", { value, configurable: true });
 684    var NODES = [
 685      "a",
 686      "button",
 687      "div",
 688      "form",
 689      "h2",
 690      "h3",
 691      "img",
 692      "input",
 693      "label",
 694      "li",
 695      "nav",
 696      "ol",
 697      "p",
 698      "select",
 699      "span",
 700      "svg",
 701      "ul"
 702    ];
 703    var Primitive = NODES.reduce((primitive, node) => {
 704      const Slot2 = createSlot(`Primitive.$node}`);
 705      const Node2 = React8.forwardRef((props, forwardedRef) => {
 706        const { asChild, ...primitiveProps } = props;
 707        const Comp = asChild ? Slot2 : node;
 708        if (typeof window !== "undefined") {
 709          window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
 710        }
 711        return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
 712      });
 713      Node2.displayName = `Primitive.$node}`;
 714      return { ...primitive, [node]: Node2 };
 715    }, {});
 716    function dispatchDiscreteCustomEvent(target, event) {
 717      if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));
 718    }
 719    __name8(dispatchDiscreteCustomEvent, "dispatchDiscreteCustomEvent");
 720  
 721    // node_modules/.store/@radix-ui/react-use-callback-ref@1.1.4-e0xqDXwla-RxBDlP4otgfA/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs
 722    var React9 = __toESM(require_react(), 1);
 723    var __defProp10 = Object.defineProperty;
 724    var __name9 = (target, value) => __defProp10(target, "name", { value, configurable: true });
 725    function useCallbackRef(callback) {
 726      const callbackRef = React9.useRef(callback);
 727      React9.useEffect(() => {
 728        callbackRef.current = callback;
 729      });
 730      return React9.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);
 731    }
 732    __name9(useCallbackRef, "useCallbackRef");
 733  
 734    // node_modules/.store/@radix-ui/react-dismissable-layer@1.1.19-TH-TBgk6yZ9haPsxC6i4zw/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs
 735    var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
 736    var __defProp11 = Object.defineProperty;
 737    var __name10 = (target, value) => __defProp11(target, "name", { value, configurable: true });
 738    var CONTEXT_UPDATE = "dismissableLayer.update";
 739    var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
 740    var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
 741    var originalBodyPointerEvents;
 742    var DismissableLayerContext = React10.createContext({
 743      layers: /* @__PURE__ */ new Set(),
 744      layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
 745      branches: /* @__PURE__ */ new Set(),
 746      // Outside elements that belong to a layer's own dismiss affordance (eg, a
 747      // dialog overlay). Pressing them should dismiss the layer regardless of
 748      // whether or not they stop propagation.
 749      //
 750      // See https://github.com/radix-ui/primitives/issues/3346
 751      dismissableSurfaces: /* @__PURE__ */ new Set()
 752    });
 753    var DismissableLayer = /* @__PURE__ */ React10.forwardRef(
 754      // blank line to reduce diff noise
 755      /* @__PURE__ */ __name10(function DismissableLayer2(props, forwardedRef) {
 756        const {
 757          disableOutsidePointerEvents = false,
 758          deferPointerDownOutside = false,
 759          onEscapeKeyDown,
 760          onPointerDownOutside,
 761          onFocusOutside,
 762          onInteractOutside,
 763          onDismiss,
 764          ...layerProps
 765        } = props;
 766        const context2 = React10.useContext(DismissableLayerContext);
 767        const [node, setNode] = React10.useState(null);
 768        const ownerDocument = node?.ownerDocument ?? globalThis?.document;
 769        const [, force] = React10.useState({});
 770        const composedRefs = useComposedRefs(forwardedRef, setNode);
 771        const layers = Array.from(context2.layers);
 772        const [highestLayerWithOutsidePointerEventsDisabled] = [
 773          ...context2.layersWithOutsidePointerEventsDisabled
 774        ].slice(-1);
 775        const highestLayerWithOutsidePointerEventsDisabledIndex = highestLayerWithOutsidePointerEventsDisabled ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled) : -1;
 776        const index = node ? layers.indexOf(node) : -1;
 777        const isBodyPointerEventsDisabled = context2.layersWithOutsidePointerEventsDisabled.size > 0;
 778        const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
 779        const isDeferredPointerDownOutsideRef = React10.useRef(false);
 780        const pointerDownOutside = usePointerDownOutside(
 781          (event) => {
 782            onPointerDownOutside?.(event);
 783            onInteractOutside?.(event);
 784            if (!event.defaultPrevented) onDismiss?.();
 785          },
 786          {
 787            ownerDocument,
 788            deferPointerDownOutside,
 789            isDeferredPointerDownOutsideRef,
 790            dismissableSurfaces: context2.dismissableSurfaces,
 791            shouldHandlePointerDownOutside: React10.useCallback(
 792              (target) => {
 793                if (!(target instanceof Node)) {
 794                  return false;
 795                }
 796                const isPointerDownOnBranch = [...context2.branches].some(
 797                  (branch) => branch.contains(target)
 798                );
 799                return isPointerEventsEnabled && !isPointerDownOnBranch;
 800              },
 801              [context2.branches, isPointerEventsEnabled]
 802            )
 803          }
 804        );
 805        const focusOutside = useFocusOutside((event) => {
 806          if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) {
 807            return;
 808          }
 809          const target = event.target;
 810          const isFocusInBranch = [...context2.branches].some((branch) => branch.contains(target));
 811          if (isFocusInBranch) return;
 812          onFocusOutside?.(event);
 813          onInteractOutside?.(event);
 814          if (!event.defaultPrevented) onDismiss?.();
 815        }, ownerDocument);
 816        const isHighestLayer = node ? index === layers.length - 1 : false;
 817        const handleKeyDown = useCallbackRef((event) => {
 818          if (event.key !== "Escape") {
 819            return;
 820          }
 821          onEscapeKeyDown?.(event);
 822          if (!event.defaultPrevented && onDismiss) {
 823            event.preventDefault();
 824            onDismiss();
 825          }
 826        });
 827        React10.useEffect(() => {
 828          if (!isHighestLayer) {
 829            return;
 830          }
 831          ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true });
 832          return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true });
 833        }, [ownerDocument, isHighestLayer, handleKeyDown]);
 834        React10.useEffect(() => {
 835          if (!node) return;
 836          if (disableOutsidePointerEvents) {
 837            if (context2.layersWithOutsidePointerEventsDisabled.size === 0) {
 838              originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
 839              ownerDocument.body.style.pointerEvents = "none";
 840            }
 841            context2.layersWithOutsidePointerEventsDisabled.add(node);
 842          }
 843          context2.layers.add(node);
 844          dispatchUpdate();
 845          return () => {
 846            if (disableOutsidePointerEvents) {
 847              context2.layersWithOutsidePointerEventsDisabled.delete(node);
 848              if (context2.layersWithOutsidePointerEventsDisabled.size === 0) {
 849                ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
 850              }
 851            }
 852          };
 853        }, [node, ownerDocument, disableOutsidePointerEvents, context2]);
 854        React10.useEffect(() => {
 855          return () => {
 856            if (!node) return;
 857            context2.layers.delete(node);
 858            context2.layersWithOutsidePointerEventsDisabled.delete(node);
 859            dispatchUpdate();
 860          };
 861        }, [node, context2]);
 862        React10.useEffect(() => {
 863          const handleUpdate = /* @__PURE__ */ __name10(() => force({}), "handleUpdate");
 864          document.addEventListener(CONTEXT_UPDATE, handleUpdate);
 865          return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
 866        }, []);
 867        return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
 868          Primitive.div,
 869          {
 870            ...layerProps,
 871            ref: composedRefs,
 872            style: {
 873              pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
 874              ...props.style
 875            },
 876            onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
 877            onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
 878            onPointerDownCapture: composeEventHandlers(
 879              props.onPointerDownCapture,
 880              pointerDownOutside.onPointerDownCapture
 881            )
 882          }
 883        );
 884      }, "DismissableLayer")
 885    );
 886    function useDismissableLayerSurface() {
 887      const context2 = React10.useContext(DismissableLayerContext);
 888      const [node, setNode] = React10.useState(null);
 889      React10.useEffect(() => {
 890        if (!node) {
 891          return;
 892        }
 893        context2.dismissableSurfaces.add(node);
 894        return () => {
 895          context2.dismissableSurfaces.delete(node);
 896        };
 897      }, [node, context2.dismissableSurfaces]);
 898      return setNode;
 899    }
 900    __name10(useDismissableLayerSurface, "useDismissableLayerSurface");
 901    var IS_TRUE = /* @__PURE__ */ __name10(() => true, "IS_TRUE");
 902    function usePointerDownOutside(onPointerDownOutside, args) {
 903      const {
 904        ownerDocument = globalThis?.document,
 905        deferPointerDownOutside = false,
 906        isDeferredPointerDownOutsideRef,
 907        dismissableSurfaces,
 908        shouldHandlePointerDownOutside = IS_TRUE
 909      } = args;
 910      const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
 911      const isPointerInsideReactTreeRef = React10.useRef(false);
 912      const isPointerDownOutsideRef = React10.useRef(false);
 913      const interceptedOutsideInteractionEventsRef = React10.useRef(/* @__PURE__ */ new Map());
 914      const handleClickRef = React10.useRef(() => {
 915      });
 916      React10.useEffect(() => {
 917        function resetOutsideInteraction() {
 918          isPointerDownOutsideRef.current = false;
 919          isDeferredPointerDownOutsideRef.current = false;
 920          interceptedOutsideInteractionEventsRef.current.clear();
 921        }
 922        __name10(resetOutsideInteraction, "resetOutsideInteraction");
 923        function isOutsideInteractionIntercepted() {
 924          return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);
 925        }
 926        __name10(isOutsideInteractionIntercepted, "isOutsideInteractionIntercepted");
 927        function handleInteractionCapture(event) {
 928          if (!isPointerDownOutsideRef.current) {
 929            return;
 930          }
 931          const target = event.target;
 932          const isDismissableSurface = target instanceof Node && [...dismissableSurfaces].some((surface) => surface.contains(target));
 933          if (!isDismissableSurface) {
 934            interceptedOutsideInteractionEventsRef.current.set(event.type, true);
 935          }
 936          if (event.type === "click") {
 937            window.setTimeout(() => {
 938              if (isPointerDownOutsideRef.current) {
 939                handleClickRef.current();
 940              }
 941            }, 0);
 942          }
 943        }
 944        __name10(handleInteractionCapture, "handleInteractionCapture");
 945        function handleInteractionBubble(event) {
 946          if (isPointerDownOutsideRef.current) {
 947            interceptedOutsideInteractionEventsRef.current.set(event.type, false);
 948          }
 949        }
 950        __name10(handleInteractionBubble, "handleInteractionBubble");
 951        const handlePointerDown = /* @__PURE__ */ __name10((event) => {
 952          if (event.target && !isPointerInsideReactTreeRef.current) {
 953            let handleAndDispatchPointerDownOutsideEvent2 = function() {
 954              ownerDocument.removeEventListener("click", handleClickRef.current);
 955              const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();
 956              resetOutsideInteraction();
 957              if (!wasOutsideInteractionIntercepted) {
 958                handleAndDispatchCustomEvent(
 959                  POINTER_DOWN_OUTSIDE,
 960                  handlePointerDownOutside,
 961                  eventDetail,
 962                  { discrete: true }
 963                );
 964              }
 965            };
 966            var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;
 967            __name10(handleAndDispatchPointerDownOutsideEvent2, "handleAndDispatchPointerDownOutsideEvent");
 968            if (!shouldHandlePointerDownOutside(event.target)) {
 969              ownerDocument.removeEventListener("click", handleClickRef.current);
 970              resetOutsideInteraction();
 971              isPointerInsideReactTreeRef.current = false;
 972              return;
 973            }
 974            const eventDetail = { originalEvent: event };
 975            isPointerDownOutsideRef.current = true;
 976            isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && event.button === 0;
 977            interceptedOutsideInteractionEventsRef.current.clear();
 978            if (!deferPointerDownOutside || event.button !== 0) {
 979              handleAndDispatchPointerDownOutsideEvent2();
 980            } else {
 981              ownerDocument.removeEventListener("click", handleClickRef.current);
 982              handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
 983              ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
 984            }
 985          } else {
 986            ownerDocument.removeEventListener("click", handleClickRef.current);
 987            resetOutsideInteraction();
 988          }
 989          isPointerInsideReactTreeRef.current = false;
 990        }, "handlePointerDown");
 991        const outsideInteractionEvents = [
 992          "pointerup",
 993          "mousedown",
 994          "mouseup",
 995          "touchstart",
 996          "touchend",
 997          "click"
 998        ];
 999        for (const eventName of outsideInteractionEvents) {
1000          ownerDocument.addEventListener(eventName, handleInteractionCapture, true);
1001          ownerDocument.addEventListener(eventName, handleInteractionBubble);
1002        }
1003        const timerId = window.setTimeout(() => {
1004          ownerDocument.addEventListener("pointerdown", handlePointerDown);
1005        }, 0);
1006        return () => {
1007          window.clearTimeout(timerId);
1008          ownerDocument.removeEventListener("pointerdown", handlePointerDown);
1009          ownerDocument.removeEventListener("click", handleClickRef.current);
1010          for (const eventName of outsideInteractionEvents) {
1011            ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);
1012            ownerDocument.removeEventListener(eventName, handleInteractionBubble);
1013          }
1014        };
1015      }, [
1016        ownerDocument,
1017        handlePointerDownOutside,
1018        deferPointerDownOutside,
1019        isDeferredPointerDownOutsideRef,
1020        dismissableSurfaces,
1021        shouldHandlePointerDownOutside
1022      ]);
1023      return {
1024        // ensures we check React component tree (not just DOM tree)
1025        onPointerDownCapture: /* @__PURE__ */ __name10(() => isPointerInsideReactTreeRef.current = true, "onPointerDownCapture")
1026      };
1027    }
1028    __name10(usePointerDownOutside, "usePointerDownOutside");
1029    function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {
1030      const handleFocusOutside = useCallbackRef(onFocusOutside);
1031      const isFocusInsideReactTreeRef = React10.useRef(false);
1032      React10.useEffect(() => {
1033        const handleFocus = /* @__PURE__ */ __name10((event) => {
1034          if (event.target && !isFocusInsideReactTreeRef.current) {
1035            const eventDetail = { originalEvent: event };
1036            handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
1037              discrete: false
1038            });
1039          }
1040        }, "handleFocus");
1041        ownerDocument.addEventListener("focusin", handleFocus);
1042        return () => ownerDocument.removeEventListener("focusin", handleFocus);
1043      }, [ownerDocument, handleFocusOutside]);
1044      return {
1045        onFocusCapture: /* @__PURE__ */ __name10(() => isFocusInsideReactTreeRef.current = true, "onFocusCapture"),
1046        onBlurCapture: /* @__PURE__ */ __name10(() => isFocusInsideReactTreeRef.current = false, "onBlurCapture")
1047      };
1048    }
1049    __name10(useFocusOutside, "useFocusOutside");
1050    function dispatchUpdate() {
1051      const event = new CustomEvent(CONTEXT_UPDATE);
1052      document.dispatchEvent(event);
1053    }
1054    __name10(dispatchUpdate, "dispatchUpdate");
1055    function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
1056      const target = detail.originalEvent.target;
1057      const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
1058      if (handler) target.addEventListener(name, handler, { once: true });
1059      if (discrete) {
1060        dispatchDiscreteCustomEvent(target, event);
1061      } else {
1062        target.dispatchEvent(event);
1063      }
1064    }
1065    __name10(handleAndDispatchCustomEvent, "handleAndDispatchCustomEvent");
1066  
1067    // node_modules/.store/@radix-ui/react-focus-scope@1.1.16-YPQp7Tv7wxmVoy-hNvj09g/node_modules/@radix-ui/react-focus-scope/dist/index.mjs
1068    var React11 = __toESM(require_react(), 1);
1069    var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
1070    var __defProp12 = Object.defineProperty;
1071    var __name11 = (target, value) => __defProp12(target, "name", { value, configurable: true });
1072    var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
1073    var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
1074    var EVENT_OPTIONS = { bubbles: false, cancelable: true };
1075    var FocusScope = /* @__PURE__ */ React11.forwardRef(
1076      /* @__PURE__ */ __name11(function FocusScope2(props, forwardedRef) {
1077        const {
1078          loop = false,
1079          trapped = false,
1080          onMountAutoFocus: onMountAutoFocusProp,
1081          onUnmountAutoFocus: onUnmountAutoFocusProp,
1082          ...scopeProps
1083        } = props;
1084        const [container, setContainer] = React11.useState(null);
1085        const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);
1086        const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);
1087        const lastFocusedElementRef = React11.useRef(null);
1088        const composedRefs = useComposedRefs(forwardedRef, setContainer);
1089        const focusScope = React11.useRef({
1090          paused: false,
1091          pause() {
1092            this.paused = true;
1093          },
1094          resume() {
1095            this.paused = false;
1096          }
1097        }).current;
1098        React11.useEffect(() => {
1099          if (trapped) {
1100            let handleFocusIn2 = function(event) {
1101              if (focusScope.paused || !container) return;
1102              const target = event.target;
1103              if (container.contains(target)) {
1104                lastFocusedElementRef.current = target;
1105              } else {
1106                focus(lastFocusedElementRef.current, { select: true });
1107              }
1108            }, handleFocusOut2 = function(event) {
1109              if (focusScope.paused || !container) return;
1110              const relatedTarget = event.relatedTarget;
1111              if (relatedTarget === null) return;
1112              if (!container.contains(relatedTarget)) {
1113                focus(lastFocusedElementRef.current, { select: true });
1114              }
1115            }, handleMutations2 = function(mutations) {
1116              const focusedElement = document.activeElement;
1117              if (focusedElement !== document.body) return;
1118              for (const mutation of mutations) {
1119                if (mutation.removedNodes.length > 0) focus(container);
1120              }
1121            };
1122            var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;
1123            __name11(handleFocusIn2, "handleFocusIn");
1124            __name11(handleFocusOut2, "handleFocusOut");
1125            __name11(handleMutations2, "handleMutations");
1126            document.addEventListener("focusin", handleFocusIn2);
1127            document.addEventListener("focusout", handleFocusOut2);
1128            const mutationObserver = new MutationObserver(handleMutations2);
1129            if (container) mutationObserver.observe(container, { childList: true, subtree: true });
1130            return () => {
1131              document.removeEventListener("focusin", handleFocusIn2);
1132              document.removeEventListener("focusout", handleFocusOut2);
1133              mutationObserver.disconnect();
1134            };
1135          }
1136        }, [trapped, container, focusScope.paused]);
1137        React11.useEffect(() => {
1138          if (container) {
1139            focusScopesStack.add(focusScope);
1140            const previouslyFocusedElement = document.activeElement;
1141            const hasFocusedCandidate = container.contains(previouslyFocusedElement);
1142            if (!hasFocusedCandidate) {
1143              const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
1144              container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
1145              container.dispatchEvent(mountEvent);
1146              if (!mountEvent.defaultPrevented) {
1147                focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });
1148                if (document.activeElement === previouslyFocusedElement) {
1149                  focus(container);
1150                }
1151              }
1152            }
1153            return () => {
1154              container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
1155              setTimeout(() => {
1156                const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
1157                container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
1158                container.dispatchEvent(unmountEvent);
1159                if (!unmountEvent.defaultPrevented) {
1160                  focus(previouslyFocusedElement ?? document.body, { select: true });
1161                }
1162                container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
1163                focusScopesStack.remove(focusScope);
1164              }, 0);
1165            };
1166          }
1167        }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
1168        const handleKeyDown = React11.useCallback(
1169          (event) => {
1170            if (!loop && !trapped) return;
1171            if (focusScope.paused) return;
1172            const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
1173            const focusedElement = document.activeElement;
1174            if (isTabKey && focusedElement) {
1175              const container2 = event.currentTarget;
1176              const [first, last] = getTabbableEdges(container2);
1177              const hasTabbableElementsInside = first && last;
1178              if (!hasTabbableElementsInside) {
1179                if (focusedElement === container2) event.preventDefault();
1180              } else {
1181                if (!event.shiftKey && focusedElement === last) {
1182                  event.preventDefault();
1183                  if (loop) focus(first, { select: true });
1184                } else if (event.shiftKey && focusedElement === first) {
1185                  event.preventDefault();
1186                  if (loop) focus(last, { select: true });
1187                }
1188              }
1189            }
1190          },
1191          [loop, trapped, focusScope.paused]
1192        );
1193        return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
1194      }, "FocusScope")
1195    );
1196    function focusFirst(candidates, { select = false } = {}) {
1197      const previouslyFocusedElement = document.activeElement;
1198      for (const candidate of candidates) {
1199        focus(candidate, { select });
1200        if (document.activeElement !== previouslyFocusedElement) return;
1201      }
1202    }
1203    __name11(focusFirst, "focusFirst");
1204    function getTabbableEdges(container) {
1205      const candidates = getTabbableCandidates(container);
1206      const first = findVisible(candidates, container);
1207      const last = findVisible(candidates.reverse(), container);
1208      return [first, last];
1209    }
1210    __name11(getTabbableEdges, "getTabbableEdges");
1211    function getTabbableCandidates(container) {
1212      const nodes = [];
1213      const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
1214        acceptNode: /* @__PURE__ */ __name11((node) => {
1215          const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
1216          if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;
1217          return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
1218        }, "acceptNode")
1219      });
1220      while (walker.nextNode()) nodes.push(walker.currentNode);
1221      return nodes;
1222    }
1223    __name11(getTabbableCandidates, "getTabbableCandidates");
1224    function findVisible(elements, container) {
1225      const canUseCheckVisibility = typeof container.checkVisibility === "function" && container.checkVisibility({ checkVisibilityCSS: true });
1226      for (const element of elements) {
1227        const hidden = canUseCheckVisibility ? !element.checkVisibility({ checkVisibilityCSS: true }) : isHidden(element, { upTo: container });
1228        if (!hidden) {
1229          return element;
1230        }
1231      }
1232    }
1233    __name11(findVisible, "findVisible");
1234    function isHidden(node, { upTo }) {
1235      if (getComputedStyle(node).visibility === "hidden") return true;
1236      while (node) {
1237        if (upTo !== void 0 && node === upTo) return false;
1238        if (getComputedStyle(node).display === "none") return true;
1239        node = node.parentElement;
1240      }
1241      return false;
1242    }
1243    __name11(isHidden, "isHidden");
1244    function isSelectableInput(element) {
1245      return element instanceof HTMLInputElement && "select" in element;
1246    }
1247    __name11(isSelectableInput, "isSelectableInput");
1248    function focus(element, { select = false } = {}) {
1249      if (element && element.focus) {
1250        const previouslyFocusedElement = document.activeElement;
1251        element.focus({ preventScroll: true });
1252        if (element !== previouslyFocusedElement && isSelectableInput(element) && select)
1253          element.select();
1254      }
1255    }
1256    __name11(focus, "focus");
1257    var focusScopesStack = createFocusScopesStack();
1258    function createFocusScopesStack() {
1259      let stack = [];
1260      return {
1261        add(focusScope) {
1262          const activeFocusScope = stack[0];
1263          if (focusScope !== activeFocusScope) {
1264            activeFocusScope?.pause();
1265          }
1266          stack = arrayRemove(stack, focusScope);
1267          stack.unshift(focusScope);
1268        },
1269        remove(focusScope) {
1270          stack = arrayRemove(stack, focusScope);
1271          stack[0]?.resume();
1272        }
1273      };
1274    }
1275    __name11(createFocusScopesStack, "createFocusScopesStack");
1276    function arrayRemove(array, item) {
1277      const updatedArray = [...array];
1278      const index = updatedArray.indexOf(item);
1279      if (index !== -1) {
1280        updatedArray.splice(index, 1);
1281      }
1282      return updatedArray;
1283    }
1284    __name11(arrayRemove, "arrayRemove");
1285    function removeLinks(items) {
1286      return items.filter((item) => item.tagName !== "A");
1287    }
1288    __name11(removeLinks, "removeLinks");
1289  
1290    // node_modules/.store/@radix-ui/react-portal@1.1.17-c107g9qJPrY_oXR9dwaImg/node_modules/@radix-ui/react-portal/dist/index.mjs
1291    var React12 = __toESM(require_react(), 1);
1292    var ReactDOM2 = __toESM(require_react_dom(), 1);
1293    var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
1294    var __defProp13 = Object.defineProperty;
1295    var __name12 = (target, value) => __defProp13(target, "name", { value, configurable: true });
1296    var Portal = /* @__PURE__ */ React12.forwardRef(
1297      /* @__PURE__ */ __name12(function Portal2(props, forwardedRef) {
1298        const { container: containerProp, ...portalProps } = props;
1299        const [mounted, setMounted] = React12.useState(false);
1300        useLayoutEffect2(() => setMounted(true), []);
1301        const container = containerProp || mounted && globalThis?.document?.body;
1302        return container ? ReactDOM2.createPortal(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
1303      }, "Portal")
1304    );
1305  
1306    // node_modules/.store/@radix-ui/react-presence@1.1.10-HIhysypzaG_K5sVxhG5Wig/node_modules/@radix-ui/react-presence/dist/index.mjs
1307    var React23 = __toESM(require_react(), 1);
1308    var React13 = __toESM(require_react(), 1);
1309    var __defProp14 = Object.defineProperty;
1310    var __name13 = (target, value) => __defProp14(target, "name", { value, configurable: true });
1311    function useStateMachine(initialState, machine) {
1312      return React13.useReducer((state, event) => {
1313        const nextState = machine[state][event];
1314        return nextState ?? state;
1315      }, initialState);
1316    }
1317    __name13(useStateMachine, "useStateMachine");
1318    var Presence = /* @__PURE__ */ __name13((props) => {
1319      const { present, children } = props;
1320      const presence = usePresence(present);
1321      const child = typeof children === "function" ? children({ present: presence.isPresent }) : React23.Children.only(children);
1322      const ref = useStableComposedRefs(presence.ref, getElementRef2(child));
1323      const forceMount = typeof children === "function";
1324      return forceMount || presence.isPresent ? React23.cloneElement(child, { ref }) : null;
1325    }, "Presence");
1326    function usePresence(present) {
1327      const [node, setNode] = React23.useState();
1328      const stylesRef = React23.useRef(null);
1329      const prevPresentRef = React23.useRef(present);
1330      const prevAnimationNameRef = React23.useRef("none");
1331      const mountAnimationNameRef = React23.useRef(void 0);
1332      const initialState = present ? "mounted" : "unmounted";
1333      const [state, send] = useStateMachine(initialState, {
1334        mounted: {
1335          UNMOUNT: "unmounted",
1336          ANIMATION_OUT: "unmountSuspended"
1337        },
1338        unmountSuspended: {
1339          MOUNT: "mounted",
1340          ANIMATION_END: "unmounted"
1341        },
1342        unmounted: {
1343          MOUNT: "mounted"
1344        }
1345      });
1346      React23.useEffect(() => {
1347        if (state === "mounted") {
1348          prevAnimationNameRef.current = mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);
1349          mountAnimationNameRef.current = void 0;
1350        } else {
1351          prevAnimationNameRef.current = "none";
1352        }
1353      }, [state]);
1354      useLayoutEffect2(() => {
1355        const styles = stylesRef.current;
1356        const wasPresent = prevPresentRef.current;
1357        const hasPresentChanged = wasPresent !== present;
1358        if (hasPresentChanged) {
1359          const prevAnimationName = prevAnimationNameRef.current;
1360          const currentAnimationName = getAnimationName(styles);
1361          if (present) {
1362            mountAnimationNameRef.current = currentAnimationName;
1363            send("MOUNT");
1364          } else if (currentAnimationName === "none" || styles?.display === "none") {
1365            send("UNMOUNT");
1366          } else {
1367            const isAnimating = prevAnimationName !== currentAnimationName;
1368            if (wasPresent && isAnimating) {
1369              send("ANIMATION_OUT");
1370            } else {
1371              send("UNMOUNT");
1372            }
1373          }
1374          prevPresentRef.current = present;
1375        }
1376      }, [present, send]);
1377      useLayoutEffect2(() => {
1378        if (node) {
1379          let timeoutId;
1380          const ownerWindow = node.ownerDocument.defaultView ?? window;
1381          const handleAnimationEnd = /* @__PURE__ */ __name13((event) => {
1382            const currentAnimationName = getAnimationName(stylesRef.current);
1383            const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));
1384            if (event.target === node && isCurrentAnimation) {
1385              send("ANIMATION_END");
1386              if (!prevPresentRef.current) {
1387                const currentFillMode = node.style.animationFillMode;
1388                node.style.animationFillMode = "forwards";
1389                timeoutId = ownerWindow.setTimeout(() => {
1390                  if (node.style.animationFillMode === "forwards") {
1391                    node.style.animationFillMode = currentFillMode;
1392                  }
1393                });
1394              }
1395            }
1396          }, "handleAnimationEnd");
1397          const handleAnimationStart = /* @__PURE__ */ __name13((event) => {
1398            if (event.target === node) {
1399              prevAnimationNameRef.current = getAnimationName(stylesRef.current);
1400            }
1401          }, "handleAnimationStart");
1402          node.addEventListener("animationstart", handleAnimationStart);
1403          node.addEventListener("animationcancel", handleAnimationEnd);
1404          node.addEventListener("animationend", handleAnimationEnd);
1405          return () => {
1406            ownerWindow.clearTimeout(timeoutId);
1407            node.removeEventListener("animationstart", handleAnimationStart);
1408            node.removeEventListener("animationcancel", handleAnimationEnd);
1409            node.removeEventListener("animationend", handleAnimationEnd);
1410          };
1411        } else {
1412          send("ANIMATION_END");
1413        }
1414      }, [node, send]);
1415      return {
1416        isPresent: ["mounted", "unmountSuspended"].includes(state),
1417        ref: React23.useCallback((node2) => {
1418          if (node2) {
1419            const styles = getComputedStyle(node2);
1420            stylesRef.current = styles;
1421            mountAnimationNameRef.current = getAnimationName(styles);
1422          } else {
1423            stylesRef.current = null;
1424          }
1425          setNode(node2);
1426        }, [])
1427      };
1428    }
1429    __name13(usePresence, "usePresence");
1430    function setRef2(ref, value) {
1431      if (typeof ref === "function") {
1432        return ref(value);
1433      } else if (ref !== null && ref !== void 0) {
1434        ref.current = value;
1435      }
1436    }
1437    __name13(setRef2, "setRef");
1438    function useStableComposedRefs(...refs) {
1439      const refsRef = React23.useRef(refs);
1440      refsRef.current = refs;
1441      return React23.useCallback((node) => {
1442        const currentRefs = refsRef.current;
1443        let hasCleanup = false;
1444        const cleanups = currentRefs.map((ref) => {
1445          const cleanup = setRef2(ref, node);
1446          if (!hasCleanup && typeof cleanup === "function") {
1447            hasCleanup = true;
1448          }
1449          return cleanup;
1450        });
1451        if (hasCleanup) {
1452          return () => {
1453            for (let i = 0; i < cleanups.length; i++) {
1454              const cleanup = cleanups[i];
1455              if (typeof cleanup === "function") {
1456                cleanup();
1457              } else {
1458                setRef2(currentRefs[i], null);
1459              }
1460            }
1461          };
1462        }
1463      }, []);
1464    }
1465    __name13(useStableComposedRefs, "useStableComposedRefs");
1466    function getAnimationName(styles) {
1467      return styles?.animationName || "none";
1468    }
1469    __name13(getAnimationName, "getAnimationName");
1470    function getElementRef2(element) {
1471      let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
1472      let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1473      if (mayWarn) {
1474        return element.ref;
1475      }
1476      getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
1477      mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1478      if (mayWarn) {
1479        return element.props.ref;
1480      }
1481      return element.props.ref || element.ref;
1482    }
1483    __name13(getElementRef2, "getElementRef");
1484  
1485    // node_modules/.store/@radix-ui/react-focus-guards@1.1.6-J8NRBkK6-zVq-z3xjKlU6Q/node_modules/@radix-ui/react-focus-guards/dist/index.mjs
1486    var React14 = __toESM(require_react(), 1);
1487    var __defProp15 = Object.defineProperty;
1488    var __name14 = (target, value) => __defProp15(target, "name", { value, configurable: true });
1489    var count2 = 0;
1490    var guards = null;
1491    function FocusGuards(props) {
1492      useFocusGuards();
1493      return props.children;
1494    }
1495    __name14(FocusGuards, "FocusGuards");
1496    function useFocusGuards() {
1497      React14.useEffect(() => {
1498        if (!guards) {
1499          guards = { start: createFocusGuard(), end: createFocusGuard() };
1500        }
1501        const { start, end } = guards;
1502        if (document.body.firstElementChild !== start) {
1503          document.body.insertAdjacentElement("afterbegin", start);
1504        }
1505        if (document.body.lastElementChild !== end) {
1506          document.body.insertAdjacentElement("beforeend", end);
1507        }
1508        count2++;
1509        return () => {
1510          if (count2 === 1) {
1511            guards?.start.remove();
1512            guards?.end.remove();
1513            guards = null;
1514          }
1515          count2 = Math.max(0, count2 - 1);
1516        };
1517      }, []);
1518    }
1519    __name14(useFocusGuards, "useFocusGuards");
1520    function createFocusGuard() {
1521      const element = document.createElement("span");
1522      element.setAttribute("data-radix-focus-guard", "");
1523      element.tabIndex = 0;
1524      element.style.outline = "none";
1525      element.style.opacity = "0";
1526      element.style.position = "fixed";
1527      element.style.pointerEvents = "none";
1528      return element;
1529    }
1530    __name14(createFocusGuard, "createFocusGuard");
1531  
1532    // node_modules/.store/tslib@2.8.1-LT-dxu1EkVy7OUDyVf5glQ/node_modules/tslib/tslib.es6.mjs
1533    var __assign = function() {
1534      __assign = Object.assign || function __assign2(t2) {
1535        for (var s, i = 1, n = arguments.length; i < n; i++) {
1536          s = arguments[i];
1537          for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t2[p2] = s[p2];
1538        }
1539        return t2;
1540      };
1541      return __assign.apply(this, arguments);
1542    };
1543    function __rest(s, e) {
1544      var t2 = {};
1545      for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0)
1546        t2[p2] = s[p2];
1547      if (s != null && typeof Object.getOwnPropertySymbols === "function")
1548        for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) {
1549          if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i]))
1550            t2[p2[i]] = s[p2[i]];
1551        }
1552      return t2;
1553    }
1554    function __spreadArray(to, from, pack) {
1555      if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1556        if (ar || !(i in from)) {
1557          if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1558          ar[i] = from[i];
1559        }
1560      }
1561      return to.concat(ar || Array.prototype.slice.call(from));
1562    }
1563  
1564    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/Combination.js
1565    var React21 = __toESM(require_react());
1566  
1567    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/UI.js
1568    var React17 = __toESM(require_react());
1569  
1570    // node_modules/.store/react-remove-scroll-bar@2.3.8-4TFmpYw1N_ya2Y7i0xBtxQ/node_modules/react-remove-scroll-bar/dist/es2015/constants.js
1571    var zeroRightClassName = "right-scroll-bar-position";
1572    var fullWidthClassName = "width-before-scroll-bar";
1573    var noScrollbarsClassName = "with-scroll-bars-hidden";
1574    var removedBarSizeVariable = "--removed-body-scroll-bar-size";
1575  
1576    // node_modules/.store/use-callback-ref@1.3.3-CY49Gx_8xVP_WAvrqWfBkg/node_modules/use-callback-ref/dist/es2015/assignRef.js
1577    function assignRef(ref, value) {
1578      if (typeof ref === "function") {
1579        ref(value);
1580      } else if (ref) {
1581        ref.current = value;
1582      }
1583      return ref;
1584    }
1585  
1586    // node_modules/.store/use-callback-ref@1.3.3-CY49Gx_8xVP_WAvrqWfBkg/node_modules/use-callback-ref/dist/es2015/useRef.js
1587    var import_react = __toESM(require_react());
1588    function useCallbackRef2(initialValue, callback) {
1589      var ref = (0, import_react.useState)(function() {
1590        return {
1591          // value
1592          value: initialValue,
1593          // last callback
1594          callback,
1595          // "memoized" public interface
1596          facade: {
1597            get current() {
1598              return ref.value;
1599            },
1600            set current(value) {
1601              var last = ref.value;
1602              if (last !== value) {
1603                ref.value = value;
1604                ref.callback(value, last);
1605              }
1606            }
1607          }
1608        };
1609      })[0];
1610      ref.callback = callback;
1611      return ref.facade;
1612    }
1613  
1614    // node_modules/.store/use-callback-ref@1.3.3-CY49Gx_8xVP_WAvrqWfBkg/node_modules/use-callback-ref/dist/es2015/useMergeRef.js
1615    var React15 = __toESM(require_react());
1616    var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React15.useLayoutEffect : React15.useEffect;
1617    var currentValues = /* @__PURE__ */ new WeakMap();
1618    function useMergeRefs(refs, defaultValue) {
1619      var callbackRef = useCallbackRef2(defaultValue || null, function(newValue) {
1620        return refs.forEach(function(ref) {
1621          return assignRef(ref, newValue);
1622        });
1623      });
1624      useIsomorphicLayoutEffect(function() {
1625        var oldValue = currentValues.get(callbackRef);
1626        if (oldValue) {
1627          var prevRefs_1 = new Set(oldValue);
1628          var nextRefs_1 = new Set(refs);
1629          var current_1 = callbackRef.current;
1630          prevRefs_1.forEach(function(ref) {
1631            if (!nextRefs_1.has(ref)) {
1632              assignRef(ref, null);
1633            }
1634          });
1635          nextRefs_1.forEach(function(ref) {
1636            if (!prevRefs_1.has(ref)) {
1637              assignRef(ref, current_1);
1638            }
1639          });
1640        }
1641        currentValues.set(callbackRef, refs);
1642      }, [refs]);
1643      return callbackRef;
1644    }
1645  
1646    // node_modules/.store/use-sidecar@1.1.3-6pQBe5oGIq-z4KtBgLaB5w/node_modules/use-sidecar/dist/es2015/medium.js
1647    function ItoI(a) {
1648      return a;
1649    }
1650    function innerCreateMedium(defaults, middleware) {
1651      if (middleware === void 0) {
1652        middleware = ItoI;
1653      }
1654      var buffer = [];
1655      var assigned = false;
1656      var medium = {
1657        read: function() {
1658          if (assigned) {
1659            throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");
1660          }
1661          if (buffer.length) {
1662            return buffer[buffer.length - 1];
1663          }
1664          return defaults;
1665        },
1666        useMedium: function(data) {
1667          var item = middleware(data, assigned);
1668          buffer.push(item);
1669          return function() {
1670            buffer = buffer.filter(function(x) {
1671              return x !== item;
1672            });
1673          };
1674        },
1675        assignSyncMedium: function(cb) {
1676          assigned = true;
1677          while (buffer.length) {
1678            var cbs = buffer;
1679            buffer = [];
1680            cbs.forEach(cb);
1681          }
1682          buffer = {
1683            push: function(x) {
1684              return cb(x);
1685            },
1686            filter: function() {
1687              return buffer;
1688            }
1689          };
1690        },
1691        assignMedium: function(cb) {
1692          assigned = true;
1693          var pendingQueue = [];
1694          if (buffer.length) {
1695            var cbs = buffer;
1696            buffer = [];
1697            cbs.forEach(cb);
1698            pendingQueue = buffer;
1699          }
1700          var executeQueue = function() {
1701            var cbs2 = pendingQueue;
1702            pendingQueue = [];
1703            cbs2.forEach(cb);
1704          };
1705          var cycle = function() {
1706            return Promise.resolve().then(executeQueue);
1707          };
1708          cycle();
1709          buffer = {
1710            push: function(x) {
1711              pendingQueue.push(x);
1712              cycle();
1713            },
1714            filter: function(filter) {
1715              pendingQueue = pendingQueue.filter(filter);
1716              return buffer;
1717            }
1718          };
1719        }
1720      };
1721      return medium;
1722    }
1723    function createSidecarMedium(options) {
1724      if (options === void 0) {
1725        options = {};
1726      }
1727      var medium = innerCreateMedium(null);
1728      medium.options = __assign({ async: true, ssr: false }, options);
1729      return medium;
1730    }
1731  
1732    // node_modules/.store/use-sidecar@1.1.3-6pQBe5oGIq-z4KtBgLaB5w/node_modules/use-sidecar/dist/es2015/exports.js
1733    var React16 = __toESM(require_react());
1734    var SideCar = function(_a) {
1735      var sideCar = _a.sideCar, rest = __rest(_a, ["sideCar"]);
1736      if (!sideCar) {
1737        throw new Error("Sidecar: please provide `sideCar` property to import the right car");
1738      }
1739      var Target = sideCar.read();
1740      if (!Target) {
1741        throw new Error("Sidecar medium not found");
1742      }
1743      return React16.createElement(Target, __assign({}, rest));
1744    };
1745    SideCar.isSideCarExport = true;
1746    function exportSidecar(medium, exported) {
1747      medium.useMedium(exported);
1748      return SideCar;
1749    }
1750  
1751    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/medium.js
1752    var effectCar = createSidecarMedium();
1753  
1754    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/UI.js
1755    var nothing = function() {
1756      return;
1757    };
1758    var RemoveScroll = React17.forwardRef(function(props, parentRef) {
1759      var ref = React17.useRef(null);
1760      var _a = React17.useState({
1761        onScrollCapture: nothing,
1762        onWheelCapture: nothing,
1763        onTouchMoveCapture: nothing
1764      }), callbacks = _a[0], setCallbacks = _a[1];
1765      var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? "div" : _b, gapMode = props.gapMode, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noRelative", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]);
1766      var SideCar2 = sideCar;
1767      var containerRef = useMergeRefs([ref, parentRef]);
1768      var containerProps = __assign(__assign({}, rest), callbacks);
1769      return React17.createElement(
1770        React17.Fragment,
1771        null,
1772        enabled && React17.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noRelative, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }),
1773        forwardProps ? React17.cloneElement(React17.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React17.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children)
1774      );
1775    });
1776    RemoveScroll.defaultProps = {
1777      enabled: true,
1778      removeScrollBar: true,
1779      inert: false
1780    };
1781    RemoveScroll.classNames = {
1782      fullWidth: fullWidthClassName,
1783      zeroRight: zeroRightClassName
1784    };
1785  
1786    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/SideEffect.js
1787    var React20 = __toESM(require_react());
1788  
1789    // node_modules/.store/react-remove-scroll-bar@2.3.8-4TFmpYw1N_ya2Y7i0xBtxQ/node_modules/react-remove-scroll-bar/dist/es2015/component.js
1790    var React19 = __toESM(require_react());
1791  
1792    // node_modules/.store/react-style-singleton@2.2.3-HhrrM8n2z-BDpx6IHTz-qw/node_modules/react-style-singleton/dist/es2015/hook.js
1793    var React18 = __toESM(require_react());
1794  
1795    // node_modules/.store/get-nonce@1.0.1-T9SDetHAbMT8POt0PFKPhQ/node_modules/get-nonce/dist/es2015/index.js
1796    var currentNonce;
1797    var getNonce = function() {
1798      if (currentNonce) {
1799        return currentNonce;
1800      }
1801      if (typeof __webpack_nonce__ !== "undefined") {
1802        return __webpack_nonce__;
1803      }
1804      return void 0;
1805    };
1806  
1807    // node_modules/.store/react-style-singleton@2.2.3-HhrrM8n2z-BDpx6IHTz-qw/node_modules/react-style-singleton/dist/es2015/singleton.js
1808    function makeStyleTag() {
1809      if (!document)
1810        return null;
1811      var tag = document.createElement("style");
1812      tag.type = "text/css";
1813      var nonce = getNonce();
1814      if (nonce) {
1815        tag.setAttribute("nonce", nonce);
1816      }
1817      return tag;
1818    }
1819    function injectStyles(tag, css) {
1820      if (tag.styleSheet) {
1821        tag.styleSheet.cssText = css;
1822      } else {
1823        tag.appendChild(document.createTextNode(css));
1824      }
1825    }
1826    function insertStyleTag(tag) {
1827      var head = document.head || document.getElementsByTagName("head")[0];
1828      head.appendChild(tag);
1829    }
1830    var stylesheetSingleton = function() {
1831      var counter = 0;
1832      var stylesheet = null;
1833      return {
1834        add: function(style) {
1835          if (counter == 0) {
1836            if (stylesheet = makeStyleTag()) {
1837              injectStyles(stylesheet, style);
1838              insertStyleTag(stylesheet);
1839            }
1840          }
1841          counter++;
1842        },
1843        remove: function() {
1844          counter--;
1845          if (!counter && stylesheet) {
1846            stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);
1847            stylesheet = null;
1848          }
1849        }
1850      };
1851    };
1852  
1853    // node_modules/.store/react-style-singleton@2.2.3-HhrrM8n2z-BDpx6IHTz-qw/node_modules/react-style-singleton/dist/es2015/hook.js
1854    var styleHookSingleton = function() {
1855      var sheet = stylesheetSingleton();
1856      return function(styles, isDynamic) {
1857        React18.useEffect(function() {
1858          sheet.add(styles);
1859          return function() {
1860            sheet.remove();
1861          };
1862        }, [styles && isDynamic]);
1863      };
1864    };
1865  
1866    // node_modules/.store/react-style-singleton@2.2.3-HhrrM8n2z-BDpx6IHTz-qw/node_modules/react-style-singleton/dist/es2015/component.js
1867    var styleSingleton = function() {
1868      var useStyle = styleHookSingleton();
1869      var Sheet = function(_a) {
1870        var styles = _a.styles, dynamic = _a.dynamic;
1871        useStyle(styles, dynamic);
1872        return null;
1873      };
1874      return Sheet;
1875    };
1876  
1877    // node_modules/.store/react-remove-scroll-bar@2.3.8-4TFmpYw1N_ya2Y7i0xBtxQ/node_modules/react-remove-scroll-bar/dist/es2015/utils.js
1878    var zeroGap = {
1879      left: 0,
1880      top: 0,
1881      right: 0,
1882      gap: 0
1883    };
1884    var parse = function(x) {
1885      return parseInt(x || "", 10) || 0;
1886    };
1887    var getOffset = function(gapMode) {
1888      var cs = window.getComputedStyle(document.body);
1889      var left = cs[gapMode === "padding" ? "paddingLeft" : "marginLeft"];
1890      var top = cs[gapMode === "padding" ? "paddingTop" : "marginTop"];
1891      var right = cs[gapMode === "padding" ? "paddingRight" : "marginRight"];
1892      return [parse(left), parse(top), parse(right)];
1893    };
1894    var getGapWidth = function(gapMode) {
1895      if (gapMode === void 0) {
1896        gapMode = "margin";
1897      }
1898      if (typeof window === "undefined") {
1899        return zeroGap;
1900      }
1901      var offsets = getOffset(gapMode);
1902      var documentWidth = document.documentElement.clientWidth;
1903      var windowWidth = window.innerWidth;
1904      return {
1905        left: offsets[0],
1906        top: offsets[1],
1907        right: offsets[2],
1908        gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])
1909      };
1910    };
1911  
1912    // node_modules/.store/react-remove-scroll-bar@2.3.8-4TFmpYw1N_ya2Y7i0xBtxQ/node_modules/react-remove-scroll-bar/dist/es2015/component.js
1913    var Style = styleSingleton();
1914    var lockAttribute = "data-scroll-locked";
1915    var getStyles = function(_a, allowRelative, gapMode, important) {
1916      var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;
1917      if (gapMode === void 0) {
1918        gapMode = "margin";
1919      }
1920      return "\n  .".concat(noScrollbarsClassName, " {\n   overflow: hidden ").concat(important, ";\n   padding-right: ").concat(gap, "px ").concat(important, ";\n  }\n  body[").concat(lockAttribute, "] {\n    overflow: hidden ").concat(important, ";\n    overscroll-behavior: contain;\n    ").concat([
1921        allowRelative && "position: relative ".concat(important, ";"),
1922        gapMode === "margin" && "\n    padding-left: ".concat(left, "px;\n    padding-top: ").concat(top, "px;\n    padding-right: ").concat(right, "px;\n    margin-left:0;\n    margin-top:0;\n    margin-right: ").concat(gap, "px ").concat(important, ";\n    "),
1923        gapMode === "padding" && "padding-right: ".concat(gap, "px ").concat(important, ";")
1924      ].filter(Boolean).join(""), "\n  }\n  \n  .").concat(zeroRightClassName, " {\n    right: ").concat(gap, "px ").concat(important, ";\n  }\n  \n  .").concat(fullWidthClassName, " {\n    margin-right: ").concat(gap, "px ").concat(important, ";\n  }\n  \n  .").concat(zeroRightClassName, " .").concat(zeroRightClassName, " {\n    right: 0 ").concat(important, ";\n  }\n  \n  .").concat(fullWidthClassName, " .").concat(fullWidthClassName, " {\n    margin-right: 0 ").concat(important, ";\n  }\n  \n  body[").concat(lockAttribute, "] {\n    ").concat(removedBarSizeVariable, ": ").concat(gap, "px;\n  }\n");
1925    };
1926    var getCurrentUseCounter = function() {
1927      var counter = parseInt(document.body.getAttribute(lockAttribute) || "0", 10);
1928      return isFinite(counter) ? counter : 0;
1929    };
1930    var useLockAttribute = function() {
1931      React19.useEffect(function() {
1932        document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());
1933        return function() {
1934          var newCounter = getCurrentUseCounter() - 1;
1935          if (newCounter <= 0) {
1936            document.body.removeAttribute(lockAttribute);
1937          } else {
1938            document.body.setAttribute(lockAttribute, newCounter.toString());
1939          }
1940        };
1941      }, []);
1942    };
1943    var RemoveScrollBar = function(_a) {
1944      var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? "margin" : _b;
1945      useLockAttribute();
1946      var gap = React19.useMemo(function() {
1947        return getGapWidth(gapMode);
1948      }, [gapMode]);
1949      return React19.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") });
1950    };
1951  
1952    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js
1953    var passiveSupported = false;
1954    if (typeof window !== "undefined") {
1955      try {
1956        options = Object.defineProperty({}, "passive", {
1957          get: function() {
1958            passiveSupported = true;
1959            return true;
1960          }
1961        });
1962        window.addEventListener("test", options, options);
1963        window.removeEventListener("test", options, options);
1964      } catch (err) {
1965        passiveSupported = false;
1966      }
1967    }
1968    var options;
1969    var nonPassive = passiveSupported ? { passive: false } : false;
1970  
1971    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/handleScroll.js
1972    var alwaysContainsScroll = function(node) {
1973      return node.tagName === "TEXTAREA";
1974    };
1975    var elementCanBeScrolled = function(node, overflow) {
1976      if (!(node instanceof Element)) {
1977        return false;
1978      }
1979      var styles = window.getComputedStyle(node);
1980      return (
1981        // not-not-scrollable
1982        styles[overflow] !== "hidden" && // contains scroll inside self
1983        !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === "visible")
1984      );
1985    };
1986    var elementCouldBeVScrolled = function(node) {
1987      return elementCanBeScrolled(node, "overflowY");
1988    };
1989    var elementCouldBeHScrolled = function(node) {
1990      return elementCanBeScrolled(node, "overflowX");
1991    };
1992    var locationCouldBeScrolled = function(axis, node) {
1993      var ownerDocument = node.ownerDocument;
1994      var current = node;
1995      do {
1996        if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) {
1997          current = current.host;
1998        }
1999        var isScrollable = elementCouldBeScrolled(axis, current);
2000        if (isScrollable) {
2001          var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];
2002          if (scrollHeight > clientHeight) {
2003            return true;
2004          }
2005        }
2006        current = current.parentNode;
2007      } while (current && current !== ownerDocument.body);
2008      return false;
2009    };
2010    var getVScrollVariables = function(_a) {
2011      var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
2012      return [
2013        scrollTop,
2014        scrollHeight,
2015        clientHeight
2016      ];
2017    };
2018    var getHScrollVariables = function(_a) {
2019      var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
2020      return [
2021        scrollLeft,
2022        scrollWidth,
2023        clientWidth
2024      ];
2025    };
2026    var elementCouldBeScrolled = function(axis, node) {
2027      return axis === "v" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);
2028    };
2029    var getScrollVariables = function(axis, node) {
2030      return axis === "v" ? getVScrollVariables(node) : getHScrollVariables(node);
2031    };
2032    var getDirectionFactor = function(axis, direction) {
2033      return axis === "h" && direction === "rtl" ? -1 : 1;
2034    };
2035    var handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) {
2036      var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);
2037      var delta = directionFactor * sourceDelta;
2038      var target = event.target;
2039      var targetInLock = endTarget.contains(target);
2040      var shouldCancelScroll = false;
2041      var isDeltaPositive = delta > 0;
2042      var availableScroll = 0;
2043      var availableScrollTop = 0;
2044      do {
2045        if (!target) {
2046          break;
2047        }
2048        var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];
2049        var elementScroll = scroll_1 - capacity - directionFactor * position;
2050        if (position || elementScroll) {
2051          if (elementCouldBeScrolled(axis, target)) {
2052            availableScroll += elementScroll;
2053            availableScrollTop += position;
2054          }
2055        }
2056        var parent_1 = target.parentNode;
2057        target = parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1;
2058      } while (
2059        // portaled content
2060        !targetInLock && target !== document.body || // self content
2061        targetInLock && (endTarget.contains(target) || endTarget === target)
2062      );
2063      if (isDeltaPositive && (noOverscroll && Math.abs(availableScroll) < 1 || !noOverscroll && delta > availableScroll)) {
2064        shouldCancelScroll = true;
2065      } else if (!isDeltaPositive && (noOverscroll && Math.abs(availableScrollTop) < 1 || !noOverscroll && -delta > availableScrollTop)) {
2066        shouldCancelScroll = true;
2067      }
2068      return shouldCancelScroll;
2069    };
2070  
2071    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/SideEffect.js
2072    var getTouchXY = function(event) {
2073      return "changedTouches" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];
2074    };
2075    var getDeltaXY = function(event) {
2076      return [event.deltaX, event.deltaY];
2077    };
2078    var extractRef = function(ref) {
2079      return ref && "current" in ref ? ref.current : ref;
2080    };
2081    var deltaCompare = function(x, y) {
2082      return x[0] === y[0] && x[1] === y[1];
2083    };
2084    var generateStyle = function(id) {
2085      return "\n  .block-interactivity-".concat(id, " {pointer-events: none;}\n  .allow-interactivity-").concat(id, " {pointer-events: all;}\n");
2086    };
2087    var idCounter = 0;
2088    var lockStack = [];
2089    function RemoveScrollSideCar(props) {
2090      var shouldPreventQueue = React20.useRef([]);
2091      var touchStartRef = React20.useRef([0, 0]);
2092      var activeAxis = React20.useRef();
2093      var id = React20.useState(idCounter++)[0];
2094      var Style2 = React20.useState(styleSingleton)[0];
2095      var lastProps = React20.useRef(props);
2096      React20.useEffect(function() {
2097        lastProps.current = props;
2098      }, [props]);
2099      React20.useEffect(function() {
2100        if (props.inert) {
2101          document.body.classList.add("block-interactivity-".concat(id));
2102          var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
2103          allow_1.forEach(function(el) {
2104            return el.classList.add("allow-interactivity-".concat(id));
2105          });
2106          return function() {
2107            document.body.classList.remove("block-interactivity-".concat(id));
2108            allow_1.forEach(function(el) {
2109              return el.classList.remove("allow-interactivity-".concat(id));
2110            });
2111          };
2112        }
2113        return;
2114      }, [props.inert, props.lockRef.current, props.shards]);
2115      var shouldCancelEvent = React20.useCallback(function(event, parent) {
2116        if ("touches" in event && event.touches.length === 2 || event.type === "wheel" && event.ctrlKey) {
2117          return !lastProps.current.allowPinchZoom;
2118        }
2119        var touch = getTouchXY(event);
2120        var touchStart = touchStartRef.current;
2121        var deltaX = "deltaX" in event ? event.deltaX : touchStart[0] - touch[0];
2122        var deltaY = "deltaY" in event ? event.deltaY : touchStart[1] - touch[1];
2123        var currentAxis;
2124        var target = event.target;
2125        var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? "h" : "v";
2126        if ("touches" in event && moveDirection === "h" && target.type === "range") {
2127          return false;
2128        }
2129        var selection = window.getSelection();
2130        var anchorNode = selection && selection.anchorNode;
2131        var isTouchingSelection = anchorNode ? anchorNode === target || anchorNode.contains(target) : false;
2132        if (isTouchingSelection) {
2133          return false;
2134        }
2135        var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);
2136        if (!canBeScrolledInMainDirection) {
2137          return true;
2138        }
2139        if (canBeScrolledInMainDirection) {
2140          currentAxis = moveDirection;
2141        } else {
2142          currentAxis = moveDirection === "v" ? "h" : "v";
2143          canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);
2144        }
2145        if (!canBeScrolledInMainDirection) {
2146          return false;
2147        }
2148        if (!activeAxis.current && "changedTouches" in event && (deltaX || deltaY)) {
2149          activeAxis.current = currentAxis;
2150        }
2151        if (!currentAxis) {
2152          return true;
2153        }
2154        var cancelingAxis = activeAxis.current || currentAxis;
2155        return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true);
2156      }, []);
2157      var shouldPrevent = React20.useCallback(function(_event) {
2158        var event = _event;
2159        if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) {
2160          return;
2161        }
2162        var delta = "deltaY" in event ? getDeltaXY(event) : getTouchXY(event);
2163        var sourceEvent = shouldPreventQueue.current.filter(function(e) {
2164          return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta);
2165        })[0];
2166        if (sourceEvent && sourceEvent.should) {
2167          if (event.cancelable) {
2168            event.preventDefault();
2169          }
2170          return;
2171        }
2172        if (!sourceEvent) {
2173          var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) {
2174            return node.contains(event.target);
2175          });
2176          var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;
2177          if (shouldStop) {
2178            if (event.cancelable) {
2179              event.preventDefault();
2180            }
2181          }
2182        }
2183      }, []);
2184      var shouldCancel = React20.useCallback(function(name, delta, target, should) {
2185        var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) };
2186        shouldPreventQueue.current.push(event);
2187        setTimeout(function() {
2188          shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) {
2189            return e !== event;
2190          });
2191        }, 1);
2192      }, []);
2193      var scrollTouchStart = React20.useCallback(function(event) {
2194        touchStartRef.current = getTouchXY(event);
2195        activeAxis.current = void 0;
2196      }, []);
2197      var scrollWheel = React20.useCallback(function(event) {
2198        shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
2199      }, []);
2200      var scrollTouchMove = React20.useCallback(function(event) {
2201        shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
2202      }, []);
2203      React20.useEffect(function() {
2204        lockStack.push(Style2);
2205        props.setCallbacks({
2206          onScrollCapture: scrollWheel,
2207          onWheelCapture: scrollWheel,
2208          onTouchMoveCapture: scrollTouchMove
2209        });
2210        document.addEventListener("wheel", shouldPrevent, nonPassive);
2211        document.addEventListener("touchmove", shouldPrevent, nonPassive);
2212        document.addEventListener("touchstart", scrollTouchStart, nonPassive);
2213        return function() {
2214          lockStack = lockStack.filter(function(inst) {
2215            return inst !== Style2;
2216          });
2217          document.removeEventListener("wheel", shouldPrevent, nonPassive);
2218          document.removeEventListener("touchmove", shouldPrevent, nonPassive);
2219          document.removeEventListener("touchstart", scrollTouchStart, nonPassive);
2220        };
2221      }, []);
2222      var removeScrollBar = props.removeScrollBar, inert = props.inert;
2223      return React20.createElement(
2224        React20.Fragment,
2225        null,
2226        inert ? React20.createElement(Style2, { styles: generateStyle(id) }) : null,
2227        removeScrollBar ? React20.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null
2228      );
2229    }
2230    function getOutermostShadowParent(node) {
2231      var shadowParent = null;
2232      while (node !== null) {
2233        if (node instanceof ShadowRoot) {
2234          shadowParent = node.host;
2235          node = node.host;
2236        }
2237        node = node.parentNode;
2238      }
2239      return shadowParent;
2240    }
2241  
2242    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/sidecar.js
2243    var sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar);
2244  
2245    // node_modules/.store/react-remove-scroll@2.7.2-g5JjNH6M9u1FDMe3NHg_3Q/node_modules/react-remove-scroll/dist/es2015/Combination.js
2246    var ReactRemoveScroll = React21.forwardRef(function(props, ref) {
2247      return React21.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default }));
2248    });
2249    ReactRemoveScroll.classNames = RemoveScroll.classNames;
2250    var Combination_default = ReactRemoveScroll;
2251  
2252    // node_modules/.store/aria-hidden@1.2.6--GO2Ve_nUkubj48l2T3YZg/node_modules/aria-hidden/dist/es2015/index.js
2253    var getDefaultParent = function(originalTarget) {
2254      if (typeof document === "undefined") {
2255        return null;
2256      }
2257      var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;
2258      return sampleTarget.ownerDocument.body;
2259    };
2260    var counterMap = /* @__PURE__ */ new WeakMap();
2261    var uncontrolledNodes = /* @__PURE__ */ new WeakMap();
2262    var markerMap = {};
2263    var lockCount = 0;
2264    var unwrapHost = function(node) {
2265      return node && (node.host || unwrapHost(node.parentNode));
2266    };
2267    var correctTargets = function(parent, targets) {
2268      return targets.map(function(target) {
2269        if (parent.contains(target)) {
2270          return target;
2271        }
2272        var correctedTarget = unwrapHost(target);
2273        if (correctedTarget && parent.contains(correctedTarget)) {
2274          return correctedTarget;
2275        }
2276        console.error("aria-hidden", target, "in not contained inside", parent, ". Doing nothing");
2277        return null;
2278      }).filter(function(x) {
2279        return Boolean(x);
2280      });
2281    };
2282    var applyAttributeToOthers = function(originalTarget, parentNode, markerName, controlAttribute) {
2283      var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
2284      if (!markerMap[markerName]) {
2285        markerMap[markerName] = /* @__PURE__ */ new WeakMap();
2286      }
2287      var markerCounter = markerMap[markerName];
2288      var hiddenNodes = [];
2289      var elementsToKeep = /* @__PURE__ */ new Set();
2290      var elementsToStop = new Set(targets);
2291      var keep = function(el) {
2292        if (!el || elementsToKeep.has(el)) {
2293          return;
2294        }
2295        elementsToKeep.add(el);
2296        keep(el.parentNode);
2297      };
2298      targets.forEach(keep);
2299      var deep = function(parent) {
2300        if (!parent || elementsToStop.has(parent)) {
2301          return;
2302        }
2303        Array.prototype.forEach.call(parent.children, function(node) {
2304          if (elementsToKeep.has(node)) {
2305            deep(node);
2306          } else {
2307            try {
2308              var attr = node.getAttribute(controlAttribute);
2309              var alreadyHidden = attr !== null && attr !== "false";
2310              var counterValue = (counterMap.get(node) || 0) + 1;
2311              var markerValue = (markerCounter.get(node) || 0) + 1;
2312              counterMap.set(node, counterValue);
2313              markerCounter.set(node, markerValue);
2314              hiddenNodes.push(node);
2315              if (counterValue === 1 && alreadyHidden) {
2316                uncontrolledNodes.set(node, true);
2317              }
2318              if (markerValue === 1) {
2319                node.setAttribute(markerName, "true");
2320              }
2321              if (!alreadyHidden) {
2322                node.setAttribute(controlAttribute, "true");
2323              }
2324            } catch (e) {
2325              console.error("aria-hidden: cannot operate on ", node, e);
2326            }
2327          }
2328        });
2329      };
2330      deep(parentNode);
2331      elementsToKeep.clear();
2332      lockCount++;
2333      return function() {
2334        hiddenNodes.forEach(function(node) {
2335          var counterValue = counterMap.get(node) - 1;
2336          var markerValue = markerCounter.get(node) - 1;
2337          counterMap.set(node, counterValue);
2338          markerCounter.set(node, markerValue);
2339          if (!counterValue) {
2340            if (!uncontrolledNodes.has(node)) {
2341              node.removeAttribute(controlAttribute);
2342            }
2343            uncontrolledNodes.delete(node);
2344          }
2345          if (!markerValue) {
2346            node.removeAttribute(markerName);
2347          }
2348        });
2349        lockCount--;
2350        if (!lockCount) {
2351          counterMap = /* @__PURE__ */ new WeakMap();
2352          counterMap = /* @__PURE__ */ new WeakMap();
2353          uncontrolledNodes = /* @__PURE__ */ new WeakMap();
2354          markerMap = {};
2355        }
2356      };
2357    };
2358    var hideOthers = function(originalTarget, parentNode, markerName) {
2359      if (markerName === void 0) {
2360        markerName = "data-aria-hidden";
2361      }
2362      var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
2363      var activeParentNode = parentNode || getDefaultParent(originalTarget);
2364      if (!activeParentNode) {
2365        return function() {
2366          return null;
2367        };
2368      }
2369      targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll("[aria-live], script")));
2370      return applyAttributeToOthers(targets, activeParentNode, markerName, "aria-hidden");
2371    };
2372  
2373    // node_modules/.store/@radix-ui/react-dialog@1.1.23-ytDSaPyJAw3b9aD4KkIiOA/node_modules/@radix-ui/react-dialog/dist/index.mjs
2374    var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
2375    var __defProp16 = Object.defineProperty;
2376    var __name15 = (target, value) => __defProp16(target, "name", { value, configurable: true });
2377    var DIALOG_NAME = "Dialog";
2378    var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
2379    var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
2380    var Dialog = /* @__PURE__ */ __name15((props) => {
2381      const {
2382        __scopeDialog,
2383        children,
2384        open: openProp,
2385        defaultOpen,
2386        onOpenChange,
2387        modal = true
2388      } = props;
2389      const triggerRef = React24.useRef(null);
2390      const contentRef = React24.useRef(null);
2391      const [open2, setOpen] = useControllableState({
2392        prop: openProp,
2393        defaultProp: defaultOpen ?? false,
2394        onChange: onOpenChange,
2395        caller: DIALOG_NAME
2396      });
2397      const [titleCount, setTitleCount] = React24.useState(0);
2398      const [descriptionCount, setDescriptionCount] = React24.useState(0);
2399      return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2400        DialogProvider,
2401        {
2402          scope: __scopeDialog,
2403          triggerRef,
2404          contentRef,
2405          contentId: useId(),
2406          titleId: useId(),
2407          descriptionId: useId(),
2408          titlePresent: titleCount > 0,
2409          descriptionPresent: descriptionCount > 0,
2410          setTitleCount,
2411          setDescriptionCount,
2412          open: open2,
2413          onOpenChange: setOpen,
2414          onOpenToggle: React24.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
2415          modal,
2416          children
2417        }
2418      );
2419    }, "Dialog");
2420    var PORTAL_NAME = "DialogPortal";
2421    var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {
2422      forceMount: void 0
2423    });
2424    var DialogPortal = /* @__PURE__ */ __name15((props) => {
2425      const { __scopeDialog, forceMount, children, container } = props;
2426      const context2 = useDialogContext(PORTAL_NAME, __scopeDialog);
2427      return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React24.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Presence, { present: forceMount || context2.open, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Portal, { asChild: true, container, children: child }) })) });
2428    }, "DialogPortal");
2429    var OVERLAY_NAME = "DialogOverlay";
2430    var DialogOverlay = /* @__PURE__ */ React24.forwardRef(
2431      /* @__PURE__ */ __name15(function DialogOverlay2(props, forwardedRef) {
2432        const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
2433        const { forceMount = portalContext.forceMount, ...overlayProps } = props;
2434        const context2 = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
2435        return context2.modal ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Presence, { present: forceMount || context2.open, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
2436      }, "DialogOverlay")
2437    );
2438    var Slot = createSlot("DialogOverlay.RemoveScroll");
2439    var DialogOverlayImpl = /* @__PURE__ */ React24.forwardRef(
2440      // blank line to reduce diff noise
2441      /* @__PURE__ */ __name15(function DialogOverlayImpl2(props, forwardedRef) {
2442        const { __scopeDialog, ...overlayProps } = props;
2443        const context2 = useDialogContext(OVERLAY_NAME, __scopeDialog);
2444        const registerDismissableSurface = useDismissableLayerSurface();
2445        const composedRefs = useComposedRefs(forwardedRef, registerDismissableSurface);
2446        return (
2447          // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
2448          // ie. when `Overlay` and `Content` are siblings
2449          /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Combination_default, { as: Slot, allowPinchZoom: true, shards: [context2.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2450            Primitive.div,
2451            {
2452              "data-state": getState(context2.open),
2453              ...overlayProps,
2454              ref: composedRefs,
2455              style: { pointerEvents: "auto", ...overlayProps.style }
2456            }
2457          ) })
2458        );
2459      }, "DialogOverlayImpl")
2460    );
2461    var CONTENT_NAME = "DialogContent";
2462    var DialogContent = /* @__PURE__ */ React24.forwardRef(
2463      /* @__PURE__ */ __name15(function DialogContent2(props, forwardedRef) {
2464        const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
2465        const { forceMount = portalContext.forceMount, ...contentProps } = props;
2466        const context2 = useDialogContext(CONTENT_NAME, props.__scopeDialog);
2467        return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Presence, { present: forceMount || context2.open, children: context2.modal ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
2468      }, "DialogContent")
2469    );
2470    var DialogContentModal = /* @__PURE__ */ React24.forwardRef(
2471      // blank line to reduce diff noise
2472      /* @__PURE__ */ __name15(function DialogContentModal2(props, forwardedRef) {
2473        const context2 = useDialogContext(CONTENT_NAME, props.__scopeDialog);
2474        const contentRef = React24.useRef(null);
2475        const composedRefs = useComposedRefs(forwardedRef, context2.contentRef, contentRef);
2476        React24.useEffect(() => {
2477          const content = contentRef.current;
2478          if (content) return hideOthers(content);
2479        }, []);
2480        return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2481          DialogContentImpl,
2482          {
2483            ...props,
2484            ref: composedRefs,
2485            trapFocus: context2.open,
2486            disableOutsidePointerEvents: context2.open,
2487            onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
2488              event.preventDefault();
2489              context2.triggerRef.current?.focus();
2490            }),
2491            onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
2492              const originalEvent = event.detail.originalEvent;
2493              const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
2494              const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
2495              if (isRightClick) event.preventDefault();
2496            }),
2497            onFocusOutside: composeEventHandlers(
2498              props.onFocusOutside,
2499              (event) => event.preventDefault()
2500            )
2501          }
2502        );
2503      }, "DialogContentModal")
2504    );
2505    var DialogContentNonModal = /* @__PURE__ */ React24.forwardRef(
2506      // blank line to reduce diff noise
2507      /* @__PURE__ */ __name15(function DialogContentNonModal2(props, forwardedRef) {
2508        const context2 = useDialogContext(CONTENT_NAME, props.__scopeDialog);
2509        const hasInteractedOutsideRef = React24.useRef(false);
2510        const hasPointerDownOutsideRef = React24.useRef(false);
2511        return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2512          DialogContentImpl,
2513          {
2514            ...props,
2515            ref: forwardedRef,
2516            trapFocus: false,
2517            disableOutsidePointerEvents: false,
2518            onCloseAutoFocus: (event) => {
2519              props.onCloseAutoFocus?.(event);
2520              if (!event.defaultPrevented) {
2521                if (!hasInteractedOutsideRef.current) context2.triggerRef.current?.focus();
2522                event.preventDefault();
2523              }
2524              hasInteractedOutsideRef.current = false;
2525              hasPointerDownOutsideRef.current = false;
2526            },
2527            onInteractOutside: (event) => {
2528              props.onInteractOutside?.(event);
2529              if (!event.defaultPrevented) {
2530                hasInteractedOutsideRef.current = true;
2531                if (event.detail.originalEvent.type === "pointerdown") {
2532                  hasPointerDownOutsideRef.current = true;
2533                }
2534              }
2535              const target = event.target;
2536              const targetIsTrigger = context2.triggerRef.current?.contains(target);
2537              if (targetIsTrigger) event.preventDefault();
2538              if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
2539                event.preventDefault();
2540              }
2541            }
2542          }
2543        );
2544      }, "DialogContentNonModal")
2545    );
2546    var DialogContentImpl = /* @__PURE__ */ React24.forwardRef(
2547      // blank line to reduce diff noise
2548      /* @__PURE__ */ __name15(function DialogContentImpl2(props, forwardedRef) {
2549        const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;
2550        const context2 = useDialogContext(CONTENT_NAME, __scopeDialog);
2551        useFocusGuards();
2552        return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2553          FocusScope,
2554          {
2555            asChild: true,
2556            loop: true,
2557            trapped: trapFocus,
2558            onMountAutoFocus: onOpenAutoFocus,
2559            onUnmountAutoFocus: onCloseAutoFocus,
2560            children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2561              DismissableLayer,
2562              {
2563                role: "dialog",
2564                id: context2.contentId,
2565                "aria-describedby": context2.descriptionPresent ? context2.descriptionId : void 0,
2566                "aria-labelledby": context2.titlePresent ? context2.titleId : void 0,
2567                "data-state": getState(context2.open),
2568                ...contentProps,
2569                ref: forwardedRef,
2570                deferPointerDownOutside: true,
2571                onDismiss: () => context2.onOpenChange(false)
2572              }
2573            )
2574          }
2575        ) });
2576      }, "DialogContentImpl")
2577    );
2578    function getState(open2) {
2579      return open2 ? "open" : "closed";
2580    }
2581    __name15(getState, "getState");
2582  
2583    // node_modules/.store/cmdk@1.1.1-2SvSjHrFhiqsPDore7Lelw/node_modules/cmdk/dist/index.mjs
2584    var t = __toESM(require_react(), 1);
2585    var N = '[cmdk-group=""]';
2586    var Y2 = '[cmdk-group-items=""]';
2587    var be = '[cmdk-group-heading=""]';
2588    var le = '[cmdk-item=""]';
2589    var ce = `$le}:not([aria-disabled="true"])`;
2590    var Z = "cmdk-item-select";
2591    var T = "data-value";
2592    var Re = (r2, o, n) => W(r2, o, n);
2593    var ue = t.createContext(void 0);
2594    var K2 = () => t.useContext(ue);
2595    var de = t.createContext(void 0);
2596    var ee = () => t.useContext(de);
2597    var fe = t.createContext(void 0);
2598    var me = t.forwardRef((r2, o) => {
2599      let n = L(() => {
2600        var e, a;
2601        return { search: "", value: (a = (e = r2.value) != null ? e : r2.defaultValue) != null ? a : "", selectedItemId: void 0, filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } };
2602      }), u2 = L(() => /* @__PURE__ */ new Set()), c = L(() => /* @__PURE__ */ new Map()), d = L(() => /* @__PURE__ */ new Map()), f = L(() => /* @__PURE__ */ new Set()), p2 = pe(r2), { label: b, children: m2, value: R, onValueChange: x, filter: C, shouldFilter: S, loop: A, disablePointerSelection: ge = false, vimBindings: j = true, ...O } = r2, $2 = useId(), q = useId(), _ = useId(), I = t.useRef(null), v = ke();
2603      k2(() => {
2604        if (R !== void 0) {
2605          let e = R.trim();
2606          n.current.value = e, E.emit();
2607        }
2608      }, [R]), k2(() => {
2609        v(6, ne);
2610      }, []);
2611      let E = t.useMemo(() => ({ subscribe: (e) => (f.current.add(e), () => f.current.delete(e)), snapshot: () => n.current, setState: (e, a, s) => {
2612        var i, l, g, y;
2613        if (!Object.is(n.current[e], a)) {
2614          if (n.current[e] = a, e === "search") J2(), z(), v(1, W2);
2615          else if (e === "value") {
2616            if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) {
2617              let h = document.getElementById(_);
2618              h ? h.focus() : (i = document.getElementById($2)) == null || i.focus();
2619            }
2620            if (v(7, () => {
2621              var h;
2622              n.current.selectedItemId = (h = M()) == null ? void 0 : h.id, E.emit();
2623            }), s || v(5, ne), ((l = p2.current) == null ? void 0 : l.value) !== void 0) {
2624              let h = a != null ? a : "";
2625              (y = (g = p2.current).onValueChange) == null || y.call(g, h);
2626              return;
2627            }
2628          }
2629          E.emit();
2630        }
2631      }, emit: () => {
2632        f.current.forEach((e) => e());
2633      } }), []), U2 = t.useMemo(() => ({ value: (e, a, s) => {
2634        var i;
2635        a !== ((i = d.current.get(e)) == null ? void 0 : i.value) && (d.current.set(e, { value: a, keywords: s }), n.current.filtered.items.set(e, te(a, s)), v(2, () => {
2636          z(), E.emit();
2637        }));
2638      }, item: (e, a) => (u2.current.add(e), a && (c.current.has(a) ? c.current.get(a).add(e) : c.current.set(a, /* @__PURE__ */ new Set([e]))), v(3, () => {
2639        J2(), z(), n.current.value || W2(), E.emit();
2640      }), () => {
2641        d.current.delete(e), u2.current.delete(e), n.current.filtered.items.delete(e);
2642        let s = M();
2643        v(4, () => {
2644          J2(), (s == null ? void 0 : s.getAttribute("id")) === e && W2(), E.emit();
2645        });
2646      }), group: (e) => (c.current.has(e) || c.current.set(e, /* @__PURE__ */ new Set()), () => {
2647        d.current.delete(e), c.current.delete(e);
2648      }), filter: () => p2.current.shouldFilter, label: b || r2["aria-label"], getDisablePointerSelection: () => p2.current.disablePointerSelection, listId: $2, inputId: _, labelId: q, listInnerRef: I }), []);
2649      function te(e, a) {
2650        var i, l;
2651        let s = (l = (i = p2.current) == null ? void 0 : i.filter) != null ? l : Re;
2652        return e ? s(e, n.current.search, a) : 0;
2653      }
2654      function z() {
2655        if (!n.current.search || p2.current.shouldFilter === false) return;
2656        let e = n.current.filtered.items, a = [];
2657        n.current.filtered.groups.forEach((i) => {
2658          let l = c.current.get(i), g = 0;
2659          l.forEach((y) => {
2660            let h = e.get(y);
2661            g = Math.max(h, g);
2662          }), a.push([i, g]);
2663        });
2664        let s = I.current;
2665        V().sort((i, l) => {
2666          var h, F;
2667          let g = i.getAttribute("id"), y = l.getAttribute("id");
2668          return ((h = e.get(y)) != null ? h : 0) - ((F = e.get(g)) != null ? F : 0);
2669        }).forEach((i) => {
2670          let l = i.closest(Y2);
2671          l ? l.appendChild(i.parentElement === l ? i : i.closest(`$Y2} > *`)) : s.appendChild(i.parentElement === s ? i : i.closest(`$Y2} > *`));
2672        }), a.sort((i, l) => l[1] - i[1]).forEach((i) => {
2673          var g;
2674          let l = (g = I.current) == null ? void 0 : g.querySelector(`$N}[$T}="$encodeURIComponent(i[0])}"]`);
2675          l == null || l.parentElement.appendChild(l);
2676        });
2677      }
2678      function W2() {
2679        let e = V().find((s) => s.getAttribute("aria-disabled") !== "true"), a = e == null ? void 0 : e.getAttribute(T);
2680        E.setState("value", a || void 0);
2681      }
2682      function J2() {
2683        var a, s, i, l;
2684        if (!n.current.search || p2.current.shouldFilter === false) {
2685          n.current.filtered.count = u2.current.size;
2686          return;
2687        }
2688        n.current.filtered.groups = /* @__PURE__ */ new Set();
2689        let e = 0;
2690        for (let g of u2.current) {
2691          let y = (s = (a = d.current.get(g)) == null ? void 0 : a.value) != null ? s : "", h = (l = (i = d.current.get(g)) == null ? void 0 : i.keywords) != null ? l : [], F = te(y, h);
2692          n.current.filtered.items.set(g, F), F > 0 && e++;
2693        }
2694        for (let [g, y] of c.current) for (let h of y) if (n.current.filtered.items.get(h) > 0) {
2695          n.current.filtered.groups.add(g);
2696          break;
2697        }
2698        n.current.filtered.count = e;
2699      }
2700      function ne() {
2701        var a, s, i;
2702        let e = M();
2703        e && (((a = e.parentElement) == null ? void 0 : a.firstChild) === e && ((i = (s = e.closest(N)) == null ? void 0 : s.querySelector(be)) == null || i.scrollIntoView({ block: "nearest" })), e.scrollIntoView({ block: "nearest" }));
2704      }
2705      function M() {
2706        var e;
2707        return (e = I.current) == null ? void 0 : e.querySelector(`$le}[aria-selected="true"]`);
2708      }
2709      function V() {
2710        var e;
2711        return Array.from(((e = I.current) == null ? void 0 : e.querySelectorAll(ce)) || []);
2712      }
2713      function X2(e) {
2714        let s = V()[e];
2715        s && E.setState("value", s.getAttribute(T));
2716      }
2717      function Q(e) {
2718        var g;
2719        let a = M(), s = V(), i = s.findIndex((y) => y === a), l = s[i + e];
2720        (g = p2.current) != null && g.loop && (l = i + e < 0 ? s[s.length - 1] : i + e === s.length ? s[0] : s[i + e]), l && E.setState("value", l.getAttribute(T));
2721      }
2722      function re(e) {
2723        let a = M(), s = a == null ? void 0 : a.closest(N), i;
2724        for (; s && !i; ) s = e > 0 ? we(s, N) : De(s, N), i = s == null ? void 0 : s.querySelector(ce);
2725        i ? E.setState("value", i.getAttribute(T)) : Q(e);
2726      }
2727      let oe = () => X2(V().length - 1), ie = (e) => {
2728        e.preventDefault(), e.metaKey ? oe() : e.altKey ? re(1) : Q(1);
2729      }, se = (e) => {
2730        e.preventDefault(), e.metaKey ? X2(0) : e.altKey ? re(-1) : Q(-1);
2731      };
2732      return t.createElement(Primitive.div, { ref: o, tabIndex: -1, ...O, "cmdk-root": "", onKeyDown: (e) => {
2733        var s;
2734        (s = O.onKeyDown) == null || s.call(O, e);
2735        let a = e.nativeEvent.isComposing || e.keyCode === 229;
2736        if (!(e.defaultPrevented || a)) switch (e.key) {
2737          case "n":
2738          case "j": {
2739            j && e.ctrlKey && ie(e);
2740            break;
2741          }
2742          case "ArrowDown": {
2743            ie(e);
2744            break;
2745          }
2746          case "p":
2747          case "k": {
2748            j && e.ctrlKey && se(e);
2749            break;
2750          }
2751          case "ArrowUp": {
2752            se(e);
2753            break;
2754          }
2755          case "Home": {
2756            e.preventDefault(), X2(0);
2757            break;
2758          }
2759          case "End": {
2760            e.preventDefault(), oe();
2761            break;
2762          }
2763          case "Enter": {
2764            e.preventDefault();
2765            let i = M();
2766            if (i) {
2767              let l = new Event(Z);
2768              i.dispatchEvent(l);
2769            }
2770          }
2771        }
2772      } }, t.createElement("label", { "cmdk-label": "", htmlFor: U2.inputId, id: U2.labelId, style: Te }, b), B2(r2, (e) => t.createElement(de.Provider, { value: E }, t.createElement(ue.Provider, { value: U2 }, e))));
2773    });
2774    var he = t.forwardRef((r2, o) => {
2775      var _, I;
2776      let n = useId(), u2 = t.useRef(null), c = t.useContext(fe), d = K2(), f = pe(r2), p2 = (I = (_ = f.current) == null ? void 0 : _.forceMount) != null ? I : c == null ? void 0 : c.forceMount;
2777      k2(() => {
2778        if (!p2) return d.item(n, c == null ? void 0 : c.id);
2779      }, [p2]);
2780      let b = ve(n, u2, [r2.value, r2.children, u2], r2.keywords), m2 = ee(), R = P((v) => v.value && v.value === b.current), x = P((v) => p2 || d.filter() === false ? true : v.search ? v.filtered.items.get(n) > 0 : true);
2781      t.useEffect(() => {
2782        let v = u2.current;
2783        if (!(!v || r2.disabled)) return v.addEventListener(Z, C), () => v.removeEventListener(Z, C);
2784      }, [x, r2.onSelect, r2.disabled]);
2785      function C() {
2786        var v, E;
2787        S(), (E = (v = f.current).onSelect) == null || E.call(v, b.current);
2788      }
2789      function S() {
2790        m2.setState("value", b.current, true);
2791      }
2792      if (!x) return null;
2793      let { disabled: A, value: ge, onSelect: j, forceMount: O, keywords: $2, ...q } = r2;
2794      return t.createElement(Primitive.div, { ref: composeRefs(u2, o), ...q, id: n, "cmdk-item": "", role: "option", "aria-disabled": !!A, "aria-selected": !!R, "data-disabled": !!A, "data-selected": !!R, onPointerMove: A || d.getDisablePointerSelection() ? void 0 : S, onClick: A ? void 0 : C }, r2.children);
2795    });
2796    var Ee = t.forwardRef((r2, o) => {
2797      let { heading: n, children: u2, forceMount: c, ...d } = r2, f = useId(), p2 = t.useRef(null), b = t.useRef(null), m2 = useId(), R = K2(), x = P((S) => c || R.filter() === false ? true : S.search ? S.filtered.groups.has(f) : true);
2798      k2(() => R.group(f), []), ve(f, p2, [r2.value, r2.heading, b]);
2799      let C = t.useMemo(() => ({ id: f, forceMount: c }), [c]);
2800      return t.createElement(Primitive.div, { ref: composeRefs(p2, o), ...d, "cmdk-group": "", role: "presentation", hidden: x ? void 0 : true }, n && t.createElement("div", { ref: b, "cmdk-group-heading": "", "aria-hidden": true, id: m2 }, n), B2(r2, (S) => t.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": n ? m2 : void 0 }, t.createElement(fe.Provider, { value: C }, S))));
2801    });
2802    var ye = t.forwardRef((r2, o) => {
2803      let { alwaysRender: n, ...u2 } = r2, c = t.useRef(null), d = P((f) => !f.search);
2804      return !n && !d ? null : t.createElement(Primitive.div, { ref: composeRefs(c, o), ...u2, "cmdk-separator": "", role: "separator" });
2805    });
2806    var Se = t.forwardRef((r2, o) => {
2807      let { onValueChange: n, ...u2 } = r2, c = r2.value != null, d = ee(), f = P((m2) => m2.search), p2 = P((m2) => m2.selectedItemId), b = K2();
2808      return t.useEffect(() => {
2809        r2.value != null && d.setState("search", r2.value);
2810      }, [r2.value]), t.createElement(Primitive.input, { ref: o, ...u2, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: false, "aria-autocomplete": "list", role: "combobox", "aria-expanded": true, "aria-controls": b.listId, "aria-labelledby": b.labelId, "aria-activedescendant": p2, id: b.inputId, type: "text", value: c ? r2.value : f, onChange: (m2) => {
2811        c || d.setState("search", m2.target.value), n == null || n(m2.target.value);
2812      } });
2813    });
2814    var Ce = t.forwardRef((r2, o) => {
2815      let { children: n, label: u2 = "Suggestions", ...c } = r2, d = t.useRef(null), f = t.useRef(null), p2 = P((m2) => m2.selectedItemId), b = K2();
2816      return t.useEffect(() => {
2817        if (f.current && d.current) {
2818          let m2 = f.current, R = d.current, x, C = new ResizeObserver(() => {
2819            x = requestAnimationFrame(() => {
2820              let S = m2.offsetHeight;
2821              R.style.setProperty("--cmdk-list-height", S.toFixed(1) + "px");
2822            });
2823          });
2824          return C.observe(m2), () => {
2825            cancelAnimationFrame(x), C.unobserve(m2);
2826          };
2827        }
2828      }, []), t.createElement(Primitive.div, { ref: composeRefs(d, o), ...c, "cmdk-list": "", role: "listbox", tabIndex: -1, "aria-activedescendant": p2, "aria-label": u2, id: b.listId }, B2(r2, (m2) => t.createElement("div", { ref: composeRefs(f, b.listInnerRef), "cmdk-list-sizer": "" }, m2)));
2829    });
2830    var xe = t.forwardRef((r2, o) => {
2831      let { open: n, onOpenChange: u2, overlayClassName: c, contentClassName: d, container: f, ...p2 } = r2;
2832      return t.createElement(Dialog, { open: n, onOpenChange: u2 }, t.createElement(DialogPortal, { container: f }, t.createElement(DialogOverlay, { "cmdk-overlay": "", className: c }), t.createElement(DialogContent, { "aria-label": r2.label, "cmdk-dialog": "", className: d }, t.createElement(me, { ref: o, ...p2 }))));
2833    });
2834    var Ie = t.forwardRef((r2, o) => P((u2) => u2.filtered.count === 0) ? t.createElement(Primitive.div, { ref: o, ...r2, "cmdk-empty": "", role: "presentation" }) : null);
2835    var Pe = t.forwardRef((r2, o) => {
2836      let { progress: n, children: u2, label: c = "Loading...", ...d } = r2;
2837      return t.createElement(Primitive.div, { ref: o, ...d, "cmdk-loading": "", role: "progressbar", "aria-valuenow": n, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": c }, B2(r2, (f) => t.createElement("div", { "aria-hidden": true }, f)));
2838    });
2839    var _e = Object.assign(me, { List: Ce, Item: he, Input: Se, Group: Ee, Separator: ye, Dialog: xe, Empty: Ie, Loading: Pe });
2840    function we(r2, o) {
2841      let n = r2.nextElementSibling;
2842      for (; n; ) {
2843        if (n.matches(o)) return n;
2844        n = n.nextElementSibling;
2845      }
2846    }
2847    function De(r2, o) {
2848      let n = r2.previousElementSibling;
2849      for (; n; ) {
2850        if (n.matches(o)) return n;
2851        n = n.previousElementSibling;
2852      }
2853    }
2854    function pe(r2) {
2855      let o = t.useRef(r2);
2856      return k2(() => {
2857        o.current = r2;
2858      }), o;
2859    }
2860    var k2 = typeof window == "undefined" ? t.useEffect : t.useLayoutEffect;
2861    function L(r2) {
2862      let o = t.useRef();
2863      return o.current === void 0 && (o.current = r2()), o;
2864    }
2865    function P(r2) {
2866      let o = ee(), n = () => r2(o.snapshot());
2867      return t.useSyncExternalStore(o.subscribe, n, n);
2868    }
2869    function ve(r2, o, n, u2 = []) {
2870      let c = t.useRef(), d = K2();
2871      return k2(() => {
2872        var b;
2873        let f = (() => {
2874          var m2;
2875          for (let R of n) {
2876            if (typeof R == "string") return R.trim();
2877            if (typeof R == "object" && "current" in R) return R.current ? (m2 = R.current.textContent) == null ? void 0 : m2.trim() : c.current;
2878          }
2879        })(), p2 = u2.map((m2) => m2.trim());
2880        d.value(r2, f, p2), (b = o.current) == null || b.setAttribute(T, f), c.current = f;
2881      }), c;
2882    }
2883    var ke = () => {
2884      let [r2, o] = t.useState(), n = L(() => /* @__PURE__ */ new Map());
2885      return k2(() => {
2886        n.current.forEach((u2) => u2()), n.current = /* @__PURE__ */ new Map();
2887      }, [r2]), (u2, c) => {
2888        n.current.set(u2, c), o({});
2889      };
2890    };
2891    function Me(r2) {
2892      let o = r2.type;
2893      return typeof o == "function" ? o(r2.props) : "render" in o ? o.render(r2.props) : r2;
2894    }
2895    function B2({ asChild: r2, children: o }, n) {
2896      return r2 && t.isValidElement(o) ? t.cloneElement(Me(o), { ref: o.ref }, n(o.props.children)) : n(o);
2897    }
2898    var Te = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" };
2899  
2900    // node_modules/.store/clsx@2.1.1-XOLP1vUL9vEGfpiXm37fAw/node_modules/clsx/dist/clsx.mjs
2901    function r(e) {
2902      var t2, f, n = "";
2903      if ("string" == typeof e || "number" == typeof e) n += e;
2904      else if ("object" == typeof e) if (Array.isArray(e)) {
2905        var o = e.length;
2906        for (t2 = 0; t2 < o; t2++) e[t2] && (f = r(e[t2])) && (n && (n += " "), n += f);
2907      } else for (f in e) e[f] && (n && (n += " "), n += f);
2908      return n;
2909    }
2910    function clsx() {
2911      for (var e, t2, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t2 = r(e)) && (n && (n += " "), n += t2);
2912      return n;
2913    }
2914    var clsx_default = clsx;
2915  
2916    // packages/commands/build-module/components/command-menu.mjs
2917    var import_data5 = __toESM(require_data(), 1);
2918    var import_element3 = __toESM(require_element(), 1);
2919    var import_i18n = __toESM(require_i18n(), 1);
2920    var import_components = __toESM(require_components(), 1);
2921    var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
2922    var import_keycodes = __toESM(require_keycodes(), 1);
2923  
2924    // packages/icons/build-module/icon/index.mjs
2925    var import_element = __toESM(require_element(), 1);
2926    var icon_default = (0, import_element.forwardRef)(
2927      ({ icon, size = 24, style, ...props }, ref) => {
2928        const intrinsicStyle = icon.props.style;
2929        const mergedStyle = intrinsicStyle || style ? { ...intrinsicStyle, ...style } : void 0;
2930        return (0, import_element.cloneElement)(icon, {
2931          width: size,
2932          height: size,
2933          ...props,
2934          // Merge styles so the icon's intrinsic style (e.g. `fill: none` on
2935          // stroke-based icons) is preserved unless the consumer overrides
2936          // the same property explicitly.
2937          ...mergedStyle ? { style: mergedStyle } : {},
2938          ref
2939        });
2940      }
2941    );
2942  
2943    // packages/icons/build-module/library/arrow-right.mjs
2944    var import_primitives = __toESM(require_primitives(), 1);
2945    var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
2946    var arrow_right_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives.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_runtime7.jsx)(import_primitives.Path, { d: "M4 12L19 12M14 17L19 12L14 7" }) });
2947  
2948    // packages/icons/build-module/library/search.mjs
2949    var import_primitives2 = __toESM(require_primitives(), 1);
2950    var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
2951    var search_default = /* @__PURE__ */ (0, import_jsx_runtime8.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_runtime8.jsx)(import_primitives2.Path, { d: "M5 19L9.28769 14.7123M18.25 11C18.25 13.8995 15.8995 16.25 13 16.25C10.1005 16.25 7.75 13.8995 7.75 11C7.75 8.10051 10.1005 5.75 13 5.75C15.8995 5.75 18.25 8.10051 18.25 11Z" }) });
2952  
2953    // packages/commands/build-module/store/index.mjs
2954    var import_data3 = __toESM(require_data(), 1);
2955  
2956    // packages/commands/build-module/store/reducer.mjs
2957    var import_data = __toESM(require_data(), 1);
2958    function commands(state = {}, action) {
2959      switch (action.type) {
2960        case "REGISTER_COMMAND":
2961          return {
2962            ...state,
2963            [action.name]: {
2964              name: action.name,
2965              label: action.label,
2966              searchLabel: action.searchLabel,
2967              context: action.context,
2968              category: action.category,
2969              callback: action.callback,
2970              icon: action.icon,
2971              keywords: action.keywords
2972            }
2973          };
2974        case "UNREGISTER_COMMAND": {
2975          const { [action.name]: _, ...remainingState } = state;
2976          return remainingState;
2977        }
2978      }
2979      return state;
2980    }
2981    function commandLoaders(state = {}, action) {
2982      switch (action.type) {
2983        case "REGISTER_COMMAND_LOADER":
2984          return {
2985            ...state,
2986            [action.name]: {
2987              name: action.name,
2988              context: action.context,
2989              category: action.category,
2990              hook: action.hook
2991            }
2992          };
2993        case "UNREGISTER_COMMAND_LOADER": {
2994          const { [action.name]: _, ...remainingState } = state;
2995          return remainingState;
2996        }
2997      }
2998      return state;
2999    }
3000    function isOpen(state = false, action) {
3001      switch (action.type) {
3002        case "OPEN":
3003          return true;
3004        case "CLOSE":
3005          return false;
3006      }
3007      return state;
3008    }
3009    function context(state = "root", action) {
3010      switch (action.type) {
3011        case "SET_CONTEXT":
3012          return action.context;
3013      }
3014      return state;
3015    }
3016    function loaderStates(state = {}, action) {
3017      switch (action.type) {
3018        case "SET_LOADER_LOADING": {
3019          if (action.isLoading) {
3020            return { ...state, [action.name]: true };
3021          }
3022          if (!(action.name in state)) {
3023            return state;
3024          }
3025          const { [action.name]: _, ...remainingState } = state;
3026          return remainingState;
3027        }
3028      }
3029      return state;
3030    }
3031    var reducer = (0, import_data.combineReducers)({
3032      commands,
3033      commandLoaders,
3034      isOpen,
3035      context,
3036      loaderStates
3037    });
3038    var reducer_default = reducer;
3039  
3040    // packages/commands/build-module/store/actions.mjs
3041    var actions_exports = {};
3042    __export(actions_exports, {
3043      close: () => close,
3044      open: () => open,
3045      registerCommand: () => registerCommand,
3046      registerCommandLoader: () => registerCommandLoader,
3047      unregisterCommand: () => unregisterCommand,
3048      unregisterCommandLoader: () => unregisterCommandLoader
3049    });
3050    var REGISTERABLE_CATEGORIES = /* @__PURE__ */ new Set([
3051      "command",
3052      "view",
3053      "edit",
3054      "action"
3055    ]);
3056    function registerCommand(config) {
3057      let { category } = config;
3058      if (!category || !REGISTERABLE_CATEGORIES.has(category)) {
3059        category = "action";
3060      }
3061      return {
3062        type: "REGISTER_COMMAND",
3063        ...config,
3064        category
3065      };
3066    }
3067    function unregisterCommand(name) {
3068      return {
3069        type: "UNREGISTER_COMMAND",
3070        name
3071      };
3072    }
3073    function registerCommandLoader(config) {
3074      let { category } = config;
3075      if (!category || !REGISTERABLE_CATEGORIES.has(category)) {
3076        category = "action";
3077      }
3078      return {
3079        type: "REGISTER_COMMAND_LOADER",
3080        ...config,
3081        category
3082      };
3083    }
3084    function unregisterCommandLoader(name) {
3085      return {
3086        type: "UNREGISTER_COMMAND_LOADER",
3087        name
3088      };
3089    }
3090    function open() {
3091      return {
3092        type: "OPEN"
3093      };
3094    }
3095    function close() {
3096      return {
3097        type: "CLOSE"
3098      };
3099    }
3100  
3101    // packages/commands/build-module/store/selectors.mjs
3102    var selectors_exports = {};
3103    __export(selectors_exports, {
3104      getCommandLoaders: () => getCommandLoaders,
3105      getCommands: () => getCommands,
3106      getContext: () => getContext,
3107      isOpen: () => isOpen2
3108    });
3109    var import_data2 = __toESM(require_data(), 1);
3110    var getCommands = (0, import_data2.createSelector)(
3111      (state, contextual = false) => Object.values(state.commands).filter((command) => {
3112        const isContextual = command.context && command.context === state.context;
3113        return contextual ? isContextual : !isContextual;
3114      }),
3115      (state) => [state.commands, state.context]
3116    );
3117    var getCommandLoaders = (0, import_data2.createSelector)(
3118      (state, contextual = false) => Object.values(state.commandLoaders).filter((loader) => {
3119        const isContextual = loader.context && loader.context === state.context;
3120        return contextual ? isContextual : !isContextual;
3121      }),
3122      (state) => [state.commandLoaders, state.context]
3123    );
3124    function isOpen2(state) {
3125      return state.isOpen;
3126    }
3127    function getContext(state) {
3128      return state.context;
3129    }
3130  
3131    // packages/commands/build-module/store/private-actions.mjs
3132    var private_actions_exports = {};
3133    __export(private_actions_exports, {
3134      setContext: () => setContext,
3135      setLoaderLoading: () => setLoaderLoading
3136    });
3137    function setContext(context2) {
3138      return {
3139        type: "SET_CONTEXT",
3140        context: context2
3141      };
3142    }
3143    function setLoaderLoading(name, isLoading2) {
3144      return {
3145        type: "SET_LOADER_LOADING",
3146        name,
3147        isLoading: isLoading2
3148      };
3149    }
3150  
3151    // packages/commands/build-module/store/private-selectors.mjs
3152    var private_selectors_exports = {};
3153    __export(private_selectors_exports, {
3154      isLoading: () => isLoading
3155    });
3156    function isLoading(state) {
3157      return Object.entries(state.loaderStates).some(
3158        ([name, loading]) => loading && !!state.commandLoaders[name]
3159      );
3160    }
3161  
3162    // packages/commands/build-module/lock-unlock.mjs
3163    var import_private_apis = __toESM(require_private_apis(), 1);
3164    var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
3165      "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
3166      "@wordpress/commands"
3167    );
3168  
3169    // packages/commands/build-module/store/index.mjs
3170    var STORE_NAME = "core/commands";
3171    var store = (0, import_data3.createReduxStore)(STORE_NAME, {
3172      reducer: reducer_default,
3173      actions: actions_exports,
3174      selectors: selectors_exports
3175    });
3176    (0, import_data3.register)(store);
3177    unlock(store).registerPrivateActions(private_actions_exports);
3178    unlock(store).registerPrivateSelectors(private_selectors_exports);
3179  
3180    // packages/commands/build-module/components/use-recent-commands.mjs
3181    var import_data4 = __toESM(require_data(), 1);
3182    var import_preferences = __toESM(require_preferences(), 1);
3183    var import_element2 = __toESM(require_element(), 1);
3184    var MAX_RECENTLY_SAVED = 30;
3185    var MAX_RECENTLY_DISPLAYED = 5;
3186    var EMPTY_ARRAY = [];
3187    var EMPTY_COMMANDS = [];
3188    var EMPTY_SET = /* @__PURE__ */ new Set();
3189    function recordUsage(name) {
3190      const current = (0, import_data4.select)(import_preferences.store).get(
3191        "core/commands",
3192        "recentlyUsed"
3193      ) ?? [];
3194      const next = [name, ...current.filter((n) => n !== name)].slice(
3195        0,
3196        MAX_RECENTLY_SAVED
3197      );
3198      (0, import_data4.dispatch)(import_preferences.store).set("core/commands", "recentlyUsed", next);
3199    }
3200    function useLoaderLoadingState(name, loading) {
3201      const { setLoaderLoading: setLoaderLoading2 } = unlock((0, import_data4.useDispatch)(store));
3202      (0, import_element2.useEffect)(() => {
3203        setLoaderLoading2(name, loading);
3204      }, [setLoaderLoading2, name, loading]);
3205      (0, import_element2.useEffect)(() => {
3206        return () => setLoaderLoading2(name, false);
3207      }, [setLoaderLoading2, name]);
3208    }
3209    function useLoaderCollector(hook, name, filterNames, onResolved) {
3210      const { isLoading: loading, commands: commands2 = EMPTY_COMMANDS } = hook({ search: "" }) ?? {};
3211      useLoaderLoadingState(name, loading);
3212      const filtered = (0, import_element2.useMemo)(
3213        () => filterNames ? commands2.filter((c) => filterNames.has(c.name)) : commands2,
3214        [commands2, filterNames]
3215      );
3216      (0, import_element2.useEffect)(() => {
3217        onResolved(name, filtered);
3218      }, [onResolved, name, filtered]);
3219      (0, import_element2.useEffect)(() => {
3220        return () => onResolved(name, []);
3221      }, [onResolved, name]);
3222    }
3223    function useRecentCommands() {
3224      const {
3225        contextualCommands,
3226        staticCommands,
3227        contextualLoaders,
3228        staticLoaders,
3229        recentlyUsedNames = EMPTY_ARRAY
3230      } = (0, import_data4.useSelect)((select) => {
3231        const { getCommands: getCommands2, getCommandLoaders: getCommandLoaders2 } = select(store);
3232        return {
3233          contextualCommands: getCommands2(true),
3234          staticCommands: getCommands2(false),
3235          contextualLoaders: getCommandLoaders2(true),
3236          staticLoaders: getCommandLoaders2(false),
3237          recentlyUsedNames: select(import_preferences.store).get(
3238            "core/commands",
3239            "recentlyUsed"
3240          )
3241        };
3242      }, []);
3243      const [resolvedMap, setResolvedMap] = (0, import_element2.useState)(
3244        () => /* @__PURE__ */ new Map()
3245      );
3246      const onResolved = (0, import_element2.useCallback)((loaderName, cmds) => {
3247        setResolvedMap((prev) => {
3248          const prevCmds = prev.get(loaderName);
3249          if (prevCmds && prevCmds.length === cmds.length && prevCmds.every((c, i) => c.name === cmds[i].name)) {
3250            return prev;
3251          }
3252          const next = new Map(prev);
3253          next.set(loaderName, cmds);
3254          return next;
3255        });
3256      }, []);
3257      const { recentNames, recentSet } = (0, import_element2.useMemo)(() => {
3258        const names = recentlyUsedNames.slice(0, MAX_RECENTLY_DISPLAYED);
3259        return { recentNames: names, recentSet: new Set(names) };
3260      }, [recentlyUsedNames]);
3261      const loaders = (0, import_element2.useMemo)(
3262        () => [...contextualLoaders, ...staticLoaders],
3263        [contextualLoaders, staticLoaders]
3264      );
3265      const commands2 = (0, import_element2.useMemo)(() => {
3266        const allByName = /* @__PURE__ */ new Map();
3267        [...contextualCommands, ...staticCommands].forEach(
3268          (c) => allByName.set(c.name, c)
3269        );
3270        for (const cmds of resolvedMap.values()) {
3271          cmds.forEach((c) => {
3272            if (!allByName.has(c.name)) {
3273              allByName.set(c.name, c);
3274            }
3275          });
3276        }
3277        return recentNames.map((n) => allByName.get(n)).filter((c) => !!c);
3278      }, [contextualCommands, staticCommands, resolvedMap, recentNames]);
3279      if (!recentlyUsedNames.length) {
3280        return {
3281          commands: EMPTY_COMMANDS,
3282          loaders: [],
3283          recentSet: EMPTY_SET,
3284          onResolved
3285        };
3286      }
3287      return { commands: commands2, loaders, recentSet, onResolved };
3288    }
3289  
3290    // packages/commands/build-module/components/command-menu.mjs
3291    var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
3292    var ITEM_ID_PREFIX = "command-palette-item-";
3293    var inputLabel = (0, import_i18n.__)("Search commands and settings");
3294    var CATEGORY_FALLBACK_ICONS = {
3295      view: arrow_right_default
3296    };
3297    var CATEGORY_LABELS = {
3298      command: (0, import_i18n.__)("Command"),
3299      view: (0, import_i18n.__)("View"),
3300      edit: (0, import_i18n.__)("Edit"),
3301      action: (0, import_i18n.__)("Action"),
3302      workflow: (0, import_i18n.__)("Workflow")
3303    };
3304    function isValidIcon(icon) {
3305      return typeof icon === "string" && icon !== "" || typeof icon === "function" || (0, import_element3.isValidElement)(icon);
3306    }
3307    function CommandItem({
3308      command,
3309      search,
3310      category,
3311      valuePrefix
3312    }) {
3313      const { close: close2 } = (0, import_data5.useDispatch)(store);
3314      const commandCategory = category ?? command.category;
3315      const categoryLabel = commandCategory ? CATEGORY_LABELS[commandCategory] : void 0;
3316      const fallbackIcon = commandCategory ? CATEGORY_FALLBACK_ICONS[commandCategory] : void 0;
3317      const icon = isValidIcon(command.icon) ? command.icon : fallbackIcon;
3318      const label = command.searchLabel ?? command.label;
3319      const value = valuePrefix ? `$valuePrefix}$command.name}` : label;
3320      return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3321        _e.Item,
3322        {
3323          id: `$ITEM_ID_PREFIX}$value.toLowerCase()}`,
3324          value,
3325          keywords: valuePrefix ? [...command.keywords ?? [], label] : command.keywords,
3326          onSelect: () => {
3327            recordUsage(command.name);
3328            command.callback({ close: close2 });
3329          },
3330          children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
3331            import_components.__experimentalHStack,
3332            {
3333              alignment: "left",
3334              className: clsx_default("commands-command-menu__item", {
3335                "has-icon": !!icon
3336              }),
3337              children: [
3338                icon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components.Icon, { icon, size: 24 }),
3339                /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "commands-command-menu__item-label", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3340                  import_components.TextHighlight,
3341                  {
3342                    text: command.label,
3343                    highlight: search
3344                  }
3345                ) }),
3346                categoryLabel && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "commands-command-menu__item-category", children: categoryLabel })
3347              ]
3348            }
3349          )
3350        },
3351        command.name
3352      );
3353    }
3354    function CommandMenuLoader({
3355      name,
3356      search,
3357      hook,
3358      category,
3359      valuePrefix
3360    }) {
3361      const { isLoading: loading, commands: commands2 = [] } = hook({ search }) ?? {};
3362      useLoaderLoadingState(name, loading);
3363      if (!commands2.length) {
3364        return null;
3365      }
3366      return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: commands2.map((command) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3367        CommandItem,
3368        {
3369          command,
3370          search,
3371          category: command.category ?? category,
3372          valuePrefix
3373        },
3374        command.name
3375      )) });
3376    }
3377    function CommandMenuLoaderWrapper({
3378      hook,
3379      ...props
3380    }) {
3381      const currentLoaderRef = (0, import_element3.useRef)(hook);
3382      const [key, setKey] = (0, import_element3.useState)(0);
3383      (0, import_element3.useEffect)(() => {
3384        if (currentLoaderRef.current !== hook) {
3385          currentLoaderRef.current = hook;
3386          setKey((prevKey) => prevKey + 1);
3387        }
3388      }, [hook]);
3389      return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3390        CommandMenuLoader,
3391        {
3392          hook: currentLoaderRef.current,
3393          ...props
3394        },
3395        key
3396      );
3397    }
3398    function CommandList({
3399      search,
3400      commands: commands2,
3401      loaders,
3402      valuePrefix
3403    }) {
3404      return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
3405        commands2.map((command) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3406          CommandItem,
3407          {
3408            command,
3409            search,
3410            valuePrefix
3411          },
3412          command.name
3413        )),
3414        loaders.map((loader) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3415          CommandMenuLoaderWrapper,
3416          {
3417            name: loader.name,
3418            search,
3419            hook: loader.hook,
3420            category: loader.category,
3421            valuePrefix
3422          },
3423          loader.name
3424        ))
3425      ] });
3426    }
3427    function RecentLoaderRunner({
3428      hook,
3429      name,
3430      filterNames,
3431      onResolved
3432    }) {
3433      useLoaderCollector(hook, name, filterNames, onResolved);
3434      return null;
3435    }
3436    function RecentGroup() {
3437      const { commands: commands2, loaders, recentSet, onResolved } = useRecentCommands();
3438      if (!commands2.length && !loaders.length) {
3439        return null;
3440      }
3441      return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(_e.Group, { heading: (0, import_i18n.__)("Recent"), children: [
3442        loaders.map((loader) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3443          RecentLoaderRunner,
3444          {
3445            name: loader.name,
3446            hook: loader.hook,
3447            filterNames: recentSet,
3448            onResolved
3449          },
3450          loader.name
3451        )),
3452        commands2.map((command) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3453          CommandItem,
3454          {
3455            command,
3456            search: "",
3457            valuePrefix: "recent-"
3458          },
3459          command.name
3460        ))
3461      ] });
3462    }
3463    function SuggestionsGroup() {
3464      const { commands: commands2, loaders } = (0, import_data5.useSelect)((select) => {
3465        const { getCommands: getCommands2, getCommandLoaders: getCommandLoaders2 } = select(store);
3466        return {
3467          commands: getCommands2(true),
3468          loaders: getCommandLoaders2(true)
3469        };
3470      }, []);
3471      return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(_e.Group, { heading: (0, import_i18n.__)("Suggestions"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CommandList, { search: "", commands: commands2, loaders }) });
3472    }
3473    function ResultsGroup({ search }) {
3474      const { commands: commands2, contextualCommands, loaders, contextualLoaders } = (0, import_data5.useSelect)((select) => {
3475        const { getCommands: getCommands2, getCommandLoaders: getCommandLoaders2 } = select(store);
3476        return {
3477          commands: getCommands2(false),
3478          contextualCommands: getCommands2(true),
3479          loaders: getCommandLoaders2(false),
3480          contextualLoaders: getCommandLoaders2(true)
3481        };
3482      }, []);
3483      return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(_e.Group, { heading: (0, import_i18n.__)("Results"), children: [
3484        /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3485          CommandList,
3486          {
3487            search,
3488            commands: commands2,
3489            loaders
3490          }
3491        ),
3492        /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3493          CommandList,
3494          {
3495            search,
3496            commands: contextualCommands,
3497            loaders: contextualLoaders
3498          }
3499        )
3500      ] });
3501    }
3502    function CommandInput({ search, setSearch }) {
3503      const commandMenuInput = (0, import_element3.useRef)(null);
3504      const _value = P((state) => state.value);
3505      const selectedItemId = _value ? `$ITEM_ID_PREFIX}$_value}` : null;
3506      (0, import_element3.useEffect)(() => {
3507        commandMenuInput.current.focus();
3508      }, []);
3509      return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3510        _e.Input,
3511        {
3512          ref: commandMenuInput,
3513          value: search,
3514          onValueChange: setSearch,
3515          placeholder: inputLabel,
3516          "aria-activedescendant": selectedItemId ?? void 0
3517        }
3518      );
3519    }
3520    function CommandMenu() {
3521      const { registerShortcut } = (0, import_data5.useDispatch)(import_keyboard_shortcuts.store);
3522      const [search, setSearch] = (0, import_element3.useState)("");
3523      const { isOpen: paletteIsOpen, loadersLoading } = (0, import_data5.useSelect)(
3524        (select) => ({
3525          isOpen: select(store).isOpen(),
3526          loadersLoading: unlock(select(store)).isLoading()
3527        }),
3528        []
3529      );
3530      const { open: open2, close: close2 } = (0, import_data5.useDispatch)(store);
3531      (0, import_element3.useEffect)(() => {
3532        registerShortcut({
3533          name: "core/commands",
3534          category: "global",
3535          description: (0, import_i18n.__)("Open the command palette."),
3536          keyCombination: {
3537            modifier: "primary",
3538            character: "k"
3539          }
3540        });
3541      }, [registerShortcut]);
3542      (0, import_keyboard_shortcuts.useShortcut)(
3543        "core/commands",
3544        (0, import_keycodes.withIgnoreIMEEvents)((event) => {
3545          if (event.defaultPrevented) {
3546            return;
3547          }
3548          event.preventDefault();
3549          if (paletteIsOpen) {
3550            close2();
3551          } else {
3552            open2();
3553          }
3554        })
3555      );
3556      const closeAndReset = () => {
3557        setSearch("");
3558        close2();
3559      };
3560      if (!paletteIsOpen) {
3561        return null;
3562      }
3563      return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3564        import_components.Modal,
3565        {
3566          className: "commands-command-menu",
3567          overlayClassName: "commands-command-menu__overlay",
3568          onRequestClose: closeAndReset,
3569          __experimentalHideHeader: true,
3570          size: "medium",
3571          contentLabel: (0, import_i18n.__)("Command palette"),
3572          children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "commands-command-menu__container", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(_e, { label: inputLabel, loop: true, children: [
3573            /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "commands-command-menu__header", children: [
3574              /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3575                icon_default,
3576                {
3577                  className: "commands-command-menu__header-search-icon",
3578                  icon: search_default
3579                }
3580              ),
3581              /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3582                CommandInput,
3583                {
3584                  search,
3585                  setSearch
3586                }
3587              )
3588            ] }),
3589            /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(_e.List, { label: (0, import_i18n.__)("Command suggestions"), children: [
3590              search && !loadersLoading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(_e.Empty, { children: (0, import_i18n.__)("No results found.") }),
3591              !search && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(RecentGroup, {}),
3592              !search && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SuggestionsGroup, {}),
3593              search && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ResultsGroup, { search })
3594            ] })
3595          ] }) })
3596        }
3597      );
3598    }
3599  
3600    // packages/commands/build-module/hooks/use-command-context.mjs
3601    var import_element4 = __toESM(require_element(), 1);
3602    var import_data6 = __toESM(require_data(), 1);
3603    function useCommandContext(context2) {
3604      const { getContext: getContext2 } = (0, import_data6.useSelect)(store);
3605      const initialContext = (0, import_element4.useRef)(getContext2());
3606      const { setContext: setContext2 } = unlock((0, import_data6.useDispatch)(store));
3607      (0, import_element4.useEffect)(() => {
3608        setContext2(context2);
3609      }, [context2, setContext2]);
3610      (0, import_element4.useEffect)(() => {
3611        const initialContextRef = initialContext.current;
3612        return () => setContext2(initialContextRef);
3613      }, [setContext2]);
3614    }
3615  
3616    // packages/commands/build-module/private-apis.mjs
3617    var privateApis = {};
3618    lock(privateApis, {
3619      useCommandContext
3620    });
3621  
3622    // packages/commands/build-module/hooks/use-command.mjs
3623    var import_element5 = __toESM(require_element(), 1);
3624    var import_data7 = __toESM(require_data(), 1);
3625    function useCommand(command) {
3626      const { registerCommand: registerCommand2, unregisterCommand: unregisterCommand2 } = (0, import_data7.useDispatch)(store);
3627      const currentCallbackRef = (0, import_element5.useRef)(command.callback);
3628      (0, import_element5.useEffect)(() => {
3629        currentCallbackRef.current = command.callback;
3630      }, [command.callback]);
3631      (0, import_element5.useEffect)(() => {
3632        if (command.disabled) {
3633          return;
3634        }
3635        registerCommand2({
3636          name: command.name,
3637          context: command.context,
3638          category: command.category,
3639          label: command.label,
3640          searchLabel: command.searchLabel,
3641          icon: command.icon,
3642          keywords: command.keywords,
3643          callback: (...args) => currentCallbackRef.current(...args)
3644        });
3645        return () => {
3646          unregisterCommand2(command.name);
3647        };
3648      }, [
3649        command.name,
3650        command.label,
3651        command.searchLabel,
3652        command.icon,
3653        command.context,
3654        command.category,
3655        command.keywords,
3656        command.disabled,
3657        registerCommand2,
3658        unregisterCommand2
3659      ]);
3660    }
3661    function useCommands(commands2) {
3662      const { registerCommand: registerCommand2, unregisterCommand: unregisterCommand2 } = (0, import_data7.useDispatch)(store);
3663      const currentCallbacksRef = (0, import_element5.useRef)({});
3664      (0, import_element5.useEffect)(() => {
3665        if (!commands2) {
3666          return;
3667        }
3668        commands2.forEach((command) => {
3669          if (command.callback) {
3670            currentCallbacksRef.current[command.name] = command.callback;
3671          }
3672        });
3673      }, [commands2]);
3674      (0, import_element5.useEffect)(() => {
3675        if (!commands2) {
3676          return;
3677        }
3678        commands2.forEach((command) => {
3679          if (command.disabled) {
3680            return;
3681          }
3682          registerCommand2({
3683            name: command.name,
3684            context: command.context,
3685            category: command.category,
3686            label: command.label,
3687            searchLabel: command.searchLabel,
3688            icon: command.icon,
3689            keywords: command.keywords,
3690            callback: (...args) => {
3691              const callback = currentCallbacksRef.current[command.name];
3692              if (callback) {
3693                callback(...args);
3694              }
3695            }
3696          });
3697        });
3698        return () => {
3699          commands2.forEach((command) => {
3700            unregisterCommand2(command.name);
3701          });
3702        };
3703      }, [commands2, registerCommand2, unregisterCommand2]);
3704    }
3705  
3706    // packages/commands/build-module/hooks/use-command-loader.mjs
3707    var import_element6 = __toESM(require_element(), 1);
3708    var import_data8 = __toESM(require_data(), 1);
3709    function useCommandLoader(loader) {
3710      const { registerCommandLoader: registerCommandLoader2, unregisterCommandLoader: unregisterCommandLoader2 } = (0, import_data8.useDispatch)(store);
3711      const currentHookRef = (0, import_element6.useRef)(loader.hook);
3712      (0, import_element6.useEffect)(() => {
3713        currentHookRef.current = loader.hook;
3714      }, [loader.hook]);
3715      const hook = (0, import_element6.useCallback)(
3716        (...args) => currentHookRef.current(...args),
3717        []
3718      );
3719      (0, import_element6.useEffect)(() => {
3720        if (loader.disabled) {
3721          return;
3722        }
3723        registerCommandLoader2({
3724          name: loader.name,
3725          hook,
3726          context: loader.context,
3727          category: loader.category
3728        });
3729        return () => {
3730          unregisterCommandLoader2(loader.name);
3731        };
3732      }, [
3733        loader.name,
3734        hook,
3735        loader.context,
3736        loader.category,
3737        loader.disabled,
3738        registerCommandLoader2,
3739        unregisterCommandLoader2
3740      ]);
3741    }
3742    return __toCommonJS(index_exports);
3743  })();
3744  (window.wp ||= {}).commands = wp.commands;
3745  })();


Generated : Tue Oct 27 08:20:35 2026 Cross-referenced by PHPXref