�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.31
Preview: components.js Size: 3.83 MB
/var/www/weelorum_com_usr/data/www/weelorum.com/wp-includes/js/dist/components.js
"use strict";
var wp;
(wp ||= {}).components = (() => {
  var __create = Object.create;
  var __defProp = Object.defineProperty;
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  var __getOwnPropNames = Object.getOwnPropertyNames;
  var __getProtoOf = Object.getPrototypeOf;
  var __hasOwnProp = Object.prototype.hasOwnProperty;
  var __esm = (fn, res) => function __init() {
    return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
  };
  var __commonJS = (cb, mod) => function __require() {
    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  };
  var __export = (target, all) => {
    for (var name in all)
      __defProp(target, name, { get: all[name], enumerable: true });
  };
  var __copyProps = (to, from2, except, desc) => {
    if (from2 && typeof from2 === "object" || typeof from2 === "function") {
      for (let key of __getOwnPropNames(from2))
        if (!__hasOwnProp.call(to, key) && key !== except)
          __defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
    }
    return to;
  };
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
    // If the importer is in node compatibility mode or this is not an ESM
    // file that has been converted to a CommonJS file using a Babel-
    // compatible transform (i.e. "__esModule" has not been set), then set
    // "default" to the CommonJS "module.exports" for node compatibility.
    isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
    mod
  ));
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

  // package-external:@wordpress/primitives
  var require_primitives = __commonJS({
    "package-external:@wordpress/primitives"(exports, module) {
      module.exports = window.wp.primitives;
    }
  });

  // package-external:@wordpress/i18n
  var require_i18n = __commonJS({
    "package-external:@wordpress/i18n"(exports, module) {
      module.exports = window.wp.i18n;
    }
  });

  // package-external:@wordpress/compose
  var require_compose = __commonJS({
    "package-external:@wordpress/compose"(exports, module) {
      module.exports = window.wp.compose;
    }
  });

  // package-external:@wordpress/element
  var require_element = __commonJS({
    "package-external:@wordpress/element"(exports, module) {
      module.exports = window.wp.element;
    }
  });

  // vendor-external:react
  var require_react = __commonJS({
    "vendor-external:react"(exports, module) {
      module.exports = window.React;
    }
  });

  // vendor-external:react/jsx-runtime
  var require_jsx_runtime = __commonJS({
    "vendor-external:react/jsx-runtime"(exports, module) {
      module.exports = window.ReactJSXRuntime;
    }
  });

  // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
  var require_use_sync_external_store_shim_development = __commonJS({
    "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports) {
      "use strict";
      (function() {
        function is(x2, y3) {
          return x2 === y3 && (0 !== x2 || 1 / x2 === 1 / y3) || x2 !== x2 && y3 !== y3;
        }
        function useSyncExternalStore$2(subscribe2, getSnapshot) {
          didWarnOld18Alpha || void 0 === React41.startTransition || (didWarnOld18Alpha = true, console.error(
            "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
          ));
          var value = getSnapshot();
          if (!didWarnUncachedGetSnapshot) {
            var cachedValue = getSnapshot();
            objectIs(value, cachedValue) || (console.error(
              "The result of getSnapshot should be cached to avoid an infinite loop"
            ), didWarnUncachedGetSnapshot = true);
          }
          cachedValue = useState85({
            inst: { value, getSnapshot }
          });
          var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
          useLayoutEffect24(
            function() {
              inst.value = value;
              inst.getSnapshot = getSnapshot;
              checkIfSnapshotChanged(inst) && forceUpdate({ inst });
            },
            [subscribe2, value, getSnapshot]
          );
          useEffect79(
            function() {
              checkIfSnapshotChanged(inst) && forceUpdate({ inst });
              return subscribe2(function() {
                checkIfSnapshotChanged(inst) && forceUpdate({ inst });
              });
            },
            [subscribe2]
          );
          useDebugValue(value);
          return value;
        }
        function checkIfSnapshotChanged(inst) {
          var latestGetSnapshot = inst.getSnapshot;
          inst = inst.value;
          try {
            var nextValue = latestGetSnapshot();
            return !objectIs(inst, nextValue);
          } catch (error) {
            return true;
          }
        }
        function useSyncExternalStore$1(subscribe2, getSnapshot) {
          return getSnapshot();
        }
        "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
        var React41 = require_react(), objectIs = "function" === typeof Object.is ? Object.is : is, useState85 = React41.useState, useEffect79 = React41.useEffect, useLayoutEffect24 = React41.useLayoutEffect, useDebugValue = React41.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
        exports.useSyncExternalStore = void 0 !== React41.useSyncExternalStore ? React41.useSyncExternalStore : shim;
        "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
      })();
    }
  });

  // node_modules/use-sync-external-store/shim/index.js
  var require_shim = __commonJS({
    "node_modules/use-sync-external-store/shim/index.js"(exports, module) {
      "use strict";
      if (false) {
        module.exports = null;
      } else {
        module.exports = require_use_sync_external_store_shim_development();
      }
    }
  });

  // vendor-external:react-dom
  var require_react_dom = __commonJS({
    "vendor-external:react-dom"(exports, module) {
      module.exports = window.ReactDOM;
    }
  });

  // package-external:@wordpress/deprecated
  var require_deprecated = __commonJS({
    "package-external:@wordpress/deprecated"(exports, module) {
      module.exports = window.wp.deprecated;
    }
  });

  // node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
  function memoize(fn) {
    var cache2 = /* @__PURE__ */ Object.create(null);
    return function(arg) {
      if (cache2[arg] === void 0) cache2[arg] = fn(arg);
      return cache2[arg];
    };
  }
  var init_emotion_memoize_esm = __esm({
    "node_modules/@emotion/memoize/dist/emotion-memoize.esm.js"() {
    }
  });

  // node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js
  var emotion_is_prop_valid_esm_exports = {};
  __export(emotion_is_prop_valid_esm_exports, {
    default: () => isPropValid
  });
  var reactPropsRegex, isPropValid;
  var init_emotion_is_prop_valid_esm = __esm({
    "node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js"() {
      init_emotion_memoize_esm();
      reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/;
      isPropValid = /* @__PURE__ */ memoize(
        function(prop) {
          return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110 && prop.charCodeAt(2) < 91;
        }
        /* Z+1 */
      );
    }
  });

  // node_modules/react-is/cjs/react-is.development.js
  var require_react_is_development = __commonJS({
    "node_modules/react-is/cjs/react-is.development.js"(exports) {
      "use strict";
      if (true) {
        (function() {
          "use strict";
          var hasSymbol = typeof Symbol === "function" && Symbol.for;
          var REACT_ELEMENT_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.element") : 60103;
          var REACT_PORTAL_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.portal") : 60106;
          var REACT_FRAGMENT_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.fragment") : 60107;
          var REACT_STRICT_MODE_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.strict_mode") : 60108;
          var REACT_PROFILER_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.profiler") : 60114;
          var REACT_PROVIDER_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.provider") : 60109;
          var REACT_CONTEXT_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.context") : 60110;
          var REACT_ASYNC_MODE_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.async_mode") : 60111;
          var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.concurrent_mode") : 60111;
          var REACT_FORWARD_REF_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.forward_ref") : 60112;
          var REACT_SUSPENSE_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.suspense") : 60113;
          var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.suspense_list") : 60120;
          var REACT_MEMO_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.memo") : 60115;
          var REACT_LAZY_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.lazy") : 60116;
          var REACT_BLOCK_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.block") : 60121;
          var REACT_FUNDAMENTAL_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.fundamental") : 60117;
          var REACT_RESPONDER_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.responder") : 60118;
          var REACT_SCOPE_TYPE = hasSymbol ? /* @__PURE__ */ Symbol.for("react.scope") : 60119;
          function isValidElementType(type) {
            return typeof type === "string" || typeof type === "function" || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
            type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
          }
          function typeOf(object) {
            if (typeof object === "object" && object !== null) {
              var $$typeof = object.$$typeof;
              switch ($$typeof) {
                case REACT_ELEMENT_TYPE:
                  var type = object.type;
                  switch (type) {
                    case REACT_ASYNC_MODE_TYPE:
                    case REACT_CONCURRENT_MODE_TYPE:
                    case REACT_FRAGMENT_TYPE:
                    case REACT_PROFILER_TYPE:
                    case REACT_STRICT_MODE_TYPE:
                    case REACT_SUSPENSE_TYPE:
                      return type;
                    default:
                      var $$typeofType = type && type.$$typeof;
                      switch ($$typeofType) {
                        case REACT_CONTEXT_TYPE:
                        case REACT_FORWARD_REF_TYPE:
                        case REACT_LAZY_TYPE:
                        case REACT_MEMO_TYPE:
                        case REACT_PROVIDER_TYPE:
                          return $$typeofType;
                        default:
                          return $$typeof;
                      }
                  }
                case REACT_PORTAL_TYPE:
                  return $$typeof;
              }
            }
            return void 0;
          }
          var AsyncMode = REACT_ASYNC_MODE_TYPE;
          var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
          var ContextConsumer = REACT_CONTEXT_TYPE;
          var ContextProvider = REACT_PROVIDER_TYPE;
          var Element2 = REACT_ELEMENT_TYPE;
          var ForwardRef = REACT_FORWARD_REF_TYPE;
          var Fragment11 = REACT_FRAGMENT_TYPE;
          var Lazy = REACT_LAZY_TYPE;
          var Memo = REACT_MEMO_TYPE;
          var Portal3 = REACT_PORTAL_TYPE;
          var Profiler = REACT_PROFILER_TYPE;
          var StrictMode = REACT_STRICT_MODE_TYPE;
          var Suspense = REACT_SUSPENSE_TYPE;
          var hasWarnedAboutDeprecatedIsAsyncMode = false;
          function isAsyncMode(object) {
            {
              if (!hasWarnedAboutDeprecatedIsAsyncMode) {
                hasWarnedAboutDeprecatedIsAsyncMode = true;
                console["warn"]("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.");
              }
            }
            return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
          }
          function isConcurrentMode(object) {
            return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
          }
          function isContextConsumer(object) {
            return typeOf(object) === REACT_CONTEXT_TYPE;
          }
          function isContextProvider(object) {
            return typeOf(object) === REACT_PROVIDER_TYPE;
          }
          function isElement2(object) {
            return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
          }
          function isForwardRef(object) {
            return typeOf(object) === REACT_FORWARD_REF_TYPE;
          }
          function isFragment(object) {
            return typeOf(object) === REACT_FRAGMENT_TYPE;
          }
          function isLazy(object) {
            return typeOf(object) === REACT_LAZY_TYPE;
          }
          function isMemo(object) {
            return typeOf(object) === REACT_MEMO_TYPE;
          }
          function isPortal(object) {
            return typeOf(object) === REACT_PORTAL_TYPE;
          }
          function isProfiler(object) {
            return typeOf(object) === REACT_PROFILER_TYPE;
          }
          function isStrictMode(object) {
            return typeOf(object) === REACT_STRICT_MODE_TYPE;
          }
          function isSuspense(object) {
            return typeOf(object) === REACT_SUSPENSE_TYPE;
          }
          exports.AsyncMode = AsyncMode;
          exports.ConcurrentMode = ConcurrentMode;
          exports.ContextConsumer = ContextConsumer;
          exports.ContextProvider = ContextProvider;
          exports.Element = Element2;
          exports.ForwardRef = ForwardRef;
          exports.Fragment = Fragment11;
          exports.Lazy = Lazy;
          exports.Memo = Memo;
          exports.Portal = Portal3;
          exports.Profiler = Profiler;
          exports.StrictMode = StrictMode;
          exports.Suspense = Suspense;
          exports.isAsyncMode = isAsyncMode;
          exports.isConcurrentMode = isConcurrentMode;
          exports.isContextConsumer = isContextConsumer;
          exports.isContextProvider = isContextProvider;
          exports.isElement = isElement2;
          exports.isForwardRef = isForwardRef;
          exports.isFragment = isFragment;
          exports.isLazy = isLazy;
          exports.isMemo = isMemo;
          exports.isPortal = isPortal;
          exports.isProfiler = isProfiler;
          exports.isStrictMode = isStrictMode;
          exports.isSuspense = isSuspense;
          exports.isValidElementType = isValidElementType;
          exports.typeOf = typeOf;
        })();
      }
    }
  });

  // node_modules/react-is/index.js
  var require_react_is = __commonJS({
    "node_modules/react-is/index.js"(exports, module) {
      "use strict";
      if (false) {
        module.exports = null;
      } else {
        module.exports = require_react_is_development();
      }
    }
  });

  // node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
  var require_hoist_non_react_statics_cjs = __commonJS({
    "node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"(exports, module) {
      "use strict";
      var reactIs = require_react_is();
      var REACT_STATICS = {
        childContextTypes: true,
        contextType: true,
        contextTypes: true,
        defaultProps: true,
        displayName: true,
        getDefaultProps: true,
        getDerivedStateFromError: true,
        getDerivedStateFromProps: true,
        mixins: true,
        propTypes: true,
        type: true
      };
      var KNOWN_STATICS = {
        name: true,
        length: true,
        prototype: true,
        caller: true,
        callee: true,
        arguments: true,
        arity: true
      };
      var FORWARD_REF_STATICS = {
        "$$typeof": true,
        render: true,
        defaultProps: true,
        displayName: true,
        propTypes: true
      };
      var MEMO_STATICS = {
        "$$typeof": true,
        compare: true,
        defaultProps: true,
        displayName: true,
        propTypes: true,
        type: true
      };
      var TYPE_STATICS = {};
      TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
      TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
      function getStatics(component) {
        if (reactIs.isMemo(component)) {
          return MEMO_STATICS;
        }
        return TYPE_STATICS[component["$$typeof"]] || REACT_STATICS;
      }
      var defineProperty = Object.defineProperty;
      var getOwnPropertyNames = Object.getOwnPropertyNames;
      var getOwnPropertySymbols = Object.getOwnPropertySymbols;
      var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
      var getPrototypeOf = Object.getPrototypeOf;
      var objectPrototype = Object.prototype;
      function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
        if (typeof sourceComponent !== "string") {
          if (objectPrototype) {
            var inheritedComponent = getPrototypeOf(sourceComponent);
            if (inheritedComponent && inheritedComponent !== objectPrototype) {
              hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
            }
          }
          var keys = getOwnPropertyNames(sourceComponent);
          if (getOwnPropertySymbols) {
            keys = keys.concat(getOwnPropertySymbols(sourceComponent));
          }
          var targetStatics = getStatics(targetComponent);
          var sourceStatics = getStatics(sourceComponent);
          for (var i3 = 0; i3 < keys.length; ++i3) {
            var key = keys[i3];
            if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
              var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
              try {
                defineProperty(targetComponent, key, descriptor);
              } catch (e3) {
              }
            }
          }
        }
        return targetComponent;
      }
      module.exports = hoistNonReactStatics;
    }
  });

  // node_modules/deepmerge/dist/cjs.js
  var require_cjs = __commonJS({
    "node_modules/deepmerge/dist/cjs.js"(exports, module) {
      "use strict";
      var isMergeableObject = function isMergeableObject2(value) {
        return isNonNullObject(value) && !isSpecial(value);
      };
      function isNonNullObject(value) {
        return !!value && typeof value === "object";
      }
      function isSpecial(value) {
        var stringValue = Object.prototype.toString.call(value);
        return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value);
      }
      var canUseSymbol = typeof Symbol === "function" && Symbol.for;
      var REACT_ELEMENT_TYPE = canUseSymbol ? /* @__PURE__ */ Symbol.for("react.element") : 60103;
      function isReactElement(value) {
        return value.$$typeof === REACT_ELEMENT_TYPE;
      }
      function emptyTarget(val) {
        return Array.isArray(val) ? [] : {};
      }
      function cloneUnlessOtherwiseSpecified(value, options2) {
        return options2.clone !== false && options2.isMergeableObject(value) ? deepmerge2(emptyTarget(value), value, options2) : value;
      }
      function defaultArrayMerge(target, source, options2) {
        return target.concat(source).map(function(element) {
          return cloneUnlessOtherwiseSpecified(element, options2);
        });
      }
      function getMergeFunction(key, options2) {
        if (!options2.customMerge) {
          return deepmerge2;
        }
        var customMerge = options2.customMerge(key);
        return typeof customMerge === "function" ? customMerge : deepmerge2;
      }
      function getEnumerableOwnPropertySymbols(target) {
        return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol4) {
          return Object.propertyIsEnumerable.call(target, symbol4);
        }) : [];
      }
      function getKeys2(target) {
        return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));
      }
      function propertyIsOnObject(object, property) {
        try {
          return property in object;
        } catch (_2) {
          return false;
        }
      }
      function propertyIsUnsafe(target, key) {
        return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key));
      }
      function mergeObject(target, source, options2) {
        var destination = {};
        if (options2.isMergeableObject(target)) {
          getKeys2(target).forEach(function(key) {
            destination[key] = cloneUnlessOtherwiseSpecified(target[key], options2);
          });
        }
        getKeys2(source).forEach(function(key) {
          if (propertyIsUnsafe(target, key)) {
            return;
          }
          if (propertyIsOnObject(target, key) && options2.isMergeableObject(source[key])) {
            destination[key] = getMergeFunction(key, options2)(target[key], source[key], options2);
          } else {
            destination[key] = cloneUnlessOtherwiseSpecified(source[key], options2);
          }
        });
        return destination;
      }
      function deepmerge2(target, source, options2) {
        options2 = options2 || {};
        options2.arrayMerge = options2.arrayMerge || defaultArrayMerge;
        options2.isMergeableObject = options2.isMergeableObject || isMergeableObject;
        options2.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
        var sourceIsArray = Array.isArray(source);
        var targetIsArray = Array.isArray(target);
        var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
        if (!sourceAndTargetTypesMatch) {
          return cloneUnlessOtherwiseSpecified(source, options2);
        } else if (sourceIsArray) {
          return options2.arrayMerge(target, source, options2);
        } else {
          return mergeObject(target, source, options2);
        }
      }
      deepmerge2.all = function deepmergeAll(array, options2) {
        if (!Array.isArray(array)) {
          throw new Error("first argument should be an array");
        }
        return array.reduce(function(prev2, next2) {
          return deepmerge2(prev2, next2, options2);
        }, {});
      };
      var deepmerge_1 = deepmerge2;
      module.exports = deepmerge_1;
    }
  });

  // node_modules/fast-deep-equal/es6/index.js
  var require_es6 = __commonJS({
    "node_modules/fast-deep-equal/es6/index.js"(exports, module) {
      "use strict";
      module.exports = function equal(a3, b3) {
        if (a3 === b3) return true;
        if (a3 && b3 && typeof a3 == "object" && typeof b3 == "object") {
          if (a3.constructor !== b3.constructor) return false;
          var length2, i3, keys;
          if (Array.isArray(a3)) {
            length2 = a3.length;
            if (length2 != b3.length) return false;
            for (i3 = length2; i3-- !== 0; )
              if (!equal(a3[i3], b3[i3])) return false;
            return true;
          }
          if (a3 instanceof Map && b3 instanceof Map) {
            if (a3.size !== b3.size) return false;
            for (i3 of a3.entries())
              if (!b3.has(i3[0])) return false;
            for (i3 of a3.entries())
              if (!equal(i3[1], b3.get(i3[0]))) return false;
            return true;
          }
          if (a3 instanceof Set && b3 instanceof Set) {
            if (a3.size !== b3.size) return false;
            for (i3 of a3.entries())
              if (!b3.has(i3[0])) return false;
            return true;
          }
          if (ArrayBuffer.isView(a3) && ArrayBuffer.isView(b3)) {
            length2 = a3.length;
            if (length2 != b3.length) return false;
            for (i3 = length2; i3-- !== 0; )
              if (a3[i3] !== b3[i3]) return false;
            return true;
          }
          if (a3.constructor === RegExp) return a3.source === b3.source && a3.flags === b3.flags;
          if (a3.valueOf !== Object.prototype.valueOf) return a3.valueOf() === b3.valueOf();
          if (a3.toString !== Object.prototype.toString) return a3.toString() === b3.toString();
          keys = Object.keys(a3);
          length2 = keys.length;
          if (length2 !== Object.keys(b3).length) return false;
          for (i3 = length2; i3-- !== 0; )
            if (!Object.prototype.hasOwnProperty.call(b3, keys[i3])) return false;
          for (i3 = length2; i3-- !== 0; ) {
            var key = keys[i3];
            if (!equal(a3[key], b3[key])) return false;
          }
          return true;
        }
        return a3 !== a3 && b3 !== b3;
      };
    }
  });

  // package-external:@wordpress/warning
  var require_warning = __commonJS({
    "package-external:@wordpress/warning"(exports, module) {
      module.exports = window.wp.warning;
    }
  });

  // node_modules/highlight-words-core/dist/index.js
  var require_dist = __commonJS({
    "node_modules/highlight-words-core/dist/index.js"(exports, module) {
      module.exports = /******/
      (function(modules) {
        var installedModules = {};
        function __webpack_require__(moduleId) {
          if (installedModules[moduleId])
            return installedModules[moduleId].exports;
          var module2 = installedModules[moduleId] = {
            /******/
            exports: {},
            /******/
            id: moduleId,
            /******/
            loaded: false
            /******/
          };
          modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
          module2.loaded = true;
          return module2.exports;
        }
        __webpack_require__.m = modules;
        __webpack_require__.c = installedModules;
        __webpack_require__.p = "";
        return __webpack_require__(0);
      })([
        /* 0 */
        /***/
        (function(module2, exports2, __webpack_require__) {
          module2.exports = __webpack_require__(1);
        }),
        /* 1 */
        /***/
        (function(module2, exports2, __webpack_require__) {
          "use strict";
          Object.defineProperty(exports2, "__esModule", {
            value: true
          });
          var _utils = __webpack_require__(2);
          Object.defineProperty(exports2, "combineChunks", {
            enumerable: true,
            get: function get() {
              return _utils.combineChunks;
            }
          });
          Object.defineProperty(exports2, "fillInChunks", {
            enumerable: true,
            get: function get() {
              return _utils.fillInChunks;
            }
          });
          Object.defineProperty(exports2, "findAll", {
            enumerable: true,
            get: function get() {
              return _utils.findAll;
            }
          });
          Object.defineProperty(exports2, "findChunks", {
            enumerable: true,
            get: function get() {
              return _utils.findChunks;
            }
          });
        }),
        /* 2 */
        /***/
        (function(module2, exports2) {
          "use strict";
          Object.defineProperty(exports2, "__esModule", {
            value: true
          });
          var findAll2 = exports2.findAll = function findAll3(_ref11) {
            var autoEscape = _ref11.autoEscape, _ref$caseSensitive = _ref11.caseSensitive, caseSensitive = _ref$caseSensitive === void 0 ? false : _ref$caseSensitive, _ref$findChunks = _ref11.findChunks, findChunks = _ref$findChunks === void 0 ? defaultFindChunks : _ref$findChunks, sanitize2 = _ref11.sanitize, searchWords = _ref11.searchWords, textToHighlight = _ref11.textToHighlight;
            return fillInChunks({
              chunksToHighlight: combineChunks({
                chunks: findChunks({
                  autoEscape,
                  caseSensitive,
                  sanitize: sanitize2,
                  searchWords,
                  textToHighlight
                })
              }),
              totalLength: textToHighlight ? textToHighlight.length : 0
            });
          };
          var combineChunks = exports2.combineChunks = function combineChunks2(_ref25) {
            var chunks = _ref25.chunks;
            chunks = chunks.sort(function(first, second) {
              return first.start - second.start;
            }).reduce(function(processedChunks, nextChunk) {
              if (processedChunks.length === 0) {
                return [nextChunk];
              } else {
                var prevChunk = processedChunks.pop();
                if (nextChunk.start <= prevChunk.end) {
                  var endIndex = Math.max(prevChunk.end, nextChunk.end);
                  processedChunks.push({ highlight: false, start: prevChunk.start, end: endIndex });
                } else {
                  processedChunks.push(prevChunk, nextChunk);
                }
                return processedChunks;
              }
            }, []);
            return chunks;
          };
          var defaultFindChunks = function defaultFindChunks2(_ref32) {
            var autoEscape = _ref32.autoEscape, caseSensitive = _ref32.caseSensitive, _ref3$sanitize = _ref32.sanitize, sanitize2 = _ref3$sanitize === void 0 ? defaultSanitize : _ref3$sanitize, searchWords = _ref32.searchWords, textToHighlight = _ref32.textToHighlight;
            textToHighlight = sanitize2(textToHighlight);
            return searchWords.filter(function(searchWord) {
              return searchWord;
            }).reduce(function(chunks, searchWord) {
              searchWord = sanitize2(searchWord);
              if (autoEscape) {
                searchWord = escapeRegExpFn(searchWord);
              }
              var regex = new RegExp(searchWord, caseSensitive ? "g" : "gi");
              var match4 = void 0;
              while (match4 = regex.exec(textToHighlight)) {
                var _start = match4.index;
                var _end = regex.lastIndex;
                if (_end > _start) {
                  chunks.push({ highlight: false, start: _start, end: _end });
                }
                if (match4.index === regex.lastIndex) {
                  regex.lastIndex++;
                }
              }
              return chunks;
            }, []);
          };
          exports2.findChunks = defaultFindChunks;
          var fillInChunks = exports2.fillInChunks = function fillInChunks2(_ref42) {
            var chunksToHighlight = _ref42.chunksToHighlight, totalLength = _ref42.totalLength;
            var allChunks = [];
            var append2 = function append3(start, end, highlight) {
              if (end - start > 0) {
                allChunks.push({
                  start,
                  end,
                  highlight
                });
              }
            };
            if (chunksToHighlight.length === 0) {
              append2(0, totalLength, false);
            } else {
              var lastIndex = 0;
              chunksToHighlight.forEach(function(chunk) {
                append2(lastIndex, chunk.start, false);
                append2(chunk.start, chunk.end, true);
                lastIndex = chunk.end;
              });
              append2(lastIndex, totalLength, false);
            }
            return allChunks;
          };
          function defaultSanitize(string) {
            return string;
          }
          function escapeRegExpFn(string) {
            return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
          }
        })
        /******/
      ]);
    }
  });

  // node_modules/remove-accents/index.js
  var require_remove_accents = __commonJS({
    "node_modules/remove-accents/index.js"(exports, module) {
      var characterMap = {
        "\xC0": "A",
        "\xC1": "A",
        "\xC2": "A",
        "\xC3": "A",
        "\xC4": "A",
        "\xC5": "A",
        "\u1EA4": "A",
        "\u1EAE": "A",
        "\u1EB2": "A",
        "\u1EB4": "A",
        "\u1EB6": "A",
        "\xC6": "AE",
        "\u1EA6": "A",
        "\u1EB0": "A",
        "\u0202": "A",
        "\u1EA2": "A",
        "\u1EA0": "A",
        "\u1EA8": "A",
        "\u1EAA": "A",
        "\u1EAC": "A",
        "\xC7": "C",
        "\u1E08": "C",
        "\xC8": "E",
        "\xC9": "E",
        "\xCA": "E",
        "\xCB": "E",
        "\u1EBE": "E",
        "\u1E16": "E",
        "\u1EC0": "E",
        "\u1E14": "E",
        "\u1E1C": "E",
        "\u0206": "E",
        "\u1EBA": "E",
        "\u1EBC": "E",
        "\u1EB8": "E",
        "\u1EC2": "E",
        "\u1EC4": "E",
        "\u1EC6": "E",
        "\xCC": "I",
        "\xCD": "I",
        "\xCE": "I",
        "\xCF": "I",
        "\u1E2E": "I",
        "\u020A": "I",
        "\u1EC8": "I",
        "\u1ECA": "I",
        "\xD0": "D",
        "\xD1": "N",
        "\xD2": "O",
        "\xD3": "O",
        "\xD4": "O",
        "\xD5": "O",
        "\xD6": "O",
        "\xD8": "O",
        "\u1ED0": "O",
        "\u1E4C": "O",
        "\u1E52": "O",
        "\u020E": "O",
        "\u1ECE": "O",
        "\u1ECC": "O",
        "\u1ED4": "O",
        "\u1ED6": "O",
        "\u1ED8": "O",
        "\u1EDC": "O",
        "\u1EDE": "O",
        "\u1EE0": "O",
        "\u1EDA": "O",
        "\u1EE2": "O",
        "\xD9": "U",
        "\xDA": "U",
        "\xDB": "U",
        "\xDC": "U",
        "\u1EE6": "U",
        "\u1EE4": "U",
        "\u1EEC": "U",
        "\u1EEE": "U",
        "\u1EF0": "U",
        "\xDD": "Y",
        "\xE0": "a",
        "\xE1": "a",
        "\xE2": "a",
        "\xE3": "a",
        "\xE4": "a",
        "\xE5": "a",
        "\u1EA5": "a",
        "\u1EAF": "a",
        "\u1EB3": "a",
        "\u1EB5": "a",
        "\u1EB7": "a",
        "\xE6": "ae",
        "\u1EA7": "a",
        "\u1EB1": "a",
        "\u0203": "a",
        "\u1EA3": "a",
        "\u1EA1": "a",
        "\u1EA9": "a",
        "\u1EAB": "a",
        "\u1EAD": "a",
        "\xE7": "c",
        "\u1E09": "c",
        "\xE8": "e",
        "\xE9": "e",
        "\xEA": "e",
        "\xEB": "e",
        "\u1EBF": "e",
        "\u1E17": "e",
        "\u1EC1": "e",
        "\u1E15": "e",
        "\u1E1D": "e",
        "\u0207": "e",
        "\u1EBB": "e",
        "\u1EBD": "e",
        "\u1EB9": "e",
        "\u1EC3": "e",
        "\u1EC5": "e",
        "\u1EC7": "e",
        "\xEC": "i",
        "\xED": "i",
        "\xEE": "i",
        "\xEF": "i",
        "\u1E2F": "i",
        "\u020B": "i",
        "\u1EC9": "i",
        "\u1ECB": "i",
        "\xF0": "d",
        "\xF1": "n",
        "\xF2": "o",
        "\xF3": "o",
        "\xF4": "o",
        "\xF5": "o",
        "\xF6": "o",
        "\xF8": "o",
        "\u1ED1": "o",
        "\u1E4D": "o",
        "\u1E53": "o",
        "\u020F": "o",
        "\u1ECF": "o",
        "\u1ECD": "o",
        "\u1ED5": "o",
        "\u1ED7": "o",
        "\u1ED9": "o",
        "\u1EDD": "o",
        "\u1EDF": "o",
        "\u1EE1": "o",
        "\u1EDB": "o",
        "\u1EE3": "o",
        "\xF9": "u",
        "\xFA": "u",
        "\xFB": "u",
        "\xFC": "u",
        "\u1EE7": "u",
        "\u1EE5": "u",
        "\u1EED": "u",
        "\u1EEF": "u",
        "\u1EF1": "u",
        "\xFD": "y",
        "\xFF": "y",
        "\u0100": "A",
        "\u0101": "a",
        "\u0102": "A",
        "\u0103": "a",
        "\u0104": "A",
        "\u0105": "a",
        "\u0106": "C",
        "\u0107": "c",
        "\u0108": "C",
        "\u0109": "c",
        "\u010A": "C",
        "\u010B": "c",
        "\u010C": "C",
        "\u010D": "c",
        "C\u0306": "C",
        "c\u0306": "c",
        "\u010E": "D",
        "\u010F": "d",
        "\u0110": "D",
        "\u0111": "d",
        "\u0112": "E",
        "\u0113": "e",
        "\u0114": "E",
        "\u0115": "e",
        "\u0116": "E",
        "\u0117": "e",
        "\u0118": "E",
        "\u0119": "e",
        "\u011A": "E",
        "\u011B": "e",
        "\u011C": "G",
        "\u01F4": "G",
        "\u011D": "g",
        "\u01F5": "g",
        "\u011E": "G",
        "\u011F": "g",
        "\u0120": "G",
        "\u0121": "g",
        "\u0122": "G",
        "\u0123": "g",
        "\u0124": "H",
        "\u0125": "h",
        "\u0126": "H",
        "\u0127": "h",
        "\u1E2A": "H",
        "\u1E2B": "h",
        "\u0128": "I",
        "\u0129": "i",
        "\u012A": "I",
        "\u012B": "i",
        "\u012C": "I",
        "\u012D": "i",
        "\u012E": "I",
        "\u012F": "i",
        "\u0130": "I",
        "\u0131": "i",
        "\u0132": "IJ",
        "\u0133": "ij",
        "\u0134": "J",
        "\u0135": "j",
        "\u0136": "K",
        "\u0137": "k",
        "\u1E30": "K",
        "\u1E31": "k",
        "K\u0306": "K",
        "k\u0306": "k",
        "\u0139": "L",
        "\u013A": "l",
        "\u013B": "L",
        "\u013C": "l",
        "\u013D": "L",
        "\u013E": "l",
        "\u013F": "L",
        "\u0140": "l",
        "\u0141": "l",
        "\u0142": "l",
        "\u1E3E": "M",
        "\u1E3F": "m",
        "M\u0306": "M",
        "m\u0306": "m",
        "\u0143": "N",
        "\u0144": "n",
        "\u0145": "N",
        "\u0146": "n",
        "\u0147": "N",
        "\u0148": "n",
        "\u0149": "n",
        "N\u0306": "N",
        "n\u0306": "n",
        "\u014C": "O",
        "\u014D": "o",
        "\u014E": "O",
        "\u014F": "o",
        "\u0150": "O",
        "\u0151": "o",
        "\u0152": "OE",
        "\u0153": "oe",
        "P\u0306": "P",
        "p\u0306": "p",
        "\u0154": "R",
        "\u0155": "r",
        "\u0156": "R",
        "\u0157": "r",
        "\u0158": "R",
        "\u0159": "r",
        "R\u0306": "R",
        "r\u0306": "r",
        "\u0212": "R",
        "\u0213": "r",
        "\u015A": "S",
        "\u015B": "s",
        "\u015C": "S",
        "\u015D": "s",
        "\u015E": "S",
        "\u0218": "S",
        "\u0219": "s",
        "\u015F": "s",
        "\u0160": "S",
        "\u0161": "s",
        "\u0162": "T",
        "\u0163": "t",
        "\u021B": "t",
        "\u021A": "T",
        "\u0164": "T",
        "\u0165": "t",
        "\u0166": "T",
        "\u0167": "t",
        "T\u0306": "T",
        "t\u0306": "t",
        "\u0168": "U",
        "\u0169": "u",
        "\u016A": "U",
        "\u016B": "u",
        "\u016C": "U",
        "\u016D": "u",
        "\u016E": "U",
        "\u016F": "u",
        "\u0170": "U",
        "\u0171": "u",
        "\u0172": "U",
        "\u0173": "u",
        "\u0216": "U",
        "\u0217": "u",
        "V\u0306": "V",
        "v\u0306": "v",
        "\u0174": "W",
        "\u0175": "w",
        "\u1E82": "W",
        "\u1E83": "w",
        "X\u0306": "X",
        "x\u0306": "x",
        "\u0176": "Y",
        "\u0177": "y",
        "\u0178": "Y",
        "Y\u0306": "Y",
        "y\u0306": "y",
        "\u0179": "Z",
        "\u017A": "z",
        "\u017B": "Z",
        "\u017C": "z",
        "\u017D": "Z",
        "\u017E": "z",
        "\u017F": "s",
        "\u0192": "f",
        "\u01A0": "O",
        "\u01A1": "o",
        "\u01AF": "U",
        "\u01B0": "u",
        "\u01CD": "A",
        "\u01CE": "a",
        "\u01CF": "I",
        "\u01D0": "i",
        "\u01D1": "O",
        "\u01D2": "o",
        "\u01D3": "U",
        "\u01D4": "u",
        "\u01D5": "U",
        "\u01D6": "u",
        "\u01D7": "U",
        "\u01D8": "u",
        "\u01D9": "U",
        "\u01DA": "u",
        "\u01DB": "U",
        "\u01DC": "u",
        "\u1EE8": "U",
        "\u1EE9": "u",
        "\u1E78": "U",
        "\u1E79": "u",
        "\u01FA": "A",
        "\u01FB": "a",
        "\u01FC": "AE",
        "\u01FD": "ae",
        "\u01FE": "O",
        "\u01FF": "o",
        "\xDE": "TH",
        "\xFE": "th",
        "\u1E54": "P",
        "\u1E55": "p",
        "\u1E64": "S",
        "\u1E65": "s",
        "X\u0301": "X",
        "x\u0301": "x",
        "\u0403": "\u0413",
        "\u0453": "\u0433",
        "\u040C": "\u041A",
        "\u045C": "\u043A",
        "A\u030B": "A",
        "a\u030B": "a",
        "E\u030B": "E",
        "e\u030B": "e",
        "I\u030B": "I",
        "i\u030B": "i",
        "\u01F8": "N",
        "\u01F9": "n",
        "\u1ED2": "O",
        "\u1ED3": "o",
        "\u1E50": "O",
        "\u1E51": "o",
        "\u1EEA": "U",
        "\u1EEB": "u",
        "\u1E80": "W",
        "\u1E81": "w",
        "\u1EF2": "Y",
        "\u1EF3": "y",
        "\u0200": "A",
        "\u0201": "a",
        "\u0204": "E",
        "\u0205": "e",
        "\u0208": "I",
        "\u0209": "i",
        "\u020C": "O",
        "\u020D": "o",
        "\u0210": "R",
        "\u0211": "r",
        "\u0214": "U",
        "\u0215": "u",
        "B\u030C": "B",
        "b\u030C": "b",
        "\u010C\u0323": "C",
        "\u010D\u0323": "c",
        "\xCA\u030C": "E",
        "\xEA\u030C": "e",
        "F\u030C": "F",
        "f\u030C": "f",
        "\u01E6": "G",
        "\u01E7": "g",
        "\u021E": "H",
        "\u021F": "h",
        "J\u030C": "J",
        "\u01F0": "j",
        "\u01E8": "K",
        "\u01E9": "k",
        "M\u030C": "M",
        "m\u030C": "m",
        "P\u030C": "P",
        "p\u030C": "p",
        "Q\u030C": "Q",
        "q\u030C": "q",
        "\u0158\u0329": "R",
        "\u0159\u0329": "r",
        "\u1E66": "S",
        "\u1E67": "s",
        "V\u030C": "V",
        "v\u030C": "v",
        "W\u030C": "W",
        "w\u030C": "w",
        "X\u030C": "X",
        "x\u030C": "x",
        "Y\u030C": "Y",
        "y\u030C": "y",
        "A\u0327": "A",
        "a\u0327": "a",
        "B\u0327": "B",
        "b\u0327": "b",
        "\u1E10": "D",
        "\u1E11": "d",
        "\u0228": "E",
        "\u0229": "e",
        "\u0190\u0327": "E",
        "\u025B\u0327": "e",
        "\u1E28": "H",
        "\u1E29": "h",
        "I\u0327": "I",
        "i\u0327": "i",
        "\u0197\u0327": "I",
        "\u0268\u0327": "i",
        "M\u0327": "M",
        "m\u0327": "m",
        "O\u0327": "O",
        "o\u0327": "o",
        "Q\u0327": "Q",
        "q\u0327": "q",
        "U\u0327": "U",
        "u\u0327": "u",
        "X\u0327": "X",
        "x\u0327": "x",
        "Z\u0327": "Z",
        "z\u0327": "z",
        "\u0439": "\u0438",
        "\u0419": "\u0418",
        "\u0451": "\u0435",
        "\u0401": "\u0415"
      };
      var chars2 = Object.keys(characterMap).join("|");
      var allAccents = new RegExp(chars2, "g");
      var firstAccent = new RegExp(chars2, "");
      function matcher(match4) {
        return characterMap[match4];
      }
      var removeAccents5 = function(string) {
        return string.replace(allAccents, matcher);
      };
      var hasAccents = function(string) {
        return !!string.match(firstAccent);
      };
      module.exports = removeAccents5;
      module.exports.has = hasAccents;
      module.exports.remove = removeAccents5;
    }
  });

  // package-external:@wordpress/rich-text
  var require_rich_text = __commonJS({
    "package-external:@wordpress/rich-text"(exports, module) {
      module.exports = window.wp.richText;
    }
  });

  // package-external:@wordpress/a11y
  var require_a11y = __commonJS({
    "package-external:@wordpress/a11y"(exports, module) {
      module.exports = window.wp.a11y;
    }
  });

  // package-external:@wordpress/keycodes
  var require_keycodes = __commonJS({
    "package-external:@wordpress/keycodes"(exports, module) {
      module.exports = window.wp.keycodes;
    }
  });

  // package-external:@wordpress/is-shallow-equal
  var require_is_shallow_equal = __commonJS({
    "package-external:@wordpress/is-shallow-equal"(exports, module) {
      module.exports = window.wp.isShallowEqual;
    }
  });

  // node_modules/gradient-parser/build/node.js
  var require_node = __commonJS({
    "node_modules/gradient-parser/build/node.js"(exports) {
      var GradientParser = GradientParser || {};
      GradientParser.stringify = /* @__PURE__ */ (function() {
        var visitor = {
          "visit_linear-gradient": function(node2) {
            return visitor.visit_gradient(node2);
          },
          "visit_repeating-linear-gradient": function(node2) {
            return visitor.visit_gradient(node2);
          },
          "visit_radial-gradient": function(node2) {
            return visitor.visit_gradient(node2);
          },
          "visit_repeating-radial-gradient": function(node2) {
            return visitor.visit_gradient(node2);
          },
          "visit_gradient": function(node2) {
            var orientation = visitor.visit(node2.orientation);
            if (orientation) {
              orientation += ", ";
            }
            return node2.type + "(" + orientation + visitor.visit(node2.colorStops) + ")";
          },
          "visit_shape": function(node2) {
            var result = node2.value, at = visitor.visit(node2.at), style2 = visitor.visit(node2.style);
            if (style2) {
              result += " " + style2;
            }
            if (at) {
              result += " at " + at;
            }
            return result;
          },
          "visit_default-radial": function(node2) {
            var result = "", at = visitor.visit(node2.at);
            if (at) {
              result += at;
            }
            return result;
          },
          "visit_extent-keyword": function(node2) {
            var result = node2.value, at = visitor.visit(node2.at);
            if (at) {
              result += " at " + at;
            }
            return result;
          },
          "visit_position-keyword": function(node2) {
            return node2.value;
          },
          "visit_position": function(node2) {
            return visitor.visit(node2.value.x) + " " + visitor.visit(node2.value.y);
          },
          "visit_%": function(node2) {
            return node2.value + "%";
          },
          "visit_em": function(node2) {
            return node2.value + "em";
          },
          "visit_px": function(node2) {
            return node2.value + "px";
          },
          "visit_calc": function(node2) {
            return "calc(" + node2.value + ")";
          },
          "visit_literal": function(node2) {
            return visitor.visit_color(node2.value, node2);
          },
          "visit_hex": function(node2) {
            return visitor.visit_color("#" + node2.value, node2);
          },
          "visit_rgb": function(node2) {
            return visitor.visit_color("rgb(" + node2.value.join(", ") + ")", node2);
          },
          "visit_rgba": function(node2) {
            return visitor.visit_color("rgba(" + node2.value.join(", ") + ")", node2);
          },
          "visit_hsl": function(node2) {
            return visitor.visit_color("hsl(" + node2.value[0] + ", " + node2.value[1] + "%, " + node2.value[2] + "%)", node2);
          },
          "visit_hsla": function(node2) {
            return visitor.visit_color("hsla(" + node2.value[0] + ", " + node2.value[1] + "%, " + node2.value[2] + "%, " + node2.value[3] + ")", node2);
          },
          "visit_var": function(node2) {
            return visitor.visit_color("var(" + node2.value + ")", node2);
          },
          "visit_color": function(resultColor, node2) {
            var result = resultColor, length2 = visitor.visit(node2.length);
            if (length2) {
              result += " " + length2;
            }
            return result;
          },
          "visit_angular": function(node2) {
            return node2.value + "deg";
          },
          "visit_directional": function(node2) {
            return "to " + node2.value;
          },
          "visit_array": function(elements2) {
            var result = "", size3 = elements2.length;
            elements2.forEach(function(element, i3) {
              result += visitor.visit(element);
              if (i3 < size3 - 1) {
                result += ", ";
              }
            });
            return result;
          },
          "visit_object": function(obj) {
            if (obj.width && obj.height) {
              return visitor.visit(obj.width) + " " + visitor.visit(obj.height);
            }
            return "";
          },
          "visit": function(element) {
            if (!element) {
              return "";
            }
            var result = "";
            if (element instanceof Array) {
              return visitor.visit_array(element);
            } else if (typeof element === "object" && !element.type) {
              return visitor.visit_object(element);
            } else if (element.type) {
              var nodeVisitor = visitor["visit_" + element.type];
              if (nodeVisitor) {
                return nodeVisitor(element);
              } else {
                throw Error("Missing visitor visit_" + element.type);
              }
            } else {
              throw Error("Invalid node.");
            }
          }
        };
        return function(root) {
          return visitor.visit(root);
        };
      })();
      var GradientParser = GradientParser || {};
      GradientParser.parse = /* @__PURE__ */ (function() {
        var tokens = {
          linearGradient: /^(\-(webkit|o|ms|moz)\-)?(linear\-gradient)/i,
          repeatingLinearGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-linear\-gradient)/i,
          radialGradient: /^(\-(webkit|o|ms|moz)\-)?(radial\-gradient)/i,
          repeatingRadialGradient: /^(\-(webkit|o|ms|moz)\-)?(repeating\-radial\-gradient)/i,
          sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,
          extentKeywords: /^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,
          positionKeywords: /^(left|center|right|top|bottom)/i,
          pixelValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,
          percentageValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,
          emValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,
          angleValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,
          radianValue: /^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))rad/,
          startCall: /^\(/,
          endCall: /^\)/,
          comma: /^,/,
          hexColor: /^\#([0-9a-fA-F]+)/,
          literalColor: /^([a-zA-Z]+)/,
          rgbColor: /^rgb/i,
          rgbaColor: /^rgba/i,
          varColor: /^var/i,
          calcValue: /^calc/i,
          variableName: /^(--[a-zA-Z0-9-,\s\#]+)/,
          number: /^(([0-9]*\.[0-9]+)|([0-9]+\.?))/,
          hslColor: /^hsl/i,
          hslaColor: /^hsla/i
        };
        var input = "";
        function error(msg) {
          var err = new Error(input + ": " + msg);
          err.source = input;
          throw err;
        }
        function getAST() {
          var ast = matchListDefinitions();
          if (input.length > 0) {
            error("Invalid input not EOF");
          }
          return ast;
        }
        function matchListDefinitions() {
          return matchListing(matchDefinition);
        }
        function matchDefinition() {
          return matchGradient(
            "linear-gradient",
            tokens.linearGradient,
            matchLinearOrientation
          ) || matchGradient(
            "repeating-linear-gradient",
            tokens.repeatingLinearGradient,
            matchLinearOrientation
          ) || matchGradient(
            "radial-gradient",
            tokens.radialGradient,
            matchListRadialOrientations
          ) || matchGradient(
            "repeating-radial-gradient",
            tokens.repeatingRadialGradient,
            matchListRadialOrientations
          );
        }
        function matchGradient(gradientType, pattern, orientationMatcher) {
          return matchCall(pattern, function(captures) {
            var orientation = orientationMatcher();
            if (orientation) {
              if (!scan(tokens.comma)) {
                error("Missing comma before color stops");
              }
            }
            return {
              type: gradientType,
              orientation,
              colorStops: matchListing(matchColorStop)
            };
          });
        }
        function matchCall(pattern, callback) {
          var captures = scan(pattern);
          if (captures) {
            if (!scan(tokens.startCall)) {
              error("Missing (");
            }
            var result = callback(captures);
            if (!scan(tokens.endCall)) {
              error("Missing )");
            }
            return result;
          }
        }
        function matchLinearOrientation() {
          var sideOrCorner = matchSideOrCorner();
          if (sideOrCorner) {
            return sideOrCorner;
          }
          var legacyDirection = match4("position-keyword", tokens.positionKeywords, 1);
          if (legacyDirection) {
            return {
              type: "directional",
              value: legacyDirection.value
            };
          }
          return matchAngle();
        }
        function matchSideOrCorner() {
          return match4("directional", tokens.sideOrCorner, 1);
        }
        function matchAngle() {
          return match4("angular", tokens.angleValue, 1) || match4("angular", tokens.radianValue, 1);
        }
        function matchListRadialOrientations() {
          var radialOrientations, radialOrientation = matchRadialOrientation(), lookaheadCache;
          if (radialOrientation) {
            radialOrientations = [];
            radialOrientations.push(radialOrientation);
            lookaheadCache = input;
            if (scan(tokens.comma)) {
              radialOrientation = matchRadialOrientation();
              if (radialOrientation) {
                radialOrientations.push(radialOrientation);
              } else {
                input = lookaheadCache;
              }
            }
          }
          return radialOrientations;
        }
        function matchRadialOrientation() {
          var radialType = matchCircle() || matchEllipse();
          if (radialType) {
            radialType.at = matchAtPosition();
          } else {
            var extent = matchExtentKeyword();
            if (extent) {
              radialType = extent;
              var positionAt = matchAtPosition();
              if (positionAt) {
                radialType.at = positionAt;
              }
            } else {
              var atPosition = matchAtPosition();
              if (atPosition) {
                radialType = {
                  type: "default-radial",
                  at: atPosition
                };
              } else {
                var defaultPosition = matchPositioning();
                if (defaultPosition) {
                  radialType = {
                    type: "default-radial",
                    at: defaultPosition
                  };
                }
              }
            }
          }
          return radialType;
        }
        function matchCircle() {
          var circle = match4("shape", /^(circle)/i, 0);
          if (circle) {
            circle.style = matchLength() || matchExtentKeyword();
          }
          return circle;
        }
        function matchEllipse() {
          var ellipse = match4("shape", /^(ellipse)/i, 0);
          if (ellipse) {
            ellipse.style = matchPositioning() || matchDistance() || matchExtentKeyword();
          }
          return ellipse;
        }
        function matchExtentKeyword() {
          return match4("extent-keyword", tokens.extentKeywords, 1);
        }
        function matchAtPosition() {
          if (match4("position", /^at/, 0)) {
            var positioning = matchPositioning();
            if (!positioning) {
              error("Missing positioning value");
            }
            return positioning;
          }
        }
        function matchPositioning() {
          var location = matchCoordinates();
          if (location.x || location.y) {
            return {
              type: "position",
              value: location
            };
          }
        }
        function matchCoordinates() {
          return {
            x: matchDistance(),
            y: matchDistance()
          };
        }
        function matchListing(matcher) {
          var captures = matcher(), result = [];
          if (captures) {
            result.push(captures);
            while (scan(tokens.comma)) {
              captures = matcher();
              if (captures) {
                result.push(captures);
              } else {
                error("One extra comma");
              }
            }
          }
          return result;
        }
        function matchColorStop() {
          var color2 = matchColor();
          if (!color2) {
            error("Expected color definition");
          }
          color2.length = matchDistance();
          return color2;
        }
        function matchColor() {
          return matchHexColor() || matchHSLAColor() || matchHSLColor() || matchRGBAColor() || matchRGBColor() || matchVarColor() || matchLiteralColor();
        }
        function matchLiteralColor() {
          return match4("literal", tokens.literalColor, 0);
        }
        function matchHexColor() {
          return match4("hex", tokens.hexColor, 1);
        }
        function matchRGBColor() {
          return matchCall(tokens.rgbColor, function() {
            return {
              type: "rgb",
              value: matchListing(matchNumber)
            };
          });
        }
        function matchRGBAColor() {
          return matchCall(tokens.rgbaColor, function() {
            return {
              type: "rgba",
              value: matchListing(matchNumber)
            };
          });
        }
        function matchVarColor() {
          return matchCall(tokens.varColor, function() {
            return {
              type: "var",
              value: matchVariableName()
            };
          });
        }
        function matchHSLColor() {
          return matchCall(tokens.hslColor, function() {
            var lookahead = scan(tokens.percentageValue);
            if (lookahead) {
              error("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");
            }
            var hue = matchNumber();
            scan(tokens.comma);
            var captures = scan(tokens.percentageValue);
            var sat = captures ? captures[1] : null;
            scan(tokens.comma);
            captures = scan(tokens.percentageValue);
            var light = captures ? captures[1] : null;
            if (!sat || !light) {
              error("Expected percentage value for saturation and lightness in HSL");
            }
            return {
              type: "hsl",
              value: [hue, sat, light]
            };
          });
        }
        function matchHSLAColor() {
          return matchCall(tokens.hslaColor, function() {
            var hue = matchNumber();
            scan(tokens.comma);
            var captures = scan(tokens.percentageValue);
            var sat = captures ? captures[1] : null;
            scan(tokens.comma);
            captures = scan(tokens.percentageValue);
            var light = captures ? captures[1] : null;
            scan(tokens.comma);
            var alpha2 = matchNumber();
            if (!sat || !light) {
              error("Expected percentage value for saturation and lightness in HSLA");
            }
            return {
              type: "hsla",
              value: [hue, sat, light, alpha2]
            };
          });
        }
        function matchPercentage() {
          var captures = scan(tokens.percentageValue);
          return captures ? captures[1] : null;
        }
        function matchVariableName() {
          return scan(tokens.variableName)[1];
        }
        function matchNumber() {
          return scan(tokens.number)[1];
        }
        function matchDistance() {
          return match4("%", tokens.percentageValue, 1) || matchPositionKeyword() || matchCalc() || matchLength();
        }
        function matchPositionKeyword() {
          return match4("position-keyword", tokens.positionKeywords, 1);
        }
        function matchCalc() {
          return matchCall(tokens.calcValue, function() {
            var openParenCount = 1;
            var i3 = 0;
            while (openParenCount > 0 && i3 < input.length) {
              var char2 = input.charAt(i3);
              if (char2 === "(") {
                openParenCount++;
              } else if (char2 === ")") {
                openParenCount--;
              }
              i3++;
            }
            if (openParenCount > 0) {
              error("Missing closing parenthesis in calc() expression");
            }
            var calcContent = input.substring(0, i3 - 1);
            consume(i3 - 1);
            return {
              type: "calc",
              value: calcContent
            };
          });
        }
        function matchLength() {
          return match4("px", tokens.pixelValue, 1) || match4("em", tokens.emValue, 1);
        }
        function match4(type, pattern, captureIndex) {
          var captures = scan(pattern);
          if (captures) {
            return {
              type,
              value: captures[captureIndex]
            };
          }
        }
        function scan(regexp) {
          var captures, blankCaptures;
          blankCaptures = /^[\n\r\t\s]+/.exec(input);
          if (blankCaptures) {
            consume(blankCaptures[0].length);
          }
          captures = regexp.exec(input);
          if (captures) {
            consume(captures[0].length);
          }
          return captures;
        }
        function consume(size3) {
          input = input.substr(size3);
        }
        return function(code) {
          input = code.toString().trim();
          if (input.endsWith(";")) {
            input = input.slice(0, -1);
          }
          return getAST();
        };
      })();
      exports.parse = GradientParser.parse;
      exports.stringify = GradientParser.stringify;
    }
  });

  // package-external:@wordpress/dom
  var require_dom = __commonJS({
    "package-external:@wordpress/dom"(exports, module) {
      module.exports = window.wp.dom;
    }
  });

  // package-external:@wordpress/date
  var require_date = __commonJS({
    "package-external:@wordpress/date"(exports, module) {
      module.exports = window.wp.date;
    }
  });

  // package-external:@wordpress/escape-html
  var require_escape_html = __commonJS({
    "package-external:@wordpress/escape-html"(exports, module) {
      module.exports = window.wp.escapeHtml;
    }
  });

  // package-external:@wordpress/html-entities
  var require_html_entities = __commonJS({
    "package-external:@wordpress/html-entities"(exports, module) {
      module.exports = window.wp.htmlEntities;
    }
  });

  // node_modules/fast-memoize/src/index.js
  var require_src = __commonJS({
    "node_modules/fast-memoize/src/index.js"(exports, module) {
      function memoize3(fn, options2) {
        var cache2 = options2 && options2.cache ? options2.cache : cacheDefault;
        var serializer = options2 && options2.serializer ? options2.serializer : serializerDefault;
        var strategy = options2 && options2.strategy ? options2.strategy : strategyDefault;
        return strategy(fn, {
          cache: cache2,
          serializer
        });
      }
      function isPrimitive(value) {
        return value == null || typeof value === "number" || typeof value === "boolean";
      }
      function monadic(fn, cache2, serializer, arg) {
        var cacheKey = isPrimitive(arg) ? arg : serializer(arg);
        var computedValue = cache2.get(cacheKey);
        if (typeof computedValue === "undefined") {
          computedValue = fn.call(this, arg);
          cache2.set(cacheKey, computedValue);
        }
        return computedValue;
      }
      function variadic(fn, cache2, serializer) {
        var args = Array.prototype.slice.call(arguments, 3);
        var cacheKey = serializer(args);
        var computedValue = cache2.get(cacheKey);
        if (typeof computedValue === "undefined") {
          computedValue = fn.apply(this, args);
          cache2.set(cacheKey, computedValue);
        }
        return computedValue;
      }
      function assemble(fn, context, strategy, cache2, serialize2) {
        return strategy.bind(
          context,
          fn,
          cache2,
          serialize2
        );
      }
      function strategyDefault(fn, options2) {
        var strategy = fn.length === 1 ? monadic : variadic;
        return assemble(
          fn,
          this,
          strategy,
          options2.cache.create(),
          options2.serializer
        );
      }
      function strategyVariadic(fn, options2) {
        var strategy = variadic;
        return assemble(
          fn,
          this,
          strategy,
          options2.cache.create(),
          options2.serializer
        );
      }
      function strategyMonadic(fn, options2) {
        var strategy = monadic;
        return assemble(
          fn,
          this,
          strategy,
          options2.cache.create(),
          options2.serializer
        );
      }
      function serializerDefault() {
        return JSON.stringify(arguments);
      }
      function ObjectWithoutPrototypeCache() {
        this.cache = /* @__PURE__ */ Object.create(null);
      }
      ObjectWithoutPrototypeCache.prototype.has = function(key) {
        return key in this.cache;
      };
      ObjectWithoutPrototypeCache.prototype.get = function(key) {
        return this.cache[key];
      };
      ObjectWithoutPrototypeCache.prototype.set = function(key, value) {
        this.cache[key] = value;
      };
      var cacheDefault = {
        create: function create2() {
          return new ObjectWithoutPrototypeCache();
        }
      };
      module.exports = memoize3;
      module.exports.strategies = {
        variadic: strategyVariadic,
        monadic: strategyMonadic
      };
    }
  });

  // package-external:@wordpress/hooks
  var require_hooks = __commonJS({
    "package-external:@wordpress/hooks"(exports, module) {
      module.exports = window.wp.hooks;
    }
  });

  // package-external:@wordpress/private-apis
  var require_private_apis = __commonJS({
    "package-external:@wordpress/private-apis"(exports, module) {
      module.exports = window.wp.privateApis;
    }
  });

  // packages/components/build-module/index.mjs
  var index_exports = {};
  __export(index_exports, {
    AlignmentMatrixControl: () => alignment_matrix_control_default,
    AnglePickerControl: () => angle_picker_control_default,
    Animate: () => animate_default,
    Autocomplete: () => Autocomplete,
    BaseControl: () => base_control_default,
    BlockQuotation: () => import_primitives36.BlockQuotation,
    BorderBoxControl: () => component_default24,
    BorderControl: () => component_default21,
    BoxControl: () => box_control_default,
    Button: () => button_default,
    ButtonGroup: () => button_group_default,
    Card: () => component_default27,
    CardBody: () => component_default29,
    CardDivider: () => component_default31,
    CardFooter: () => component_default32,
    CardHeader: () => component_default33,
    CardMedia: () => component_default34,
    CheckboxControl: () => checkbox_control_default,
    Circle: () => import_primitives36.Circle,
    ClipboardButton: () => ClipboardButton,
    ColorIndicator: () => color_indicator_default,
    ColorPalette: () => color_palette_default,
    ColorPicker: () => LegacyAdapter,
    ComboboxControl: () => combobox_control_default,
    Composite: () => Composite22,
    CustomGradientPicker: () => custom_gradient_picker_default,
    CustomSelectControl: () => custom_select_control_default,
    Dashicon: () => dashicon_default,
    DatePicker: () => date_default,
    DateTimePicker: () => date_time_default2,
    Disabled: () => disabled_default,
    Draggable: () => draggable_default,
    DropZone: () => drop_zone_default,
    DropZoneProvider: () => DropZoneProvider,
    Dropdown: () => dropdown_default,
    DropdownMenu: () => dropdown_menu_default,
    DuotonePicker: () => duotone_picker_default,
    DuotoneSwatch: () => duotone_swatch_default,
    ExternalLink: () => external_link_default,
    Fill: () => Fill,
    Flex: () => component_default3,
    FlexBlock: () => component_default5,
    FlexItem: () => component_default4,
    FocalPointPicker: () => focal_point_picker_default,
    FocusReturnProvider: () => Provider3,
    FocusableIframe: () => FocusableIframe,
    FontSizePicker: () => font_size_picker_default,
    FormFileUpload: () => form_file_upload_default,
    FormToggle: () => form_toggle_default,
    FormTokenField: () => form_token_field_default,
    G: () => import_primitives36.G,
    GradientPicker: () => gradient_picker_default,
    Guide: () => guide_default,
    GuidePage: () => GuidePage,
    HorizontalRule: () => import_primitives36.HorizontalRule,
    Icon: () => icon_default3,
    IconButton: () => deprecated_default,
    IsolatedEventContainer: () => isolated_event_container_default,
    KeyboardShortcuts: () => keyboard_shortcuts_default,
    Line: () => import_primitives36.Line,
    MenuGroup: () => menu_group_default,
    MenuItem: () => menu_item_default,
    MenuItemsChoice: () => menu_items_choice_default,
    Modal: () => modal_default,
    NavigableMenu: () => menu_default2,
    Navigator: () => Navigator3,
    Notice: () => notice_default,
    NoticeList: () => list_default,
    Panel: () => panel_default,
    PanelBody: () => body_default,
    PanelHeader: () => header_default,
    PanelRow: () => row_default,
    Path: () => import_primitives36.Path,
    Placeholder: () => placeholder_default,
    Polygon: () => import_primitives36.Polygon,
    Popover: () => popover_default,
    ProgressBar: () => progress_bar_default,
    QueryControls: () => query_controls_default,
    RadioControl: () => radio_control_default,
    RangeControl: () => range_control_default,
    Rect: () => import_primitives36.Rect,
    ResizableBox: () => resizable_box_default,
    ResponsiveWrapper: () => responsive_wrapper_default,
    SVG: () => import_primitives36.SVG,
    SandBox: () => sandbox_default,
    ScrollLock: () => scroll_lock_default,
    SearchControl: () => search_control_default,
    SelectControl: () => select_control_default,
    Slot: () => Slot3,
    SlotFillProvider: () => Provider,
    Snackbar: () => snackbar_default,
    SnackbarList: () => list_default2,
    Spinner: () => spinner_default,
    TabPanel: () => tab_panel_default,
    TabbableContainer: () => tabbable_default,
    TextControl: () => text_control_default,
    TextHighlight: () => text_highlight_default,
    TextareaControl: () => textarea_control_default,
    TimePicker: () => time_default,
    Tip: () => tip_default2,
    ToggleControl: () => toggle_control_default,
    Toolbar: () => toolbar_default,
    ToolbarButton: () => toolbar_button_default,
    ToolbarDropdownMenu: () => toolbar_dropdown_menu_default,
    ToolbarGroup: () => toolbar_group_default,
    ToolbarItem: () => toolbar_item_default,
    Tooltip: () => tooltip_default,
    TreeSelect: () => tree_select_default,
    VisuallyHidden: () => component_default2,
    __experimentalAlignmentMatrixControl: () => alignment_matrix_control_default,
    __experimentalApplyValueToSides: () => applyValueToSides,
    __experimentalBorderBoxControl: () => component_default24,
    __experimentalBorderControl: () => component_default21,
    __experimentalBoxControl: () => box_control_default,
    __experimentalConfirmDialog: () => component_default37,
    __experimentalDivider: () => component_default30,
    __experimentalDropdownContentWrapper: () => dropdown_content_wrapper_default,
    __experimentalElevation: () => component_default25,
    __experimentalGrid: () => component_default22,
    __experimentalHStack: () => component_default9,
    __experimentalHasSplitBorders: () => hasSplitBorders,
    __experimentalHeading: () => component_default19,
    __experimentalInputControl: () => input_control_default,
    __experimentalInputControlPrefixWrapper: () => input_prefix_wrapper_default,
    __experimentalInputControlSuffixWrapper: () => input_suffix_wrapper_default,
    __experimentalIsDefinedBorder: () => isDefinedBorder,
    __experimentalIsEmptyBorder: () => isEmptyBorder,
    __experimentalItem: () => component_default35,
    __experimentalItemGroup: () => component_default36,
    __experimentalNavigation: () => navigation_default,
    __experimentalNavigationBackButton: () => back_button_default,
    __experimentalNavigationGroup: () => group_default,
    __experimentalNavigationItem: () => item_default2,
    __experimentalNavigationMenu: () => menu_default3,
    __experimentalNavigatorBackButton: () => NavigatorBackButton2,
    __experimentalNavigatorButton: () => NavigatorButton2,
    __experimentalNavigatorProvider: () => NavigatorProvider,
    __experimentalNavigatorScreen: () => NavigatorScreen2,
    __experimentalNavigatorToParentButton: () => NavigatorToParentButton2,
    __experimentalNumberControl: () => number_control_default,
    __experimentalPaletteEdit: () => palette_edit_default,
    __experimentalParseQuantityAndUnitFromRawValue: () => parseQuantityAndUnitFromRawValue,
    __experimentalRadio: () => radio_default,
    __experimentalRadioGroup: () => radio_group_default,
    __experimentalScrollable: () => component_default28,
    __experimentalSpacer: () => component_default6,
    __experimentalStyleProvider: () => style_provider_default,
    __experimentalSurface: () => component_default26,
    __experimentalText: () => component_default8,
    __experimentalToggleGroupControl: () => component_default12,
    __experimentalToggleGroupControlOption: () => component_default14,
    __experimentalToggleGroupControlOptionIcon: () => component_default15,
    __experimentalToolbarContext: () => toolbar_context_default,
    __experimentalToolsPanel: () => component_default39,
    __experimentalToolsPanelContext: () => ToolsPanelContext,
    __experimentalToolsPanelItem: () => component_default40,
    __experimentalTreeGrid: () => tree_grid_default,
    __experimentalTreeGridCell: () => cell_default,
    __experimentalTreeGridItem: () => item_default3,
    __experimentalTreeGridRow: () => row_default2,
    __experimentalTruncate: () => component_default7,
    __experimentalUnitControl: () => unit_control_default,
    __experimentalUseCustomUnits: () => useCustomUnits,
    __experimentalUseNavigator: () => useNavigator,
    __experimentalUseSlot: () => useSlot,
    __experimentalUseSlotFills: () => useSlotFills,
    __experimentalVStack: () => component_default18,
    __experimentalView: () => component_default,
    __experimentalZStack: () => component_default41,
    __unstableAnimatePresence: () => AnimatePresence,
    __unstableComposite: () => Composite4,
    __unstableCompositeGroup: () => CompositeGroup4,
    __unstableCompositeItem: () => CompositeItem4,
    __unstableDisclosureContent: () => DisclosureContent22,
    __unstableGetAnimateClassName: () => getAnimateClassName,
    __unstableMotion: () => motion,
    __unstableUseAutocompleteProps: () => useAutocompleteProps,
    __unstableUseCompositeState: () => useCompositeState,
    __unstableUseNavigateRegions: () => useNavigateRegions,
    createSlotFill: () => createSlotFill,
    navigateRegions: () => navigate_regions_default,
    privateApis: () => privateApis,
    useBaseControlProps: () => useBaseControlProps,
    useNavigator: () => useNavigator,
    withConstrainedTabbing: () => with_constrained_tabbing_default,
    withFallbackStyles: () => with_fallback_styles_default,
    withFilters: () => withFilters,
    withFocusOutside: () => with_focus_outside_default,
    withFocusReturn: () => with_focus_return_default,
    withNotices: () => with_notices_default,
    withSpokenMessages: () => with_spoken_messages_default
  });
  var import_primitives36 = __toESM(require_primitives(), 1);

  // node_modules/clsx/dist/clsx.mjs
  function r(e3) {
    var t4, f3, n3 = "";
    if ("string" == typeof e3 || "number" == typeof e3) n3 += e3;
    else if ("object" == typeof e3) if (Array.isArray(e3)) {
      var o4 = e3.length;
      for (t4 = 0; t4 < o4; t4++) e3[t4] && (f3 = r(e3[t4])) && (n3 && (n3 += " "), n3 += f3);
    } else for (f3 in e3) e3[f3] && (n3 && (n3 += " "), n3 += f3);
    return n3;
  }
  function clsx() {
    for (var e3, t4, f3 = 0, n3 = "", o4 = arguments.length; f3 < o4; f3++) (e3 = arguments[f3]) && (t4 = r(e3)) && (n3 && (n3 += " "), n3 += t4);
    return n3;
  }
  var clsx_default = clsx;

  // packages/components/build-module/alignment-matrix-control/index.mjs
  var import_i18n4 = __toESM(require_i18n(), 1);
  var import_compose2 = __toESM(require_compose(), 1);
  var import_element18 = __toESM(require_element(), 1);

  // node_modules/@ariakit/core/esm/__chunks/XMCVU3LR.js
  function noop(..._2) {
  }
  function shallowEqual(a3, b3) {
    if (a3 === b3) return true;
    if (!a3) return false;
    if (!b3) return false;
    if (typeof a3 !== "object") return false;
    if (typeof b3 !== "object") return false;
    const aKeys = Object.keys(a3);
    const bKeys = Object.keys(b3);
    const { length: length2 } = aKeys;
    if (bKeys.length !== length2) return false;
    for (const key of aKeys) {
      if (a3[key] !== b3[key]) {
        return false;
      }
    }
    return true;
  }
  function applyState(argument, currentValue) {
    if (isUpdater(argument)) {
      const value = isLazyValue(currentValue) ? currentValue() : currentValue;
      return argument(value);
    }
    return argument;
  }
  function isUpdater(argument) {
    return typeof argument === "function";
  }
  function isLazyValue(value) {
    return typeof value === "function";
  }
  function hasOwnProperty(object, prop) {
    if (typeof Object.hasOwn === "function") {
      return Object.hasOwn(object, prop);
    }
    return Object.prototype.hasOwnProperty.call(object, prop);
  }
  function chain(...fns) {
    return (...args) => {
      for (const fn of fns) {
        if (typeof fn === "function") {
          fn(...args);
        }
      }
    };
  }
  function normalizeString(str) {
    return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
  }
  function omit(object, keys) {
    const result = { ...object };
    for (const key of keys) {
      if (hasOwnProperty(result, key)) {
        delete result[key];
      }
    }
    return result;
  }
  function pick(object, paths) {
    const result = {};
    for (const key of paths) {
      if (hasOwnProperty(object, key)) {
        result[key] = object[key];
      }
    }
    return result;
  }
  function identity(value) {
    return value;
  }
  function invariant(condition, message2) {
    if (condition) return;
    if (typeof message2 !== "string") throw new Error("Invariant failed");
    throw new Error(message2);
  }
  function getKeys(obj) {
    return Object.keys(obj);
  }
  function isFalsyBooleanCallback(booleanOrCallback, ...args) {
    const result = typeof booleanOrCallback === "function" ? booleanOrCallback(...args) : booleanOrCallback;
    if (result == null) return false;
    return !result;
  }
  function disabledFromProps(props) {
    return props.disabled || props["aria-disabled"] === true || props["aria-disabled"] === "true";
  }
  function removeUndefinedValues(obj) {
    const result = {};
    for (const key in obj) {
      if (obj[key] !== void 0) {
        result[key] = obj[key];
      }
    }
    return result;
  }
  function defaultValue(...values) {
    for (const value of values) {
      if (value !== void 0) return value;
    }
    return void 0;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/YXGXYGQX.js
  var import_react = __toESM(require_react(), 1);
  function setRef(ref, value) {
    if (typeof ref === "function") {
      ref(value);
    } else if (ref) {
      ref.current = value;
    }
  }
  function isValidElementWithRef(element) {
    if (!element) return false;
    if (!(0, import_react.isValidElement)(element)) return false;
    if ("ref" in element.props) return true;
    if ("ref" in element) return true;
    return false;
  }
  function getRefProperty(element) {
    if (!isValidElementWithRef(element)) return null;
    const props = { ...element.props };
    return props.ref || element.ref;
  }
  function mergeProps(base, overrides) {
    const props = { ...base };
    for (const key in overrides) {
      if (!hasOwnProperty(overrides, key)) continue;
      if (key === "className") {
        const prop = "className";
        props[prop] = base[prop] ? `${base[prop]} ${overrides[prop]}` : overrides[prop];
        continue;
      }
      if (key === "style") {
        const prop = "style";
        props[prop] = base[prop] ? { ...base[prop], ...overrides[prop] } : overrides[prop];
        continue;
      }
      const overrideValue = overrides[key];
      if (typeof overrideValue === "function" && key.startsWith("on")) {
        const baseValue = base[key];
        if (typeof baseValue === "function") {
          props[key] = (...args) => {
            overrideValue(...args);
            baseValue(...args);
          };
          continue;
        }
      }
      props[key] = overrideValue;
    }
    return props;
  }

  // node_modules/@ariakit/core/esm/__chunks/3DNM6L6E.js
  var canUseDOM = checkIsBrowser();
  function checkIsBrowser() {
    var _a;
    return typeof window !== "undefined" && !!((_a = window.document) == null ? void 0 : _a.createElement);
  }
  function getDocument(node2) {
    if (!node2) return document;
    if ("self" in node2) return node2.document;
    return node2.ownerDocument || document;
  }
  function getWindow(node2) {
    if (!node2) return self;
    if ("self" in node2) return node2.self;
    return getDocument(node2).defaultView || window;
  }
  function getActiveElement(node2, activeDescendant = false) {
    var _a;
    const { activeElement } = getDocument(node2);
    if (!(activeElement == null ? void 0 : activeElement.nodeName)) {
      return null;
    }
    if (isFrame(activeElement) && ((_a = activeElement.contentDocument) == null ? void 0 : _a.body)) {
      return getActiveElement(
        activeElement.contentDocument.body,
        activeDescendant
      );
    }
    if (activeDescendant) {
      const id3 = activeElement.getAttribute("aria-activedescendant");
      if (id3) {
        const element = getDocument(activeElement).getElementById(id3);
        if (element) {
          return element;
        }
      }
    }
    return activeElement;
  }
  function contains(parent, child) {
    return parent === child || parent.contains(child);
  }
  function isFrame(element) {
    return element.tagName === "IFRAME";
  }
  function isButton(element) {
    const tagName = element.tagName.toLowerCase();
    if (tagName === "button") return true;
    if (tagName === "input" && element.type) {
      return buttonInputTypes.indexOf(element.type) !== -1;
    }
    return false;
  }
  var buttonInputTypes = [
    "button",
    "color",
    "file",
    "image",
    "reset",
    "submit"
  ];
  function isVisible(element) {
    if (typeof element.checkVisibility === "function") {
      return element.checkVisibility();
    }
    const htmlElement = element;
    return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;
  }
  function isTextField(element) {
    try {
      const isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;
      const isTextArea = element.tagName === "TEXTAREA";
      return isTextInput || isTextArea || false;
    } catch (_error) {
      return false;
    }
  }
  function isTextbox(element) {
    return element.isContentEditable || isTextField(element);
  }
  function getTextboxValue(element) {
    if (isTextField(element)) {
      return element.value;
    }
    if (element.isContentEditable) {
      const range = getDocument(element).createRange();
      range.selectNodeContents(element);
      return range.toString();
    }
    return "";
  }
  function getTextboxSelection(element) {
    let start = 0;
    let end = 0;
    if (isTextField(element)) {
      start = element.selectionStart || 0;
      end = element.selectionEnd || 0;
    } else if (element.isContentEditable) {
      const selection = getDocument(element).getSelection();
      if ((selection == null ? void 0 : selection.rangeCount) && selection.anchorNode && contains(element, selection.anchorNode) && selection.focusNode && contains(element, selection.focusNode)) {
        const range = selection.getRangeAt(0);
        const nextRange = range.cloneRange();
        nextRange.selectNodeContents(element);
        nextRange.setEnd(range.startContainer, range.startOffset);
        start = nextRange.toString().length;
        nextRange.setEnd(range.endContainer, range.endOffset);
        end = nextRange.toString().length;
      }
    }
    return { start, end };
  }
  function getPopupRole(element, fallback) {
    const allowedPopupRoles = ["dialog", "menu", "listbox", "tree", "grid"];
    const role = element == null ? void 0 : element.getAttribute("role");
    if (role && allowedPopupRoles.indexOf(role) !== -1) {
      return role;
    }
    return fallback;
  }
  function getPopupItemRole(element, fallback) {
    var _a;
    const itemRoleByPopupRole = {
      menu: "menuitem",
      listbox: "option",
      tree: "treeitem"
    };
    const popupRole = getPopupRole(element);
    if (!popupRole) return fallback;
    const key = popupRole;
    return (_a = itemRoleByPopupRole[key]) != null ? _a : fallback;
  }
  function getScrollingElement(element) {
    if (!element) return null;
    const isScrollableOverflow = (overflow) => {
      if (overflow === "auto") return true;
      if (overflow === "scroll") return true;
      return false;
    };
    if (element.clientHeight && element.scrollHeight > element.clientHeight) {
      const { overflowY } = getComputedStyle(element);
      if (isScrollableOverflow(overflowY)) return element;
    } else if (element.clientWidth && element.scrollWidth > element.clientWidth) {
      const { overflowX } = getComputedStyle(element);
      if (isScrollableOverflow(overflowX)) return element;
    }
    return getScrollingElement(element.parentElement) || document.scrollingElement || document.body;
  }
  function sortBasedOnDOMPosition(items, getElement) {
    const pairs = items.map((item2, index2) => [index2, item2]);
    let isOrderDifferent = false;
    pairs.sort(([indexA, a3], [indexB, b3]) => {
      const elementA = getElement(a3);
      const elementB = getElement(b3);
      if (elementA === elementB) return 0;
      if (!elementA || !elementB) return 0;
      if (isElementPreceding(elementA, elementB)) {
        if (indexA > indexB) {
          isOrderDifferent = true;
        }
        return -1;
      }
      if (indexA < indexB) {
        isOrderDifferent = true;
      }
      return 1;
    });
    if (isOrderDifferent) {
      return pairs.map(([_2, item2]) => item2);
    }
    return items;
  }
  function isElementPreceding(a3, b3) {
    return Boolean(
      b3.compareDocumentPosition(a3) & Node.DOCUMENT_POSITION_PRECEDING
    );
  }

  // node_modules/@ariakit/core/esm/__chunks/SNHYQNEZ.js
  function isTouchDevice() {
    return canUseDOM && !!navigator.maxTouchPoints;
  }
  function isApple() {
    if (!canUseDOM) return false;
    return /mac|iphone|ipad|ipod/i.test(navigator.platform);
  }
  function isSafari() {
    return canUseDOM && isApple() && /apple/i.test(navigator.vendor);
  }
  function isFirefox() {
    return canUseDOM && /firefox\//i.test(navigator.userAgent);
  }
  function isMac() {
    return canUseDOM && navigator.platform.startsWith("Mac") && !isTouchDevice();
  }

  // node_modules/@ariakit/core/esm/utils/events.js
  function isPortalEvent(event) {
    return Boolean(
      event.currentTarget && !contains(event.currentTarget, event.target)
    );
  }
  function isSelfTarget(event) {
    return event.target === event.currentTarget;
  }
  function isOpeningInNewTab(event) {
    const element = event.currentTarget;
    if (!element) return false;
    const isAppleDevice = isApple();
    if (isAppleDevice && !event.metaKey) return false;
    if (!isAppleDevice && !event.ctrlKey) return false;
    const tagName = element.tagName.toLowerCase();
    if (tagName === "a") return true;
    if (tagName === "button" && element.type === "submit") return true;
    if (tagName === "input" && element.type === "submit") return true;
    return false;
  }
  function isDownloading(event) {
    const element = event.currentTarget;
    if (!element) return false;
    const tagName = element.tagName.toLowerCase();
    if (!event.altKey) return false;
    if (tagName === "a") return true;
    if (tagName === "button" && element.type === "submit") return true;
    if (tagName === "input" && element.type === "submit") return true;
    return false;
  }
  function fireEvent(element, type, eventInit) {
    const event = new Event(type, eventInit);
    return element.dispatchEvent(event);
  }
  function fireBlurEvent(element, eventInit) {
    const event = new FocusEvent("blur", eventInit);
    const defaultAllowed = element.dispatchEvent(event);
    const bubbleInit = { ...eventInit, bubbles: true };
    element.dispatchEvent(new FocusEvent("focusout", bubbleInit));
    return defaultAllowed;
  }
  function fireKeyboardEvent(element, type, eventInit) {
    const event = new KeyboardEvent(type, eventInit);
    return element.dispatchEvent(event);
  }
  function fireClickEvent(element, eventInit) {
    const event = new MouseEvent("click", eventInit);
    return element.dispatchEvent(event);
  }
  function isFocusEventOutside(event, container) {
    const containerElement = container || event.currentTarget;
    const relatedTarget = event.relatedTarget;
    return !relatedTarget || !contains(containerElement, relatedTarget);
  }
  function queueBeforeEvent(element, type, callback, timeout) {
    const createTimer = (callback2) => {
      if (timeout) {
        const timerId2 = setTimeout(callback2, timeout);
        return () => clearTimeout(timerId2);
      }
      const timerId = requestAnimationFrame(callback2);
      return () => cancelAnimationFrame(timerId);
    };
    const cancelTimer = createTimer(() => {
      element.removeEventListener(type, callSync, true);
      callback();
    });
    const callSync = () => {
      cancelTimer();
      callback();
    };
    element.addEventListener(type, callSync, { once: true, capture: true });
    return cancelTimer;
  }
  function addGlobalEventListener(type, listener, options2, scope = window) {
    const children = [];
    try {
      scope.document.addEventListener(type, listener, options2);
      for (const frame2 of Array.from(scope.frames)) {
        children.push(addGlobalEventListener(type, listener, options2, frame2));
      }
    } catch (e3) {
    }
    const removeEventListener = () => {
      try {
        scope.document.removeEventListener(type, listener, options2);
      } catch (e3) {
      }
      for (const remove of children) {
        remove();
      }
    };
    return removeEventListener;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/KPHZR4MB.js
  var React = __toESM(require_react(), 1);
  var import_react2 = __toESM(require_react(), 1);
  var _React = { ...React };
  var useReactId = _React.useId;
  var useReactDeferredValue = _React.useDeferredValue;
  var useReactInsertionEffect = _React.useInsertionEffect;
  var useSafeLayoutEffect = canUseDOM ? import_react2.useLayoutEffect : import_react2.useEffect;
  function useInitialValue(value) {
    const [initialValue2] = (0, import_react2.useState)(value);
    return initialValue2;
  }
  function useLiveRef(value) {
    const ref = (0, import_react2.useRef)(value);
    useSafeLayoutEffect(() => {
      ref.current = value;
    });
    return ref;
  }
  function useEvent(callback) {
    const ref = (0, import_react2.useRef)(() => {
      throw new Error("Cannot call an event handler while rendering.");
    });
    if (useReactInsertionEffect) {
      useReactInsertionEffect(() => {
        ref.current = callback;
      });
    } else {
      ref.current = callback;
    }
    return (0, import_react2.useCallback)((...args) => {
      var _a;
      return (_a = ref.current) == null ? void 0 : _a.call(ref, ...args);
    }, []);
  }
  function useTransactionState(callback) {
    const [state, setState] = (0, import_react2.useState)(null);
    useSafeLayoutEffect(() => {
      if (state == null) return;
      if (!callback) return;
      let prevState = null;
      callback((prev2) => {
        prevState = prev2;
        return state;
      });
      return () => {
        callback(prevState);
      };
    }, [state, callback]);
    return [state, setState];
  }
  function useMergeRefs(...refs) {
    return (0, import_react2.useMemo)(() => {
      if (!refs.some(Boolean)) return;
      return (value) => {
        for (const ref of refs) {
          setRef(ref, value);
        }
      };
    }, refs);
  }
  function useId(defaultId) {
    if (useReactId) {
      const reactId = useReactId();
      if (defaultId) return defaultId;
      return reactId;
    }
    const [id3, setId] = (0, import_react2.useState)(defaultId);
    useSafeLayoutEffect(() => {
      if (defaultId || id3) return;
      const random = Math.random().toString(36).slice(2, 8);
      setId(`id-${random}`);
    }, [defaultId, id3]);
    return defaultId || id3;
  }
  function useTagName(refOrElement, type) {
    const stringOrUndefined = (type2) => {
      if (typeof type2 !== "string") return;
      return type2;
    };
    const [tagName, setTagName] = (0, import_react2.useState)(() => stringOrUndefined(type));
    useSafeLayoutEffect(() => {
      const element = refOrElement && "current" in refOrElement ? refOrElement.current : refOrElement;
      setTagName((element == null ? void 0 : element.tagName.toLowerCase()) || stringOrUndefined(type));
    }, [refOrElement, type]);
    return tagName;
  }
  function useAttribute(refOrElement, attributeName, defaultValue2) {
    const initialValue2 = useInitialValue(defaultValue2);
    const [attribute, setAttribute2] = (0, import_react2.useState)(initialValue2);
    (0, import_react2.useEffect)(() => {
      const element = refOrElement && "current" in refOrElement ? refOrElement.current : refOrElement;
      if (!element) return;
      const callback = () => {
        const value = element.getAttribute(attributeName);
        setAttribute2(value == null ? initialValue2 : value);
      };
      const observer = new MutationObserver(callback);
      observer.observe(element, { attributeFilter: [attributeName] });
      callback();
      return () => observer.disconnect();
    }, [refOrElement, attributeName, initialValue2]);
    return attribute;
  }
  function useUpdateEffect(effect, deps) {
    const mounted = (0, import_react2.useRef)(false);
    (0, import_react2.useEffect)(() => {
      if (mounted.current) {
        return effect();
      }
      mounted.current = true;
    }, deps);
    (0, import_react2.useEffect)(
      () => () => {
        mounted.current = false;
      },
      []
    );
  }
  function useForceUpdate() {
    return (0, import_react2.useReducer)(() => [], []);
  }
  function useBooleanEvent(booleanOrCallback) {
    return useEvent(
      typeof booleanOrCallback === "function" ? booleanOrCallback : () => booleanOrCallback
    );
  }
  function useWrapElement(props, callback, deps = []) {
    const wrapElement = (0, import_react2.useCallback)(
      (element) => {
        if (props.wrapElement) {
          element = props.wrapElement(element);
        }
        return callback(element);
      },
      [...deps, props.wrapElement]
    );
    return { ...props, wrapElement };
  }
  function usePortalRef(portalProp = false, portalRefProp) {
    const [portalNode, setPortalNode] = (0, import_react2.useState)(null);
    const portalRef = useMergeRefs(setPortalNode, portalRefProp);
    const domReady = !portalProp || portalNode;
    return { portalRef, portalNode, domReady };
  }
  function useMetadataProps(props, key, value) {
    const parent = props.onLoadedMetadataCapture;
    const onLoadedMetadataCapture = (0, import_react2.useMemo)(() => {
      return Object.assign(() => {
      }, { ...parent, [key]: value });
    }, [parent, key, value]);
    return [parent == null ? void 0 : parent[key], { onLoadedMetadataCapture }];
  }
  var hasInstalledGlobalEventListeners = false;
  function useIsMouseMoving() {
    (0, import_react2.useEffect)(() => {
      if (hasInstalledGlobalEventListeners) return;
      addGlobalEventListener("mousemove", setMouseMoving, true);
      addGlobalEventListener("mousedown", resetMouseMoving, true);
      addGlobalEventListener("mouseup", resetMouseMoving, true);
      addGlobalEventListener("keydown", resetMouseMoving, true);
      addGlobalEventListener("scroll", resetMouseMoving, true);
      hasInstalledGlobalEventListeners = true;
    }, []);
    const isMouseMoving = useEvent(() => mouseMoving);
    return isMouseMoving;
  }
  var mouseMoving = false;
  var previousScreenX = 0;
  var previousScreenY = 0;
  function hasMouseMovement(event) {
    const movementX = event.movementX || event.screenX - previousScreenX;
    const movementY = event.movementY || event.screenY - previousScreenY;
    previousScreenX = event.screenX;
    previousScreenY = event.screenY;
    return movementX || movementY || false;
  }
  function setMouseMoving(event) {
    if (!hasMouseMovement(event)) return;
    mouseMoving = true;
  }
  function resetMouseMoving() {
    mouseMoving = false;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/GWSL6KNJ.js
  var React2 = __toESM(require_react(), 1);
  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
  function forwardRef2(render) {
    const Role3 = React2.forwardRef(
      // @ts-ignore Incompatible with React 19 types. Ignore for now.
      (props, ref) => render({ ...props, ref })
    );
    Role3.displayName = render.displayName || render.name;
    return Role3;
  }
  function memo2(Component9, propsAreEqual) {
    return React2.memo(Component9, propsAreEqual);
  }
  function createElement(Type, props) {
    const { wrapElement, render, ...rest } = props;
    const mergedRef = useMergeRefs(props.ref, getRefProperty(render));
    let element;
    if (React2.isValidElement(render)) {
      const renderProps = {
        // @ts-ignore Incompatible with React 19 types. Ignore for now.
        ...render.props,
        ref: mergedRef
      };
      element = React2.cloneElement(render, mergeProps(rest, renderProps));
    } else if (render) {
      element = render(rest);
    } else {
      element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Type, { ...rest });
    }
    if (wrapElement) {
      return wrapElement(element);
    }
    return element;
  }
  function createHook(useProps) {
    const useRole3 = (props = {}) => {
      return useProps(props);
    };
    useRole3.displayName = useProps.name;
    return useRole3;
  }
  function createStoreContext(providers = [], scopedProviders = []) {
    const context = React2.createContext(void 0);
    const scopedContext = React2.createContext(void 0);
    const useContext210 = () => React2.useContext(context);
    const useScopedContext = (onlyScoped = false) => {
      const scoped = React2.useContext(scopedContext);
      const store = useContext210();
      if (onlyScoped) return scoped;
      return scoped || store;
    };
    const useProviderContext = () => {
      const scoped = React2.useContext(scopedContext);
      const store = useContext210();
      if (scoped && scoped === store) return;
      return store;
    };
    const ContextProvider = (props) => {
      return providers.reduceRight(
        (children, Provider4) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Provider4, { ...props, children }),
        /* @__PURE__ */ (0, import_jsx_runtime.jsx)(context.Provider, { ...props })
      );
    };
    const ScopedContextProvider = (props) => {
      return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ContextProvider, { ...props, children: scopedProviders.reduceRight(
        (children, Provider4) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Provider4, { ...props, children }),
        /* @__PURE__ */ (0, import_jsx_runtime.jsx)(scopedContext.Provider, { ...props })
      ) });
    };
    return {
      context,
      scopedContext,
      useContext: useContext210,
      useScopedContext,
      useProviderContext,
      ContextProvider,
      ScopedContextProvider
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/SMPCIMZM.js
  var ctx = createStoreContext();
  var useCollectionContext = ctx.useContext;
  var useCollectionScopedContext = ctx.useScopedContext;
  var useCollectionProviderContext = ctx.useProviderContext;
  var CollectionContextProvider = ctx.ContextProvider;
  var CollectionScopedContextProvider = ctx.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/AVVXDJMZ.js
  var import_react3 = __toESM(require_react(), 1);
  var ctx2 = createStoreContext(
    [CollectionContextProvider],
    [CollectionScopedContextProvider]
  );
  var useCompositeContext = ctx2.useContext;
  var useCompositeScopedContext = ctx2.useScopedContext;
  var useCompositeProviderContext = ctx2.useProviderContext;
  var CompositeContextProvider = ctx2.ContextProvider;
  var CompositeScopedContextProvider = ctx2.ScopedContextProvider;
  var CompositeItemContext = (0, import_react3.createContext)(
    void 0
  );
  var CompositeRowContext = (0, import_react3.createContext)(
    void 0
  );

  // node_modules/@ariakit/react-core/esm/__chunks/NF43FNG5.js
  var ctx3 = createStoreContext(
    [CompositeContextProvider],
    [CompositeScopedContextProvider]
  );
  var useTabContext = ctx3.useContext;
  var useTabScopedContext = ctx3.useScopedContext;
  var useTabProviderContext = ctx3.useProviderContext;
  var TabContextProvider = ctx3.ContextProvider;
  var TabScopedContextProvider = ctx3.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/5VQZOHHZ.js
  var NULL_ITEM = { id: null };
  function flipItems(items, activeId, shouldInsertNullItem = false) {
    const index2 = items.findIndex((item2) => item2.id === activeId);
    return [
      ...items.slice(index2 + 1),
      ...shouldInsertNullItem ? [NULL_ITEM] : [],
      ...items.slice(0, index2)
    ];
  }
  function findFirstEnabledItem(items, excludeId) {
    return items.find((item2) => {
      if (excludeId) {
        return !item2.disabled && item2.id !== excludeId;
      }
      return !item2.disabled;
    });
  }
  function getEnabledItem(store, id3) {
    if (!id3) return null;
    return store.item(id3) || null;
  }
  function groupItemsByRows(items) {
    const rows = [];
    for (const item2 of items) {
      const row = rows.find((currentRow) => {
        var _a;
        return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item2.rowId;
      });
      if (row) {
        row.push(item2);
      } else {
        rows.push([item2]);
      }
    }
    return rows;
  }
  function selectTextField(element, collapseToEnd = false) {
    if (isTextField(element)) {
      element.setSelectionRange(
        collapseToEnd ? element.value.length : 0,
        element.value.length
      );
    } else if (element.isContentEditable) {
      const selection = getDocument(element).getSelection();
      selection == null ? void 0 : selection.selectAllChildren(element);
      if (collapseToEnd) {
        selection == null ? void 0 : selection.collapseToEnd();
      }
    }
  }
  var FOCUS_SILENTLY = /* @__PURE__ */ Symbol("FOCUS_SILENTLY");
  function focusSilently(element) {
    element[FOCUS_SILENTLY] = true;
    element.focus({ preventScroll: true });
  }
  function silentlyFocused(element) {
    const isSilentlyFocused = element[FOCUS_SILENTLY];
    delete element[FOCUS_SILENTLY];
    return isSilentlyFocused;
  }
  function isItem(store, element, exclude) {
    if (!element) return false;
    if (element === exclude) return false;
    const item2 = store.item(element.id);
    if (!item2) return false;
    if (exclude && item2.element === exclude) return false;
    return true;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/Z2O3VLAQ.js
  var import_react4 = __toESM(require_react(), 1);
  var TagName = "div";
  var useCollectionItem = createHook(
    function useCollectionItem2({
      store,
      shouldRegisterItem = true,
      getItem = identity,
      // @ts-expect-error This prop may come from a collection renderer.
      element,
      ...props
    }) {
      const context = useCollectionContext();
      store = store || context;
      const id3 = useId(props.id);
      const ref = (0, import_react4.useRef)(element);
      (0, import_react4.useEffect)(() => {
        const element2 = ref.current;
        if (!id3) return;
        if (!element2) return;
        if (!shouldRegisterItem) return;
        const item2 = getItem({ id: id3, element: element2 });
        return store == null ? void 0 : store.renderItem(item2);
      }, [id3, shouldRegisterItem, getItem, store]);
      props = {
        ...props,
        ref: useMergeRefs(ref, props.ref)
      };
      return removeUndefinedValues(props);
    }
  );
  var CollectionItem = forwardRef2(function CollectionItem2(props) {
    const htmlProps = useCollectionItem(props);
    return createElement(TagName, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/SWN3JYXT.js
  var import_react5 = __toESM(require_react(), 1);
  var FocusableContext = (0, import_react5.createContext)(true);

  // node_modules/@ariakit/core/esm/utils/focus.js
  var selector = "input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])";
  function hasNegativeTabIndex(element) {
    const tabIndex = Number.parseInt(element.getAttribute("tabindex") || "0", 10);
    return tabIndex < 0;
  }
  function isFocusable(element) {
    if (!element.matches(selector)) return false;
    if (!isVisible(element)) return false;
    if (element.closest("[inert]")) return false;
    return true;
  }
  function isTabbable(element) {
    if (!isFocusable(element)) return false;
    if (hasNegativeTabIndex(element)) return false;
    if (!("form" in element)) return true;
    if (!element.form) return true;
    if (element.checked) return true;
    if (element.type !== "radio") return true;
    const radioGroup = element.form.elements.namedItem(element.name);
    if (!radioGroup) return true;
    if (!("length" in radioGroup)) return true;
    const activeElement = getActiveElement(element);
    if (!activeElement) return true;
    if (activeElement === element) return true;
    if (!("form" in activeElement)) return true;
    if (activeElement.form !== element.form) return true;
    if (activeElement.name !== element.name) return true;
    return false;
  }
  function getAllFocusableIn(container, includeContainer) {
    const elements2 = Array.from(
      container.querySelectorAll(selector)
    );
    if (includeContainer) {
      elements2.unshift(container);
    }
    const focusableElements2 = elements2.filter(isFocusable);
    focusableElements2.forEach((element, i3) => {
      var _a;
      if (!isFrame(element)) return;
      const frameBody = (_a = element.contentDocument) == null ? void 0 : _a.body;
      if (!frameBody) return;
      focusableElements2.splice(i3, 1, ...getAllFocusableIn(frameBody));
    });
    return focusableElements2;
  }
  function getAllTabbableIn(container, includeContainer, fallbackToFocusable) {
    const elements2 = Array.from(
      container.querySelectorAll(selector)
    );
    const tabbableElements = elements2.filter(isTabbable);
    if (includeContainer && isTabbable(container)) {
      tabbableElements.unshift(container);
    }
    tabbableElements.forEach((element, i3) => {
      var _a;
      if (!isFrame(element)) return;
      const frameBody = (_a = element.contentDocument) == null ? void 0 : _a.body;
      if (!frameBody) return;
      const allFrameTabbable = getAllTabbableIn(
        frameBody,
        false,
        fallbackToFocusable
      );
      tabbableElements.splice(i3, 1, ...allFrameTabbable);
    });
    if (!tabbableElements.length && fallbackToFocusable) {
      return elements2;
    }
    return tabbableElements;
  }
  function getFirstTabbableIn(container, includeContainer, fallbackToFocusable) {
    const [first] = getAllTabbableIn(
      container,
      includeContainer,
      fallbackToFocusable
    );
    return first || null;
  }
  function getNextTabbableIn(container, includeContainer, fallbackToFirst, fallbackToFocusable) {
    const activeElement = getActiveElement(container);
    const allFocusable = getAllFocusableIn(container, includeContainer);
    const activeIndex = allFocusable.indexOf(activeElement);
    const nextFocusableElements = allFocusable.slice(activeIndex + 1);
    return nextFocusableElements.find(isTabbable) || (fallbackToFirst ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? nextFocusableElements[0] : null) || null;
  }
  function getNextTabbable(fallbackToFirst, fallbackToFocusable) {
    return getNextTabbableIn(
      document.body,
      false,
      fallbackToFirst,
      fallbackToFocusable
    );
  }
  function getPreviousTabbableIn(container, includeContainer, fallbackToLast, fallbackToFocusable) {
    const activeElement = getActiveElement(container);
    const allFocusable = getAllFocusableIn(container, includeContainer).reverse();
    const activeIndex = allFocusable.indexOf(activeElement);
    const previousFocusableElements = allFocusable.slice(activeIndex + 1);
    return previousFocusableElements.find(isTabbable) || (fallbackToLast ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? previousFocusableElements[0] : null) || null;
  }
  function getPreviousTabbable(fallbackToFirst, fallbackToFocusable) {
    return getPreviousTabbableIn(
      document.body,
      false,
      fallbackToFirst,
      fallbackToFocusable
    );
  }
  function getClosestFocusable(element) {
    while (element && !isFocusable(element)) {
      element = element.closest(selector);
    }
    return element || null;
  }
  function hasFocus(element) {
    const activeElement = getActiveElement(element);
    if (!activeElement) return false;
    if (activeElement === element) return true;
    const activeDescendant = activeElement.getAttribute("aria-activedescendant");
    if (!activeDescendant) return false;
    return activeDescendant === element.id;
  }
  function hasFocusWithin(element) {
    const activeElement = getActiveElement(element);
    if (!activeElement) return false;
    if (contains(element, activeElement)) return true;
    const activeDescendant = activeElement.getAttribute("aria-activedescendant");
    if (!activeDescendant) return false;
    if (!("id" in element)) return false;
    if (activeDescendant === element.id) return true;
    return !!element.querySelector(`#${CSS.escape(activeDescendant)}`);
  }
  function focusIfNeeded(element) {
    if (!hasFocusWithin(element) && isFocusable(element)) {
      element.focus();
    }
  }
  function disableFocus(element) {
    var _a;
    const currentTabindex = (_a = element.getAttribute("tabindex")) != null ? _a : "";
    element.setAttribute("data-tabindex", currentTabindex);
    element.setAttribute("tabindex", "-1");
  }
  function disableFocusIn(container, includeContainer) {
    const tabbableElements = getAllTabbableIn(container, includeContainer);
    for (const element of tabbableElements) {
      disableFocus(element);
    }
  }
  function restoreFocusIn(container) {
    const elements2 = container.querySelectorAll("[data-tabindex]");
    const restoreTabIndex = (element) => {
      const tabindex = element.getAttribute("data-tabindex");
      element.removeAttribute("data-tabindex");
      if (tabindex) {
        element.setAttribute("tabindex", tabindex);
      } else {
        element.removeAttribute("tabindex");
      }
    };
    if (container.hasAttribute("data-tabindex")) {
      restoreTabIndex(container);
    }
    for (const element of elements2) {
      restoreTabIndex(element);
    }
  }
  function focusIntoView(element, options2) {
    if (!("scrollIntoView" in element)) {
      element.focus();
    } else {
      element.focus({ preventScroll: true });
      element.scrollIntoView({ block: "nearest", inline: "nearest", ...options2 });
    }
  }

  // node_modules/@ariakit/react-core/esm/__chunks/U6HHPQDW.js
  var import_react6 = __toESM(require_react(), 1);
  var TagName2 = "div";
  var isSafariBrowser = isSafari();
  var alwaysFocusVisibleInputTypes = [
    "text",
    "search",
    "url",
    "tel",
    "email",
    "password",
    "number",
    "date",
    "month",
    "week",
    "time",
    "datetime",
    "datetime-local"
  ];
  var safariFocusAncestorSymbol = /* @__PURE__ */ Symbol("safariFocusAncestor");
  function isSafariFocusAncestor(element) {
    if (!element) return false;
    return !!element[safariFocusAncestorSymbol];
  }
  function markSafariFocusAncestor(element, value) {
    if (!element) return;
    element[safariFocusAncestorSymbol] = value;
  }
  function isAlwaysFocusVisible(element) {
    const { tagName, readOnly, type } = element;
    if (tagName === "TEXTAREA" && !readOnly) return true;
    if (tagName === "SELECT" && !readOnly) return true;
    if (tagName === "INPUT" && !readOnly) {
      return alwaysFocusVisibleInputTypes.includes(type);
    }
    if (element.isContentEditable) return true;
    const role = element.getAttribute("role");
    if (role === "combobox" && element.dataset.name) {
      return true;
    }
    return false;
  }
  function getLabels(element) {
    if ("labels" in element) {
      return element.labels;
    }
    return null;
  }
  function isNativeCheckboxOrRadio(element) {
    const tagName = element.tagName.toLowerCase();
    if (tagName === "input" && element.type) {
      return element.type === "radio" || element.type === "checkbox";
    }
    return false;
  }
  function isNativeTabbable(tagName) {
    if (!tagName) return true;
    return tagName === "button" || tagName === "summary" || tagName === "input" || tagName === "select" || tagName === "textarea" || tagName === "a";
  }
  function supportsDisabledAttribute(tagName) {
    if (!tagName) return true;
    return tagName === "button" || tagName === "input" || tagName === "select" || tagName === "textarea";
  }
  function getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, tabIndexProp) {
    if (!focusable) {
      return tabIndexProp;
    }
    if (trulyDisabled) {
      if (nativeTabbable && !supportsDisabled) {
        return -1;
      }
      return;
    }
    if (nativeTabbable) {
      return tabIndexProp;
    }
    return tabIndexProp || 0;
  }
  function useDisableEvent(onEvent, disabled) {
    return useEvent((event) => {
      onEvent == null ? void 0 : onEvent(event);
      if (event.defaultPrevented) return;
      if (disabled) {
        event.stopPropagation();
        event.preventDefault();
      }
    });
  }
  var hasInstalledGlobalEventListeners2 = false;
  var isKeyboardModality = true;
  function onGlobalMouseDown(event) {
    const target = event.target;
    if (target && "hasAttribute" in target) {
      if (!target.hasAttribute("data-focus-visible")) {
        isKeyboardModality = false;
      }
    }
  }
  function onGlobalKeyDown(event) {
    if (event.metaKey) return;
    if (event.ctrlKey) return;
    if (event.altKey) return;
    isKeyboardModality = true;
  }
  var useFocusable = createHook(
    function useFocusable2({
      focusable = true,
      accessibleWhenDisabled,
      autoFocus,
      onFocusVisible,
      ...props
    }) {
      const ref = (0, import_react6.useRef)(null);
      (0, import_react6.useEffect)(() => {
        if (!focusable) return;
        if (hasInstalledGlobalEventListeners2) return;
        addGlobalEventListener("mousedown", onGlobalMouseDown, true);
        addGlobalEventListener("keydown", onGlobalKeyDown, true);
        hasInstalledGlobalEventListeners2 = true;
      }, [focusable]);
      if (isSafariBrowser) {
        (0, import_react6.useEffect)(() => {
          if (!focusable) return;
          const element = ref.current;
          if (!element) return;
          if (!isNativeCheckboxOrRadio(element)) return;
          const labels = getLabels(element);
          if (!labels) return;
          const onMouseUp = () => queueMicrotask(() => element.focus());
          for (const label of labels) {
            label.addEventListener("mouseup", onMouseUp);
          }
          return () => {
            for (const label of labels) {
              label.removeEventListener("mouseup", onMouseUp);
            }
          };
        }, [focusable]);
      }
      const disabled = focusable && disabledFromProps(props);
      const trulyDisabled = !!disabled && !accessibleWhenDisabled;
      const [focusVisible, setFocusVisible] = (0, import_react6.useState)(false);
      (0, import_react6.useEffect)(() => {
        if (!focusable) return;
        if (trulyDisabled && focusVisible) {
          setFocusVisible(false);
        }
      }, [focusable, trulyDisabled, focusVisible]);
      (0, import_react6.useEffect)(() => {
        if (!focusable) return;
        if (!focusVisible) return;
        const element = ref.current;
        if (!element) return;
        if (typeof IntersectionObserver === "undefined") return;
        const observer = new IntersectionObserver(() => {
          if (!isFocusable(element)) {
            setFocusVisible(false);
          }
        });
        observer.observe(element);
        return () => observer.disconnect();
      }, [focusable, focusVisible]);
      const onKeyPressCapture = useDisableEvent(
        props.onKeyPressCapture,
        disabled
      );
      const onMouseDownCapture = useDisableEvent(
        props.onMouseDownCapture,
        disabled
      );
      const onClickCapture = useDisableEvent(props.onClickCapture, disabled);
      const onMouseDownProp = props.onMouseDown;
      const onMouseDown = useEvent((event) => {
        onMouseDownProp == null ? void 0 : onMouseDownProp(event);
        if (event.defaultPrevented) return;
        if (!focusable) return;
        const element = event.currentTarget;
        if (!isSafariBrowser) return;
        if (isPortalEvent(event)) return;
        if (!isButton(element) && !isNativeCheckboxOrRadio(element)) return;
        let receivedFocus = false;
        const onFocus = () => {
          receivedFocus = true;
        };
        const options2 = { capture: true, once: true };
        element.addEventListener("focusin", onFocus, options2);
        const focusableContainer = getClosestFocusable(element.parentElement);
        markSafariFocusAncestor(focusableContainer, true);
        queueBeforeEvent(element, "mouseup", () => {
          element.removeEventListener("focusin", onFocus, true);
          markSafariFocusAncestor(focusableContainer, false);
          if (receivedFocus) return;
          focusIfNeeded(element);
        });
      });
      const handleFocusVisible = (event, currentTarget) => {
        if (currentTarget) {
          event.currentTarget = currentTarget;
        }
        if (!focusable) return;
        const element = event.currentTarget;
        if (!element) return;
        if (!hasFocus(element)) return;
        onFocusVisible == null ? void 0 : onFocusVisible(event);
        if (event.defaultPrevented) return;
        element.dataset.focusVisible = "true";
        setFocusVisible(true);
      };
      const onKeyDownCaptureProp = props.onKeyDownCapture;
      const onKeyDownCapture = useEvent((event) => {
        onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);
        if (event.defaultPrevented) return;
        if (!focusable) return;
        if (focusVisible) return;
        if (event.metaKey) return;
        if (event.altKey) return;
        if (event.ctrlKey) return;
        if (!isSelfTarget(event)) return;
        const element = event.currentTarget;
        const applyFocusVisible = () => handleFocusVisible(event, element);
        queueBeforeEvent(element, "focusout", applyFocusVisible);
      });
      const onFocusCaptureProp = props.onFocusCapture;
      const onFocusCapture = useEvent((event) => {
        onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);
        if (event.defaultPrevented) return;
        if (!focusable) return;
        if (!isSelfTarget(event)) {
          setFocusVisible(false);
          return;
        }
        const element = event.currentTarget;
        const applyFocusVisible = () => handleFocusVisible(event, element);
        if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {
          queueBeforeEvent(event.target, "focusout", applyFocusVisible);
        } else {
          setFocusVisible(false);
        }
      });
      const onBlurProp = props.onBlur;
      const onBlur = useEvent((event) => {
        onBlurProp == null ? void 0 : onBlurProp(event);
        if (!focusable) return;
        if (!isFocusEventOutside(event)) return;
        event.currentTarget.removeAttribute("data-focus-visible");
        setFocusVisible(false);
      });
      const autoFocusOnShow = (0, import_react6.useContext)(FocusableContext);
      const autoFocusRef = useEvent((element) => {
        if (!focusable) return;
        if (!autoFocus) return;
        if (!element) return;
        if (!autoFocusOnShow) return;
        queueMicrotask(() => {
          if (hasFocus(element)) return;
          if (!isFocusable(element)) return;
          element.focus();
        });
      });
      const tagName = useTagName(ref);
      const nativeTabbable = focusable && isNativeTabbable(tagName);
      const supportsDisabled = focusable && supportsDisabledAttribute(tagName);
      const styleProp = props.style;
      const style2 = (0, import_react6.useMemo)(() => {
        if (trulyDisabled) {
          return { pointerEvents: "none", ...styleProp };
        }
        return styleProp;
      }, [trulyDisabled, styleProp]);
      props = {
        "data-focus-visible": focusable && focusVisible || void 0,
        "data-autofocus": autoFocus || void 0,
        "aria-disabled": disabled || void 0,
        ...props,
        ref: useMergeRefs(ref, autoFocusRef, props.ref),
        style: style2,
        tabIndex: getTabIndex(
          focusable,
          trulyDisabled,
          nativeTabbable,
          supportsDisabled,
          props.tabIndex
        ),
        disabled: supportsDisabled && trulyDisabled ? true : void 0,
        // TODO: Test Focusable contentEditable.
        contentEditable: disabled ? void 0 : props.contentEditable,
        onKeyPressCapture,
        onClickCapture,
        onMouseDownCapture,
        onMouseDown,
        onKeyDownCapture,
        onFocusCapture,
        onBlur
      };
      return removeUndefinedValues(props);
    }
  );
  var Focusable = forwardRef2(function Focusable2(props) {
    const htmlProps = useFocusable(props);
    return createElement(TagName2, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/PZ3OL7I2.js
  var import_react7 = __toESM(require_react(), 1);
  var TagName3 = "button";
  function isNativeClick(event) {
    if (!event.isTrusted) return false;
    const element = event.currentTarget;
    if (event.key === "Enter") {
      return isButton(element) || element.tagName === "SUMMARY" || element.tagName === "A";
    }
    if (event.key === " ") {
      return isButton(element) || element.tagName === "SUMMARY" || element.tagName === "INPUT" || element.tagName === "SELECT";
    }
    return false;
  }
  var symbol = /* @__PURE__ */ Symbol("command");
  var useCommand = createHook(
    function useCommand2({ clickOnEnter = true, clickOnSpace = true, ...props }) {
      const ref = (0, import_react7.useRef)(null);
      const [isNativeButton, setIsNativeButton] = (0, import_react7.useState)(false);
      (0, import_react7.useEffect)(() => {
        if (!ref.current) return;
        setIsNativeButton(isButton(ref.current));
      }, []);
      const [active, setActive] = (0, import_react7.useState)(false);
      const activeRef = (0, import_react7.useRef)(false);
      const disabled = disabledFromProps(props);
      const [isDuplicate, metadataProps] = useMetadataProps(props, symbol, true);
      const onKeyDownProp = props.onKeyDown;
      const onKeyDown = useEvent((event) => {
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        const element = event.currentTarget;
        if (event.defaultPrevented) return;
        if (isDuplicate) return;
        if (disabled) return;
        if (!isSelfTarget(event)) return;
        if (isTextField(element)) return;
        if (element.isContentEditable) return;
        const isEnter = clickOnEnter && event.key === "Enter";
        const isSpace = clickOnSpace && event.key === " ";
        const shouldPreventEnter = event.key === "Enter" && !clickOnEnter;
        const shouldPreventSpace = event.key === " " && !clickOnSpace;
        if (shouldPreventEnter || shouldPreventSpace) {
          event.preventDefault();
          return;
        }
        if (isEnter || isSpace) {
          const nativeClick = isNativeClick(event);
          if (isEnter) {
            if (!nativeClick) {
              event.preventDefault();
              const { view, ...eventInit } = event;
              const click = () => fireClickEvent(element, eventInit);
              if (isFirefox()) {
                queueBeforeEvent(element, "keyup", click);
              } else {
                queueMicrotask(click);
              }
            }
          } else if (isSpace) {
            activeRef.current = true;
            if (!nativeClick) {
              event.preventDefault();
              setActive(true);
            }
          }
        }
      });
      const onKeyUpProp = props.onKeyUp;
      const onKeyUp = useEvent((event) => {
        onKeyUpProp == null ? void 0 : onKeyUpProp(event);
        if (event.defaultPrevented) return;
        if (isDuplicate) return;
        if (disabled) return;
        if (event.metaKey) return;
        const isSpace = clickOnSpace && event.key === " ";
        if (activeRef.current && isSpace) {
          activeRef.current = false;
          if (!isNativeClick(event)) {
            event.preventDefault();
            setActive(false);
            const element = event.currentTarget;
            const { view, ...eventInit } = event;
            queueMicrotask(() => fireClickEvent(element, eventInit));
          }
        }
      });
      props = {
        "data-active": active || void 0,
        type: isNativeButton ? "button" : void 0,
        ...metadataProps,
        ...props,
        ref: useMergeRefs(ref, props.ref),
        onKeyDown,
        onKeyUp
      };
      props = useFocusable(props);
      return props;
    }
  );
  var Command = forwardRef2(function Command2(props) {
    const htmlProps = useCommand(props);
    return createElement(TagName3, htmlProps);
  });

  // node_modules/@ariakit/core/esm/__chunks/SXKM4CGU.js
  function getInternal(store, key) {
    const internals = store.__unstableInternals;
    invariant(internals, "Invalid store");
    return internals[key];
  }
  function createStore(initialState, ...stores) {
    let state = initialState;
    let prevStateBatch = state;
    let lastUpdate = /* @__PURE__ */ Symbol();
    let destroy = noop;
    const instances = /* @__PURE__ */ new Set();
    const updatedKeys = /* @__PURE__ */ new Set();
    const setups = /* @__PURE__ */ new Set();
    const listeners = /* @__PURE__ */ new Set();
    const batchListeners = /* @__PURE__ */ new Set();
    const disposables = /* @__PURE__ */ new WeakMap();
    const listenerKeys = /* @__PURE__ */ new WeakMap();
    const storeSetup = (callback) => {
      setups.add(callback);
      return () => setups.delete(callback);
    };
    const storeInit = () => {
      const initialized = instances.size;
      const instance = /* @__PURE__ */ Symbol();
      instances.add(instance);
      const maybeDestroy = () => {
        instances.delete(instance);
        if (instances.size) return;
        destroy();
      };
      if (initialized) return maybeDestroy;
      const desyncs = getKeys(state).map(
        (key) => chain(
          ...stores.map((store) => {
            var _a;
            const storeState = (_a = store == null ? void 0 : store.getState) == null ? void 0 : _a.call(store);
            if (!storeState) return;
            if (!hasOwnProperty(storeState, key)) return;
            return sync(store, [key], (state2) => {
              setState(
                key,
                state2[key],
                // @ts-expect-error - Not public API. This is just to prevent
                // infinite loops.
                true
              );
            });
          })
        )
      );
      const teardowns = [];
      for (const setup2 of setups) {
        teardowns.push(setup2());
      }
      const cleanups2 = stores.map(init);
      destroy = chain(...desyncs, ...teardowns, ...cleanups2);
      return maybeDestroy;
    };
    const sub = (keys, listener, set2 = listeners) => {
      set2.add(listener);
      listenerKeys.set(listener, keys);
      return () => {
        var _a;
        (_a = disposables.get(listener)) == null ? void 0 : _a();
        disposables.delete(listener);
        listenerKeys.delete(listener);
        set2.delete(listener);
      };
    };
    const storeSubscribe = (keys, listener) => sub(keys, listener);
    const storeSync = (keys, listener) => {
      disposables.set(listener, listener(state, state));
      return sub(keys, listener);
    };
    const storeBatch = (keys, listener) => {
      disposables.set(listener, listener(state, prevStateBatch));
      return sub(keys, listener, batchListeners);
    };
    const storePick = (keys) => createStore(pick(state, keys), finalStore);
    const storeOmit = (keys) => createStore(omit(state, keys), finalStore);
    const getState = () => state;
    const setState = (key, value, fromStores = false) => {
      var _a;
      if (!hasOwnProperty(state, key)) return;
      const nextValue = applyState(value, state[key]);
      if (nextValue === state[key]) return;
      if (!fromStores) {
        for (const store of stores) {
          (_a = store == null ? void 0 : store.setState) == null ? void 0 : _a.call(store, key, nextValue);
        }
      }
      const prevState = state;
      state = { ...state, [key]: nextValue };
      const thisUpdate = /* @__PURE__ */ Symbol();
      lastUpdate = thisUpdate;
      updatedKeys.add(key);
      const run = (listener, prev2, uKeys) => {
        var _a2;
        const keys = listenerKeys.get(listener);
        const updated = (k3) => uKeys ? uKeys.has(k3) : k3 === key;
        if (!keys || keys.some(updated)) {
          (_a2 = disposables.get(listener)) == null ? void 0 : _a2();
          disposables.set(listener, listener(state, prev2));
        }
      };
      for (const listener of listeners) {
        run(listener, prevState);
      }
      queueMicrotask(() => {
        if (lastUpdate !== thisUpdate) return;
        const snapshot = state;
        for (const listener of batchListeners) {
          run(listener, prevStateBatch, updatedKeys);
        }
        prevStateBatch = snapshot;
        updatedKeys.clear();
      });
    };
    const finalStore = {
      getState,
      setState,
      __unstableInternals: {
        setup: storeSetup,
        init: storeInit,
        subscribe: storeSubscribe,
        sync: storeSync,
        batch: storeBatch,
        pick: storePick,
        omit: storeOmit
      }
    };
    return finalStore;
  }
  function setup(store, ...args) {
    if (!store) return;
    return getInternal(store, "setup")(...args);
  }
  function init(store, ...args) {
    if (!store) return;
    return getInternal(store, "init")(...args);
  }
  function subscribe(store, ...args) {
    if (!store) return;
    return getInternal(store, "subscribe")(...args);
  }
  function sync(store, ...args) {
    if (!store) return;
    return getInternal(store, "sync")(...args);
  }
  function batch(store, ...args) {
    if (!store) return;
    return getInternal(store, "batch")(...args);
  }
  function omit2(store, ...args) {
    if (!store) return;
    return getInternal(store, "omit")(...args);
  }
  function pick2(store, ...args) {
    if (!store) return;
    return getInternal(store, "pick")(...args);
  }
  function mergeStore(...stores) {
    var _a;
    const initialState = {};
    for (const store2 of stores) {
      const nextState = (_a = store2 == null ? void 0 : store2.getState) == null ? void 0 : _a.call(store2);
      if (nextState) {
        Object.assign(initialState, nextState);
      }
    }
    const store = createStore(initialState, ...stores);
    return Object.assign({}, ...stores, store);
  }
  function throwOnConflictingProps(props, store) {
    if (false) return;
    if (!store) return;
    const defaultKeys = Object.entries(props).filter(([key, value]) => key.startsWith("default") && value !== void 0).map(([key]) => {
      var _a;
      const stateKey = key.replace("default", "");
      return `${((_a = stateKey[0]) == null ? void 0 : _a.toLowerCase()) || ""}${stateKey.slice(1)}`;
    });
    if (!defaultKeys.length) return;
    const storeState = store.getState();
    const conflictingProps = defaultKeys.filter(
      (key) => hasOwnProperty(storeState, key)
    );
    if (!conflictingProps.length) return;
    throw new Error(
      `Passing a store prop in conjunction with a default state is not supported.

const store = useSelectStore();
<SelectProvider store={store} defaultValue="Apple" />
                ^             ^

Instead, pass the default state to the topmost store:

const store = useSelectStore({ defaultValue: "Apple" });
<SelectProvider store={store} />

See https://github.com/ariakit/ariakit/pull/2745 for more details.

If there's a particular need for this, please submit a feature request at https://github.com/ariakit/ariakit
`
    );
  }

  // node_modules/@ariakit/react-core/esm/__chunks/Q5W46E73.js
  var React3 = __toESM(require_react(), 1);
  var import_shim = __toESM(require_shim(), 1);
  var { useSyncExternalStore } = import_shim.default;
  var noopSubscribe = () => () => {
  };
  function useStoreState(store, keyOrSelector = identity) {
    const storeSubscribe = React3.useCallback(
      (callback) => {
        if (!store) return noopSubscribe();
        return subscribe(store, null, callback);
      },
      [store]
    );
    const getSnapshot = () => {
      const key = typeof keyOrSelector === "string" ? keyOrSelector : null;
      const selector2 = typeof keyOrSelector === "function" ? keyOrSelector : null;
      const state = store == null ? void 0 : store.getState();
      if (selector2) return selector2(state);
      if (!state) return;
      if (!key) return;
      if (!hasOwnProperty(state, key)) return;
      return state[key];
    };
    return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);
  }
  function useStoreStateObject(store, object) {
    const objRef = React3.useRef(
      {}
    );
    const storeSubscribe = React3.useCallback(
      (callback) => {
        if (!store) return noopSubscribe();
        return subscribe(store, null, callback);
      },
      [store]
    );
    const getSnapshot = () => {
      const state = store == null ? void 0 : store.getState();
      let updated = false;
      const obj = objRef.current;
      for (const prop in object) {
        const keyOrSelector = object[prop];
        if (typeof keyOrSelector === "function") {
          const value = keyOrSelector(state);
          if (value !== obj[prop]) {
            obj[prop] = value;
            updated = true;
          }
        }
        if (typeof keyOrSelector === "string") {
          if (!state) continue;
          if (!hasOwnProperty(state, keyOrSelector)) continue;
          const value = state[keyOrSelector];
          if (value !== obj[prop]) {
            obj[prop] = value;
            updated = true;
          }
        }
      }
      if (updated) {
        objRef.current = { ...obj };
      }
      return objRef.current;
    };
    return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);
  }
  function useStoreProps(store, props, key, setKey) {
    const value = hasOwnProperty(props, key) ? props[key] : void 0;
    const setValue = setKey ? props[setKey] : void 0;
    const propsRef = useLiveRef({ value, setValue });
    useSafeLayoutEffect(() => {
      return sync(store, [key], (state, prev2) => {
        const { value: value2, setValue: setValue2 } = propsRef.current;
        if (!setValue2) return;
        if (state[key] === prev2[key]) return;
        if (state[key] === value2) return;
        setValue2(state[key]);
      });
    }, [store, key]);
    useSafeLayoutEffect(() => {
      if (value === void 0) return;
      store.setState(key, value);
      return batch(store, [key], () => {
        if (value === void 0) return;
        store.setState(key, value);
      });
    });
  }
  function useStore(createStore2, props) {
    const [store, setStore] = React3.useState(() => createStore2(props));
    useSafeLayoutEffect(() => init(store), [store]);
    const useState210 = React3.useCallback(
      (keyOrSelector) => useStoreState(store, keyOrSelector),
      [store]
    );
    const memoizedStore = React3.useMemo(
      () => ({ ...store, useState: useState210 }),
      [store, useState210]
    );
    const updateStore = useEvent(() => {
      setStore((store2) => createStore2({ ...props, ...store2.getState() }));
    });
    return [memoizedStore, updateStore];
  }

  // node_modules/@ariakit/react-core/esm/__chunks/WZWDIE3S.js
  var import_react8 = __toESM(require_react(), 1);
  var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
  var TagName4 = "button";
  function isEditableElement(element) {
    if (isTextbox(element)) return true;
    return element.tagName === "INPUT" && !isButton(element);
  }
  function getNextPageOffset(scrollingElement, pageUp = false) {
    const height = scrollingElement.clientHeight;
    const { top } = scrollingElement.getBoundingClientRect();
    const pageSize = Math.max(height * 0.875, height - 40) * 1.5;
    const pageOffset = pageUp ? height - pageSize + top : pageSize + top;
    if (scrollingElement.tagName === "HTML") {
      return pageOffset + scrollingElement.scrollTop;
    }
    return pageOffset;
  }
  function getItemOffset(itemElement, pageUp = false) {
    const { top } = itemElement.getBoundingClientRect();
    if (pageUp) {
      return top + itemElement.clientHeight;
    }
    return top;
  }
  function findNextPageItemId(element, store, next2, pageUp = false) {
    var _a;
    if (!store) return;
    if (!next2) return;
    const { renderedItems } = store.getState();
    const scrollingElement = getScrollingElement(element);
    if (!scrollingElement) return;
    const nextPageOffset = getNextPageOffset(scrollingElement, pageUp);
    let id3;
    let prevDifference;
    for (let i3 = 0; i3 < renderedItems.length; i3 += 1) {
      const previousId = id3;
      id3 = next2(i3);
      if (!id3) break;
      if (id3 === previousId) continue;
      const itemElement = (_a = getEnabledItem(store, id3)) == null ? void 0 : _a.element;
      if (!itemElement) continue;
      const itemOffset = getItemOffset(itemElement, pageUp);
      const difference = itemOffset - nextPageOffset;
      const absDifference = Math.abs(difference);
      if (pageUp && difference <= 0 || !pageUp && difference >= 0) {
        if (prevDifference !== void 0 && prevDifference < absDifference) {
          id3 = previousId;
        }
        break;
      }
      prevDifference = absDifference;
    }
    return id3;
  }
  function targetIsAnotherItem(event, store) {
    if (isSelfTarget(event)) return false;
    return isItem(store, event.target);
  }
  var useCompositeItem = createHook(
    function useCompositeItem2({
      store,
      rowId: rowIdProp,
      preventScrollOnKeyDown = false,
      moveOnKeyPress = true,
      tabbable = false,
      getItem: getItemProp,
      "aria-setsize": ariaSetSizeProp,
      "aria-posinset": ariaPosInSetProp,
      ...props
    }) {
      const context = useCompositeContext();
      store = store || context;
      const id3 = useId(props.id);
      const ref = (0, import_react8.useRef)(null);
      const row = (0, import_react8.useContext)(CompositeRowContext);
      const disabled = disabledFromProps(props);
      const trulyDisabled = disabled && !props.accessibleWhenDisabled;
      const {
        rowId,
        baseElement,
        isActiveItem,
        ariaSetSize,
        ariaPosInSet,
        isTabbable: isTabbable2
      } = useStoreStateObject(store, {
        rowId(state) {
          if (rowIdProp) return rowIdProp;
          if (!state) return;
          if (!(row == null ? void 0 : row.baseElement)) return;
          if (row.baseElement !== state.baseElement) return;
          return row.id;
        },
        baseElement(state) {
          return (state == null ? void 0 : state.baseElement) || void 0;
        },
        isActiveItem(state) {
          return !!state && state.activeId === id3;
        },
        ariaSetSize(state) {
          if (ariaSetSizeProp != null) return ariaSetSizeProp;
          if (!state) return;
          if (!(row == null ? void 0 : row.ariaSetSize)) return;
          if (row.baseElement !== state.baseElement) return;
          return row.ariaSetSize;
        },
        ariaPosInSet(state) {
          if (ariaPosInSetProp != null) return ariaPosInSetProp;
          if (!state) return;
          if (!(row == null ? void 0 : row.ariaPosInSet)) return;
          if (row.baseElement !== state.baseElement) return;
          const itemsInRow = state.renderedItems.filter(
            (item2) => item2.rowId === rowId
          );
          return row.ariaPosInSet + itemsInRow.findIndex((item2) => item2.id === id3);
        },
        isTabbable(state) {
          if (!(state == null ? void 0 : state.renderedItems.length)) return true;
          if (state.virtualFocus) return false;
          if (tabbable) return true;
          if (state.activeId === null) return false;
          const item2 = store == null ? void 0 : store.item(state.activeId);
          if (item2 == null ? void 0 : item2.disabled) return true;
          if (!(item2 == null ? void 0 : item2.element)) return true;
          return state.activeId === id3;
        }
      });
      const getItem = (0, import_react8.useCallback)(
        (item2) => {
          var _a;
          const nextItem = {
            ...item2,
            id: id3 || item2.id,
            rowId,
            disabled: !!trulyDisabled,
            children: (_a = item2.element) == null ? void 0 : _a.textContent
          };
          if (getItemProp) {
            return getItemProp(nextItem);
          }
          return nextItem;
        },
        [id3, rowId, trulyDisabled, getItemProp]
      );
      const onFocusProp = props.onFocus;
      const hasFocusedComposite = (0, import_react8.useRef)(false);
      const onFocus = useEvent((event) => {
        onFocusProp == null ? void 0 : onFocusProp(event);
        if (event.defaultPrevented) return;
        if (isPortalEvent(event)) return;
        if (!id3) return;
        if (!store) return;
        if (targetIsAnotherItem(event, store)) return;
        const { virtualFocus, baseElement: baseElement2 } = store.getState();
        store.setActiveId(id3);
        if (isTextbox(event.currentTarget)) {
          selectTextField(event.currentTarget);
        }
        if (!virtualFocus) return;
        if (!isSelfTarget(event)) return;
        if (isEditableElement(event.currentTarget)) return;
        if (!(baseElement2 == null ? void 0 : baseElement2.isConnected)) return;
        if (isSafari() && event.currentTarget.hasAttribute("data-autofocus")) {
          event.currentTarget.scrollIntoView({
            block: "nearest",
            inline: "nearest"
          });
        }
        hasFocusedComposite.current = true;
        const fromComposite = event.relatedTarget === baseElement2 || isItem(store, event.relatedTarget);
        if (fromComposite) {
          focusSilently(baseElement2);
        } else {
          baseElement2.focus();
        }
      });
      const onBlurCaptureProp = props.onBlurCapture;
      const onBlurCapture = useEvent((event) => {
        onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);
        if (event.defaultPrevented) return;
        const state = store == null ? void 0 : store.getState();
        if ((state == null ? void 0 : state.virtualFocus) && hasFocusedComposite.current) {
          hasFocusedComposite.current = false;
          event.preventDefault();
          event.stopPropagation();
        }
      });
      const onKeyDownProp = props.onKeyDown;
      const preventScrollOnKeyDownProp = useBooleanEvent(preventScrollOnKeyDown);
      const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);
      const onKeyDown = useEvent((event) => {
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        if (event.defaultPrevented) return;
        if (!isSelfTarget(event)) return;
        if (!store) return;
        const { currentTarget } = event;
        const state = store.getState();
        const item2 = store.item(id3);
        const isGrid2 = !!(item2 == null ? void 0 : item2.rowId);
        const isVertical = state.orientation !== "horizontal";
        const isHorizontal = state.orientation !== "vertical";
        const canHomeEnd = () => {
          if (isGrid2) return true;
          if (isHorizontal) return true;
          if (!state.baseElement) return true;
          if (!isTextField(state.baseElement)) return true;
          return false;
        };
        const keyMap = {
          ArrowUp: (isGrid2 || isVertical) && store.up,
          ArrowRight: (isGrid2 || isHorizontal) && store.next,
          ArrowDown: (isGrid2 || isVertical) && store.down,
          ArrowLeft: (isGrid2 || isHorizontal) && store.previous,
          Home: () => {
            if (!canHomeEnd()) return;
            if (!isGrid2 || event.ctrlKey) {
              return store == null ? void 0 : store.first();
            }
            return store == null ? void 0 : store.previous(-1);
          },
          End: () => {
            if (!canHomeEnd()) return;
            if (!isGrid2 || event.ctrlKey) {
              return store == null ? void 0 : store.last();
            }
            return store == null ? void 0 : store.next(-1);
          },
          PageUp: () => {
            return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.up, true);
          },
          PageDown: () => {
            return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.down);
          }
        };
        const action = keyMap[event.key];
        if (action) {
          if (isTextbox(currentTarget)) {
            const selection = getTextboxSelection(currentTarget);
            const isLeft = isHorizontal && event.key === "ArrowLeft";
            const isRight = isHorizontal && event.key === "ArrowRight";
            const isUp = isVertical && event.key === "ArrowUp";
            const isDown = isVertical && event.key === "ArrowDown";
            if (isRight || isDown) {
              const { length: valueLength } = getTextboxValue(currentTarget);
              if (selection.end !== valueLength) return;
            } else if ((isLeft || isUp) && selection.start !== 0) return;
          }
          const nextId = action();
          if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {
            if (!moveOnKeyPressProp(event)) return;
            event.preventDefault();
            store.move(nextId);
          }
        }
      });
      const providerValue = (0, import_react8.useMemo)(
        () => ({ id: id3, baseElement }),
        [id3, baseElement]
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(CompositeItemContext.Provider, { value: providerValue, children: element }),
        [providerValue]
      );
      props = {
        id: id3,
        "data-active-item": isActiveItem || void 0,
        ...props,
        ref: useMergeRefs(ref, props.ref),
        tabIndex: isTabbable2 ? props.tabIndex : -1,
        onFocus,
        onBlurCapture,
        onKeyDown
      };
      props = useCommand(props);
      props = useCollectionItem({
        store,
        ...props,
        getItem,
        shouldRegisterItem: id3 ? props.shouldRegisterItem : false
      });
      return removeUndefinedValues({
        ...props,
        "aria-setsize": ariaSetSize,
        "aria-posinset": ariaPosInSet
      });
    }
  );
  var CompositeItem = memo2(
    forwardRef2(function CompositeItem2(props) {
      const htmlProps = useCompositeItem(props);
      return createElement(TagName4, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/tab/tab.js
  var import_react9 = __toESM(require_react(), 1);
  var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
  var TagName5 = "button";
  var useTab = createHook(function useTab2({
    store,
    getItem: getItemProp,
    ...props
  }) {
    var _a;
    const context = useTabScopedContext();
    store = store || context;
    invariant(
      store,
      "Tab must be wrapped in a TabList component."
    );
    const defaultId = useId();
    const id3 = props.id || defaultId;
    const dimmed = disabledFromProps(props);
    const getItem = (0, import_react9.useCallback)(
      (item2) => {
        const nextItem = { ...item2, dimmed };
        if (getItemProp) {
          return getItemProp(nextItem);
        }
        return nextItem;
      },
      [dimmed, getItemProp]
    );
    const onClickProp = props.onClick;
    const onClick = useEvent((event) => {
      onClickProp == null ? void 0 : onClickProp(event);
      if (event.defaultPrevented) return;
      store == null ? void 0 : store.setSelectedId(id3);
    });
    const panelId = store.panels.useState(
      (state) => {
        var _a2;
        return (_a2 = state.items.find((item2) => item2.tabId === id3)) == null ? void 0 : _a2.id;
      }
    );
    const shouldRegisterItem = defaultId ? props.shouldRegisterItem : false;
    const isActive = store.useState((state) => !!id3 && state.activeId === id3);
    const selected = store.useState((state) => !!id3 && state.selectedId === id3);
    const hasActiveItem2 = store.useState((state) => !!store.item(state.activeId));
    const canRegisterComposedItem = isActive || selected && !hasActiveItem2;
    const accessibleWhenDisabled = selected || ((_a = props.accessibleWhenDisabled) != null ? _a : true);
    const isWithinVirtualFocusComposite = useStoreState(
      store.combobox || store.composite,
      "virtualFocus"
    );
    if (isWithinVirtualFocusComposite) {
      props = {
        ...props,
        tabIndex: -1
      };
    }
    props = {
      id: id3,
      role: "tab",
      "aria-selected": selected,
      "aria-controls": panelId || void 0,
      ...props,
      onClick
    };
    if (store.composite) {
      const defaultProps = {
        id: id3,
        accessibleWhenDisabled,
        store: store.composite,
        shouldRegisterItem: canRegisterComposedItem && shouldRegisterItem,
        rowId: props.rowId,
        render: props.render
      };
      props = {
        ...props,
        render: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
          CompositeItem,
          {
            ...defaultProps,
            render: store.combobox && store.composite !== store.combobox ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(CompositeItem, { ...defaultProps, store: store.combobox }) : defaultProps.render
          }
        )
      };
    }
    props = useCompositeItem({
      store,
      ...props,
      accessibleWhenDisabled,
      getItem,
      shouldRegisterItem
    });
    return props;
  });
  var Tab = memo2(
    forwardRef2(function Tab2(props) {
      const htmlProps = useTab(props);
      return createElement(TagName5, htmlProps);
    })
  );

  // node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js
  function toArray(arg) {
    if (Array.isArray(arg)) {
      return arg;
    }
    return typeof arg !== "undefined" ? [arg] : [];
  }
  function flatten2DArray(array) {
    const flattened = [];
    for (const row of array) {
      flattened.push(...row);
    }
    return flattened;
  }
  function reverseArray(array) {
    return array.slice().reverse();
  }

  // node_modules/@ariakit/react-core/esm/__chunks/ZMWF7ASR.js
  var import_react10 = __toESM(require_react(), 1);
  var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
  var TagName6 = "div";
  function isGrid(items) {
    return items.some((item2) => !!item2.rowId);
  }
  function isPrintableKey(event) {
    const target = event.target;
    if (target && !isTextField(target)) return false;
    return event.key.length === 1 && !event.ctrlKey && !event.metaKey;
  }
  function isModifierKey(event) {
    return event.key === "Shift" || event.key === "Control" || event.key === "Alt" || event.key === "Meta";
  }
  function useKeyboardEventProxy(store, onKeyboardEvent, previousElementRef) {
    return useEvent((event) => {
      var _a;
      onKeyboardEvent == null ? void 0 : onKeyboardEvent(event);
      if (event.defaultPrevented) return;
      if (event.isPropagationStopped()) return;
      if (!isSelfTarget(event)) return;
      if (isModifierKey(event)) return;
      if (isPrintableKey(event)) return;
      const state = store.getState();
      const activeElement = (_a = getEnabledItem(store, state.activeId)) == null ? void 0 : _a.element;
      if (!activeElement) return;
      const { view, ...eventInit } = event;
      const previousElement = previousElementRef == null ? void 0 : previousElementRef.current;
      if (activeElement !== previousElement) {
        activeElement.focus();
      }
      if (!fireKeyboardEvent(activeElement, event.type, eventInit)) {
        event.preventDefault();
      }
      if (event.currentTarget.contains(activeElement)) {
        event.stopPropagation();
      }
    });
  }
  function findFirstEnabledItemInTheLastRow(items) {
    return findFirstEnabledItem(
      flatten2DArray(reverseArray(groupItemsByRows(items)))
    );
  }
  function useScheduleFocus(store) {
    const [scheduled, setScheduled] = (0, import_react10.useState)(false);
    const schedule = (0, import_react10.useCallback)(() => setScheduled(true), []);
    const activeItem = store.useState(
      (state) => getEnabledItem(store, state.activeId)
    );
    (0, import_react10.useEffect)(() => {
      const activeElement = activeItem == null ? void 0 : activeItem.element;
      if (!scheduled) return;
      if (!activeElement) return;
      setScheduled(false);
      activeElement.focus({ preventScroll: true });
    }, [activeItem, scheduled]);
    return schedule;
  }
  var useComposite = createHook(
    function useComposite2({
      store,
      composite = true,
      focusOnMove = composite,
      moveOnKeyPress = true,
      ...props
    }) {
      const context = useCompositeProviderContext();
      store = store || context;
      invariant(
        store,
        "Composite must receive a `store` prop or be wrapped in a CompositeProvider component."
      );
      const ref = (0, import_react10.useRef)(null);
      const previousElementRef = (0, import_react10.useRef)(null);
      const scheduleFocus = useScheduleFocus(store);
      const moves = store.useState("moves");
      const [, setBaseElement] = useTransactionState(
        composite ? store.setBaseElement : null
      );
      (0, import_react10.useEffect)(() => {
        var _a;
        if (!store) return;
        if (!moves) return;
        if (!composite) return;
        if (!focusOnMove) return;
        const { activeId: activeId2 } = store.getState();
        const itemElement = (_a = getEnabledItem(store, activeId2)) == null ? void 0 : _a.element;
        if (!itemElement) return;
        focusIntoView(itemElement);
      }, [store, moves, composite, focusOnMove]);
      useSafeLayoutEffect(() => {
        if (!store) return;
        if (!moves) return;
        if (!composite) return;
        const { baseElement, activeId: activeId2 } = store.getState();
        const isSelfAcive = activeId2 === null;
        if (!isSelfAcive) return;
        if (!baseElement) return;
        const previousElement = previousElementRef.current;
        previousElementRef.current = null;
        if (previousElement) {
          fireBlurEvent(previousElement, { relatedTarget: baseElement });
        }
        if (!hasFocus(baseElement)) {
          baseElement.focus();
        }
      }, [store, moves, composite]);
      const activeId = store.useState("activeId");
      const virtualFocus = store.useState("virtualFocus");
      useSafeLayoutEffect(() => {
        var _a;
        if (!store) return;
        if (!composite) return;
        if (!virtualFocus) return;
        const previousElement = previousElementRef.current;
        previousElementRef.current = null;
        if (!previousElement) return;
        const activeElement = (_a = getEnabledItem(store, activeId)) == null ? void 0 : _a.element;
        const relatedTarget = activeElement || getActiveElement(previousElement);
        if (relatedTarget === previousElement) return;
        fireBlurEvent(previousElement, { relatedTarget });
      }, [store, activeId, virtualFocus, composite]);
      const onKeyDownCapture = useKeyboardEventProxy(
        store,
        props.onKeyDownCapture,
        previousElementRef
      );
      const onKeyUpCapture = useKeyboardEventProxy(
        store,
        props.onKeyUpCapture,
        previousElementRef
      );
      const onFocusCaptureProp = props.onFocusCapture;
      const onFocusCapture = useEvent((event) => {
        onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);
        if (event.defaultPrevented) return;
        if (!store) return;
        const { virtualFocus: virtualFocus2 } = store.getState();
        if (!virtualFocus2) return;
        const previousActiveElement = event.relatedTarget;
        const isSilentlyFocused = silentlyFocused(event.currentTarget);
        if (isSelfTarget(event) && isSilentlyFocused) {
          event.stopPropagation();
          previousElementRef.current = previousActiveElement;
        }
      });
      const onFocusProp = props.onFocus;
      const onFocus = useEvent((event) => {
        onFocusProp == null ? void 0 : onFocusProp(event);
        if (event.defaultPrevented) return;
        if (!composite) return;
        if (!store) return;
        const { relatedTarget } = event;
        const { virtualFocus: virtualFocus2 } = store.getState();
        if (virtualFocus2) {
          if (isSelfTarget(event) && !isItem(store, relatedTarget)) {
            queueMicrotask(scheduleFocus);
          }
        } else if (isSelfTarget(event)) {
          store.setActiveId(null);
        }
      });
      const onBlurCaptureProp = props.onBlurCapture;
      const onBlurCapture = useEvent((event) => {
        var _a;
        onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);
        if (event.defaultPrevented) return;
        if (!store) return;
        const { virtualFocus: virtualFocus2, activeId: activeId2 } = store.getState();
        if (!virtualFocus2) return;
        const activeElement = (_a = getEnabledItem(store, activeId2)) == null ? void 0 : _a.element;
        const nextActiveElement = event.relatedTarget;
        const nextActiveElementIsItem = isItem(store, nextActiveElement);
        const previousElement = previousElementRef.current;
        previousElementRef.current = null;
        if (isSelfTarget(event) && nextActiveElementIsItem) {
          if (nextActiveElement === activeElement) {
            if (previousElement && previousElement !== nextActiveElement) {
              fireBlurEvent(previousElement, event);
            }
          } else if (activeElement) {
            fireBlurEvent(activeElement, event);
          } else if (previousElement) {
            fireBlurEvent(previousElement, event);
          }
          event.stopPropagation();
        } else {
          const targetIsItem = isItem(store, event.target);
          if (!targetIsItem && activeElement) {
            fireBlurEvent(activeElement, event);
          }
        }
      });
      const onKeyDownProp = props.onKeyDown;
      const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);
      const onKeyDown = useEvent((event) => {
        var _a;
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        if (event.nativeEvent.isComposing) return;
        if (event.defaultPrevented) return;
        if (!store) return;
        if (!isSelfTarget(event)) return;
        const { orientation, renderedItems, activeId: activeId2 } = store.getState();
        const activeItem = getEnabledItem(store, activeId2);
        if ((_a = activeItem == null ? void 0 : activeItem.element) == null ? void 0 : _a.isConnected) return;
        const isVertical = orientation !== "horizontal";
        const isHorizontal = orientation !== "vertical";
        const grid = isGrid(renderedItems);
        const isHorizontalKey = event.key === "ArrowLeft" || event.key === "ArrowRight" || event.key === "Home" || event.key === "End";
        if (isHorizontalKey && isTextField(event.currentTarget)) return;
        const up = () => {
          if (grid) {
            const item2 = findFirstEnabledItemInTheLastRow(renderedItems);
            return item2 == null ? void 0 : item2.id;
          }
          return store == null ? void 0 : store.last();
        };
        const keyMap = {
          ArrowUp: (grid || isVertical) && up,
          ArrowRight: (grid || isHorizontal) && store.first,
          ArrowDown: (grid || isVertical) && store.first,
          ArrowLeft: (grid || isHorizontal) && store.last,
          Home: store.first,
          End: store.last,
          PageUp: store.first,
          PageDown: store.last
        };
        const action = keyMap[event.key];
        if (action) {
          const id3 = action();
          if (id3 !== void 0) {
            if (!moveOnKeyPressProp(event)) return;
            event.preventDefault();
            store.move(id3);
          }
        }
      });
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CompositeContextProvider, { value: store, children: element }),
        [store]
      );
      const activeDescendant = store.useState((state) => {
        var _a;
        if (!store) return;
        if (!composite) return;
        if (!state.virtualFocus) return;
        return (_a = getEnabledItem(store, state.activeId)) == null ? void 0 : _a.id;
      });
      props = {
        "aria-activedescendant": activeDescendant,
        ...props,
        ref: useMergeRefs(ref, setBaseElement, props.ref),
        onKeyDownCapture,
        onKeyUpCapture,
        onFocusCapture,
        onFocus,
        onBlurCapture,
        onKeyDown
      };
      const focusable = store.useState(
        (state) => composite && (state.virtualFocus || state.activeId === null)
      );
      props = useFocusable({ focusable, ...props });
      return props;
    }
  );
  var Composite = forwardRef2(function Composite2(props) {
    const htmlProps = useComposite(props);
    return createElement(TagName6, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/tab/tab-list.js
  var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
  var TagName7 = "div";
  var useTabList = createHook(
    function useTabList2({ store, ...props }) {
      const context = useTabProviderContext();
      store = store || context;
      invariant(
        store,
        "TabList must receive a `store` prop or be wrapped in a TabProvider component."
      );
      const orientation = store.useState(
        (state) => state.orientation === "both" ? void 0 : state.orientation
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(TabScopedContextProvider, { value: store, children: element }),
        [store]
      );
      if (store.composite) {
        props = {
          focusable: false,
          ...props
        };
      }
      props = {
        role: "tablist",
        "aria-orientation": orientation,
        ...props
      };
      props = useComposite({ store, ...props });
      return props;
    }
  );
  var TabList = forwardRef2(function TabList2(props) {
    const htmlProps = useTabList(props);
    return createElement(TagName7, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/LVDQFHCH.js
  var ctx4 = createStoreContext();
  var useDisclosureContext = ctx4.useContext;
  var useDisclosureScopedContext = ctx4.useScopedContext;
  var useDisclosureProviderContext = ctx4.useProviderContext;
  var DisclosureContextProvider = ctx4.ContextProvider;
  var DisclosureScopedContextProvider = ctx4.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/A62MDFCW.js
  var import_react11 = __toESM(require_react(), 1);
  var ctx5 = createStoreContext(
    [DisclosureContextProvider],
    [DisclosureScopedContextProvider]
  );
  var useDialogContext = ctx5.useContext;
  var useDialogScopedContext = ctx5.useScopedContext;
  var useDialogProviderContext = ctx5.useProviderContext;
  var DialogContextProvider = ctx5.ContextProvider;
  var DialogScopedContextProvider = ctx5.ScopedContextProvider;
  var DialogHeadingContext = (0, import_react11.createContext)(void 0);
  var DialogDescriptionContext = (0, import_react11.createContext)(void 0);

  // node_modules/@ariakit/react-core/esm/__chunks/6B3RXHKP.js
  var import_react12 = __toESM(require_react(), 1);
  var import_react_dom = __toESM(require_react_dom(), 1);
  var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
  var TagName8 = "div";
  function afterTimeout(timeoutMs, cb) {
    const timeoutId = setTimeout(cb, timeoutMs);
    return () => clearTimeout(timeoutId);
  }
  function afterPaint2(cb) {
    let raf = requestAnimationFrame(() => {
      raf = requestAnimationFrame(cb);
    });
    return () => cancelAnimationFrame(raf);
  }
  function parseCSSTime(...times) {
    return times.join(", ").split(", ").reduce((longestTime, currentTimeString) => {
      const multiplier = currentTimeString.endsWith("ms") ? 1 : 1e3;
      const currentTime = Number.parseFloat(currentTimeString || "0s") * multiplier;
      if (currentTime > longestTime) return currentTime;
      return longestTime;
    }, 0);
  }
  function isHidden(mounted, hidden, alwaysVisible) {
    return !alwaysVisible && hidden !== false && (!mounted || !!hidden);
  }
  var useDisclosureContent = createHook(function useDisclosureContent2({ store, alwaysVisible, ...props }) {
    const context = useDisclosureProviderContext();
    store = store || context;
    invariant(
      store,
      "DisclosureContent must receive a `store` prop or be wrapped in a DisclosureProvider component."
    );
    const ref = (0, import_react12.useRef)(null);
    const id3 = useId(props.id);
    const [transition, setTransition] = (0, import_react12.useState)(null);
    const open = store.useState("open");
    const mounted = store.useState("mounted");
    const animated = store.useState("animated");
    const contentElement = store.useState("contentElement");
    const otherElement = useStoreState(store.disclosure, "contentElement");
    useSafeLayoutEffect(() => {
      if (!ref.current) return;
      store == null ? void 0 : store.setContentElement(ref.current);
    }, [store]);
    useSafeLayoutEffect(() => {
      let previousAnimated;
      store == null ? void 0 : store.setState("animated", (animated2) => {
        previousAnimated = animated2;
        return true;
      });
      return () => {
        if (previousAnimated === void 0) return;
        store == null ? void 0 : store.setState("animated", previousAnimated);
      };
    }, [store]);
    useSafeLayoutEffect(() => {
      if (!animated) return;
      if (!(contentElement == null ? void 0 : contentElement.isConnected)) {
        setTransition(null);
        return;
      }
      return afterPaint2(() => {
        setTransition(open ? "enter" : mounted ? "leave" : null);
      });
    }, [animated, contentElement, open, mounted]);
    useSafeLayoutEffect(() => {
      if (!store) return;
      if (!animated) return;
      if (!transition) return;
      if (!contentElement) return;
      const stopAnimation = () => store == null ? void 0 : store.setState("animating", false);
      const stopAnimationSync = () => (0, import_react_dom.flushSync)(stopAnimation);
      if (transition === "leave" && open) return;
      if (transition === "enter" && !open) return;
      if (typeof animated === "number") {
        const timeout2 = animated;
        return afterTimeout(timeout2, stopAnimationSync);
      }
      const {
        transitionDuration,
        animationDuration,
        transitionDelay,
        animationDelay
      } = getComputedStyle(contentElement);
      const {
        transitionDuration: transitionDuration2 = "0",
        animationDuration: animationDuration2 = "0",
        transitionDelay: transitionDelay2 = "0",
        animationDelay: animationDelay2 = "0"
      } = otherElement ? getComputedStyle(otherElement) : {};
      const delay2 = parseCSSTime(
        transitionDelay,
        animationDelay,
        transitionDelay2,
        animationDelay2
      );
      const duration = parseCSSTime(
        transitionDuration,
        animationDuration,
        transitionDuration2,
        animationDuration2
      );
      const timeout = delay2 + duration;
      if (!timeout) {
        if (transition === "enter") {
          store.setState("animated", false);
        }
        stopAnimation();
        return;
      }
      const frameRate = 1e3 / 60;
      const maxTimeout = Math.max(timeout - frameRate, 0);
      return afterTimeout(maxTimeout, stopAnimationSync);
    }, [store, animated, contentElement, otherElement, open, transition]);
    props = useWrapElement(
      props,
      (element) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DialogScopedContextProvider, { value: store, children: element }),
      [store]
    );
    const hidden = isHidden(mounted, props.hidden, alwaysVisible);
    const styleProp = props.style;
    const style2 = (0, import_react12.useMemo)(() => {
      if (hidden) {
        return { ...styleProp, display: "none" };
      }
      return styleProp;
    }, [hidden, styleProp]);
    props = {
      id: id3,
      "data-open": open || void 0,
      "data-enter": transition === "enter" || void 0,
      "data-leave": transition === "leave" || void 0,
      hidden,
      ...props,
      ref: useMergeRefs(id3 ? store.setContentElement : null, ref, props.ref),
      style: style2
    };
    return removeUndefinedValues(props);
  });
  var DisclosureContentImpl = forwardRef2(function DisclosureContentImpl2(props) {
    const htmlProps = useDisclosureContent(props);
    return createElement(TagName8, htmlProps);
  });
  var DisclosureContent = forwardRef2(function DisclosureContent2({
    unmountOnHide,
    ...props
  }) {
    const context = useDisclosureProviderContext();
    const store = props.store || context;
    const mounted = useStoreState(
      store,
      (state) => !unmountOnHide || (state == null ? void 0 : state.mounted)
    );
    if (mounted === false) return null;
    return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DisclosureContentImpl, { ...props });
  });

  // node_modules/@ariakit/core/esm/__chunks/75BJEVSH.js
  function createDisclosureStore(props = {}) {
    const store = mergeStore(
      props.store,
      omit2(props.disclosure, ["contentElement", "disclosureElement"])
    );
    throwOnConflictingProps(props, store);
    const syncState = store == null ? void 0 : store.getState();
    const open = defaultValue(
      props.open,
      syncState == null ? void 0 : syncState.open,
      props.defaultOpen,
      false
    );
    const animated = defaultValue(props.animated, syncState == null ? void 0 : syncState.animated, false);
    const initialState = {
      open,
      animated,
      animating: !!animated && open,
      mounted: open,
      contentElement: defaultValue(syncState == null ? void 0 : syncState.contentElement, null),
      disclosureElement: defaultValue(syncState == null ? void 0 : syncState.disclosureElement, null)
    };
    const disclosure = createStore(initialState, store);
    setup(
      disclosure,
      () => sync(disclosure, ["animated", "animating"], (state) => {
        if (state.animated) return;
        disclosure.setState("animating", false);
      })
    );
    setup(
      disclosure,
      () => subscribe(disclosure, ["open"], () => {
        if (!disclosure.getState().animated) return;
        disclosure.setState("animating", true);
      })
    );
    setup(
      disclosure,
      () => sync(disclosure, ["open", "animating"], (state) => {
        disclosure.setState("mounted", state.open || state.animating);
      })
    );
    return {
      ...disclosure,
      disclosure: props.disclosure,
      setOpen: (value) => disclosure.setState("open", value),
      show: () => disclosure.setState("open", true),
      hide: () => disclosure.setState("open", false),
      toggle: () => disclosure.setState("open", (open2) => !open2),
      stopAnimation: () => disclosure.setState("animating", false),
      setContentElement: (value) => disclosure.setState("contentElement", value),
      setDisclosureElement: (value) => disclosure.setState("disclosureElement", value)
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/WLZ6H5FH.js
  function useDisclosureStoreProps(store, update, props) {
    useUpdateEffect(update, [props.store, props.disclosure]);
    useStoreProps(store, props, "open", "setOpen");
    useStoreProps(store, props, "mounted", "setMounted");
    useStoreProps(store, props, "animated");
    return Object.assign(store, { disclosure: props.disclosure });
  }
  function useDisclosureStore(props = {}) {
    const [store, update] = useStore(createDisclosureStore, props);
    return useDisclosureStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/tab/tab-panel.js
  var import_react13 = __toESM(require_react(), 1);
  var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
  var TagName9 = "div";
  var useTabPanel = createHook(
    function useTabPanel2({
      store,
      unmountOnHide,
      tabId: tabIdProp,
      getItem: getItemProp,
      scrollRestoration,
      scrollElement,
      ...props
    }) {
      const context = useTabProviderContext();
      store = store || context;
      invariant(
        store,
        "TabPanel must receive a `store` prop or be wrapped in a TabProvider component."
      );
      const ref = (0, import_react13.useRef)(null);
      const id3 = useId(props.id);
      const tabId = useStoreState(
        store.panels,
        () => {
          var _a;
          return tabIdProp || ((_a = store == null ? void 0 : store.panels.item(id3)) == null ? void 0 : _a.tabId);
        }
      );
      const open = useStoreState(
        store,
        (state) => !!tabId && state.selectedId === tabId
      );
      const disclosure = useDisclosureStore({ open });
      const mounted = useStoreState(disclosure, "mounted");
      const scrollPositionRef = (0, import_react13.useRef)(
        /* @__PURE__ */ new Map()
      );
      const getScrollElement = useEvent(() => {
        const panelElement = ref.current;
        if (!panelElement) return null;
        if (!scrollElement) return panelElement;
        if (typeof scrollElement === "function") {
          return scrollElement(panelElement);
        }
        if ("current" in scrollElement) {
          return scrollElement.current;
        }
        return scrollElement;
      });
      (0, import_react13.useEffect)(() => {
        var _a, _b;
        if (!scrollRestoration) return;
        if (!mounted) return;
        const element = getScrollElement();
        if (!element) return;
        if (scrollRestoration === "reset") {
          element.scroll(0, 0);
          return;
        }
        if (!tabId) return;
        const position2 = scrollPositionRef.current.get(tabId);
        element.scroll((_a = position2 == null ? void 0 : position2.x) != null ? _a : 0, (_b = position2 == null ? void 0 : position2.y) != null ? _b : 0);
        const onScroll = () => {
          scrollPositionRef.current.set(tabId, {
            x: element.scrollLeft,
            y: element.scrollTop
          });
        };
        element.addEventListener("scroll", onScroll);
        return () => {
          element.removeEventListener("scroll", onScroll);
        };
      }, [scrollRestoration, mounted, tabId, getScrollElement, store]);
      const [hasTabbableChildren, setHasTabbableChildren] = (0, import_react13.useState)(false);
      (0, import_react13.useEffect)(() => {
        const element = ref.current;
        if (!element) return;
        const tabbable = getAllTabbableIn(element);
        setHasTabbableChildren(!!tabbable.length);
      }, []);
      const getItem = (0, import_react13.useCallback)(
        (item2) => {
          const nextItem = { ...item2, id: id3 || item2.id, tabId: tabIdProp };
          if (getItemProp) {
            return getItemProp(nextItem);
          }
          return nextItem;
        },
        [id3, tabIdProp, getItemProp]
      );
      const onKeyDownProp = props.onKeyDown;
      const onKeyDown = useEvent((event) => {
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        if (event.defaultPrevented) return;
        if (!(store == null ? void 0 : store.composite)) return;
        const keyMap = {
          ArrowLeft: store.previous,
          ArrowRight: store.next,
          Home: store.first,
          End: store.last
        };
        const action = keyMap[event.key];
        if (!action) return;
        const { selectedId } = store.getState();
        const nextId = action({ activeId: selectedId });
        if (!nextId) return;
        event.preventDefault();
        store.move(nextId);
      });
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(TabScopedContextProvider, { value: store, children: element }),
        [store]
      );
      props = {
        id: id3,
        role: "tabpanel",
        "aria-labelledby": tabId || void 0,
        ...props,
        children: unmountOnHide && !mounted ? null : props.children,
        ref: useMergeRefs(ref, props.ref),
        onKeyDown
      };
      props = useFocusable({
        // If the tab panel is rendered as part of another composite widget such
        // as combobox, it should not be focusable.
        focusable: !store.composite && !hasTabbableChildren,
        ...props
      });
      props = useDisclosureContent({ store: disclosure, ...props });
      props = useCollectionItem({ store: store.panels, ...props, getItem });
      return props;
    }
  );
  var TabPanel = forwardRef2(function TabPanel2(props) {
    const htmlProps = useTabPanel(props);
    return createElement(TagName9, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/JMU4N4M5.js
  var ctx6 = createStoreContext(
    [DialogContextProvider],
    [DialogScopedContextProvider]
  );
  var usePopoverContext = ctx6.useContext;
  var usePopoverScopedContext = ctx6.useScopedContext;
  var usePopoverProviderContext = ctx6.useProviderContext;
  var PopoverContextProvider = ctx6.ContextProvider;
  var PopoverScopedContextProvider = ctx6.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/AEGCXJZV.js
  var import_react14 = __toESM(require_react(), 1);
  var ctx7 = createStoreContext(
    [PopoverContextProvider, CompositeContextProvider],
    [PopoverScopedContextProvider, CompositeScopedContextProvider]
  );
  var useSelectContext = ctx7.useContext;
  var useSelectScopedContext = ctx7.useScopedContext;
  var useSelectProviderContext = ctx7.useProviderContext;
  var SelectContextProvider = ctx7.ContextProvider;
  var SelectScopedContextProvider = ctx7.ScopedContextProvider;
  var SelectItemCheckedContext = (0, import_react14.createContext)(false);
  var SelectHeadingContext = (0, import_react14.createContext)(null);

  // node_modules/@ariakit/core/esm/__chunks/N5XGANPW.js
  function getCommonParent(items) {
    var _a;
    const firstItem = items.find((item2) => !!item2.element);
    const lastItem = [...items].reverse().find((item2) => !!item2.element);
    let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;
    while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {
      const parent = parentElement;
      if (lastItem && parent.contains(lastItem.element)) {
        return parentElement;
      }
      parentElement = parentElement.parentElement;
    }
    return getDocument(parentElement).body;
  }
  function getPrivateStore(store) {
    return store == null ? void 0 : store.__unstablePrivateStore;
  }
  function createCollectionStore(props = {}) {
    var _a;
    throwOnConflictingProps(props, props.store);
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    const items = defaultValue(
      props.items,
      syncState == null ? void 0 : syncState.items,
      props.defaultItems,
      []
    );
    const itemsMap = new Map(items.map((item2) => [item2.id, item2]));
    const initialState = {
      items,
      renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])
    };
    const syncPrivateStore = getPrivateStore(props.store);
    const privateStore = createStore(
      { items, renderedItems: initialState.renderedItems },
      syncPrivateStore
    );
    const collection = createStore(initialState, props.store);
    const sortItems = (renderedItems) => {
      const sortedItems = sortBasedOnDOMPosition(renderedItems, (i3) => i3.element);
      privateStore.setState("renderedItems", sortedItems);
      collection.setState("renderedItems", sortedItems);
    };
    setup(collection, () => init(privateStore));
    setup(privateStore, () => {
      return batch(privateStore, ["items"], (state) => {
        collection.setState("items", state.items);
      });
    });
    setup(privateStore, () => {
      return batch(privateStore, ["renderedItems"], (state) => {
        let firstRun = true;
        let raf = requestAnimationFrame(() => {
          const { renderedItems } = collection.getState();
          if (state.renderedItems === renderedItems) return;
          sortItems(state.renderedItems);
        });
        if (typeof IntersectionObserver !== "function") {
          return () => cancelAnimationFrame(raf);
        }
        const ioCallback = () => {
          if (firstRun) {
            firstRun = false;
            return;
          }
          cancelAnimationFrame(raf);
          raf = requestAnimationFrame(() => sortItems(state.renderedItems));
        };
        const root = getCommonParent(state.renderedItems);
        const observer = new IntersectionObserver(ioCallback, { root });
        for (const item2 of state.renderedItems) {
          if (!item2.element) continue;
          observer.observe(item2.element);
        }
        return () => {
          cancelAnimationFrame(raf);
          observer.disconnect();
        };
      });
    });
    const mergeItem = (item2, setItems, canDeleteFromMap = false) => {
      let prevItem;
      setItems((items2) => {
        const index2 = items2.findIndex(({ id: id3 }) => id3 === item2.id);
        const nextItems = items2.slice();
        if (index2 !== -1) {
          prevItem = items2[index2];
          const nextItem = { ...prevItem, ...item2 };
          nextItems[index2] = nextItem;
          itemsMap.set(item2.id, nextItem);
        } else {
          nextItems.push(item2);
          itemsMap.set(item2.id, item2);
        }
        return nextItems;
      });
      const unmergeItem = () => {
        setItems((items2) => {
          if (!prevItem) {
            if (canDeleteFromMap) {
              itemsMap.delete(item2.id);
            }
            return items2.filter(({ id: id3 }) => id3 !== item2.id);
          }
          const index2 = items2.findIndex(({ id: id3 }) => id3 === item2.id);
          if (index2 === -1) return items2;
          const nextItems = items2.slice();
          nextItems[index2] = prevItem;
          itemsMap.set(item2.id, prevItem);
          return nextItems;
        });
      };
      return unmergeItem;
    };
    const registerItem = (item2) => mergeItem(
      item2,
      (getItems) => privateStore.setState("items", getItems),
      true
    );
    return {
      ...collection,
      registerItem,
      renderItem: (item2) => chain(
        registerItem(item2),
        mergeItem(
          item2,
          (getItems) => privateStore.setState("renderedItems", getItems)
        )
      ),
      item: (id3) => {
        if (!id3) return null;
        let item2 = itemsMap.get(id3);
        if (!item2) {
          const { items: items2 } = privateStore.getState();
          item2 = items2.find((item22) => item22.id === id3);
          if (item2) {
            itemsMap.set(id3, item2);
          }
        }
        return item2 || null;
      },
      // @ts-expect-error Internal
      __unstablePrivateStore: privateStore
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/GVAFFF2B.js
  function useCollectionStoreProps(store, update, props) {
    useUpdateEffect(update, [props.store]);
    useStoreProps(store, props, "items", "setItems");
    return store;
  }

  // node_modules/@ariakit/core/esm/__chunks/RVTIKFRL.js
  var NULL_ITEM2 = { id: null };
  function findFirstEnabledItem2(items, excludeId) {
    return items.find((item2) => {
      if (excludeId) {
        return !item2.disabled && item2.id !== excludeId;
      }
      return !item2.disabled;
    });
  }
  function getEnabledItems(items, excludeId) {
    return items.filter((item2) => {
      if (excludeId) {
        return !item2.disabled && item2.id !== excludeId;
      }
      return !item2.disabled;
    });
  }
  function getItemsInRow(items, rowId) {
    return items.filter((item2) => item2.rowId === rowId);
  }
  function flipItems2(items, activeId, shouldInsertNullItem = false) {
    const index2 = items.findIndex((item2) => item2.id === activeId);
    return [
      ...items.slice(index2 + 1),
      ...shouldInsertNullItem ? [NULL_ITEM2] : [],
      ...items.slice(0, index2)
    ];
  }
  function groupItemsByRows2(items) {
    const rows = [];
    for (const item2 of items) {
      const row = rows.find((currentRow) => {
        var _a;
        return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item2.rowId;
      });
      if (row) {
        row.push(item2);
      } else {
        rows.push([item2]);
      }
    }
    return rows;
  }
  function getMaxRowLength(array) {
    let maxLength = 0;
    for (const { length: length2 } of array) {
      if (length2 > maxLength) {
        maxLength = length2;
      }
    }
    return maxLength;
  }
  function createEmptyItem(rowId) {
    return {
      id: "__EMPTY_ITEM__",
      disabled: true,
      rowId
    };
  }
  function normalizeRows(rows, activeId, focusShift) {
    const maxLength = getMaxRowLength(rows);
    for (const row of rows) {
      for (let i3 = 0; i3 < maxLength; i3 += 1) {
        const item2 = row[i3];
        if (!item2 || focusShift && item2.disabled) {
          const isFirst = i3 === 0;
          const previousItem = isFirst && focusShift ? findFirstEnabledItem2(row) : row[i3 - 1];
          row[i3] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);
        }
      }
    }
    return rows;
  }
  function verticalizeItems(items) {
    const rows = groupItemsByRows2(items);
    const maxLength = getMaxRowLength(rows);
    const verticalized = [];
    for (let i3 = 0; i3 < maxLength; i3 += 1) {
      for (const row of rows) {
        const item2 = row[i3];
        if (item2) {
          verticalized.push({
            ...item2,
            // If there's no rowId, it means that it's not a grid composite, but
            // a single row instead. So, instead of verticalizing it, that is,
            // assigning a different rowId based on the column index, we keep it
            // undefined so they will be part of the same row. This is useful
            // when using up/down on one-dimensional composites.
            rowId: item2.rowId ? `${i3}` : void 0
          });
        }
      }
    }
    return verticalized;
  }
  function createCompositeStore(props = {}) {
    var _a;
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    const collection = createCollectionStore(props);
    const activeId = defaultValue(
      props.activeId,
      syncState == null ? void 0 : syncState.activeId,
      props.defaultActiveId
    );
    const initialState = {
      ...collection.getState(),
      id: defaultValue(
        props.id,
        syncState == null ? void 0 : syncState.id,
        `id-${Math.random().toString(36).slice(2, 8)}`
      ),
      activeId,
      baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),
      includesBaseElement: defaultValue(
        props.includesBaseElement,
        syncState == null ? void 0 : syncState.includesBaseElement,
        activeId === null
      ),
      moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),
      orientation: defaultValue(
        props.orientation,
        syncState == null ? void 0 : syncState.orientation,
        "both"
      ),
      rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),
      virtualFocus: defaultValue(
        props.virtualFocus,
        syncState == null ? void 0 : syncState.virtualFocus,
        false
      ),
      focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),
      focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),
      focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)
    };
    const composite = createStore(initialState, collection, props.store);
    setup(
      composite,
      () => sync(composite, ["renderedItems", "activeId"], (state) => {
        composite.setState("activeId", (activeId2) => {
          var _a2;
          if (activeId2 !== void 0) return activeId2;
          return (_a2 = findFirstEnabledItem2(state.renderedItems)) == null ? void 0 : _a2.id;
        });
      })
    );
    const getNextId = (direction = "next", options2 = {}) => {
      var _a2, _b;
      const defaultState = composite.getState();
      const {
        skip = 0,
        activeId: activeId2 = defaultState.activeId,
        focusShift = defaultState.focusShift,
        focusLoop = defaultState.focusLoop,
        focusWrap = defaultState.focusWrap,
        includesBaseElement = defaultState.includesBaseElement,
        renderedItems = defaultState.renderedItems,
        rtl: rtl2 = defaultState.rtl
      } = options2;
      const isVerticalDirection = direction === "up" || direction === "down";
      const isNextDirection = direction === "next" || direction === "down";
      const canReverse = isNextDirection ? rtl2 && !isVerticalDirection : !rtl2 || isVerticalDirection;
      const canShift = focusShift && !skip;
      let items = !isVerticalDirection ? renderedItems : flatten2DArray(
        normalizeRows(groupItemsByRows2(renderedItems), activeId2, canShift)
      );
      items = canReverse ? reverseArray(items) : items;
      items = isVerticalDirection ? verticalizeItems(items) : items;
      if (activeId2 == null) {
        return (_a2 = findFirstEnabledItem2(items)) == null ? void 0 : _a2.id;
      }
      const activeItem = items.find((item2) => item2.id === activeId2);
      if (!activeItem) {
        return (_b = findFirstEnabledItem2(items)) == null ? void 0 : _b.id;
      }
      const isGrid2 = items.some((item2) => item2.rowId);
      const activeIndex = items.indexOf(activeItem);
      const nextItems = items.slice(activeIndex + 1);
      const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);
      if (skip) {
        const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);
        const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.
        nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];
        return nextItem2 == null ? void 0 : nextItem2.id;
      }
      const canLoop = focusLoop && (isVerticalDirection ? focusLoop !== "horizontal" : focusLoop !== "vertical");
      const canWrap = isGrid2 && focusWrap && (isVerticalDirection ? focusWrap !== "horizontal" : focusWrap !== "vertical");
      const hasNullItem = isNextDirection ? (!isGrid2 || isVerticalDirection) && canLoop && includesBaseElement : isVerticalDirection ? includesBaseElement : false;
      if (canLoop) {
        const loopItems = canWrap && !hasNullItem ? items : getItemsInRow(items, activeItem.rowId);
        const sortedItems = flipItems2(loopItems, activeId2, hasNullItem);
        const nextItem2 = findFirstEnabledItem2(sortedItems, activeId2);
        return nextItem2 == null ? void 0 : nextItem2.id;
      }
      if (canWrap) {
        const nextItem2 = findFirstEnabledItem2(
          // We can use nextItems, which contains all the next items, including
          // items from other rows, to wrap between rows. However, if there is a
          // null item (the composite container), we'll only use the next items in
          // the row. So moving next from the last item will focus on the
          // composite container. On grid composites, horizontal navigation never
          // focuses on the composite container, only vertical.
          hasNullItem ? nextItemsInRow : nextItems,
          activeId2
        );
        const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;
        return nextId;
      }
      const nextItem = findFirstEnabledItem2(nextItemsInRow, activeId2);
      if (!nextItem && hasNullItem) {
        return null;
      }
      return nextItem == null ? void 0 : nextItem.id;
    };
    return {
      ...collection,
      ...composite,
      setBaseElement: (element) => composite.setState("baseElement", element),
      setActiveId: (id3) => composite.setState("activeId", id3),
      move: (id3) => {
        if (id3 === void 0) return;
        composite.setState("activeId", id3);
        composite.setState("moves", (moves) => moves + 1);
      },
      first: () => {
        var _a2;
        return (_a2 = findFirstEnabledItem2(composite.getState().renderedItems)) == null ? void 0 : _a2.id;
      },
      last: () => {
        var _a2;
        return (_a2 = findFirstEnabledItem2(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;
      },
      next: (options2) => {
        if (options2 !== void 0 && typeof options2 === "number") {
          options2 = { skip: options2 };
        }
        return getNextId("next", options2);
      },
      previous: (options2) => {
        if (options2 !== void 0 && typeof options2 === "number") {
          options2 = { skip: options2 };
        }
        return getNextId("previous", options2);
      },
      down: (options2) => {
        if (options2 !== void 0 && typeof options2 === "number") {
          options2 = { skip: options2 };
        }
        return getNextId("down", options2);
      },
      up: (options2) => {
        if (options2 !== void 0 && typeof options2 === "number") {
          options2 = { skip: options2 };
        }
        return getNextId("up", options2);
      }
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/IQYAUKXT.js
  function useCompositeStoreOptions(props) {
    const id3 = useId(props.id);
    return { id: id3, ...props };
  }
  function useCompositeStoreProps(store, update, props) {
    store = useCollectionStoreProps(store, update, props);
    useStoreProps(store, props, "activeId", "setActiveId");
    useStoreProps(store, props, "includesBaseElement");
    useStoreProps(store, props, "virtualFocus");
    useStoreProps(store, props, "orientation");
    useStoreProps(store, props, "rtl");
    useStoreProps(store, props, "focusLoop");
    useStoreProps(store, props, "focusWrap");
    useStoreProps(store, props, "focusShift");
    return store;
  }
  function useCompositeStore(props = {}) {
    props = useCompositeStoreOptions(props);
    const [store, update] = useStore(createCompositeStore, props);
    return useCompositeStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/CVCFNOHX.js
  var import_react15 = __toESM(require_react(), 1);
  var ComboboxListRoleContext = (0, import_react15.createContext)(
    void 0
  );
  var ctx8 = createStoreContext(
    [PopoverContextProvider, CompositeContextProvider],
    [PopoverScopedContextProvider, CompositeScopedContextProvider]
  );
  var useComboboxContext = ctx8.useContext;
  var useComboboxScopedContext = ctx8.useScopedContext;
  var useComboboxProviderContext = ctx8.useProviderContext;
  var ComboboxContextProvider = ctx8.ContextProvider;
  var ComboboxScopedContextProvider = ctx8.ScopedContextProvider;
  var ComboboxItemValueContext = (0, import_react15.createContext)(
    void 0
  );
  var ComboboxItemCheckedContext = (0, import_react15.createContext)(false);

  // node_modules/@ariakit/core/esm/tab/tab-store.js
  function createTabStore({
    composite: parentComposite,
    combobox,
    ...props
  } = {}) {
    const independentKeys = [
      "items",
      "renderedItems",
      "moves",
      "orientation",
      "virtualFocus",
      "includesBaseElement",
      "baseElement",
      "focusLoop",
      "focusShift",
      "focusWrap"
    ];
    const store = mergeStore(
      props.store,
      omit2(parentComposite, independentKeys),
      omit2(combobox, independentKeys)
    );
    const syncState = store == null ? void 0 : store.getState();
    const composite = createCompositeStore({
      ...props,
      store,
      // We need to explicitly set the default value of `includesBaseElement` to
      // `false` since we don't want the composite store to default it to `true`
      // when the activeId state is null, which could be the case when rendering
      // combobox with tab.
      includesBaseElement: defaultValue(
        props.includesBaseElement,
        syncState == null ? void 0 : syncState.includesBaseElement,
        false
      ),
      orientation: defaultValue(
        props.orientation,
        syncState == null ? void 0 : syncState.orientation,
        "horizontal"
      ),
      focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true)
    });
    const panels = createCollectionStore();
    const initialState = {
      ...composite.getState(),
      selectedId: defaultValue(
        props.selectedId,
        syncState == null ? void 0 : syncState.selectedId,
        props.defaultSelectedId
      ),
      selectOnMove: defaultValue(
        props.selectOnMove,
        syncState == null ? void 0 : syncState.selectOnMove,
        true
      )
    };
    const tab = createStore(initialState, composite, store);
    setup(
      tab,
      () => sync(tab, ["moves"], () => {
        const { activeId, selectOnMove } = tab.getState();
        if (!selectOnMove) return;
        if (!activeId) return;
        const tabItem = composite.item(activeId);
        if (!tabItem) return;
        if (tabItem.dimmed) return;
        if (tabItem.disabled) return;
        tab.setState("selectedId", tabItem.id);
      })
    );
    let syncActiveId = true;
    setup(
      tab,
      () => batch(tab, ["selectedId"], (state, prev2) => {
        if (!syncActiveId) {
          syncActiveId = true;
          return;
        }
        if (parentComposite && state.selectedId === prev2.selectedId) return;
        tab.setState("activeId", state.selectedId);
      })
    );
    setup(
      tab,
      () => sync(tab, ["selectedId", "renderedItems"], (state) => {
        if (state.selectedId !== void 0) return;
        const { activeId, renderedItems } = tab.getState();
        const tabItem = composite.item(activeId);
        if (tabItem && !tabItem.disabled && !tabItem.dimmed) {
          tab.setState("selectedId", tabItem.id);
        } else {
          const tabItem2 = renderedItems.find(
            (item2) => !item2.disabled && !item2.dimmed
          );
          tab.setState("selectedId", tabItem2 == null ? void 0 : tabItem2.id);
        }
      })
    );
    setup(
      tab,
      () => sync(tab, ["renderedItems"], (state) => {
        const tabs = state.renderedItems;
        if (!tabs.length) return;
        return sync(panels, ["renderedItems"], (state2) => {
          const items = state2.renderedItems;
          const hasOrphanPanels = items.some((panel) => !panel.tabId);
          if (!hasOrphanPanels) return;
          items.forEach((panel, i3) => {
            if (panel.tabId) return;
            const tabItem = tabs[i3];
            if (!tabItem) return;
            panels.renderItem({ ...panel, tabId: tabItem.id });
          });
        });
      })
    );
    let selectedIdFromSelectedValue = null;
    setup(tab, () => {
      const backupSelectedId = () => {
        selectedIdFromSelectedValue = tab.getState().selectedId;
      };
      const restoreSelectedId = () => {
        syncActiveId = false;
        tab.setState("selectedId", selectedIdFromSelectedValue);
      };
      if (parentComposite && "setSelectElement" in parentComposite) {
        return chain(
          sync(parentComposite, ["value"], backupSelectedId),
          sync(parentComposite, ["mounted"], restoreSelectedId)
        );
      }
      if (!combobox) return;
      return chain(
        sync(combobox, ["selectedValue"], backupSelectedId),
        sync(combobox, ["mounted"], restoreSelectedId)
      );
    });
    return {
      ...composite,
      ...tab,
      panels,
      setSelectedId: (id3) => tab.setState("selectedId", id3),
      select: (id3) => {
        tab.setState("selectedId", id3);
        composite.move(id3);
      }
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/OJYI6SUJ.js
  var import_react16 = __toESM(require_react(), 1);
  function useTabStoreProps(store, update, props) {
    useUpdateEffect(update, [props.composite, props.combobox]);
    store = useCompositeStoreProps(store, update, props);
    useStoreProps(store, props, "selectedId", "setSelectedId");
    useStoreProps(store, props, "selectOnMove");
    const [panels, updatePanels] = useStore(() => store.panels, {});
    useUpdateEffect(updatePanels, [store, updatePanels]);
    return Object.assign(
      (0, import_react16.useMemo)(() => ({ ...store, panels }), [store, panels]),
      { composite: props.composite, combobox: props.combobox }
    );
  }
  function useTabStore(props = {}) {
    const combobox = useComboboxContext();
    const composite = useSelectContext() || combobox;
    props = {
      ...props,
      composite: props.composite !== void 0 ? props.composite : composite,
      combobox: props.combobox !== void 0 ? props.combobox : combobox
    };
    const [store, update] = useStore(createTabStore, props);
    return useTabStoreProps(store, update, props);
  }

  // node_modules/@ariakit/core/esm/toolbar/toolbar-store.js
  function createToolbarStore(props = {}) {
    var _a;
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    return createCompositeStore({
      ...props,
      orientation: defaultValue(
        props.orientation,
        syncState == null ? void 0 : syncState.orientation,
        "horizontal"
      ),
      focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true)
    });
  }

  // node_modules/@ariakit/react-core/esm/__chunks/5WUV565P.js
  function useToolbarStoreProps(store, update, props) {
    return useCompositeStoreProps(store, update, props);
  }
  function useToolbarStore(props = {}) {
    const [store, update] = useStore(createToolbarStore, props);
    return useToolbarStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/WZDDDI4V.js
  var ctx9 = createStoreContext(
    [CompositeContextProvider],
    [CompositeScopedContextProvider]
  );
  var useToolbarContext = ctx9.useContext;
  var useToolbarScopedContext = ctx9.useScopedContext;
  var useToolbarProviderContext = ctx9.useProviderContext;
  var ToolbarContextProvider = ctx9.ContextProvider;
  var ToolbarScopedContextProvider = ctx9.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/toolbar/toolbar.js
  var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
  var TagName10 = "div";
  var useToolbar = createHook(
    function useToolbar2({
      store: storeProp,
      orientation: orientationProp,
      virtualFocus,
      focusLoop,
      rtl: rtl2,
      ...props
    }) {
      const context = useToolbarProviderContext();
      storeProp = storeProp || context;
      const store = useToolbarStore({
        store: storeProp,
        orientation: orientationProp,
        virtualFocus,
        focusLoop,
        rtl: rtl2
      });
      const orientation = store.useState(
        (state) => state.orientation === "both" ? void 0 : state.orientation
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ToolbarScopedContextProvider, { value: store, children: element }),
        [store]
      );
      props = {
        role: "toolbar",
        "aria-orientation": orientation,
        ...props
      };
      props = useComposite({ store, ...props });
      return props;
    }
  );
  var Toolbar = forwardRef2(function Toolbar2(props) {
    const htmlProps = useToolbar(props);
    return createElement(TagName10, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/HSU7H6PW.js
  var TagName11 = "button";
  var useToolbarItem = createHook(
    function useToolbarItem2({ store, ...props }) {
      const context = useToolbarContext();
      store = store || context;
      props = useCompositeItem({ store, ...props });
      return props;
    }
  );
  var ToolbarItem = memo2(
    forwardRef2(function ToolbarItem2(props) {
      const htmlProps = useToolbarItem(props);
      return createElement(TagName11, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/__chunks/P7VC6T3R.js
  var TagName12 = "hr";
  var useSeparator = createHook(
    function useSeparator2({ orientation = "horizontal", ...props }) {
      props = {
        role: "separator",
        "aria-orientation": orientation,
        ...props
      };
      return props;
    }
  );
  var Separator = forwardRef2(function Separator2(props) {
    const htmlProps = useSeparator(props);
    return createElement(TagName12, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/YBRT277Q.js
  var TagName13 = "hr";
  var useCompositeSeparator = createHook(function useCompositeSeparator2({ store, ...props }) {
    const context = useCompositeContext();
    store = store || context;
    invariant(
      store,
      "CompositeSeparator must be wrapped in a Composite component."
    );
    const orientation = store.useState(
      (state) => state.orientation === "horizontal" ? "vertical" : "horizontal"
    );
    props = useSeparator({ ...props, orientation });
    return props;
  });
  var CompositeSeparator = forwardRef2(function CompositeSeparator2(props) {
    const htmlProps = useCompositeSeparator(props);
    return createElement(TagName13, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/PTRWAQFT.js
  var ctx10 = createStoreContext(
    [PopoverContextProvider],
    [PopoverScopedContextProvider]
  );
  var useHovercardContext = ctx10.useContext;
  var useHovercardScopedContext = ctx10.useScopedContext;
  var useHovercardProviderContext = ctx10.useProviderContext;
  var HovercardContextProvider = ctx10.ContextProvider;
  var HovercardScopedContextProvider = ctx10.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/UZXQ5DX3.js
  var ctx11 = createStoreContext(
    [HovercardContextProvider],
    [HovercardScopedContextProvider]
  );
  var useTooltipContext = ctx11.useContext;
  var useTooltipScopedContext = ctx11.useScopedContext;
  var useTooltipProviderContext = ctx11.useProviderContext;
  var TooltipContextProvider = ctx11.ContextProvider;
  var TooltipScopedContextProvider = ctx11.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/X7QOZUD3.js
  function getEventPoint(event) {
    return [event.clientX, event.clientY];
  }
  function isPointInPolygon(point, polygon) {
    const [x2, y3] = point;
    let inside = false;
    const length2 = polygon.length;
    for (let l3 = length2, i3 = 0, j2 = l3 - 1; i3 < l3; j2 = i3++) {
      const [xi, yi] = polygon[i3];
      const [xj, yj] = polygon[j2];
      const [, vy] = polygon[j2 === 0 ? l3 - 1 : j2 - 1] || [0, 0];
      const where = (yi - yj) * (x2 - xi) - (xi - xj) * (y3 - yi);
      if (yj < yi) {
        if (y3 >= yj && y3 < yi) {
          if (where === 0) return true;
          if (where > 0) {
            if (y3 === yj) {
              if (y3 > vy) {
                inside = !inside;
              }
            } else {
              inside = !inside;
            }
          }
        }
      } else if (yi < yj) {
        if (y3 > yi && y3 <= yj) {
          if (where === 0) return true;
          if (where < 0) {
            if (y3 === yj) {
              if (y3 < vy) {
                inside = !inside;
              }
            } else {
              inside = !inside;
            }
          }
        }
      } else if (y3 === yi && (x2 >= xj && x2 <= xi || x2 >= xi && x2 <= xj)) {
        return true;
      }
    }
    return inside;
  }
  function getEnterPointPlacement(enterPoint, rect) {
    const { top, right, bottom, left } = rect;
    const [x2, y3] = enterPoint;
    const placementX = x2 < left ? "left" : x2 > right ? "right" : null;
    const placementY = y3 < top ? "top" : y3 > bottom ? "bottom" : null;
    return [placementX, placementY];
  }
  function getElementPolygon(element, enterPoint) {
    const rect = element.getBoundingClientRect();
    const { top, right, bottom, left } = rect;
    const [x2, y3] = getEnterPointPlacement(enterPoint, rect);
    const polygon = [enterPoint];
    if (x2) {
      if (y3 !== "top") {
        polygon.push([x2 === "left" ? left : right, top]);
      }
      polygon.push([x2 === "left" ? right : left, top]);
      polygon.push([x2 === "left" ? right : left, bottom]);
      if (y3 !== "bottom") {
        polygon.push([x2 === "left" ? left : right, bottom]);
      }
    } else if (y3 === "top") {
      polygon.push([left, top]);
      polygon.push([left, bottom]);
      polygon.push([right, bottom]);
      polygon.push([right, top]);
    } else {
      polygon.push([left, bottom]);
      polygon.push([left, top]);
      polygon.push([right, top]);
      polygon.push([right, bottom]);
    }
    return polygon;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/AOQQTIBO.js
  var import_react17 = __toESM(require_react(), 1);
  var PortalContext = (0, import_react17.createContext)(null);

  // node_modules/@ariakit/react-core/esm/__chunks/2F57YTN4.js
  var TagName14 = "span";
  var useVisuallyHidden = createHook(
    function useVisuallyHidden2(props) {
      props = {
        ...props,
        style: {
          border: 0,
          clip: "rect(0 0 0 0)",
          height: "1px",
          margin: "-1px",
          overflow: "hidden",
          padding: 0,
          position: "absolute",
          whiteSpace: "nowrap",
          width: "1px",
          ...props.style
        }
      };
      return props;
    }
  );
  var VisuallyHidden = forwardRef2(function VisuallyHidden2(props) {
    const htmlProps = useVisuallyHidden(props);
    return createElement(TagName14, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/BFOIJXK2.js
  var TagName15 = "span";
  var useFocusTrap = createHook(
    function useFocusTrap2(props) {
      props = {
        "data-focus-trap": "",
        tabIndex: 0,
        "aria-hidden": true,
        ...props,
        style: {
          // Prevents unintended scroll jumps.
          position: "fixed",
          top: 0,
          left: 0,
          ...props.style
        }
      };
      props = useVisuallyHidden(props);
      return props;
    }
  );
  var FocusTrap = forwardRef2(function FocusTrap2(props) {
    const htmlProps = useFocusTrap(props);
    return createElement(TagName15, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/VJH3F6TN.js
  var import_react18 = __toESM(require_react(), 1);
  var import_react_dom2 = __toESM(require_react_dom(), 1);
  var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
  var TagName16 = "div";
  function getRootElement(element) {
    return getDocument(element).body;
  }
  function getPortalElement(element, portalElement) {
    if (!portalElement) {
      return getDocument(element).createElement("div");
    }
    if (typeof portalElement === "function") {
      return portalElement(element);
    }
    return portalElement;
  }
  function getRandomId(prefix2 = "id") {
    return `${prefix2 ? `${prefix2}-` : ""}${Math.random().toString(36).slice(2, 8)}`;
  }
  function queueFocus(element) {
    queueMicrotask(() => {
      element == null ? void 0 : element.focus();
    });
  }
  var usePortal = createHook(function usePortal2({
    preserveTabOrder,
    preserveTabOrderAnchor,
    portalElement,
    portalRef,
    portal = true,
    ...props
  }) {
    const ref = (0, import_react18.useRef)(null);
    const refProp = useMergeRefs(ref, props.ref);
    const context = (0, import_react18.useContext)(PortalContext);
    const [portalNode, setPortalNode] = (0, import_react18.useState)(null);
    const [anchorPortalNode, setAnchorPortalNode] = (0, import_react18.useState)(
      null
    );
    const outerBeforeRef = (0, import_react18.useRef)(null);
    const innerBeforeRef = (0, import_react18.useRef)(null);
    const innerAfterRef = (0, import_react18.useRef)(null);
    const outerAfterRef = (0, import_react18.useRef)(null);
    useSafeLayoutEffect(() => {
      const element = ref.current;
      if (!element || !portal) {
        setPortalNode(null);
        return;
      }
      const portalEl = getPortalElement(element, portalElement);
      if (!portalEl) {
        setPortalNode(null);
        return;
      }
      const isPortalInDocument = portalEl.isConnected;
      if (!isPortalInDocument) {
        const rootElement = context || getRootElement(element);
        rootElement.appendChild(portalEl);
      }
      if (!portalEl.id) {
        portalEl.id = element.id ? `portal/${element.id}` : getRandomId();
      }
      setPortalNode(portalEl);
      setRef(portalRef, portalEl);
      if (isPortalInDocument) return;
      return () => {
        portalEl.remove();
        setRef(portalRef, null);
      };
    }, [portal, portalElement, context, portalRef]);
    useSafeLayoutEffect(() => {
      if (!portal) return;
      if (!preserveTabOrder) return;
      if (!preserveTabOrderAnchor) return;
      const doc = getDocument(preserveTabOrderAnchor);
      const element = doc.createElement("span");
      element.style.position = "fixed";
      preserveTabOrderAnchor.insertAdjacentElement("afterend", element);
      setAnchorPortalNode(element);
      return () => {
        element.remove();
        setAnchorPortalNode(null);
      };
    }, [portal, preserveTabOrder, preserveTabOrderAnchor]);
    (0, import_react18.useEffect)(() => {
      if (!portalNode) return;
      if (!preserveTabOrder) return;
      let raf = 0;
      const onFocus = (event) => {
        if (!isFocusEventOutside(event)) return;
        const focusing = event.type === "focusin";
        cancelAnimationFrame(raf);
        if (focusing) {
          return restoreFocusIn(portalNode);
        }
        raf = requestAnimationFrame(() => {
          disableFocusIn(portalNode, true);
        });
      };
      portalNode.addEventListener("focusin", onFocus, true);
      portalNode.addEventListener("focusout", onFocus, true);
      return () => {
        cancelAnimationFrame(raf);
        portalNode.removeEventListener("focusin", onFocus, true);
        portalNode.removeEventListener("focusout", onFocus, true);
      };
    }, [portalNode, preserveTabOrder]);
    props = useWrapElement(
      props,
      (element) => {
        element = // While the portal node is not in the DOM, we need to pass the
        // current context to the portal context, otherwise it's going to
        // reset to the body element on nested portals.
        /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PortalContext.Provider, { value: portalNode || context, children: element });
        if (!portal) return element;
        if (!portalNode) {
          return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
            "span",
            {
              ref: refProp,
              id: props.id,
              style: { position: "fixed" },
              hidden: true
            }
          );
        }
        element = /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
          preserveTabOrder && portalNode && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
            FocusTrap,
            {
              ref: innerBeforeRef,
              "data-focus-trap": props.id,
              className: "__focus-trap-inner-before",
              onFocus: (event) => {
                if (isFocusEventOutside(event, portalNode)) {
                  queueFocus(getNextTabbable());
                } else {
                  queueFocus(outerBeforeRef.current);
                }
              }
            }
          ),
          element,
          preserveTabOrder && portalNode && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
            FocusTrap,
            {
              ref: innerAfterRef,
              "data-focus-trap": props.id,
              className: "__focus-trap-inner-after",
              onFocus: (event) => {
                if (isFocusEventOutside(event, portalNode)) {
                  queueFocus(getPreviousTabbable());
                } else {
                  queueFocus(outerAfterRef.current);
                }
              }
            }
          )
        ] });
        if (portalNode) {
          element = (0, import_react_dom2.createPortal)(element, portalNode);
        }
        let preserveTabOrderElement = /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
          preserveTabOrder && portalNode && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
            FocusTrap,
            {
              ref: outerBeforeRef,
              "data-focus-trap": props.id,
              className: "__focus-trap-outer-before",
              onFocus: (event) => {
                const fromOuter = event.relatedTarget === outerAfterRef.current;
                if (!fromOuter && isFocusEventOutside(event, portalNode)) {
                  queueFocus(innerBeforeRef.current);
                } else {
                  queueFocus(getPreviousTabbable());
                }
              }
            }
          ),
          preserveTabOrder && // We're using position: fixed here so that the browser doesn't
          // add margin to the element when setting gap on a parent element.
          /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { "aria-owns": portalNode == null ? void 0 : portalNode.id, style: { position: "fixed" } }),
          preserveTabOrder && portalNode && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
            FocusTrap,
            {
              ref: outerAfterRef,
              "data-focus-trap": props.id,
              className: "__focus-trap-outer-after",
              onFocus: (event) => {
                if (isFocusEventOutside(event, portalNode)) {
                  queueFocus(innerAfterRef.current);
                } else {
                  const nextTabbable = getNextTabbable();
                  if (nextTabbable === innerBeforeRef.current) {
                    requestAnimationFrame(() => {
                      var _a;
                      return (_a = getNextTabbable()) == null ? void 0 : _a.focus();
                    });
                    return;
                  }
                  queueFocus(nextTabbable);
                }
              }
            }
          )
        ] });
        if (anchorPortalNode && preserveTabOrder) {
          preserveTabOrderElement = (0, import_react_dom2.createPortal)(
            preserveTabOrderElement,
            anchorPortalNode
          );
        }
        return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
          preserveTabOrderElement,
          element
        ] });
      },
      [portalNode, context, portal, props.id, preserveTabOrder, anchorPortalNode]
    );
    props = {
      ...props,
      ref: refProp
    };
    return props;
  });
  var Portal = forwardRef2(function Portal2(props) {
    const htmlProps = usePortal(props);
    return createElement(TagName16, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/CZ4GFWYL.js
  var import_react19 = __toESM(require_react(), 1);
  var HeadingContext = (0, import_react19.createContext)(0);

  // node_modules/@ariakit/react-core/esm/__chunks/5M6RIVE2.js
  var import_react20 = __toESM(require_react(), 1);
  var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
  function HeadingLevel({ level, children }) {
    const contextLevel = (0, import_react20.useContext)(HeadingContext);
    const nextLevel = Math.max(
      Math.min(level || contextLevel + 1, 6),
      1
    );
    return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(HeadingContext.Provider, { value: nextLevel, children });
  }

  // node_modules/@ariakit/react-core/esm/__chunks/3HM4TGWW.js
  var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
  var TagName17 = "div";
  var useFocusableContainer = createHook(function useFocusableContainer2({ autoFocusOnShow = true, ...props }) {
    props = useWrapElement(
      props,
      (element) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(FocusableContext.Provider, { value: autoFocusOnShow, children: element }),
      [autoFocusOnShow]
    );
    return props;
  });
  var FocusableContainer = forwardRef2(function FocusableContainer2(props) {
    const htmlProps = useFocusableContainer(props);
    return createElement(TagName17, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/6GXEOXGT.js
  function prependHiddenDismiss(container, onClick) {
    const document2 = getDocument(container);
    const button = document2.createElement("button");
    button.type = "button";
    button.tabIndex = -1;
    button.textContent = "Dismiss popup";
    Object.assign(button.style, {
      border: "0px",
      clip: "rect(0 0 0 0)",
      height: "1px",
      margin: "-1px",
      overflow: "hidden",
      padding: "0px",
      position: "absolute",
      whiteSpace: "nowrap",
      width: "1px"
    });
    button.addEventListener("click", onClick);
    container.prepend(button);
    const removeHiddenDismiss = () => {
      button.removeEventListener("click", onClick);
      button.remove();
    };
    return removeHiddenDismiss;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/U3R3WHDK.js
  var import_react21 = __toESM(require_react(), 1);
  function usePreviousMouseDownRef(enabled) {
    const previousMouseDownRef = (0, import_react21.useRef)(null);
    (0, import_react21.useEffect)(() => {
      if (!enabled) {
        previousMouseDownRef.current = null;
        return;
      }
      const onMouseDown = (event) => {
        previousMouseDownRef.current = event.target;
      };
      return addGlobalEventListener("mousedown", onMouseDown, true);
    }, [enabled]);
    return previousMouseDownRef;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/K2ZF5NU7.js
  var cleanups = /* @__PURE__ */ new WeakMap();
  function orchestrate(element, key, setup2) {
    if (!cleanups.has(element)) {
      cleanups.set(element, /* @__PURE__ */ new Map());
    }
    const elementCleanups = cleanups.get(element);
    const prevCleanup = elementCleanups.get(key);
    if (!prevCleanup) {
      elementCleanups.set(key, setup2());
      return () => {
        var _a;
        (_a = elementCleanups.get(key)) == null ? void 0 : _a();
        elementCleanups.delete(key);
      };
    }
    const cleanup = setup2();
    const nextCleanup = () => {
      cleanup();
      prevCleanup();
      elementCleanups.delete(key);
    };
    elementCleanups.set(key, nextCleanup);
    return () => {
      const isCurrent = elementCleanups.get(key) === nextCleanup;
      if (!isCurrent) return;
      cleanup();
      elementCleanups.set(key, prevCleanup);
    };
  }
  function setAttribute(element, attr, value) {
    const setup2 = () => {
      const previousValue = element.getAttribute(attr);
      element.setAttribute(attr, value);
      return () => {
        if (previousValue == null) {
          element.removeAttribute(attr);
        } else {
          element.setAttribute(attr, previousValue);
        }
      };
    };
    return orchestrate(element, attr, setup2);
  }
  function setProperty(element, property, value) {
    const setup2 = () => {
      const exists = property in element;
      const previousValue = element[property];
      element[property] = value;
      return () => {
        if (!exists) {
          delete element[property];
        } else {
          element[property] = previousValue;
        }
      };
    };
    return orchestrate(element, property, setup2);
  }
  function assignStyle(element, style2) {
    if (!element) return () => {
    };
    const setup2 = () => {
      const prevStyle = element.style.cssText;
      Object.assign(element.style, style2);
      return () => {
        element.style.cssText = prevStyle;
      };
    };
    return orchestrate(element, "style", setup2);
  }
  function setCSSProperty(element, property, value) {
    if (!element) return () => {
    };
    const setup2 = () => {
      const previousValue = element.style.getPropertyValue(property);
      element.style.setProperty(property, value);
      return () => {
        if (previousValue) {
          element.style.setProperty(property, previousValue);
        } else {
          element.style.removeProperty(property);
        }
      };
    };
    return orchestrate(element, property, setup2);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/AOUGVQZ3.js
  var ignoreTags = ["SCRIPT", "STYLE"];
  function getSnapshotPropertyName(id3) {
    return `__ariakit-dialog-snapshot-${id3}`;
  }
  function inSnapshot(id3, element) {
    const doc = getDocument(element);
    const propertyName = getSnapshotPropertyName(id3);
    if (!doc.body[propertyName]) return true;
    do {
      if (element === doc.body) return false;
      if (element[propertyName]) return true;
      if (!element.parentElement) return false;
      element = element.parentElement;
    } while (true);
  }
  function isValidElement3(id3, element, ignoredElements) {
    if (ignoreTags.includes(element.tagName)) return false;
    if (!inSnapshot(id3, element)) return false;
    return !ignoredElements.some(
      (enabledElement) => enabledElement && contains(element, enabledElement)
    );
  }
  function walkTreeOutside(id3, elements2, callback, ancestorCallback) {
    for (let element of elements2) {
      if (!(element == null ? void 0 : element.isConnected)) continue;
      const hasAncestorAlready = elements2.some((maybeAncestor) => {
        if (!maybeAncestor) return false;
        if (maybeAncestor === element) return false;
        return maybeAncestor.contains(element);
      });
      const doc = getDocument(element);
      const originalElement = element;
      while (element.parentElement && element !== doc.body) {
        ancestorCallback == null ? void 0 : ancestorCallback(element.parentElement, originalElement);
        if (!hasAncestorAlready) {
          for (const child of element.parentElement.children) {
            if (isValidElement3(id3, child, elements2)) {
              callback(child, originalElement);
            }
          }
        }
        element = element.parentElement;
      }
    }
  }
  function createWalkTreeSnapshot(id3, elements2) {
    const { body } = getDocument(elements2[0]);
    const cleanups2 = [];
    const markElement2 = (element) => {
      cleanups2.push(setProperty(element, getSnapshotPropertyName(id3), true));
    };
    walkTreeOutside(id3, elements2, markElement2);
    return chain(setProperty(body, getSnapshotPropertyName(id3), true), () => {
      for (const cleanup of cleanups2) {
        cleanup();
      }
    });
  }

  // node_modules/@ariakit/react-core/esm/__chunks/63XF7ACK.js
  function isBackdrop(element, ...ids) {
    if (!element) return false;
    const backdrop = element.getAttribute("data-backdrop");
    if (backdrop == null) return false;
    if (backdrop === "") return true;
    if (backdrop === "true") return true;
    if (!ids.length) return true;
    return ids.some((id3) => backdrop === id3);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/3NDVDEB4.js
  function getPropertyName(id3 = "", ancestor = false) {
    return `__ariakit-dialog-${ancestor ? "ancestor" : "outside"}${id3 ? `-${id3}` : ""}`;
  }
  function markElement(element, id3 = "") {
    return chain(
      setProperty(element, getPropertyName(), true),
      setProperty(element, getPropertyName(id3), true)
    );
  }
  function markAncestor(element, id3 = "") {
    return chain(
      setProperty(element, getPropertyName("", true), true),
      setProperty(element, getPropertyName(id3, true), true)
    );
  }
  function isElementMarked(element, id3) {
    const ancestorProperty = getPropertyName(id3, true);
    if (element[ancestorProperty]) return true;
    const elementProperty = getPropertyName(id3);
    do {
      if (element[elementProperty]) return true;
      if (!element.parentElement) return false;
      element = element.parentElement;
    } while (true);
  }
  function markTreeOutside(id3, elements2) {
    const cleanups2 = [];
    const ids = elements2.map((el) => el == null ? void 0 : el.id);
    walkTreeOutside(
      id3,
      elements2,
      (element) => {
        if (isBackdrop(element, ...ids)) return;
        cleanups2.unshift(markElement(element, id3));
      },
      (ancestor, element) => {
        const isAnotherDialogAncestor = element.hasAttribute("data-dialog") && element.id !== id3;
        if (isAnotherDialogAncestor) return;
        cleanups2.unshift(markAncestor(ancestor, id3));
      }
    );
    const restoreAccessibilityTree = () => {
      for (const cleanup of cleanups2) {
        cleanup();
      }
    };
    return restoreAccessibilityTree;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/KKITJVHA.js
  var import_react22 = __toESM(require_react(), 1);
  function isInDocument(target) {
    if (target.tagName === "HTML") return true;
    return contains(getDocument(target).body, target);
  }
  function isDisclosure(disclosure, target) {
    if (!disclosure) return false;
    if (contains(disclosure, target)) return true;
    const activeId = target.getAttribute("aria-activedescendant");
    if (activeId) {
      const activeElement = getDocument(disclosure).getElementById(activeId);
      if (activeElement) {
        return contains(disclosure, activeElement);
      }
    }
    return false;
  }
  function isMouseEventOnDialog(event, dialog) {
    if (!("clientY" in event)) return false;
    const rect = dialog.getBoundingClientRect();
    if (rect.width === 0 || rect.height === 0) return false;
    return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
  }
  function useEventOutside({
    store,
    type,
    listener,
    capture,
    domReady
  }) {
    const callListener = useEvent(listener);
    const open = useStoreState(store, "open");
    const focusedRef = (0, import_react22.useRef)(false);
    useSafeLayoutEffect(() => {
      if (!open) return;
      if (!domReady) return;
      const { contentElement } = store.getState();
      if (!contentElement) return;
      const onFocus = () => {
        focusedRef.current = true;
      };
      contentElement.addEventListener("focusin", onFocus, true);
      return () => contentElement.removeEventListener("focusin", onFocus, true);
    }, [store, open, domReady]);
    (0, import_react22.useEffect)(() => {
      if (!open) return;
      const onEvent = (event) => {
        const { contentElement, disclosureElement } = store.getState();
        const target = event.target;
        if (!contentElement) return;
        if (!target) return;
        if (!isInDocument(target)) return;
        if (contains(contentElement, target)) return;
        if (isDisclosure(disclosureElement, target)) return;
        if (target.hasAttribute("data-focus-trap")) return;
        if (isMouseEventOnDialog(event, contentElement)) return;
        const focused = focusedRef.current;
        if (focused && !isElementMarked(target, contentElement.id)) return;
        if (isSafariFocusAncestor(target)) return;
        callListener(event);
      };
      return addGlobalEventListener(type, onEvent, capture);
    }, [open, capture]);
  }
  function shouldHideOnInteractOutside(hideOnInteractOutside, event) {
    if (typeof hideOnInteractOutside === "function") {
      return hideOnInteractOutside(event);
    }
    return !!hideOnInteractOutside;
  }
  function useHideOnInteractOutside(store, hideOnInteractOutside, domReady) {
    const open = useStoreState(store, "open");
    const previousMouseDownRef = usePreviousMouseDownRef(open);
    const props = { store, domReady, capture: true };
    useEventOutside({
      ...props,
      type: "click",
      listener: (event) => {
        const { contentElement } = store.getState();
        const previousMouseDown = previousMouseDownRef.current;
        if (!previousMouseDown) return;
        if (!isVisible(previousMouseDown)) return;
        if (!isElementMarked(previousMouseDown, contentElement == null ? void 0 : contentElement.id)) return;
        if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;
        store.hide();
      }
    });
    useEventOutside({
      ...props,
      type: "focusin",
      listener: (event) => {
        const { contentElement } = store.getState();
        if (!contentElement) return;
        if (event.target === getDocument(contentElement)) return;
        if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;
        store.hide();
      }
    });
    useEventOutside({
      ...props,
      type: "contextmenu",
      listener: (event) => {
        if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;
        store.hide();
      }
    });
  }

  // node_modules/@ariakit/react-core/esm/__chunks/JSI7U3EA.js
  var import_react23 = __toESM(require_react(), 1);
  var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
  var NestedDialogsContext = (0, import_react23.createContext)({});
  function useNestedDialogs(store) {
    const context = (0, import_react23.useContext)(NestedDialogsContext);
    const [dialogs, setDialogs] = (0, import_react23.useState)([]);
    const add2 = (0, import_react23.useCallback)(
      (dialog) => {
        var _a;
        setDialogs((dialogs2) => [...dialogs2, dialog]);
        return chain((_a = context.add) == null ? void 0 : _a.call(context, dialog), () => {
          setDialogs((dialogs2) => dialogs2.filter((d3) => d3 !== dialog));
        });
      },
      [context]
    );
    useSafeLayoutEffect(() => {
      return sync(store, ["open", "contentElement"], (state) => {
        var _a;
        if (!state.open) return;
        if (!state.contentElement) return;
        return (_a = context.add) == null ? void 0 : _a.call(context, store);
      });
    }, [store, context]);
    const providerValue = (0, import_react23.useMemo)(() => ({ store, add: add2 }), [store, add2]);
    const wrapElement = (0, import_react23.useCallback)(
      (element) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(NestedDialogsContext.Provider, { value: providerValue, children: element }),
      [providerValue]
    );
    return { wrapElement, nestedDialogs: dialogs };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/OT5RJDXG.js
  var import_react24 = __toESM(require_react(), 1);
  var import_react_dom3 = __toESM(require_react_dom(), 1);
  function useRootDialog({
    attribute,
    contentId,
    contentElement,
    enabled
  }) {
    const [updated, retry] = useForceUpdate();
    const isRootDialog = (0, import_react24.useCallback)(() => {
      if (!enabled) return false;
      if (!contentElement) return false;
      const { body } = getDocument(contentElement);
      const id3 = body.getAttribute(attribute);
      return !id3 || id3 === contentId;
    }, [updated, enabled, contentElement, attribute, contentId]);
    (0, import_react24.useEffect)(() => {
      if (!enabled) return;
      if (!contentId) return;
      if (!contentElement) return;
      const { body } = getDocument(contentElement);
      if (isRootDialog()) {
        body.setAttribute(attribute, contentId);
        return () => body.removeAttribute(attribute);
      }
      const observer = new MutationObserver(() => (0, import_react_dom3.flushSync)(retry));
      observer.observe(body, { attributeFilter: [attribute] });
      return () => observer.disconnect();
    }, [updated, enabled, contentId, contentElement, isRootDialog, attribute]);
    return isRootDialog;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/B6W4QFKS.js
  var import_react25 = __toESM(require_react(), 1);
  function getPaddingProperty(documentElement) {
    const documentLeft = documentElement.getBoundingClientRect().left;
    const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;
    return scrollbarX ? "paddingLeft" : "paddingRight";
  }
  function usePreventBodyScroll(contentElement, contentId, enabled) {
    const isRootDialog = useRootDialog({
      attribute: "data-dialog-prevent-body-scroll",
      contentElement,
      contentId,
      enabled
    });
    (0, import_react25.useEffect)(() => {
      if (!isRootDialog()) return;
      if (!contentElement) return;
      const doc = getDocument(contentElement);
      const win = getWindow(contentElement);
      const { documentElement, body } = doc;
      const cssScrollbarWidth = documentElement.style.getPropertyValue("--scrollbar-width");
      const scrollbarWidth = cssScrollbarWidth ? Number.parseInt(cssScrollbarWidth, 10) : win.innerWidth - documentElement.clientWidth;
      const setScrollbarWidthProperty = () => setCSSProperty(
        documentElement,
        "--scrollbar-width",
        `${scrollbarWidth}px`
      );
      const paddingProperty = getPaddingProperty(documentElement);
      const setStyle = () => assignStyle(body, {
        overflow: "hidden",
        [paddingProperty]: `${scrollbarWidth}px`
      });
      const setIOSStyle = () => {
        var _a, _b;
        const { scrollX: scrollX2, scrollY: scrollY2, visualViewport } = win;
        const offsetLeft = (_a = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _a : 0;
        const offsetTop = (_b = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _b : 0;
        const restoreStyle = assignStyle(body, {
          position: "fixed",
          overflow: "hidden",
          top: `${-(scrollY2 - Math.floor(offsetTop))}px`,
          left: `${-(scrollX2 - Math.floor(offsetLeft))}px`,
          right: "0",
          [paddingProperty]: `${scrollbarWidth}px`
        });
        return () => {
          restoreStyle();
          if (true) {
            win.scrollTo({ left: scrollX2, top: scrollY2, behavior: "instant" });
          }
        };
      };
      const isIOS = isApple() && !isMac();
      return chain(
        setScrollbarWidthProperty(),
        isIOS ? setIOSStyle() : setStyle()
      );
    }, [isRootDialog, contentElement]);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/IGR4SXG2.js
  function isFocusTrap(element, ...ids) {
    if (!element) return false;
    const attr = element.getAttribute("data-focus-trap");
    if (attr == null) return false;
    if (!ids.length) return true;
    if (attr === "") return false;
    return ids.some((id3) => attr === id3);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/677M2CI3.js
  function supportsInert() {
    return "inert" in HTMLElement.prototype;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/S7U6BLGA.js
  function hideElementFromAccessibilityTree(element) {
    return setAttribute(element, "aria-hidden", "true");
  }

  // node_modules/@ariakit/react-core/esm/__chunks/Z5GCVBAY.js
  function disableTree(element, ignoredElements) {
    if (!("style" in element)) return noop;
    if (supportsInert()) {
      return setProperty(element, "inert", true);
    }
    const tabbableElements = getAllTabbableIn(element, true);
    const enableElements = tabbableElements.map((element2) => {
      if (ignoredElements == null ? void 0 : ignoredElements.some((el) => el && contains(el, element2))) return noop;
      const restoreFocusMethod = orchestrate(element2, "focus", () => {
        element2.focus = noop;
        return () => {
          delete element2.focus;
        };
      });
      return chain(setAttribute(element2, "tabindex", "-1"), restoreFocusMethod);
    });
    return chain(
      ...enableElements,
      hideElementFromAccessibilityTree(element),
      assignStyle(element, {
        pointerEvents: "none",
        userSelect: "none",
        cursor: "default"
      })
    );
  }
  function disableTreeOutside(id3, elements2) {
    const cleanups2 = [];
    const ids = elements2.map((el) => el == null ? void 0 : el.id);
    walkTreeOutside(
      id3,
      elements2,
      (element) => {
        if (isBackdrop(element, ...ids)) return;
        if (isFocusTrap(element, ...ids)) return;
        cleanups2.unshift(disableTree(element, elements2));
      },
      (element) => {
        if (!element.hasAttribute("role")) return;
        if (elements2.some((el) => el && contains(el, element))) return;
        cleanups2.unshift(setAttribute(element, "role", "none"));
      }
    );
    const restoreTreeOutside = () => {
      for (const cleanup of cleanups2) {
        cleanup();
      }
    };
    return restoreTreeOutside;
  }

  // node_modules/@ariakit/react-core/esm/__chunks/JG4VNI52.js
  var TagName18 = "div";
  var elements = [
    "a",
    "button",
    "details",
    "dialog",
    "div",
    "form",
    "h1",
    "h2",
    "h3",
    "h4",
    "h5",
    "h6",
    "header",
    "img",
    "input",
    "label",
    "li",
    "nav",
    "ol",
    "p",
    "section",
    "select",
    "span",
    "summary",
    "textarea",
    "ul",
    "svg"
  ];
  var useRole = createHook(
    function useRole2(props) {
      return props;
    }
  );
  var Role = forwardRef2(
    // @ts-expect-error
    function Role2(props) {
      return createElement(TagName18, props);
    }
  );
  Object.assign(
    Role,
    elements.reduce((acc, element) => {
      acc[element] = forwardRef2(function Role3(props) {
        return createElement(element, props);
      });
      return acc;
    }, {})
  );

  // node_modules/@ariakit/react-core/esm/__chunks/P45QRJLH.js
  var import_react26 = __toESM(require_react(), 1);
  var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
  function DialogBackdrop({
    store,
    backdrop,
    alwaysVisible,
    hidden
  }) {
    const ref = (0, import_react26.useRef)(null);
    const disclosure = useDisclosureStore({ disclosure: store });
    const contentElement = useStoreState(store, "contentElement");
    (0, import_react26.useEffect)(() => {
      const backdrop2 = ref.current;
      const dialog = contentElement;
      if (!backdrop2) return;
      if (!dialog) return;
      backdrop2.style.zIndex = getComputedStyle(dialog).zIndex;
    }, [contentElement]);
    useSafeLayoutEffect(() => {
      const id3 = contentElement == null ? void 0 : contentElement.id;
      if (!id3) return;
      const backdrop2 = ref.current;
      if (!backdrop2) return;
      return markAncestor(backdrop2, id3);
    }, [contentElement]);
    const props = useDisclosureContent({
      ref,
      store: disclosure,
      role: "presentation",
      "data-backdrop": (contentElement == null ? void 0 : contentElement.id) || "",
      alwaysVisible,
      hidden: hidden != null ? hidden : void 0,
      style: {
        position: "fixed",
        top: 0,
        right: 0,
        bottom: 0,
        left: 0
      }
    });
    if (!backdrop) return null;
    if ((0, import_react26.isValidElement)(backdrop)) {
      return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Role, { ...props, render: backdrop });
    }
    const Component9 = typeof backdrop !== "boolean" ? backdrop : "div";
    return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Role, { ...props, render: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Component9, {}) });
  }

  // node_modules/@ariakit/core/esm/__chunks/KMAUV3TY.js
  function createDialogStore(props = {}) {
    return createDisclosureStore(props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/4NYSH4UO.js
  function useDialogStoreProps(store, update, props) {
    return useDisclosureStoreProps(store, update, props);
  }
  function useDialogStore(props = {}) {
    const [store, update] = useStore(createDialogStore, props);
    return useDialogStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/Z32PU2LQ.js
  var import_react27 = __toESM(require_react(), 1);
  var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
  var TagName19 = "div";
  var isSafariBrowser2 = isSafari();
  function isAlreadyFocusingAnotherElement(dialog) {
    const activeElement = getActiveElement();
    if (!activeElement) return false;
    if (dialog && contains(dialog, activeElement)) return false;
    if (isFocusable(activeElement)) return true;
    return false;
  }
  function getElementFromProp(prop, focusable = false) {
    if (!prop) return null;
    const element = "current" in prop ? prop.current : prop;
    if (!element) return null;
    if (focusable) return isFocusable(element) ? element : null;
    return element;
  }
  var useDialog = createHook(function useDialog2({
    store: storeProp,
    open: openProp,
    onClose,
    focusable = true,
    modal = true,
    portal = !!modal,
    backdrop = !!modal,
    hideOnEscape = true,
    hideOnInteractOutside = true,
    getPersistentElements,
    preventBodyScroll = !!modal,
    autoFocusOnShow = true,
    autoFocusOnHide = true,
    initialFocus,
    finalFocus,
    unmountOnHide,
    unstable_treeSnapshotKey,
    ...props
  }) {
    const context = useDialogProviderContext();
    const ref = (0, import_react27.useRef)(null);
    const store = useDialogStore({
      store: storeProp || context,
      open: openProp,
      setOpen(open2) {
        if (open2) return;
        const dialog = ref.current;
        if (!dialog) return;
        const event = new Event("close", { bubbles: false, cancelable: true });
        if (onClose) {
          dialog.addEventListener("close", onClose, { once: true });
        }
        dialog.dispatchEvent(event);
        if (!event.defaultPrevented) return;
        store.setOpen(true);
      }
    });
    const { portalRef, domReady } = usePortalRef(portal, props.portalRef);
    const preserveTabOrderProp = props.preserveTabOrder;
    const preserveTabOrder = useStoreState(
      store,
      (state) => preserveTabOrderProp && !modal && state.mounted
    );
    const id3 = useId(props.id);
    const open = useStoreState(store, "open");
    const mounted = useStoreState(store, "mounted");
    const contentElement = useStoreState(store, "contentElement");
    const hidden = isHidden(mounted, props.hidden, props.alwaysVisible);
    usePreventBodyScroll(contentElement, id3, preventBodyScroll && !hidden);
    useHideOnInteractOutside(store, hideOnInteractOutside, domReady);
    const { wrapElement, nestedDialogs } = useNestedDialogs(store);
    props = useWrapElement(props, wrapElement, [wrapElement]);
    useSafeLayoutEffect(() => {
      if (!open) return;
      const dialog = ref.current;
      const activeElement = getActiveElement(dialog, true);
      if (!activeElement) return;
      if (activeElement.tagName === "BODY") return;
      if (dialog && contains(dialog, activeElement)) return;
      store.setDisclosureElement(activeElement);
    }, [store, open]);
    if (isSafariBrowser2) {
      (0, import_react27.useEffect)(() => {
        if (!mounted) return;
        const { disclosureElement } = store.getState();
        if (!disclosureElement) return;
        if (!isButton(disclosureElement)) return;
        const onMouseDown = () => {
          let receivedFocus = false;
          const onFocus = () => {
            receivedFocus = true;
          };
          const options2 = { capture: true, once: true };
          disclosureElement.addEventListener("focusin", onFocus, options2);
          queueBeforeEvent(disclosureElement, "mouseup", () => {
            disclosureElement.removeEventListener("focusin", onFocus, true);
            if (receivedFocus) return;
            focusIfNeeded(disclosureElement);
          });
        };
        disclosureElement.addEventListener("mousedown", onMouseDown);
        return () => {
          disclosureElement.removeEventListener("mousedown", onMouseDown);
        };
      }, [store, mounted]);
    }
    (0, import_react27.useEffect)(() => {
      if (!mounted) return;
      if (!domReady) return;
      const dialog = ref.current;
      if (!dialog) return;
      const win = getWindow(dialog);
      const viewport = win.visualViewport || win;
      const setViewportHeight = () => {
        var _a, _b;
        const height = (_b = (_a = win.visualViewport) == null ? void 0 : _a.height) != null ? _b : win.innerHeight;
        dialog.style.setProperty("--dialog-viewport-height", `${height}px`);
      };
      setViewportHeight();
      viewport.addEventListener("resize", setViewportHeight);
      return () => {
        viewport.removeEventListener("resize", setViewportHeight);
      };
    }, [mounted, domReady]);
    (0, import_react27.useEffect)(() => {
      if (!modal) return;
      if (!mounted) return;
      if (!domReady) return;
      const dialog = ref.current;
      if (!dialog) return;
      const existingDismiss = dialog.querySelector("[data-dialog-dismiss]");
      if (existingDismiss) return;
      return prependHiddenDismiss(dialog, store.hide);
    }, [store, modal, mounted, domReady]);
    useSafeLayoutEffect(() => {
      if (!supportsInert()) return;
      if (open) return;
      if (!mounted) return;
      if (!domReady) return;
      const dialog = ref.current;
      if (!dialog) return;
      return disableTree(dialog);
    }, [open, mounted, domReady]);
    const canTakeTreeSnapshot = open && domReady;
    useSafeLayoutEffect(() => {
      if (!id3) return;
      if (!canTakeTreeSnapshot) return;
      const dialog = ref.current;
      return createWalkTreeSnapshot(id3, [dialog]);
    }, [id3, canTakeTreeSnapshot, unstable_treeSnapshotKey]);
    const getPersistentElementsProp = useEvent(getPersistentElements);
    useSafeLayoutEffect(() => {
      if (!id3) return;
      if (!canTakeTreeSnapshot) return;
      const { disclosureElement } = store.getState();
      const dialog = ref.current;
      const persistentElements = getPersistentElementsProp() || [];
      const allElements = [
        dialog,
        ...persistentElements,
        ...nestedDialogs.map((dialog2) => dialog2.getState().contentElement)
      ];
      if (modal) {
        return chain(
          markTreeOutside(id3, allElements),
          disableTreeOutside(id3, allElements)
        );
      }
      return markTreeOutside(id3, [disclosureElement, ...allElements]);
    }, [
      id3,
      store,
      canTakeTreeSnapshot,
      getPersistentElementsProp,
      nestedDialogs,
      modal,
      unstable_treeSnapshotKey
    ]);
    const mayAutoFocusOnShow = !!autoFocusOnShow;
    const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow);
    const [autoFocusEnabled, setAutoFocusEnabled] = (0, import_react27.useState)(false);
    (0, import_react27.useEffect)(() => {
      if (!open) return;
      if (!mayAutoFocusOnShow) return;
      if (!domReady) return;
      if (!(contentElement == null ? void 0 : contentElement.isConnected)) return;
      const element = getElementFromProp(initialFocus, true) || // If no initial focus is specified, we try to focus the first element
      // with the autofocus attribute. If it's an Ariakit component, the
      // Focusable component will consume the autoFocus prop and add the
      // data-autofocus attribute to the element instead.
      contentElement.querySelector(
        "[data-autofocus=true],[autofocus]"
      ) || // We have to fallback to the first focusable element otherwise portaled
      // dialogs with preserveTabOrder set to true will not receive focus
      // properly because the elements aren't tabbable until the dialog receives
      // focus.
      getFirstTabbableIn(contentElement, true, portal && preserveTabOrder) || // Finally, we fallback to the dialog element itself.
      contentElement;
      const isElementFocusable = isFocusable(element);
      if (!autoFocusOnShowProp(isElementFocusable ? element : null)) return;
      setAutoFocusEnabled(true);
      queueMicrotask(() => {
        element.focus();
        if (!isSafariBrowser2) return;
        if (!isElementFocusable) return;
        element.scrollIntoView({ block: "nearest", inline: "nearest" });
      });
    }, [
      open,
      mayAutoFocusOnShow,
      domReady,
      contentElement,
      initialFocus,
      portal,
      preserveTabOrder,
      autoFocusOnShowProp
    ]);
    const mayAutoFocusOnHide = !!autoFocusOnHide;
    const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide);
    const [hasOpened, setHasOpened] = (0, import_react27.useState)(false);
    (0, import_react27.useEffect)(() => {
      if (!open) return;
      setHasOpened(true);
      return () => setHasOpened(false);
    }, [open]);
    const focusOnHide = (0, import_react27.useCallback)(
      (dialog, retry = true) => {
        const { disclosureElement } = store.getState();
        if (isAlreadyFocusingAnotherElement(dialog)) return;
        let element = getElementFromProp(finalFocus) || disclosureElement;
        if (element == null ? void 0 : element.id) {
          const doc = getDocument(element);
          const selector2 = `[aria-activedescendant="${element.id}"]`;
          const composite = doc.querySelector(selector2);
          if (composite) {
            element = composite;
          }
        }
        if (element && !isFocusable(element)) {
          const maybeParentDialog = element.closest("[data-dialog]");
          if (maybeParentDialog == null ? void 0 : maybeParentDialog.id) {
            const doc = getDocument(maybeParentDialog);
            const selector2 = `[aria-controls~="${maybeParentDialog.id}"]`;
            const control = doc.querySelector(selector2);
            if (control) {
              element = control;
            }
          }
        }
        const isElementFocusable = element && isFocusable(element);
        if (!isElementFocusable && retry) {
          requestAnimationFrame(() => focusOnHide(dialog, false));
          return;
        }
        if (!autoFocusOnHideProp(isElementFocusable ? element : null)) return;
        if (!isElementFocusable) return;
        element == null ? void 0 : element.focus({ preventScroll: true });
      },
      [store, finalFocus, autoFocusOnHideProp]
    );
    const focusedOnHideRef = (0, import_react27.useRef)(false);
    useSafeLayoutEffect(() => {
      if (open) return;
      if (!hasOpened) return;
      if (!mayAutoFocusOnHide) return;
      const dialog = ref.current;
      focusedOnHideRef.current = true;
      focusOnHide(dialog);
    }, [open, hasOpened, domReady, mayAutoFocusOnHide, focusOnHide]);
    (0, import_react27.useEffect)(() => {
      if (!hasOpened) return;
      if (!mayAutoFocusOnHide) return;
      const dialog = ref.current;
      return () => {
        if (focusedOnHideRef.current) {
          focusedOnHideRef.current = false;
          return;
        }
        focusOnHide(dialog);
      };
    }, [hasOpened, mayAutoFocusOnHide, focusOnHide]);
    const hideOnEscapeProp = useBooleanEvent(hideOnEscape);
    (0, import_react27.useEffect)(() => {
      if (!domReady) return;
      if (!mounted) return;
      const onKeyDown = (event) => {
        if (event.key !== "Escape") return;
        if (event.defaultPrevented) return;
        const dialog = ref.current;
        if (!dialog) return;
        if (isElementMarked(dialog)) return;
        const target = event.target;
        if (!target) return;
        const { disclosureElement } = store.getState();
        const isValidTarget = () => {
          if (target.tagName === "BODY") return true;
          if (contains(dialog, target)) return true;
          if (!disclosureElement) return true;
          if (contains(disclosureElement, target)) return true;
          return false;
        };
        if (!isValidTarget()) return;
        if (!hideOnEscapeProp(event)) return;
        store.hide();
      };
      return addGlobalEventListener("keydown", onKeyDown, true);
    }, [store, domReady, mounted, hideOnEscapeProp]);
    props = useWrapElement(
      props,
      (element) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(HeadingLevel, { level: modal ? 1 : void 0, children: element }),
      [modal]
    );
    const hiddenProp = props.hidden;
    const alwaysVisible = props.alwaysVisible;
    props = useWrapElement(
      props,
      (element) => {
        if (!backdrop) return element;
        return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
          /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
            DialogBackdrop,
            {
              store,
              backdrop,
              hidden: hiddenProp,
              alwaysVisible
            }
          ),
          element
        ] });
      },
      [store, backdrop, hiddenProp, alwaysVisible]
    );
    const [headingId, setHeadingId] = (0, import_react27.useState)();
    const [descriptionId, setDescriptionId] = (0, import_react27.useState)();
    props = useWrapElement(
      props,
      (element) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogScopedContextProvider, { value: store, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogHeadingContext.Provider, { value: setHeadingId, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogDescriptionContext.Provider, { value: setDescriptionId, children: element }) }) }),
      [store]
    );
    props = {
      id: id3,
      "data-dialog": "",
      role: "dialog",
      tabIndex: focusable ? -1 : void 0,
      "aria-labelledby": headingId,
      "aria-describedby": descriptionId,
      ...props,
      ref: useMergeRefs(ref, props.ref)
    };
    props = useFocusableContainer({
      ...props,
      autoFocusOnShow: autoFocusEnabled
    });
    props = useDisclosureContent({ store, ...props });
    props = useFocusable({ ...props, focusable });
    props = usePortal({ portal, ...props, portalRef, preserveTabOrder });
    return props;
  });
  function createDialogComponent(Component9, useProviderContext = useDialogProviderContext) {
    return forwardRef2(function DialogComponent(props) {
      const context = useProviderContext();
      const store = props.store || context;
      const mounted = useStoreState(
        store,
        (state) => !props.unmountOnHide || (state == null ? void 0 : state.mounted) || !!props.open
      );
      if (!mounted) return null;
      return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Component9, { ...props });
    });
  }
  var Dialog = createDialogComponent(
    forwardRef2(function Dialog2(props) {
      const htmlProps = useDialog(props);
      return createElement(TagName19, htmlProps);
    }),
    useDialogProviderContext
  );

  // node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
  var min = Math.min;
  var max = Math.max;
  var round = Math.round;
  var floor = Math.floor;
  var createCoords = (v3) => ({
    x: v3,
    y: v3
  });
  var oppositeSideMap = {
    left: "right",
    right: "left",
    bottom: "top",
    top: "bottom"
  };
  var oppositeAlignmentMap = {
    start: "end",
    end: "start"
  };
  function clamp(start, value, end) {
    return max(start, min(value, end));
  }
  function evaluate(value, param) {
    return typeof value === "function" ? value(param) : value;
  }
  function getSide(placement) {
    return placement.split("-")[0];
  }
  function getAlignment(placement) {
    return placement.split("-")[1];
  }
  function getOppositeAxis(axis) {
    return axis === "x" ? "y" : "x";
  }
  function getAxisLength(axis) {
    return axis === "y" ? "height" : "width";
  }
  var yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]);
  function getSideAxis(placement) {
    return yAxisSides.has(getSide(placement)) ? "y" : "x";
  }
  function getAlignmentAxis(placement) {
    return getOppositeAxis(getSideAxis(placement));
  }
  function getAlignmentSides(placement, rects, rtl2) {
    if (rtl2 === void 0) {
      rtl2 = false;
    }
    const alignment = getAlignment(placement);
    const alignmentAxis = getAlignmentAxis(placement);
    const length2 = getAxisLength(alignmentAxis);
    let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl2 ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
    if (rects.reference[length2] > rects.floating[length2]) {
      mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
    }
    return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
  }
  function getExpandedPlacements(placement) {
    const oppositePlacement = getOppositePlacement(placement);
    return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
  }
  function getOppositeAlignmentPlacement(placement) {
    return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
  }
  var lrPlacement = ["left", "right"];
  var rlPlacement = ["right", "left"];
  var tbPlacement = ["top", "bottom"];
  var btPlacement = ["bottom", "top"];
  function getSideList(side, isStart, rtl2) {
    switch (side) {
      case "top":
      case "bottom":
        if (rtl2) return isStart ? rlPlacement : lrPlacement;
        return isStart ? lrPlacement : rlPlacement;
      case "left":
      case "right":
        return isStart ? tbPlacement : btPlacement;
      default:
        return [];
    }
  }
  function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl2) {
    const alignment = getAlignment(placement);
    let list = getSideList(getSide(placement), direction === "start", rtl2);
    if (alignment) {
      list = list.map((side) => side + "-" + alignment);
      if (flipAlignment) {
        list = list.concat(list.map(getOppositeAlignmentPlacement));
      }
    }
    return list;
  }
  function getOppositePlacement(placement) {
    return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
  }
  function expandPaddingObject(padding2) {
    return {
      top: 0,
      right: 0,
      bottom: 0,
      left: 0,
      ...padding2
    };
  }
  function getPaddingObject(padding2) {
    return typeof padding2 !== "number" ? expandPaddingObject(padding2) : {
      top: padding2,
      right: padding2,
      bottom: padding2,
      left: padding2
    };
  }
  function rectToClientRect(rect) {
    const {
      x: x2,
      y: y3,
      width,
      height
    } = rect;
    return {
      width,
      height,
      top: y3,
      left: x2,
      right: x2 + width,
      bottom: y3 + height,
      x: x2,
      y: y3
    };
  }

  // node_modules/@floating-ui/core/dist/floating-ui.core.mjs
  function computeCoordsFromPlacement(_ref11, placement, rtl2) {
    let {
      reference,
      floating
    } = _ref11;
    const sideAxis = getSideAxis(placement);
    const alignmentAxis = getAlignmentAxis(placement);
    const alignLength = getAxisLength(alignmentAxis);
    const side = getSide(placement);
    const isVertical = sideAxis === "y";
    const commonX = reference.x + reference.width / 2 - floating.width / 2;
    const commonY = reference.y + reference.height / 2 - floating.height / 2;
    const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
    let coords;
    switch (side) {
      case "top":
        coords = {
          x: commonX,
          y: reference.y - floating.height
        };
        break;
      case "bottom":
        coords = {
          x: commonX,
          y: reference.y + reference.height
        };
        break;
      case "right":
        coords = {
          x: reference.x + reference.width,
          y: commonY
        };
        break;
      case "left":
        coords = {
          x: reference.x - floating.width,
          y: commonY
        };
        break;
      default:
        coords = {
          x: reference.x,
          y: reference.y
        };
    }
    switch (getAlignment(placement)) {
      case "start":
        coords[alignmentAxis] -= commonAlign * (rtl2 && isVertical ? -1 : 1);
        break;
      case "end":
        coords[alignmentAxis] += commonAlign * (rtl2 && isVertical ? -1 : 1);
        break;
    }
    return coords;
  }
  var computePosition = async (reference, floating, config) => {
    const {
      placement = "bottom",
      strategy = "absolute",
      middleware: middleware2 = [],
      platform: platform2
    } = config;
    const validMiddleware = middleware2.filter(Boolean);
    const rtl2 = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));
    let rects = await platform2.getElementRects({
      reference,
      floating,
      strategy
    });
    let {
      x: x2,
      y: y3
    } = computeCoordsFromPlacement(rects, placement, rtl2);
    let statefulPlacement = placement;
    let middlewareData = {};
    let resetCount = 0;
    for (let i3 = 0; i3 < validMiddleware.length; i3++) {
      const {
        name,
        fn
      } = validMiddleware[i3];
      const {
        x: nextX,
        y: nextY,
        data,
        reset
      } = await fn({
        x: x2,
        y: y3,
        initialPlacement: placement,
        placement: statefulPlacement,
        strategy,
        middlewareData,
        rects,
        platform: platform2,
        elements: {
          reference,
          floating
        }
      });
      x2 = nextX != null ? nextX : x2;
      y3 = nextY != null ? nextY : y3;
      middlewareData = {
        ...middlewareData,
        [name]: {
          ...middlewareData[name],
          ...data
        }
      };
      if (reset && resetCount <= 50) {
        resetCount++;
        if (typeof reset === "object") {
          if (reset.placement) {
            statefulPlacement = reset.placement;
          }
          if (reset.rects) {
            rects = reset.rects === true ? await platform2.getElementRects({
              reference,
              floating,
              strategy
            }) : reset.rects;
          }
          ({
            x: x2,
            y: y3
          } = computeCoordsFromPlacement(rects, statefulPlacement, rtl2));
        }
        i3 = -1;
      }
    }
    return {
      x: x2,
      y: y3,
      placement: statefulPlacement,
      strategy,
      middlewareData
    };
  };
  async function detectOverflow(state, options2) {
    var _await$platform$isEle;
    if (options2 === void 0) {
      options2 = {};
    }
    const {
      x: x2,
      y: y3,
      platform: platform2,
      rects,
      elements: elements2,
      strategy
    } = state;
    const {
      boundary = "clippingAncestors",
      rootBoundary = "viewport",
      elementContext = "floating",
      altBoundary = false,
      padding: padding2 = 0
    } = evaluate(options2, state);
    const paddingObject = getPaddingObject(padding2);
    const altContext = elementContext === "floating" ? "reference" : "floating";
    const element = elements2[altBoundary ? altContext : elementContext];
    const clippingClientRect = rectToClientRect(await platform2.getClippingRect({
      element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements2.floating)),
      boundary,
      rootBoundary,
      strategy
    }));
    const rect = elementContext === "floating" ? {
      x: x2,
      y: y3,
      width: rects.floating.width,
      height: rects.floating.height
    } : rects.reference;
    const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements2.floating));
    const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {
      x: 1,
      y: 1
    } : {
      x: 1,
      y: 1
    };
    const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({
      elements: elements2,
      rect,
      offsetParent,
      strategy
    }) : rect);
    return {
      top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
      bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
      left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
      right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
    };
  }
  var arrow = (options2) => ({
    name: "arrow",
    options: options2,
    async fn(state) {
      const {
        x: x2,
        y: y3,
        placement,
        rects,
        platform: platform2,
        elements: elements2,
        middlewareData
      } = state;
      const {
        element,
        padding: padding2 = 0
      } = evaluate(options2, state) || {};
      if (element == null) {
        return {};
      }
      const paddingObject = getPaddingObject(padding2);
      const coords = {
        x: x2,
        y: y3
      };
      const axis = getAlignmentAxis(placement);
      const length2 = getAxisLength(axis);
      const arrowDimensions = await platform2.getDimensions(element);
      const isYAxis = axis === "y";
      const minProp = isYAxis ? "top" : "left";
      const maxProp = isYAxis ? "bottom" : "right";
      const clientProp = isYAxis ? "clientHeight" : "clientWidth";
      const endDiff = rects.reference[length2] + rects.reference[axis] - coords[axis] - rects.floating[length2];
      const startDiff = coords[axis] - rects.reference[axis];
      const arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element));
      let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
      if (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) {
        clientSize = elements2.floating[clientProp] || rects.floating[length2];
      }
      const centerToReference = endDiff / 2 - startDiff / 2;
      const largestPossiblePadding = clientSize / 2 - arrowDimensions[length2] / 2 - 1;
      const minPadding = min(paddingObject[minProp], largestPossiblePadding);
      const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
      const min$1 = minPadding;
      const max3 = clientSize - arrowDimensions[length2] - maxPadding;
      const center = clientSize / 2 - arrowDimensions[length2] / 2 + centerToReference;
      const offset3 = clamp(min$1, center, max3);
      const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset3 && rects.reference[length2] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length2] / 2 < 0;
      const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max3 : 0;
      return {
        [axis]: coords[axis] + alignmentOffset,
        data: {
          [axis]: offset3,
          centerOffset: center - offset3 - alignmentOffset,
          ...shouldAddOffset && {
            alignmentOffset
          }
        },
        reset: shouldAddOffset
      };
    }
  });
  var flip = function(options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    return {
      name: "flip",
      options: options2,
      async fn(state) {
        var _middlewareData$arrow, _middlewareData$flip;
        const {
          placement,
          middlewareData,
          rects,
          initialPlacement,
          platform: platform2,
          elements: elements2
        } = state;
        const {
          mainAxis: checkMainAxis = true,
          crossAxis: checkCrossAxis = true,
          fallbackPlacements: specifiedFallbackPlacements,
          fallbackStrategy = "bestFit",
          fallbackAxisSideDirection = "none",
          flipAlignment = true,
          ...detectOverflowOptions
        } = evaluate(options2, state);
        if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
          return {};
        }
        const side = getSide(placement);
        const initialSideAxis = getSideAxis(initialPlacement);
        const isBasePlacement = getSide(initialPlacement) === initialPlacement;
        const rtl2 = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements2.floating));
        const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
        const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
        if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
          fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl2));
        }
        const placements2 = [initialPlacement, ...fallbackPlacements];
        const overflow = await detectOverflow(state, detectOverflowOptions);
        const overflows = [];
        let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
        if (checkMainAxis) {
          overflows.push(overflow[side]);
        }
        if (checkCrossAxis) {
          const sides3 = getAlignmentSides(placement, rects, rtl2);
          overflows.push(overflow[sides3[0]], overflow[sides3[1]]);
        }
        overflowsData = [...overflowsData, {
          placement,
          overflows
        }];
        if (!overflows.every((side2) => side2 <= 0)) {
          var _middlewareData$flip2, _overflowsData$filter;
          const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
          const nextPlacement = placements2[nextIndex];
          if (nextPlacement) {
            const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
            if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
            // overflows the main axis.
            overflowsData.every((d3) => getSideAxis(d3.placement) === initialSideAxis ? d3.overflows[0] > 0 : true)) {
              return {
                data: {
                  index: nextIndex,
                  overflows: overflowsData
                },
                reset: {
                  placement: nextPlacement
                }
              };
            }
          }
          let resetPlacement = (_overflowsData$filter = overflowsData.filter((d3) => d3.overflows[0] <= 0).sort((a3, b3) => a3.overflows[1] - b3.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
          if (!resetPlacement) {
            switch (fallbackStrategy) {
              case "bestFit": {
                var _overflowsData$filter2;
                const placement2 = (_overflowsData$filter2 = overflowsData.filter((d3) => {
                  if (hasFallbackAxisSideDirection) {
                    const currentSideAxis = getSideAxis(d3.placement);
                    return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
                    // reading directions favoring greater width.
                    currentSideAxis === "y";
                  }
                  return true;
                }).map((d3) => [d3.placement, d3.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a3, b3) => a3[1] - b3[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
                if (placement2) {
                  resetPlacement = placement2;
                }
                break;
              }
              case "initialPlacement":
                resetPlacement = initialPlacement;
                break;
            }
          }
          if (placement !== resetPlacement) {
            return {
              reset: {
                placement: resetPlacement
              }
            };
          }
        }
        return {};
      }
    };
  };
  var originSides = /* @__PURE__ */ new Set(["left", "top"]);
  async function convertValueToCoords(state, options2) {
    const {
      placement,
      platform: platform2,
      elements: elements2
    } = state;
    const rtl2 = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements2.floating));
    const side = getSide(placement);
    const alignment = getAlignment(placement);
    const isVertical = getSideAxis(placement) === "y";
    const mainAxisMulti = originSides.has(side) ? -1 : 1;
    const crossAxisMulti = rtl2 && isVertical ? -1 : 1;
    const rawValue = evaluate(options2, state);
    let {
      mainAxis,
      crossAxis,
      alignmentAxis
    } = typeof rawValue === "number" ? {
      mainAxis: rawValue,
      crossAxis: 0,
      alignmentAxis: null
    } : {
      mainAxis: rawValue.mainAxis || 0,
      crossAxis: rawValue.crossAxis || 0,
      alignmentAxis: rawValue.alignmentAxis
    };
    if (alignment && typeof alignmentAxis === "number") {
      crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
    }
    return isVertical ? {
      x: crossAxis * crossAxisMulti,
      y: mainAxis * mainAxisMulti
    } : {
      x: mainAxis * mainAxisMulti,
      y: crossAxis * crossAxisMulti
    };
  }
  var offset = function(options2) {
    if (options2 === void 0) {
      options2 = 0;
    }
    return {
      name: "offset",
      options: options2,
      async fn(state) {
        var _middlewareData$offse, _middlewareData$arrow;
        const {
          x: x2,
          y: y3,
          placement,
          middlewareData
        } = state;
        const diffCoords = await convertValueToCoords(state, options2);
        if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
          return {};
        }
        return {
          x: x2 + diffCoords.x,
          y: y3 + diffCoords.y,
          data: {
            ...diffCoords,
            placement
          }
        };
      }
    };
  };
  var shift = function(options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    return {
      name: "shift",
      options: options2,
      async fn(state) {
        const {
          x: x2,
          y: y3,
          placement
        } = state;
        const {
          mainAxis: checkMainAxis = true,
          crossAxis: checkCrossAxis = false,
          limiter = {
            fn: (_ref11) => {
              let {
                x: x3,
                y: y4
              } = _ref11;
              return {
                x: x3,
                y: y4
              };
            }
          },
          ...detectOverflowOptions
        } = evaluate(options2, state);
        const coords = {
          x: x2,
          y: y3
        };
        const overflow = await detectOverflow(state, detectOverflowOptions);
        const crossAxis = getSideAxis(getSide(placement));
        const mainAxis = getOppositeAxis(crossAxis);
        let mainAxisCoord = coords[mainAxis];
        let crossAxisCoord = coords[crossAxis];
        if (checkMainAxis) {
          const minSide = mainAxis === "y" ? "top" : "left";
          const maxSide = mainAxis === "y" ? "bottom" : "right";
          const min3 = mainAxisCoord + overflow[minSide];
          const max3 = mainAxisCoord - overflow[maxSide];
          mainAxisCoord = clamp(min3, mainAxisCoord, max3);
        }
        if (checkCrossAxis) {
          const minSide = crossAxis === "y" ? "top" : "left";
          const maxSide = crossAxis === "y" ? "bottom" : "right";
          const min3 = crossAxisCoord + overflow[minSide];
          const max3 = crossAxisCoord - overflow[maxSide];
          crossAxisCoord = clamp(min3, crossAxisCoord, max3);
        }
        const limitedCoords = limiter.fn({
          ...state,
          [mainAxis]: mainAxisCoord,
          [crossAxis]: crossAxisCoord
        });
        return {
          ...limitedCoords,
          data: {
            x: limitedCoords.x - x2,
            y: limitedCoords.y - y3,
            enabled: {
              [mainAxis]: checkMainAxis,
              [crossAxis]: checkCrossAxis
            }
          }
        };
      }
    };
  };
  var limitShift = function(options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    return {
      options: options2,
      fn(state) {
        const {
          x: x2,
          y: y3,
          placement,
          rects,
          middlewareData
        } = state;
        const {
          offset: offset3 = 0,
          mainAxis: checkMainAxis = true,
          crossAxis: checkCrossAxis = true
        } = evaluate(options2, state);
        const coords = {
          x: x2,
          y: y3
        };
        const crossAxis = getSideAxis(placement);
        const mainAxis = getOppositeAxis(crossAxis);
        let mainAxisCoord = coords[mainAxis];
        let crossAxisCoord = coords[crossAxis];
        const rawOffset = evaluate(offset3, state);
        const computedOffset = typeof rawOffset === "number" ? {
          mainAxis: rawOffset,
          crossAxis: 0
        } : {
          mainAxis: 0,
          crossAxis: 0,
          ...rawOffset
        };
        if (checkMainAxis) {
          const len = mainAxis === "y" ? "height" : "width";
          const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
          const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
          if (mainAxisCoord < limitMin) {
            mainAxisCoord = limitMin;
          } else if (mainAxisCoord > limitMax) {
            mainAxisCoord = limitMax;
          }
        }
        if (checkCrossAxis) {
          var _middlewareData$offse, _middlewareData$offse2;
          const len = mainAxis === "y" ? "width" : "height";
          const isOriginSide = originSides.has(getSide(placement));
          const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
          const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
          if (crossAxisCoord < limitMin) {
            crossAxisCoord = limitMin;
          } else if (crossAxisCoord > limitMax) {
            crossAxisCoord = limitMax;
          }
        }
        return {
          [mainAxis]: mainAxisCoord,
          [crossAxis]: crossAxisCoord
        };
      }
    };
  };
  var size = function(options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    return {
      name: "size",
      options: options2,
      async fn(state) {
        var _state$middlewareData, _state$middlewareData2;
        const {
          placement,
          rects,
          platform: platform2,
          elements: elements2
        } = state;
        const {
          apply = () => {
          },
          ...detectOverflowOptions
        } = evaluate(options2, state);
        const overflow = await detectOverflow(state, detectOverflowOptions);
        const side = getSide(placement);
        const alignment = getAlignment(placement);
        const isYAxis = getSideAxis(placement) === "y";
        const {
          width,
          height
        } = rects.floating;
        let heightSide;
        let widthSide;
        if (side === "top" || side === "bottom") {
          heightSide = side;
          widthSide = alignment === (await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements2.floating)) ? "start" : "end") ? "left" : "right";
        } else {
          widthSide = side;
          heightSide = alignment === "end" ? "top" : "bottom";
        }
        const maximumClippingHeight = height - overflow.top - overflow.bottom;
        const maximumClippingWidth = width - overflow.left - overflow.right;
        const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
        const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
        const noShift = !state.middlewareData.shift;
        let availableHeight = overflowAvailableHeight;
        let availableWidth = overflowAvailableWidth;
        if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
          availableWidth = maximumClippingWidth;
        }
        if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
          availableHeight = maximumClippingHeight;
        }
        if (noShift && !alignment) {
          const xMin = max(overflow.left, 0);
          const xMax = max(overflow.right, 0);
          const yMin = max(overflow.top, 0);
          const yMax = max(overflow.bottom, 0);
          if (isYAxis) {
            availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
          } else {
            availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
          }
        }
        await apply({
          ...state,
          availableWidth,
          availableHeight
        });
        const nextDimensions = await platform2.getDimensions(elements2.floating);
        if (width !== nextDimensions.width || height !== nextDimensions.height) {
          return {
            reset: {
              rects: true
            }
          };
        }
        return {};
      }
    };
  };

  // node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
  function hasWindow() {
    return typeof window !== "undefined";
  }
  function getNodeName(node2) {
    if (isNode(node2)) {
      return (node2.nodeName || "").toLowerCase();
    }
    return "#document";
  }
  function getWindow2(node2) {
    var _node$ownerDocument;
    return (node2 == null || (_node$ownerDocument = node2.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
  }
  function getDocumentElement(node2) {
    var _ref11;
    return (_ref11 = (isNode(node2) ? node2.ownerDocument : node2.document) || window.document) == null ? void 0 : _ref11.documentElement;
  }
  function isNode(value) {
    if (!hasWindow()) {
      return false;
    }
    return value instanceof Node || value instanceof getWindow2(value).Node;
  }
  function isElement(value) {
    if (!hasWindow()) {
      return false;
    }
    return value instanceof Element || value instanceof getWindow2(value).Element;
  }
  function isHTMLElement(value) {
    if (!hasWindow()) {
      return false;
    }
    return value instanceof HTMLElement || value instanceof getWindow2(value).HTMLElement;
  }
  function isShadowRoot(value) {
    if (!hasWindow() || typeof ShadowRoot === "undefined") {
      return false;
    }
    return value instanceof ShadowRoot || value instanceof getWindow2(value).ShadowRoot;
  }
  var invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]);
  function isOverflowElement(element) {
    const {
      overflow,
      overflowX,
      overflowY,
      display
    } = getComputedStyle2(element);
    return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
  }
  var tableElements = /* @__PURE__ */ new Set(["table", "td", "th"]);
  function isTableElement(element) {
    return tableElements.has(getNodeName(element));
  }
  var topLayerSelectors = [":popover-open", ":modal"];
  function isTopLayer(element) {
    return topLayerSelectors.some((selector2) => {
      try {
        return element.matches(selector2);
      } catch (_e) {
        return false;
      }
    });
  }
  var transformProperties = ["transform", "translate", "scale", "rotate", "perspective"];
  var willChangeValues = ["transform", "translate", "scale", "rotate", "perspective", "filter"];
  var containValues = ["paint", "layout", "strict", "content"];
  function isContainingBlock(elementOrCss) {
    const webkit = isWebKit();
    const css3 = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
    return transformProperties.some((value) => css3[value] ? css3[value] !== "none" : false) || (css3.containerType ? css3.containerType !== "normal" : false) || !webkit && (css3.backdropFilter ? css3.backdropFilter !== "none" : false) || !webkit && (css3.filter ? css3.filter !== "none" : false) || willChangeValues.some((value) => (css3.willChange || "").includes(value)) || containValues.some((value) => (css3.contain || "").includes(value));
  }
  function getContainingBlock(element) {
    let currentNode = getParentNode(element);
    while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
      if (isContainingBlock(currentNode)) {
        return currentNode;
      } else if (isTopLayer(currentNode)) {
        return null;
      }
      currentNode = getParentNode(currentNode);
    }
    return null;
  }
  function isWebKit() {
    if (typeof CSS === "undefined" || !CSS.supports) return false;
    return CSS.supports("-webkit-backdrop-filter", "none");
  }
  var lastTraversableNodeNames = /* @__PURE__ */ new Set(["html", "body", "#document"]);
  function isLastTraversableNode(node2) {
    return lastTraversableNodeNames.has(getNodeName(node2));
  }
  function getComputedStyle2(element) {
    return getWindow2(element).getComputedStyle(element);
  }
  function getNodeScroll(element) {
    if (isElement(element)) {
      return {
        scrollLeft: element.scrollLeft,
        scrollTop: element.scrollTop
      };
    }
    return {
      scrollLeft: element.scrollX,
      scrollTop: element.scrollY
    };
  }
  function getParentNode(node2) {
    if (getNodeName(node2) === "html") {
      return node2;
    }
    const result = (
      // Step into the shadow DOM of the parent of a slotted node.
      node2.assignedSlot || // DOM Element detected.
      node2.parentNode || // ShadowRoot detected.
      isShadowRoot(node2) && node2.host || // Fallback.
      getDocumentElement(node2)
    );
    return isShadowRoot(result) ? result.host : result;
  }
  function getNearestOverflowAncestor(node2) {
    const parentNode = getParentNode(node2);
    if (isLastTraversableNode(parentNode)) {
      return node2.ownerDocument ? node2.ownerDocument.body : node2.body;
    }
    if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
      return parentNode;
    }
    return getNearestOverflowAncestor(parentNode);
  }
  function getOverflowAncestors(node2, list, traverseIframes) {
    var _node$ownerDocument2;
    if (list === void 0) {
      list = [];
    }
    if (traverseIframes === void 0) {
      traverseIframes = true;
    }
    const scrollableAncestor = getNearestOverflowAncestor(node2);
    const isBody = scrollableAncestor === ((_node$ownerDocument2 = node2.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
    const win = getWindow2(scrollableAncestor);
    if (isBody) {
      const frameElement = getFrameElement(win);
      return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
    }
    return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
  }
  function getFrameElement(win) {
    return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
  }

  // node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
  function getCssDimensions(element) {
    const css3 = getComputedStyle2(element);
    let width = parseFloat(css3.width) || 0;
    let height = parseFloat(css3.height) || 0;
    const hasOffset = isHTMLElement(element);
    const offsetWidth = hasOffset ? element.offsetWidth : width;
    const offsetHeight = hasOffset ? element.offsetHeight : height;
    const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
    if (shouldFallback) {
      width = offsetWidth;
      height = offsetHeight;
    }
    return {
      width,
      height,
      $: shouldFallback
    };
  }
  function unwrapElement(element) {
    return !isElement(element) ? element.contextElement : element;
  }
  function getScale(element) {
    const domElement = unwrapElement(element);
    if (!isHTMLElement(domElement)) {
      return createCoords(1);
    }
    const rect = domElement.getBoundingClientRect();
    const {
      width,
      height,
      $: $3
    } = getCssDimensions(domElement);
    let x2 = ($3 ? round(rect.width) : rect.width) / width;
    let y3 = ($3 ? round(rect.height) : rect.height) / height;
    if (!x2 || !Number.isFinite(x2)) {
      x2 = 1;
    }
    if (!y3 || !Number.isFinite(y3)) {
      y3 = 1;
    }
    return {
      x: x2,
      y: y3
    };
  }
  var noOffsets = /* @__PURE__ */ createCoords(0);
  function getVisualOffsets(element) {
    const win = getWindow2(element);
    if (!isWebKit() || !win.visualViewport) {
      return noOffsets;
    }
    return {
      x: win.visualViewport.offsetLeft,
      y: win.visualViewport.offsetTop
    };
  }
  function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
    if (isFixed === void 0) {
      isFixed = false;
    }
    if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow2(element)) {
      return false;
    }
    return isFixed;
  }
  function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
    if (includeScale === void 0) {
      includeScale = false;
    }
    if (isFixedStrategy === void 0) {
      isFixedStrategy = false;
    }
    const clientRect = element.getBoundingClientRect();
    const domElement = unwrapElement(element);
    let scale2 = createCoords(1);
    if (includeScale) {
      if (offsetParent) {
        if (isElement(offsetParent)) {
          scale2 = getScale(offsetParent);
        }
      } else {
        scale2 = getScale(element);
      }
    }
    const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
    let x2 = (clientRect.left + visualOffsets.x) / scale2.x;
    let y3 = (clientRect.top + visualOffsets.y) / scale2.y;
    let width = clientRect.width / scale2.x;
    let height = clientRect.height / scale2.y;
    if (domElement) {
      const win = getWindow2(domElement);
      const offsetWin = offsetParent && isElement(offsetParent) ? getWindow2(offsetParent) : offsetParent;
      let currentWin = win;
      let currentIFrame = getFrameElement(currentWin);
      while (currentIFrame && offsetParent && offsetWin !== currentWin) {
        const iframeScale = getScale(currentIFrame);
        const iframeRect = currentIFrame.getBoundingClientRect();
        const css3 = getComputedStyle2(currentIFrame);
        const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css3.paddingLeft)) * iframeScale.x;
        const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css3.paddingTop)) * iframeScale.y;
        x2 *= iframeScale.x;
        y3 *= iframeScale.y;
        width *= iframeScale.x;
        height *= iframeScale.y;
        x2 += left;
        y3 += top;
        currentWin = getWindow2(currentIFrame);
        currentIFrame = getFrameElement(currentWin);
      }
    }
    return rectToClientRect({
      width,
      height,
      x: x2,
      y: y3
    });
  }
  function getWindowScrollBarX(element, rect) {
    const leftScroll = getNodeScroll(element).scrollLeft;
    if (!rect) {
      return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
    }
    return rect.left + leftScroll;
  }
  function getHTMLOffset(documentElement, scroll) {
    const htmlRect = documentElement.getBoundingClientRect();
    const x2 = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
    const y3 = htmlRect.top + scroll.scrollTop;
    return {
      x: x2,
      y: y3
    };
  }
  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref11) {
    let {
      elements: elements2,
      rect,
      offsetParent,
      strategy
    } = _ref11;
    const isFixed = strategy === "fixed";
    const documentElement = getDocumentElement(offsetParent);
    const topLayer = elements2 ? isTopLayer(elements2.floating) : false;
    if (offsetParent === documentElement || topLayer && isFixed) {
      return rect;
    }
    let scroll = {
      scrollLeft: 0,
      scrollTop: 0
    };
    let scale2 = createCoords(1);
    const offsets = createCoords(0);
    const isOffsetParentAnElement = isHTMLElement(offsetParent);
    if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
      if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
        scroll = getNodeScroll(offsetParent);
      }
      if (isHTMLElement(offsetParent)) {
        const offsetRect = getBoundingClientRect(offsetParent);
        scale2 = getScale(offsetParent);
        offsets.x = offsetRect.x + offsetParent.clientLeft;
        offsets.y = offsetRect.y + offsetParent.clientTop;
      }
    }
    const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
    return {
      width: rect.width * scale2.x,
      height: rect.height * scale2.y,
      x: rect.x * scale2.x - scroll.scrollLeft * scale2.x + offsets.x + htmlOffset.x,
      y: rect.y * scale2.y - scroll.scrollTop * scale2.y + offsets.y + htmlOffset.y
    };
  }
  function getClientRects(element) {
    return Array.from(element.getClientRects());
  }
  function getDocumentRect(element) {
    const html = getDocumentElement(element);
    const scroll = getNodeScroll(element);
    const body = element.ownerDocument.body;
    const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
    const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
    let x2 = -scroll.scrollLeft + getWindowScrollBarX(element);
    const y3 = -scroll.scrollTop;
    if (getComputedStyle2(body).direction === "rtl") {
      x2 += max(html.clientWidth, body.clientWidth) - width;
    }
    return {
      width,
      height,
      x: x2,
      y: y3
    };
  }
  var SCROLLBAR_MAX = 25;
  function getViewportRect(element, strategy) {
    const win = getWindow2(element);
    const html = getDocumentElement(element);
    const visualViewport = win.visualViewport;
    let width = html.clientWidth;
    let height = html.clientHeight;
    let x2 = 0;
    let y3 = 0;
    if (visualViewport) {
      width = visualViewport.width;
      height = visualViewport.height;
      const visualViewportBased = isWebKit();
      if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
        x2 = visualViewport.offsetLeft;
        y3 = visualViewport.offsetTop;
      }
    }
    const windowScrollbarX = getWindowScrollBarX(html);
    if (windowScrollbarX <= 0) {
      const doc = html.ownerDocument;
      const body = doc.body;
      const bodyStyles = getComputedStyle(body);
      const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
      const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
      if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
        width -= clippingStableScrollbarWidth;
      }
    } else if (windowScrollbarX <= SCROLLBAR_MAX) {
      width += windowScrollbarX;
    }
    return {
      width,
      height,
      x: x2,
      y: y3
    };
  }
  var absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]);
  function getInnerBoundingClientRect(element, strategy) {
    const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
    const top = clientRect.top + element.clientTop;
    const left = clientRect.left + element.clientLeft;
    const scale2 = isHTMLElement(element) ? getScale(element) : createCoords(1);
    const width = element.clientWidth * scale2.x;
    const height = element.clientHeight * scale2.y;
    const x2 = left * scale2.x;
    const y3 = top * scale2.y;
    return {
      width,
      height,
      x: x2,
      y: y3
    };
  }
  function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
    let rect;
    if (clippingAncestor === "viewport") {
      rect = getViewportRect(element, strategy);
    } else if (clippingAncestor === "document") {
      rect = getDocumentRect(getDocumentElement(element));
    } else if (isElement(clippingAncestor)) {
      rect = getInnerBoundingClientRect(clippingAncestor, strategy);
    } else {
      const visualOffsets = getVisualOffsets(element);
      rect = {
        x: clippingAncestor.x - visualOffsets.x,
        y: clippingAncestor.y - visualOffsets.y,
        width: clippingAncestor.width,
        height: clippingAncestor.height
      };
    }
    return rectToClientRect(rect);
  }
  function hasFixedPositionAncestor(element, stopNode) {
    const parentNode = getParentNode(element);
    if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
      return false;
    }
    return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
  }
  function getClippingElementAncestors(element, cache2) {
    const cachedResult = cache2.get(element);
    if (cachedResult) {
      return cachedResult;
    }
    let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
    let currentContainingBlockComputedStyle = null;
    const elementIsFixed = getComputedStyle2(element).position === "fixed";
    let currentNode = elementIsFixed ? getParentNode(element) : element;
    while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
      const computedStyle = getComputedStyle2(currentNode);
      const currentNodeIsContaining = isContainingBlock(currentNode);
      if (!currentNodeIsContaining && computedStyle.position === "fixed") {
        currentContainingBlockComputedStyle = null;
      }
      const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
      if (shouldDropCurrentNode) {
        result = result.filter((ancestor) => ancestor !== currentNode);
      } else {
        currentContainingBlockComputedStyle = computedStyle;
      }
      currentNode = getParentNode(currentNode);
    }
    cache2.set(element, result);
    return result;
  }
  function getClippingRect(_ref11) {
    let {
      element,
      boundary,
      rootBoundary,
      strategy
    } = _ref11;
    const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
    const clippingAncestors = [...elementClippingAncestors, rootBoundary];
    const firstClippingAncestor = clippingAncestors[0];
    const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
      const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
      accRect.top = max(rect.top, accRect.top);
      accRect.right = min(rect.right, accRect.right);
      accRect.bottom = min(rect.bottom, accRect.bottom);
      accRect.left = max(rect.left, accRect.left);
      return accRect;
    }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
    return {
      width: clippingRect.right - clippingRect.left,
      height: clippingRect.bottom - clippingRect.top,
      x: clippingRect.left,
      y: clippingRect.top
    };
  }
  function getDimensions(element) {
    const {
      width,
      height
    } = getCssDimensions(element);
    return {
      width,
      height
    };
  }
  function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
    const isOffsetParentAnElement = isHTMLElement(offsetParent);
    const documentElement = getDocumentElement(offsetParent);
    const isFixed = strategy === "fixed";
    const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
    let scroll = {
      scrollLeft: 0,
      scrollTop: 0
    };
    const offsets = createCoords(0);
    function setLeftRTLScrollbarOffset() {
      offsets.x = getWindowScrollBarX(documentElement);
    }
    if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
      if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
        scroll = getNodeScroll(offsetParent);
      }
      if (isOffsetParentAnElement) {
        const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
        offsets.x = offsetRect.x + offsetParent.clientLeft;
        offsets.y = offsetRect.y + offsetParent.clientTop;
      } else if (documentElement) {
        setLeftRTLScrollbarOffset();
      }
    }
    if (isFixed && !isOffsetParentAnElement && documentElement) {
      setLeftRTLScrollbarOffset();
    }
    const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
    const x2 = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
    const y3 = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
    return {
      x: x2,
      y: y3,
      width: rect.width,
      height: rect.height
    };
  }
  function isStaticPositioned(element) {
    return getComputedStyle2(element).position === "static";
  }
  function getTrueOffsetParent(element, polyfill) {
    if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
      return null;
    }
    if (polyfill) {
      return polyfill(element);
    }
    let rawOffsetParent = element.offsetParent;
    if (getDocumentElement(element) === rawOffsetParent) {
      rawOffsetParent = rawOffsetParent.ownerDocument.body;
    }
    return rawOffsetParent;
  }
  function getOffsetParent(element, polyfill) {
    const win = getWindow2(element);
    if (isTopLayer(element)) {
      return win;
    }
    if (!isHTMLElement(element)) {
      let svgOffsetParent = getParentNode(element);
      while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
        if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
          return svgOffsetParent;
        }
        svgOffsetParent = getParentNode(svgOffsetParent);
      }
      return win;
    }
    let offsetParent = getTrueOffsetParent(element, polyfill);
    while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
      offsetParent = getTrueOffsetParent(offsetParent, polyfill);
    }
    if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
      return win;
    }
    return offsetParent || getContainingBlock(element) || win;
  }
  var getElementRects = async function(data) {
    const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
    const getDimensionsFn = this.getDimensions;
    const floatingDimensions = await getDimensionsFn(data.floating);
    return {
      reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
      floating: {
        x: 0,
        y: 0,
        width: floatingDimensions.width,
        height: floatingDimensions.height
      }
    };
  };
  function isRTL(element) {
    return getComputedStyle2(element).direction === "rtl";
  }
  var platform = {
    convertOffsetParentRelativeRectToViewportRelativeRect,
    getDocumentElement,
    getClippingRect,
    getOffsetParent,
    getElementRects,
    getClientRects,
    getDimensions,
    getScale,
    isElement,
    isRTL
  };
  function rectsAreEqual(a3, b3) {
    return a3.x === b3.x && a3.y === b3.y && a3.width === b3.width && a3.height === b3.height;
  }
  function observeMove(element, onMove) {
    let io = null;
    let timeoutId;
    const root = getDocumentElement(element);
    function cleanup() {
      var _io;
      clearTimeout(timeoutId);
      (_io = io) == null || _io.disconnect();
      io = null;
    }
    function refresh(skip, threshold) {
      if (skip === void 0) {
        skip = false;
      }
      if (threshold === void 0) {
        threshold = 1;
      }
      cleanup();
      const elementRectForRootMargin = element.getBoundingClientRect();
      const {
        left,
        top,
        width,
        height
      } = elementRectForRootMargin;
      if (!skip) {
        onMove();
      }
      if (!width || !height) {
        return;
      }
      const insetTop = floor(top);
      const insetRight = floor(root.clientWidth - (left + width));
      const insetBottom = floor(root.clientHeight - (top + height));
      const insetLeft = floor(left);
      const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
      const options2 = {
        rootMargin,
        threshold: max(0, min(1, threshold)) || 1
      };
      let isFirstUpdate = true;
      function handleObserve(entries) {
        const ratio = entries[0].intersectionRatio;
        if (ratio !== threshold) {
          if (!isFirstUpdate) {
            return refresh();
          }
          if (!ratio) {
            timeoutId = setTimeout(() => {
              refresh(false, 1e-7);
            }, 1e3);
          } else {
            refresh(false, ratio);
          }
        }
        if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
          refresh();
        }
        isFirstUpdate = false;
      }
      try {
        io = new IntersectionObserver(handleObserve, {
          ...options2,
          // Handle <iframe>s
          root: root.ownerDocument
        });
      } catch (_e) {
        io = new IntersectionObserver(handleObserve, options2);
      }
      io.observe(element);
    }
    refresh(true);
    return cleanup;
  }
  function autoUpdate(reference, floating, update, options2) {
    if (options2 === void 0) {
      options2 = {};
    }
    const {
      ancestorScroll = true,
      ancestorResize = true,
      elementResize = typeof ResizeObserver === "function",
      layoutShift = typeof IntersectionObserver === "function",
      animationFrame = false
    } = options2;
    const referenceEl = unwrapElement(reference);
    const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
    ancestors.forEach((ancestor) => {
      ancestorScroll && ancestor.addEventListener("scroll", update, {
        passive: true
      });
      ancestorResize && ancestor.addEventListener("resize", update);
    });
    const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
    let reobserveFrame = -1;
    let resizeObserver = null;
    if (elementResize) {
      resizeObserver = new ResizeObserver((_ref11) => {
        let [firstEntry] = _ref11;
        if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
          resizeObserver.unobserve(floating);
          cancelAnimationFrame(reobserveFrame);
          reobserveFrame = requestAnimationFrame(() => {
            var _resizeObserver;
            (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
          });
        }
        update();
      });
      if (referenceEl && !animationFrame) {
        resizeObserver.observe(referenceEl);
      }
      resizeObserver.observe(floating);
    }
    let frameId;
    let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
    if (animationFrame) {
      frameLoop();
    }
    function frameLoop() {
      const nextRefRect = getBoundingClientRect(reference);
      if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
        update();
      }
      prevRefRect = nextRefRect;
      frameId = requestAnimationFrame(frameLoop);
    }
    update();
    return () => {
      var _resizeObserver2;
      ancestors.forEach((ancestor) => {
        ancestorScroll && ancestor.removeEventListener("scroll", update);
        ancestorResize && ancestor.removeEventListener("resize", update);
      });
      cleanupIo == null || cleanupIo();
      (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
      resizeObserver = null;
      if (animationFrame) {
        cancelAnimationFrame(frameId);
      }
    };
  }
  var offset2 = offset;
  var shift2 = shift;
  var flip2 = flip;
  var size2 = size;
  var arrow2 = arrow;
  var limitShift2 = limitShift;
  var computePosition2 = (reference, floating, options2) => {
    const cache2 = /* @__PURE__ */ new Map();
    const mergedOptions = {
      platform,
      ...options2
    };
    const platformWithCache = {
      ...mergedOptions.platform,
      _c: cache2
    };
    return computePosition(reference, floating, {
      ...mergedOptions,
      platform: platformWithCache
    });
  };

  // node_modules/@ariakit/react-core/esm/__chunks/KW7Z5AIL.js
  var import_react28 = __toESM(require_react(), 1);
  var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
  var TagName20 = "div";
  function createDOMRect(x2 = 0, y3 = 0, width = 0, height = 0) {
    if (typeof DOMRect === "function") {
      return new DOMRect(x2, y3, width, height);
    }
    const rect = {
      x: x2,
      y: y3,
      width,
      height,
      top: y3,
      right: x2 + width,
      bottom: y3 + height,
      left: x2
    };
    return { ...rect, toJSON: () => rect };
  }
  function getDOMRect(anchorRect) {
    if (!anchorRect) return createDOMRect();
    const { x: x2, y: y3, width, height } = anchorRect;
    return createDOMRect(x2, y3, width, height);
  }
  function getAnchorElement(anchorElement, getAnchorRect) {
    const contextElement = anchorElement || void 0;
    return {
      contextElement,
      getBoundingClientRect: () => {
        const anchor = anchorElement;
        const anchorRect = getAnchorRect == null ? void 0 : getAnchorRect(anchor);
        if (anchorRect || !anchor) {
          return getDOMRect(anchorRect);
        }
        return anchor.getBoundingClientRect();
      }
    };
  }
  function isValidPlacement(flip22) {
    return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(flip22);
  }
  function roundByDPR(value) {
    const dpr = window.devicePixelRatio || 1;
    return Math.round(value * dpr) / dpr;
  }
  function getOffsetMiddleware(arrowElement, props) {
    return offset2(({ placement }) => {
      var _a;
      const arrowOffset = ((arrowElement == null ? void 0 : arrowElement.clientHeight) || 0) / 2;
      const finalGutter = typeof props.gutter === "number" ? props.gutter + arrowOffset : (_a = props.gutter) != null ? _a : arrowOffset;
      const hasAlignment = !!placement.split("-")[1];
      return {
        crossAxis: !hasAlignment ? props.shift : void 0,
        mainAxis: finalGutter,
        alignmentAxis: props.shift
      };
    });
  }
  function getFlipMiddleware(props) {
    if (props.flip === false) return;
    const fallbackPlacements = typeof props.flip === "string" ? props.flip.split(" ") : void 0;
    invariant(
      !fallbackPlacements || fallbackPlacements.every(isValidPlacement),
      "`flip` expects a spaced-delimited list of placements"
    );
    return flip2({
      padding: props.overflowPadding,
      fallbackPlacements
    });
  }
  function getShiftMiddleware(props) {
    if (!props.slide && !props.overlap) return;
    return shift2({
      mainAxis: props.slide,
      crossAxis: props.overlap,
      padding: props.overflowPadding,
      limiter: limitShift2()
    });
  }
  function getSizeMiddleware(props) {
    return size2({
      padding: props.overflowPadding,
      apply({ elements: elements2, availableWidth, availableHeight, rects }) {
        const wrapper3 = elements2.floating;
        const referenceWidth = Math.round(rects.reference.width);
        availableWidth = Math.floor(availableWidth);
        availableHeight = Math.floor(availableHeight);
        wrapper3.style.setProperty(
          "--popover-anchor-width",
          `${referenceWidth}px`
        );
        wrapper3.style.setProperty(
          "--popover-available-width",
          `${availableWidth}px`
        );
        wrapper3.style.setProperty(
          "--popover-available-height",
          `${availableHeight}px`
        );
        if (props.sameWidth) {
          wrapper3.style.width = `${referenceWidth}px`;
        }
        if (props.fitViewport) {
          wrapper3.style.maxWidth = `${availableWidth}px`;
          wrapper3.style.maxHeight = `${availableHeight}px`;
        }
      }
    });
  }
  function getArrowMiddleware(arrowElement, props) {
    if (!arrowElement) return;
    return arrow2({
      element: arrowElement,
      padding: props.arrowPadding
    });
  }
  var usePopover = createHook(
    function usePopover2({
      store,
      modal = false,
      portal = !!modal,
      preserveTabOrder = true,
      autoFocusOnShow = true,
      wrapperProps,
      fixed = false,
      flip: flip22 = true,
      shift: shift22 = 0,
      slide = true,
      overlap = false,
      sameWidth = false,
      fitViewport = false,
      gutter,
      arrowPadding = 4,
      overflowPadding = 8,
      getAnchorRect,
      updatePosition,
      ...props
    }) {
      const context = usePopoverProviderContext();
      store = store || context;
      invariant(
        store,
        "Popover must receive a `store` prop or be wrapped in a PopoverProvider component."
      );
      const arrowElement = store.useState("arrowElement");
      const anchorElement = store.useState("anchorElement");
      const disclosureElement = store.useState("disclosureElement");
      const popoverElement = store.useState("popoverElement");
      const contentElement = store.useState("contentElement");
      const placement = store.useState("placement");
      const mounted = store.useState("mounted");
      const rendered = store.useState("rendered");
      const defaultArrowElementRef = (0, import_react28.useRef)(null);
      const [positioned, setPositioned] = (0, import_react28.useState)(false);
      const { portalRef, domReady } = usePortalRef(portal, props.portalRef);
      const getAnchorRectProp = useEvent(getAnchorRect);
      const updatePositionProp = useEvent(updatePosition);
      const hasCustomUpdatePosition = !!updatePosition;
      useSafeLayoutEffect(() => {
        if (!(popoverElement == null ? void 0 : popoverElement.isConnected)) return;
        popoverElement.style.setProperty(
          "--popover-overflow-padding",
          `${overflowPadding}px`
        );
        const anchor = getAnchorElement(anchorElement, getAnchorRectProp);
        const updatePosition2 = async () => {
          if (!mounted) return;
          if (!arrowElement) {
            defaultArrowElementRef.current = defaultArrowElementRef.current || document.createElement("div");
          }
          const arrow22 = arrowElement || defaultArrowElementRef.current;
          const middleware2 = [
            getOffsetMiddleware(arrow22, { gutter, shift: shift22 }),
            getFlipMiddleware({ flip: flip22, overflowPadding }),
            getShiftMiddleware({ slide, shift: shift22, overlap, overflowPadding }),
            getArrowMiddleware(arrow22, { arrowPadding }),
            getSizeMiddleware({
              sameWidth,
              fitViewport,
              overflowPadding
            })
          ];
          const pos = await computePosition2(anchor, popoverElement, {
            placement,
            strategy: fixed ? "fixed" : "absolute",
            middleware: middleware2
          });
          store == null ? void 0 : store.setState("currentPlacement", pos.placement);
          setPositioned(true);
          const x2 = roundByDPR(pos.x);
          const y3 = roundByDPR(pos.y);
          Object.assign(popoverElement.style, {
            top: "0",
            left: "0",
            transform: `translate3d(${x2}px,${y3}px,0)`
          });
          if (arrow22 && pos.middlewareData.arrow) {
            const { x: arrowX, y: arrowY } = pos.middlewareData.arrow;
            const side = pos.placement.split("-")[0];
            const centerX = arrow22.clientWidth / 2;
            const centerY = arrow22.clientHeight / 2;
            const originX = arrowX != null ? arrowX + centerX : -centerX;
            const originY = arrowY != null ? arrowY + centerY : -centerY;
            popoverElement.style.setProperty(
              "--popover-transform-origin",
              {
                top: `${originX}px calc(100% + ${centerY}px)`,
                bottom: `${originX}px ${-centerY}px`,
                left: `calc(100% + ${centerX}px) ${originY}px`,
                right: `${-centerX}px ${originY}px`
              }[side]
            );
            Object.assign(arrow22.style, {
              left: arrowX != null ? `${arrowX}px` : "",
              top: arrowY != null ? `${arrowY}px` : "",
              [side]: "100%"
            });
          }
        };
        const update = async () => {
          if (hasCustomUpdatePosition) {
            await updatePositionProp({ updatePosition: updatePosition2 });
            setPositioned(true);
          } else {
            await updatePosition2();
          }
        };
        const cancelAutoUpdate = autoUpdate(anchor, popoverElement, update, {
          // JSDOM doesn't support ResizeObserver
          elementResize: typeof ResizeObserver === "function"
        });
        return () => {
          setPositioned(false);
          cancelAutoUpdate();
        };
      }, [
        store,
        rendered,
        popoverElement,
        arrowElement,
        anchorElement,
        popoverElement,
        placement,
        mounted,
        domReady,
        fixed,
        flip22,
        shift22,
        slide,
        overlap,
        sameWidth,
        fitViewport,
        gutter,
        arrowPadding,
        overflowPadding,
        getAnchorRectProp,
        hasCustomUpdatePosition,
        updatePositionProp
      ]);
      useSafeLayoutEffect(() => {
        if (!mounted) return;
        if (!domReady) return;
        if (!(popoverElement == null ? void 0 : popoverElement.isConnected)) return;
        if (!(contentElement == null ? void 0 : contentElement.isConnected)) return;
        const applyZIndex = () => {
          popoverElement.style.zIndex = getComputedStyle(contentElement).zIndex;
        };
        applyZIndex();
        let raf = requestAnimationFrame(() => {
          raf = requestAnimationFrame(applyZIndex);
        });
        return () => cancelAnimationFrame(raf);
      }, [mounted, domReady, popoverElement, contentElement]);
      const position2 = fixed ? "fixed" : "absolute";
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
          "div",
          {
            ...wrapperProps,
            style: {
              // https://floating-ui.com/docs/computeposition#initial-layout
              position: position2,
              top: 0,
              left: 0,
              width: "max-content",
              ...wrapperProps == null ? void 0 : wrapperProps.style
            },
            ref: store == null ? void 0 : store.setPopoverElement,
            children: element
          }
        ),
        [store, position2, wrapperProps]
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopoverScopedContextProvider, { value: store, children: element }),
        [store]
      );
      props = {
        // data-placing is not part of the public API. We're setting this here so
        // we can wait for the popover to be positioned before other components
        // move focus into it. For example, this attribute is observed by the
        // Combobox component with the autoSelect behavior.
        "data-placing": !positioned || void 0,
        ...props,
        style: {
          position: "relative",
          ...props.style
        }
      };
      props = useDialog({
        store,
        modal,
        portal,
        preserveTabOrder,
        preserveTabOrderAnchor: disclosureElement || anchorElement,
        autoFocusOnShow: positioned && autoFocusOnShow,
        ...props,
        portalRef
      });
      return props;
    }
  );
  var Popover = createDialogComponent(
    forwardRef2(function Popover2(props) {
      const htmlProps = usePopover(props);
      return createElement(TagName20, htmlProps);
    }),
    usePopoverProviderContext
  );

  // node_modules/@ariakit/react-core/esm/__chunks/4HTVKX2Y.js
  var import_react29 = __toESM(require_react(), 1);
  var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
  var TagName21 = "div";
  function isMovingOnHovercard(target, card, anchor, nested) {
    if (hasFocusWithin(card)) return true;
    if (!target) return false;
    if (contains(card, target)) return true;
    if (anchor && contains(anchor, target)) return true;
    if (nested == null ? void 0 : nested.some((card2) => isMovingOnHovercard(target, card2, anchor))) {
      return true;
    }
    return false;
  }
  function useAutoFocusOnHide({
    store,
    ...props
  }) {
    const [autoFocusOnHide, setAutoFocusOnHide] = (0, import_react29.useState)(false);
    const mounted = store.useState("mounted");
    (0, import_react29.useEffect)(() => {
      if (!mounted) {
        setAutoFocusOnHide(false);
      }
    }, [mounted]);
    const onFocusProp = props.onFocus;
    const onFocus = useEvent((event) => {
      onFocusProp == null ? void 0 : onFocusProp(event);
      if (event.defaultPrevented) return;
      setAutoFocusOnHide(true);
    });
    const finalFocusRef = (0, import_react29.useRef)(null);
    (0, import_react29.useEffect)(() => {
      return sync(store, ["anchorElement"], (state) => {
        finalFocusRef.current = state.anchorElement;
      });
    }, []);
    props = {
      autoFocusOnHide,
      finalFocus: finalFocusRef,
      ...props,
      onFocus
    };
    return props;
  }
  var NestedHovercardContext = (0, import_react29.createContext)(null);
  var useHovercard = createHook(
    function useHovercard2({
      store,
      modal = false,
      portal = !!modal,
      hideOnEscape = true,
      hideOnHoverOutside = true,
      disablePointerEventsOnApproach = !!hideOnHoverOutside,
      ...props
    }) {
      const context = useHovercardProviderContext();
      store = store || context;
      invariant(
        store,
        "Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component."
      );
      const ref = (0, import_react29.useRef)(null);
      const [nestedHovercards, setNestedHovercards] = (0, import_react29.useState)([]);
      const hideTimeoutRef = (0, import_react29.useRef)(0);
      const enterPointRef = (0, import_react29.useRef)(null);
      const { portalRef, domReady } = usePortalRef(portal, props.portalRef);
      const isMouseMoving = useIsMouseMoving();
      const mayHideOnHoverOutside = !!hideOnHoverOutside;
      const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);
      const mayDisablePointerEvents = !!disablePointerEventsOnApproach;
      const disablePointerEventsProp = useBooleanEvent(
        disablePointerEventsOnApproach
      );
      const open = store.useState("open");
      const mounted = store.useState("mounted");
      (0, import_react29.useEffect)(() => {
        if (!domReady) return;
        if (!mounted) return;
        if (!mayHideOnHoverOutside && !mayDisablePointerEvents) return;
        const element = ref.current;
        if (!element) return;
        const onMouseMove = (event) => {
          if (!store) return;
          if (!isMouseMoving()) return;
          const { anchorElement, hideTimeout, timeout } = store.getState();
          const enterPoint = enterPointRef.current;
          const [target] = event.composedPath();
          const anchor = anchorElement;
          if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {
            enterPointRef.current = target && anchor && contains(anchor, target) ? getEventPoint(event) : null;
            window.clearTimeout(hideTimeoutRef.current);
            hideTimeoutRef.current = 0;
            return;
          }
          if (hideTimeoutRef.current) return;
          if (enterPoint) {
            const currentPoint = getEventPoint(event);
            const polygon = getElementPolygon(element, enterPoint);
            if (isPointInPolygon(currentPoint, polygon)) {
              enterPointRef.current = currentPoint;
              if (!disablePointerEventsProp(event)) return;
              event.preventDefault();
              event.stopPropagation();
              return;
            }
          }
          if (!hideOnHoverOutsideProp(event)) return;
          hideTimeoutRef.current = window.setTimeout(() => {
            hideTimeoutRef.current = 0;
            store == null ? void 0 : store.hide();
          }, hideTimeout != null ? hideTimeout : timeout);
        };
        return chain(
          addGlobalEventListener("mousemove", onMouseMove, true),
          () => clearTimeout(hideTimeoutRef.current)
        );
      }, [
        store,
        isMouseMoving,
        domReady,
        mounted,
        mayHideOnHoverOutside,
        mayDisablePointerEvents,
        nestedHovercards,
        disablePointerEventsProp,
        hideOnHoverOutsideProp
      ]);
      (0, import_react29.useEffect)(() => {
        if (!domReady) return;
        if (!mounted) return;
        if (!mayDisablePointerEvents) return;
        const disableEvent = (event) => {
          const element = ref.current;
          if (!element) return;
          const enterPoint = enterPointRef.current;
          if (!enterPoint) return;
          const polygon = getElementPolygon(element, enterPoint);
          if (isPointInPolygon(getEventPoint(event), polygon)) {
            if (!disablePointerEventsProp(event)) return;
            event.preventDefault();
            event.stopPropagation();
          }
        };
        return chain(
          // Note: we may need to add pointer events here in the future.
          addGlobalEventListener("mouseenter", disableEvent, true),
          addGlobalEventListener("mouseover", disableEvent, true),
          addGlobalEventListener("mouseout", disableEvent, true),
          addGlobalEventListener("mouseleave", disableEvent, true)
        );
      }, [domReady, mounted, mayDisablePointerEvents, disablePointerEventsProp]);
      (0, import_react29.useEffect)(() => {
        if (!domReady) return;
        if (open) return;
        store == null ? void 0 : store.setAutoFocusOnShow(false);
      }, [store, domReady, open]);
      const openRef = useLiveRef(open);
      (0, import_react29.useEffect)(() => {
        if (!domReady) return;
        return () => {
          if (!openRef.current) {
            store == null ? void 0 : store.setAutoFocusOnShow(false);
          }
        };
      }, [store, domReady]);
      const registerOnParent = (0, import_react29.useContext)(NestedHovercardContext);
      useSafeLayoutEffect(() => {
        if (modal) return;
        if (!portal) return;
        if (!mounted) return;
        if (!domReady) return;
        const element = ref.current;
        if (!element) return;
        return registerOnParent == null ? void 0 : registerOnParent(element);
      }, [modal, portal, mounted, domReady]);
      const registerNestedHovercard = (0, import_react29.useCallback)(
        (element) => {
          setNestedHovercards((prevElements) => [...prevElements, element]);
          const parentUnregister = registerOnParent == null ? void 0 : registerOnParent(element);
          return () => {
            setNestedHovercards(
              (prevElements) => prevElements.filter((item2) => item2 !== element)
            );
            parentUnregister == null ? void 0 : parentUnregister();
          };
        },
        [registerOnParent]
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(HovercardScopedContextProvider, { value: store, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(NestedHovercardContext.Provider, { value: registerNestedHovercard, children: element }) }),
        [store, registerNestedHovercard]
      );
      props = {
        ...props,
        ref: useMergeRefs(ref, props.ref)
      };
      props = useAutoFocusOnHide({ store, ...props });
      const autoFocusOnShow = store.useState(
        (state) => modal || state.autoFocusOnShow
      );
      props = usePopover({
        store,
        modal,
        portal,
        autoFocusOnShow,
        ...props,
        portalRef,
        hideOnEscape(event) {
          if (isFalsyBooleanCallback(hideOnEscape, event)) return false;
          requestAnimationFrame(() => {
            requestAnimationFrame(() => {
              store == null ? void 0 : store.hide();
            });
          });
          return true;
        }
      });
      return props;
    }
  );
  var Hovercard = createDialogComponent(
    forwardRef2(function Hovercard2(props) {
      const htmlProps = useHovercard(props);
      return createElement(TagName21, htmlProps);
    }),
    useHovercardProviderContext
  );

  // node_modules/@ariakit/react-core/esm/tooltip/tooltip.js
  var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
  var TagName22 = "div";
  var useTooltip = createHook(
    function useTooltip2({
      store,
      portal = true,
      gutter = 8,
      preserveTabOrder = false,
      hideOnHoverOutside = true,
      hideOnInteractOutside = true,
      ...props
    }) {
      const context = useTooltipProviderContext();
      store = store || context;
      invariant(
        store,
        "Tooltip must receive a `store` prop or be wrapped in a TooltipProvider component."
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TooltipScopedContextProvider, { value: store, children: element }),
        [store]
      );
      const role = store.useState(
        (state) => state.type === "description" ? "tooltip" : "none"
      );
      props = { role, ...props };
      props = useHovercard({
        ...props,
        store,
        portal,
        gutter,
        preserveTabOrder,
        hideOnHoverOutside(event) {
          if (isFalsyBooleanCallback(hideOnHoverOutside, event)) return false;
          const anchorElement = store == null ? void 0 : store.getState().anchorElement;
          if (!anchorElement) return true;
          if ("focusVisible" in anchorElement.dataset) return false;
          return true;
        },
        hideOnInteractOutside: (event) => {
          if (isFalsyBooleanCallback(hideOnInteractOutside, event)) return false;
          const anchorElement = store == null ? void 0 : store.getState().anchorElement;
          if (!anchorElement) return true;
          if (contains(anchorElement, event.target)) return false;
          return true;
        }
      });
      return props;
    }
  );
  var Tooltip = createDialogComponent(
    forwardRef2(function Tooltip2(props) {
      const htmlProps = useTooltip(props);
      return createElement(TagName22, htmlProps);
    }),
    useTooltipProviderContext
  );

  // node_modules/@ariakit/react-core/esm/__chunks/2XVFVSLB.js
  var import_react30 = __toESM(require_react(), 1);
  var TagName23 = "a";
  var useHovercardAnchor = createHook(
    function useHovercardAnchor2({ store, showOnHover = true, ...props }) {
      const context = useHovercardProviderContext();
      store = store || context;
      invariant(
        store,
        "HovercardAnchor must receive a `store` prop or be wrapped in a HovercardProvider component."
      );
      const disabled = disabledFromProps(props);
      const showTimeoutRef = (0, import_react30.useRef)(0);
      (0, import_react30.useEffect)(() => () => window.clearTimeout(showTimeoutRef.current), []);
      (0, import_react30.useEffect)(() => {
        const onMouseLeave = (event) => {
          if (!store) return;
          const { anchorElement } = store.getState();
          if (!anchorElement) return;
          if (event.target !== anchorElement) return;
          window.clearTimeout(showTimeoutRef.current);
          showTimeoutRef.current = 0;
        };
        return addGlobalEventListener("mouseleave", onMouseLeave, true);
      }, [store]);
      const onMouseMoveProp = props.onMouseMove;
      const showOnHoverProp = useBooleanEvent(showOnHover);
      const isMouseMoving = useIsMouseMoving();
      const onMouseMove = useEvent((event) => {
        onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);
        if (disabled) return;
        if (!store) return;
        if (event.defaultPrevented) return;
        if (showTimeoutRef.current) return;
        if (!isMouseMoving()) return;
        if (!showOnHoverProp(event)) return;
        const element = event.currentTarget;
        store.setAnchorElement(element);
        store.setDisclosureElement(element);
        const { showTimeout, timeout } = store.getState();
        const showHovercard = () => {
          showTimeoutRef.current = 0;
          if (!isMouseMoving()) return;
          store == null ? void 0 : store.setAnchorElement(element);
          store == null ? void 0 : store.show();
          queueMicrotask(() => {
            store == null ? void 0 : store.setDisclosureElement(element);
          });
        };
        const timeoutMs = showTimeout != null ? showTimeout : timeout;
        if (timeoutMs === 0) {
          showHovercard();
        } else {
          showTimeoutRef.current = window.setTimeout(showHovercard, timeoutMs);
        }
      });
      const onClickProp = props.onClick;
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (!store) return;
        window.clearTimeout(showTimeoutRef.current);
        showTimeoutRef.current = 0;
      });
      const ref = (0, import_react30.useCallback)(
        (element) => {
          if (!store) return;
          const { anchorElement } = store.getState();
          if (anchorElement == null ? void 0 : anchorElement.isConnected) return;
          store.setAnchorElement(element);
        },
        [store]
      );
      props = {
        ...props,
        ref: useMergeRefs(ref, props.ref),
        onMouseMove,
        onClick
      };
      props = useFocusable(props);
      return props;
    }
  );
  var HovercardAnchor = forwardRef2(function HovercardAnchor2(props) {
    const htmlProps = useHovercardAnchor(props);
    return createElement(TagName23, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/tooltip/tooltip-anchor.js
  var import_react31 = __toESM(require_react(), 1);
  var TagName24 = "div";
  var globalStore = createStore({
    activeStore: null
  });
  function createRemoveStoreCallback(store) {
    return () => {
      const { activeStore } = globalStore.getState();
      if (activeStore !== store) return;
      globalStore.setState("activeStore", null);
    };
  }
  var useTooltipAnchor = createHook(
    function useTooltipAnchor2({ store, showOnHover = true, ...props }) {
      const context = useTooltipProviderContext();
      store = store || context;
      invariant(
        store,
        "TooltipAnchor must receive a `store` prop or be wrapped in a TooltipProvider component."
      );
      const canShowOnHoverRef = (0, import_react31.useRef)(false);
      (0, import_react31.useEffect)(() => {
        return sync(store, ["mounted"], (state) => {
          if (state.mounted) return;
          canShowOnHoverRef.current = false;
        });
      }, [store]);
      (0, import_react31.useEffect)(() => {
        if (!store) return;
        return chain(
          // Immediately remove the current store from the global store when
          // the component unmounts. This is useful, for example, to avoid
          // showing tooltips immediately on serial tests.
          createRemoveStoreCallback(store),
          sync(store, ["mounted", "skipTimeout"], (state) => {
            if (!store) return;
            if (state.mounted) {
              const { activeStore } = globalStore.getState();
              if (activeStore !== store) {
                activeStore == null ? void 0 : activeStore.hide();
              }
              return globalStore.setState("activeStore", store);
            }
            const id3 = setTimeout(
              createRemoveStoreCallback(store),
              state.skipTimeout
            );
            return () => clearTimeout(id3);
          })
        );
      }, [store]);
      const onMouseEnterProp = props.onMouseEnter;
      const onMouseEnter = useEvent((event) => {
        onMouseEnterProp == null ? void 0 : onMouseEnterProp(event);
        canShowOnHoverRef.current = true;
      });
      const onFocusVisibleProp = props.onFocusVisible;
      const onFocusVisible = useEvent((event) => {
        onFocusVisibleProp == null ? void 0 : onFocusVisibleProp(event);
        if (event.defaultPrevented) return;
        store == null ? void 0 : store.setAnchorElement(event.currentTarget);
        store == null ? void 0 : store.show();
      });
      const onBlurProp = props.onBlur;
      const onBlur = useEvent((event) => {
        onBlurProp == null ? void 0 : onBlurProp(event);
        if (event.defaultPrevented) return;
        const { activeStore } = globalStore.getState();
        canShowOnHoverRef.current = false;
        if (activeStore === store) {
          globalStore.setState("activeStore", null);
        }
      });
      const type = store.useState("type");
      const contentId = store.useState((state) => {
        var _a;
        return (_a = state.contentElement) == null ? void 0 : _a.id;
      });
      props = {
        "aria-labelledby": type === "label" ? contentId : void 0,
        ...props,
        onMouseEnter,
        onFocusVisible,
        onBlur
      };
      props = useHovercardAnchor({
        store,
        showOnHover(event) {
          if (!canShowOnHoverRef.current) return false;
          if (isFalsyBooleanCallback(showOnHover, event)) return false;
          const { activeStore } = globalStore.getState();
          if (!activeStore) return true;
          store == null ? void 0 : store.show();
          return false;
        },
        ...props
      });
      return props;
    }
  );
  var TooltipAnchor = forwardRef2(function TooltipAnchor2(props) {
    const htmlProps = useTooltipAnchor(props);
    return createElement(TagName24, htmlProps);
  });

  // node_modules/@ariakit/core/esm/__chunks/BFGNM53A.js
  function createPopoverStore({
    popover: otherPopover,
    ...props
  } = {}) {
    const store = mergeStore(
      props.store,
      omit2(otherPopover, [
        "arrowElement",
        "anchorElement",
        "contentElement",
        "popoverElement",
        "disclosureElement"
      ])
    );
    throwOnConflictingProps(props, store);
    const syncState = store == null ? void 0 : store.getState();
    const dialog = createDialogStore({ ...props, store });
    const placement = defaultValue(
      props.placement,
      syncState == null ? void 0 : syncState.placement,
      "bottom"
    );
    const initialState = {
      ...dialog.getState(),
      placement,
      currentPlacement: placement,
      anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),
      popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),
      arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),
      rendered: /* @__PURE__ */ Symbol("rendered")
    };
    const popover = createStore(initialState, dialog, store);
    return {
      ...dialog,
      ...popover,
      setAnchorElement: (element) => popover.setState("anchorElement", element),
      setPopoverElement: (element) => popover.setState("popoverElement", element),
      setArrowElement: (element) => popover.setState("arrowElement", element),
      render: () => popover.setState("rendered", /* @__PURE__ */ Symbol("rendered"))
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/B6FLPFJM.js
  function usePopoverStoreProps(store, update, props) {
    useUpdateEffect(update, [props.popover]);
    useStoreProps(store, props, "placement");
    return useDialogStoreProps(store, update, props);
  }

  // node_modules/@ariakit/core/esm/__chunks/TIQDSBWP.js
  function createHovercardStore(props = {}) {
    var _a;
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    const popover = createPopoverStore({
      ...props,
      placement: defaultValue(
        props.placement,
        syncState == null ? void 0 : syncState.placement,
        "bottom"
      )
    });
    const timeout = defaultValue(props.timeout, syncState == null ? void 0 : syncState.timeout, 500);
    const initialState = {
      ...popover.getState(),
      timeout,
      showTimeout: defaultValue(props.showTimeout, syncState == null ? void 0 : syncState.showTimeout),
      hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout),
      autoFocusOnShow: defaultValue(syncState == null ? void 0 : syncState.autoFocusOnShow, false)
    };
    const hovercard = createStore(initialState, popover, props.store);
    return {
      ...popover,
      ...hovercard,
      setAutoFocusOnShow: (value) => hovercard.setState("autoFocusOnShow", value)
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/ECBEZ4YM.js
  function useHovercardStoreProps(store, update, props) {
    useStoreProps(store, props, "timeout");
    useStoreProps(store, props, "showTimeout");
    useStoreProps(store, props, "hideTimeout");
    return usePopoverStoreProps(store, update, props);
  }

  // node_modules/@ariakit/core/esm/tooltip/tooltip-store.js
  function createTooltipStore(props = {}) {
    var _a;
    if (true) {
      if (props.type === "label") {
        console.warn(
          "The `type` option on the tooltip store is deprecated.",
          "Render a visually hidden label or use the `aria-label` or `aria-labelledby` attributes on the anchor element instead.",
          "See https://ariakit.org/components/tooltip#tooltip-anchors-must-have-accessible-names"
        );
      }
    }
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    const hovercard = createHovercardStore({
      ...props,
      placement: defaultValue(
        props.placement,
        syncState == null ? void 0 : syncState.placement,
        "top"
      ),
      hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout, 0)
    });
    const initialState = {
      ...hovercard.getState(),
      type: defaultValue(props.type, syncState == null ? void 0 : syncState.type, "description"),
      skipTimeout: defaultValue(props.skipTimeout, syncState == null ? void 0 : syncState.skipTimeout, 300)
    };
    const tooltip = createStore(initialState, hovercard, props.store);
    return {
      ...hovercard,
      ...tooltip
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/FFWYDZCP.js
  function useTooltipStoreProps(store, update, props) {
    useStoreProps(store, props, "type");
    useStoreProps(store, props, "skipTimeout");
    return useHovercardStoreProps(store, update, props);
  }
  function useTooltipStore(props = {}) {
    const [store, update] = useStore(createTooltipStore, props);
    return useTooltipStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/2DUOQURA.js
  var import_react32 = __toESM(require_react(), 1);
  var menubar = createStoreContext(
    [CompositeContextProvider],
    [CompositeScopedContextProvider]
  );
  var useMenubarContext = menubar.useContext;
  var useMenubarScopedContext = menubar.useScopedContext;
  var useMenubarProviderContext = menubar.useProviderContext;
  var MenubarContextProvider = menubar.ContextProvider;
  var MenubarScopedContextProvider = menubar.ScopedContextProvider;
  var MenuItemCheckedContext = (0, import_react32.createContext)(
    void 0
  );

  // node_modules/@ariakit/react-core/esm/__chunks/4POTBZ2J.js
  var TagName25 = "div";
  var usePopoverAnchor = createHook(
    function usePopoverAnchor2({ store, ...props }) {
      const context = usePopoverProviderContext();
      store = store || context;
      props = {
        ...props,
        ref: useMergeRefs(store == null ? void 0 : store.setAnchorElement, props.ref)
      };
      return props;
    }
  );
  var PopoverAnchor = forwardRef2(function PopoverAnchor2(props) {
    const htmlProps = usePopoverAnchor(props);
    return createElement(TagName25, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/HMKTUWOU.js
  var import_react33 = __toESM(require_react(), 1);
  var TagName26 = "button";
  var useButton = createHook(
    function useButton2(props) {
      const ref = (0, import_react33.useRef)(null);
      const tagName = useTagName(ref, TagName26);
      const [isNativeButton, setIsNativeButton] = (0, import_react33.useState)(
        () => !!tagName && isButton({ tagName, type: props.type })
      );
      (0, import_react33.useEffect)(() => {
        if (!ref.current) return;
        setIsNativeButton(isButton(ref.current));
      }, []);
      props = {
        role: !isNativeButton && tagName !== "a" ? "button" : void 0,
        ...props,
        ref: useMergeRefs(ref, props.ref)
      };
      props = useCommand(props);
      return props;
    }
  );
  var Button = forwardRef2(function Button2(props) {
    const htmlProps = useButton(props);
    return createElement(TagName26, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/NDVACHQI.js
  var import_react34 = __toESM(require_react(), 1);
  var TagName27 = "button";
  var symbol2 = /* @__PURE__ */ Symbol("disclosure");
  var useDisclosure = createHook(
    function useDisclosure2({ store, toggleOnClick = true, ...props }) {
      const context = useDisclosureProviderContext();
      store = store || context;
      invariant(
        store,
        "Disclosure must receive a `store` prop or be wrapped in a DisclosureProvider component."
      );
      const ref = (0, import_react34.useRef)(null);
      const [expanded, setExpanded] = (0, import_react34.useState)(false);
      const disclosureElement = store.useState("disclosureElement");
      const open = store.useState("open");
      (0, import_react34.useEffect)(() => {
        let isCurrentDisclosure = disclosureElement === ref.current;
        if (!(disclosureElement == null ? void 0 : disclosureElement.isConnected)) {
          store == null ? void 0 : store.setDisclosureElement(ref.current);
          isCurrentDisclosure = true;
        }
        setExpanded(open && isCurrentDisclosure);
      }, [disclosureElement, store, open]);
      const onClickProp = props.onClick;
      const toggleOnClickProp = useBooleanEvent(toggleOnClick);
      const [isDuplicate, metadataProps] = useMetadataProps(props, symbol2, true);
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (event.defaultPrevented) return;
        if (isDuplicate) return;
        if (!toggleOnClickProp(event)) return;
        store == null ? void 0 : store.setDisclosureElement(event.currentTarget);
        store == null ? void 0 : store.toggle();
      });
      const contentElement = store.useState("contentElement");
      props = {
        "aria-expanded": expanded,
        "aria-controls": contentElement == null ? void 0 : contentElement.id,
        ...metadataProps,
        ...props,
        ref: useMergeRefs(ref, props.ref),
        onClick
      };
      props = useButton(props);
      return props;
    }
  );
  var Disclosure = forwardRef2(function Disclosure2(props) {
    const htmlProps = useDisclosure(props);
    return createElement(TagName27, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/APVORPDK.js
  var TagName28 = "button";
  var useDialogDisclosure = createHook(
    function useDialogDisclosure2({ store, ...props }) {
      const context = useDialogProviderContext();
      store = store || context;
      invariant(
        store,
        "DialogDisclosure must receive a `store` prop or be wrapped in a DialogProvider component."
      );
      const contentElement = store.useState("contentElement");
      props = {
        "aria-haspopup": getPopupRole(contentElement, "dialog"),
        ...props
      };
      props = useDisclosure({ store, ...props });
      return props;
    }
  );
  var DialogDisclosure = forwardRef2(function DialogDisclosure2(props) {
    const htmlProps = useDialogDisclosure(props);
    return createElement(TagName28, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/RFRKSHIZ.js
  var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
  var TagName29 = "button";
  var usePopoverDisclosure = createHook(function usePopoverDisclosure2({ store, ...props }) {
    const context = usePopoverProviderContext();
    store = store || context;
    invariant(
      store,
      "PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component."
    );
    const onClickProp = props.onClick;
    const onClick = useEvent((event) => {
      store == null ? void 0 : store.setAnchorElement(event.currentTarget);
      onClickProp == null ? void 0 : onClickProp(event);
    });
    props = useWrapElement(
      props,
      (element) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PopoverScopedContextProvider, { value: store, children: element }),
      [store]
    );
    props = {
      ...props,
      onClick
    };
    props = usePopoverAnchor({ store, ...props });
    props = useDialogDisclosure({ store, ...props });
    return props;
  });
  var PopoverDisclosure = forwardRef2(function PopoverDisclosure2(props) {
    const htmlProps = usePopoverDisclosure(props);
    return createElement(TagName29, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/37HM5VRA.js
  var import_react35 = __toESM(require_react(), 1);
  var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
  var TagName30 = "span";
  var pointsMap = {
    top: "4,10 8,6 12,10",
    right: "6,4 10,8 6,12",
    bottom: "4,6 8,10 12,6",
    left: "10,4 6,8 10,12"
  };
  var usePopoverDisclosureArrow = createHook(function usePopoverDisclosureArrow2({ store, placement, ...props }) {
    const context = usePopoverContext();
    store = store || context;
    invariant(
      store,
      "PopoverDisclosureArrow must be wrapped in a PopoverDisclosure component."
    );
    const position2 = store.useState((state) => placement || state.placement);
    const dir = position2.split("-")[0];
    const points = pointsMap[dir];
    const children = (0, import_react35.useMemo)(
      () => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
        "svg",
        {
          display: "block",
          fill: "none",
          stroke: "currentColor",
          strokeLinecap: "round",
          strokeLinejoin: "round",
          strokeWidth: 1.5,
          viewBox: "0 0 16 16",
          height: "1em",
          width: "1em",
          children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("polyline", { points })
        }
      ),
      [points]
    );
    props = {
      children,
      "aria-hidden": true,
      ...props,
      style: {
        width: "1em",
        height: "1em",
        pointerEvents: "none",
        ...props.style
      }
    };
    return removeUndefinedValues(props);
  });
  var PopoverDisclosureArrow = forwardRef2(
    function PopoverDisclosureArrow2(props) {
      const htmlProps = usePopoverDisclosureArrow(props);
      return createElement(TagName30, htmlProps);
    }
  );

  // node_modules/@ariakit/react-core/esm/__chunks/QOZ6WMRY.js
  var ctx12 = createStoreContext(
    [CompositeContextProvider],
    [CompositeScopedContextProvider]
  );
  var useRadioContext = ctx12.useContext;
  var useRadioScopedContext = ctx12.useScopedContext;
  var useRadioProviderContext = ctx12.useProviderContext;
  var RadioContextProvider = ctx12.ContextProvider;
  var RadioScopedContextProvider = ctx12.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/5TKKKQCL.js
  var import_react36 = __toESM(require_react(), 1);
  var TagName31 = "input";
  function getIsChecked(value, storeValue) {
    if (storeValue === void 0) return;
    if (value != null && storeValue != null) {
      return storeValue === value;
    }
    return !!storeValue;
  }
  function isNativeRadio(tagName, type) {
    return tagName === "input" && (!type || type === "radio");
  }
  var useRadio = createHook(function useRadio2({
    store,
    name,
    value,
    checked,
    ...props
  }) {
    const context = useRadioContext();
    store = store || context;
    const id3 = useId(props.id);
    const ref = (0, import_react36.useRef)(null);
    const isChecked = useStoreState(
      store,
      (state) => checked != null ? checked : getIsChecked(value, state == null ? void 0 : state.value)
    );
    (0, import_react36.useEffect)(() => {
      if (!id3) return;
      if (!isChecked) return;
      const isActiveItem = (store == null ? void 0 : store.getState().activeId) === id3;
      if (isActiveItem) return;
      store == null ? void 0 : store.setActiveId(id3);
    }, [store, isChecked, id3]);
    const onChangeProp = props.onChange;
    const tagName = useTagName(ref, TagName31);
    const nativeRadio = isNativeRadio(tagName, props.type);
    const disabled = disabledFromProps(props);
    const [propertyUpdated, schedulePropertyUpdate] = useForceUpdate();
    (0, import_react36.useEffect)(() => {
      const element = ref.current;
      if (!element) return;
      if (nativeRadio) return;
      if (isChecked !== void 0) {
        element.checked = isChecked;
      }
      if (name !== void 0) {
        element.name = name;
      }
      if (value !== void 0) {
        element.value = `${value}`;
      }
    }, [propertyUpdated, nativeRadio, isChecked, name, value]);
    const onChange = useEvent((event) => {
      if (disabled) {
        event.preventDefault();
        event.stopPropagation();
        return;
      }
      if ((store == null ? void 0 : store.getState().value) === value) return;
      if (!nativeRadio) {
        event.currentTarget.checked = true;
        schedulePropertyUpdate();
      }
      onChangeProp == null ? void 0 : onChangeProp(event);
      if (event.defaultPrevented) return;
      store == null ? void 0 : store.setValue(value);
    });
    const onClickProp = props.onClick;
    const onClick = useEvent((event) => {
      onClickProp == null ? void 0 : onClickProp(event);
      if (event.defaultPrevented) return;
      if (nativeRadio) return;
      onChange(event);
    });
    const onFocusProp = props.onFocus;
    const onFocus = useEvent((event) => {
      onFocusProp == null ? void 0 : onFocusProp(event);
      if (event.defaultPrevented) return;
      if (!nativeRadio) return;
      if (!store) return;
      const { moves, activeId } = store.getState();
      if (!moves) return;
      if (id3 && activeId !== id3) return;
      onChange(event);
    });
    props = {
      id: id3,
      role: !nativeRadio ? "radio" : void 0,
      type: nativeRadio ? "radio" : void 0,
      "aria-checked": isChecked,
      ...props,
      ref: useMergeRefs(ref, props.ref),
      onChange,
      onClick,
      onFocus
    };
    props = useCompositeItem({
      store,
      clickOnEnter: !nativeRadio,
      ...props
    });
    return removeUndefinedValues({
      name: nativeRadio ? name : void 0,
      value: nativeRadio ? value : void 0,
      checked: isChecked,
      ...props
    });
  });
  var Radio = memo2(
    forwardRef2(function Radio2(props) {
      const htmlProps = useRadio(props);
      return createElement(TagName31, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/radio/radio-group.js
  var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
  var TagName32 = "div";
  var useRadioGroup = createHook(
    function useRadioGroup2({ store, ...props }) {
      const context = useRadioProviderContext();
      store = store || context;
      invariant(
        store,
        "RadioGroup must receive a `store` prop or be wrapped in a RadioProvider component."
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(RadioScopedContextProvider, { value: store, children: element }),
        [store]
      );
      props = {
        role: "radiogroup",
        ...props
      };
      props = useComposite({ store, ...props });
      return props;
    }
  );
  var RadioGroup = forwardRef2(function RadioGroup2(props) {
    const htmlProps = useRadioGroup(props);
    return createElement(TagName32, htmlProps);
  });

  // node_modules/@ariakit/core/esm/radio/radio-store.js
  function createRadioStore({
    ...props
  } = {}) {
    var _a;
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    const composite = createCompositeStore({
      ...props,
      focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true)
    });
    const initialState = {
      ...composite.getState(),
      value: defaultValue(
        props.value,
        syncState == null ? void 0 : syncState.value,
        props.defaultValue,
        null
      )
    };
    const radio = createStore(initialState, composite, props.store);
    return {
      ...composite,
      ...radio,
      setValue: (value) => radio.setState("value", value)
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/EBNR6XRJ.js
  function useRadioStoreProps(store, update, props) {
    store = useCompositeStoreProps(store, update, props);
    useStoreProps(store, props, "value", "setValue");
    return store;
  }
  function useRadioStore(props = {}) {
    const [store, update] = useStore(createRadioStore, props);
    return useRadioStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/N5BMKDVD.js
  var TagName33 = "span";
  var useSelectArrow = createHook(
    function useSelectArrow2({ store, ...props }) {
      const context = useSelectContext();
      store = store || context;
      props = usePopoverDisclosureArrow({ store, ...props });
      return props;
    }
  );
  var SelectArrow = forwardRef2(function SelectArrow2(props) {
    const htmlProps = useSelectArrow(props);
    return createElement(TagName33, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/FORDJ4GP.js
  var import_react37 = __toESM(require_react(), 1);
  var TagName34 = "div";
  var chars = "";
  function clearChars() {
    chars = "";
  }
  function isValidTypeaheadEvent(event) {
    const target = event.target;
    if (target && isTextField(target)) return false;
    if (event.key === " " && chars.length) return true;
    return event.key.length === 1 && !event.ctrlKey && !event.altKey && !event.metaKey && /^[\p{Letter}\p{Number}]$/u.test(event.key);
  }
  function isSelfTargetOrItem(event, items) {
    if (isSelfTarget(event)) return true;
    const target = event.target;
    if (!target) return false;
    const isItem2 = items.some((item2) => item2.element === target);
    return isItem2;
  }
  function getEnabledItems2(items) {
    return items.filter((item2) => !item2.disabled);
  }
  function itemTextStartsWith(item2, text) {
    var _a;
    const itemText = ((_a = item2.element) == null ? void 0 : _a.textContent) || item2.children || // The composite item object itself doesn't include a value property, but
    // other components like Select do. Since CompositeTypeahead is a generic
    // component that can be used with those as well, we also consider the value
    // property as a fallback for the typeahead text content.
    "value" in item2 && item2.value;
    if (!itemText) return false;
    return normalizeString(itemText).trim().toLowerCase().startsWith(text.toLowerCase());
  }
  function getSameInitialItems(items, char2, activeId) {
    if (!activeId) return items;
    const activeItem = items.find((item2) => item2.id === activeId);
    if (!activeItem) return items;
    if (!itemTextStartsWith(activeItem, char2)) return items;
    if (chars !== char2 && itemTextStartsWith(activeItem, chars)) return items;
    chars = char2;
    return flipItems(
      items.filter((item2) => itemTextStartsWith(item2, chars)),
      activeId
    ).filter((item2) => item2.id !== activeId);
  }
  var useCompositeTypeahead = createHook(function useCompositeTypeahead2({ store, typeahead = true, ...props }) {
    const context = useCompositeContext();
    store = store || context;
    invariant(
      store,
      "CompositeTypeahead must be a Composite component"
    );
    const onKeyDownCaptureProp = props.onKeyDownCapture;
    const cleanupTimeoutRef = (0, import_react37.useRef)(0);
    const onKeyDownCapture = useEvent((event) => {
      onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);
      if (event.defaultPrevented) return;
      if (!typeahead) return;
      if (!store) return;
      if (!isValidTypeaheadEvent(event)) {
        return clearChars();
      }
      const { renderedItems, items, activeId, id: id3 } = store.getState();
      let enabledItems = getEnabledItems2(
        items.length > renderedItems.length ? items : renderedItems
      );
      const document2 = getDocument(event.currentTarget);
      const selector2 = `[data-offscreen-id="${id3}"]`;
      const offscreenItems = document2.querySelectorAll(selector2);
      for (const element of offscreenItems) {
        const disabled = element.ariaDisabled === "true" || "disabled" in element && !!element.disabled;
        enabledItems.push({ id: element.id, element, disabled });
      }
      if (offscreenItems.length) {
        enabledItems = sortBasedOnDOMPosition(enabledItems, (i3) => i3.element);
      }
      if (!isSelfTargetOrItem(event, enabledItems)) return clearChars();
      event.preventDefault();
      window.clearTimeout(cleanupTimeoutRef.current);
      cleanupTimeoutRef.current = window.setTimeout(() => {
        chars = "";
      }, 500);
      const char2 = event.key.toLowerCase();
      chars += char2;
      enabledItems = getSameInitialItems(enabledItems, char2, activeId);
      const item2 = enabledItems.find((item22) => itemTextStartsWith(item22, chars));
      if (item2) {
        store.move(item2.id);
      } else {
        clearChars();
      }
    });
    props = {
      ...props,
      onKeyDownCapture
    };
    return removeUndefinedValues(props);
  });
  var CompositeTypeahead = forwardRef2(function CompositeTypeahead2(props) {
    const htmlProps = useCompositeTypeahead(props);
    return createElement(TagName34, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/select/select.js
  var import_react38 = __toESM(require_react(), 1);
  var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
  var TagName35 = "button";
  function getSelectedValues(select) {
    return Array.from(select.selectedOptions).map((option) => option.value);
  }
  function nextWithValue(store, next2) {
    return () => {
      const nextId = next2();
      if (!nextId) return;
      let i3 = 0;
      let nextItem = store.item(nextId);
      const firstItem = nextItem;
      while (nextItem && nextItem.value == null) {
        const nextId2 = next2(++i3);
        if (!nextId2) return;
        nextItem = store.item(nextId2);
        if (nextItem === firstItem) break;
      }
      return nextItem == null ? void 0 : nextItem.id;
    };
  }
  var useSelect = createHook(function useSelect2({
    store,
    name,
    form,
    required,
    showOnKeyDown = true,
    moveOnKeyDown = true,
    toggleOnPress = true,
    toggleOnClick = toggleOnPress,
    ...props
  }) {
    const context = useSelectProviderContext();
    store = store || context;
    invariant(
      store,
      "Select must receive a `store` prop or be wrapped in a SelectProvider component."
    );
    const onKeyDownProp = props.onKeyDown;
    const showOnKeyDownProp = useBooleanEvent(showOnKeyDown);
    const moveOnKeyDownProp = useBooleanEvent(moveOnKeyDown);
    const placement = store.useState("placement");
    const dir = placement.split("-")[0];
    const value = store.useState("value");
    const multiSelectable = Array.isArray(value);
    const onKeyDown = useEvent((event) => {
      var _a;
      onKeyDownProp == null ? void 0 : onKeyDownProp(event);
      if (event.defaultPrevented) return;
      if (!store) return;
      const { orientation, items: items2, activeId } = store.getState();
      const isVertical = orientation !== "horizontal";
      const isHorizontal = orientation !== "vertical";
      const isGrid2 = !!((_a = items2.find((item2) => !item2.disabled && item2.value != null)) == null ? void 0 : _a.rowId);
      const moveKeyMap = {
        ArrowUp: (isGrid2 || isVertical) && nextWithValue(store, store.up),
        ArrowRight: (isGrid2 || isHorizontal) && nextWithValue(store, store.next),
        ArrowDown: (isGrid2 || isVertical) && nextWithValue(store, store.down),
        ArrowLeft: (isGrid2 || isHorizontal) && nextWithValue(store, store.previous)
      };
      const getId = moveKeyMap[event.key];
      if (getId && moveOnKeyDownProp(event)) {
        event.preventDefault();
        store.move(getId());
      }
      const isTopOrBottom = dir === "top" || dir === "bottom";
      const isLeft = dir === "left";
      const isRight = dir === "right";
      const canShowKeyMap = {
        ArrowDown: isTopOrBottom,
        ArrowUp: isTopOrBottom,
        ArrowLeft: isLeft,
        ArrowRight: isRight
      };
      const canShow = canShowKeyMap[event.key];
      if (canShow && showOnKeyDownProp(event)) {
        event.preventDefault();
        store.move(activeId);
        queueBeforeEvent(event.currentTarget, "keyup", store.show);
      }
    });
    props = useWrapElement(
      props,
      (element) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectScopedContextProvider, { value: store, children: element }),
      [store]
    );
    const [autofill, setAutofill] = (0, import_react38.useState)(false);
    const nativeSelectChangedRef = (0, import_react38.useRef)(false);
    (0, import_react38.useEffect)(() => {
      const nativeSelectChanged = nativeSelectChangedRef.current;
      nativeSelectChangedRef.current = false;
      if (nativeSelectChanged) return;
      setAutofill(false);
    }, [value]);
    const labelId = store.useState((state) => {
      var _a;
      return (_a = state.labelElement) == null ? void 0 : _a.id;
    });
    const label = props["aria-label"];
    const labelledBy = props["aria-labelledby"] || labelId;
    const items = store.useState((state) => {
      if (!name) return;
      return state.items;
    });
    const values = (0, import_react38.useMemo)(() => {
      return [...new Set(items == null ? void 0 : items.map((i3) => i3.value).filter((v3) => v3 != null))];
    }, [items]);
    props = useWrapElement(
      props,
      (element) => {
        if (!name) return element;
        return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
          /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
            "select",
            {
              style: {
                border: 0,
                clip: "rect(0 0 0 0)",
                height: "1px",
                margin: "-1px",
                overflow: "hidden",
                padding: 0,
                position: "absolute",
                whiteSpace: "nowrap",
                width: "1px"
              },
              tabIndex: -1,
              "aria-hidden": true,
              "aria-label": label,
              "aria-labelledby": labelledBy,
              name,
              form,
              required,
              disabled: props.disabled,
              value,
              multiple: multiSelectable,
              onFocus: () => {
                var _a;
                return (_a = store == null ? void 0 : store.getState().selectElement) == null ? void 0 : _a.focus();
              },
              onChange: (event) => {
                nativeSelectChangedRef.current = true;
                setAutofill(true);
                store == null ? void 0 : store.setValue(
                  multiSelectable ? getSelectedValues(event.target) : event.target.value
                );
              },
              children: [
                toArray(value).map((value2) => {
                  if (value2 == null) return null;
                  if (values.includes(value2)) return null;
                  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: value2, children: value2 }, value2);
                }),
                values.map((value2) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("option", { value: value2, children: value2 }, value2))
              ]
            }
          ),
          element
        ] });
      },
      [
        store,
        label,
        labelledBy,
        name,
        form,
        required,
        value,
        multiSelectable,
        values,
        props.disabled
      ]
    );
    const children = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
      value,
      /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SelectArrow, {})
    ] });
    const contentElement = store.useState("contentElement");
    props = {
      role: "combobox",
      "aria-autocomplete": "none",
      "aria-labelledby": labelId,
      "aria-haspopup": getPopupRole(contentElement, "listbox"),
      "data-autofill": autofill || void 0,
      "data-name": name,
      children,
      ...props,
      ref: useMergeRefs(store.setSelectElement, props.ref),
      onKeyDown
    };
    props = usePopoverDisclosure({ store, toggleOnClick, ...props });
    props = useCompositeTypeahead({ store, ...props });
    return props;
  });
  var Select = forwardRef2(function Select2(props) {
    const htmlProps = useSelect(props);
    return createElement(TagName35, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/7HVFURXT.js
  var import_react39 = __toESM(require_react(), 1);
  var GroupLabelContext = (0, import_react39.createContext)(void 0);

  // node_modules/@ariakit/react-core/esm/__chunks/Y6I7WX7H.js
  var import_react40 = __toESM(require_react(), 1);
  var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
  var TagName36 = "div";
  var useGroup = createHook(
    function useGroup2(props) {
      const [labelId, setLabelId] = (0, import_react40.useState)();
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(GroupLabelContext.Provider, { value: setLabelId, children: element }),
        []
      );
      props = {
        role: "group",
        "aria-labelledby": labelId,
        ...props
      };
      return removeUndefinedValues(props);
    }
  );
  var Group = forwardRef2(function Group2(props) {
    const htmlProps = useGroup(props);
    return createElement(TagName36, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/XXOHUFXO.js
  var TagName37 = "div";
  var useCompositeGroup = createHook(
    function useCompositeGroup2({ store, ...props }) {
      props = useGroup(props);
      return props;
    }
  );
  var CompositeGroup = forwardRef2(function CompositeGroup2(props) {
    const htmlProps = useCompositeGroup(props);
    return createElement(TagName37, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/NH3GYEZ7.js
  var import_react41 = __toESM(require_react(), 1);
  var TagName38 = "div";
  var useGroupLabel = createHook(
    function useGroupLabel2(props) {
      const setLabelId = (0, import_react41.useContext)(GroupLabelContext);
      const id3 = useId(props.id);
      useSafeLayoutEffect(() => {
        setLabelId == null ? void 0 : setLabelId(id3);
        return () => setLabelId == null ? void 0 : setLabelId(void 0);
      }, [setLabelId, id3]);
      props = {
        id: id3,
        "aria-hidden": true,
        ...props
      };
      return removeUndefinedValues(props);
    }
  );
  var GroupLabel = forwardRef2(function GroupLabel2(props) {
    const htmlProps = useGroupLabel(props);
    return createElement(TagName38, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/JUZDESDO.js
  var TagName39 = "div";
  var useCompositeGroupLabel = createHook(function useCompositeGroupLabel2({ store, ...props }) {
    props = useGroupLabel(props);
    return props;
  });
  var CompositeGroupLabel = forwardRef2(function CompositeGroupLabel2(props) {
    const htmlProps = useCompositeGroupLabel(props);
    return createElement(TagName39, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/X6LNAU2F.js
  var import_react42 = __toESM(require_react(), 1);
  var TagName40 = "div";
  function getMouseDestination(event) {
    const relatedTarget = event.relatedTarget;
    if ((relatedTarget == null ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {
      return relatedTarget;
    }
    return null;
  }
  function hoveringInside(event) {
    const nextElement = getMouseDestination(event);
    if (!nextElement) return false;
    return contains(event.currentTarget, nextElement);
  }
  var symbol3 = /* @__PURE__ */ Symbol("composite-hover");
  function movingToAnotherItem(event) {
    let dest = getMouseDestination(event);
    if (!dest) return false;
    do {
      if (hasOwnProperty(dest, symbol3) && dest[symbol3]) return true;
      dest = dest.parentElement;
    } while (dest);
    return false;
  }
  var useCompositeHover = createHook(
    function useCompositeHover2({
      store,
      focusOnHover = true,
      blurOnHoverEnd = !!focusOnHover,
      ...props
    }) {
      const context = useCompositeContext();
      store = store || context;
      invariant(
        store,
        "CompositeHover must be wrapped in a Composite component."
      );
      const isMouseMoving = useIsMouseMoving();
      const onMouseMoveProp = props.onMouseMove;
      const focusOnHoverProp = useBooleanEvent(focusOnHover);
      const onMouseMove = useEvent((event) => {
        onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);
        if (event.defaultPrevented) return;
        if (!isMouseMoving()) return;
        if (!focusOnHoverProp(event)) return;
        if (!hasFocusWithin(event.currentTarget)) {
          const baseElement = store == null ? void 0 : store.getState().baseElement;
          if (baseElement && !hasFocus(baseElement)) {
            baseElement.focus();
          }
        }
        store == null ? void 0 : store.setActiveId(event.currentTarget.id);
      });
      const onMouseLeaveProp = props.onMouseLeave;
      const blurOnHoverEndProp = useBooleanEvent(blurOnHoverEnd);
      const onMouseLeave = useEvent((event) => {
        var _a;
        onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event);
        if (event.defaultPrevented) return;
        if (!isMouseMoving()) return;
        if (hoveringInside(event)) return;
        if (movingToAnotherItem(event)) return;
        if (!focusOnHoverProp(event)) return;
        if (!blurOnHoverEndProp(event)) return;
        store == null ? void 0 : store.setActiveId(null);
        (_a = store == null ? void 0 : store.getState().baseElement) == null ? void 0 : _a.focus();
      });
      const ref = (0, import_react42.useCallback)((element) => {
        if (!element) return;
        element[symbol3] = true;
      }, []);
      props = {
        ...props,
        ref: useMergeRefs(ref, props.ref),
        onMouseMove,
        onMouseLeave
      };
      return removeUndefinedValues(props);
    }
  );
  var CompositeHover = memo2(
    forwardRef2(function CompositeHover2(props) {
      const htmlProps = useCompositeHover(props);
      return createElement(TagName40, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/__chunks/4M2S6L5P.js
  var import_react43 = __toESM(require_react(), 1);
  var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
  var TagName41 = "div";
  function isSelected(storeValue, itemValue) {
    if (itemValue == null) return;
    if (storeValue == null) return false;
    if (Array.isArray(storeValue)) {
      return storeValue.includes(itemValue);
    }
    return storeValue === itemValue;
  }
  var useSelectItem = createHook(
    function useSelectItem2({
      store,
      value,
      getItem: getItemProp,
      hideOnClick,
      setValueOnClick = value != null,
      preventScrollOnKeyDown = true,
      focusOnHover = true,
      ...props
    }) {
      var _a;
      const context = useSelectScopedContext();
      store = store || context;
      invariant(
        store,
        "SelectItem must be wrapped in a SelectList or SelectPopover component."
      );
      const id3 = useId(props.id);
      const disabled = disabledFromProps(props);
      const { listElement, multiSelectable, selected, autoFocus } = useStoreStateObject(store, {
        listElement: "listElement",
        multiSelectable(state) {
          return Array.isArray(state.value);
        },
        selected(state) {
          return isSelected(state.value, value);
        },
        autoFocus(state) {
          if (value == null) return false;
          if (state.value == null) return false;
          if (state.activeId !== id3 && (store == null ? void 0 : store.item(state.activeId))) {
            return false;
          }
          if (Array.isArray(state.value)) {
            return state.value[state.value.length - 1] === value;
          }
          return state.value === value;
        }
      });
      const getItem = (0, import_react43.useCallback)(
        (item2) => {
          const nextItem = {
            ...item2,
            value: disabled ? void 0 : value,
            children: value
          };
          if (getItemProp) {
            return getItemProp(nextItem);
          }
          return nextItem;
        },
        [disabled, value, getItemProp]
      );
      hideOnClick = hideOnClick != null ? hideOnClick : value != null && !multiSelectable;
      const onClickProp = props.onClick;
      const setValueOnClickProp = useBooleanEvent(setValueOnClick);
      const hideOnClickProp = useBooleanEvent(hideOnClick);
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (event.defaultPrevented) return;
        if (isDownloading(event)) return;
        if (isOpeningInNewTab(event)) return;
        if (setValueOnClickProp(event) && value != null) {
          store == null ? void 0 : store.setValue((prevValue) => {
            if (!Array.isArray(prevValue)) return value;
            if (prevValue.includes(value)) {
              return prevValue.filter((v3) => v3 !== value);
            }
            return [...prevValue, value];
          });
        }
        if (hideOnClickProp(event)) {
          store == null ? void 0 : store.hide();
        }
      });
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectItemCheckedContext.Provider, { value: selected != null ? selected : false, children: element }),
        [selected]
      );
      props = {
        id: id3,
        role: getPopupItemRole(listElement),
        "aria-selected": selected,
        children: value,
        ...props,
        autoFocus: (_a = props.autoFocus) != null ? _a : autoFocus,
        onClick
      };
      props = useCompositeItem({
        store,
        getItem,
        preventScrollOnKeyDown,
        ...props
      });
      const focusOnHoverProp = useBooleanEvent(focusOnHover);
      props = useCompositeHover({
        store,
        ...props,
        // We have to disable focusOnHover when the popup is closed, otherwise
        // the active item will change to null (the container) when the popup is
        // closed by clicking on an item.
        focusOnHover(event) {
          if (!focusOnHoverProp(event)) return false;
          const state = store == null ? void 0 : store.getState();
          return !!(state == null ? void 0 : state.open);
        }
      });
      return props;
    }
  );
  var SelectItem = memo2(
    forwardRef2(function SelectItem2(props) {
      const htmlProps = useSelectItem(props);
      return createElement(TagName41, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/__chunks/EYKMH5G5.js
  var import_react44 = __toESM(require_react(), 1);
  var CheckboxCheckedContext = (0, import_react44.createContext)(false);

  // node_modules/@ariakit/react-core/esm/__chunks/HOITXJDS.js
  var import_react45 = __toESM(require_react(), 1);
  var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
  var TagName42 = "span";
  var checkmark = /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
    "svg",
    {
      display: "block",
      fill: "none",
      stroke: "currentColor",
      strokeLinecap: "round",
      strokeLinejoin: "round",
      strokeWidth: 1.5,
      viewBox: "0 0 16 16",
      height: "1em",
      width: "1em",
      children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("polyline", { points: "4,8 7,12 12,4" })
    }
  );
  function getChildren(props) {
    if (props.checked) {
      return props.children || checkmark;
    }
    if (typeof props.children === "function") {
      return props.children;
    }
    return null;
  }
  var useCheckboxCheck = createHook(
    function useCheckboxCheck2({ store, checked, ...props }) {
      const context = (0, import_react45.useContext)(CheckboxCheckedContext);
      checked = checked != null ? checked : context;
      const children = getChildren({ checked, children: props.children });
      props = {
        "aria-hidden": true,
        ...props,
        children,
        style: {
          width: "1em",
          height: "1em",
          pointerEvents: "none",
          ...props.style
        }
      };
      return removeUndefinedValues(props);
    }
  );
  var CheckboxCheck = forwardRef2(function CheckboxCheck2(props) {
    const htmlProps = useCheckboxCheck(props);
    return createElement(TagName42, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/select/select-item-check.js
  var import_react46 = __toESM(require_react(), 1);
  var TagName43 = "span";
  var useSelectItemCheck = createHook(
    function useSelectItemCheck2({ store, checked, ...props }) {
      const context = (0, import_react46.useContext)(SelectItemCheckedContext);
      checked = checked != null ? checked : context;
      props = useCheckboxCheck({ ...props, checked });
      return props;
    }
  );
  var SelectItemCheck = forwardRef2(function SelectItemCheck2(props) {
    const htmlProps = useSelectItemCheck(props);
    return createElement(TagName43, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/select/select-label.js
  var TagName44 = "div";
  var useSelectLabel = createHook(
    function useSelectLabel2({ store, ...props }) {
      const context = useSelectProviderContext();
      store = store || context;
      invariant(
        store,
        "SelectLabel must receive a `store` prop or be wrapped in a SelectProvider component."
      );
      const id3 = useId(props.id);
      const onClickProp = props.onClick;
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (event.defaultPrevented) return;
        queueMicrotask(() => {
          const select = store == null ? void 0 : store.getState().selectElement;
          select == null ? void 0 : select.focus();
        });
      });
      props = {
        id: id3,
        ...props,
        ref: useMergeRefs(store.setLabelElement, props.ref),
        onClick,
        style: {
          cursor: "default",
          ...props.style
        }
      };
      return removeUndefinedValues(props);
    }
  );
  var SelectLabel = memo2(
    forwardRef2(function SelectLabel2(props) {
      const htmlProps = useSelectLabel(props);
      return createElement(TagName44, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/__chunks/PFBP2CY4.js
  var import_react47 = __toESM(require_react(), 1);
  var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
  var TagName45 = "div";
  var SelectListContext = (0, import_react47.createContext)(null);
  var useSelectList = createHook(
    function useSelectList2({
      store,
      resetOnEscape = true,
      hideOnEnter = true,
      focusOnMove = true,
      composite,
      alwaysVisible,
      ...props
    }) {
      const context = useSelectContext();
      store = store || context;
      invariant(
        store,
        "SelectList must receive a `store` prop or be wrapped in a SelectProvider component."
      );
      const id3 = useId(props.id);
      const value = store.useState("value");
      const multiSelectable = Array.isArray(value);
      const [defaultValue2, setDefaultValue] = (0, import_react47.useState)(value);
      const mounted = store.useState("mounted");
      (0, import_react47.useEffect)(() => {
        if (mounted) return;
        setDefaultValue(value);
      }, [mounted, value]);
      resetOnEscape = resetOnEscape && !multiSelectable;
      const onKeyDownProp = props.onKeyDown;
      const resetOnEscapeProp = useBooleanEvent(resetOnEscape);
      const hideOnEnterProp = useBooleanEvent(hideOnEnter);
      const onKeyDown = useEvent((event) => {
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        if (event.defaultPrevented) return;
        if (event.key === "Escape" && resetOnEscapeProp(event)) {
          store == null ? void 0 : store.setValue(defaultValue2);
        }
        if (event.key === " " || event.key === "Enter") {
          if (isSelfTarget(event) && hideOnEnterProp(event)) {
            event.preventDefault();
            store == null ? void 0 : store.hide();
          }
        }
      });
      const headingContext = (0, import_react47.useContext)(SelectHeadingContext);
      const headingState = (0, import_react47.useState)();
      const [headingId, setHeadingId] = headingContext || headingState;
      const headingContextValue = (0, import_react47.useMemo)(
        () => [headingId, setHeadingId],
        [headingId]
      );
      const [childStore, setChildStore] = (0, import_react47.useState)(null);
      const setStore = (0, import_react47.useContext)(SelectListContext);
      (0, import_react47.useEffect)(() => {
        if (!setStore) return;
        setStore(store);
        return () => setStore(null);
      }, [setStore, store]);
      props = useWrapElement(
        props,
        (element2) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectScopedContextProvider, { value: store, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectListContext.Provider, { value: setChildStore, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectHeadingContext.Provider, { value: headingContextValue, children: element2 }) }) }),
        [store, headingContextValue]
      );
      const hasCombobox = !!store.combobox;
      composite = composite != null ? composite : !hasCombobox && childStore !== store;
      const [element, setElement] = useTransactionState(
        composite ? store.setListElement : null
      );
      const role = useAttribute(element, "role", props.role);
      const isCompositeRole = role === "listbox" || role === "menu" || role === "tree" || role === "grid";
      const ariaMultiSelectable = composite || isCompositeRole ? multiSelectable || void 0 : void 0;
      const hidden = isHidden(mounted, props.hidden, alwaysVisible);
      const style2 = hidden ? { ...props.style, display: "none" } : props.style;
      if (composite) {
        props = {
          role: "listbox",
          "aria-multiselectable": ariaMultiSelectable,
          ...props
        };
      }
      const labelId = store.useState(
        (state) => {
          var _a;
          return headingId || ((_a = state.labelElement) == null ? void 0 : _a.id);
        }
      );
      props = {
        id: id3,
        "aria-labelledby": labelId,
        hidden,
        ...props,
        ref: useMergeRefs(setElement, props.ref),
        style: style2,
        onKeyDown
      };
      props = useComposite({ store, ...props, composite });
      props = useCompositeTypeahead({ store, typeahead: !hasCombobox, ...props });
      return props;
    }
  );
  var SelectList = forwardRef2(function SelectList2(props) {
    const htmlProps = useSelectList(props);
    return createElement(TagName45, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/select/select-popover.js
  var TagName46 = "div";
  var useSelectPopover = createHook(
    function useSelectPopover2({ store, alwaysVisible, ...props }) {
      const context = useSelectProviderContext();
      store = store || context;
      props = useSelectList({ store, alwaysVisible, ...props });
      props = usePopover({ store, alwaysVisible, ...props });
      return props;
    }
  );
  var SelectPopover = createDialogComponent(
    forwardRef2(function SelectPopover2(props) {
      const htmlProps = useSelectPopover(props);
      return createElement(TagName46, htmlProps);
    }),
    useSelectProviderContext
  );

  // node_modules/@ariakit/core/esm/select/select-store.js
  function createSelectStore({
    combobox,
    ...props
  } = {}) {
    const store = mergeStore(
      props.store,
      omit2(combobox, [
        "value",
        "items",
        "renderedItems",
        "baseElement",
        "arrowElement",
        "anchorElement",
        "contentElement",
        "popoverElement",
        "disclosureElement"
      ])
    );
    throwOnConflictingProps(props, store);
    const syncState = store.getState();
    const composite = createCompositeStore({
      ...props,
      store,
      virtualFocus: defaultValue(
        props.virtualFocus,
        syncState.virtualFocus,
        true
      ),
      includesBaseElement: defaultValue(
        props.includesBaseElement,
        syncState.includesBaseElement,
        false
      ),
      activeId: defaultValue(
        props.activeId,
        syncState.activeId,
        props.defaultActiveId,
        null
      ),
      orientation: defaultValue(
        props.orientation,
        syncState.orientation,
        "vertical"
      )
    });
    const popover = createPopoverStore({
      ...props,
      store,
      placement: defaultValue(
        props.placement,
        syncState.placement,
        "bottom-start"
      )
    });
    const initialValue2 = new String("");
    const initialState = {
      ...composite.getState(),
      ...popover.getState(),
      value: defaultValue(
        props.value,
        syncState.value,
        props.defaultValue,
        initialValue2
      ),
      setValueOnMove: defaultValue(
        props.setValueOnMove,
        syncState.setValueOnMove,
        false
      ),
      labelElement: defaultValue(syncState.labelElement, null),
      selectElement: defaultValue(syncState.selectElement, null),
      listElement: defaultValue(syncState.listElement, null)
    };
    const select = createStore(initialState, composite, popover, store);
    setup(
      select,
      () => sync(select, ["value", "items"], (state) => {
        if (state.value !== initialValue2) return;
        if (!state.items.length) return;
        const item2 = state.items.find(
          (item22) => !item22.disabled && item22.value != null
        );
        if ((item2 == null ? void 0 : item2.value) == null) return;
        select.setState("value", item2.value);
      })
    );
    setup(
      select,
      () => sync(select, ["mounted"], (state) => {
        if (state.mounted) return;
        select.setState("activeId", initialState.activeId);
      })
    );
    setup(
      select,
      () => sync(select, ["mounted", "items", "value"], (state) => {
        if (combobox) return;
        if (state.mounted) return;
        const values = toArray(state.value);
        const lastValue = values[values.length - 1];
        if (lastValue == null) return;
        const item2 = state.items.find(
          (item22) => !item22.disabled && item22.value === lastValue
        );
        if (!item2) return;
        select.setState("activeId", item2.id);
      })
    );
    setup(
      select,
      () => batch(select, ["setValueOnMove", "moves"], (state) => {
        const { mounted, value, activeId } = select.getState();
        if (!state.setValueOnMove && mounted) return;
        if (Array.isArray(value)) return;
        if (!state.moves) return;
        if (!activeId) return;
        const item2 = composite.item(activeId);
        if (!item2 || item2.disabled || item2.value == null) return;
        select.setState("value", item2.value);
      })
    );
    return {
      ...composite,
      ...popover,
      ...select,
      combobox,
      setValue: (value) => select.setState("value", value),
      setLabelElement: (element) => select.setState("labelElement", element),
      setSelectElement: (element) => select.setState("selectElement", element),
      setListElement: (element) => select.setState("listElement", element)
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/HVWMDOZM.js
  function useSelectStoreOptions(props) {
    const combobox = useComboboxProviderContext();
    props = {
      ...props,
      combobox: props.combobox !== void 0 ? props.combobox : combobox
    };
    return useCompositeStoreOptions(props);
  }
  function useSelectStoreProps(store, update, props) {
    useUpdateEffect(update, [props.combobox]);
    useStoreProps(store, props, "value", "setValue");
    useStoreProps(store, props, "setValueOnMove");
    return Object.assign(
      usePopoverStoreProps(
        useCompositeStoreProps(store, update, props),
        update,
        props
      ),
      { combobox: props.combobox }
    );
  }
  function useSelectStore(props = {}) {
    props = useSelectStoreOptions(props);
    const [store, update] = useStore(createSelectStore, props);
    return useSelectStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/HLPY2PXK.js
  var import_react48 = __toESM(require_react(), 1);
  var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
  var TagName47 = "div";
  var useCompositeRow = createHook(
    function useCompositeRow2({
      store,
      "aria-setsize": ariaSetSize,
      "aria-posinset": ariaPosInSet,
      ...props
    }) {
      const context = useCompositeContext();
      store = store || context;
      invariant(
        store,
        "CompositeRow must be wrapped in a Composite component."
      );
      const id3 = useId(props.id);
      const baseElement = store.useState(
        (state) => state.baseElement || void 0
      );
      const providerValue = (0, import_react48.useMemo)(
        () => ({ id: id3, baseElement, ariaSetSize, ariaPosInSet }),
        [id3, baseElement, ariaSetSize, ariaPosInSet]
      );
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(CompositeRowContext.Provider, { value: providerValue, children: element }),
        [providerValue]
      );
      props = { id: id3, ...props };
      return removeUndefinedValues(props);
    }
  );
  var CompositeRow = forwardRef2(function CompositeRow2(props) {
    const htmlProps = useCompositeRow(props);
    return createElement(TagName47, htmlProps);
  });

  // node_modules/@ariakit/core/esm/checkbox/checkbox-store.js
  function createCheckboxStore(props = {}) {
    var _a;
    throwOnConflictingProps(props, props.store);
    const syncState = (_a = props.store) == null ? void 0 : _a.getState();
    const initialState = {
      value: defaultValue(
        props.value,
        syncState == null ? void 0 : syncState.value,
        props.defaultValue,
        false
      )
    };
    const checkbox = createStore(initialState, props.store);
    return {
      ...checkbox,
      setValue: (value) => checkbox.setState("value", value)
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/ALZMXNL4.js
  function useCheckboxStoreProps(store, update, props) {
    useUpdateEffect(update, [props.store]);
    useStoreProps(store, props, "value", "setValue");
    return store;
  }
  function useCheckboxStore(props = {}) {
    const [store, update] = useStore(createCheckboxStore, props);
    return useCheckboxStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/__chunks/ZVXT4QFT.js
  var ctx13 = createStoreContext();
  var useCheckboxContext = ctx13.useContext;
  var useCheckboxScopedContext = ctx13.useScopedContext;
  var useCheckboxProviderContext = ctx13.useProviderContext;
  var CheckboxContextProvider = ctx13.ContextProvider;
  var CheckboxScopedContextProvider = ctx13.ScopedContextProvider;

  // node_modules/@ariakit/react-core/esm/__chunks/I7KWAPMF.js
  var import_react49 = __toESM(require_react(), 1);
  var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
  var TagName48 = "input";
  function setMixed(element, mixed) {
    if (mixed) {
      element.indeterminate = true;
    } else if (element.indeterminate) {
      element.indeterminate = false;
    }
  }
  function isNativeCheckbox(tagName, type) {
    return tagName === "input" && (!type || type === "checkbox");
  }
  function getPrimitiveValue(value) {
    if (Array.isArray(value)) {
      return value.toString();
    }
    return value;
  }
  var useCheckbox = createHook(
    function useCheckbox2({
      store,
      name,
      value: valueProp,
      checked: checkedProp,
      defaultChecked,
      ...props
    }) {
      const context = useCheckboxContext();
      store = store || context;
      const [_checked, setChecked] = (0, import_react49.useState)(defaultChecked != null ? defaultChecked : false);
      const checked = useStoreState(store, (state) => {
        if (checkedProp !== void 0) return checkedProp;
        if ((state == null ? void 0 : state.value) === void 0) return _checked;
        if (valueProp != null) {
          if (Array.isArray(state.value)) {
            const primitiveValue = getPrimitiveValue(valueProp);
            return state.value.includes(primitiveValue);
          }
          return state.value === valueProp;
        }
        if (Array.isArray(state.value)) return false;
        if (typeof state.value === "boolean") return state.value;
        return false;
      });
      const ref = (0, import_react49.useRef)(null);
      const tagName = useTagName(ref, TagName48);
      const nativeCheckbox = isNativeCheckbox(tagName, props.type);
      const mixed = checked ? checked === "mixed" : void 0;
      const isChecked = checked === "mixed" ? false : checked;
      const disabled = disabledFromProps(props);
      const [propertyUpdated, schedulePropertyUpdate] = useForceUpdate();
      (0, import_react49.useEffect)(() => {
        const element = ref.current;
        if (!element) return;
        setMixed(element, mixed);
        if (nativeCheckbox) return;
        element.checked = isChecked;
        if (name !== void 0) {
          element.name = name;
        }
        if (valueProp !== void 0) {
          element.value = `${valueProp}`;
        }
      }, [propertyUpdated, mixed, nativeCheckbox, isChecked, name, valueProp]);
      const onChangeProp = props.onChange;
      const onChange = useEvent((event) => {
        if (disabled) {
          event.stopPropagation();
          event.preventDefault();
          return;
        }
        setMixed(event.currentTarget, mixed);
        if (!nativeCheckbox) {
          event.currentTarget.checked = !event.currentTarget.checked;
          schedulePropertyUpdate();
        }
        onChangeProp == null ? void 0 : onChangeProp(event);
        if (event.defaultPrevented) return;
        const elementChecked = event.currentTarget.checked;
        setChecked(elementChecked);
        store == null ? void 0 : store.setValue((prevValue) => {
          if (valueProp == null) return elementChecked;
          const primitiveValue = getPrimitiveValue(valueProp);
          if (!Array.isArray(prevValue)) {
            return prevValue === primitiveValue ? false : primitiveValue;
          }
          if (elementChecked) {
            if (prevValue.includes(primitiveValue)) {
              return prevValue;
            }
            return [...prevValue, primitiveValue];
          }
          return prevValue.filter((v3) => v3 !== primitiveValue);
        });
      });
      const onClickProp = props.onClick;
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (event.defaultPrevented) return;
        if (nativeCheckbox) return;
        onChange(event);
      });
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxCheckedContext.Provider, { value: isChecked, children: element }),
        [isChecked]
      );
      props = {
        role: !nativeCheckbox ? "checkbox" : void 0,
        type: nativeCheckbox ? "checkbox" : void 0,
        "aria-checked": checked,
        ...props,
        ref: useMergeRefs(ref, props.ref),
        onChange,
        onClick
      };
      props = useCommand({ clickOnEnter: !nativeCheckbox, ...props });
      return removeUndefinedValues({
        name: nativeCheckbox ? name : void 0,
        value: nativeCheckbox ? valueProp : void 0,
        checked: isChecked,
        ...props
      });
    }
  );
  var Checkbox = forwardRef2(function Checkbox2(props) {
    const htmlProps = useCheckbox(props);
    return createElement(TagName48, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/Z4X7TRJU.js
  var import_react50 = __toESM(require_react(), 1);
  var menu = createStoreContext(
    [CompositeContextProvider, HovercardContextProvider],
    [CompositeScopedContextProvider, HovercardScopedContextProvider]
  );
  var useMenuContext = menu.useContext;
  var useMenuScopedContext = menu.useScopedContext;
  var useMenuProviderContext = menu.useProviderContext;
  var MenuContextProvider = menu.ContextProvider;
  var MenuScopedContextProvider = menu.ScopedContextProvider;
  var MenuItemCheckedContext2 = (0, import_react50.createContext)(
    void 0
  );

  // node_modules/@ariakit/react-core/esm/__chunks/SVHPDYU7.js
  var import_react51 = __toESM(require_react(), 1);
  var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
  var TagName49 = "div";
  function useAriaLabelledBy({ store, ...props }) {
    const [id3, setId] = (0, import_react51.useState)(void 0);
    const label = props["aria-label"];
    const disclosureElement = useStoreState(store, "disclosureElement");
    const contentElement = useStoreState(store, "contentElement");
    (0, import_react51.useEffect)(() => {
      const disclosure = disclosureElement;
      if (!disclosure) return;
      const menu2 = contentElement;
      if (!menu2) return;
      const menuLabel = label || menu2.hasAttribute("aria-label");
      if (menuLabel) {
        setId(void 0);
      } else if (disclosure.id) {
        setId(disclosure.id);
      }
    }, [label, disclosureElement, contentElement]);
    return id3;
  }
  var useMenuList = createHook(
    function useMenuList2({ store, alwaysVisible, composite, ...props }) {
      const context = useMenuProviderContext();
      store = store || context;
      invariant(
        store,
        "MenuList must receive a `store` prop or be wrapped in a MenuProvider component."
      );
      const parentMenu = store.parent;
      const parentMenubar = store.menubar;
      const hasParentMenu = !!parentMenu;
      const id3 = useId(props.id);
      const onKeyDownProp = props.onKeyDown;
      const dir = store.useState(
        (state) => state.placement.split("-")[0]
      );
      const orientation = store.useState(
        (state) => state.orientation === "both" ? void 0 : state.orientation
      );
      const isHorizontal = orientation !== "vertical";
      const isMenubarHorizontal = useStoreState(
        parentMenubar,
        (state) => !!state && state.orientation !== "vertical"
      );
      const onKeyDown = useEvent((event) => {
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        if (event.defaultPrevented) return;
        if (hasParentMenu || parentMenubar && !isHorizontal) {
          const hideMap = {
            ArrowRight: () => dir === "left" && !isHorizontal,
            ArrowLeft: () => dir === "right" && !isHorizontal,
            ArrowUp: () => dir === "bottom" && isHorizontal,
            ArrowDown: () => dir === "top" && isHorizontal
          };
          const action = hideMap[event.key];
          if (action == null ? void 0 : action()) {
            event.stopPropagation();
            event.preventDefault();
            return store == null ? void 0 : store.hide();
          }
        }
        if (parentMenubar) {
          const keyMap = {
            ArrowRight: () => {
              if (!isMenubarHorizontal) return;
              return parentMenubar.next();
            },
            ArrowLeft: () => {
              if (!isMenubarHorizontal) return;
              return parentMenubar.previous();
            },
            ArrowDown: () => {
              if (isMenubarHorizontal) return;
              return parentMenubar.next();
            },
            ArrowUp: () => {
              if (isMenubarHorizontal) return;
              return parentMenubar.previous();
            }
          };
          const action = keyMap[event.key];
          const id22 = action == null ? void 0 : action();
          if (id22 !== void 0) {
            event.stopPropagation();
            event.preventDefault();
            parentMenubar.move(id22);
          }
        }
      });
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MenuScopedContextProvider, { value: store, children: element }),
        [store]
      );
      const ariaLabelledBy = useAriaLabelledBy({ store, ...props });
      const mounted = store.useState("mounted");
      const hidden = isHidden(mounted, props.hidden, alwaysVisible);
      const style2 = hidden ? { ...props.style, display: "none" } : props.style;
      props = {
        id: id3,
        "aria-labelledby": ariaLabelledBy,
        hidden,
        ...props,
        ref: useMergeRefs(id3 ? store.setContentElement : null, props.ref),
        style: style2,
        onKeyDown
      };
      const hasCombobox = !!store.combobox;
      composite = composite != null ? composite : !hasCombobox;
      if (composite) {
        props = {
          role: "menu",
          "aria-orientation": orientation,
          ...props
        };
      }
      props = useComposite({ store, composite, ...props });
      props = useCompositeTypeahead({ store, typeahead: !hasCombobox, ...props });
      return props;
    }
  );
  var MenuList = forwardRef2(function MenuList2(props) {
    const htmlProps = useMenuList(props);
    return createElement(TagName49, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/menu/menu.js
  var import_react52 = __toESM(require_react(), 1);
  var TagName50 = "div";
  var useMenu = createHook(function useMenu2({
    store,
    modal: modalProp = false,
    portal = !!modalProp,
    hideOnEscape = true,
    autoFocusOnShow = true,
    hideOnHoverOutside,
    alwaysVisible,
    ...props
  }) {
    const context = useMenuProviderContext();
    store = store || context;
    invariant(
      store,
      "Menu must receive a `store` prop or be wrapped in a MenuProvider component."
    );
    const ref = (0, import_react52.useRef)(null);
    const parentMenu = store.parent;
    const parentMenubar = store.menubar;
    const hasParentMenu = !!parentMenu;
    const parentIsMenubar = !!parentMenubar && !hasParentMenu;
    props = {
      ...props,
      ref: useMergeRefs(ref, props.ref)
    };
    const { "aria-labelledby": ariaLabelledBy, ...menuListProps } = useMenuList({
      store,
      alwaysVisible,
      ...props
    });
    props = menuListProps;
    const [initialFocusRef, setInitialFocusRef] = (0, import_react52.useState)();
    const autoFocusOnShowState = store.useState("autoFocusOnShow");
    const initialFocus = store.useState("initialFocus");
    const baseElement = store.useState("baseElement");
    const items = store.useState("renderedItems");
    (0, import_react52.useEffect)(() => {
      let cleaning = false;
      setInitialFocusRef((prevInitialFocusRef) => {
        var _a, _b, _c;
        if (cleaning) return;
        if (!autoFocusOnShowState) return;
        if ((_a = prevInitialFocusRef == null ? void 0 : prevInitialFocusRef.current) == null ? void 0 : _a.isConnected) return prevInitialFocusRef;
        const ref2 = (0, import_react52.createRef)();
        switch (initialFocus) {
          // TODO: Refactor
          case "first":
            ref2.current = ((_b = items.find((item2) => !item2.disabled && item2.element)) == null ? void 0 : _b.element) || null;
            break;
          case "last":
            ref2.current = ((_c = [...items].reverse().find((item2) => !item2.disabled && item2.element)) == null ? void 0 : _c.element) || null;
            break;
          default:
            ref2.current = baseElement;
        }
        return ref2;
      });
      return () => {
        cleaning = true;
      };
    }, [store, autoFocusOnShowState, initialFocus, items, baseElement]);
    const modal = hasParentMenu ? false : modalProp;
    const mayAutoFocusOnShow = !!autoFocusOnShow;
    const canAutoFocusOnShow = !!initialFocusRef || !!props.initialFocus || !!modal;
    const contentElement = useStoreState(
      store.combobox || store,
      "contentElement"
    );
    const parentContentElement = useStoreState(
      (parentMenu == null ? void 0 : parentMenu.combobox) || parentMenu,
      "contentElement"
    );
    const preserveTabOrderAnchor = (0, import_react52.useMemo)(() => {
      if (!parentContentElement) return;
      if (!contentElement) return;
      const role = contentElement.getAttribute("role");
      const parentRole = parentContentElement.getAttribute("role");
      const parentIsMenuOrMenubar = parentRole === "menu" || parentRole === "menubar";
      if (parentIsMenuOrMenubar && role === "menu") return;
      return parentContentElement;
    }, [contentElement, parentContentElement]);
    if (preserveTabOrderAnchor !== void 0) {
      props = {
        preserveTabOrderAnchor,
        ...props
      };
    }
    props = useHovercard({
      store,
      alwaysVisible,
      initialFocus: initialFocusRef,
      autoFocusOnShow: mayAutoFocusOnShow ? canAutoFocusOnShow && autoFocusOnShow : autoFocusOnShowState || !!modal,
      ...props,
      hideOnEscape(event) {
        if (isFalsyBooleanCallback(hideOnEscape, event)) return false;
        store == null ? void 0 : store.hideAll();
        return true;
      },
      hideOnHoverOutside(event) {
        const disclosureElement = store == null ? void 0 : store.getState().disclosureElement;
        const getHideOnHoverOutside = () => {
          if (typeof hideOnHoverOutside === "function") {
            return hideOnHoverOutside(event);
          }
          if (hideOnHoverOutside != null) return hideOnHoverOutside;
          if (hasParentMenu) return true;
          if (!parentIsMenubar) return false;
          if (!disclosureElement) return true;
          if (hasFocusWithin(disclosureElement)) return false;
          return true;
        };
        if (!getHideOnHoverOutside()) return false;
        if (event.defaultPrevented) return true;
        if (!hasParentMenu) return true;
        if (!disclosureElement) return true;
        fireEvent(disclosureElement, "mouseout", event);
        if (!hasFocusWithin(disclosureElement)) return true;
        requestAnimationFrame(() => {
          if (hasFocusWithin(disclosureElement)) return;
          store == null ? void 0 : store.hide();
        });
        return false;
      },
      modal,
      portal,
      backdrop: hasParentMenu ? false : props.backdrop
    });
    props = {
      "aria-labelledby": ariaLabelledBy,
      ...props
    };
    return props;
  });
  var Menu = createDialogComponent(
    forwardRef2(function Menu2(props) {
      const htmlProps = useMenu(props);
      return createElement(TagName50, htmlProps);
    }),
    useMenuProviderContext
  );

  // node_modules/@ariakit/react-core/esm/menu/menu-button.js
  var import_react53 = __toESM(require_react(), 1);
  var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
  var TagName51 = "button";
  function getInitialFocus(event, dir) {
    const keyMap = {
      ArrowDown: dir === "bottom" || dir === "top" ? "first" : false,
      ArrowUp: dir === "bottom" || dir === "top" ? "last" : false,
      ArrowRight: dir === "right" ? "first" : false,
      ArrowLeft: dir === "left" ? "first" : false
    };
    return keyMap[event.key];
  }
  function hasActiveItem(items, excludeElement) {
    return !!(items == null ? void 0 : items.some((item2) => {
      if (!item2.element) return false;
      if (item2.element === excludeElement) return false;
      return item2.element.getAttribute("aria-expanded") === "true";
    }));
  }
  var useMenuButton = createHook(
    function useMenuButton2({
      store,
      focusable,
      accessibleWhenDisabled,
      showOnHover,
      ...props
    }) {
      const context = useMenuProviderContext();
      store = store || context;
      invariant(
        store,
        "MenuButton must receive a `store` prop or be wrapped in a MenuProvider component."
      );
      const ref = (0, import_react53.useRef)(null);
      const parentMenu = store.parent;
      const parentMenubar = store.menubar;
      const hasParentMenu = !!parentMenu;
      const parentIsMenubar = !!parentMenubar && !hasParentMenu;
      const disabled = disabledFromProps(props);
      const showMenu = () => {
        const trigger = ref.current;
        if (!trigger) return;
        store == null ? void 0 : store.setDisclosureElement(trigger);
        store == null ? void 0 : store.setAnchorElement(trigger);
        store == null ? void 0 : store.show();
      };
      const onFocusProp = props.onFocus;
      const onFocus = useEvent((event) => {
        onFocusProp == null ? void 0 : onFocusProp(event);
        if (disabled) return;
        if (event.defaultPrevented) return;
        store == null ? void 0 : store.setAutoFocusOnShow(false);
        store == null ? void 0 : store.setActiveId(null);
        if (!parentMenubar) return;
        if (!parentIsMenubar) return;
        const { items } = parentMenubar.getState();
        if (hasActiveItem(items, event.currentTarget)) {
          showMenu();
        }
      });
      const dir = useStoreState(
        store,
        (state) => state.placement.split("-")[0]
      );
      const onKeyDownProp = props.onKeyDown;
      const onKeyDown = useEvent((event) => {
        onKeyDownProp == null ? void 0 : onKeyDownProp(event);
        if (disabled) return;
        if (event.defaultPrevented) return;
        const initialFocus = getInitialFocus(event, dir);
        if (initialFocus) {
          event.preventDefault();
          showMenu();
          store == null ? void 0 : store.setAutoFocusOnShow(true);
          store == null ? void 0 : store.setInitialFocus(initialFocus);
        }
      });
      const onClickProp = props.onClick;
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (event.defaultPrevented) return;
        if (!store) return;
        const isKeyboardClick = !event.detail;
        const { open } = store.getState();
        if (!open || isKeyboardClick) {
          if (!hasParentMenu || isKeyboardClick) {
            store.setAutoFocusOnShow(true);
          }
          store.setInitialFocus(isKeyboardClick ? "first" : "container");
        }
        if (hasParentMenu) {
          showMenu();
        }
      });
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenuContextProvider, { value: store, children: element }),
        [store]
      );
      if (hasParentMenu) {
        props = {
          ...props,
          render: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Role.div, { render: props.render })
        };
      }
      const id3 = useId(props.id);
      const parentContentElement = useStoreState(
        (parentMenu == null ? void 0 : parentMenu.combobox) || parentMenu,
        "contentElement"
      );
      const role = hasParentMenu || parentIsMenubar ? getPopupItemRole(parentContentElement, "menuitem") : void 0;
      const contentElement = store.useState("contentElement");
      props = {
        id: id3,
        role,
        "aria-haspopup": getPopupRole(contentElement, "menu"),
        ...props,
        ref: useMergeRefs(ref, props.ref),
        onFocus,
        onKeyDown,
        onClick
      };
      props = useHovercardAnchor({
        store,
        focusable,
        accessibleWhenDisabled,
        ...props,
        showOnHover: (event) => {
          const getShowOnHover = () => {
            if (typeof showOnHover === "function") return showOnHover(event);
            if (showOnHover != null) return showOnHover;
            if (hasParentMenu) return true;
            if (!parentMenubar) return false;
            const { items } = parentMenubar.getState();
            return parentIsMenubar && hasActiveItem(items);
          };
          const canShowOnHover = getShowOnHover();
          if (!canShowOnHover) return false;
          const parent = parentIsMenubar ? parentMenubar : parentMenu;
          if (!parent) return true;
          parent.setActiveId(event.currentTarget.id);
          return true;
        }
      });
      props = usePopoverDisclosure({
        store,
        toggleOnClick: !hasParentMenu,
        focusable,
        accessibleWhenDisabled,
        ...props
      });
      props = useCompositeTypeahead({
        store,
        typeahead: parentIsMenubar,
        ...props
      });
      return props;
    }
  );
  var MenuButton = forwardRef2(function MenuButton2(props) {
    const htmlProps = useMenuButton(props);
    return createElement(TagName51, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/menu/menu-group.js
  var TagName52 = "div";
  var useMenuGroup = createHook(
    function useMenuGroup2(props) {
      props = useCompositeGroup(props);
      return props;
    }
  );
  var MenuGroup = forwardRef2(function MenuGroup2(props) {
    const htmlProps = useMenuGroup(props);
    return createElement(TagName52, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/menu/menu-group-label.js
  var TagName53 = "div";
  var useMenuGroupLabel = createHook(
    function useMenuGroupLabel2(props) {
      props = useCompositeGroupLabel(props);
      return props;
    }
  );
  var MenuGroupLabel = forwardRef2(function MenuGroupLabel2(props) {
    const htmlProps = useMenuGroupLabel(props);
    return createElement(TagName53, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/__chunks/MOWGOTGG.js
  var TagName54 = "div";
  function menuHasFocus(baseElement, items, currentTarget) {
    var _a;
    if (!baseElement) return false;
    if (hasFocusWithin(baseElement)) return true;
    const expandedItem = items == null ? void 0 : items.find((item2) => {
      var _a2;
      if (item2.element === currentTarget) return false;
      return ((_a2 = item2.element) == null ? void 0 : _a2.getAttribute("aria-expanded")) === "true";
    });
    const expandedMenuId = (_a = expandedItem == null ? void 0 : expandedItem.element) == null ? void 0 : _a.getAttribute("aria-controls");
    if (!expandedMenuId) return false;
    const doc = getDocument(baseElement);
    const expandedMenu = doc.getElementById(expandedMenuId);
    if (!expandedMenu) return false;
    if (hasFocusWithin(expandedMenu)) return true;
    return !!expandedMenu.querySelector("[role=menuitem][aria-expanded=true]");
  }
  var useMenuItem = createHook(
    function useMenuItem2({
      store,
      hideOnClick = true,
      preventScrollOnKeyDown = true,
      focusOnHover,
      blurOnHoverEnd,
      ...props
    }) {
      const menuContext = useMenuScopedContext(true);
      const menubarContext = useMenubarScopedContext();
      store = store || menuContext || menubarContext;
      invariant(
        store,
        "MenuItem must be wrapped in a MenuList, Menu or Menubar component"
      );
      const onClickProp = props.onClick;
      const hideOnClickProp = useBooleanEvent(hideOnClick);
      const hideMenu = "hideAll" in store ? store.hideAll : void 0;
      const isWithinMenu = !!hideMenu;
      const onClick = useEvent((event) => {
        onClickProp == null ? void 0 : onClickProp(event);
        if (event.defaultPrevented) return;
        if (isDownloading(event)) return;
        if (isOpeningInNewTab(event)) return;
        if (!hideMenu) return;
        const popupType = event.currentTarget.getAttribute("aria-haspopup");
        if (popupType === "menu") return;
        if (!hideOnClickProp(event)) return;
        hideMenu();
      });
      const contentElement = useStoreState(
        store,
        (state) => "contentElement" in state ? state.contentElement : null
      );
      const role = getPopupItemRole(contentElement, "menuitem");
      props = {
        role,
        ...props,
        onClick
      };
      props = useCompositeItem({
        store,
        preventScrollOnKeyDown,
        ...props
      });
      props = useCompositeHover({
        store,
        ...props,
        focusOnHover(event) {
          const getFocusOnHover = () => {
            if (typeof focusOnHover === "function") return focusOnHover(event);
            if (focusOnHover != null) return focusOnHover;
            return true;
          };
          if (!store) return false;
          if (!getFocusOnHover()) return false;
          const { baseElement, items } = store.getState();
          if (isWithinMenu) {
            if (event.currentTarget.hasAttribute("aria-expanded")) {
              event.currentTarget.focus();
            }
            return true;
          }
          if (menuHasFocus(baseElement, items, event.currentTarget)) {
            event.currentTarget.focus();
            return true;
          }
          return false;
        },
        blurOnHoverEnd(event) {
          if (typeof blurOnHoverEnd === "function") return blurOnHoverEnd(event);
          if (blurOnHoverEnd != null) return blurOnHoverEnd;
          return isWithinMenu;
        }
      });
      return props;
    }
  );
  var MenuItem = memo2(
    forwardRef2(function MenuItem2(props) {
      const htmlProps = useMenuItem(props);
      return createElement(TagName54, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/menu/menu-item-check.js
  var import_react54 = __toESM(require_react(), 1);
  var TagName55 = "span";
  var useMenuItemCheck = createHook(
    function useMenuItemCheck2({ store, checked, ...props }) {
      const context = (0, import_react54.useContext)(MenuItemCheckedContext2);
      checked = checked != null ? checked : context;
      props = useCheckboxCheck({ ...props, checked });
      return props;
    }
  );
  var MenuItemCheck = forwardRef2(function MenuItemCheck2(props) {
    const htmlProps = useMenuItemCheck(props);
    return createElement(TagName55, htmlProps);
  });

  // node_modules/@ariakit/react-core/esm/menu/menu-item-checkbox.js
  var import_react55 = __toESM(require_react(), 1);
  var TagName56 = "div";
  function getPrimitiveValue2(value) {
    if (Array.isArray(value)) {
      return value.toString();
    }
    return value;
  }
  function getValue(storeValue, value, checked) {
    if (value === void 0) {
      if (Array.isArray(storeValue)) return storeValue;
      return !!checked;
    }
    const primitiveValue = getPrimitiveValue2(value);
    if (!Array.isArray(storeValue)) {
      if (checked) {
        return primitiveValue;
      }
      return storeValue === primitiveValue ? false : storeValue;
    }
    if (checked) {
      if (storeValue.includes(primitiveValue)) {
        return storeValue;
      }
      return [...storeValue, primitiveValue];
    }
    return storeValue.filter((v3) => v3 !== primitiveValue);
  }
  var useMenuItemCheckbox = createHook(
    function useMenuItemCheckbox2({
      store,
      name,
      value,
      checked,
      defaultChecked: defaultCheckedProp,
      hideOnClick = false,
      ...props
    }) {
      const context = useMenuScopedContext();
      store = store || context;
      invariant(
        store,
        "MenuItemCheckbox must be wrapped in a MenuList or Menu component"
      );
      const defaultChecked = useInitialValue(defaultCheckedProp);
      (0, import_react55.useEffect)(() => {
        store == null ? void 0 : store.setValue(name, (prevValue = []) => {
          if (!defaultChecked) return prevValue;
          return getValue(prevValue, value, true);
        });
      }, [store, name, value, defaultChecked]);
      (0, import_react55.useEffect)(() => {
        if (checked === void 0) return;
        store == null ? void 0 : store.setValue(name, (prevValue) => {
          return getValue(prevValue, value, checked);
        });
      }, [store, name, value, checked]);
      const checkboxStore = useCheckboxStore({
        value: store.useState((state) => state.values[name]),
        setValue(internalValue) {
          store == null ? void 0 : store.setValue(name, () => {
            if (checked === void 0) return internalValue;
            const nextValue = getValue(internalValue, value, checked);
            if (!Array.isArray(nextValue)) return nextValue;
            if (!Array.isArray(internalValue)) return nextValue;
            if (shallowEqual(internalValue, nextValue)) return internalValue;
            return nextValue;
          });
        }
      });
      props = {
        role: "menuitemcheckbox",
        ...props
      };
      props = useCheckbox({
        store: checkboxStore,
        name,
        value,
        checked,
        ...props
      });
      props = useMenuItem({ store, hideOnClick, ...props });
      return props;
    }
  );
  var MenuItemCheckbox = memo2(
    forwardRef2(function MenuItemCheckbox2(props) {
      const htmlProps = useMenuItemCheckbox(props);
      return createElement(TagName56, htmlProps);
    })
  );

  // node_modules/@ariakit/react-core/esm/menu/menu-item-radio.js
  var import_react56 = __toESM(require_react(), 1);
  var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
  var TagName57 = "div";
  function getValue2(prevValue, value, checked) {
    if (checked === void 0) return prevValue;
    if (checked) return value;
    return prevValue;
  }
  var useMenuItemRadio = createHook(
    function useMenuItemRadio2({
      store,
      name,
      value,
      checked,
      onChange: onChangeProp,
      hideOnClick = false,
      ...props
    }) {
      const context = useMenuScopedContext();
      store = store || context;
      invariant(
        store,
        "MenuItemRadio must be wrapped in a MenuList or Menu component"
      );
      const defaultChecked = useInitialValue(props.defaultChecked);
      (0, import_react56.useEffect)(() => {
        store == null ? void 0 : store.setValue(name, (prevValue = false) => {
          return getValue2(prevValue, value, defaultChecked);
        });
      }, [store, name, value, defaultChecked]);
      (0, import_react56.useEffect)(() => {
        if (checked === void 0) return;
        store == null ? void 0 : store.setValue(name, (prevValue) => {
          return getValue2(prevValue, value, checked);
        });
      }, [store, name, value, checked]);
      const isChecked = store.useState((state) => state.values[name] === value);
      props = useWrapElement(
        props,
        (element) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MenuItemCheckedContext2.Provider, { value: !!isChecked, children: element }),
        [isChecked]
      );
      props = {
        role: "menuitemradio",
        ...props
      };
      props = useRadio({
        name,
        value,
        checked: isChecked,
        onChange(event) {
          onChangeProp == null ? void 0 : onChangeProp(event);
          if (event.defaultPrevented) return;
          const element = event.currentTarget;
          store == null ? void 0 : store.setValue(name, (prevValue) => {
            return getValue2(prevValue, value, checked != null ? checked : element.checked);
          });
        },
        ...props
      });
      props = useMenuItem({ store, hideOnClick, ...props });
      return props;
    }
  );
  var MenuItemRadio = memo2(
    forwardRef2(function MenuItemRadio2(props) {
      const htmlProps = useMenuItemRadio(props);
      return createElement(TagName57, htmlProps);
    })
  );

  // node_modules/@ariakit/core/esm/menu/menu-store.js
  function createMenuStore({
    combobox,
    parent,
    menubar: menubar2,
    ...props
  } = {}) {
    const parentIsMenubar = !!menubar2 && !parent;
    const store = mergeStore(
      props.store,
      pick2(parent, ["values"]),
      omit2(combobox, [
        "arrowElement",
        "anchorElement",
        "contentElement",
        "popoverElement",
        "disclosureElement"
      ])
    );
    throwOnConflictingProps(props, store);
    const syncState = store.getState();
    const composite = createCompositeStore({
      ...props,
      store,
      orientation: defaultValue(
        props.orientation,
        syncState.orientation,
        "vertical"
      )
    });
    const hovercard = createHovercardStore({
      ...props,
      store,
      placement: defaultValue(
        props.placement,
        syncState.placement,
        "bottom-start"
      ),
      timeout: defaultValue(
        props.timeout,
        syncState.timeout,
        parentIsMenubar ? 0 : 150
      ),
      hideTimeout: defaultValue(props.hideTimeout, syncState.hideTimeout, 0)
    });
    const initialState = {
      ...composite.getState(),
      ...hovercard.getState(),
      initialFocus: defaultValue(syncState.initialFocus, "container"),
      values: defaultValue(
        props.values,
        syncState.values,
        props.defaultValues,
        {}
      )
    };
    const menu2 = createStore(initialState, composite, hovercard, store);
    setup(
      menu2,
      () => sync(menu2, ["mounted"], (state) => {
        if (state.mounted) return;
        menu2.setState("activeId", null);
      })
    );
    setup(
      menu2,
      () => sync(parent, ["orientation"], (state) => {
        menu2.setState(
          "placement",
          state.orientation === "vertical" ? "right-start" : "bottom-start"
        );
      })
    );
    return {
      ...composite,
      ...hovercard,
      ...menu2,
      combobox,
      parent,
      menubar: menubar2,
      hideAll: () => {
        hovercard.hide();
        parent == null ? void 0 : parent.hideAll();
      },
      setInitialFocus: (value) => menu2.setState("initialFocus", value),
      setValues: (values) => menu2.setState("values", values),
      setValue: (name, value) => {
        if (name === "__proto__") return;
        if (name === "constructor") return;
        if (Array.isArray(name)) return;
        menu2.setState("values", (values) => {
          const prevValue = values[name];
          const nextValue = applyState(value, prevValue);
          if (nextValue === prevValue) return values;
          return {
            ...values,
            [name]: nextValue !== void 0 && nextValue
          };
        });
      }
    };
  }

  // node_modules/@ariakit/react-core/esm/__chunks/62CEUOYM.js
  function useMenuStoreProps(store, update, props) {
    useUpdateEffect(update, [props.combobox, props.parent, props.menubar]);
    useStoreProps(store, props, "values", "setValues");
    return Object.assign(
      useHovercardStoreProps(
        useCompositeStoreProps(store, update, props),
        update,
        props
      ),
      {
        combobox: props.combobox,
        parent: props.parent,
        menubar: props.menubar
      }
    );
  }
  function useMenuStore(props = {}) {
    const parent = useMenuContext();
    const menubar2 = useMenubarContext();
    const combobox = useComboboxProviderContext();
    props = {
      ...props,
      parent: props.parent !== void 0 ? props.parent : parent,
      menubar: props.menubar !== void 0 ? props.menubar : menubar2,
      combobox: props.combobox !== void 0 ? props.combobox : combobox
    };
    const [store, update] = useStore(createMenuStore, props);
    return useMenuStoreProps(store, update, props);
  }

  // node_modules/@ariakit/react-core/esm/menu/menu-separator.js
  var TagName58 = "hr";
  var useMenuSeparator = createHook(
    function useMenuSeparator2({ store, ...props }) {
      const context = useMenuContext();
      store = store || context;
      props = useCompositeSeparator({ store, ...props });
      return props;
    }
  );
  var MenuSeparator = forwardRef2(function MenuSeparator2(props) {
    const htmlProps = useMenuSeparator(props);
    return createElement(TagName58, htmlProps);
  });

  // packages/components/build-module/composite/index.mjs
  var import_i18n = __toESM(require_i18n(), 1);
  var import_element8 = __toESM(require_element(), 1);

  // packages/components/build-module/composite/context.mjs
  var import_element = __toESM(require_element(), 1);
  var CompositeContext = (0, import_element.createContext)({});
  CompositeContext.displayName = "CompositeContext";
  var useCompositeContext2 = () => (0, import_element.useContext)(CompositeContext);

  // packages/components/build-module/composite/group.mjs
  var import_element2 = __toESM(require_element(), 1);
  var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
  var CompositeGroup22 = (0, import_element2.forwardRef)(function CompositeGroup3(props, ref) {
    const context = useCompositeContext2();
    const store = props.store ?? context.store;
    return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(CompositeGroup, {
      store,
      ...props,
      ref
    });
  });

  // packages/components/build-module/composite/group-label.mjs
  var import_element3 = __toESM(require_element(), 1);
  var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
  var CompositeGroupLabel22 = (0, import_element3.forwardRef)(function CompositeGroupLabel3(props, ref) {
    const context = useCompositeContext2();
    const store = props.store ?? context.store;
    return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(CompositeGroupLabel, {
      store,
      ...props,
      ref
    });
  });

  // packages/components/build-module/composite/hover.mjs
  var import_element4 = __toESM(require_element(), 1);
  var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
  var CompositeHover22 = (0, import_element4.forwardRef)(function CompositeHover3(props, ref) {
    const context = useCompositeContext2();
    const store = props.store ?? context.store;
    return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CompositeHover, {
      store,
      ...props,
      ref
    });
  });

  // packages/components/build-module/composite/item.mjs
  var import_element5 = __toESM(require_element(), 1);
  var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
  var CompositeItem22 = (0, import_element5.forwardRef)(function CompositeItem3(props, ref) {
    const context = useCompositeContext2();
    const store = props.store ?? context.store;
    return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CompositeItem, {
      store,
      ...props,
      ref
    });
  });

  // packages/components/build-module/composite/row.mjs
  var import_element6 = __toESM(require_element(), 1);
  var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
  var CompositeRow22 = (0, import_element6.forwardRef)(function CompositeRow3(props, ref) {
    const context = useCompositeContext2();
    const store = props.store ?? context.store;
    return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(CompositeRow, {
      store,
      ...props,
      ref
    });
  });

  // packages/components/build-module/composite/typeahead.mjs
  var import_element7 = __toESM(require_element(), 1);
  var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
  var CompositeTypeahead22 = (0, import_element7.forwardRef)(function CompositeTypeahead3(props, ref) {
    const context = useCompositeContext2();
    const store = props.store ?? context.store;
    return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CompositeTypeahead, {
      store,
      ...props,
      ref
    });
  });

  // packages/components/build-module/composite/index.mjs
  var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
  var Composite22 = Object.assign((0, import_element8.forwardRef)(function Composite3({
    // Composite store props
    activeId,
    defaultActiveId,
    setActiveId,
    focusLoop = false,
    focusWrap = false,
    focusShift = false,
    virtualFocus = false,
    orientation = "both",
    rtl: rtl2 = (0, import_i18n.isRTL)(),
    // Composite component props
    children,
    disabled = false,
    // Rest props
    ...props
  }, ref) {
    const storeProp = props.store;
    const internalStore = useCompositeStore({
      activeId,
      defaultActiveId,
      setActiveId,
      focusLoop,
      focusWrap,
      focusShift,
      virtualFocus,
      orientation,
      rtl: rtl2
    });
    const store = storeProp ?? internalStore;
    const contextValue = (0, import_element8.useMemo)(() => ({
      store
    }), [store]);
    return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Composite, {
      disabled,
      store,
      ...props,
      ref,
      children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CompositeContext.Provider, {
        value: contextValue,
        children
      })
    });
  }), {
    /**
     * Renders a group element for composite items.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     *
     * <Composite>
     *   <Composite.Group>
     *     <Composite.GroupLabel>Label</Composite.GroupLabel>
     *     <Composite.Item>Item 1</Composite.Item>
     *     <Composite.Item>Item 2</Composite.Item>
     *   </CompositeGroup>
     * </Composite>
     * ```
     */
    Group: Object.assign(CompositeGroup22, {
      displayName: "Composite.Group"
    }),
    /**
     * Renders a label in a composite group. This component must be wrapped with
     * `Composite.Group` so the `aria-labelledby` prop is properly set on the
     * composite group element.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     *
     * <Composite>
     *   <Composite.Group>
     *     <Composite.GroupLabel>Label</Composite.GroupLabel>
     *     <Composite.Item>Item 1</Composite.Item>
     *     <Composite.Item>Item 2</Composite.Item>
     *   </CompositeGroup>
     * </Composite>
     * ```
     */
    GroupLabel: Object.assign(CompositeGroupLabel22, {
      displayName: "Composite.GroupLabel"
    }),
    /**
     * Renders a composite item.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     *
     * <Composite>
     *   <Composite.Item>Item 1</Composite.Item>
     *   <Composite.Item>Item 2</Composite.Item>
     *   <Composite.Item>Item 3</Composite.Item>
     * </Composite>
     * ```
     */
    Item: Object.assign(CompositeItem22, {
      displayName: "Composite.Item"
    }),
    /**
     * Renders a composite row. Wrapping `Composite.Item` elements within
     * `Composite.Row` will create a two-dimensional composite widget, such as a
     * grid.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     *
     * <Composite>
     *   <Composite.Row>
     *     <Composite.Item>Item 1.1</Composite.Item>
     *     <Composite.Item>Item 1.2</Composite.Item>
     *     <Composite.Item>Item 1.3</Composite.Item>
     *   </Composite.Row>
     *   <Composite.Row>
     *     <Composite.Item>Item 2.1</Composite.Item>
     *     <Composite.Item>Item 2.2</Composite.Item>
     *     <Composite.Item>Item 2.3</Composite.Item>
     *   </Composite.Row>
     * </Composite>
     * ```
     */
    Row: Object.assign(CompositeRow22, {
      displayName: "Composite.Row"
    }),
    /**
     * Renders an element in a composite widget that receives focus on mouse move
     * and loses focus to the composite base element on mouse leave. This should
     * be combined with the `Composite.Item` component.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     *
     * <Composite>
     *   <Composite.Hover render={ <Composite.Item /> }>
     *     Item 1
     *   </Composite.Hover>
     *   <Composite.Hover render={ <Composite.Item /> }>
     *     Item 2
     *   </Composite.Hover>
     * </Composite>
     * ```
     */
    Hover: Object.assign(CompositeHover22, {
      displayName: "Composite.Hover"
    }),
    /**
     * Renders a component that adds typeahead functionality to composite
     * components. Hitting printable character keys will move focus to the next
     * composite item that begins with the input characters.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     *
     * <Composite render={ <CompositeTypeahead /> }>
     *   <Composite.Item>Item 1</Composite.Item>
     *   <Composite.Item>Item 2</Composite.Item>
     * </Composite>
     * ```
     */
    Typeahead: Object.assign(CompositeTypeahead22, {
      displayName: "Composite.Typeahead"
    }),
    /**
     * The React context used by the composite components. It can be used by
     * to access the composite store, and to forward the context when composite
     * sub-components are rendered across portals (ie. `SlotFill` components)
     * that would not otherwise forward the context to the `Fill` children.
     *
     * @example
     * ```jsx
     * import { Composite } from '@wordpress/components';
     * import { useContext } from '@wordpress/element';
     *
     * const compositeContext = useContext( Composite.Context );
     * ```
     */
    Context: Object.assign(CompositeContext, {
      displayName: "Composite.Context"
    })
  });

  // packages/components/build-module/tooltip/index.mjs
  var import_compose = __toESM(require_compose(), 1);
  var import_element14 = __toESM(require_element(), 1);
  var import_deprecated = __toESM(require_deprecated(), 1);

  // packages/components/build-module/shortcut/index.mjs
  var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
  function Shortcut(props) {
    const {
      shortcut,
      className: className2
    } = props;
    if (!shortcut) {
      return null;
    }
    let displayText;
    let ariaLabel;
    if (typeof shortcut === "string") {
      displayText = shortcut;
    }
    if (shortcut !== null && typeof shortcut === "object") {
      displayText = shortcut.display;
      ariaLabel = shortcut.ariaLabel;
    }
    return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", {
      className: className2,
      "aria-label": ariaLabel,
      children: displayText
    });
  }
  var shortcut_default = Shortcut;

  // packages/components/node_modules/framer-motion/dist/es/utils/warn-once.mjs
  var warned = /* @__PURE__ */ new Set();
  function warnOnce(condition, message2, element) {
    if (condition || warned.has(message2))
      return;
    console.warn(message2);
    if (element)
      console.warn(element);
    warned.add(message2);
  }

  // packages/components/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs
  function createDOMMotionComponentProxy(componentFactory) {
    if (typeof Proxy === "undefined") {
      return componentFactory;
    }
    const componentCache = /* @__PURE__ */ new Map();
    const deprecatedFactoryFunction = (...args) => {
      if (true) {
        warnOnce(false, "motion() is deprecated. Use motion.create() instead.");
      }
      return componentFactory(...args);
    };
    return new Proxy(deprecatedFactoryFunction, {
      /**
       * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.
       * The prop name is passed through as `key` and we can use that to generate a `motion`
       * DOM component with that name.
       */
      get: (_target, key) => {
        if (key === "create")
          return componentFactory;
        if (!componentCache.has(key)) {
          componentCache.set(key, componentFactory(key));
        }
        return componentCache.get(key);
      }
    });
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs
  function isAnimationControls(v3) {
    return v3 !== null && typeof v3 === "object" && typeof v3.start === "function";
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs
  var isKeyframesTarget = (v3) => {
    return Array.isArray(v3);
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs
  function shallowCompare(next2, prev2) {
    if (!Array.isArray(prev2))
      return false;
    const prevLength = prev2.length;
    if (prevLength !== next2.length)
      return false;
    for (let i3 = 0; i3 < prevLength; i3++) {
      if (prev2[i3] !== next2[i3])
        return false;
    }
    return true;
  }

  // packages/components/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs
  function isVariantLabel(v3) {
    return typeof v3 === "string" || Array.isArray(v3);
  }

  // packages/components/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs
  function getValueState(visualElement) {
    const state = [{}, {}];
    visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {
      state[0][key] = value.get();
      state[1][key] = value.getVelocity();
    });
    return state;
  }
  function resolveVariantFromProps(props, definition, custom, visualElement) {
    if (typeof definition === "function") {
      const [current, velocity] = getValueState(visualElement);
      definition = definition(custom !== void 0 ? custom : props.custom, current, velocity);
    }
    if (typeof definition === "string") {
      definition = props.variants && props.variants[definition];
    }
    if (typeof definition === "function") {
      const [current, velocity] = getValueState(visualElement);
      definition = definition(custom !== void 0 ? custom : props.custom, current, velocity);
    }
    return definition;
  }

  // packages/components/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs
  function resolveVariant(visualElement, definition, custom) {
    const props = visualElement.getProps();
    return resolveVariantFromProps(props, definition, custom !== void 0 ? custom : props.custom, visualElement);
  }

  // packages/components/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs
  var variantPriorityOrder = [
    "animate",
    "whileInView",
    "whileFocus",
    "whileHover",
    "whileTap",
    "whileDrag",
    "exit"
  ];
  var variantProps = ["initial", ...variantPriorityOrder];

  // packages/components/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs
  var transformPropOrder = [
    "transformPerspective",
    "x",
    "y",
    "z",
    "translateX",
    "translateY",
    "translateZ",
    "scale",
    "scaleX",
    "scaleY",
    "rotate",
    "rotateX",
    "rotateY",
    "rotateZ",
    "skew",
    "skewX",
    "skewY"
  ];
  var transformProps = new Set(transformPropOrder);

  // packages/components/node_modules/framer-motion/dist/es/utils/time-conversion.mjs
  var secondsToMilliseconds = (seconds) => seconds * 1e3;
  var millisecondsToSeconds = (milliseconds) => milliseconds / 1e3;

  // packages/components/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs
  var underDampedSpring = {
    type: "spring",
    stiffness: 500,
    damping: 25,
    restSpeed: 10
  };
  var criticallyDampedSpring = (target) => ({
    type: "spring",
    stiffness: 550,
    damping: target === 0 ? 2 * Math.sqrt(550) : 30,
    restSpeed: 10
  });
  var keyframesTransition = {
    type: "keyframes",
    duration: 0.8
  };
  var ease = {
    type: "keyframes",
    ease: [0.25, 0.1, 0.35, 1],
    duration: 0.3
  };
  var getDefaultTransition = (valueKey, { keyframes: keyframes4 }) => {
    if (keyframes4.length > 2) {
      return keyframesTransition;
    } else if (transformProps.has(valueKey)) {
      return valueKey.startsWith("scale") ? criticallyDampedSpring(keyframes4[1]) : underDampedSpring;
    }
    return ease;
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs
  function getValueTransition(transition, key) {
    return transition ? transition[key] || transition["default"] || transition : void 0;
  }

  // packages/components/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs
  var MotionGlobalConfig = {
    skipAnimations: false,
    useManualTiming: false
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs
  var instantAnimationState = {
    current: false
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs
  var isNotNull = (value) => value !== null;
  function getFinalKeyframe(keyframes4, { repeat, repeatType = "loop" }, finalKeyframe) {
    const resolvedKeyframes = keyframes4.filter(isNotNull);
    const index2 = repeat && repeatType !== "loop" && repeat % 2 === 1 ? 0 : resolvedKeyframes.length - 1;
    return !index2 || finalKeyframe === void 0 ? resolvedKeyframes[index2] : finalKeyframe;
  }

  // node_modules/motion-utils/dist/es/noop.mjs
  var noop2 = (any) => any;

  // node_modules/motion-utils/dist/es/errors.mjs
  var warning = noop2;
  var invariant2 = noop2;
  if (true) {
    warning = (check, message2) => {
      if (!check && typeof console !== "undefined") {
        console.warn(message2);
      }
    };
    invariant2 = (check, message2) => {
      if (!check) {
        throw new Error(message2);
      }
    };
  }

  // packages/components/node_modules/framer-motion/dist/es/frameloop/render-step.mjs
  function createRenderStep(runNextFrame) {
    let thisFrame = /* @__PURE__ */ new Set();
    let nextFrame = /* @__PURE__ */ new Set();
    let isProcessing = false;
    let flushNextFrame = false;
    const toKeepAlive = /* @__PURE__ */ new WeakSet();
    let latestFrameData = {
      delta: 0,
      timestamp: 0,
      isProcessing: false
    };
    function triggerCallback(callback) {
      if (toKeepAlive.has(callback)) {
        step.schedule(callback);
        runNextFrame();
      }
      callback(latestFrameData);
    }
    const step = {
      /**
       * Schedule a process to run on the next frame.
       */
      schedule: (callback, keepAlive = false, immediate = false) => {
        const addToCurrentFrame = immediate && isProcessing;
        const queue = addToCurrentFrame ? thisFrame : nextFrame;
        if (keepAlive)
          toKeepAlive.add(callback);
        if (!queue.has(callback))
          queue.add(callback);
        return callback;
      },
      /**
       * Cancel the provided callback from running on the next frame.
       */
      cancel: (callback) => {
        nextFrame.delete(callback);
        toKeepAlive.delete(callback);
      },
      /**
       * Execute all schedule callbacks.
       */
      process: (frameData2) => {
        latestFrameData = frameData2;
        if (isProcessing) {
          flushNextFrame = true;
          return;
        }
        isProcessing = true;
        [thisFrame, nextFrame] = [nextFrame, thisFrame];
        thisFrame.forEach(triggerCallback);
        thisFrame.clear();
        isProcessing = false;
        if (flushNextFrame) {
          flushNextFrame = false;
          step.process(frameData2);
        }
      }
    };
    return step;
  }

  // packages/components/node_modules/framer-motion/dist/es/frameloop/batcher.mjs
  var stepsOrder = [
    "read",
    // Read
    "resolveKeyframes",
    // Write/Read/Write/Read
    "update",
    // Compute
    "preRender",
    // Compute
    "render",
    // Write
    "postRender"
    // Compute
  ];
  var maxElapsed = 40;
  function createRenderBatcher(scheduleNextBatch, allowKeepAlive) {
    let runNextFrame = false;
    let useDefaultElapsed = true;
    const state = {
      delta: 0,
      timestamp: 0,
      isProcessing: false
    };
    const flagRunNextFrame = () => runNextFrame = true;
    const steps = stepsOrder.reduce((acc, key) => {
      acc[key] = createRenderStep(flagRunNextFrame);
      return acc;
    }, {});
    const { read, resolveKeyframes, update, preRender, render, postRender } = steps;
    const processBatch = () => {
      const timestamp = MotionGlobalConfig.useManualTiming ? state.timestamp : performance.now();
      runNextFrame = false;
      state.delta = useDefaultElapsed ? 1e3 / 60 : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);
      state.timestamp = timestamp;
      state.isProcessing = true;
      read.process(state);
      resolveKeyframes.process(state);
      update.process(state);
      preRender.process(state);
      render.process(state);
      postRender.process(state);
      state.isProcessing = false;
      if (runNextFrame && allowKeepAlive) {
        useDefaultElapsed = false;
        scheduleNextBatch(processBatch);
      }
    };
    const wake = () => {
      runNextFrame = true;
      useDefaultElapsed = true;
      if (!state.isProcessing) {
        scheduleNextBatch(processBatch);
      }
    };
    const schedule = stepsOrder.reduce((acc, key) => {
      const step = steps[key];
      acc[key] = (process2, keepAlive = false, immediate = false) => {
        if (!runNextFrame)
          wake();
        return step.schedule(process2, keepAlive, immediate);
      };
      return acc;
    }, {});
    const cancel = (process2) => {
      for (let i3 = 0; i3 < stepsOrder.length; i3++) {
        steps[stepsOrder[i3]].cancel(process2);
      }
    };
    return { schedule, cancel, state, steps };
  }

  // packages/components/node_modules/framer-motion/dist/es/frameloop/frame.mjs
  var { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps } = createRenderBatcher(typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : noop2, true);

  // packages/components/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs
  var calcBezier = (t4, a1, a22) => (((1 - 3 * a22 + 3 * a1) * t4 + (3 * a22 - 6 * a1)) * t4 + 3 * a1) * t4;
  var subdivisionPrecision = 1e-7;
  var subdivisionMaxIterations = 12;
  function binarySubdivide(x2, lowerBound, upperBound, mX1, mX2) {
    let currentX;
    let currentT;
    let i3 = 0;
    do {
      currentT = lowerBound + (upperBound - lowerBound) / 2;
      currentX = calcBezier(currentT, mX1, mX2) - x2;
      if (currentX > 0) {
        upperBound = currentT;
      } else {
        lowerBound = currentT;
      }
    } while (Math.abs(currentX) > subdivisionPrecision && ++i3 < subdivisionMaxIterations);
    return currentT;
  }
  function cubicBezier(mX1, mY1, mX2, mY2) {
    if (mX1 === mY1 && mX2 === mY2)
      return noop2;
    const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);
    return (t4) => t4 === 0 || t4 === 1 ? t4 : calcBezier(getTForX(t4), mY1, mY2);
  }

  // packages/components/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs
  var mirrorEasing = (easing) => (p3) => p3 <= 0.5 ? easing(2 * p3) / 2 : (2 - easing(2 * (1 - p3))) / 2;

  // packages/components/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs
  var reverseEasing = (easing) => (p3) => 1 - easing(1 - p3);

  // packages/components/node_modules/framer-motion/dist/es/easing/back.mjs
  var backOut = /* @__PURE__ */ cubicBezier(0.33, 1.53, 0.69, 0.99);
  var backIn = /* @__PURE__ */ reverseEasing(backOut);
  var backInOut = /* @__PURE__ */ mirrorEasing(backIn);

  // packages/components/node_modules/framer-motion/dist/es/easing/anticipate.mjs
  var anticipate = (p3) => (p3 *= 2) < 1 ? 0.5 * backIn(p3) : 0.5 * (2 - Math.pow(2, -10 * (p3 - 1)));

  // packages/components/node_modules/framer-motion/dist/es/easing/circ.mjs
  var circIn = (p3) => 1 - Math.sin(Math.acos(p3));
  var circOut = reverseEasing(circIn);
  var circInOut = mirrorEasing(circIn);

  // packages/components/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs
  var isZeroValueString = (v3) => /^0[^.\s]+$/u.test(v3);

  // packages/components/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs
  function isNone(value) {
    if (typeof value === "number") {
      return value === 0;
    } else if (value !== null) {
      return value === "none" || value === "0" || isZeroValueString(value);
    } else {
      return true;
    }
  }

  // packages/components/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs
  var isNumericalString = (v3) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(v3);

  // packages/components/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs
  var checkStringStartsWith = (token2) => (key) => typeof key === "string" && key.startsWith(token2);
  var isCSSVariableName = /* @__PURE__ */ checkStringStartsWith("--");
  var startsAsVariableToken = /* @__PURE__ */ checkStringStartsWith("var(--");
  var isCSSVariableToken = (value) => {
    const startsWithToken = startsAsVariableToken(value);
    if (!startsWithToken)
      return false;
    return singleCssVariableRegex.test(value.split("/*")[0].trim());
  };
  var singleCssVariableRegex = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;

  // packages/components/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs
  var splitCSSVariableRegex = (
    // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words
    /^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u
  );
  function parseCSSVariable(current) {
    const match4 = splitCSSVariableRegex.exec(current);
    if (!match4)
      return [,];
    const [, token1, token2, fallback] = match4;
    return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];
  }
  var maxDepth = 4;
  function getVariableValue(current, element, depth = 1) {
    invariant2(depth <= maxDepth, `Max CSS variable fallback depth detected in property "${current}". This may indicate a circular fallback dependency.`);
    const [token2, fallback] = parseCSSVariable(current);
    if (!token2)
      return;
    const resolved = window.getComputedStyle(element).getPropertyValue(token2);
    if (resolved) {
      const trimmed = resolved.trim();
      return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;
    }
    return isCSSVariableToken(fallback) ? getVariableValue(fallback, element, depth + 1) : fallback;
  }

  // packages/components/node_modules/framer-motion/dist/es/utils/clamp.mjs
  var clamp2 = (min3, max3, v3) => {
    if (v3 > max3)
      return max3;
    if (v3 < min3)
      return min3;
    return v3;
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs
  var number = {
    test: (v3) => typeof v3 === "number",
    parse: parseFloat,
    transform: (v3) => v3
  };
  var alpha = {
    ...number,
    transform: (v3) => clamp2(0, 1, v3)
  };
  var scale = {
    ...number,
    default: 1
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs
  var createUnitType = (unit) => ({
    test: (v3) => typeof v3 === "string" && v3.endsWith(unit) && v3.split(" ").length === 1,
    parse: parseFloat,
    transform: (v3) => `${v3}${unit}`
  });
  var degrees = /* @__PURE__ */ createUnitType("deg");
  var percent = /* @__PURE__ */ createUnitType("%");
  var px = /* @__PURE__ */ createUnitType("px");
  var vh = /* @__PURE__ */ createUnitType("vh");
  var vw = /* @__PURE__ */ createUnitType("vw");
  var progressPercentage = {
    ...percent,
    parse: (v3) => percent.parse(v3) / 100,
    transform: (v3) => percent.transform(v3 * 100)
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs
  var positionalKeys = /* @__PURE__ */ new Set([
    "width",
    "height",
    "top",
    "left",
    "right",
    "bottom",
    "x",
    "y",
    "translateX",
    "translateY"
  ]);
  var isNumOrPxType = (v3) => v3 === number || v3 === px;
  var getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(", ")[pos]);
  var getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {
    if (transform === "none" || !transform)
      return 0;
    const matrix3d = transform.match(/^matrix3d\((.+)\)$/u);
    if (matrix3d) {
      return getPosFromMatrix(matrix3d[1], pos3);
    } else {
      const matrix = transform.match(/^matrix\((.+)\)$/u);
      if (matrix) {
        return getPosFromMatrix(matrix[1], pos2);
      } else {
        return 0;
      }
    }
  };
  var transformKeys = /* @__PURE__ */ new Set(["x", "y", "z"]);
  var nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));
  function removeNonTranslationalTransform(visualElement) {
    const removedTransforms = [];
    nonTranslationalTransformKeys.forEach((key) => {
      const value = visualElement.getValue(key);
      if (value !== void 0) {
        removedTransforms.push([key, value.get()]);
        value.set(key.startsWith("scale") ? 1 : 0);
      }
    });
    return removedTransforms;
  }
  var positionalValues = {
    // Dimensions
    width: ({ x: x2 }, { paddingLeft = "0", paddingRight = "0" }) => x2.max - x2.min - parseFloat(paddingLeft) - parseFloat(paddingRight),
    height: ({ y: y3 }, { paddingTop = "0", paddingBottom = "0" }) => y3.max - y3.min - parseFloat(paddingTop) - parseFloat(paddingBottom),
    top: (_bbox, { top }) => parseFloat(top),
    left: (_bbox, { left }) => parseFloat(left),
    bottom: ({ y: y3 }, { top }) => parseFloat(top) + (y3.max - y3.min),
    right: ({ x: x2 }, { left }) => parseFloat(left) + (x2.max - x2.min),
    // Transform
    x: getTranslateFromMatrix(4, 13),
    y: getTranslateFromMatrix(5, 14)
  };
  positionalValues.translateX = positionalValues.x;
  positionalValues.translateY = positionalValues.y;

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs
  var testValueType = (v3) => (type) => type.test(v3);

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs
  var auto = {
    test: (v3) => v3 === "auto",
    parse: (v3) => v3
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs
  var dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];
  var findDimensionValueType = (v3) => dimensionValueTypes.find(testValueType(v3));

  // packages/components/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs
  var toResolve = /* @__PURE__ */ new Set();
  var isScheduled = false;
  var anyNeedsMeasurement = false;
  function measureAllKeyframes() {
    if (anyNeedsMeasurement) {
      const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);
      const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));
      const transformsToRestore = /* @__PURE__ */ new Map();
      elementsToMeasure.forEach((element) => {
        const removedTransforms = removeNonTranslationalTransform(element);
        if (!removedTransforms.length)
          return;
        transformsToRestore.set(element, removedTransforms);
        element.render();
      });
      resolversToMeasure.forEach((resolver) => resolver.measureInitialState());
      elementsToMeasure.forEach((element) => {
        element.render();
        const restore = transformsToRestore.get(element);
        if (restore) {
          restore.forEach(([key, value]) => {
            var _a;
            (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);
          });
        }
      });
      resolversToMeasure.forEach((resolver) => resolver.measureEndState());
      resolversToMeasure.forEach((resolver) => {
        if (resolver.suspendedScrollY !== void 0) {
          window.scrollTo(0, resolver.suspendedScrollY);
        }
      });
    }
    anyNeedsMeasurement = false;
    isScheduled = false;
    toResolve.forEach((resolver) => resolver.complete());
    toResolve.clear();
  }
  function readAllKeyframes() {
    toResolve.forEach((resolver) => {
      resolver.readKeyframes();
      if (resolver.needsMeasurement) {
        anyNeedsMeasurement = true;
      }
    });
  }
  function flushKeyframeResolvers() {
    readAllKeyframes();
    measureAllKeyframes();
  }
  var KeyframeResolver = class {
    constructor(unresolvedKeyframes, onComplete, name, motionValue2, element, isAsync = false) {
      this.isComplete = false;
      this.isAsync = false;
      this.needsMeasurement = false;
      this.isScheduled = false;
      this.unresolvedKeyframes = [...unresolvedKeyframes];
      this.onComplete = onComplete;
      this.name = name;
      this.motionValue = motionValue2;
      this.element = element;
      this.isAsync = isAsync;
    }
    scheduleResolve() {
      this.isScheduled = true;
      if (this.isAsync) {
        toResolve.add(this);
        if (!isScheduled) {
          isScheduled = true;
          frame.read(readAllKeyframes);
          frame.resolveKeyframes(measureAllKeyframes);
        }
      } else {
        this.readKeyframes();
        this.complete();
      }
    }
    readKeyframes() {
      const { unresolvedKeyframes, name, element, motionValue: motionValue2 } = this;
      for (let i3 = 0; i3 < unresolvedKeyframes.length; i3++) {
        if (unresolvedKeyframes[i3] === null) {
          if (i3 === 0) {
            const currentValue = motionValue2 === null || motionValue2 === void 0 ? void 0 : motionValue2.get();
            const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
            if (currentValue !== void 0) {
              unresolvedKeyframes[0] = currentValue;
            } else if (element && name) {
              const valueAsRead = element.readValue(name, finalKeyframe);
              if (valueAsRead !== void 0 && valueAsRead !== null) {
                unresolvedKeyframes[0] = valueAsRead;
              }
            }
            if (unresolvedKeyframes[0] === void 0) {
              unresolvedKeyframes[0] = finalKeyframe;
            }
            if (motionValue2 && currentValue === void 0) {
              motionValue2.set(unresolvedKeyframes[0]);
            }
          } else {
            unresolvedKeyframes[i3] = unresolvedKeyframes[i3 - 1];
          }
        }
      }
    }
    setFinalKeyframe() {
    }
    measureInitialState() {
    }
    renderEndStyles() {
    }
    measureEndState() {
    }
    complete() {
      this.isComplete = true;
      this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);
      toResolve.delete(this);
    }
    cancel() {
      if (!this.isComplete) {
        this.isScheduled = false;
        toResolve.delete(this);
      }
    }
    resume() {
      if (!this.isComplete)
        this.scheduleResolve();
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs
  var sanitize = (v3) => Math.round(v3 * 1e5) / 1e5;

  // packages/components/node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs
  var floatRegex = /-?(?:\d+(?:\.\d+)?|\.\d+)/gu;

  // packages/components/node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs
  function isNullish(v3) {
    return v3 == null;
  }

  // packages/components/node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs
  var singleColorRegex = /^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu;

  // packages/components/node_modules/framer-motion/dist/es/value/types/color/utils.mjs
  var isColorString = (type, testProp) => (v3) => {
    return Boolean(typeof v3 === "string" && singleColorRegex.test(v3) && v3.startsWith(type) || testProp && !isNullish(v3) && Object.prototype.hasOwnProperty.call(v3, testProp));
  };
  var splitColor = (aName, bName, cName) => (v3) => {
    if (typeof v3 !== "string")
      return v3;
    const [a3, b3, c3, alpha2] = v3.match(floatRegex);
    return {
      [aName]: parseFloat(a3),
      [bName]: parseFloat(b3),
      [cName]: parseFloat(c3),
      alpha: alpha2 !== void 0 ? parseFloat(alpha2) : 1
    };
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs
  var clampRgbUnit = (v3) => clamp2(0, 255, v3);
  var rgbUnit = {
    ...number,
    transform: (v3) => Math.round(clampRgbUnit(v3))
  };
  var rgba = {
    test: /* @__PURE__ */ isColorString("rgb", "red"),
    parse: /* @__PURE__ */ splitColor("red", "green", "blue"),
    transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => "rgba(" + rgbUnit.transform(red) + ", " + rgbUnit.transform(green) + ", " + rgbUnit.transform(blue) + ", " + sanitize(alpha.transform(alpha$1)) + ")"
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/color/hex.mjs
  function parseHex(v3) {
    let r4 = "";
    let g3 = "";
    let b3 = "";
    let a3 = "";
    if (v3.length > 5) {
      r4 = v3.substring(1, 3);
      g3 = v3.substring(3, 5);
      b3 = v3.substring(5, 7);
      a3 = v3.substring(7, 9);
    } else {
      r4 = v3.substring(1, 2);
      g3 = v3.substring(2, 3);
      b3 = v3.substring(3, 4);
      a3 = v3.substring(4, 5);
      r4 += r4;
      g3 += g3;
      b3 += b3;
      a3 += a3;
    }
    return {
      red: parseInt(r4, 16),
      green: parseInt(g3, 16),
      blue: parseInt(b3, 16),
      alpha: a3 ? parseInt(a3, 16) / 255 : 1
    };
  }
  var hex = {
    test: /* @__PURE__ */ isColorString("#"),
    parse: parseHex,
    transform: rgba.transform
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs
  var hsla = {
    test: /* @__PURE__ */ isColorString("hsl", "hue"),
    parse: /* @__PURE__ */ splitColor("hue", "saturation", "lightness"),
    transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {
      return "hsla(" + Math.round(hue) + ", " + percent.transform(sanitize(saturation)) + ", " + percent.transform(sanitize(lightness)) + ", " + sanitize(alpha.transform(alpha$1)) + ")";
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/color/index.mjs
  var color = {
    test: (v3) => rgba.test(v3) || hex.test(v3) || hsla.test(v3),
    parse: (v3) => {
      if (rgba.test(v3)) {
        return rgba.parse(v3);
      } else if (hsla.test(v3)) {
        return hsla.parse(v3);
      } else {
        return hex.parse(v3);
      }
    },
    transform: (v3) => {
      return typeof v3 === "string" ? v3 : v3.hasOwnProperty("red") ? rgba.transform(v3) : hsla.transform(v3);
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs
  var colorRegex = /(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;

  // packages/components/node_modules/framer-motion/dist/es/value/types/complex/index.mjs
  function test(v3) {
    var _a, _b;
    return isNaN(v3) && typeof v3 === "string" && (((_a = v3.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) + (((_b = v3.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0;
  }
  var NUMBER_TOKEN = "number";
  var COLOR_TOKEN = "color";
  var VAR_TOKEN = "var";
  var VAR_FUNCTION_TOKEN = "var(";
  var SPLIT_TOKEN = "${}";
  var complexRegex = /var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;
  function analyseComplexValue(value) {
    const originalValue = value.toString();
    const values = [];
    const indexes = {
      color: [],
      number: [],
      var: []
    };
    const types = [];
    let i3 = 0;
    const tokenised = originalValue.replace(complexRegex, (parsedValue) => {
      if (color.test(parsedValue)) {
        indexes.color.push(i3);
        types.push(COLOR_TOKEN);
        values.push(color.parse(parsedValue));
      } else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {
        indexes.var.push(i3);
        types.push(VAR_TOKEN);
        values.push(parsedValue);
      } else {
        indexes.number.push(i3);
        types.push(NUMBER_TOKEN);
        values.push(parseFloat(parsedValue));
      }
      ++i3;
      return SPLIT_TOKEN;
    });
    const split = tokenised.split(SPLIT_TOKEN);
    return { values, split, indexes, types };
  }
  function parseComplexValue(v3) {
    return analyseComplexValue(v3).values;
  }
  function createTransformer(source) {
    const { split, types } = analyseComplexValue(source);
    const numSections = split.length;
    return (v3) => {
      let output = "";
      for (let i3 = 0; i3 < numSections; i3++) {
        output += split[i3];
        if (v3[i3] !== void 0) {
          const type = types[i3];
          if (type === NUMBER_TOKEN) {
            output += sanitize(v3[i3]);
          } else if (type === COLOR_TOKEN) {
            output += color.transform(v3[i3]);
          } else {
            output += v3[i3];
          }
        }
      }
      return output;
    };
  }
  var convertNumbersToZero = (v3) => typeof v3 === "number" ? 0 : v3;
  function getAnimatableNone(v3) {
    const parsed = parseComplexValue(v3);
    const transformer = createTransformer(v3);
    return transformer(parsed.map(convertNumbersToZero));
  }
  var complex = {
    test,
    parse: parseComplexValue,
    createTransformer,
    getAnimatableNone
  };

  // packages/components/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs
  var maxDefaults = /* @__PURE__ */ new Set(["brightness", "contrast", "saturate", "opacity"]);
  function applyDefaultFilter(v3) {
    const [name, value] = v3.slice(0, -1).split("(");
    if (name === "drop-shadow")
      return v3;
    const [number2] = value.match(floatRegex) || [];
    if (!number2)
      return v3;
    const unit = value.replace(number2, "");
    let defaultValue2 = maxDefaults.has(name) ? 1 : 0;
    if (number2 !== value)
      defaultValue2 *= 100;
    return name + "(" + defaultValue2 + unit + ")";
  }
  var functionRegex = /\b([a-z-]*)\(.*?\)/gu;
  var filter = {
    ...complex,
    getAnimatableNone: (v3) => {
      const functions = v3.match(functionRegex);
      return functions ? functions.map(applyDefaultFilter).join(" ") : v3;
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs
  var browserNumberValueTypes = {
    // Border props
    borderWidth: px,
    borderTopWidth: px,
    borderRightWidth: px,
    borderBottomWidth: px,
    borderLeftWidth: px,
    borderRadius: px,
    radius: px,
    borderTopLeftRadius: px,
    borderTopRightRadius: px,
    borderBottomRightRadius: px,
    borderBottomLeftRadius: px,
    // Positioning props
    width: px,
    maxWidth: px,
    height: px,
    maxHeight: px,
    top: px,
    right: px,
    bottom: px,
    left: px,
    // Spacing props
    padding: px,
    paddingTop: px,
    paddingRight: px,
    paddingBottom: px,
    paddingLeft: px,
    margin: px,
    marginTop: px,
    marginRight: px,
    marginBottom: px,
    marginLeft: px,
    // Misc
    backgroundPositionX: px,
    backgroundPositionY: px
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs
  var transformValueTypes = {
    rotate: degrees,
    rotateX: degrees,
    rotateY: degrees,
    rotateZ: degrees,
    scale,
    scaleX: scale,
    scaleY: scale,
    scaleZ: scale,
    skew: degrees,
    skewX: degrees,
    skewY: degrees,
    distance: px,
    translateX: px,
    translateY: px,
    translateZ: px,
    x: px,
    y: px,
    z: px,
    perspective: px,
    transformPerspective: px,
    opacity: alpha,
    originX: progressPercentage,
    originY: progressPercentage,
    originZ: px
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs
  var int = {
    ...number,
    transform: Math.round
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs
  var numberValueTypes = {
    ...browserNumberValueTypes,
    ...transformValueTypes,
    zIndex: int,
    size: px,
    // SVG
    fillOpacity: alpha,
    strokeOpacity: alpha,
    numOctaves: int
  };

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs
  var defaultValueTypes = {
    ...numberValueTypes,
    // Color props
    color,
    backgroundColor: color,
    outlineColor: color,
    fill: color,
    stroke: color,
    // Border props
    borderColor: color,
    borderTopColor: color,
    borderRightColor: color,
    borderBottomColor: color,
    borderLeftColor: color,
    filter,
    WebkitFilter: filter
  };
  var getDefaultValueType = (key) => defaultValueTypes[key];

  // packages/components/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs
  function getAnimatableNone2(key, value) {
    let defaultValueType = getDefaultValueType(key);
    if (defaultValueType !== filter)
      defaultValueType = complex;
    return defaultValueType.getAnimatableNone ? defaultValueType.getAnimatableNone(value) : void 0;
  }

  // packages/components/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs
  var invalidTemplates = /* @__PURE__ */ new Set(["auto", "none", "0"]);
  function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {
    let i3 = 0;
    let animatableTemplate = void 0;
    while (i3 < unresolvedKeyframes.length && !animatableTemplate) {
      const keyframe = unresolvedKeyframes[i3];
      if (typeof keyframe === "string" && !invalidTemplates.has(keyframe) && analyseComplexValue(keyframe).values.length) {
        animatableTemplate = unresolvedKeyframes[i3];
      }
      i3++;
    }
    if (animatableTemplate && name) {
      for (const noneIndex of noneKeyframeIndexes) {
        unresolvedKeyframes[noneIndex] = getAnimatableNone2(name, animatableTemplate);
      }
    }
  }

  // packages/components/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs
  var DOMKeyframesResolver = class extends KeyframeResolver {
    constructor(unresolvedKeyframes, onComplete, name, motionValue2, element) {
      super(unresolvedKeyframes, onComplete, name, motionValue2, element, true);
    }
    readKeyframes() {
      const { unresolvedKeyframes, element, name } = this;
      if (!element || !element.current)
        return;
      super.readKeyframes();
      for (let i3 = 0; i3 < unresolvedKeyframes.length; i3++) {
        let keyframe = unresolvedKeyframes[i3];
        if (typeof keyframe === "string") {
          keyframe = keyframe.trim();
          if (isCSSVariableToken(keyframe)) {
            const resolved = getVariableValue(keyframe, element.current);
            if (resolved !== void 0) {
              unresolvedKeyframes[i3] = resolved;
            }
            if (i3 === unresolvedKeyframes.length - 1) {
              this.finalKeyframe = keyframe;
            }
          }
        }
      }
      this.resolveNoneKeyframes();
      if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {
        return;
      }
      const [origin, target] = unresolvedKeyframes;
      const originType = findDimensionValueType(origin);
      const targetType = findDimensionValueType(target);
      if (originType === targetType)
        return;
      if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {
        for (let i3 = 0; i3 < unresolvedKeyframes.length; i3++) {
          const value = unresolvedKeyframes[i3];
          if (typeof value === "string") {
            unresolvedKeyframes[i3] = parseFloat(value);
          }
        }
      } else {
        this.needsMeasurement = true;
      }
    }
    resolveNoneKeyframes() {
      const { unresolvedKeyframes, name } = this;
      const noneKeyframeIndexes = [];
      for (let i3 = 0; i3 < unresolvedKeyframes.length; i3++) {
        if (isNone(unresolvedKeyframes[i3])) {
          noneKeyframeIndexes.push(i3);
        }
      }
      if (noneKeyframeIndexes.length) {
        makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);
      }
    }
    measureInitialState() {
      const { element, unresolvedKeyframes, name } = this;
      if (!element || !element.current)
        return;
      if (name === "height") {
        this.suspendedScrollY = window.pageYOffset;
      }
      this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));
      unresolvedKeyframes[0] = this.measuredOrigin;
      const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
      if (measureKeyframe !== void 0) {
        element.getValue(name, measureKeyframe).jump(measureKeyframe, false);
      }
    }
    measureEndState() {
      var _a;
      const { element, name, unresolvedKeyframes } = this;
      if (!element || !element.current)
        return;
      const value = element.getValue(name);
      value && value.jump(this.measuredOrigin, false);
      const finalKeyframeIndex = unresolvedKeyframes.length - 1;
      const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];
      unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));
      if (finalKeyframe !== null && this.finalKeyframe === void 0) {
        this.finalKeyframe = finalKeyframe;
      }
      if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {
        this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {
          element.getValue(unsetTransformName).set(unsetTransformValue);
        });
      }
      this.resolveNoneKeyframes();
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs
  function isGenerator(type) {
    return typeof type === "function";
  }

  // packages/components/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs
  var now;
  function clearTime() {
    now = void 0;
  }
  var time = {
    now: () => {
      if (now === void 0) {
        time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now());
      }
      return now;
    },
    set: (newTime) => {
      now = newTime;
      queueMicrotask(clearTime);
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs
  var isAnimatable = (value, name) => {
    if (name === "zIndex")
      return false;
    if (typeof value === "number" || Array.isArray(value))
      return true;
    if (typeof value === "string" && // It's animatable if we have a string
    (complex.test(value) || value === "0") && // And it contains numbers and/or colors
    !value.startsWith("url(")) {
      return true;
    }
    return false;
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs
  function hasKeyframesChanged(keyframes4) {
    const current = keyframes4[0];
    if (keyframes4.length === 1)
      return true;
    for (let i3 = 0; i3 < keyframes4.length; i3++) {
      if (keyframes4[i3] !== current)
        return true;
    }
  }
  function canAnimate(keyframes4, name, type, velocity) {
    const originKeyframe = keyframes4[0];
    if (originKeyframe === null)
      return false;
    if (name === "display" || name === "visibility")
      return true;
    const targetKeyframe = keyframes4[keyframes4.length - 1];
    const isOriginAnimatable = isAnimatable(originKeyframe, name);
    const isTargetAnimatable = isAnimatable(targetKeyframe, name);
    warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from "${originKeyframe}" to "${targetKeyframe}". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \`style\` property.`);
    if (!isOriginAnimatable || !isTargetAnimatable) {
      return false;
    }
    return hasKeyframesChanged(keyframes4) || (type === "spring" || isGenerator(type)) && velocity;
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs
  var MAX_RESOLVE_DELAY = 40;
  var BaseAnimation = class {
    constructor({ autoplay = true, delay: delay2 = 0, type = "keyframes", repeat = 0, repeatDelay = 0, repeatType = "loop", ...options2 }) {
      this.isStopped = false;
      this.hasAttemptedResolve = false;
      this.createdAt = time.now();
      this.options = {
        autoplay,
        delay: delay2,
        type,
        repeat,
        repeatDelay,
        repeatType,
        ...options2
      };
      this.updateFinishedPromise();
    }
    /**
     * This method uses the createdAt and resolvedAt to calculate the
     * animation startTime. *Ideally*, we would use the createdAt time as t=0
     * as the following frame would then be the first frame of the animation in
     * progress, which would feel snappier.
     *
     * However, if there's a delay (main thread work) between the creation of
     * the animation and the first commited frame, we prefer to use resolvedAt
     * to avoid a sudden jump into the animation.
     */
    calcStartTime() {
      if (!this.resolvedAt)
        return this.createdAt;
      return this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY ? this.resolvedAt : this.createdAt;
    }
    /**
     * A getter for resolved data. If keyframes are not yet resolved, accessing
     * this.resolved will synchronously flush all pending keyframe resolvers.
     * This is a deoptimisation, but at its worst still batches read/writes.
     */
    get resolved() {
      if (!this._resolved && !this.hasAttemptedResolve) {
        flushKeyframeResolvers();
      }
      return this._resolved;
    }
    /**
     * A method to be called when the keyframes resolver completes. This method
     * will check if its possible to run the animation and, if not, skip it.
     * Otherwise, it will call initPlayback on the implementing class.
     */
    onKeyframesResolved(keyframes4, finalKeyframe) {
      this.resolvedAt = time.now();
      this.hasAttemptedResolve = true;
      const { name, type, velocity, delay: delay2, onComplete, onUpdate, isGenerator: isGenerator2 } = this.options;
      if (!isGenerator2 && !canAnimate(keyframes4, name, type, velocity)) {
        if (instantAnimationState.current || !delay2) {
          onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes4, this.options, finalKeyframe));
          onComplete === null || onComplete === void 0 ? void 0 : onComplete();
          this.resolveFinishedPromise();
          return;
        } else {
          this.options.duration = 0;
        }
      }
      const resolvedAnimation = this.initPlayback(keyframes4, finalKeyframe);
      if (resolvedAnimation === false)
        return;
      this._resolved = {
        keyframes: keyframes4,
        finalKeyframe,
        ...resolvedAnimation
      };
      this.onPostResolved();
    }
    onPostResolved() {
    }
    /**
     * Allows the returned animation to be awaited or promise-chained. Currently
     * resolves when the animation finishes at all but in a future update could/should
     * reject if its cancels.
     */
    then(resolve, reject) {
      return this.currentFinishedPromise.then(resolve, reject);
    }
    flatten() {
      this.options.type = "keyframes";
      this.options.ease = "linear";
    }
    updateFinishedPromise() {
      this.currentFinishedPromise = new Promise((resolve) => {
        this.resolveFinishedPromise = resolve;
      });
    }
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/progress.mjs
  var progress = (from2, to, value) => {
    const toFromDifference = to - from2;
    return toFromDifference === 0 ? 1 : (value - from2) / toFromDifference;
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs
  var generateLinearEasing = (easing, duration, resolution = 10) => {
    let points = "";
    const numPoints = Math.max(Math.round(duration / resolution), 2);
    for (let i3 = 0; i3 < numPoints; i3++) {
      points += easing(progress(0, numPoints - 1, i3)) + ", ";
    }
    return `linear(${points.substring(0, points.length - 2)})`;
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs
  function velocityPerSecond(velocity, frameDuration) {
    return frameDuration ? velocity * (1e3 / frameDuration) : 0;
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs
  var velocitySampleDuration = 5;
  function calcGeneratorVelocity(resolveValue, t4, current) {
    const prevT = Math.max(t4 - velocitySampleDuration, 0);
    return velocityPerSecond(current - resolveValue(prevT), t4 - prevT);
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/spring/defaults.mjs
  var springDefaults = {
    // Default spring physics
    stiffness: 100,
    damping: 10,
    mass: 1,
    velocity: 0,
    // Default duration/bounce-based options
    duration: 800,
    // in ms
    bounce: 0.3,
    visualDuration: 0.3,
    // in seconds
    // Rest thresholds
    restSpeed: {
      granular: 0.01,
      default: 2
    },
    restDelta: {
      granular: 5e-3,
      default: 0.5
    },
    // Limits
    minDuration: 0.01,
    // in seconds
    maxDuration: 10,
    // in seconds
    minDamping: 0.05,
    maxDamping: 1
  };

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs
  var safeMin = 1e-3;
  function findSpring({ duration = springDefaults.duration, bounce = springDefaults.bounce, velocity = springDefaults.velocity, mass = springDefaults.mass }) {
    let envelope;
    let derivative;
    warning(duration <= secondsToMilliseconds(springDefaults.maxDuration), "Spring duration must be 10 seconds or less");
    let dampingRatio = 1 - bounce;
    dampingRatio = clamp2(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio);
    duration = clamp2(springDefaults.minDuration, springDefaults.maxDuration, millisecondsToSeconds(duration));
    if (dampingRatio < 1) {
      envelope = (undampedFreq2) => {
        const exponentialDecay = undampedFreq2 * dampingRatio;
        const delta = exponentialDecay * duration;
        const a3 = exponentialDecay - velocity;
        const b3 = calcAngularFreq(undampedFreq2, dampingRatio);
        const c3 = Math.exp(-delta);
        return safeMin - a3 / b3 * c3;
      };
      derivative = (undampedFreq2) => {
        const exponentialDecay = undampedFreq2 * dampingRatio;
        const delta = exponentialDecay * duration;
        const d3 = delta * velocity + velocity;
        const e3 = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq2, 2) * duration;
        const f3 = Math.exp(-delta);
        const g3 = calcAngularFreq(Math.pow(undampedFreq2, 2), dampingRatio);
        const factor = -envelope(undampedFreq2) + safeMin > 0 ? -1 : 1;
        return factor * ((d3 - e3) * f3) / g3;
      };
    } else {
      envelope = (undampedFreq2) => {
        const a3 = Math.exp(-undampedFreq2 * duration);
        const b3 = (undampedFreq2 - velocity) * duration + 1;
        return -safeMin + a3 * b3;
      };
      derivative = (undampedFreq2) => {
        const a3 = Math.exp(-undampedFreq2 * duration);
        const b3 = (velocity - undampedFreq2) * (duration * duration);
        return a3 * b3;
      };
    }
    const initialGuess = 5 / duration;
    const undampedFreq = approximateRoot(envelope, derivative, initialGuess);
    duration = secondsToMilliseconds(duration);
    if (isNaN(undampedFreq)) {
      return {
        stiffness: springDefaults.stiffness,
        damping: springDefaults.damping,
        duration
      };
    } else {
      const stiffness = Math.pow(undampedFreq, 2) * mass;
      return {
        stiffness,
        damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),
        duration
      };
    }
  }
  var rootIterations = 12;
  function approximateRoot(envelope, derivative, initialGuess) {
    let result = initialGuess;
    for (let i3 = 1; i3 < rootIterations; i3++) {
      result = result - envelope(result) / derivative(result);
    }
    return result;
  }
  function calcAngularFreq(undampedFreq, dampingRatio) {
    return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs
  var maxGeneratorDuration = 2e4;
  function calcGeneratorDuration(generator) {
    let duration = 0;
    const timeStep = 50;
    let state = generator.next(duration);
    while (!state.done && duration < maxGeneratorDuration) {
      duration += timeStep;
      state = generator.next(duration);
    }
    return duration >= maxGeneratorDuration ? Infinity : duration;
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs
  var durationKeys = ["duration", "bounce"];
  var physicsKeys = ["stiffness", "damping", "mass"];
  function isSpringType(options2, keys) {
    return keys.some((key) => options2[key] !== void 0);
  }
  function getSpringOptions(options2) {
    let springOptions = {
      velocity: springDefaults.velocity,
      stiffness: springDefaults.stiffness,
      damping: springDefaults.damping,
      mass: springDefaults.mass,
      isResolvedFromDuration: false,
      ...options2
    };
    if (!isSpringType(options2, physicsKeys) && isSpringType(options2, durationKeys)) {
      if (options2.visualDuration) {
        const visualDuration = options2.visualDuration;
        const root = 2 * Math.PI / (visualDuration * 1.2);
        const stiffness = root * root;
        const damping = 2 * clamp2(0.05, 1, 1 - options2.bounce) * Math.sqrt(stiffness);
        springOptions = {
          ...springOptions,
          mass: springDefaults.mass,
          stiffness,
          damping
        };
      } else {
        const derived = findSpring(options2);
        springOptions = {
          ...springOptions,
          ...derived,
          mass: springDefaults.mass
        };
        springOptions.isResolvedFromDuration = true;
      }
    }
    return springOptions;
  }
  function spring(optionsOrVisualDuration = springDefaults.visualDuration, bounce = springDefaults.bounce) {
    const options2 = typeof optionsOrVisualDuration !== "object" ? {
      visualDuration: optionsOrVisualDuration,
      keyframes: [0, 1],
      bounce
    } : optionsOrVisualDuration;
    let { restSpeed, restDelta } = options2;
    const origin = options2.keyframes[0];
    const target = options2.keyframes[options2.keyframes.length - 1];
    const state = { done: false, value: origin };
    const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration } = getSpringOptions({
      ...options2,
      velocity: -millisecondsToSeconds(options2.velocity || 0)
    });
    const initialVelocity = velocity || 0;
    const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));
    const initialDelta = target - origin;
    const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));
    const isGranularScale = Math.abs(initialDelta) < 5;
    restSpeed || (restSpeed = isGranularScale ? springDefaults.restSpeed.granular : springDefaults.restSpeed.default);
    restDelta || (restDelta = isGranularScale ? springDefaults.restDelta.granular : springDefaults.restDelta.default);
    let resolveSpring;
    if (dampingRatio < 1) {
      const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);
      resolveSpring = (t4) => {
        const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t4);
        return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq * Math.sin(angularFreq * t4) + initialDelta * Math.cos(angularFreq * t4));
      };
    } else if (dampingRatio === 1) {
      resolveSpring = (t4) => target - Math.exp(-undampedAngularFreq * t4) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t4);
    } else {
      const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);
      resolveSpring = (t4) => {
        const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t4);
        const freqForT = Math.min(dampedAngularFreq * t4, 300);
        return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq * initialDelta * Math.cosh(freqForT)) / dampedAngularFreq;
      };
    }
    const generator = {
      calculatedDuration: isResolvedFromDuration ? duration || null : null,
      next: (t4) => {
        const current = resolveSpring(t4);
        if (!isResolvedFromDuration) {
          let currentVelocity = 0;
          if (dampingRatio < 1) {
            currentVelocity = t4 === 0 ? secondsToMilliseconds(initialVelocity) : calcGeneratorVelocity(resolveSpring, t4, current);
          }
          const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;
          const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;
          state.done = isBelowVelocityThreshold && isBelowDisplacementThreshold;
        } else {
          state.done = t4 >= duration;
        }
        state.value = state.done ? target : current;
        return state;
      },
      toString: () => {
        const calculatedDuration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
        const easing = generateLinearEasing((progress2) => generator.next(calculatedDuration * progress2).value, calculatedDuration, 30);
        return calculatedDuration + "ms " + easing;
      }
    };
    return generator;
  }

  // packages/components/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs
  function inertia({ keyframes: keyframes4, velocity = 0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min: min3, max: max3, restDelta = 0.5, restSpeed }) {
    const origin = keyframes4[0];
    const state = {
      done: false,
      value: origin
    };
    const isOutOfBounds = (v3) => min3 !== void 0 && v3 < min3 || max3 !== void 0 && v3 > max3;
    const nearestBoundary = (v3) => {
      if (min3 === void 0)
        return max3;
      if (max3 === void 0)
        return min3;
      return Math.abs(min3 - v3) < Math.abs(max3 - v3) ? min3 : max3;
    };
    let amplitude = power * velocity;
    const ideal = origin + amplitude;
    const target = modifyTarget === void 0 ? ideal : modifyTarget(ideal);
    if (target !== ideal)
      amplitude = target - origin;
    const calcDelta = (t4) => -amplitude * Math.exp(-t4 / timeConstant);
    const calcLatest = (t4) => target + calcDelta(t4);
    const applyFriction = (t4) => {
      const delta = calcDelta(t4);
      const latest = calcLatest(t4);
      state.done = Math.abs(delta) <= restDelta;
      state.value = state.done ? target : latest;
    };
    let timeReachedBoundary;
    let spring$1;
    const checkCatchBoundary = (t4) => {
      if (!isOutOfBounds(state.value))
        return;
      timeReachedBoundary = t4;
      spring$1 = spring({
        keyframes: [state.value, nearestBoundary(state.value)],
        velocity: calcGeneratorVelocity(calcLatest, t4, state.value),
        // TODO: This should be passing * 1000
        damping: bounceDamping,
        stiffness: bounceStiffness,
        restDelta,
        restSpeed
      });
    };
    checkCatchBoundary(0);
    return {
      calculatedDuration: null,
      next: (t4) => {
        let hasUpdatedFrame = false;
        if (!spring$1 && timeReachedBoundary === void 0) {
          hasUpdatedFrame = true;
          applyFriction(t4);
          checkCatchBoundary(t4);
        }
        if (timeReachedBoundary !== void 0 && t4 >= timeReachedBoundary) {
          return spring$1.next(t4 - timeReachedBoundary);
        } else {
          !hasUpdatedFrame && applyFriction(t4);
          return state;
        }
      }
    };
  }

  // packages/components/node_modules/framer-motion/dist/es/easing/ease.mjs
  var easeIn = /* @__PURE__ */ cubicBezier(0.42, 0, 1, 1);
  var easeOut = /* @__PURE__ */ cubicBezier(0, 0, 0.58, 1);
  var easeInOut = /* @__PURE__ */ cubicBezier(0.42, 0, 0.58, 1);

  // packages/components/node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs
  var isEasingArray = (ease2) => {
    return Array.isArray(ease2) && typeof ease2[0] !== "number";
  };

  // packages/components/node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs
  var isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === "number";

  // packages/components/node_modules/framer-motion/dist/es/easing/utils/map.mjs
  var easingLookup = {
    linear: noop2,
    easeIn,
    easeInOut,
    easeOut,
    circIn,
    circInOut,
    circOut,
    backIn,
    backInOut,
    backOut,
    anticipate
  };
  var easingDefinitionToFunction = (definition) => {
    if (isBezierDefinition(definition)) {
      invariant2(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);
      const [x1, y1, x2, y22] = definition;
      return cubicBezier(x1, y1, x2, y22);
    } else if (typeof definition === "string") {
      invariant2(easingLookup[definition] !== void 0, `Invalid easing type '${definition}'`);
      return easingLookup[definition];
    }
    return definition;
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/pipe.mjs
  var combineFunctions = (a3, b3) => (v3) => b3(a3(v3));
  var pipe = (...transformers) => transformers.reduce(combineFunctions);

  // packages/components/node_modules/framer-motion/dist/es/utils/mix/number.mjs
  var mixNumber = (from2, to, progress2) => {
    return from2 + (to - from2) * progress2;
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs
  function hueToRgb(p3, q2, t4) {
    if (t4 < 0)
      t4 += 1;
    if (t4 > 1)
      t4 -= 1;
    if (t4 < 1 / 6)
      return p3 + (q2 - p3) * 6 * t4;
    if (t4 < 1 / 2)
      return q2;
    if (t4 < 2 / 3)
      return p3 + (q2 - p3) * (2 / 3 - t4) * 6;
    return p3;
  }
  function hslaToRgba({ hue, saturation, lightness, alpha: alpha2 }) {
    hue /= 360;
    saturation /= 100;
    lightness /= 100;
    let red = 0;
    let green = 0;
    let blue = 0;
    if (!saturation) {
      red = green = blue = lightness;
    } else {
      const q2 = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;
      const p3 = 2 * lightness - q2;
      red = hueToRgb(p3, q2, hue + 1 / 3);
      green = hueToRgb(p3, q2, hue);
      blue = hueToRgb(p3, q2, hue - 1 / 3);
    }
    return {
      red: Math.round(red * 255),
      green: Math.round(green * 255),
      blue: Math.round(blue * 255),
      alpha: alpha2
    };
  }

  // packages/components/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs
  function mixImmediate(a3, b3) {
    return (p3) => p3 > 0 ? b3 : a3;
  }

  // packages/components/node_modules/framer-motion/dist/es/utils/mix/color.mjs
  var mixLinearColor = (from2, to, v3) => {
    const fromExpo = from2 * from2;
    const expo = v3 * (to * to - fromExpo) + fromExpo;
    return expo < 0 ? 0 : Math.sqrt(expo);
  };
  var colorTypes = [hex, rgba, hsla];
  var getColorType = (v3) => colorTypes.find((type) => type.test(v3));
  function asRGBA(color2) {
    const type = getColorType(color2);
    warning(Boolean(type), `'${color2}' is not an animatable color. Use the equivalent color code instead.`);
    if (!Boolean(type))
      return false;
    let model = type.parse(color2);
    if (type === hsla) {
      model = hslaToRgba(model);
    }
    return model;
  }
  var mixColor = (from2, to) => {
    const fromRGBA = asRGBA(from2);
    const toRGBA = asRGBA(to);
    if (!fromRGBA || !toRGBA) {
      return mixImmediate(from2, to);
    }
    const blended = { ...fromRGBA };
    return (v3) => {
      blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v3);
      blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v3);
      blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v3);
      blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v3);
      return rgba.transform(blended);
    };
  };

  // packages/components/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs
  var invisibleValues = /* @__PURE__ */ new Set(["none", "hidden"]);
  function mixVisibility(origin, target) {
    if (invisibleValues.has(origin)) {
      return (p3) => p3 <= 0 ? origin : target;
    } else {
      return (p3) => p3 >= 1 ? target : origin;
    }
  }

  // packages/components/node_modules/framer-motion/dist/es/utils/mix/complex.mjs
  function mixNumber2(a3, b3) {
    return (p3) => mixNumber(a3, b3, p3);
  }
  function getMixer(a3) {
    if (typeof a3 === "number") {
      return mixNumber2;
    } else if (typeof a3 === "string") {
      return isCSSVariableToken(a3) ? mixImmediate : color.test(a3) ? mixColor : mixComplex;
    } else if (Array.isArray(a3)) {
      return mixArray;
    } else if (typeof a3 === "object") {
      return color.test(a3) ? mixColor : mixObject;
    }
    return mixImmediate;
  }
  function mixArray(a3, b3) {
    const output = [...a3];
    const numValues = output.length;
    const blendValue = a3.map((v3, i3) => getMixer(v3)(v3, b3[i3]));
    return (p3) => {
      for (let i3 = 0; i3 < numValues; i3++) {
        output[i3] = blendValue[i3](p3);
      }
      return output;
    };
  }
  function mixObject(a3, b3) {
    const output = { ...a3, ...b3 };
    const blendValue = {};
    for (const key in output) {
      if (a3[key] !== void 0 && b3[key] !== void 0) {
        blendValue[key] = getMixer(a3[key])(a3[key], b3[key]);
      }
    }
    return (v3) => {
      for (const key in blendValue) {
        output[key] = blendValue[key](v3);
      }
      return output;
    };
  }
  function matchOrder(origin, target) {
    var _a;
    const orderedOrigin = [];
    const pointers = { color: 0, var: 0, number: 0 };
    for (let i3 = 0; i3 < target.values.length; i3++) {
      const type = target.types[i3];
      const originIndex = origin.indexes[type][pointers[type]];
      const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;
      orderedOrigin[i3] = originValue;
      pointers[type]++;
    }
    return orderedOrigin;
  }
  var mixComplex = (origin, target) => {
    const template = complex.createTransformer(target);
    const originStats = analyseComplexValue(origin);
    const targetStats = analyseComplexValue(target);
    const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length && originStats.indexes.color.length === targetStats.indexes.color.length && originStats.indexes.number.length >= targetStats.indexes.number.length;
    if (canInterpolate) {
      if (invisibleValues.has(origin) && !targetStats.values.length || invisibleValues.has(target) && !originStats.values.length) {
        return mixVisibility(origin, target);
      }
      return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);
    } else {
      warning(true, `Complex values '${origin}' and '${target}' too dif
Showing 512.00 KB of 3.83 MB. Use Edit/Download for full content.

Directory Contents

Dirs: 3 × Files: 133
Name Size Perms Modified Actions
- drwxr-xr-x 2026-07-27 19:13:23
Edit Download
- drwxr-xr-x 2026-07-27 19:13:23
Edit Download
vendor DIR
- drwxr-xr-x 2026-07-27 19:13:23
Edit Download
5.45 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.41 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
15.13 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.58 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
17.46 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
6.29 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
9.73 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.47 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
48 B lrw-r--r-- 2026-06-07 20:00:05
Edit Download
40 B lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.30 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.13 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
55.67 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
21.92 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.70 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.01 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.57 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.09 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
6.54 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.36 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
50.48 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
10.34 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
381.06 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
180.58 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
151.71 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
63.10 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.83 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
786.24 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
80.84 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
28.21 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
28.68 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
11.83 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
612.03 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
210.43 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
91.57 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
36.58 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
4.13 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.74 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
82.78 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
25.88 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
176.34 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
141.18 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.04 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.25 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
35.35 KB lrw-r--r-- 2025-05-20 12:00:00
Edit Download
1.47 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
783 B lrw-r--r-- 2026-06-07 20:00:05
Edit Download
34.61 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
12.62 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
117.40 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
49.07 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.69 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
684.42 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
160.25 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
61.83 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.50 MB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1,021.22 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
27.93 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
12.13 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.29 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.03 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
73.34 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
28.85 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
11.96 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
4.90 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.65 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
844 B lrw-r--r-- 2026-06-07 20:00:05
Edit Download
15.30 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.56 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.69 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.06 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
9.68 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.41 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
8.30 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.87 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
13.06 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.21 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
637.15 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
237.61 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
10.11 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
4.35 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
10.32 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.92 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
58.25 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
21.60 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
11.67 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
4.72 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
17.22 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.46 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
21.07 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
7.68 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.08 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.94 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
10.02 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.32 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
4.09 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.63 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.91 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.49 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
24.68 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
9.62 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
20.51 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
7.19 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
97.04 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
39.86 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
36.12 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
14.10 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
10.97 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.91 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
7.96 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
3.25 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
17.62 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
6.38 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
359.40 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
118.11 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
127.65 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
56.08 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
6.12 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.58 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
5.29 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.66 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
55.67 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
23.02 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
23.39 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
10.09 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
6.61 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.21 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
1.52 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
720 B lrw-r--r-- 2026-06-07 20:00:05
Edit Download
50.08 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
20.79 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
6.93 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
2.41 KB lrw-r--r-- 2026-06-07 20:00:05
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI
Upload
Kotlin Archives - Weelorum https://weelorum.com/technology/kotlin/ Full Cycle Mobile App Development Services For Startups Sun, 01 Mar 2026 20:04:38 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 PayFlow https://weelorum.com/portfolio-projects/payflow/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/payflow/ PayFlow is a fintech application that simplifies international money transfers and currency exchange. Users can hold multiple currencies, send money globally with competitive rates, and receive instant notifications. The app features biometric authentication and real-time transaction tracking.

Сообщение PayFlow появились сначала на Weelorum.

]]>
PayFlow is a fintech application that simplifies international money transfers and currency exchange. Users can hold multiple currencies, send money globally with competitive rates, and receive instant notifications. The app features biometric authentication and real-time transaction tracking.

Сообщение PayFlow появились сначала на Weelorum.

]]>
Knock Knock https://weelorum.com/portfolio-projects/knock-knock/ Sun, 01 Mar 2026 20:04:37 +0000 https://weelorum.com/success-stories/knock-knock/ Knock Knock is a real-time restaurant discovery app. It shows users what’s happening inside venues, how crowded they are, and offers live previews via photos and video. The app uses geolocation to help people choose where to eat or socialize based on current ambiance.

Сообщение Knock Knock появились сначала на Weelorum.

]]>
Knock Knock is a real-time restaurant discovery app. It shows users what’s happening inside venues, how crowded they are, and offers live previews via photos and video. The app uses geolocation to help people choose where to eat or socialize based on current ambiance.

Сообщение Knock Knock появились сначала на Weelorum.

]]>