// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles

(function (modules, entry, mainEntry, parcelRequireName, globalName) {
  /* eslint-disable no-undef */
  var globalObject =
    typeof globalThis !== 'undefined'
      ? globalThis
      : typeof self !== 'undefined'
      ? self
      : typeof window !== 'undefined'
      ? window
      : typeof global !== 'undefined'
      ? global
      : {};
  /* eslint-enable no-undef */

  // Save the require from previous bundle to this closure if any
  var previousRequire =
    typeof globalObject[parcelRequireName] === 'function' &&
    globalObject[parcelRequireName];

  var cache = previousRequire.cache || {};
  // Do not use `require` to prevent Webpack from trying to bundle this call
  var nodeRequire =
    typeof module !== 'undefined' &&
    typeof module.require === 'function' &&
    module.require.bind(module);

  function newRequire(name, jumped) {
    if (!cache[name]) {
      if (!modules[name]) {
        // if we cannot find the module within our internal map or
        // cache jump to the current global require ie. the last bundle
        // that was added to the page.
        var currentRequire =
          typeof globalObject[parcelRequireName] === 'function' &&
          globalObject[parcelRequireName];
        if (!jumped && currentRequire) {
          return currentRequire(name, true);
        }

        // If there are other bundles on this page the require from the
        // previous one is saved to 'previousRequire'. Repeat this as
        // many times as there are bundles until the module is found or
        // we exhaust the require chain.
        if (previousRequire) {
          return previousRequire(name, true);
        }

        // Try the node require function if it exists.
        if (nodeRequire && typeof name === 'string') {
          return nodeRequire(name);
        }

        var err = new Error("Cannot find module '" + name + "'");
        err.code = 'MODULE_NOT_FOUND';
        throw err;
      }

      localRequire.resolve = resolve;
      localRequire.cache = {};

      var module = (cache[name] = new newRequire.Module(name));

      modules[name][0].call(
        module.exports,
        localRequire,
        module,
        module.exports,
        this
      );
    }

    return cache[name].exports;

    function localRequire(x) {
      var res = localRequire.resolve(x);
      return res === false ? {} : newRequire(res);
    }

    function resolve(x) {
      var id = modules[name][1][x];
      return id != null ? id : x;
    }
  }

  function Module(moduleName) {
    this.id = moduleName;
    this.bundle = newRequire;
    this.exports = {};
  }

  newRequire.isParcelRequire = true;
  newRequire.Module = Module;
  newRequire.modules = modules;
  newRequire.cache = cache;
  newRequire.parent = previousRequire;
  newRequire.register = function (id, exports) {
    modules[id] = [
      function (require, module) {
        module.exports = exports;
      },
      {},
    ];
  };

  Object.defineProperty(newRequire, 'root', {
    get: function () {
      return globalObject[parcelRequireName];
    },
  });

  globalObject[parcelRequireName] = newRequire;

  for (var i = 0; i < entry.length; i++) {
    newRequire(entry[i]);
  }

  if (mainEntry) {
    // Expose entry point to Node, AMD or browser globals
    // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
    var mainExports = newRequire(mainEntry);

    // CommonJS
    if (typeof exports === 'object' && typeof module !== 'undefined') {
      module.exports = mainExports;

      // RequireJS
    } else if (typeof define === 'function' && define.amd) {
      define(function () {
        return mainExports;
      });

      // <script>
    } else if (globalName) {
      this[globalName] = mainExports;
    }
  }
})({"aQfkS":[function(require,module,exports) {
var _client = require("@react-spectrum/docs/src/client");
var _docs = require("@react-spectrum/docs/src/docs");

},{"@react-spectrum/docs/src/client":"10RT9","@react-spectrum/docs/src/docs":"jVB8o"}],"10RT9":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
var _jsxRuntime = require("react/jsx-runtime");
var _reactSpectrum = require("@adobe/react-spectrum");
var _docSearch = require("./DocSearch");
var _docSearchDefault = parcelHelpers.interopDefault(_docSearch);
var _docsCss = require("./docs.css");
var _docsCssDefault = parcelHelpers.interopDefault(_docsCss);
var _linkOut = require("@spectrum-icons/workflow/LinkOut");
var _linkOutDefault = parcelHelpers.interopDefault(_linkOut);
var _quicklink = require("quicklink");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactDom = require("react-dom");
var _reactDomDefault = parcelHelpers.interopDefault(_reactDom);
var _showMenu = require("@spectrum-icons/workflow/ShowMenu");
var _showMenuDefault = parcelHelpers.interopDefault(_showMenu);
var _themeSwitcher = require("./ThemeSwitcher");
window.addEventListener("load", ()=>(0, _quicklink.listen)());
let title = document.querySelector("h1");
// Size the title to fit the available space.
function updateTitleFontSize() {
    let fontSize = parseInt(window.getComputedStyle(title).fontSize, 10);
    // Constrain font size to 58px, or 10% of the window width, whichever is smaller.
    let maxFontSize = Math.min(58, Math.round(window.innerWidth * 0.1));
    if (fontSize > maxFontSize) {
        fontSize = maxFontSize;
        title.style.fontSize = maxFontSize + "px";
    }
    // If the font size is less than the maximum font size,
    // increase the font size until it overflows.
    while(fontSize < maxFontSize && title.scrollWidth <= title.clientWidth){
        fontSize++;
        title.style.fontSize = fontSize + "px";
    }
    // Reduce the font size until it doesn't overflow.
    while(title.scrollWidth > title.clientWidth){
        fontSize--;
        title.style.fontSize = fontSize + "px";
    }
}
updateTitleFontSize();
// Use ResizeObserver where available to detect size changes not related to window resizing, e.g. font loading.
if (typeof ResizeObserver !== "undefined") {
    let observer = new ResizeObserver(()=>{
        // Avoid updating the layout during the resize event and creating circular notifications.
        requestAnimationFrame(updateTitleFontSize);
    });
    observer.observe(title);
} else window.addEventListener("resize", updateTitleFontSize);
function Hamburger() {
    let [isPressed, setIsPressed] = (0, _react.useState)(false);
    let hamburgerRef = (0, _react.useRef)(null);
    let hamburgerButtonRef = (0, _react.useRef)(null);
    let onPress = (event)=>{
        let nav = document.querySelector(`.${(0, _docsCssDefault.default).nav}`);
        let main = document.querySelector("main");
        let themeSwitcher = document.querySelector(`header.${(0, _docsCssDefault.default).pageHeader} > div:last-of-type`);
        nav.classList.toggle((0, _docsCssDefault.default).visible);
        if (nav.classList.contains((0, _docsCssDefault.default).visible)) {
            setIsPressed(true);
            main.setAttribute("aria-hidden", "true");
            themeSwitcher.setAttribute("aria-hidden", "true");
            themeSwitcher.querySelector("button").tabIndex = -1;
            nav.tabIndex = -1;
            nav.focus();
        } else {
            setIsPressed(false);
            main.removeAttribute("aria-hidden");
            themeSwitcher.removeAttribute("aria-hidden");
            themeSwitcher.querySelector("button").removeAttribute("tabindex");
            nav.removeAttribute("tabindex");
        }
    };
    (0, _react.useEffect)(()=>{
        let mediaQueryList = window.matchMedia("(max-width: 1020px)");
        let nav = document.querySelector(`.${(0, _docsCssDefault.default).nav}`);
        let main = document.querySelector("main");
        let hamburgerButton = hamburgerButtonRef.current;
        let themeSwitcher = document.querySelector(`header.${(0, _docsCssDefault.default).pageHeader} > div:last-of-type`);
        let removeVisible = (isNotResponsive = false)=>{
            setIsPressed(false);
            if (nav.contains(document.activeElement) && !isNotResponsive) hamburgerButton.focus();
            nav.classList.remove((0, _docsCssDefault.default).visible);
            main.removeAttribute("aria-hidden");
            themeSwitcher.removeAttribute("aria-hidden");
            themeSwitcher.querySelector("button").removeAttribute("tabindex");
            nav.removeAttribute("tabindex");
        };
        /* collapse nav when underlying content is clicked */ let onClick = ()=>removeVisible();
        /* collapse expanded nav when esc key is pressed */ let onKeydownEsc = (event)=>{
            if (event.keyCode === 27) removeVisible();
        };
        /* trap keyboard focus within expanded nav */ let onKeydownTab = (event)=>{
            if (event.keyCode === 9 && nav.classList.contains((0, _docsCssDefault.default).visible)) {
                let tabbables = nav.querySelectorAll("button, a[href]");
                let first = tabbables[0];
                let last = tabbables[tabbables.length - 1];
                if (event.shiftKey && event.target === first) {
                    event.preventDefault();
                    last.focus();
                } else if (!event.shiftKey && event.target === last) {
                    event.preventDefault();
                    first.focus();
                }
            }
        };
        /* restore default behavior when responsive media query no longer matches */ let mediaQueryTest = (event)=>{
            if (!event.matches) removeVisible(true);
        };
        main.addEventListener("click", onClick);
        document.addEventListener("keydown", onKeydownEsc);
        nav.addEventListener("keydown", onKeydownTab);
        let useEventListener = typeof mediaQueryList.addEventListener === "function";
        if (useEventListener) mediaQueryList.addEventListener("change", mediaQueryTest);
        else mediaQueryList.addListener(mediaQueryTest);
        return ()=>{
            main.removeEventListener("click", onClick);
            document.removeEventListener("keydown", onKeydownEsc);
            nav.removeEventListener("keydown", onKeydownTab);
            if (useEventListener) mediaQueryList.removeEventListener("change", mediaQueryTest);
            else mediaQueryList.removeListener(mediaQueryTest);
        };
    }, [
        setIsPressed,
        hamburgerRef,
        hamburgerButtonRef
    ]);
    let hamburgerButtonLabel = `${isPressed ? "Close" : "Open"} navigation panel`;
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)("div", {
        ref: hamburgerRef,
        className: (0, _docsCssDefault.default).hamburgerButton,
        title: hamburgerButtonLabel,
        role: "presentation",
        children: /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.ActionButton), {
            ref: hamburgerButtonRef,
            onPress: onPress,
            "aria-label": hamburgerButtonLabel,
            "aria-pressed": isPressed ? isPressed : undefined,
            children: /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _showMenuDefault.default), {})
        })
    });
}
(0, _reactDomDefault.default).render(/*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _jsxRuntime.Fragment), {
    children: [
        /*#__PURE__*/ (0, _jsxRuntime.jsx)(Hamburger, {}),
        /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _docSearchDefault.default), {}),
        /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _themeSwitcher.ThemeSwitcher), {})
    ]
}), document.querySelector("." + (0, _docsCssDefault.default).pageHeader));
let pathToPage = document.querySelector("[data-github-src]").getAttribute("data-github-src");
let editPage = document.querySelector("#edit-page");
if (pathToPage && editPage) (0, _reactDomDefault.default).render(/*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Link), {
    children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("a", {
        href: encodeURI(`https://github.com/adobe/react-spectrum/tree/main/${encodeURI(pathToPage)}`),
        target: "_blank",
        children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _reactSpectrum.Flex), {
            gap: "size-100",
            alignItems: "center",
            children: [
                /*#__PURE__*/ (0, _jsxRuntime.jsx)("span", {
                    children: "Edit this page"
                }),
                /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _linkOutDefault.default), {
                    size: "S"
                })
            ]
        })
    })
}), editPage);
document.addEventListener("mousedown", (e)=>{
    // Prevent focusing on links to other pages with the mouse to avoid flash of focus ring during navigation.
    let link = e.target.closest("a");
    if (link && (link.host !== location.host || link.pathname !== location.pathname)) e.preventDefault();
    // Add mouse focus class to summary elements on mouse down to prevent native browser focus from showing.
    if (e.target.tagName === "SUMMARY") e.target.classList.add((0, _docsCssDefault.default).mouseFocus);
});
// Remove mouse focus class on blur of a summary element.
document.addEventListener("blur", (e)=>{
    if (e.target.tagName === "SUMMARY") e.target.classList.remove((0, _docsCssDefault.default).mouseFocus);
}, true);
let sidebar = document.querySelector("." + (0, _docsCssDefault.default).nav);
let lastSelectedItem = sessionStorage.getItem("sidebarSelectedItem");
let lastScrollPosition = sessionStorage.getItem("sidebarScrollPosition");
// If we have a recorded scroll position, and the last selected item is in the sidebar
// (e.g. we're in the same category), then restore the scroll position.
if (lastSelectedItem && lastScrollPosition && [
    ...sidebar.querySelectorAll("a")
].some((a)=>a.pathname === lastSelectedItem)) sidebar.scrollTop = parseInt(lastScrollPosition, 10);
// Save scroll position of the sidebar when we're about to navigate
window.addEventListener("pagehide", ()=>{
    sessionStorage.setItem("sidebarSelectedItem", location.pathname);
    sessionStorage.setItem("sidebarScrollPosition", sidebar.scrollTop);
});
// Disable autoplay for videos when the prefers-reduced-motion media query is enabled.
function reducedMotionCheck(e) {
    let videos = document.querySelectorAll("video[autoplay]");
    if (e.matches) for (let v of videos){
        v.pause();
        v.controls = true;
        v.removeAttribute("tabindex");
        v.onclick = undefined;
        v.onkeydown = undefined;
    }
    else for (let v of videos){
        let toggle = ()=>{
            if (v.paused) v.play();
            else v.pause();
        };
        if (v.paused) v.play();
        v.tabIndex = 0;
        v.controls = false;
        v.onclick = toggle;
        v.onkeydown = (e)=>{
            if (e.key === " " || e.key === "Enter") {
                e.preventDefault();
                toggle();
            }
        };
    }
}
let prefersReducedMotion = matchMedia("(prefers-reduced-motion)");
reducedMotionCheck(prefersReducedMotion);
prefersReducedMotion.addEventListener("change", reducedMotionCheck);

},{"react/jsx-runtime":"react/jsx-runtime","@adobe/react-spectrum":"liQMD","./DocSearch":"jPbEZ","./docs.css":"BFiyE","@spectrum-icons/workflow/LinkOut":"44Nr4","quicklink":"aDp10","react":"react","react-dom":"react-dom","@spectrum-icons/workflow/ShowMenu":"6FLUJ","./ThemeSwitcher":"3Coap","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"liQMD":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ActionGroup", ()=>(0, _actiongroup.ActionGroup));
parcelHelpers.export(exports, "Badge", ()=>(0, _badge.Badge));
parcelHelpers.export(exports, "Breadcrumbs", ()=>(0, _breadcrumbs.Breadcrumbs));
parcelHelpers.export(exports, "ActionBar", ()=>(0, _actionbar.ActionBar));
parcelHelpers.export(exports, "ActionBarContainer", ()=>(0, _actionbar.ActionBarContainer));
parcelHelpers.export(exports, "ActionButton", ()=>(0, _button.ActionButton));
parcelHelpers.export(exports, "Button", ()=>(0, _button.Button));
parcelHelpers.export(exports, "LogicButton", ()=>(0, _button.LogicButton));
parcelHelpers.export(exports, "ToggleButton", ()=>(0, _button.ToggleButton));
parcelHelpers.export(exports, "Avatar", ()=>(0, _avatar.Avatar));
parcelHelpers.export(exports, "ButtonGroup", ()=>(0, _buttongroup.ButtonGroup));
parcelHelpers.export(exports, "Calendar", ()=>(0, _calendar.Calendar));
parcelHelpers.export(exports, "RangeCalendar", ()=>(0, _calendar.RangeCalendar));
parcelHelpers.export(exports, "Checkbox", ()=>(0, _checkbox.Checkbox));
parcelHelpers.export(exports, "CheckboxGroup", ()=>(0, _checkbox.CheckboxGroup));
parcelHelpers.export(exports, "ComboBox", ()=>(0, _combobox.ComboBox));
parcelHelpers.export(exports, "ContextualHelp", ()=>(0, _contextualhelp.ContextualHelp));
parcelHelpers.export(exports, "AlertDialog", ()=>(0, _dialog.AlertDialog));
parcelHelpers.export(exports, "Dialog", ()=>(0, _dialog.Dialog));
parcelHelpers.export(exports, "DialogTrigger", ()=>(0, _dialog.DialogTrigger));
parcelHelpers.export(exports, "DialogContainer", ()=>(0, _dialog.DialogContainer));
parcelHelpers.export(exports, "useDialogContainer", ()=>(0, _dialog.useDialogContainer));
parcelHelpers.export(exports, "DateField", ()=>(0, _datepicker.DateField));
parcelHelpers.export(exports, "DatePicker", ()=>(0, _datepicker.DatePicker));
parcelHelpers.export(exports, "DateRangePicker", ()=>(0, _datepicker.DateRangePicker));
parcelHelpers.export(exports, "TimeField", ()=>(0, _datepicker.TimeField));
parcelHelpers.export(exports, "Divider", ()=>(0, _divider.Divider));
parcelHelpers.export(exports, "Form", ()=>(0, _form.Form));
parcelHelpers.export(exports, "Icon", ()=>(0, _icon.Icon));
parcelHelpers.export(exports, "IllustratedMessage", ()=>(0, _illustratedmessage.IllustratedMessage));
parcelHelpers.export(exports, "InlineAlert", ()=>(0, _inlinealert.InlineAlert));
parcelHelpers.export(exports, "Image", ()=>(0, _image.Image));
parcelHelpers.export(exports, "Flex", ()=>(0, _layout.Flex));
parcelHelpers.export(exports, "Grid", ()=>(0, _layout.Grid));
parcelHelpers.export(exports, "fitContent", ()=>(0, _layout.fitContent));
parcelHelpers.export(exports, "minmax", ()=>(0, _layout.minmax));
parcelHelpers.export(exports, "repeat", ()=>(0, _layout.repeat));
parcelHelpers.export(exports, "LabeledValue", ()=>(0, _labeledvalue.LabeledValue));
parcelHelpers.export(exports, "Link", ()=>(0, _link.Link));
parcelHelpers.export(exports, "ListBox", ()=>(0, _listbox.ListBox));
parcelHelpers.export(exports, "ListView", ()=>(0, _list.ListView));
parcelHelpers.export(exports, "ActionMenu", ()=>(0, _menu.ActionMenu));
parcelHelpers.export(exports, "Menu", ()=>(0, _menu.Menu));
parcelHelpers.export(exports, "MenuTrigger", ()=>(0, _menu.MenuTrigger));
parcelHelpers.export(exports, "Meter", ()=>(0, _meter.Meter));
parcelHelpers.export(exports, "NumberField", ()=>(0, _numberfield.NumberField));
parcelHelpers.export(exports, "Picker", ()=>(0, _picker.Picker));
parcelHelpers.export(exports, "ProgressBar", ()=>(0, _progress.ProgressBar));
parcelHelpers.export(exports, "ProgressCircle", ()=>(0, _progress.ProgressCircle));
parcelHelpers.export(exports, "Provider", ()=>(0, _provider.Provider));
parcelHelpers.export(exports, "useProvider", ()=>(0, _provider.useProvider));
parcelHelpers.export(exports, "Radio", ()=>(0, _radio.Radio));
parcelHelpers.export(exports, "RadioGroup", ()=>(0, _radio.RadioGroup));
parcelHelpers.export(exports, "RangeSlider", ()=>(0, _slider.RangeSlider));
parcelHelpers.export(exports, "Slider", ()=>(0, _slider.Slider));
parcelHelpers.export(exports, "SearchField", ()=>(0, _searchfield.SearchField));
parcelHelpers.export(exports, "StatusLight", ()=>(0, _statuslight.StatusLight));
parcelHelpers.export(exports, "Switch", ()=>(0, _switch.Switch));
parcelHelpers.export(exports, "Heading", ()=>(0, _text.Heading));
parcelHelpers.export(exports, "Keyboard", ()=>(0, _text.Keyboard));
parcelHelpers.export(exports, "Text", ()=>(0, _text.Text));
parcelHelpers.export(exports, "TableView", ()=>(0, _table.TableView));
parcelHelpers.export(exports, "TableHeader", ()=>(0, _table.TableHeader));
parcelHelpers.export(exports, "TableBody", ()=>(0, _table.TableBody));
parcelHelpers.export(exports, "Column", ()=>(0, _table.Column));
parcelHelpers.export(exports, "Row", ()=>(0, _table.Row));
parcelHelpers.export(exports, "Cell", ()=>(0, _table.Cell));
parcelHelpers.export(exports, "Tabs", ()=>(0, _tabs.Tabs));
parcelHelpers.export(exports, "TabList", ()=>(0, _tabs.TabList));
parcelHelpers.export(exports, "TabPanels", ()=>(0, _tabs.TabPanels));
parcelHelpers.export(exports, "TagGroup", ()=>(0, _tag.TagGroup));
parcelHelpers.export(exports, "TextArea", ()=>(0, _textfield.TextArea));
parcelHelpers.export(exports, "TextField", ()=>(0, _textfield.TextField));
parcelHelpers.export(exports, "darkTheme", ()=>(0, _themeDark.theme));
parcelHelpers.export(exports, "defaultTheme", ()=>(0, _themeDefault.theme));
parcelHelpers.export(exports, "lightTheme", ()=>(0, _themeLight.theme));
parcelHelpers.export(exports, "Tooltip", ()=>(0, _tooltip.Tooltip));
parcelHelpers.export(exports, "TooltipTrigger", ()=>(0, _tooltip.TooltipTrigger));
parcelHelpers.export(exports, "Content", ()=>(0, _view.Content));
parcelHelpers.export(exports, "Footer", ()=>(0, _view.Footer));
parcelHelpers.export(exports, "Header", ()=>(0, _view.Header));
parcelHelpers.export(exports, "View", ()=>(0, _view.View));
parcelHelpers.export(exports, "Well", ()=>(0, _well.Well));
parcelHelpers.export(exports, "Item", ()=>(0, _collections.Item));
parcelHelpers.export(exports, "Section", ()=>(0, _collections.Section));
parcelHelpers.export(exports, "useAsyncList", ()=>(0, _data.useAsyncList));
parcelHelpers.export(exports, "useListData", ()=>(0, _data.useListData));
parcelHelpers.export(exports, "useTreeData", ()=>(0, _data.useTreeData));
parcelHelpers.export(exports, "VisuallyHidden", ()=>(0, _visuallyHidden.VisuallyHidden));
parcelHelpers.export(exports, "useCollator", ()=>(0, _i18N.useCollator));
parcelHelpers.export(exports, "useDateFormatter", ()=>(0, _i18N.useDateFormatter));
parcelHelpers.export(exports, "useFilter", ()=>(0, _i18N.useFilter));
parcelHelpers.export(exports, "useLocale", ()=>(0, _i18N.useLocale));
parcelHelpers.export(exports, "useLocalizedStringFormatter", ()=>(0, _i18N.useLocalizedStringFormatter));
parcelHelpers.export(exports, "useMessageFormatter", ()=>(0, _i18N.useMessageFormatter));
parcelHelpers.export(exports, "useNumberFormatter", ()=>(0, _i18N.useNumberFormatter));
parcelHelpers.export(exports, "SSRProvider", ()=>(0, _ssr.SSRProvider));
parcelHelpers.export(exports, "useDragAndDrop", ()=>(0, _dnd.useDragAndDrop));
parcelHelpers.export(exports, "DIRECTORY_DRAG_TYPE", ()=>(0, _dnd.DIRECTORY_DRAG_TYPE));
var _actiongroup = require("@react-spectrum/actiongroup");
var _badge = require("@react-spectrum/badge");
var _breadcrumbs = require("@react-spectrum/breadcrumbs");
var _actionbar = require("@react-spectrum/actionbar");
var _button = require("@react-spectrum/button");
var _avatar = require("@react-spectrum/avatar");
var _buttongroup = require("@react-spectrum/buttongroup");
var _calendar = require("@react-spectrum/calendar");
var _checkbox = require("@react-spectrum/checkbox");
var _combobox = require("@react-spectrum/combobox");
var _contextualhelp = require("@react-spectrum/contextualhelp");
var _dialog = require("@react-spectrum/dialog");
var _datepicker = require("@react-spectrum/datepicker");
var _divider = require("@react-spectrum/divider");
var _form = require("@react-spectrum/form");
var _icon = require("@react-spectrum/icon");
var _illustratedmessage = require("@react-spectrum/illustratedmessage");
var _inlinealert = require("@react-spectrum/inlinealert");
var _image = require("@react-spectrum/image");
var _layout = require("@react-spectrum/layout");
var _labeledvalue = require("@react-spectrum/labeledvalue");
var _link = require("@react-spectrum/link");
var _listbox = require("@react-spectrum/listbox");
var _list = require("@react-spectrum/list");
var _menu = require("@react-spectrum/menu");
var _meter = require("@react-spectrum/meter");
var _numberfield = require("@react-spectrum/numberfield");
var _picker = require("@react-spectrum/picker");
var _progress = require("@react-spectrum/progress");
var _provider = require("@react-spectrum/provider");
var _radio = require("@react-spectrum/radio");
var _slider = require("@react-spectrum/slider");
var _searchfield = require("@react-spectrum/searchfield");
var _statuslight = require("@react-spectrum/statuslight");
var _switch = require("@react-spectrum/switch");
var _text = require("@react-spectrum/text");
var _table = require("@react-spectrum/table");
var _tabs = require("@react-spectrum/tabs");
var _tag = require("@react-spectrum/tag");
var _textfield = require("@react-spectrum/textfield");
var _themeDark = require("@react-spectrum/theme-dark");
var _themeDefault = require("@react-spectrum/theme-default");
var _themeLight = require("@react-spectrum/theme-light");
var _tooltip = require("@react-spectrum/tooltip");
var _view = require("@react-spectrum/view");
var _well = require("@react-spectrum/well");
var _collections = require("@react-stately/collections");
var _data = require("@react-stately/data");
var _visuallyHidden = require("@react-aria/visually-hidden");
var _i18N = require("@react-aria/i18n");
var _ssr = require("@react-aria/ssr");
var _dnd = require("@react-spectrum/dnd");

},{"@react-spectrum/actiongroup":false,"@react-spectrum/badge":false,"@react-spectrum/breadcrumbs":false,"@react-spectrum/actionbar":false,"@react-spectrum/button":"9ryHb","@react-spectrum/avatar":false,"@react-spectrum/buttongroup":false,"@react-spectrum/calendar":false,"@react-spectrum/checkbox":false,"@react-spectrum/combobox":false,"@react-spectrum/contextualhelp":false,"@react-spectrum/dialog":false,"@react-spectrum/datepicker":false,"@react-spectrum/divider":false,"@react-spectrum/form":false,"@react-spectrum/icon":false,"@react-spectrum/illustratedmessage":false,"@react-spectrum/inlinealert":false,"@react-spectrum/image":false,"@react-spectrum/layout":"hyyym","@react-spectrum/labeledvalue":false,"@react-spectrum/link":"2k0iN","@react-spectrum/listbox":false,"@react-spectrum/list":false,"@react-spectrum/menu":false,"@react-spectrum/meter":false,"@react-spectrum/numberfield":false,"@react-spectrum/picker":false,"@react-spectrum/progress":false,"@react-spectrum/provider":false,"@react-spectrum/radio":false,"@react-spectrum/slider":false,"@react-spectrum/searchfield":false,"@react-spectrum/statuslight":false,"@react-spectrum/switch":false,"@react-spectrum/text":"5ySa2","@react-spectrum/table":false,"@react-spectrum/tabs":false,"@react-spectrum/tag":false,"@react-spectrum/textfield":false,"@react-spectrum/theme-dark":false,"@react-spectrum/theme-default":false,"@react-spectrum/theme-light":false,"@react-spectrum/tooltip":false,"@react-spectrum/view":false,"@react-spectrum/well":false,"@react-stately/collections":false,"@react-stately/data":false,"@react-aria/visually-hidden":false,"@react-aria/i18n":false,"@react-aria/ssr":false,"@react-spectrum/dnd":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bZI1U":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Breadcrumbs", ()=>(0, _breadcrumbs.Breadcrumbs));
parcelHelpers.export(exports, "Item", ()=>(0, _collections.Item));
var _breadcrumbs = require("./Breadcrumbs");
var _collections = require("@react-stately/collections");

},{"./Breadcrumbs":"8Irer","@react-stately/collections":"l5k8z","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8Irer":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Breadcrumbs", ()=>_Breadcrumbs);
var _button = require("@react-spectrum/button");
var _breadcrumbItem = require("./BreadcrumbItem");
var _utils = require("@react-spectrum/utils");
var _folderBreadcrumb = require("@spectrum-icons/ui/FolderBreadcrumb");
var _folderBreadcrumbDefault = parcelHelpers.interopDefault(_folderBreadcrumb);
var _menu = require("@react-spectrum/menu");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/breadcrumb/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _breadcrumbs = require("@react-aria/breadcrumbs");
var _utils1 = require("@react-aria/utils");
var _provider = require("@react-spectrum/provider");
const MIN_VISIBLE_ITEMS = 1;
const MAX_VISIBLE_ITEMS = 4;
function Breadcrumbs(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    let { size ="L" , isMultiline , children , showRoot , isDisabled , onAction , autoFocusCurrent , ...otherProps } = props;
    // Not using React.Children.toArray because it mutates the key prop.
    let childArray = [];
    (0, _reactDefault.default).Children.forEach(children, (child)=>{
        if (/*#__PURE__*/ (0, _reactDefault.default).isValidElement(child)) childArray.push(child);
    });
    let domRef = (0, _utils.useDOMRef)(ref);
    let listRef = (0, _react.useRef)(null);
    let [visibleItems, setVisibleItems] = (0, _utils1.useValueEffect)(childArray.length);
    let { navProps  } = (0, _breadcrumbs.useBreadcrumbs)(props);
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let updateOverflow = (0, _react.useCallback)(()=>{
        let computeVisibleItems = (visibleItems)=>{
            // Refs can be null at runtime.
            let currListRef = listRef.current;
            if (!currListRef) return visibleItems;
            let listItems = Array.from(currListRef.children);
            if (listItems.length <= 0) return visibleItems;
            let containerWidth = currListRef.offsetWidth;
            let isShowingMenu = childArray.length > visibleItems;
            let calculatedWidth = 0;
            let newVisibleItems = 0;
            let maxVisibleItems = MAX_VISIBLE_ITEMS;
            if (showRoot) {
                calculatedWidth += listItems.shift().offsetWidth;
                newVisibleItems++;
            }
            if (isShowingMenu) {
                calculatedWidth += listItems.shift().offsetWidth;
                maxVisibleItems--;
            }
            if (showRoot && calculatedWidth >= containerWidth) newVisibleItems--;
            // TODO: what if multiline and only one breadcrumb??
            if (isMultiline) {
                listItems.pop();
                newVisibleItems++;
            } else if (listItems.length > 0) {
                // Ensure the last breadcrumb isn't truncated when we measure it.
                let last = listItems.pop();
                last.style.overflow = "visible";
                calculatedWidth += last.offsetWidth;
                if (calculatedWidth < containerWidth) newVisibleItems++;
                last.style.overflow = "";
            }
            for (let breadcrumb of listItems.reverse()){
                calculatedWidth += breadcrumb.offsetWidth;
                if (calculatedWidth < containerWidth) newVisibleItems++;
            }
            return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));
        };
        setVisibleItems(function*() {
            // Update to show all items.
            yield childArray.length;
            // Measure, and update to show the items that fit.
            let newVisibleItems = computeVisibleItems(childArray.length);
            yield newVisibleItems;
            // If the number of items is less than the number of children,
            // then update again to ensure that the menu fits.
            if (newVisibleItems < childArray.length && newVisibleItems > 1) yield computeVisibleItems(newVisibleItems);
        });
    }, [
        childArray.length,
        setVisibleItems,
        showRoot,
        isMultiline
    ]);
    (0, _utils1.useResizeObserver)({
        ref: domRef,
        onResize: updateOverflow
    });
    let lastChildren = (0, _react.useRef)(null);
    (0, _utils1.useLayoutEffect)(()=>{
        if (children !== lastChildren.current) {
            lastChildren.current = children;
            updateOverflow();
        }
    });
    let contents = childArray;
    if (childArray.length > visibleItems) {
        let selectedItem = childArray[childArray.length - 1];
        var _selectedItem_key;
        let selectedKey = (_selectedItem_key = selectedItem.key) !== null && _selectedItem_key !== void 0 ? _selectedItem_key : childArray.length - 1;
        let onMenuAction = (key)=>{
            // Don't fire onAction when clicking on the last item
            if (key !== selectedKey && onAction) onAction(key);
        };
        let menuItem = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _breadcrumbItem.BreadcrumbItem), {
            key: "menu"
        }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _menu.MenuTrigger), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _button.ActionButton), {
            "aria-label": "…",
            isQuiet: true,
            isDisabled: isDisabled
        }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _folderBreadcrumbDefault.default), null)), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _menu.Menu), {
            selectionMode: "single",
            selectedKeys: [
                selectedKey
            ],
            onAction: onMenuAction
        }, childArray)));
        contents = [
            menuItem
        ];
        let breadcrumbs = [
            ...childArray
        ];
        let endItems = visibleItems;
        if (showRoot && visibleItems > 1) {
            let rootItem = breadcrumbs.shift();
            if (rootItem) contents.unshift(rootItem);
            endItems--;
        }
        contents.push(...breadcrumbs.slice(-endItems));
    }
    let lastIndex = contents.length - 1;
    let breadcrumbItems = contents.map((child, index)=>{
        let isCurrent = index === lastIndex;
        var _child_key;
        let key = (_child_key = child.key) !== null && _child_key !== void 0 ? _child_key : index;
        let onPress = ()=>{
            if (onAction) onAction(key);
        };
        return /*#__PURE__*/ (0, _reactDefault.default).createElement("li", {
            key: index,
            className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Breadcrumbs-item")
        }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _breadcrumbItem.BreadcrumbItem), {
            key: key,
            isCurrent: isCurrent,
            isDisabled: isDisabled,
            onPress: onPress,
            autoFocus: isCurrent && autoFocusCurrent
        }, child.props.children));
    });
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("nav", {
        ...styleProps,
        ...navProps,
        ref: domRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("ul", {
        ref: listRef,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Breadcrumbs", {
            "spectrum-Breadcrumbs--small": size === "S",
            "spectrum-Breadcrumbs--medium": size === "M",
            "spectrum-Breadcrumbs--multiline": isMultiline,
            "spectrum-Breadcrumbs--showRoot": showRoot,
            "is-disabled": isDisabled
        }, styleProps.className)
    }, breadcrumbItems));
}
/**
 * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.
 */ let _Breadcrumbs = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Breadcrumbs);

},{"@react-spectrum/button":"9ryHb","./BreadcrumbItem":"bQmn8","@react-spectrum/utils":"cYYzN","@spectrum-icons/ui/FolderBreadcrumb":"erEAo","@react-spectrum/menu":"it13J","react":"react","@adobe/spectrum-css-temp/components/breadcrumb/vars.css":"cOF6f","@react-aria/breadcrumbs":"7hSlL","@react-aria/utils":"5XGXZ","@react-spectrum/provider":"aPwML","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9ryHb":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Button", ()=>(0, _button.Button));
parcelHelpers.export(exports, "ActionButton", ()=>(0, _actionButton.ActionButton));
parcelHelpers.export(exports, "FieldButton", ()=>(0, _fieldButton.FieldButton));
parcelHelpers.export(exports, "LogicButton", ()=>(0, _logicButton.LogicButton));
parcelHelpers.export(exports, "ClearButton", ()=>(0, _clearButton.ClearButton));
parcelHelpers.export(exports, "ToggleButton", ()=>(0, _toggleButton.ToggleButton));
var _button = require("./Button");
var _actionButton = require("./ActionButton");
var _fieldButton = require("./FieldButton");
var _logicButton = require("./LogicButton");
var _clearButton = require("./ClearButton");
var _toggleButton = require("./ToggleButton");

},{"./Button":false,"./ActionButton":"7R4SS","./FieldButton":false,"./LogicButton":false,"./ClearButton":"5dJSB","./ToggleButton":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7R4SS":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ActionButton", ()=>_ActionButton);
var _utils = require("@react-spectrum/utils");
var _cornerTriangle = require("@spectrum-icons/ui/CornerTriangle");
var _cornerTriangleDefault = parcelHelpers.interopDefault(_cornerTriangle);
var _focus = require("@react-aria/focus");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/button/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _text = require("@react-spectrum/text");
var _button = require("@react-aria/button");
var _interactions = require("@react-aria/interactions");
var _provider = require("@react-spectrum/provider");
function ActionButton(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    props = (0, _utils.useSlotProps)(props, "actionButton");
    let { isQuiet , isDisabled , staticColor , children , autoFocus , // @ts-ignore (private)
    holdAffordance , ...otherProps } = props;
    let domRef = (0, _utils.useFocusableRef)(ref);
    let { buttonProps , isPressed  } = (0, _button.useButton)(props, domRef);
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({
        isDisabled
    });
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let isTextOnly = (0, _reactDefault.default).Children.toArray(props.children).every((c)=>!/*#__PURE__*/ (0, _reactDefault.default).isValidElement(c));
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault.default), "focus-ring"),
        autoFocus: autoFocus
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("button", {
        ...styleProps,
        ...(0, _utils1.mergeProps)(buttonProps, hoverProps),
        ref: domRef,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ActionButton", {
            "spectrum-ActionButton--quiet": isQuiet,
            "spectrum-ActionButton--staticColor": !!staticColor,
            "spectrum-ActionButton--staticWhite": staticColor === "white",
            "spectrum-ActionButton--staticBlack": staticColor === "black",
            "is-active": isPressed,
            "is-disabled": isDisabled,
            "is-hovered": isHovered
        }, styleProps.className)
    }, holdAffordance && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _cornerTriangleDefault.default), {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ActionButton-hold")
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.SlotProvider), {
        slots: {
            icon: {
                size: "S",
                UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Icon")
            },
            text: {
                UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ActionButton-label")
            }
        }
    }, typeof children === "string" || isTextOnly ? /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _text.Text), null, children) : children)));
}
/**
 * ActionButtons allow users to perform an action.
 * They’re used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren’t meant to draw a lot of attention.
 */ let _ActionButton = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(ActionButton);

},{"@react-spectrum/utils":"cYYzN","@spectrum-icons/ui/CornerTriangle":"PdeUf","@react-aria/focus":"cRsYs","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/button/vars.css":"kFpde","@react-spectrum/text":"5ySa2","@react-aria/button":"9DUfq","@react-aria/interactions":"3eipm","@react-spectrum/provider":"aPwML","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"cYYzN":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "shouldKeepSpectrumClassNames", ()=>(0, _classNames.shouldKeepSpectrumClassNames));
parcelHelpers.export(exports, "keepSpectrumClassNames", ()=>(0, _classNames.keepSpectrumClassNames));
parcelHelpers.export(exports, "classNames", ()=>(0, _classNames.classNames));
parcelHelpers.export(exports, "getWrappedElement", ()=>(0, _getWrappedElement.getWrappedElement));
parcelHelpers.export(exports, "useMediaQuery", ()=>(0, _useMediaQuery.useMediaQuery));
parcelHelpers.export(exports, "createDOMRef", ()=>(0, _useDOMRef.createDOMRef));
parcelHelpers.export(exports, "createFocusableRef", ()=>(0, _useDOMRef.createFocusableRef));
parcelHelpers.export(exports, "useDOMRef", ()=>(0, _useDOMRef.useDOMRef));
parcelHelpers.export(exports, "useFocusableRef", ()=>(0, _useDOMRef.useFocusableRef));
parcelHelpers.export(exports, "unwrapDOMRef", ()=>(0, _useDOMRef.unwrapDOMRef));
parcelHelpers.export(exports, "useUnwrapDOMRef", ()=>(0, _useDOMRef.useUnwrapDOMRef));
parcelHelpers.export(exports, "baseStyleProps", ()=>(0, _styleProps.baseStyleProps));
parcelHelpers.export(exports, "viewStyleProps", ()=>(0, _styleProps.viewStyleProps));
parcelHelpers.export(exports, "dimensionValue", ()=>(0, _styleProps.dimensionValue));
parcelHelpers.export(exports, "responsiveDimensionValue", ()=>(0, _styleProps.responsiveDimensionValue));
parcelHelpers.export(exports, "convertStyleProps", ()=>(0, _styleProps.convertStyleProps));
parcelHelpers.export(exports, "useStyleProps", ()=>(0, _styleProps.useStyleProps));
parcelHelpers.export(exports, "passthroughStyle", ()=>(0, _styleProps.passthroughStyle));
parcelHelpers.export(exports, "getResponsiveProp", ()=>(0, _styleProps.getResponsiveProp));
parcelHelpers.export(exports, "useSlotProps", ()=>(0, _slots.useSlotProps));
parcelHelpers.export(exports, "cssModuleToSlots", ()=>(0, _slots.cssModuleToSlots));
parcelHelpers.export(exports, "SlotProvider", ()=>(0, _slots.SlotProvider));
parcelHelpers.export(exports, "ClearSlots", ()=>(0, _slots.ClearSlots));
parcelHelpers.export(exports, "useHasChild", ()=>(0, _useHasChild.useHasChild));
parcelHelpers.export(exports, "useIsMobileDevice", ()=>(0, _useIsMobileDevice.useIsMobileDevice));
parcelHelpers.export(exports, "useValueEffect", ()=>(0, _utils.useValueEffect));
parcelHelpers.export(exports, "BreakpointProvider", ()=>(0, _breakpointProvider.BreakpointProvider));
parcelHelpers.export(exports, "useMatchedBreakpoints", ()=>(0, _breakpointProvider.useMatchedBreakpoints));
parcelHelpers.export(exports, "useBreakpoint", ()=>(0, _breakpointProvider.useBreakpoint));
parcelHelpers.export(exports, "useResizeObserver", ()=>(0, _utils.useResizeObserver));
var _classNames = require("./classNames");
var _getWrappedElement = require("./getWrappedElement");
var _useMediaQuery = require("./useMediaQuery");
var _useDOMRef = require("./useDOMRef");
var _styleProps = require("./styleProps");
var _slots = require("./Slots");
var _useHasChild = require("./useHasChild");
var _useIsMobileDevice = require("./useIsMobileDevice");
var _utils = require("@react-aria/utils");
var _breakpointProvider = require("./BreakpointProvider");

},{"./classNames":"2un2P","./getWrappedElement":"aILj7","./useMediaQuery":"3Yq6t","./useDOMRef":"jgPEA","./styleProps":"jSWc7","./Slots":"k0t5M","./useHasChild":"duR3i","./useIsMobileDevice":"22AYa","@react-aria/utils":"5XGXZ","./BreakpointProvider":"7rdgB","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"2un2P":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "shouldKeepSpectrumClassNames", ()=>shouldKeepSpectrumClassNames);
parcelHelpers.export(exports, "keepSpectrumClassNames", ()=>keepSpectrumClassNames);
parcelHelpers.export(exports, "classNames", ()=>classNames);
var _clsx = require("clsx");
var _clsxDefault = parcelHelpers.interopDefault(_clsx);
let shouldKeepSpectrumClassNames = false;
function keepSpectrumClassNames() {
    shouldKeepSpectrumClassNames = true;
    console.warn("Legacy spectrum-prefixed class names enabled for backward compatibility. We recommend replacing instances of CSS overrides targeting spectrum selectors in your app with custom class names of your own, and disabling this flag.");
}
function classNames(cssModule, ...values) {
    let classes = [];
    for (let value of values){
        if (typeof value === "object" && value) {
            let mapped = {};
            for(let key in value){
                if (cssModule[key]) mapped[cssModule[key]] = value[key];
                if (shouldKeepSpectrumClassNames || !cssModule[key]) mapped[key] = value[key];
            }
            classes.push(mapped);
        } else if (typeof value === "string") {
            if (cssModule[value]) classes.push(cssModule[value]);
            if (shouldKeepSpectrumClassNames || !cssModule[value]) classes.push(value);
        } else classes.push(value);
    }
    return (0, _clsxDefault.default)(...classes);
}

},{"clsx":"bY7QY","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bY7QY":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "default", ()=>function() {
        var i = 0, tmp, x, str = "";
        while(i < arguments.length){
            if (tmp = arguments[i++]) {
                if (x = toVal(tmp)) {
                    str && (str += " ");
                    str += x;
                }
            }
        }
        return str;
    });
function toVal(mix) {
    var k, y, str = "";
    if (typeof mix === "string" || typeof mix === "number") str += mix;
    else if (typeof mix === "object") {
        if (Array.isArray(mix)) for(k = 0; k < mix.length; k++){
            if (mix[k]) {
                if (y = toVal(mix[k])) {
                    str && (str += " ");
                    str += y;
                }
            }
        }
        else {
            for(k in mix)if (mix[k]) {
                str && (str += " ");
                str += k;
            }
        }
    }
    return str;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7dwQU":[function(require,module,exports) {
exports.interopDefault = function(a) {
    return a && a.__esModule ? a : {
        default: a
    };
};
exports.defineInteropFlag = function(a) {
    Object.defineProperty(a, "__esModule", {
        value: true
    });
};
exports.exportAll = function(source, dest) {
    Object.keys(source).forEach(function(key) {
        if (key === "default" || key === "__esModule" || dest.hasOwnProperty(key)) return;
        Object.defineProperty(dest, key, {
            enumerable: true,
            get: function() {
                return source[key];
            }
        });
    });
    return dest;
};
exports.export = function(dest, destName, get) {
    Object.defineProperty(dest, destName, {
        enumerable: true,
        get: get
    });
};

},{}],"aILj7":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getWrappedElement", ()=>getWrappedElement);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
function getWrappedElement(children) {
    let element;
    if (typeof children === "string") element = /*#__PURE__*/ (0, _reactDefault.default).createElement("span", null, children);
    else element = (0, _reactDefault.default).Children.only(children);
    return element;
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3Yq6t":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useMediaQuery", ()=>useMediaQuery);
var _react = require("react");
var _ssr = require("@react-aria/ssr");
function useMediaQuery(query) {
    let supportsMatchMedia = typeof window !== "undefined" && typeof window.matchMedia === "function";
    let [matches, setMatches] = (0, _react.useState)(()=>supportsMatchMedia ? window.matchMedia(query).matches : false);
    (0, _react.useEffect)(()=>{
        if (!supportsMatchMedia) return;
        let mq = window.matchMedia(query);
        let onChange = (evt)=>{
            setMatches(evt.matches);
        };
        mq.addListener(onChange);
        return ()=>{
            mq.removeListener(onChange);
        };
    }, [
        supportsMatchMedia,
        query
    ]);
    // If in SSR, the media query should never match. Once the page hydrates,
    // this will update and the real value will be returned.
    let isSSR = (0, _ssr.useIsSSR)();
    return isSSR ? false : matches;
}

},{"react":"react","@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"dEKj5":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "SSRProvider", ()=>(0, _ssrprovider.SSRProvider));
parcelHelpers.export(exports, "useSSRSafeId", ()=>(0, _ssrprovider.useSSRSafeId));
parcelHelpers.export(exports, "useIsSSR", ()=>(0, _ssrprovider.useIsSSR));
var _ssrprovider = require("./SSRProvider");

},{"./SSRProvider":"8bJef","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8bJef":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is
// guarded by a check that it only runs on the client side.
// eslint-disable-next-line rulesdir/useLayoutEffectRule
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * When using SSR with React Aria in React 16 or 17, applications must be wrapped in an SSRProvider.
 * This ensures that auto generated ids are consistent between the client and server.
 */ parcelHelpers.export(exports, "SSRProvider", ()=>SSRProvider);
parcelHelpers.export(exports, "useSSRSafeId", ()=>useSSRSafeId);
/**
 * Returns whether the component is currently being server side rendered or
 * hydrated on the client. Can be used to delay browser-specific rendering
 * until after hydration.
 */ parcelHelpers.export(exports, "useIsSSR", ()=>useIsSSR);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
// Default context value to use in case there is no SSRProvider. This is fine for
// client-only apps. In order to support multiple copies of React Aria potentially
// being on the page at once, the prefix is set to a random number. SSRProvider
// will reset this to zero for consistency between server and client, so in the
// SSR case multiple copies of React Aria is not supported.
const defaultContext = {
    prefix: String(Math.round(Math.random() * 10000000000)),
    current: 0,
    isSSR: false
};
const SSRContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(defaultContext);
// This is only used in React < 18.
function LegacySSRProvider(props) {
    let cur = (0, _react.useContext)(SSRContext);
    let counter = useCounter(cur === defaultContext);
    let [isSSR, setIsSSR] = (0, _react.useState)(true);
    let value = (0, _react.useMemo)(()=>({
            // If this is the first SSRProvider, start with an empty string prefix, otherwise
            // append and increment the counter.
            prefix: cur === defaultContext ? "" : `${cur.prefix}-${counter}`,
            current: 0,
            isSSR
        }), [
        cur,
        counter,
        isSSR
    ]);
    // If on the client, and the component was initially server rendered,
    // then schedule a layout effect to update the component after hydration.
    if (typeof document !== "undefined") // This if statement technically breaks the rules of hooks, but is safe
    // because the condition never changes after mounting.
    // eslint-disable-next-line react-hooks/rules-of-hooks
    (0, _react.useLayoutEffect)(()=>{
        setIsSSR(false);
    }, []);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(SSRContext.Provider, {
        value: value
    }, props.children);
}
let warnedAboutSSRProvider = false;
function SSRProvider(props) {
    if (typeof (0, _reactDefault.default)["useId"] === "function") {
        if (!warnedAboutSSRProvider) {
            console.warn("In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.");
            warnedAboutSSRProvider = true;
        }
        return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, props.children);
    }
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(LegacySSRProvider, props);
}
let canUseDOM = Boolean(typeof window !== "undefined" && window.document && window.document.createElement);
let componentIds = new WeakMap();
function useCounter(isDisabled = false) {
    let ctx = (0, _react.useContext)(SSRContext);
    let ref = (0, _react.useRef)(null);
    // eslint-disable-next-line rulesdir/pure-render
    if (ref.current === null && !isDisabled) {
        var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner;
        // In strict mode, React renders components twice, and the ref will be reset to null on the second render.
        // This means our id counter will be incremented twice instead of once. This is a problem because on the
        // server, components are only rendered once and so ids generated on the server won't match the client.
        // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this
        // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.
        // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.
        // To ensure that we only increment the global counter once, we store the starting id for this component in
        // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.
        // Since React runs the second render immediately after the first, this is safe.
        // @ts-ignore
        let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, _reactDefault.default).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;
        if (currentOwner) {
            let prevComponentValue = componentIds.get(currentOwner);
            if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.
            componentIds.set(currentOwner, {
                id: ctx.current,
                state: currentOwner.memoizedState
            });
            else if (currentOwner.memoizedState !== prevComponentValue.state) {
                // On the second render, the memoizedState gets reset by React.
                // Reset the counter, and remove from the weak map so we don't
                // do this for subsequent useId calls.
                ctx.current = prevComponentValue.id;
                componentIds.delete(currentOwner);
            }
        }
        // eslint-disable-next-line rulesdir/pure-render
        ref.current = ++ctx.current;
    }
    // eslint-disable-next-line rulesdir/pure-render
    return ref.current;
}
function useLegacySSRSafeId(defaultId) {
    let ctx = (0, _react.useContext)(SSRContext);
    // If we are rendering in a non-DOM environment, and there's no SSRProvider,
    // provide a warning to hint to the developer to add one.
    if (ctx === defaultContext && !canUseDOM) console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");
    let counter = useCounter(!!defaultId);
    let prefix = `react-aria${ctx.prefix}`;
    return defaultId || `${prefix}-${counter}`;
}
function useModernSSRSafeId(defaultId) {
    // @ts-ignore
    let id = (0, _reactDefault.default).useId();
    let [didSSR] = (0, _react.useState)(useIsSSR());
    let prefix = didSSR || false ? "react-aria" : `react-aria${defaultContext.prefix}`;
    return defaultId || `${prefix}-${id}`;
}
const useSSRSafeId = typeof (0, _reactDefault.default)["useId"] === "function" ? useModernSSRSafeId : useLegacySSRSafeId;
function getSnapshot() {
    return false;
}
function getServerSnapshot() {
    return true;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function subscribe(onStoreChange) {
    // noop
    return ()=>{};
}
function useIsSSR() {
    // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.
    if (typeof (0, _reactDefault.default)["useSyncExternalStore"] === "function") return (0, _reactDefault.default)["useSyncExternalStore"](subscribe, getSnapshot, getServerSnapshot);
    // eslint-disable-next-line react-hooks/rules-of-hooks
    let cur = (0, _react.useContext)(SSRContext);
    return cur.isSSR;
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jgPEA":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "createDOMRef", ()=>createDOMRef);
parcelHelpers.export(exports, "createFocusableRef", ()=>createFocusableRef);
parcelHelpers.export(exports, "useDOMRef", ()=>useDOMRef);
parcelHelpers.export(exports, "useFocusableRef", ()=>useFocusableRef);
parcelHelpers.export(exports, "unwrapDOMRef", ()=>unwrapDOMRef);
parcelHelpers.export(exports, "useUnwrapDOMRef", ()=>useUnwrapDOMRef);
var _react = require("react");
function createDOMRef(ref) {
    return {
        UNSAFE_getDOMNode () {
            return ref.current;
        }
    };
}
function createFocusableRef(domRef, focusableRef = domRef) {
    return {
        ...createDOMRef(domRef),
        focus () {
            if (focusableRef.current) focusableRef.current.focus();
        }
    };
}
function useDOMRef(ref) {
    let domRef = (0, _react.useRef)(null);
    (0, _react.useImperativeHandle)(ref, ()=>createDOMRef(domRef));
    return domRef;
}
function useFocusableRef(ref, focusableRef) {
    let domRef = (0, _react.useRef)(null);
    (0, _react.useImperativeHandle)(ref, ()=>createFocusableRef(domRef, focusableRef));
    return domRef;
}
function unwrapDOMRef(ref) {
    return {
        get current () {
            return ref.current && ref.current.UNSAFE_getDOMNode();
        }
    };
}
function useUnwrapDOMRef(ref) {
    return (0, _react.useMemo)(()=>unwrapDOMRef(ref), [
        ref
    ]);
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jSWc7":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "baseStyleProps", ()=>baseStyleProps);
parcelHelpers.export(exports, "viewStyleProps", ()=>viewStyleProps);
parcelHelpers.export(exports, "dimensionValue", ()=>dimensionValue);
parcelHelpers.export(exports, "responsiveDimensionValue", ()=>responsiveDimensionValue);
parcelHelpers.export(exports, "convertStyleProps", ()=>convertStyleProps);
parcelHelpers.export(exports, "useStyleProps", ()=>useStyleProps);
parcelHelpers.export(exports, "passthroughStyle", ()=>passthroughStyle);
parcelHelpers.export(exports, "getResponsiveProp", ()=>getResponsiveProp);
var _breakpointProvider = require("./BreakpointProvider");
var _i18N = require("@react-aria/i18n");
const baseStyleProps = {
    margin: [
        "margin",
        dimensionValue
    ],
    marginStart: [
        rtl("marginLeft", "marginRight"),
        dimensionValue
    ],
    marginEnd: [
        rtl("marginRight", "marginLeft"),
        dimensionValue
    ],
    // marginLeft: ['marginLeft', dimensionValue],
    // marginRight: ['marginRight', dimensionValue],
    marginTop: [
        "marginTop",
        dimensionValue
    ],
    marginBottom: [
        "marginBottom",
        dimensionValue
    ],
    marginX: [
        [
            "marginLeft",
            "marginRight"
        ],
        dimensionValue
    ],
    marginY: [
        [
            "marginTop",
            "marginBottom"
        ],
        dimensionValue
    ],
    width: [
        "width",
        dimensionValue
    ],
    height: [
        "height",
        dimensionValue
    ],
    minWidth: [
        "minWidth",
        dimensionValue
    ],
    minHeight: [
        "minHeight",
        dimensionValue
    ],
    maxWidth: [
        "maxWidth",
        dimensionValue
    ],
    maxHeight: [
        "maxHeight",
        dimensionValue
    ],
    isHidden: [
        "display",
        hiddenValue
    ],
    alignSelf: [
        "alignSelf",
        passthroughStyle
    ],
    justifySelf: [
        "justifySelf",
        passthroughStyle
    ],
    position: [
        "position",
        anyValue
    ],
    zIndex: [
        "zIndex",
        anyValue
    ],
    top: [
        "top",
        dimensionValue
    ],
    bottom: [
        "bottom",
        dimensionValue
    ],
    start: [
        rtl("left", "right"),
        dimensionValue
    ],
    end: [
        rtl("right", "left"),
        dimensionValue
    ],
    left: [
        "left",
        dimensionValue
    ],
    right: [
        "right",
        dimensionValue
    ],
    order: [
        "order",
        anyValue
    ],
    flex: [
        "flex",
        flexValue
    ],
    flexGrow: [
        "flexGrow",
        passthroughStyle
    ],
    flexShrink: [
        "flexShrink",
        passthroughStyle
    ],
    flexBasis: [
        "flexBasis",
        passthroughStyle
    ],
    gridArea: [
        "gridArea",
        passthroughStyle
    ],
    gridColumn: [
        "gridColumn",
        passthroughStyle
    ],
    gridColumnEnd: [
        "gridColumnEnd",
        passthroughStyle
    ],
    gridColumnStart: [
        "gridColumnStart",
        passthroughStyle
    ],
    gridRow: [
        "gridRow",
        passthroughStyle
    ],
    gridRowEnd: [
        "gridRowEnd",
        passthroughStyle
    ],
    gridRowStart: [
        "gridRowStart",
        passthroughStyle
    ]
};
const viewStyleProps = {
    ...baseStyleProps,
    backgroundColor: [
        "backgroundColor",
        backgroundColorValue
    ],
    borderWidth: [
        "borderWidth",
        borderSizeValue
    ],
    borderStartWidth: [
        rtl("borderLeftWidth", "borderRightWidth"),
        borderSizeValue
    ],
    borderEndWidth: [
        rtl("borderRightWidth", "borderLeftWidth"),
        borderSizeValue
    ],
    borderLeftWidth: [
        "borderLeftWidth",
        borderSizeValue
    ],
    borderRightWidth: [
        "borderRightWidth",
        borderSizeValue
    ],
    borderTopWidth: [
        "borderTopWidth",
        borderSizeValue
    ],
    borderBottomWidth: [
        "borderBottomWidth",
        borderSizeValue
    ],
    borderXWidth: [
        [
            "borderLeftWidth",
            "borderRightWidth"
        ],
        borderSizeValue
    ],
    borderYWidth: [
        [
            "borderTopWidth",
            "borderBottomWidth"
        ],
        borderSizeValue
    ],
    borderColor: [
        "borderColor",
        borderColorValue
    ],
    borderStartColor: [
        rtl("borderLeftColor", "borderRightColor"),
        borderColorValue
    ],
    borderEndColor: [
        rtl("borderRightColor", "borderLeftColor"),
        borderColorValue
    ],
    borderLeftColor: [
        "borderLeftColor",
        borderColorValue
    ],
    borderRightColor: [
        "borderRightColor",
        borderColorValue
    ],
    borderTopColor: [
        "borderTopColor",
        borderColorValue
    ],
    borderBottomColor: [
        "borderBottomColor",
        borderColorValue
    ],
    borderXColor: [
        [
            "borderLeftColor",
            "borderRightColor"
        ],
        borderColorValue
    ],
    borderYColor: [
        [
            "borderTopColor",
            "borderBottomColor"
        ],
        borderColorValue
    ],
    borderRadius: [
        "borderRadius",
        borderRadiusValue
    ],
    borderTopStartRadius: [
        rtl("borderTopLeftRadius", "borderTopRightRadius"),
        borderRadiusValue
    ],
    borderTopEndRadius: [
        rtl("borderTopRightRadius", "borderTopLeftRadius"),
        borderRadiusValue
    ],
    borderBottomStartRadius: [
        rtl("borderBottomLeftRadius", "borderBottomRightRadius"),
        borderRadiusValue
    ],
    borderBottomEndRadius: [
        rtl("borderBottomRightRadius", "borderBottomLeftRadius"),
        borderRadiusValue
    ],
    borderTopLeftRadius: [
        "borderTopLeftRadius",
        borderRadiusValue
    ],
    borderTopRightRadius: [
        "borderTopRightRadius",
        borderRadiusValue
    ],
    borderBottomLeftRadius: [
        "borderBottomLeftRadius",
        borderRadiusValue
    ],
    borderBottomRightRadius: [
        "borderBottomRightRadius",
        borderRadiusValue
    ],
    padding: [
        "padding",
        dimensionValue
    ],
    paddingStart: [
        rtl("paddingLeft", "paddingRight"),
        dimensionValue
    ],
    paddingEnd: [
        rtl("paddingRight", "paddingLeft"),
        dimensionValue
    ],
    paddingLeft: [
        "paddingLeft",
        dimensionValue
    ],
    paddingRight: [
        "paddingRight",
        dimensionValue
    ],
    paddingTop: [
        "paddingTop",
        dimensionValue
    ],
    paddingBottom: [
        "paddingBottom",
        dimensionValue
    ],
    paddingX: [
        [
            "paddingLeft",
            "paddingRight"
        ],
        dimensionValue
    ],
    paddingY: [
        [
            "paddingTop",
            "paddingBottom"
        ],
        dimensionValue
    ],
    overflow: [
        "overflow",
        passthroughStyle
    ]
};
const borderStyleProps = {
    borderWidth: "borderStyle",
    borderLeftWidth: "borderLeftStyle",
    borderRightWidth: "borderRightStyle",
    borderTopWidth: "borderTopStyle",
    borderBottomWidth: "borderBottomStyle"
};
function rtl(ltr, rtl) {
    return (direction)=>direction === "rtl" ? rtl : ltr;
}
const UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;
const FUNC_RE = /^\s*\w+\(/;
const SPECTRUM_VARIABLE_RE = /(static-)?size-\d+|single-line-(height|width)/g;
function dimensionValue(value) {
    if (typeof value === "number") return value + "px";
    if (UNIT_RE.test(value)) return value;
    if (FUNC_RE.test(value)) return value.replace(SPECTRUM_VARIABLE_RE, "var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))");
    return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;
}
function responsiveDimensionValue(value, matchedBreakpoints) {
    value = getResponsiveProp(value, matchedBreakpoints);
    return dimensionValue(value);
}
function colorValue(value, type = "default", version = 5) {
    if (version > 5) return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;
    return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;
}
function backgroundColorValue(value, version = 5) {
    return `var(--spectrum-alias-background-color-${value}, ${colorValue(value, "background", version)})`;
}
function borderColorValue(value, version = 5) {
    if (value === "default") return "var(--spectrum-alias-border-color)";
    return `var(--spectrum-alias-border-color-${value}, ${colorValue(value, "border", version)})`;
}
function borderSizeValue(value) {
    return `var(--spectrum-alias-border-size-${value})`;
}
function borderRadiusValue(value) {
    return `var(--spectrum-alias-border-radius-${value})`;
}
function hiddenValue(value) {
    return value ? "none" : undefined;
}
function anyValue(value) {
    return value;
}
function flexValue(value) {
    if (typeof value === "boolean") return value ? "1" : undefined;
    return "" + value;
}
function convertStyleProps(props, handlers, direction, matchedBreakpoints) {
    let style = {};
    for(let key in props){
        let styleProp = handlers[key];
        if (!styleProp || props[key] == null) continue;
        let [name, convert] = styleProp;
        if (typeof name === "function") name = name(direction);
        let prop = getResponsiveProp(props[key], matchedBreakpoints);
        let value = convert(prop, props.colorVersion);
        if (Array.isArray(name)) for (let k of name)style[k] = value;
        else style[name] = value;
    }
    for(let prop in borderStyleProps)if (style[prop]) {
        style[borderStyleProps[prop]] = "solid";
        style.boxSizing = "border-box";
    }
    return style;
}
function useStyleProps(props, handlers = baseStyleProps, options = {}) {
    let { UNSAFE_className , UNSAFE_style , ...otherProps } = props;
    let breakpointProvider = (0, _breakpointProvider.useBreakpoint)();
    let { direction  } = (0, _i18N.useLocale)();
    let { matchedBreakpoints =(breakpointProvider === null || breakpointProvider === void 0 ? void 0 : breakpointProvider.matchedBreakpoints) || [
        "base"
    ]  } = options;
    let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);
    let style = {
        ...UNSAFE_style,
        ...styles
    };
    // @ts-ignore
    if (otherProps.className) console.warn("The className prop is unsafe and is unsupported in React Spectrum v3. Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. Note that this may break in future versions due to DOM structure changes.");
    // @ts-ignore
    if (otherProps.style) console.warn("The style prop is unsafe and is unsupported in React Spectrum v3. Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. Note that this may break in future versions due to DOM structure changes.");
    let styleProps = {
        style,
        className: UNSAFE_className
    };
    if (getResponsiveProp(props.isHidden, matchedBreakpoints)) styleProps.hidden = true;
    return {
        styleProps
    };
}
function passthroughStyle(value) {
    return value;
}
function getResponsiveProp(prop, matchedBreakpoints) {
    if (prop && typeof prop === "object" && !Array.isArray(prop)) {
        for(let i = 0; i < matchedBreakpoints.length; i++){
            let breakpoint = matchedBreakpoints[i];
            if (prop[breakpoint] != null) return prop[breakpoint];
        }
        return prop.base;
    }
    return prop;
}

},{"./BreakpointProvider":"7rdgB","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7rdgB":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "BreakpointProvider", ()=>BreakpointProvider);
parcelHelpers.export(exports, "useMatchedBreakpoints", ()=>useMatchedBreakpoints);
parcelHelpers.export(exports, "useBreakpoint", ()=>useBreakpoint);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _ssr = require("@react-aria/ssr");
const Context = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
Context.displayName = "BreakpointContext";
function BreakpointProvider(props) {
    let { children , matchedBreakpoints  } = props;
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(Context.Provider, {
        value: {
            matchedBreakpoints
        }
    }, children);
}
function useMatchedBreakpoints(breakpoints) {
    let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB])=>valueB - valueA);
    let breakpointQueries = entries.map(([, value])=>`(min-width: ${value}px)`);
    let supportsMatchMedia = typeof window !== "undefined" && typeof window.matchMedia === "function";
    let getBreakpointHandler = ()=>{
        let matched = [];
        for(let i in breakpointQueries){
            let query = breakpointQueries[i];
            if (window.matchMedia(query).matches) matched.push(entries[i][0]);
        }
        matched.push("base");
        return matched;
    };
    let [breakpoint, setBreakpoint] = (0, _react.useState)(()=>supportsMatchMedia ? getBreakpointHandler() : [
            "base"
        ]);
    (0, _react.useEffect)(()=>{
        if (!supportsMatchMedia) return;
        let onResize = ()=>{
            const breakpointHandler = getBreakpointHandler();
            setBreakpoint((previousBreakpointHandler)=>{
                if (previousBreakpointHandler.length !== breakpointHandler.length || previousBreakpointHandler.some((breakpoint, idx)=>breakpoint !== breakpointHandler[idx])) return [
                    ...breakpointHandler
                ]; // Return a new array to force state change
                return previousBreakpointHandler;
            });
        };
        window.addEventListener("resize", onResize);
        return ()=>{
            window.removeEventListener("resize", onResize);
        };
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [
        supportsMatchMedia
    ]);
    // If in SSR, the media query should never match. Once the page hydrates,
    // this will update and the real value will be returned.
    let isSSR = (0, _ssr.useIsSSR)();
    return isSSR ? [
        "base"
    ] : breakpoint;
}
function useBreakpoint() {
    return (0, _react.useContext)(Context);
}

},{"react":"react","@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"lHUec":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "I18nProvider", ()=>(0, _context.I18nProvider));
parcelHelpers.export(exports, "useLocale", ()=>(0, _context.useLocale));
parcelHelpers.export(exports, "useMessageFormatter", ()=>(0, _useMessageFormatter.useMessageFormatter));
parcelHelpers.export(exports, "useLocalizedStringFormatter", ()=>(0, _useLocalizedStringFormatter.useLocalizedStringFormatter));
parcelHelpers.export(exports, "useListFormatter", ()=>(0, _useListFormatter.useListFormatter));
parcelHelpers.export(exports, "useDateFormatter", ()=>(0, _useDateFormatter.useDateFormatter));
parcelHelpers.export(exports, "useNumberFormatter", ()=>(0, _useNumberFormatter.useNumberFormatter));
parcelHelpers.export(exports, "useCollator", ()=>(0, _useCollator.useCollator));
parcelHelpers.export(exports, "useFilter", ()=>(0, _useFilter.useFilter));
var _context = require("./context");
var _useMessageFormatter = require("./useMessageFormatter");
var _useLocalizedStringFormatter = require("./useLocalizedStringFormatter");
var _useListFormatter = require("./useListFormatter");
var _useDateFormatter = require("./useDateFormatter");
var _useNumberFormatter = require("./useNumberFormatter");
var _useCollator = require("./useCollator");
var _useFilter = require("./useFilter");

},{"./context":"brlWr","./useMessageFormatter":"5JReK","./useLocalizedStringFormatter":"hjMmz","./useListFormatter":false,"./useDateFormatter":false,"./useNumberFormatter":"961fz","./useCollator":"agtU6","./useFilter":"5IwEQ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"brlWr":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the locale for the application to all child components.
 */ parcelHelpers.export(exports, "I18nProvider", ()=>I18nProvider);
/**
 * Returns the current locale and layout direction.
 */ parcelHelpers.export(exports, "useLocale", ()=>useLocale);
var _utils = require("./utils");
var _useDefaultLocale = require("./useDefaultLocale");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const I18nContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
function I18nProvider(props) {
    let { locale , children  } = props;
    let defaultLocale = (0, _useDefaultLocale.useDefaultLocale)();
    let value = locale ? {
        locale,
        direction: (0, _utils.isRTL)(locale) ? "rtl" : "ltr"
    } : defaultLocale;
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(I18nContext.Provider, {
        value: value
    }, children);
}
function useLocale() {
    let defaultLocale = (0, _useDefaultLocale.useDefaultLocale)();
    let context = (0, _react.useContext)(I18nContext);
    return context || defaultLocale;
}

},{"./utils":"eM7ag","./useDefaultLocale":"loLRh","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eM7ag":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // https://en.wikipedia.org/wiki/Right-to-left
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Determines if a locale is read right to left using [Intl.Locale]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale}.
 */ parcelHelpers.export(exports, "isRTL", ()=>isRTL);
const RTL_SCRIPTS = new Set([
    "Arab",
    "Syrc",
    "Samr",
    "Mand",
    "Thaa",
    "Mend",
    "Nkoo",
    "Adlm",
    "Rohg",
    "Hebr"
]);
const RTL_LANGS = new Set([
    "ae",
    "ar",
    "arc",
    "bcc",
    "bqi",
    "ckb",
    "dv",
    "fa",
    "glk",
    "he",
    "ku",
    "mzn",
    "nqo",
    "pnb",
    "ps",
    "sd",
    "ug",
    "ur",
    "yi"
]);
function isRTL(locale) {
    // If the Intl.Locale API is available, use it to get the script for the locale.
    // This is more accurate than guessing by language, since languages can be written in multiple scripts.
    // @ts-ignore
    if (Intl.Locale) {
        // @ts-ignore
        let script = new Intl.Locale(locale).maximize().script;
        return RTL_SCRIPTS.has(script);
    }
    // If not, just guess by the language (first part of the locale)
    let lang = locale.split("-")[0];
    return RTL_LANGS.has(lang);
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"loLRh":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Gets the locale setting of the browser.
 */ parcelHelpers.export(exports, "getDefaultLocale", ()=>getDefaultLocale);
/**
 * Returns the current browser/system language, and updates when it changes.
 */ parcelHelpers.export(exports, "useDefaultLocale", ()=>useDefaultLocale);
var _utils = require("./utils");
var _react = require("react");
var _ssr = require("@react-aria/ssr");
function getDefaultLocale() {
    // @ts-ignore
    let locale = typeof navigator !== "undefined" && (navigator.language || navigator.userLanguage) || "en-US";
    try {
        // @ts-ignore
        Intl.DateTimeFormat.supportedLocalesOf([
            locale
        ]);
    } catch (_err) {
        locale = "en-US";
    }
    return {
        locale,
        direction: (0, _utils.isRTL)(locale) ? "rtl" : "ltr"
    };
}
let currentLocale = getDefaultLocale();
let listeners = new Set();
function updateLocale() {
    currentLocale = getDefaultLocale();
    for (let listener of listeners)listener(currentLocale);
}
function useDefaultLocale() {
    let isSSR = (0, _ssr.useIsSSR)();
    let [defaultLocale, setDefaultLocale] = (0, _react.useState)(currentLocale);
    (0, _react.useEffect)(()=>{
        if (listeners.size === 0) window.addEventListener("languagechange", updateLocale);
        listeners.add(setDefaultLocale);
        return ()=>{
            listeners.delete(setDefaultLocale);
            if (listeners.size === 0) window.removeEventListener("languagechange", updateLocale);
        };
    }, []);
    // We cannot determine the browser's language on the server, so default to
    // en-US. This will be updated after hydration on the client to the correct value.
    if (isSSR) return {
        locale: "en-US",
        direction: "ltr"
    };
    return defaultLocale;
}

},{"./utils":"eM7ag","react":"react","@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5JReK":[function(require,module,exports) {
"use strict";

},{}],"hjMmz":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides localized string formatting for the current locale. Supports interpolating variables,
 * selecting the correct pluralization, and formatting numbers. Automatically updates when the locale changes.
 * @param strings - A mapping of languages to localized strings by key.
 */ parcelHelpers.export(exports, "useLocalizedStringFormatter", ()=>useLocalizedStringFormatter);
var _string = require("@internationalized/string");
var _context = require("./context");
var _react = require("react");
const cache = new WeakMap();
function getCachedDictionary(strings) {
    let dictionary = cache.get(strings);
    if (!dictionary) {
        dictionary = new (0, _string.LocalizedStringDictionary)(strings);
        cache.set(strings, dictionary);
    }
    return dictionary;
}
function useLocalizedStringFormatter(strings) {
    let { locale  } = (0, _context.useLocale)();
    let dictionary = (0, _react.useMemo)(()=>getCachedDictionary(strings), [
        strings
    ]);
    return (0, _react.useMemo)(()=>new (0, _string.LocalizedStringFormatter)(locale, dictionary), [
        locale,
        dictionary
    ]);
}

},{"@internationalized/string":"4oL0b","./context":"brlWr","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"4oL0b":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "LocalizedStringDictionary", ()=>(0, _localizedStringDictionary.LocalizedStringDictionary));
parcelHelpers.export(exports, "LocalizedStringFormatter", ()=>(0, _localizedStringFormatter.LocalizedStringFormatter));
var _localizedStringDictionary = require("./LocalizedStringDictionary");
var _localizedStringFormatter = require("./LocalizedStringFormatter");

},{"./LocalizedStringDictionary":"8AoCU","./LocalizedStringFormatter":"g1nxD","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8AoCU":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Stores a mapping of localized strings. Can be used to find the
 * closest available string for a given locale.
 */ parcelHelpers.export(exports, "LocalizedStringDictionary", ()=>LocalizedStringDictionary);
class LocalizedStringDictionary {
    /** Returns a localized string for the given key and locale. */ getStringForLocale(key, locale) {
        let strings = this.strings[locale];
        if (!strings) {
            strings = getStringsForLocale(locale, this.strings, this.defaultLocale);
            this.strings[locale] = strings;
        }
        let string = strings[key];
        if (!string) throw new Error(`Could not find intl message ${key} in ${locale} locale`);
        return string;
    }
    constructor(messages, defaultLocale = "en-US"){
        // Clone messages so we don't modify the original object.
        this.strings = {
            ...messages
        };
        this.defaultLocale = defaultLocale;
    }
}
function getStringsForLocale(locale, strings, defaultLocale = "en-US") {
    // If there is an exact match, use it.
    if (strings[locale]) return strings[locale];
    // Attempt to find the closest match by language.
    // For example, if the locale is fr-CA (French Canadian), but there is only
    // an fr-FR (France) set of strings, use that.
    // This could be replaced with Intl.LocaleMatcher once it is supported.
    // https://github.com/tc39/proposal-intl-localematcher
    let language = getLanguage(locale);
    if (strings[language]) return strings[language];
    for(let key in strings){
        if (key.startsWith(language + "-")) return strings[key];
    }
    // Nothing close, use english.
    return strings[defaultLocale];
}
function getLanguage(locale) {
    // @ts-ignore
    if (Intl.Locale) // @ts-ignore
    return new Intl.Locale(locale).language;
    return locale.split("-")[0];
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"g1nxD":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Formats localized strings from a LocalizedStringDictionary. Supports interpolating variables,
 * selecting the correct pluralization, and formatting numbers for the locale.
 */ parcelHelpers.export(exports, "LocalizedStringFormatter", ()=>LocalizedStringFormatter);
const pluralRulesCache = new Map();
const numberFormatCache = new Map();
class LocalizedStringFormatter {
    /** Formats a localized string for the given key with the provided variables. */ format(key, variables) {
        let message = this.strings.getStringForLocale(key, this.locale);
        return typeof message === "function" ? message(variables, this) : message;
    }
    plural(count, options, type = "cardinal") {
        let opt = options["=" + count];
        if (opt) return typeof opt === "function" ? opt() : opt;
        let key = this.locale + ":" + type;
        let pluralRules = pluralRulesCache.get(key);
        if (!pluralRules) {
            pluralRules = new Intl.PluralRules(this.locale, {
                type
            });
            pluralRulesCache.set(key, pluralRules);
        }
        let selected = pluralRules.select(count);
        opt = options[selected] || options.other;
        return typeof opt === "function" ? opt() : opt;
    }
    number(value) {
        let numberFormat = numberFormatCache.get(this.locale);
        if (!numberFormat) {
            numberFormat = new Intl.NumberFormat(this.locale);
            numberFormatCache.set(this.locale, numberFormat);
        }
        return numberFormat.format(value);
    }
    select(options, value) {
        let opt = options[value] || options.other;
        return typeof opt === "function" ? opt() : opt;
    }
    constructor(locale, strings){
        this.locale = locale;
        this.strings = strings;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"961fz":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides localized number formatting for the current locale. Automatically updates when the locale changes,
 * and handles caching of the number formatter for performance.
 * @param options - Formatting options.
 */ parcelHelpers.export(exports, "useNumberFormatter", ()=>useNumberFormatter);
var _number = require("@internationalized/number");
var _context = require("./context");
var _react = require("react");
function useNumberFormatter(options = {}) {
    let { locale  } = (0, _context.useLocale)();
    return (0, _react.useMemo)(()=>new (0, _number.NumberFormatter)(locale, options), [
        locale,
        options
    ]);
}

},{"@internationalized/number":"ccXCN","./context":"brlWr","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ccXCN":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "NumberFormatter", ()=>(0, _numberFormatter.NumberFormatter));
parcelHelpers.export(exports, "NumberParser", ()=>(0, _numberParser.NumberParser));
var _numberFormatter = require("./NumberFormatter");
var _numberParser = require("./NumberParser");

},{"./NumberFormatter":"girEf","./NumberParser":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"girEf":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance.
 */ parcelHelpers.export(exports, "NumberFormatter", ()=>NumberFormatter);
/** @private - exported for tests */ parcelHelpers.export(exports, "numberFormatSignDisplayPolyfill", ()=>numberFormatSignDisplayPolyfill);
let formatterCache = new Map();
let supportsSignDisplay = false;
try {
    // @ts-ignore
    supportsSignDisplay = new Intl.NumberFormat("de-DE", {
        signDisplay: "exceptZero"
    }).resolvedOptions().signDisplay === "exceptZero";
// eslint-disable-next-line no-empty
} catch (e) {}
let supportsUnit = false;
try {
    // @ts-ignore
    supportsUnit = new Intl.NumberFormat("de-DE", {
        style: "unit",
        unit: "degree"
    }).resolvedOptions().style === "unit";
// eslint-disable-next-line no-empty
} catch (e) {}
// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.
// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.
// Values were determined by switching to each locale manually in Chrome.
const UNITS = {
    degree: {
        narrow: {
            default: "\xb0",
            "ja-JP": " 度",
            "zh-TW": "度",
            "sl-SI": " \xb0"
        }
    }
};
class NumberFormatter {
    /** Formats a number value as a string, according to the locale and options provided to the constructor. */ format(value) {
        let res = "";
        if (!supportsSignDisplay && this.options.signDisplay != null) res = numberFormatSignDisplayPolyfill(this.numberFormatter, this.options.signDisplay, value);
        else res = this.numberFormatter.format(value);
        if (this.options.style === "unit" && !supportsUnit) {
            var _UNITS_unit;
            let { unit , unitDisplay ="short" , locale  } = this.resolvedOptions();
            let values = (_UNITS_unit = UNITS[unit]) === null || _UNITS_unit === void 0 ? void 0 : _UNITS_unit[unitDisplay];
            res += values[locale] || values.default;
        }
        return res;
    }
    /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */ formatToParts(value) {
        // TODO: implement signDisplay for formatToParts
        // @ts-ignore
        return this.numberFormatter.formatToParts(value);
    }
    /** Formats a number range as a string. */ formatRange(start, end) {
        // @ts-ignore
        if (typeof this.numberFormatter.formatRange === "function") // @ts-ignore
        return this.numberFormatter.formatRange(start, end);
        if (end < start) throw new RangeError("End date must be >= start date");
        // Very basic fallback for old browsers.
        return `${this.format(start)} – ${this.format(end)}`;
    }
    /** Formats a number range as an array of parts. */ formatRangeToParts(start, end) {
        // @ts-ignore
        if (typeof this.numberFormatter.formatRangeToParts === "function") // @ts-ignore
        return this.numberFormatter.formatRangeToParts(start, end);
        if (end < start) throw new RangeError("End date must be >= start date");
        let startParts = this.numberFormatter.formatToParts(start);
        let endParts = this.numberFormatter.formatToParts(end);
        return [
            ...startParts.map((p)=>({
                    ...p,
                    source: "startRange"
                })),
            {
                type: "literal",
                value: " – ",
                source: "shared"
            },
            ...endParts.map((p)=>({
                    ...p,
                    source: "endRange"
                }))
        ];
    }
    /** Returns the resolved formatting options based on the values passed to the constructor. */ resolvedOptions() {
        let options = this.numberFormatter.resolvedOptions();
        if (!supportsSignDisplay && this.options.signDisplay != null) options = {
            ...options,
            signDisplay: this.options.signDisplay
        };
        if (!supportsUnit && this.options.style === "unit") options = {
            ...options,
            style: "unit",
            unit: this.options.unit,
            unitDisplay: this.options.unitDisplay
        };
        return options;
    }
    constructor(locale, options = {}){
        this.numberFormatter = getCachedNumberFormatter(locale, options);
        this.options = options;
    }
}
function getCachedNumberFormatter(locale, options = {}) {
    let { numberingSystem  } = options;
    if (numberingSystem && locale.indexOf("-u-nu-") === -1) locale = `${locale}-u-nu-${numberingSystem}`;
    if (options.style === "unit" && !supportsUnit) {
        var _UNITS_unit;
        let { unit , unitDisplay ="short"  } = options;
        if (!unit) throw new Error('unit option must be provided with style: "unit"');
        if (!((_UNITS_unit = UNITS[unit]) === null || _UNITS_unit === void 0 ? void 0 : _UNITS_unit[unitDisplay])) throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);
        options = {
            ...options,
            style: "decimal"
        };
    }
    let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : "");
    if (formatterCache.has(cacheKey)) return formatterCache.get(cacheKey);
    let numberFormatter = new Intl.NumberFormat(locale, options);
    formatterCache.set(cacheKey, numberFormatter);
    return numberFormatter;
}
function numberFormatSignDisplayPolyfill(numberFormat, signDisplay, num) {
    if (signDisplay === "auto") return numberFormat.format(num);
    else if (signDisplay === "never") return numberFormat.format(Math.abs(num));
    else {
        let needsPositiveSign = false;
        if (signDisplay === "always") needsPositiveSign = num > 0 || Object.is(num, 0);
        else if (signDisplay === "exceptZero") {
            if (Object.is(num, -0) || Object.is(num, 0)) num = Math.abs(num);
            else needsPositiveSign = num > 0;
        }
        if (needsPositiveSign) {
            let negative = numberFormat.format(-num);
            let noSign = numberFormat.format(num);
            // ignore RTL/LTR marker character
            let minus = negative.replace(noSign, "").replace(/\u200e|\u061C/, "");
            if ([
                ...minus
            ].length !== 1) console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case");
            let positive = negative.replace(noSign, "!!!").replace(minus, "+").replace("!!!", noSign);
            return positive;
        } else return numberFormat.format(num);
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"agtU6":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides localized string collation for the current locale. Automatically updates when the locale changes,
 * and handles caching of the collator for performance.
 * @param options - Collator options.
 */ parcelHelpers.export(exports, "useCollator", ()=>useCollator);
var _context = require("./context");
let cache = new Map();
function useCollator(options) {
    let { locale  } = (0, _context.useLocale)();
    let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : "");
    if (cache.has(cacheKey)) return cache.get(cacheKey);
    let formatter = new Intl.Collator(locale, options);
    cache.set(cacheKey, formatter);
    return formatter;
}

},{"./context":"brlWr","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5IwEQ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides localized string search functionality that is useful for filtering or matching items
 * in a list. Options can be provided to adjust the sensitivity to case, diacritics, and other parameters.
 */ parcelHelpers.export(exports, "useFilter", ()=>useFilter);
var _react = require("react");
var _useCollator = require("./useCollator");
function useFilter(options) {
    let collator = (0, _useCollator.useCollator)({
        usage: "search",
        ...options
    });
    // TODO(later): these methods don't currently support the ignorePunctuation option.
    let startsWith = (0, _react.useCallback)((string, substring)=>{
        if (substring.length === 0) return true;
        // Normalize both strings so we can slice safely
        // TODO: take into account the ignorePunctuation option as well...
        string = string.normalize("NFC");
        substring = substring.normalize("NFC");
        return collator.compare(string.slice(0, substring.length), substring) === 0;
    }, [
        collator
    ]);
    let endsWith = (0, _react.useCallback)((string, substring)=>{
        if (substring.length === 0) return true;
        string = string.normalize("NFC");
        substring = substring.normalize("NFC");
        return collator.compare(string.slice(-substring.length), substring) === 0;
    }, [
        collator
    ]);
    let contains = (0, _react.useCallback)((string, substring)=>{
        if (substring.length === 0) return true;
        string = string.normalize("NFC");
        substring = substring.normalize("NFC");
        let scan = 0;
        let sliceLen = substring.length;
        for(; scan + sliceLen <= string.length; scan++){
            let slice = string.slice(scan, scan + sliceLen);
            if (collator.compare(substring, slice) === 0) return true;
        }
        return false;
    }, [
        collator
    ]);
    return (0, _react.useMemo)(()=>({
            startsWith,
            endsWith,
            contains
        }), [
        startsWith,
        endsWith,
        contains
    ]);
}

},{"react":"react","./useCollator":"agtU6","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"k0t5M":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useSlotProps", ()=>useSlotProps);
parcelHelpers.export(exports, "cssModuleToSlots", ()=>cssModuleToSlots);
parcelHelpers.export(exports, "SlotProvider", ()=>SlotProvider);
parcelHelpers.export(exports, "ClearSlots", ()=>ClearSlots);
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
let SlotContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
function useSlotProps(props, defaultSlot) {
    let slot = props.slot || defaultSlot;
    let { [slot]: slotProps = {}  } = (0, _react.useContext)(SlotContext) || {};
    return (0, _utils.mergeProps)(props, (0, _utils.mergeProps)(slotProps, {
        id: props.id
    }));
}
function cssModuleToSlots(cssModule) {
    return Object.keys(cssModule).reduce((acc, slot)=>{
        acc[slot] = {
            UNSAFE_className: cssModule[slot]
        };
        return acc;
    }, {});
}
function SlotProvider(props) {
    // eslint-disable-next-line react-hooks/exhaustive-deps
    let parentSlots = (0, _react.useContext)(SlotContext) || {};
    let { slots ={} , children  } = props;
    // Merge props for each slot from parent context and props
    let value = (0, _react.useMemo)(()=>Object.keys(parentSlots).concat(Object.keys(slots)).reduce((o, p)=>({
                ...o,
                [p]: (0, _utils.mergeProps)(parentSlots[p] || {}, slots[p] || {})
            }), {}), [
        parentSlots,
        slots
    ]);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(SlotContext.Provider, {
        value: value
    }, children);
}
function ClearSlots(props) {
    let { children , ...otherProps } = props;
    let content = children;
    if ((0, _reactDefault.default).Children.toArray(children).length <= 1) {
        if (typeof children === "function") content = /*#__PURE__*/ (0, _reactDefault.default).cloneElement((0, _reactDefault.default).Children.only(children), otherProps);
    }
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(SlotContext.Provider, {
        value: {}
    }, content);
}

},{"@react-aria/utils":"5XGXZ","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5XGXZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useId", ()=>(0, _useId.useId));
parcelHelpers.export(exports, "mergeIds", ()=>(0, _useId.mergeIds));
parcelHelpers.export(exports, "useSlotId", ()=>(0, _useId.useSlotId));
parcelHelpers.export(exports, "chain", ()=>(0, _chain.chain));
parcelHelpers.export(exports, "mergeProps", ()=>(0, _mergeProps.mergeProps));
parcelHelpers.export(exports, "mergeRefs", ()=>(0, _mergeRefs.mergeRefs));
parcelHelpers.export(exports, "filterDOMProps", ()=>(0, _filterDOMProps.filterDOMProps));
parcelHelpers.export(exports, "focusWithoutScrolling", ()=>(0, _focusWithoutScrolling.focusWithoutScrolling));
parcelHelpers.export(exports, "getOffset", ()=>(0, _getOffset.getOffset));
parcelHelpers.export(exports, "runAfterTransition", ()=>(0, _runAfterTransition.runAfterTransition));
parcelHelpers.export(exports, "useDrag1D", ()=>(0, _useDrag1D.useDrag1D));
parcelHelpers.export(exports, "useGlobalListeners", ()=>(0, _useGlobalListeners.useGlobalListeners));
parcelHelpers.export(exports, "useLabels", ()=>(0, _useLabels.useLabels));
parcelHelpers.export(exports, "useObjectRef", ()=>(0, _useObjectRef.useObjectRef));
parcelHelpers.export(exports, "useUpdateEffect", ()=>(0, _useUpdateEffect.useUpdateEffect));
parcelHelpers.export(exports, "useLayoutEffect", ()=>(0, _useLayoutEffect.useLayoutEffect));
parcelHelpers.export(exports, "useResizeObserver", ()=>(0, _useResizeObserver.useResizeObserver));
parcelHelpers.export(exports, "useSyncRef", ()=>(0, _useSyncRef.useSyncRef));
parcelHelpers.export(exports, "getScrollParent", ()=>(0, _getScrollParent.getScrollParent));
parcelHelpers.export(exports, "isScrollable", ()=>(0, _getScrollParent.isScrollable));
parcelHelpers.export(exports, "useViewportSize", ()=>(0, _useViewportSize.useViewportSize));
parcelHelpers.export(exports, "useDescription", ()=>(0, _useDescription.useDescription));
parcelHelpers.export(exports, "isMac", ()=>(0, _platform.isMac));
parcelHelpers.export(exports, "isIPhone", ()=>(0, _platform.isIPhone));
parcelHelpers.export(exports, "isIPad", ()=>(0, _platform.isIPad));
parcelHelpers.export(exports, "isIOS", ()=>(0, _platform.isIOS));
parcelHelpers.export(exports, "isAppleDevice", ()=>(0, _platform.isAppleDevice));
parcelHelpers.export(exports, "isWebKit", ()=>(0, _platform.isWebKit));
parcelHelpers.export(exports, "isChrome", ()=>(0, _platform.isChrome));
parcelHelpers.export(exports, "isAndroid", ()=>(0, _platform.isAndroid));
parcelHelpers.export(exports, "useEvent", ()=>(0, _useEvent.useEvent));
parcelHelpers.export(exports, "useValueEffect", ()=>(0, _useValueEffect.useValueEffect));
parcelHelpers.export(exports, "scrollIntoView", ()=>(0, _scrollIntoView.scrollIntoView));
parcelHelpers.export(exports, "scrollIntoViewport", ()=>(0, _scrollIntoView.scrollIntoViewport));
parcelHelpers.export(exports, "clamp", ()=>(0, _utils.clamp));
parcelHelpers.export(exports, "snapValueToStep", ()=>(0, _utils.snapValueToStep));
parcelHelpers.export(exports, "isVirtualClick", ()=>(0, _isVirtualEvent.isVirtualClick));
parcelHelpers.export(exports, "isVirtualPointerEvent", ()=>(0, _isVirtualEvent.isVirtualPointerEvent));
parcelHelpers.export(exports, "useEffectEvent", ()=>(0, _useEffectEvent.useEffectEvent));
parcelHelpers.export(exports, "useDeepMemo", ()=>(0, _useDeepMemo.useDeepMemo));
parcelHelpers.export(exports, "useFormReset", ()=>(0, _useFormReset.useFormReset));
var _useId = require("./useId");
var _chain = require("./chain");
var _mergeProps = require("./mergeProps");
var _mergeRefs = require("./mergeRefs");
var _filterDOMProps = require("./filterDOMProps");
var _focusWithoutScrolling = require("./focusWithoutScrolling");
var _getOffset = require("./getOffset");
var _runAfterTransition = require("./runAfterTransition");
var _useDrag1D = require("./useDrag1D");
var _useGlobalListeners = require("./useGlobalListeners");
var _useLabels = require("./useLabels");
var _useObjectRef = require("./useObjectRef");
var _useUpdateEffect = require("./useUpdateEffect");
var _useLayoutEffect = require("./useLayoutEffect");
var _useResizeObserver = require("./useResizeObserver");
var _useSyncRef = require("./useSyncRef");
var _getScrollParent = require("./getScrollParent");
var _useViewportSize = require("./useViewportSize");
var _useDescription = require("./useDescription");
var _platform = require("./platform");
var _useEvent = require("./useEvent");
var _useValueEffect = require("./useValueEffect");
var _scrollIntoView = require("./scrollIntoView");
var _utils = require("@react-stately/utils");
var _isVirtualEvent = require("./isVirtualEvent");
var _useEffectEvent = require("./useEffectEvent");
var _useDeepMemo = require("./useDeepMemo");
var _useFormReset = require("./useFormReset");

},{"./useId":"hF5Sy","./chain":"bKyrQ","./mergeProps":"6q1Qy","./mergeRefs":"f0YfF","./filterDOMProps":"5mKX6","./focusWithoutScrolling":"g2dKf","./getOffset":false,"./runAfterTransition":"jMoLg","./useDrag1D":false,"./useGlobalListeners":"g094o","./useLabels":"cmr5i","./useObjectRef":"4gpWo","./useUpdateEffect":false,"./useLayoutEffect":"igsOv","./useResizeObserver":"iXzIz","./useSyncRef":"kh0Xw","./getScrollParent":"9ed2J","./useViewportSize":"iBbv1","./useDescription":"hiPME","./platform":"eIgUx","./useEvent":"9JBTw","./useValueEffect":"ijhKd","./scrollIntoView":"dP9Yj","@react-stately/utils":"4oVZw","./isVirtualEvent":"hToY6","./useEffectEvent":"21DXv","./useDeepMemo":false,"./useFormReset":"gkdQE","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hF5Sy":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * If a default is not provided, generate an id.
 * @param defaultId - Default component id.
 */ parcelHelpers.export(exports, "useId", ()=>useId);
/**
 * Merges two ids.
 * Different ids will trigger a side-effect and re-render components hooked up with `useId`.
 */ parcelHelpers.export(exports, "mergeIds", ()=>mergeIds);
/**
 * Used to generate an id, and after render, check if that id is rendered so we know
 * if we can use it in places such as labelledby.
 * @param depArray - When to recalculate if the id is in the DOM.
 */ parcelHelpers.export(exports, "useSlotId", ()=>useSlotId);
var _react = require("react");
var _useLayoutEffect = require("./useLayoutEffect");
var _ssr = require("@react-aria/ssr");
var _ = require("./");
let idsUpdaterMap = new Map();
function useId(defaultId) {
    let [value, setValue] = (0, _react.useState)(defaultId);
    let nextId = (0, _react.useRef)(null);
    let res = (0, _ssr.useSSRSafeId)(value);
    let updateValue = (0, _react.useCallback)((val)=>{
        nextId.current = val;
    }, []);
    idsUpdaterMap.set(res, updateValue);
    (0, _useLayoutEffect.useLayoutEffect)(()=>{
        let r = res;
        return ()=>{
            idsUpdaterMap.delete(r);
        };
    }, [
        res
    ]);
    // This cannot cause an infinite loop because the ref is updated first.
    // eslint-disable-next-line
    (0, _react.useEffect)(()=>{
        let newId = nextId.current;
        if (newId) {
            nextId.current = null;
            setValue(newId);
        }
    });
    return res;
}
function mergeIds(idA, idB) {
    if (idA === idB) return idA;
    let setIdA = idsUpdaterMap.get(idA);
    if (setIdA) {
        setIdA(idB);
        return idB;
    }
    let setIdB = idsUpdaterMap.get(idB);
    if (setIdB) {
        setIdB(idA);
        return idA;
    }
    return idB;
}
function useSlotId(depArray = []) {
    let id = useId();
    let [resolvedId, setResolvedId] = (0, _.useValueEffect)(id);
    let updateId = (0, _react.useCallback)(()=>{
        setResolvedId(function*() {
            yield id;
            yield document.getElementById(id) ? id : undefined;
        });
    }, [
        id,
        setResolvedId
    ]);
    (0, _useLayoutEffect.useLayoutEffect)(updateId, [
        id,
        updateId,
        ...depArray
    ]);
    return resolvedId;
}

},{"react":"react","./useLayoutEffect":"igsOv","@react-aria/ssr":"dEKj5","./":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"igsOv":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useLayoutEffect", ()=>useLayoutEffect);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const useLayoutEffect = typeof document !== "undefined" ? (0, _reactDefault.default).useLayoutEffect : ()=>{};

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bKyrQ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /**
 * Calls all functions in the order they were chained with the same arguments.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "chain", ()=>chain);
function chain(...callbacks) {
    return (...args)=>{
        for (let callback of callbacks)if (typeof callback === "function") callback(...args);
    };
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6q1Qy":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Merges multiple props objects together. Event handlers are chained,
 * classNames are combined, and ids are deduplicated - different ids
 * will trigger a side-effect and re-render components hooked up with `useId`.
 * For all other props, the last prop object overrides all previous ones.
 * @param args - Multiple sets of props to merge together.
 */ parcelHelpers.export(exports, "mergeProps", ()=>mergeProps);
var _chain = require("./chain");
var _clsx = require("clsx");
var _clsxDefault = parcelHelpers.interopDefault(_clsx);
var _useId = require("./useId");
function mergeProps(...args) {
    // Start with a base clone of the first argument. This is a lot faster than starting
    // with an empty object and adding properties as we go.
    let result = {
        ...args[0]
    };
    for(let i = 1; i < args.length; i++){
        let props = args[i];
        for(let key in props){
            let a = result[key];
            let b = props[key];
            // Chain events
            if (typeof a === "function" && typeof b === "function" && // This is a lot faster than a regex.
            key[0] === "o" && key[1] === "n" && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, _chain.chain)(a, b);
            else if ((key === "className" || key === "UNSAFE_className") && typeof a === "string" && typeof b === "string") result[key] = (0, _clsxDefault.default)(a, b);
            else if (key === "id" && a && b) result.id = (0, _useId.mergeIds)(a, b);
            else result[key] = b !== undefined ? b : a;
        }
    }
    return result;
}

},{"./chain":"bKyrQ","clsx":"bY7QY","./useId":"hF5Sy","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"f0YfF":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Merges multiple refs into one. Works with either callback or object refs.
 */ parcelHelpers.export(exports, "mergeRefs", ()=>mergeRefs);
function mergeRefs(...refs) {
    if (refs.length === 1) return refs[0];
    return (value)=>{
        for (let ref of refs){
            if (typeof ref === "function") ref(value);
            else if (ref != null) ref.current = value;
        }
    };
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5mKX6":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Filters out all props that aren't valid DOM props or defined via override prop obj.
 * @param props - The component props to be filtered.
 * @param opts - Props to override.
 */ parcelHelpers.export(exports, "filterDOMProps", ()=>filterDOMProps);
const DOMPropNames = new Set([
    "id"
]);
const labelablePropNames = new Set([
    "aria-label",
    "aria-labelledby",
    "aria-describedby",
    "aria-details"
]);
const propRe = /^(data-.*)$/;
function filterDOMProps(props, opts = {}) {
    let { labelable , propNames  } = opts;
    let filteredProps = {};
    for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || (propNames === null || propNames === void 0 ? void 0 : propNames.has(prop)) || propRe.test(prop))) filteredProps[prop] = props[prop];
    return filteredProps;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"g2dKf":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "focusWithoutScrolling", ()=>focusWithoutScrolling);
function focusWithoutScrolling(element) {
    if (supportsPreventScroll()) element.focus({
        preventScroll: true
    });
    else {
        let scrollableElements = getScrollableElements(element);
        element.focus();
        restoreScrollPosition(scrollableElements);
    }
}
let supportsPreventScrollCached = null;
function supportsPreventScroll() {
    if (supportsPreventScrollCached == null) {
        supportsPreventScrollCached = false;
        try {
            var focusElem = document.createElement("div");
            focusElem.focus({
                get preventScroll () {
                    supportsPreventScrollCached = true;
                    return true;
                }
            });
        } catch (e) {
        // Ignore
        }
    }
    return supportsPreventScrollCached;
}
function getScrollableElements(element) {
    var parent = element.parentNode;
    var scrollableElements = [];
    var rootScrollingElement = document.scrollingElement || document.documentElement;
    while(parent instanceof HTMLElement && parent !== rootScrollingElement){
        if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
            element: parent,
            scrollTop: parent.scrollTop,
            scrollLeft: parent.scrollLeft
        });
        parent = parent.parentNode;
    }
    if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({
        element: rootScrollingElement,
        scrollTop: rootScrollingElement.scrollTop,
        scrollLeft: rootScrollingElement.scrollLeft
    });
    return scrollableElements;
}
function restoreScrollPosition(scrollableElements) {
    for (let { element , scrollTop , scrollLeft  } of scrollableElements){
        element.scrollTop = scrollTop;
        element.scrollLeft = scrollLeft;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jMoLg":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // We store a global list of elements that are currently transitioning,
// mapped to a set of CSS properties that are transitioning for that element.
// This is necessary rather than a simple count of transitions because of browser
// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather
// than one or the other. So we need to track what's actually transitioning so that
// we can ignore these duplicate events.
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "runAfterTransition", ()=>runAfterTransition);
let transitionsByElement = new Map();
// A list of callbacks to call once there are no transitioning elements.
let transitionCallbacks = new Set();
function setupGlobalEvents() {
    if (typeof window === "undefined") return;
    let onTransitionStart = (e)=>{
        // Add the transitioning property to the list for this element.
        let transitions = transitionsByElement.get(e.target);
        if (!transitions) {
            transitions = new Set();
            transitionsByElement.set(e.target, transitions);
            // The transitioncancel event must be registered on the element itself, rather than as a global
            // event. This enables us to handle when the node is deleted from the document while it is transitioning.
            // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
            e.target.addEventListener("transitioncancel", onTransitionEnd);
        }
        transitions.add(e.propertyName);
    };
    let onTransitionEnd = (e)=>{
        // Remove property from list of transitioning properties.
        let properties = transitionsByElement.get(e.target);
        if (!properties) return;
        properties.delete(e.propertyName);
        // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.
        if (properties.size === 0) {
            e.target.removeEventListener("transitioncancel", onTransitionEnd);
            transitionsByElement.delete(e.target);
        }
        // If no transitioning elements, call all of the queued callbacks.
        if (transitionsByElement.size === 0) {
            for (let cb of transitionCallbacks)cb();
            transitionCallbacks.clear();
        }
    };
    document.body.addEventListener("transitionrun", onTransitionStart);
    document.body.addEventListener("transitionend", onTransitionEnd);
}
if (typeof document !== "undefined") {
    if (document.readyState !== "loading") setupGlobalEvents();
    else document.addEventListener("DOMContentLoaded", setupGlobalEvents);
}
function runAfterTransition(fn) {
    // Wait one frame to see if an animation starts, e.g. a transition on mount.
    requestAnimationFrame(()=>{
        // If no transitions are running, call the function immediately.
        // Otherwise, add it to a list of callbacks to run at the end of the animation.
        if (transitionsByElement.size === 0) fn();
        else transitionCallbacks.add(fn);
    });
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"g094o":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useGlobalListeners", ()=>useGlobalListeners);
var _react = require("react");
function useGlobalListeners() {
    let globalListeners = (0, _react.useRef)(new Map());
    let addGlobalListener = (0, _react.useCallback)((eventTarget, type, listener, options)=>{
        // Make sure we remove the listener after it is called with the `once` option.
        let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{
            globalListeners.current.delete(listener);
            listener(...args);
        } : listener;
        globalListeners.current.set(listener, {
            type,
            eventTarget,
            fn,
            options
        });
        eventTarget.addEventListener(type, listener, options);
    }, []);
    let removeGlobalListener = (0, _react.useCallback)((eventTarget, type, listener, options)=>{
        var _globalListeners_current_get;
        let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;
        eventTarget.removeEventListener(type, fn, options);
        globalListeners.current.delete(listener);
    }, []);
    let removeAllGlobalListeners = (0, _react.useCallback)(()=>{
        globalListeners.current.forEach((value, key)=>{
            removeGlobalListener(value.eventTarget, value.type, key, value.options);
        });
    }, [
        removeGlobalListener
    ]);
    // eslint-disable-next-line arrow-body-style
    (0, _react.useEffect)(()=>{
        return removeAllGlobalListeners;
    }, [
        removeAllGlobalListeners
    ]);
    return {
        addGlobalListener,
        removeGlobalListener,
        removeAllGlobalListeners
    };
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"cmr5i":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Merges aria-label and aria-labelledby into aria-labelledby when both exist.
 * @param props - Aria label props.
 * @param defaultLabel - Default value for aria-label when not present.
 */ parcelHelpers.export(exports, "useLabels", ()=>useLabels);
var _useId = require("./useId");
function useLabels(props, defaultLabel) {
    let { id , "aria-label": label , "aria-labelledby": labelledBy  } = props;
    // If there is both an aria-label and aria-labelledby,
    // combine them by pointing to the element itself.
    id = (0, _useId.useId)(id);
    if (labelledBy && label) {
        let ids = new Set([
            id,
            ...labelledBy.trim().split(/\s+/)
        ]);
        labelledBy = [
            ...ids
        ].join(" ");
    } else if (labelledBy) labelledBy = labelledBy.trim().split(/\s+/).join(" ");
    // If no labels are provided, use the default
    if (!label && !labelledBy && defaultLabel) label = defaultLabel;
    return {
        id,
        "aria-label": label,
        "aria-labelledby": labelledBy
    };
}

},{"./useId":"hF5Sy","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"4gpWo":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Offers an object ref for a given callback ref or an object ref. Especially
 * helfpul when passing forwarded refs (created using `React.forwardRef`) to
 * React Aria Hooks.
 *
 * @param forwardedRef The original ref intended to be used.
 * @returns An object ref that updates the given ref.
 * @see https://reactjs.org/docs/forwarding-refs.html
 */ parcelHelpers.export(exports, "useObjectRef", ()=>useObjectRef);
var _react = require("react");
function useObjectRef(forwardedRef) {
    const objRef = (0, _react.useRef)();
    return (0, _react.useMemo)(()=>({
            get current () {
                return objRef.current;
            },
            set current (value){
                objRef.current = value;
                if (typeof forwardedRef === "function") forwardedRef(value);
                else if (forwardedRef) forwardedRef.current = value;
            }
        }), [
        forwardedRef
    ]);
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iXzIz":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useResizeObserver", ()=>useResizeObserver);
var _react = require("react");
function hasResizeObserver() {
    return typeof window.ResizeObserver !== "undefined";
}
function useResizeObserver(options) {
    const { ref , onResize  } = options;
    (0, _react.useEffect)(()=>{
        let element = ref === null || ref === void 0 ? void 0 : ref.current;
        if (!element) return;
        if (!hasResizeObserver()) {
            window.addEventListener("resize", onResize, false);
            return ()=>{
                window.removeEventListener("resize", onResize, false);
            };
        } else {
            const resizeObserverInstance = new window.ResizeObserver((entries)=>{
                if (!entries.length) return;
                onResize();
            });
            resizeObserverInstance.observe(element);
            return ()=>{
                if (element) resizeObserverInstance.unobserve(element);
            };
        }
    }, [
        onResize,
        ref
    ]);
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"kh0Xw":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Syncs ref from context with ref passed to hook
parcelHelpers.export(exports, "useSyncRef", ()=>useSyncRef);
var _ = require("./");
function useSyncRef(context, ref) {
    (0, _.useLayoutEffect)(()=>{
        if (context && context.ref && ref) {
            context.ref.current = ref.current;
            return ()=>{
                context.ref.current = null;
            };
        }
    }, [
        context,
        ref
    ]);
}

},{"./":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9ed2J":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getScrollParent", ()=>getScrollParent);
parcelHelpers.export(exports, "isScrollable", ()=>isScrollable);
function getScrollParent(node) {
    if (isScrollable(node)) node = node.parentElement;
    while(node && !isScrollable(node))node = node.parentElement;
    return node || document.scrollingElement || document.documentElement;
}
function isScrollable(node) {
    let style = window.getComputedStyle(node);
    return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iBbv1":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useViewportSize", ()=>useViewportSize);
var _react = require("react");
// @ts-ignore
let visualViewport = typeof document !== "undefined" && window.visualViewport;
function useViewportSize() {
    let [size, setSize] = (0, _react.useState)(()=>getViewportSize());
    (0, _react.useEffect)(()=>{
        // Use visualViewport api to track available height even on iOS virtual keyboard opening
        let onResize = ()=>{
            setSize((size)=>{
                let newSize = getViewportSize();
                if (newSize.width === size.width && newSize.height === size.height) return size;
                return newSize;
            });
        };
        if (!visualViewport) window.addEventListener("resize", onResize);
        else visualViewport.addEventListener("resize", onResize);
        return ()=>{
            if (!visualViewport) window.removeEventListener("resize", onResize);
            else visualViewport.removeEventListener("resize", onResize);
        };
    }, []);
    return size;
}
function getViewportSize() {
    return {
        width: (visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.width) || window.innerWidth,
        height: (visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.height) || window.innerHeight
    };
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hiPME":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useDescription", ()=>useDescription);
var _useLayoutEffect = require("./useLayoutEffect");
var _react = require("react");
let descriptionId = 0;
const descriptionNodes = new Map();
function useDescription(description) {
    let [id, setId] = (0, _react.useState)(undefined);
    (0, _useLayoutEffect.useLayoutEffect)(()=>{
        if (!description) return;
        let desc = descriptionNodes.get(description);
        if (!desc) {
            let id = `react-aria-description-${descriptionId++}`;
            setId(id);
            let node = document.createElement("div");
            node.id = id;
            node.style.display = "none";
            node.textContent = description;
            document.body.appendChild(node);
            desc = {
                refCount: 0,
                element: node
            };
            descriptionNodes.set(description, desc);
        } else setId(desc.element.id);
        desc.refCount++;
        return ()=>{
            if (--desc.refCount === 0) {
                desc.element.remove();
                descriptionNodes.delete(description);
            }
        };
    }, [
        description
    ]);
    return {
        "aria-describedby": description ? id : undefined
    };
}

},{"./useLayoutEffect":"igsOv","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eIgUx":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "isMac", ()=>isMac);
parcelHelpers.export(exports, "isIPhone", ()=>isIPhone);
parcelHelpers.export(exports, "isIPad", ()=>isIPad);
parcelHelpers.export(exports, "isIOS", ()=>isIOS);
parcelHelpers.export(exports, "isAppleDevice", ()=>isAppleDevice);
parcelHelpers.export(exports, "isWebKit", ()=>isWebKit);
parcelHelpers.export(exports, "isChrome", ()=>isChrome);
parcelHelpers.export(exports, "isAndroid", ()=>isAndroid);
function testUserAgent(re) {
    var _window_navigator_userAgentData;
    if (typeof window === "undefined" || window.navigator == null) return false;
    return ((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);
}
function testPlatform(re) {
    var _window_navigator_userAgentData;
    return typeof window !== "undefined" && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;
}
function isMac() {
    return testPlatform(/^Mac/i);
}
function isIPhone() {
    return testPlatform(/^iPhone/i);
}
function isIPad() {
    return testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
    isMac() && navigator.maxTouchPoints > 1;
}
function isIOS() {
    return isIPhone() || isIPad();
}
function isAppleDevice() {
    return isMac() || isIOS();
}
function isWebKit() {
    return testUserAgent(/AppleWebKit/i) && !isChrome();
}
function isChrome() {
    return testUserAgent(/Chrome/i);
}
function isAndroid() {
    return testUserAgent(/Android/i);
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9JBTw":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useEvent", ()=>useEvent);
var _react = require("react");
var _useEffectEvent = require("./useEffectEvent");
function useEvent(ref, event, handler, options) {
    let handleEvent = (0, _useEffectEvent.useEffectEvent)(handler);
    let isDisabled = handler == null;
    (0, _react.useEffect)(()=>{
        if (isDisabled) return;
        let element = ref.current;
        element.addEventListener(event, handleEvent, options);
        return ()=>{
            element.removeEventListener(event, handleEvent, options);
        };
    }, [
        ref,
        event,
        options,
        isDisabled,
        handleEvent
    ]);
}

},{"react":"react","./useEffectEvent":"21DXv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"21DXv":[function(require,module,exports) {
/*
 * Copyright 2023 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useEffectEvent", ()=>useEffectEvent);
var _react = require("react");
var _useLayoutEffect = require("./useLayoutEffect");
function useEffectEvent(fn) {
    const ref = (0, _react.useRef)(null);
    (0, _useLayoutEffect.useLayoutEffect)(()=>{
        ref.current = fn;
    }, [
        fn
    ]);
    return (0, _react.useCallback)((...args)=>{
        const f = ref.current;
        return f(...args);
    }, []);
}

},{"react":"react","./useLayoutEffect":"igsOv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ijhKd":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// This hook works like `useState`, but when setting the value, you pass a generator function
// that can yield multiple values. Each yielded value updates the state and waits for the next
// layout effect, then continues the generator. This allows sequential updates to state to be
// written linearly.
parcelHelpers.export(exports, "useValueEffect", ()=>useValueEffect);
var _react = require("react");
var _ = require("./");
function useValueEffect(defaultValue) {
    let [value, setValue] = (0, _react.useState)(defaultValue);
    let valueRef = (0, _react.useRef)(value);
    let effect = (0, _react.useRef)(null);
    // Must be stable so that `queue` is stable.
    let nextIter = (0, _react.useCallback)(()=>{
        // Run the generator to the next yield.
        let newValue = effect.current.next();
        while(!newValue.done && valueRef.current === newValue.value)// If the value is the same as the current value,
        // then continue to the next yield. Otherwise,
        // set the value in state and wait for the next layout effect.
        newValue = effect.current.next();
        // If the generator is done, reset the effect.
        if (newValue.done) {
            effect.current = null;
            return;
        }
        // Always update valueRef when setting the state.
        // This is needed because the function is not regenerated with the new state value since
        // they must be stable across renders. Instead, it gets carried in the ref, but the setState
        // is also needed in order to cause a rerender.
        setValue(newValue.value);
        valueRef.current = newValue.value;
    // this list of dependencies is stable, setState and refs never change after first render.
    }, [
        setValue,
        valueRef,
        effect
    ]);
    (0, _.useLayoutEffect)(()=>{
        // If there is an effect currently running, continue to the next yield.
        if (effect.current) nextIter();
    });
    // queue must be a stable function, much like setState.
    let queue = (0, _react.useCallback)((fn)=>{
        effect.current = fn(valueRef.current);
        nextIter();
    // this list of dependencies is stable, setState and refs never change after first render.
    // in addition, nextIter is stable as outlined above
    }, [
        nextIter,
        effect,
        valueRef
    ]);
    return [
        value,
        queue
    ];
}

},{"react":"react","./":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"dP9Yj":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Scrolls `scrollView` so that `element` is visible.
 * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),
 * but doesn't affect parents above `scrollView`.
 */ parcelHelpers.export(exports, "scrollIntoView", ()=>scrollIntoView);
/**
 * Scrolls the `targetElement` so it is visible in the viewport. Accepts an optional `opts.containingElement`
 * that will be centered in the viewport prior to scrolling the targetElement into view. If scrolling is prevented on
 * the body (e.g. targetElement is in a popover), this will only scroll the scroll parents of the targetElement up to but not including the body itself.
 */ parcelHelpers.export(exports, "scrollIntoViewport", ()=>scrollIntoViewport);
var _ = require("./");
function scrollIntoView(scrollView, element) {
    let offsetX = relativeOffset(scrollView, element, "left");
    let offsetY = relativeOffset(scrollView, element, "top");
    let width = element.offsetWidth;
    let height = element.offsetHeight;
    let x = scrollView.scrollLeft;
    let y = scrollView.scrollTop;
    // Account for top/left border offsetting the scroll top/Left
    let { borderTopWidth , borderLeftWidth  } = getComputedStyle(scrollView);
    let borderAdjustedX = scrollView.scrollLeft + parseInt(borderLeftWidth, 10);
    let borderAdjustedY = scrollView.scrollTop + parseInt(borderTopWidth, 10);
    // Ignore end/bottom border via clientHeight/Width instead of offsetHeight/Width
    let maxX = borderAdjustedX + scrollView.clientWidth;
    let maxY = borderAdjustedY + scrollView.clientHeight;
    if (offsetX <= x) x = offsetX - parseInt(borderLeftWidth, 10);
    else if (offsetX + width > maxX) x += offsetX + width - maxX;
    if (offsetY <= borderAdjustedY) y = offsetY - parseInt(borderTopWidth, 10);
    else if (offsetY + height > maxY) y += offsetY + height - maxY;
    scrollView.scrollLeft = x;
    scrollView.scrollTop = y;
}
/**
 * Computes the offset left or top from child to ancestor by accumulating
 * offsetLeft or offsetTop through intervening offsetParents.
 */ function relativeOffset(ancestor, child, axis) {
    const prop = axis === "left" ? "offsetLeft" : "offsetTop";
    let sum = 0;
    while(child.offsetParent){
        sum += child[prop];
        if (child.offsetParent === ancestor) break;
        else if (child.offsetParent.contains(ancestor)) {
            // If the ancestor is not `position:relative`, then we stop at
            // _its_ offset parent, and we subtract off _its_ offset, so that
            // we end up with the proper offset from child to ancestor.
            sum -= ancestor[prop];
            break;
        }
        child = child.offsetParent;
    }
    return sum;
}
function scrollIntoViewport(targetElement, opts) {
    if (document.contains(targetElement)) {
        let root = document.scrollingElement || document.documentElement;
        let isScrollPrevented = window.getComputedStyle(root).overflow === "hidden";
        // If scrolling is not currently prevented then we aren’t in a overlay nor is a overlay open, just use element.scrollIntoView to bring the element into view
        if (!isScrollPrevented) {
            var // use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()
            // won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically
            _targetElement_scrollIntoView;
            let { left: originalLeft , top: originalTop  } = targetElement.getBoundingClientRect();
            targetElement === null || targetElement === void 0 ? void 0 : (_targetElement_scrollIntoView = targetElement.scrollIntoView) === null || _targetElement_scrollIntoView === void 0 ? void 0 : _targetElement_scrollIntoView.call(targetElement, {
                block: "nearest"
            });
            let { left: newLeft , top: newTop  } = targetElement.getBoundingClientRect();
            // Account for sub pixel differences from rounding
            if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {
                var _opts_containingElement, _opts_containingElement_scrollIntoView, _targetElement_scrollIntoView1;
                opts === null || opts === void 0 ? void 0 : (_opts_containingElement = opts.containingElement) === null || _opts_containingElement === void 0 ? void 0 : (_opts_containingElement_scrollIntoView = _opts_containingElement.scrollIntoView) === null || _opts_containingElement_scrollIntoView === void 0 ? void 0 : _opts_containingElement_scrollIntoView.call(_opts_containingElement, {
                    block: "center",
                    inline: "center"
                });
                (_targetElement_scrollIntoView1 = targetElement.scrollIntoView) === null || _targetElement_scrollIntoView1 === void 0 ? void 0 : _targetElement_scrollIntoView1.call(targetElement, {
                    block: "nearest"
                });
            }
        } else {
            let scrollParent = (0, _.getScrollParent)(targetElement);
            // If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.
            while(targetElement && scrollParent && targetElement !== root && scrollParent !== root){
                scrollIntoView(scrollParent, targetElement);
                targetElement = scrollParent;
                scrollParent = (0, _.getScrollParent)(targetElement);
            }
        }
    }
}

},{"./":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"4oVZw":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useControlledState", ()=>(0, _useControlledState.useControlledState));
parcelHelpers.export(exports, "clamp", ()=>(0, _number.clamp));
parcelHelpers.export(exports, "snapValueToStep", ()=>(0, _number.snapValueToStep));
parcelHelpers.export(exports, "toFixedNumber", ()=>(0, _number.toFixedNumber));
var _useControlledState = require("./useControlledState");
var _number = require("./number");

},{"./useControlledState":"2ovAQ","./number":"76Eus","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"2ovAQ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useControlledState", ()=>useControlledState);
var _react = require("react");
function useControlledState(value, defaultValue, onChange) {
    let [stateValue, setStateValue] = (0, _react.useState)(value || defaultValue);
    let isControlledRef = (0, _react.useRef)(value !== undefined);
    let isControlled = value !== undefined;
    (0, _react.useEffect)(()=>{
        let wasControlled = isControlledRef.current;
        if (wasControlled !== isControlled) console.warn(`WARN: A component changed from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`);
        isControlledRef.current = isControlled;
    }, [
        isControlled
    ]);
    let currentValue = isControlled ? value : stateValue;
    let setValue = (0, _react.useCallback)((value, ...args)=>{
        let onChangeCaller = (value, ...onChangeArgs)=>{
            if (onChange) {
                if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);
            }
            if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that
            // calling setState multiple times with the same value only emits onChange once.
            // We do not use a ref for this because we specifically _do_ want the value to
            // reset every render, and assigning to a ref in render breaks aborted suspended renders.
            // eslint-disable-next-line react-hooks/exhaustive-deps
            currentValue = value;
        };
        if (typeof value === "function") {
            console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320");
            // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates
            // when someone using useControlledState calls setControlledState(myFunc)
            // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc
            // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning
            // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same
            let updateFunction = (oldValue, ...functionArgs)=>{
                let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);
                onChangeCaller(interceptedValue, ...args);
                if (!isControlled) return interceptedValue;
                return oldValue;
            };
            setStateValue(updateFunction);
        } else {
            if (!isControlled) setStateValue(value);
            onChangeCaller(value, ...args);
        }
    }, [
        isControlled,
        currentValue,
        onChange
    ]);
    return [
        currentValue,
        setValue
    ];
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"76Eus":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /**
 * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "clamp", ()=>clamp);
parcelHelpers.export(exports, "snapValueToStep", ()=>snapValueToStep);
/* Takes a value and rounds off to the number of digits. */ parcelHelpers.export(exports, "toFixedNumber", ()=>toFixedNumber);
function clamp(value, min = -Infinity, max = Infinity) {
    let newValue = Math.min(Math.max(value, min), max);
    return newValue;
}
function snapValueToStep(value, min, max, step) {
    let remainder = (value - (isNaN(min) ? 0 : min)) % step;
    let snappedValue = Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder;
    if (!isNaN(min)) {
        if (snappedValue < min) snappedValue = min;
        else if (!isNaN(max) && snappedValue > max) snappedValue = min + Math.floor((max - min) / step) * step;
    } else if (!isNaN(max) && snappedValue > max) snappedValue = Math.floor(max / step) * step;
    // correct floating point behavior by rounding to step precision
    let string = step.toString();
    let index = string.indexOf(".");
    let precision = index >= 0 ? string.length - index : 0;
    if (precision > 0) {
        let pow = Math.pow(10, precision);
        snappedValue = Math.round(snappedValue * pow) / pow;
    }
    return snappedValue;
}
function toFixedNumber(value, digits, base = 10) {
    const pow = Math.pow(base, digits);
    return Math.round(value * pow) / pow;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hToY6":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Original licensing for the following method can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87
// Keyboards, Assistive Technologies, and element.click() all produce a "virtual"
// click event. This is a method of inferring such clicks. Every browser except
// IE 11 only sets a zero value of "detail" for click events that are "virtual".
// However, IE 11 uses a zero value for all click events. For IE 11 we rely on
// the quirk that it produces click events that are of type PointerEvent, and
// where only the "virtual" click lacks a pointerType field.
parcelHelpers.export(exports, "isVirtualClick", ()=>isVirtualClick);
parcelHelpers.export(exports, "isVirtualPointerEvent", ()=>isVirtualPointerEvent);
var _platform = require("./platform");
function isVirtualClick(event) {
    // JAWS/NVDA with Firefox.
    if (event.mozInputSource === 0 && event.isTrusted) return true;
    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead
    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check
    // to detect TalkBack virtual clicks.
    if ((0, _platform.isAndroid)() && event.pointerType) return event.type === "click" && event.buttons === 1;
    return event.detail === 0 && !event.pointerType;
}
function isVirtualPointerEvent(event) {
    // If the pointer size is zero, then we assume it's from a screen reader.
    // Android TalkBack double tap will sometimes return a event with width and height of 1
    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.
    // Cannot use "event.pressure === 0" as the sole check due to Safari pointer events always returning pressure === 0
    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush
    // Talkback double tap from Windows Firefox touch screen press
    return !(0, _platform.isAndroid)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse";
}

},{"./platform":"eIgUx","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gkdQE":[function(require,module,exports) {
/*
 * Copyright 2023 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useFormReset", ()=>useFormReset);
var _react = require("react");
var _useEffectEvent = require("./useEffectEvent");
function useFormReset(ref, initialValue, onReset) {
    let resetValue = (0, _react.useRef)(initialValue);
    let handleReset = (0, _useEffectEvent.useEffectEvent)(()=>{
        if (onReset) onReset(resetValue.current);
    });
    (0, _react.useEffect)(()=>{
        var _ref_current;
        let form = ref === null || ref === void 0 ? void 0 : (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.form;
        form === null || form === void 0 ? void 0 : form.addEventListener("reset", handleReset);
        return ()=>{
            form === null || form === void 0 ? void 0 : form.removeEventListener("reset", handleReset);
        };
    }, [
        ref,
        handleReset
    ]);
}

},{"react":"react","./useEffectEvent":"21DXv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"duR3i":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useHasChild", ()=>useHasChild);
var _react = require("react");
var _utils = require("@react-aria/utils");
function useHasChild(query, ref) {
    let [hasChild, setHasChild] = (0, _react.useState)(true);
    (0, _utils.useLayoutEffect)(()=>{
        setHasChild(!!(ref.current && ref.current.querySelector(query)));
    }, [
        setHasChild,
        query,
        ref
    ]);
    return hasChild;
}

},{"react":"react","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"22AYa":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useIsMobileDevice", ()=>useIsMobileDevice);
var _ssr = require("@react-aria/ssr");
const MOBILE_SCREEN_WIDTH = 700;
function useIsMobileDevice() {
    let isSSR = (0, _ssr.useIsSSR)();
    if (isSSR || typeof window === "undefined") return false;
    return window.screen.width <= MOBILE_SCREEN_WIDTH;
}

},{"@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"PdeUf":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("cce83ce3a484ec70");
exports.__esModule = true;
exports.default = CornerTriangle;
var _CornerTriangle = require("a2aed54821608812");
var _icon = require("b0f3de8dc465c311");
var _react = _interopRequireDefault(require("50c794147575b47a"));
function CornerTriangle(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_CornerTriangle.CornerTriangle, null));
}

},{"cce83ce3a484ec70":"aSVf3","a2aed54821608812":"3Q03b","b0f3de8dc465c311":"fTRUu","50c794147575b47a":"react"}],"aSVf3":[function(require,module,exports) {
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;

},{}],"3Q03b":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.CornerTriangle = CornerTriangle;
var _react = _interopRequireDefault(require("8b2d9b8a1bbbc349"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function CornerTriangle(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z"
    }));
}
CornerTriangle.displayName = "CornerTriangle";

},{"8b2d9b8a1bbbc349":"react"}],"fTRUu":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Icon", ()=>(0, _icon.Icon));
parcelHelpers.export(exports, "UIIcon", ()=>(0, _uiicon.UIIcon));
parcelHelpers.export(exports, "Illustration", ()=>(0, _illustration.Illustration));
var _icon = require("./Icon");
var _uiicon = require("./UIIcon");
var _illustration = require("./Illustration");

},{"./Icon":"25o78","./UIIcon":"3sHVk","./Illustration":"6XXcN","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"25o78":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Spectrum icons are clear, minimal, and consistent across platforms. They follow the focused and rational principles of the design system in both metaphor and style.
 */ parcelHelpers.export(exports, "Icon", ()=>Icon);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/icon/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _provider = require("@react-spectrum/provider");
function iconColorValue(value) {
    return `var(--spectrum-semantic-${value}-color-icon)`;
}
const iconStyleProps = {
    ...(0, _utils.baseStyleProps),
    color: [
        "color",
        iconColorValue
    ]
};
function Icon(props) {
    props = (0, _utils.useSlotProps)(props, "icon");
    let { children , size , "aria-label": ariaLabel , "aria-hidden": ariaHidden , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps, iconStyleProps);
    let provider = (0, _provider.useProvider)();
    let scale = "M";
    if (provider !== null) scale = provider.scale === "large" ? "L" : "M";
    if (!ariaHidden) ariaHidden = undefined;
    // Use user specified size, falling back to provider scale if size is undef
    let iconSize = size ? size : scale;
    return /*#__PURE__*/ (0, _reactDefault.default).cloneElement(children, {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        focusable: "false",
        "aria-label": ariaLabel,
        "aria-hidden": ariaLabel ? ariaHidden || undefined : true,
        role: "img",
        className: (0, _utils.classNames)((0, _varsCssDefault.default), children.props.className, "spectrum-Icon", `spectrum-Icon--size${iconSize}`, styleProps.className)
    });
}

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/icon/vars.css":"8Ovmv","@react-spectrum/provider":"aPwML","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8Ovmv":[function(require,module,exports) {
module.exports["spectrum-Icon"] = "spectrum-Icon_368b34";
module.exports["spectrum-UIIcon"] = "spectrum-UIIcon_368b34";
module.exports["spectrum-Icon--sizeXXS"] = "spectrum-Icon--sizeXXS_368b34";
module.exports["spectrum-Icon--sizeXS"] = "spectrum-Icon--sizeXS_368b34";
module.exports["spectrum-Icon--sizeS"] = "spectrum-Icon--sizeS_368b34";
module.exports["spectrum-Icon--sizeM"] = "spectrum-Icon--sizeM_368b34";
module.exports["spectrum-Icon--sizeL"] = "spectrum-Icon--sizeL_368b34";
module.exports["spectrum-Icon--sizeXL"] = "spectrum-Icon--sizeXL_368b34";
module.exports["spectrum-Icon--sizeXXL"] = "spectrum-Icon--sizeXXL_368b34";
module.exports["spectrum--medium"] = "spectrum--medium_368b34";
module.exports["spectrum-UIIcon--large"] = "spectrum-UIIcon--large_368b34";
module.exports["spectrum-UIIcon--medium"] = "spectrum-UIIcon--medium_368b34";
module.exports["spectrum--large"] = "spectrum--large_368b34";
module.exports["spectrum-UIIcon-AlertMedium"] = "spectrum-UIIcon-AlertMedium_368b34";
module.exports["spectrum-UIIcon-AlertSmall"] = "spectrum-UIIcon-AlertSmall_368b34";
module.exports["spectrum-UIIcon-ArrowDownSmall"] = "spectrum-UIIcon-ArrowDownSmall_368b34";
module.exports["spectrum-UIIcon-ArrowLeftMedium"] = "spectrum-UIIcon-ArrowLeftMedium_368b34";
module.exports["spectrum-UIIcon-Asterisk"] = "spectrum-UIIcon-Asterisk_368b34";
module.exports["spectrum-UIIcon-CheckmarkMedium"] = "spectrum-UIIcon-CheckmarkMedium_368b34";
module.exports["spectrum-UIIcon-CheckmarkSmall"] = "spectrum-UIIcon-CheckmarkSmall_368b34";
module.exports["spectrum-UIIcon-ChevronDownMedium"] = "spectrum-UIIcon-ChevronDownMedium_368b34";
module.exports["spectrum-UIIcon-ChevronDownSmall"] = "spectrum-UIIcon-ChevronDownSmall_368b34";
module.exports["spectrum-UIIcon-ChevronLeftLarge"] = "spectrum-UIIcon-ChevronLeftLarge_368b34";
module.exports["spectrum-UIIcon-ChevronLeftMedium"] = "spectrum-UIIcon-ChevronLeftMedium_368b34";
module.exports["spectrum-UIIcon-ChevronRightLarge"] = "spectrum-UIIcon-ChevronRightLarge_368b34";
module.exports["spectrum-UIIcon-ChevronRightMedium"] = "spectrum-UIIcon-ChevronRightMedium_368b34";
module.exports["spectrum-UIIcon-ChevronRightSmall"] = "spectrum-UIIcon-ChevronRightSmall_368b34";
module.exports["spectrum-UIIcon-ChevronUpSmall"] = "spectrum-UIIcon-ChevronUpSmall_368b34";
module.exports["spectrum-UIIcon-CornerTriangle"] = "spectrum-UIIcon-CornerTriangle_368b34";
module.exports["spectrum-UIIcon-CrossLarge"] = "spectrum-UIIcon-CrossLarge_368b34";
module.exports["spectrum-UIIcon-CrossMedium"] = "spectrum-UIIcon-CrossMedium_368b34";
module.exports["spectrum-UIIcon-CrossSmall"] = "spectrum-UIIcon-CrossSmall_368b34";
module.exports["spectrum-UIIcon-DashSmall"] = "spectrum-UIIcon-DashSmall_368b34";
module.exports["spectrum-UIIcon-DoubleGripper"] = "spectrum-UIIcon-DoubleGripper_368b34";
module.exports["spectrum-UIIcon-FolderBreadcrumb"] = "spectrum-UIIcon-FolderBreadcrumb_368b34";
module.exports["spectrum-UIIcon-HelpMedium"] = "spectrum-UIIcon-HelpMedium_368b34";
module.exports["spectrum-UIIcon-HelpSmall"] = "spectrum-UIIcon-HelpSmall_368b34";
module.exports["spectrum-UIIcon-InfoMedium"] = "spectrum-UIIcon-InfoMedium_368b34";
module.exports["spectrum-UIIcon-InfoSmall"] = "spectrum-UIIcon-InfoSmall_368b34";
module.exports["spectrum-UIIcon-ListGripper"] = "spectrum-UIIcon-ListGripper_368b34";
module.exports["spectrum-UIIcon-Magnifier"] = "spectrum-UIIcon-Magnifier_368b34";
module.exports["spectrum-UIIcon-SkipLeft"] = "spectrum-UIIcon-SkipLeft_368b34";
module.exports["spectrum-UIIcon-SkipRight"] = "spectrum-UIIcon-SkipRight_368b34";
module.exports["spectrum-UIIcon-Star"] = "spectrum-UIIcon-Star_368b34";
module.exports["spectrum-UIIcon-StarOutline"] = "spectrum-UIIcon-StarOutline_368b34";
module.exports["spectrum-UIIcon-SuccessMedium"] = "spectrum-UIIcon-SuccessMedium_368b34";
module.exports["spectrum-UIIcon-SuccessSmall"] = "spectrum-UIIcon-SuccessSmall_368b34";
module.exports["spectrum-UIIcon-TripleGripper"] = "spectrum-UIIcon-TripleGripper_368b34";

},{}],"aPwML":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Provider", ()=>(0, _provider.Provider));
parcelHelpers.export(exports, "useProvider", ()=>(0, _provider.useProvider));
parcelHelpers.export(exports, "useProviderProps", ()=>(0, _provider.useProviderProps));
var _provider = require("./Provider");

},{"./Provider":"hQyJI","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hQyJI":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Provider", ()=>_Provider);
/**
 * Returns the various settings and styles applied by the nearest parent Provider.
 * Properties explicitly set by the nearest parent Provider override those provided by preceeding Providers.
 */ parcelHelpers.export(exports, "useProvider", ()=>useProvider);
parcelHelpers.export(exports, "useProviderProps", ()=>useProviderProps);
var _utils = require("@react-spectrum/utils");
var _clsx = require("clsx");
var _clsxDefault = parcelHelpers.interopDefault(_clsx);
var _context = require("./context");
var _utils1 = require("@react-aria/utils");
var _i18N = require("@react-aria/i18n");
var _overlays = require("@react-aria/overlays");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/page/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _indexCss = require("@adobe/spectrum-css-temp/components/typography/index.css");
var _indexCssDefault = parcelHelpers.interopDefault(_indexCss);
var _mediaQueries = require("./mediaQueries");
// @ts-ignore
var _packageJson = require("../package.json");
const DEFAULT_BREAKPOINTS = {
    S: 640,
    M: 768,
    L: 1024,
    XL: 1280,
    XXL: 1536
};
function Provider(props, ref) {
    let prevContext = useProvider();
    let prevColorScheme = prevContext && prevContext.colorScheme;
    let prevBreakpoints = prevContext && prevContext.breakpoints;
    let { theme =prevContext && prevContext.theme , defaultColorScheme  } = props;
    if (!theme) throw new Error("theme not found, the parent provider must have a theme provided");
    // Hooks must always be called.
    let autoColorScheme = (0, _mediaQueries.useColorScheme)(theme, defaultColorScheme);
    let autoScale = (0, _mediaQueries.useScale)(theme);
    let { locale: prevLocale  } = (0, _i18N.useLocale)();
    // if the new theme doesn't support the prevColorScheme, we must resort to the auto
    let usePrevColorScheme = !!theme[prevColorScheme];
    // importance of color scheme props > parent > auto:(OS > default > omitted)
    let { colorScheme =usePrevColorScheme ? prevColorScheme : autoColorScheme , scale =prevContext ? prevContext.scale : autoScale , locale =prevContext ? prevLocale : null , breakpoints =prevContext ? prevBreakpoints : DEFAULT_BREAKPOINTS , children , isQuiet , isEmphasized , isDisabled , isRequired , isReadOnly , validationState , ...otherProps } = props;
    // select only the props with values so undefined props don't overwrite prevContext values
    let currentProps = {
        version: (0, _packageJson.version),
        theme,
        breakpoints,
        colorScheme,
        scale,
        isQuiet,
        isEmphasized,
        isDisabled,
        isRequired,
        isReadOnly,
        validationState
    };
    let matchedBreakpoints = (0, _utils.useMatchedBreakpoints)(breakpoints);
    let filteredProps = {};
    Object.entries(currentProps).forEach(([key, value])=>value !== undefined && (filteredProps[key] = value));
    // Merge options with parent provider
    let context = Object.assign({}, prevContext, filteredProps);
    // Only wrap in a DOM node if the theme, colorScheme, or scale changed
    let contents = children;
    let domProps = (0, _utils1.filterDOMProps)(otherProps);
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps, undefined, {
        matchedBreakpoints
    });
    if (!prevContext || props.locale || theme !== prevContext.theme || colorScheme !== prevContext.colorScheme || scale !== prevContext.scale || Object.keys(domProps).length > 0 || otherProps.UNSAFE_className || Object.keys(styleProps.style).length > 0) contents = /*#__PURE__*/ (0, _reactDefault.default).createElement(ProviderWrapper, {
        ...props,
        UNSAFE_style: {
            isolation: !prevContext ? "isolate" : undefined,
            ...styleProps.style
        },
        ref: ref
    }, contents);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.Context).Provider, {
        value: context
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _i18N.I18nProvider), {
        locale: locale
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.BreakpointProvider), {
        matchedBreakpoints: matchedBreakpoints
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.ModalProvider), null, contents))));
}
/**
 * Provider is the container for all React Spectrum applications.
 * It defines the theme, locale, and other application level settings,
 * and can also be used to provide common properties to a group of components.
 */ let _Provider = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Provider);
const ProviderWrapper = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(function ProviderWrapper(props, ref) {
    let { children , ...otherProps } = props;
    let { locale , direction  } = (0, _i18N.useLocale)();
    let { theme , colorScheme , scale  } = useProvider();
    let { modalProviderProps  } = (0, _overlays.useModalProvider)();
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let domRef = (0, _utils.useDOMRef)(ref);
    let themeKey = Object.keys(theme[colorScheme])[0];
    let scaleKey = Object.keys(theme[scale])[0];
    let className = (0, _clsxDefault.default)(styleProps.className, (0, _varsCssDefault.default)["spectrum"], (0, _indexCssDefault.default)["spectrum"], Object.values(theme[colorScheme]), Object.values(theme[scale]), theme.global ? Object.values(theme.global) : null, {
        "react-spectrum-provider": (0, _utils.shouldKeepSpectrumClassNames),
        spectrum: (0, _utils.shouldKeepSpectrumClassNames),
        [themeKey]: (0, _utils.shouldKeepSpectrumClassNames),
        [scaleKey]: (0, _utils.shouldKeepSpectrumClassNames)
    });
    var _props_colorScheme, _ref;
    let style = {
        ...styleProps.style,
        // This ensures that browser native UI like scrollbars are rendered in the right color scheme.
        // See https://web.dev/color-scheme/.
        colorScheme: (_ref = (_props_colorScheme = props.colorScheme) !== null && _props_colorScheme !== void 0 ? _props_colorScheme : colorScheme) !== null && _ref !== void 0 ? _ref : Object.keys(theme).filter((k)=>k === "light" || k === "dark").join(" ")
    };
    let hasWarned = (0, _react.useRef)(false);
    (0, _react.useEffect)(()=>{
        if (direction && domRef.current) {
            let closestDir = domRef.current.parentElement.closest("[dir]");
            let dir = closestDir && closestDir.getAttribute("dir");
            if (dir && dir !== direction && !hasWarned.current) {
                console.warn(`Language directions cannot be nested. ${direction} inside ${dir}.`);
                hasWarned.current = true;
            }
        }
    }, [
        direction,
        domRef,
        hasWarned
    ]);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        ...modalProviderProps,
        className: className,
        style: style,
        lang: locale,
        dir: direction,
        ref: domRef
    }, children);
});
function useProvider() {
    return (0, _react.useContext)((0, _context.Context));
}
function useProviderProps(props) {
    let context = useProvider();
    if (!context) return props;
    return Object.assign({}, {
        isQuiet: context.isQuiet,
        isEmphasized: context.isEmphasized,
        isDisabled: context.isDisabled,
        isRequired: context.isRequired,
        isReadOnly: context.isReadOnly,
        validationState: context.validationState
    }, props);
}

},{"@react-spectrum/utils":"cYYzN","clsx":"bY7QY","./context":"feVol","@react-aria/utils":"5XGXZ","@react-aria/i18n":"lHUec","@react-aria/overlays":"6PUL4","react":"react","@adobe/spectrum-css-temp/components/page/vars.css":"fIROb","@adobe/spectrum-css-temp/components/typography/index.css":"4PqyY","./mediaQueries":"d4qIH","../package.json":"8ED3R","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"feVol":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Context", ()=>Context);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const Context = (0, _reactDefault.default).createContext(null);
Context.displayName = "ProviderContext";

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6PUL4":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useOverlayPosition", ()=>(0, _useOverlayPosition.useOverlayPosition));
parcelHelpers.export(exports, "useOverlay", ()=>(0, _useOverlay.useOverlay));
parcelHelpers.export(exports, "useOverlayTrigger", ()=>(0, _useOverlayTrigger.useOverlayTrigger));
parcelHelpers.export(exports, "usePreventScroll", ()=>(0, _usePreventScroll.usePreventScroll));
parcelHelpers.export(exports, "ModalProvider", ()=>(0, _useModal.ModalProvider));
parcelHelpers.export(exports, "useModalProvider", ()=>(0, _useModal.useModalProvider));
parcelHelpers.export(exports, "OverlayProvider", ()=>(0, _useModal.OverlayProvider));
parcelHelpers.export(exports, "OverlayContainer", ()=>(0, _useModal.OverlayContainer));
parcelHelpers.export(exports, "useModal", ()=>(0, _useModal.useModal));
parcelHelpers.export(exports, "DismissButton", ()=>(0, _dismissButton.DismissButton));
parcelHelpers.export(exports, "ariaHideOutside", ()=>(0, _ariaHideOutside.ariaHideOutside));
parcelHelpers.export(exports, "usePopover", ()=>(0, _usePopover.usePopover));
parcelHelpers.export(exports, "useModalOverlay", ()=>(0, _useModalOverlay.useModalOverlay));
parcelHelpers.export(exports, "Overlay", ()=>(0, _overlay.Overlay));
parcelHelpers.export(exports, "useOverlayFocusContain", ()=>(0, _overlay.useOverlayFocusContain));
var _useOverlayPosition = require("./useOverlayPosition");
var _useOverlay = require("./useOverlay");
var _useOverlayTrigger = require("./useOverlayTrigger");
var _usePreventScroll = require("./usePreventScroll");
var _useModal = require("./useModal");
var _dismissButton = require("./DismissButton");
var _ariaHideOutside = require("./ariaHideOutside");
var _usePopover = require("./usePopover");
var _useModalOverlay = require("./useModalOverlay");
var _overlay = require("./Overlay");

},{"./useOverlayPosition":false,"./useOverlay":false,"./useOverlayTrigger":"eFupc","./usePreventScroll":false,"./useModal":"iRuKK","./DismissButton":"5RM75","./ariaHideOutside":"elMMk","./usePopover":"d12VJ","./useModalOverlay":"bQFQM","./Overlay":"7xYsn","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1C46p":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles positioning overlays like popovers and menus relative to a trigger
 * element, and updating the position when the window resizes.
 */ parcelHelpers.export(exports, "useOverlayPosition", ()=>useOverlayPosition);
var _calculatePosition = require("./calculatePosition");
var _react = require("react");
var _useCloseOnScroll = require("./useCloseOnScroll");
var _utils = require("@react-aria/utils");
var _i18N = require("@react-aria/i18n");
// @ts-ignore
let visualViewport = typeof document !== "undefined" && window.visualViewport;
function useOverlayPosition(props) {
    let { direction  } = (0, _i18N.useLocale)();
    let { arrowSize =0 , targetRef , overlayRef , scrollRef =overlayRef , placement ="bottom" , containerPadding =12 , shouldFlip =true , boundaryElement =typeof document !== "undefined" ? document.body : null , offset =0 , crossOffset =0 , shouldUpdatePosition =true , isOpen =true , onClose , maxHeight , arrowBoundaryOffset =0  } = props;
    let [position, setPosition] = (0, _react.useState)({
        position: {},
        arrowOffsetLeft: undefined,
        arrowOffsetTop: undefined,
        maxHeight: undefined,
        placement: undefined
    });
    let deps = [
        shouldUpdatePosition,
        placement,
        overlayRef.current,
        targetRef.current,
        scrollRef.current,
        containerPadding,
        shouldFlip,
        boundaryElement,
        offset,
        crossOffset,
        isOpen,
        direction,
        maxHeight,
        arrowBoundaryOffset,
        arrowSize
    ];
    let updatePosition = (0, _react.useCallback)(()=>{
        if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) return;
        let position = (0, _calculatePosition.calculatePosition)({
            placement: translateRTL(placement, direction),
            overlayNode: overlayRef.current,
            targetNode: targetRef.current,
            scrollNode: scrollRef.current,
            padding: containerPadding,
            shouldFlip,
            boundaryElement,
            offset,
            crossOffset,
            maxHeight,
            arrowSize,
            arrowBoundaryOffset
        });
        // Modify overlay styles directly so positioning happens immediately without the need of a second render
        // This is so we don't have to delay autoFocus scrolling or delay applying preventScroll for popovers
        Object.keys(position.position).forEach((key)=>overlayRef.current.style[key] = position.position[key] + "px");
        overlayRef.current.style.maxHeight = position.maxHeight != null ? position.maxHeight + "px" : undefined;
        // Trigger a set state for a second render anyway for arrow positioning
        setPosition(position);
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, deps);
    // Update position when anything changes
    // eslint-disable-next-line react-hooks/exhaustive-deps
    (0, _utils.useLayoutEffect)(updatePosition, deps);
    // Update position on window resize
    useResize(updatePosition);
    // Update position when the overlay changes size (might need to flip).
    (0, _utils.useResizeObserver)({
        ref: overlayRef,
        onResize: updatePosition
    });
    // Reposition the overlay and do not close on scroll while the visual viewport is resizing.
    // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.
    let isResizing = (0, _react.useRef)(false);
    (0, _utils.useLayoutEffect)(()=>{
        let timeout;
        let onResize = ()=>{
            isResizing.current = true;
            clearTimeout(timeout);
            timeout = setTimeout(()=>{
                isResizing.current = false;
            }, 500);
            updatePosition();
        };
        visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener("resize", onResize);
        visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener("scroll", onResize);
        return ()=>{
            visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener("resize", onResize);
            visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener("scroll", onResize);
        };
    }, [
        updatePosition
    ]);
    let close = (0, _react.useCallback)(()=>{
        if (!isResizing.current) onClose();
    }, [
        onClose,
        isResizing
    ]);
    // When scrolling a parent scrollable region of the trigger (other than the body),
    // we hide the popover. Otherwise, its position would be incorrect.
    (0, _useCloseOnScroll.useCloseOnScroll)({
        triggerRef: targetRef,
        isOpen,
        onClose: onClose && close
    });
    return {
        overlayProps: {
            style: {
                position: "absolute",
                zIndex: 100000,
                ...position.position,
                maxHeight: position.maxHeight
            }
        },
        placement: position.placement,
        arrowProps: {
            "aria-hidden": "true",
            role: "presentation",
            style: {
                left: position.arrowOffsetLeft,
                top: position.arrowOffsetTop
            }
        },
        updatePosition
    };
}
function useResize(onResize) {
    (0, _utils.useLayoutEffect)(()=>{
        window.addEventListener("resize", onResize, false);
        return ()=>{
            window.removeEventListener("resize", onResize, false);
        };
    }, [
        onResize
    ]);
}
function translateRTL(position, direction) {
    if (direction === "rtl") return position.replace("start", "right").replace("end", "left");
    return position.replace("start", "left").replace("end", "right");
}

},{"./calculatePosition":"apZNv","react":"react","./useCloseOnScroll":"lpXGs","@react-aria/utils":"5XGXZ","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"apZNv":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "calculatePositionInternal", ()=>calculatePositionInternal);
/**
 * Determines where to place the overlay with regards to the target and the position of an optional indicator.
 */ parcelHelpers.export(exports, "calculatePosition", ()=>calculatePosition);
var _utils = require("@react-aria/utils");
const AXIS = {
    top: "top",
    bottom: "top",
    left: "left",
    right: "left"
};
const FLIPPED_DIRECTION = {
    top: "bottom",
    bottom: "top",
    left: "right",
    right: "left"
};
const CROSS_AXIS = {
    top: "left",
    left: "top"
};
const AXIS_SIZE = {
    top: "height",
    left: "width"
};
const TOTAL_SIZE = {
    width: "totalWidth",
    height: "totalHeight"
};
const PARSED_PLACEMENT_CACHE = {};
// @ts-ignore
let visualViewport = typeof document !== "undefined" && window.visualViewport;
function getContainerDimensions(containerNode) {
    let width = 0, height = 0, totalWidth = 0, totalHeight = 0, top = 0, left = 0;
    let scroll = {};
    if (containerNode.tagName === "BODY") {
        let documentElement = document.documentElement;
        totalWidth = documentElement.clientWidth;
        totalHeight = documentElement.clientHeight;
        var _visualViewport_width;
        width = (_visualViewport_width = visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.width) !== null && _visualViewport_width !== void 0 ? _visualViewport_width : totalWidth;
        var _visualViewport_height;
        height = (_visualViewport_height = visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.height) !== null && _visualViewport_height !== void 0 ? _visualViewport_height : totalHeight;
        scroll.top = documentElement.scrollTop || containerNode.scrollTop;
        scroll.left = documentElement.scrollLeft || containerNode.scrollLeft;
    } else {
        ({ width , height , top , left  } = getOffset(containerNode));
        scroll.top = containerNode.scrollTop;
        scroll.left = containerNode.scrollLeft;
        totalWidth = width;
        totalHeight = height;
    }
    return {
        width,
        height,
        totalWidth,
        totalHeight,
        scroll,
        top,
        left
    };
}
function getScroll(node) {
    return {
        top: node.scrollTop,
        left: node.scrollLeft,
        width: node.scrollWidth,
        height: node.scrollHeight
    };
}
function getDelta(axis, offset, size, containerDimensions, padding) {
    let containerScroll = containerDimensions.scroll[axis];
    let containerHeight = containerDimensions[AXIS_SIZE[axis]];
    let startEdgeOffset = offset - padding - containerScroll;
    let endEdgeOffset = offset + padding - containerScroll + size;
    if (startEdgeOffset < 0) return -startEdgeOffset;
    else if (endEdgeOffset > containerHeight) return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);
    else return 0;
}
function getMargins(node) {
    let style = window.getComputedStyle(node);
    return {
        top: parseInt(style.marginTop, 10) || 0,
        bottom: parseInt(style.marginBottom, 10) || 0,
        left: parseInt(style.marginLeft, 10) || 0,
        right: parseInt(style.marginRight, 10) || 0
    };
}
function parsePlacement(input) {
    if (PARSED_PLACEMENT_CACHE[input]) return PARSED_PLACEMENT_CACHE[input];
    let [placement, crossPlacement] = input.split(" ");
    let axis = AXIS[placement] || "right";
    let crossAxis = CROSS_AXIS[axis];
    if (!AXIS[crossPlacement]) crossPlacement = "center";
    let size = AXIS_SIZE[axis];
    let crossSize = AXIS_SIZE[crossAxis];
    PARSED_PLACEMENT_CACHE[input] = {
        placement,
        crossPlacement,
        axis,
        crossAxis,
        size,
        crossSize
    };
    return PARSED_PLACEMENT_CACHE[input];
}
function computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset) {
    let { placement , crossPlacement , axis , crossAxis , size , crossSize  } = placementInfo;
    let position = {};
    // button position
    position[crossAxis] = childOffset[crossAxis];
    if (crossPlacement === "center") //  + (button size / 2) - (overlay size / 2)
    // at this point the overlay center should match the button center
    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;
    else if (crossPlacement !== crossAxis) //  + (button size) - (overlay size)
    // at this point the overlay bottom should match the button bottom
    position[crossAxis] += childOffset[crossSize] - overlaySize[crossSize];
     /* else {
    the overlay top should match the button top
  } */ 
    // add the crossOffset from props
    position[crossAxis] += crossOffset;
    // overlay top overlapping arrow with button bottom
    const minPosition = childOffset[crossAxis] - overlaySize[crossSize] + arrowSize + arrowBoundaryOffset;
    // overlay bottom overlapping arrow with button top
    const maxPosition = childOffset[crossAxis] + childOffset[crossSize] - arrowSize - arrowBoundaryOffset;
    position[crossAxis] = (0, _utils.clamp)(position[crossAxis], minPosition, maxPosition);
    // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.
    if (placement === axis) {
        // If the container is positioned (non-static), then we use the container's actual
        // height, as `bottom` will be relative to this height.  But if the container is static,
        // then it can only be the `document.body`, and `bottom` will be relative to _its_
        // container, which should be as large as boundaryDimensions.
        const containerHeight = isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[TOTAL_SIZE[size]];
        position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);
    } else position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);
    return position;
}
function getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding) {
    return position.top != null ? Math.max(0, boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top // this is the bottom of the boundary
     - (containerOffsetWithBoundary.top + position.top // this is the top of the overlay
    ) - (margins.top + margins.bottom + padding // save additional space for margin and padding
    )) : Math.max(0, childOffset.top + containerOffsetWithBoundary.top // this is the top of the trigger
     - (boundaryDimensions.top + boundaryDimensions.scroll.top // this is the top of the boundary
    ) - (margins.top + margins.bottom + padding // save additional space for margin and padding
    ));
}
function getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding, placementInfo) {
    let { placement , axis , size  } = placementInfo;
    if (placement === axis) return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);
    return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);
}
function calculatePositionInternal(placementInput, childOffset, overlaySize, scrollSize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned, userSetMaxHeight, arrowSize, arrowBoundaryOffset) {
    let placementInfo = parsePlacement(placementInput);
    let { size , crossAxis , crossSize , placement , crossPlacement  } = placementInfo;
    let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset);
    let normalizedOffset = offset;
    let space = getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, placementInfo);
    // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip
    if (flip && scrollSize[size] > space) {
        let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}`);
        let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset);
        let flippedSpace = getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, flippedPlacementInfo);
        // If the available space for the flipped position is greater than the original available space, flip.
        if (flippedSpace > space) {
            placementInfo = flippedPlacementInfo;
            position = flippedPosition;
            normalizedOffset = offset;
        }
    }
    let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);
    position[crossAxis] += delta;
    let maxHeight = getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding);
    if (userSetMaxHeight && userSetMaxHeight < maxHeight) maxHeight = userSetMaxHeight;
    overlaySize.height = Math.min(overlaySize.height, maxHeight);
    position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset);
    delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);
    position[crossAxis] += delta;
    let arrowPosition = {};
    // All values are transformed so that 0 is at the top/left of the overlay depending on the orientation
    // Prefer the arrow being in the center of the trigger/overlay anchor element
    let preferredArrowPosition = childOffset[crossAxis] + .5 * childOffset[crossSize] - overlaySize[crossAxis];
    // Min/Max position limits for the arrow with respect to the overlay
    const arrowMinPosition = arrowSize / 2 + arrowBoundaryOffset;
    const arrowMaxPosition = overlaySize[crossSize] - arrowSize / 2 - arrowBoundaryOffset;
    // Min/Max position limits for the arrow with respect to the trigger/overlay anchor element
    const arrowOverlappingChildMinEdge = childOffset[crossAxis] - overlaySize[crossAxis] + arrowSize / 2;
    const arrowOverlappingChildMaxEdge = childOffset[crossAxis] + childOffset[crossSize] - overlaySize[crossAxis] - arrowSize / 2;
    // Clamp the arrow positioning so that it always is within the bounds of the anchor and the overlay
    const arrowPositionOverlappingChild = (0, _utils.clamp)(preferredArrowPosition, arrowOverlappingChildMinEdge, arrowOverlappingChildMaxEdge);
    arrowPosition[crossAxis] = (0, _utils.clamp)(arrowPositionOverlappingChild, arrowMinPosition, arrowMaxPosition);
    return {
        position,
        maxHeight: maxHeight,
        arrowOffsetLeft: arrowPosition.left,
        arrowOffsetTop: arrowPosition.top,
        placement: placementInfo.placement
    };
}
function calculatePosition(opts) {
    let { placement , targetNode , overlayNode , scrollNode , padding , shouldFlip , boundaryElement , offset , crossOffset , maxHeight , arrowSize =0 , arrowBoundaryOffset =0  } = opts;
    let container = overlayNode instanceof HTMLElement ? getContainingBlock(overlayNode) : document.documentElement;
    let isViewportContainer = container === document.documentElement;
    const containerPositionStyle = window.getComputedStyle(container).position;
    let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== "static";
    let childOffset = isViewportContainer ? getOffset(targetNode) : getPosition(targetNode, container);
    if (!isViewportContainer) {
        let { marginTop , marginLeft  } = window.getComputedStyle(targetNode);
        childOffset.top += parseInt(marginTop, 10) || 0;
        childOffset.left += parseInt(marginLeft, 10) || 0;
    }
    let overlaySize = getOffset(overlayNode);
    let margins = getMargins(overlayNode);
    overlaySize.width += margins.left + margins.right;
    overlaySize.height += margins.top + margins.bottom;
    let scrollSize = getScroll(scrollNode);
    let boundaryDimensions = getContainerDimensions(boundaryElement);
    let containerOffsetWithBoundary = boundaryElement.tagName === "BODY" ? getOffset(container) : getPosition(container, boundaryElement);
    return calculatePositionInternal(placement, childOffset, overlaySize, scrollSize, margins, padding, shouldFlip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned, maxHeight, arrowSize, arrowBoundaryOffset);
}
function getOffset(node) {
    let { top , left , width , height  } = node.getBoundingClientRect();
    let { scrollTop , scrollLeft , clientTop , clientLeft  } = document.documentElement;
    return {
        top: top + scrollTop - clientTop,
        left: left + scrollLeft - clientLeft,
        width,
        height
    };
}
function getPosition(node, parent) {
    let style = window.getComputedStyle(node);
    let offset;
    if (style.position === "fixed") {
        let { top , left , width , height  } = node.getBoundingClientRect();
        offset = {
            top,
            left,
            width,
            height
        };
    } else {
        offset = getOffset(node);
        let parentOffset = getOffset(parent);
        let parentStyle = window.getComputedStyle(parent);
        parentOffset.top += (parseInt(parentStyle.borderTopWidth, 10) || 0) - parent.scrollTop;
        parentOffset.left += (parseInt(parentStyle.borderLeftWidth, 10) || 0) - parent.scrollLeft;
        offset.top -= parentOffset.top;
        offset.left -= parentOffset.left;
    }
    offset.top -= parseInt(style.marginTop, 10) || 0;
    offset.left -= parseInt(style.marginLeft, 10) || 0;
    return offset;
}
// Returns the containing block of an element, which is the element that
// this element will be positioned relative to.
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block
function getContainingBlock(node) {
    // The offsetParent of an element in most cases equals the containing block.
    // https://w3c.github.io/csswg-drafts/cssom-view/#dom-htmlelement-offsetparent
    let offsetParent = node.offsetParent;
    // The offsetParent algorithm terminates at the document body,
    // even if the body is not a containing block. Double check that
    // and use the documentElement if so.
    if (offsetParent && offsetParent === document.body && window.getComputedStyle(offsetParent).position === "static" && !isContainingBlock(offsetParent)) offsetParent = document.documentElement;
    // TODO(later): handle table elements?
    // The offsetParent can be null if the element has position: fixed, or a few other cases.
    // We have to walk up the tree manually in this case because fixed positioned elements
    // are still positioned relative to their containing block, which is not always the viewport.
    if (offsetParent == null) {
        offsetParent = node.parentElement;
        while(offsetParent && !isContainingBlock(offsetParent))offsetParent = offsetParent.parentElement;
    }
    // Fall back to the viewport.
    return offsetParent || document.documentElement;
}
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
function isContainingBlock(node) {
    let style = window.getComputedStyle(node);
    return style.transform !== "none" || /transform|perspective/.test(style.willChange) || style.filter !== "none" || style.contain === "paint" || // @ts-ignore
    "backdropFilter" in style && style.backdropFilter !== "none" || // @ts-ignore
    "WebkitBackdropFilter" in style && style.WebkitBackdropFilter !== "none";
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"lpXGs":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "onCloseMap", ()=>onCloseMap);
/** @private */ parcelHelpers.export(exports, "useCloseOnScroll", ()=>useCloseOnScroll);
var _react = require("react");
const onCloseMap = new WeakMap();
function useCloseOnScroll(opts) {
    let { triggerRef , isOpen , onClose  } = opts;
    (0, _react.useEffect)(()=>{
        if (!isOpen || onClose === null) return;
        let onScroll = (e)=>{
            // Ignore if scrolling an scrollable region outside the trigger's tree.
            let target = e.target;
            // window is not a Node and doesn't have contain, but window contains everything
            if (!triggerRef.current || target instanceof Node && !target.contains(triggerRef.current)) return;
            let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);
            if (onCloseHandler) onCloseHandler();
        };
        window.addEventListener("scroll", onScroll, true);
        return ()=>{
            window.removeEventListener("scroll", onScroll, true);
        };
    }, [
        isOpen,
        onClose,
        triggerRef
    ]);
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"2VZnT":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior for overlays such as dialogs, popovers, and menus.
 * Hides the overlay when the user interacts outside it, when the Escape key is pressed,
 * or optionally, on blur. Only the top-most overlay will close at once.
 */ parcelHelpers.export(exports, "useOverlay", ()=>useOverlay);
var _focus = require("@react-aria/focus");
var _react = require("react");
var _interactions = require("@react-aria/interactions");
const visibleOverlays = [];
function useOverlay(props, ref) {
    let { onClose , shouldCloseOnBlur , isOpen , isDismissable =false , isKeyboardDismissDisabled =false , shouldCloseOnInteractOutside  } = props;
    // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.
    (0, _react.useEffect)(()=>{
        if (isOpen) visibleOverlays.push(ref);
        return ()=>{
            let index = visibleOverlays.indexOf(ref);
            if (index >= 0) visibleOverlays.splice(index, 1);
        };
    }, [
        isOpen,
        ref
    ]);
    // Only hide the overlay when it is the topmost visible overlay in the stack.
    let onHide = ()=>{
        if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) onClose();
    };
    let onInteractOutsideStart = (e)=>{
        if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {
            if (visibleOverlays[visibleOverlays.length - 1] === ref) {
                e.stopPropagation();
                e.preventDefault();
            }
        }
    };
    let onInteractOutside = (e)=>{
        if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {
            if (visibleOverlays[visibleOverlays.length - 1] === ref) {
                e.stopPropagation();
                e.preventDefault();
            }
            onHide();
        }
    };
    // Handle the escape key
    let onKeyDown = (e)=>{
        if (e.key === "Escape" && !isKeyboardDismissDisabled) {
            e.stopPropagation();
            e.preventDefault();
            onHide();
        }
    };
    // Handle clicking outside the overlay to close it
    (0, _interactions.useInteractOutside)({
        ref,
        onInteractOutside: isDismissable ? onInteractOutside : null,
        onInteractOutsideStart
    });
    let { focusWithinProps  } = (0, _interactions.useFocusWithin)({
        isDisabled: !shouldCloseOnBlur,
        onBlurWithin: (e)=>{
            // Do not close if relatedTarget is null, which means focus is lost to the body.
            // That can happen when switching tabs, or due to a VoiceOver/Chrome bug with Control+Option+Arrow navigation.
            // Clicking on the body to close the overlay should already be handled by useInteractOutside.
            // https://github.com/adobe/react-spectrum/issues/4130
            // https://github.com/adobe/react-spectrum/issues/4922
            //
            // If focus is moving into a child focus scope (e.g. menu inside a dialog),
            // do not close the outer overlay. At this point, the active scope should
            // still be the outer overlay, since blur events run before focus.
            if (!e.relatedTarget || (0, _focus.isElementInChildOfActiveScope)(e.relatedTarget)) return;
            if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget)) onClose();
        }
    });
    let onPointerDownUnderlay = (e)=>{
        // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846
        if (e.target === e.currentTarget) e.preventDefault();
    };
    return {
        overlayProps: {
            onKeyDown,
            ...focusWithinProps
        },
        underlayProps: {
            onPointerDown: onPointerDownUnderlay
        }
    };
}

},{"@react-aria/focus":"cRsYs","react":"react","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"cRsYs":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "FocusScope", ()=>(0, _focusScope.FocusScope));
parcelHelpers.export(exports, "useFocusManager", ()=>(0, _focusScope.useFocusManager));
parcelHelpers.export(exports, "getFocusableTreeWalker", ()=>(0, _focusScope.getFocusableTreeWalker));
parcelHelpers.export(exports, "createFocusManager", ()=>(0, _focusScope.createFocusManager));
parcelHelpers.export(exports, "isElementInChildOfActiveScope", ()=>(0, _focusScope.isElementInChildOfActiveScope));
parcelHelpers.export(exports, "FocusRing", ()=>(0, _focusRing.FocusRing));
parcelHelpers.export(exports, "FocusableProvider", ()=>(0, _useFocusable.FocusableProvider));
parcelHelpers.export(exports, "useFocusable", ()=>(0, _useFocusable.useFocusable));
parcelHelpers.export(exports, "useFocusRing", ()=>(0, _useFocusRing.useFocusRing));
parcelHelpers.export(exports, "focusSafely", ()=>(0, _focusSafely.focusSafely));
parcelHelpers.export(exports, "useHasTabbableChild", ()=>(0, _useHasTabbableChild.useHasTabbableChild));
var _focusScope = require("./FocusScope");
var _focusRing = require("./FocusRing");
var _useFocusable = require("./useFocusable");
var _useFocusRing = require("./useFocusRing");
var _focusSafely = require("./focusSafely");
var _useHasTabbableChild = require("./useHasTabbableChild");

},{"./FocusScope":"k9fHb","./FocusRing":"47OJJ","./useFocusable":"1ncEp","./useFocusRing":"iSrkl","./focusSafely":"jPZJm","./useHasTabbableChild":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"k9fHb":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:
// https://github.com/reactjs/rfcs/pull/109
/**
 * A FocusScope manages focus for its descendants. It supports containing focus inside
 * the scope, restoring focus to the previously focused element on unmount, and auto
 * focusing children on mount. It also acts as a container for a programmatic focus
 * management interface that can be used to move focus forward and back in response
 * to user events.
 */ parcelHelpers.export(exports, "FocusScope", ()=>FocusScope);
/**
 * Returns a FocusManager interface for the parent FocusScope.
 * A FocusManager can be used to programmatically move focus within
 * a FocusScope, e.g. in response to user events like keyboard navigation.
 */ parcelHelpers.export(exports, "useFocusManager", ()=>useFocusManager);
/** @private */ parcelHelpers.export(exports, "isElementInChildOfActiveScope", ()=>isElementInChildOfActiveScope);
/**
 * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}
 * that matches all focusable/tabbable elements.
 */ parcelHelpers.export(exports, "getFocusableTreeWalker", ()=>getFocusableTreeWalker);
/**
 * Creates a FocusManager object that can be used to move focus within an element.
 */ parcelHelpers.export(exports, "createFocusManager", ()=>createFocusManager);
parcelHelpers.export(exports, "focusScopeTree", ()=>focusScopeTree);
var _focusSafely = require("./focusSafely");
var _isElementVisible = require("./isElementVisible");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _utils = require("@react-aria/utils");
const FocusContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
let activeScope = null;
function FocusScope(props) {
    let { children , contain , restoreFocus , autoFocus  } = props;
    let startRef = (0, _react.useRef)();
    let endRef = (0, _react.useRef)();
    let scopeRef = (0, _react.useRef)([]);
    let { parentNode  } = (0, _react.useContext)(FocusContext) || {};
    // Create a tree node here so we can add children to it even before it is added to the tree.
    let node = (0, _react.useMemo)(()=>new TreeNode({
            scopeRef
        }), [
        scopeRef
    ]);
    (0, _utils.useLayoutEffect)(()=>{
        // If a new scope mounts outside the active scope, (e.g. DialogContainer launched from a menu),
        // use the active scope as the parent instead of the parent from context. Layout effects run bottom
        // up, so if the parent is not yet added to the tree, don't do this. Only the outer-most FocusScope
        // that is being added should get the activeScope as its parent.
        let parent = parentNode || focusScopeTree.root;
        if (focusScopeTree.getTreeNode(parent.scopeRef) && activeScope && !isAncestorScope(activeScope, parent.scopeRef)) {
            let activeNode = focusScopeTree.getTreeNode(activeScope);
            if (activeNode) parent = activeNode;
        }
        // Add the node to the parent, and to the tree.
        parent.addChild(node);
        focusScopeTree.addNode(node);
    }, [
        node,
        parentNode
    ]);
    (0, _utils.useLayoutEffect)(()=>{
        let node = focusScopeTree.getTreeNode(scopeRef);
        node.contain = contain;
    }, [
        contain
    ]);
    (0, _utils.useLayoutEffect)(()=>{
        // Find all rendered nodes between the sentinels and add them to the scope.
        let node = startRef.current.nextSibling;
        let nodes = [];
        while(node && node !== endRef.current){
            nodes.push(node);
            node = node.nextSibling;
        }
        scopeRef.current = nodes;
    }, [
        children
    ]);
    useActiveScopeTracker(scopeRef, restoreFocus, contain);
    useFocusContainment(scopeRef, contain);
    useRestoreFocus(scopeRef, restoreFocus, contain);
    useAutoFocus(scopeRef, autoFocus);
    // this layout effect needs to run last so that focusScopeTree cleanup happens at the last moment possible
    (0, _react.useEffect)(()=>{
        if (scopeRef) {
            let activeElement = document.activeElement;
            let scope = null;
            // In strict mode, active scope is incorrectly updated since cleanup will run even though scope hasn't unmounted.
            // To fix this, we need to update the actual activeScope here
            if (isElementInScope(activeElement, scopeRef.current)) {
                // Since useLayoutEffect runs for children first, we need to traverse the focusScope tree and find the bottom most scope that
                // contains the active element and set that as the activeScope
                for (let node of focusScopeTree.traverse())if (isElementInScope(activeElement, node.scopeRef.current)) scope = node;
                if (scope === focusScopeTree.getTreeNode(scopeRef)) activeScope = scope.scopeRef;
            }
            return ()=>{
                // Scope may have been re-parented.
                let parentScope = focusScopeTree.getTreeNode(scopeRef).parent.scopeRef;
                // Restore the active scope on unmount if this scope or a descendant scope is active.
                // Parent effect cleanups run before children, so we need to check if the
                // parent scope actually still exists before restoring the active scope to it.
                if ((scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) && (!parentScope || focusScopeTree.getTreeNode(parentScope))) activeScope = parentScope;
                focusScopeTree.removeTreeNode(scopeRef);
            };
        }
    }, [
        scopeRef
    ]);
    let focusManager = (0, _react.useMemo)(()=>createFocusManagerForScope(scopeRef), []);
    let value = (0, _react.useMemo)(()=>({
            focusManager,
            parentNode: node
        }), [
        node,
        focusManager
    ]);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(FocusContext.Provider, {
        value: value
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
        "data-focus-scope-start": true,
        hidden: true,
        ref: startRef
    }), children, /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
        "data-focus-scope-end": true,
        hidden: true,
        ref: endRef
    }));
}
function useFocusManager() {
    var _useContext;
    return (_useContext = (0, _react.useContext)(FocusContext)) === null || _useContext === void 0 ? void 0 : _useContext.focusManager;
}
function createFocusManagerForScope(scopeRef) {
    return {
        focusNext (opts = {}) {
            let scope = scopeRef.current;
            let { from , tabbable , wrap , accept  } = opts;
            let node = from || document.activeElement;
            let sentinel = scope[0].previousElementSibling;
            let walker = getFocusableTreeWalker(getScopeRoot(scope), {
                tabbable,
                accept
            }, scope);
            walker.currentNode = isElementInScope(node, scope) ? node : sentinel;
            let nextNode = walker.nextNode();
            if (!nextNode && wrap) {
                walker.currentNode = sentinel;
                nextNode = walker.nextNode();
            }
            if (nextNode) focusElement(nextNode, true);
            return nextNode;
        },
        focusPrevious (opts = {}) {
            let scope = scopeRef.current;
            let { from , tabbable , wrap , accept  } = opts;
            let node = from || document.activeElement;
            let sentinel = scope[scope.length - 1].nextElementSibling;
            let walker = getFocusableTreeWalker(getScopeRoot(scope), {
                tabbable,
                accept
            }, scope);
            walker.currentNode = isElementInScope(node, scope) ? node : sentinel;
            let previousNode = walker.previousNode();
            if (!previousNode && wrap) {
                walker.currentNode = sentinel;
                previousNode = walker.previousNode();
            }
            if (previousNode) focusElement(previousNode, true);
            return previousNode;
        },
        focusFirst (opts = {}) {
            let scope = scopeRef.current;
            let { tabbable , accept  } = opts;
            let walker = getFocusableTreeWalker(getScopeRoot(scope), {
                tabbable,
                accept
            }, scope);
            walker.currentNode = scope[0].previousElementSibling;
            let nextNode = walker.nextNode();
            if (nextNode) focusElement(nextNode, true);
            return nextNode;
        },
        focusLast (opts = {}) {
            let scope = scopeRef.current;
            let { tabbable , accept  } = opts;
            let walker = getFocusableTreeWalker(getScopeRoot(scope), {
                tabbable,
                accept
            }, scope);
            walker.currentNode = scope[scope.length - 1].nextElementSibling;
            let previousNode = walker.previousNode();
            if (previousNode) focusElement(previousNode, true);
            return previousNode;
        }
    };
}
const focusableElements = [
    "input:not([disabled]):not([type=hidden])",
    "select:not([disabled])",
    "textarea:not([disabled])",
    "button:not([disabled])",
    "a[href]",
    "area[href]",
    "summary",
    "iframe",
    "object",
    "embed",
    "audio[controls]",
    "video[controls]",
    "[contenteditable]"
];
const FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(":not([hidden]),") + ",[tabindex]:not([disabled]):not([hidden])";
focusableElements.push('[tabindex]:not([tabindex="-1"]):not([disabled])');
const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex="-1"]),');
function getScopeRoot(scope) {
    return scope[0].parentElement;
}
function shouldContainFocus(scopeRef) {
    let scope = focusScopeTree.getTreeNode(activeScope);
    while(scope && scope.scopeRef !== scopeRef){
        if (scope.contain) return false;
        scope = scope.parent;
    }
    return true;
}
function useFocusContainment(scopeRef, contain) {
    let focusedNode = (0, _react.useRef)();
    let raf = (0, _react.useRef)(null);
    (0, _utils.useLayoutEffect)(()=>{
        let scope = scopeRef.current;
        if (!contain) {
            // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment
            if (raf.current) {
                cancelAnimationFrame(raf.current);
                raf.current = null;
            }
            return;
        }
        // Handle the Tab key to contain focus within the scope
        let onKeyDown = (e)=>{
            if (e.key !== "Tab" || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) return;
            let focusedElement = document.activeElement;
            let scope = scopeRef.current;
            if (!isElementInScope(focusedElement, scope)) return;
            let walker = getFocusableTreeWalker(getScopeRoot(scope), {
                tabbable: true
            }, scope);
            walker.currentNode = focusedElement;
            let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
            if (!nextElement) {
                walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;
                nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
            }
            e.preventDefault();
            if (nextElement) focusElement(nextElement, true);
        };
        let onFocus = (e)=>{
            // If focusing an element in a child scope of the currently active scope, the child becomes active.
            // Moving out of the active scope to an ancestor is not allowed.
            if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(e.target, scopeRef.current)) {
                activeScope = scopeRef;
                focusedNode.current = e.target;
            } else if (shouldContainFocus(scopeRef) && !isElementInChildScope(e.target, scopeRef)) {
                // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),
                // restore focus to the previously focused node or the first tabbable element in the active scope.
                if (focusedNode.current) focusedNode.current.focus();
                else if (activeScope) focusFirstInScope(activeScope.current);
            } else if (shouldContainFocus(scopeRef)) focusedNode.current = e.target;
        };
        let onBlur = (e)=>{
            // Firefox doesn't shift focus back to the Dialog properly without this
            if (raf.current) cancelAnimationFrame(raf.current);
            raf.current = requestAnimationFrame(()=>{
                // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe
                if (shouldContainFocus(scopeRef) && !isElementInChildScope(document.activeElement, scopeRef)) {
                    activeScope = scopeRef;
                    if (document.body.contains(e.target)) {
                        focusedNode.current = e.target;
                        focusedNode.current.focus();
                    } else if (activeScope) focusFirstInScope(activeScope.current);
                }
            });
        };
        document.addEventListener("keydown", onKeyDown, false);
        document.addEventListener("focusin", onFocus, false);
        scope.forEach((element)=>element.addEventListener("focusin", onFocus, false));
        scope.forEach((element)=>element.addEventListener("focusout", onBlur, false));
        return ()=>{
            document.removeEventListener("keydown", onKeyDown, false);
            document.removeEventListener("focusin", onFocus, false);
            scope.forEach((element)=>element.removeEventListener("focusin", onFocus, false));
            scope.forEach((element)=>element.removeEventListener("focusout", onBlur, false));
        };
    }, [
        scopeRef,
        contain
    ]);
    // This is a useLayoutEffect so it is guaranteed to run before our async synthetic blur
    // eslint-disable-next-line arrow-body-style
    (0, _utils.useLayoutEffect)(()=>{
        return ()=>{
            if (raf.current) cancelAnimationFrame(raf.current);
        };
    }, [
        raf
    ]);
}
function isElementInAnyScope(element) {
    return isElementInChildScope(element);
}
function isElementInScope(element, scope) {
    return scope.some((node)=>node.contains(element));
}
function isElementInChildScope(element, scope = null) {
    // If the element is within a top layer element (e.g. toasts), always allow moving focus there.
    if (element instanceof Element && element.closest("[data-react-aria-top-layer]")) return true;
    // node.contains in isElementInScope covers child scopes that are also DOM children,
    // but does not cover child scopes in portals.
    for (let { scopeRef: s  } of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))){
        if (isElementInScope(element, s.current)) return true;
    }
    return false;
}
function isElementInChildOfActiveScope(element) {
    return isElementInChildScope(element, activeScope);
}
function isAncestorScope(ancestor, scope) {
    var _focusScopeTree_getTreeNode;
    let parent = (_focusScopeTree_getTreeNode = focusScopeTree.getTreeNode(scope)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : _focusScopeTree_getTreeNode.parent;
    while(parent){
        if (parent.scopeRef === ancestor) return true;
        parent = parent.parent;
    }
    return false;
}
function focusElement(element, scroll = false) {
    if (element != null && !scroll) try {
        (0, _focusSafely.focusSafely)(element);
    } catch (err) {
    // ignore
    }
    else if (element != null) try {
        element.focus();
    } catch (err) {
    // ignore
    }
}
function focusFirstInScope(scope, tabbable = true) {
    let sentinel = scope[0].previousElementSibling;
    let walker = getFocusableTreeWalker(getScopeRoot(scope), {
        tabbable
    }, scope);
    walker.currentNode = sentinel;
    let nextNode = walker.nextNode();
    // If the scope does not contain a tabbable element, use the first focusable element.
    if (tabbable && !nextNode) {
        walker = getFocusableTreeWalker(getScopeRoot(scope), {
            tabbable: false
        }, scope);
        walker.currentNode = sentinel;
        nextNode = walker.nextNode();
    }
    focusElement(nextNode);
}
function useAutoFocus(scopeRef, autoFocus) {
    const autoFocusRef = (0, _reactDefault.default).useRef(autoFocus);
    (0, _react.useEffect)(()=>{
        if (autoFocusRef.current) {
            activeScope = scopeRef;
            if (!isElementInScope(document.activeElement, activeScope.current)) focusFirstInScope(scopeRef.current);
        }
        autoFocusRef.current = false;
    }, [
        scopeRef
    ]);
}
function useActiveScopeTracker(scopeRef, restore, contain) {
    // tracks the active scope, in case restore and contain are both false.
    // if either are true, this is tracked in useRestoreFocus or useFocusContainment.
    (0, _utils.useLayoutEffect)(()=>{
        if (restore || contain) return;
        let scope = scopeRef.current;
        let onFocus = (e)=>{
            let target = e.target;
            if (isElementInScope(target, scopeRef.current)) activeScope = scopeRef;
            else if (!isElementInAnyScope(target)) activeScope = null;
        };
        document.addEventListener("focusin", onFocus, false);
        scope.forEach((element)=>element.addEventListener("focusin", onFocus, false));
        return ()=>{
            document.removeEventListener("focusin", onFocus, false);
            scope.forEach((element)=>element.removeEventListener("focusin", onFocus, false));
        };
    }, [
        scopeRef,
        restore,
        contain
    ]);
}
function shouldRestoreFocus(scopeRef) {
    let scope = focusScopeTree.getTreeNode(activeScope);
    while(scope && scope.scopeRef !== scopeRef){
        if (scope.nodeToRestore) return false;
        scope = scope.parent;
    }
    return (scope === null || scope === void 0 ? void 0 : scope.scopeRef) === scopeRef;
}
function useRestoreFocus(scopeRef, restoreFocus, contain) {
    // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.
    const nodeToRestoreRef = (0, _react.useRef)(typeof document !== "undefined" ? document.activeElement : null);
    // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus
    // restoring-non-containing scopes should only care if they become active so they can perform the restore
    (0, _utils.useLayoutEffect)(()=>{
        let scope = scopeRef.current;
        if (!restoreFocus || contain) return;
        let onFocus = ()=>{
            // If focusing an element in a child scope of the currently active scope, the child becomes active.
            // Moving out of the active scope to an ancestor is not allowed.
            if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(document.activeElement, scopeRef.current)) activeScope = scopeRef;
        };
        document.addEventListener("focusin", onFocus, false);
        scope.forEach((element)=>element.addEventListener("focusin", onFocus, false));
        return ()=>{
            document.removeEventListener("focusin", onFocus, false);
            scope.forEach((element)=>element.removeEventListener("focusin", onFocus, false));
        };
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [
        scopeRef,
        contain
    ]);
    (0, _utils.useLayoutEffect)(()=>{
        if (!restoreFocus) return;
        // Handle the Tab key so that tabbing out of the scope goes to the next element
        // after the node that had focus when the scope mounted. This is important when
        // using portals for overlays, so that focus goes to the expected element when
        // tabbing out of the overlay.
        let onKeyDown = (e)=>{
            if (e.key !== "Tab" || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) return;
            let focusedElement = document.activeElement;
            if (!isElementInScope(focusedElement, scopeRef.current)) return;
            let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;
            // Create a DOM tree walker that matches all tabbable elements
            let walker = getFocusableTreeWalker(document.body, {
                tabbable: true
            });
            // Find the next tabbable element after the currently focused element
            walker.currentNode = focusedElement;
            let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
            if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {
                nodeToRestore = null;
                focusScopeTree.getTreeNode(scopeRef).nodeToRestore = null;
            }
            // If there is no next element, or it is outside the current scope, move focus to the
            // next element after the node to restore to instead.
            if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {
                walker.currentNode = nodeToRestore;
                // Skip over elements within the scope, in case the scope immediately follows the node to restore.
                do nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
                while (isElementInScope(nextElement, scopeRef.current));
                e.preventDefault();
                e.stopPropagation();
                if (nextElement) focusElement(nextElement, true);
                else // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)
                // then move focus to the body.
                // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)
                if (!isElementInAnyScope(nodeToRestore)) focusedElement.blur();
                else focusElement(nodeToRestore, true);
            }
        };
        if (!contain) document.addEventListener("keydown", onKeyDown, true);
        return ()=>{
            if (!contain) document.removeEventListener("keydown", onKeyDown, true);
        };
    }, [
        scopeRef,
        restoreFocus,
        contain
    ]);
    // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.
    (0, _utils.useLayoutEffect)(()=>{
        if (!restoreFocus) return;
        focusScopeTree.getTreeNode(scopeRef).nodeToRestore = nodeToRestoreRef.current;
        return ()=>{
            let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;
            // if we already lost focus to the body and this was the active scope, then we should attempt to restore
            if (restoreFocus && nodeToRestore && // eslint-disable-next-line react-hooks/exhaustive-deps
            (isElementInScope(document.activeElement, scopeRef.current) || document.activeElement === document.body && shouldRestoreFocus(scopeRef))) {
                // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it
                let clonedTree = focusScopeTree.clone();
                requestAnimationFrame(()=>{
                    // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere
                    if (document.activeElement === document.body) {
                        // look up the tree starting with our scope to find a nodeToRestore still in the DOM
                        let treeNode = clonedTree.getTreeNode(scopeRef);
                        while(treeNode){
                            if (treeNode.nodeToRestore && document.body.contains(treeNode.nodeToRestore)) {
                                focusElement(treeNode.nodeToRestore);
                                return;
                            }
                            treeNode = treeNode.parent;
                        }
                        // If no nodeToRestore was found, focus the first element in the nearest
                        // ancestor scope that is still in the tree.
                        treeNode = clonedTree.getTreeNode(scopeRef);
                        while(treeNode){
                            if (treeNode.scopeRef && focusScopeTree.getTreeNode(treeNode.scopeRef)) {
                                focusFirstInScope(treeNode.scopeRef.current, true);
                                return;
                            }
                            treeNode = treeNode.parent;
                        }
                    }
                });
            }
        };
    }, [
        scopeRef,
        restoreFocus
    ]);
}
function getFocusableTreeWalker(root, opts, scope) {
    let selector = (opts === null || opts === void 0 ? void 0 : opts.tabbable) ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;
    let walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
        acceptNode (node) {
            var _opts_from;
            // Skip nodes inside the starting node.
            if (opts === null || opts === void 0 ? void 0 : (_opts_from = opts.from) === null || _opts_from === void 0 ? void 0 : _opts_from.contains(node)) return NodeFilter.FILTER_REJECT;
            if (node.matches(selector) && (0, _isElementVisible.isElementVisible)(node) && (!scope || isElementInScope(node, scope)) && (!(opts === null || opts === void 0 ? void 0 : opts.accept) || opts.accept(node))) return NodeFilter.FILTER_ACCEPT;
            return NodeFilter.FILTER_SKIP;
        }
    });
    if (opts === null || opts === void 0 ? void 0 : opts.from) walker.currentNode = opts.from;
    return walker;
}
function createFocusManager(ref, defaultOptions = {}) {
    return {
        focusNext (opts = {}) {
            let root = ref.current;
            if (!root) return;
            let { from , tabbable =defaultOptions.tabbable , wrap =defaultOptions.wrap , accept =defaultOptions.accept  } = opts;
            let node = from || document.activeElement;
            let walker = getFocusableTreeWalker(root, {
                tabbable,
                accept
            });
            if (root.contains(node)) walker.currentNode = node;
            let nextNode = walker.nextNode();
            if (!nextNode && wrap) {
                walker.currentNode = root;
                nextNode = walker.nextNode();
            }
            if (nextNode) focusElement(nextNode, true);
            return nextNode;
        },
        focusPrevious (opts = defaultOptions) {
            let root = ref.current;
            if (!root) return;
            let { from , tabbable =defaultOptions.tabbable , wrap =defaultOptions.wrap , accept =defaultOptions.accept  } = opts;
            let node = from || document.activeElement;
            let walker = getFocusableTreeWalker(root, {
                tabbable,
                accept
            });
            if (root.contains(node)) walker.currentNode = node;
            else {
                let next = last(walker);
                if (next) focusElement(next, true);
                return next;
            }
            let previousNode = walker.previousNode();
            if (!previousNode && wrap) {
                walker.currentNode = root;
                previousNode = last(walker);
            }
            if (previousNode) focusElement(previousNode, true);
            return previousNode;
        },
        focusFirst (opts = defaultOptions) {
            let root = ref.current;
            if (!root) return;
            let { tabbable =defaultOptions.tabbable , accept =defaultOptions.accept  } = opts;
            let walker = getFocusableTreeWalker(root, {
                tabbable,
                accept
            });
            let nextNode = walker.nextNode();
            if (nextNode) focusElement(nextNode, true);
            return nextNode;
        },
        focusLast (opts = defaultOptions) {
            let root = ref.current;
            if (!root) return;
            let { tabbable =defaultOptions.tabbable , accept =defaultOptions.accept  } = opts;
            let walker = getFocusableTreeWalker(root, {
                tabbable,
                accept
            });
            let next = last(walker);
            if (next) focusElement(next, true);
            return next;
        }
    };
}
function last(walker) {
    let next;
    let last;
    do {
        last = walker.lastChild();
        if (last) next = last;
    }while (last);
    return next;
}
class Tree {
    get size() {
        return this.fastMap.size;
    }
    getTreeNode(data) {
        return this.fastMap.get(data);
    }
    addTreeNode(scopeRef, parent, nodeToRestore) {
        let parentNode = this.fastMap.get(parent !== null && parent !== void 0 ? parent : null);
        let node = new TreeNode({
            scopeRef
        });
        parentNode.addChild(node);
        node.parent = parentNode;
        this.fastMap.set(scopeRef, node);
        if (nodeToRestore) node.nodeToRestore = nodeToRestore;
    }
    addNode(node) {
        this.fastMap.set(node.scopeRef, node);
    }
    removeTreeNode(scopeRef) {
        // never remove the root
        if (scopeRef === null) return;
        let node = this.fastMap.get(scopeRef);
        let parentNode = node.parent;
        // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing
        // if we are, then replace the siblings restore with the restore from the scope we're removing
        for (let current of this.traverse())if (current !== node && node.nodeToRestore && current.nodeToRestore && node.scopeRef.current && isElementInScope(current.nodeToRestore, node.scopeRef.current)) current.nodeToRestore = node.nodeToRestore;
        let children = node.children;
        parentNode.removeChild(node);
        if (children.size > 0) children.forEach((child)=>parentNode.addChild(child));
        this.fastMap.delete(node.scopeRef);
    }
    // Pre Order Depth First
    *traverse(node = this.root) {
        if (node.scopeRef != null) yield node;
        if (node.children.size > 0) for (let child of node.children)yield* this.traverse(child);
    }
    clone() {
        let newTree = new Tree();
        for (let node of this.traverse())newTree.addTreeNode(node.scopeRef, node.parent.scopeRef, node.nodeToRestore);
        return newTree;
    }
    constructor(){
        this.fastMap = new Map();
        this.root = new TreeNode({
            scopeRef: null
        });
        this.fastMap.set(null, this.root);
    }
}
class TreeNode {
    addChild(node) {
        this.children.add(node);
        node.parent = this;
    }
    removeChild(node) {
        this.children.delete(node);
        node.parent = undefined;
    }
    constructor(props){
        this.children = new Set();
        this.contain = false;
        this.scopeRef = props.scopeRef;
    }
}
let focusScopeTree = new Tree();

},{"./focusSafely":"jPZJm","./isElementVisible":"9UtDF","react":"react","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jPZJm":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the 'License');
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * A utility function that focuses an element while avoiding undesired side effects such
 * as page scrolling and screen reader issues with CSS transitions.
 */ parcelHelpers.export(exports, "focusSafely", ()=>focusSafely);
var _utils = require("@react-aria/utils");
var _interactions = require("@react-aria/interactions");
function focusSafely(element) {
    // If the user is interacting with a virtual cursor, e.g. screen reader, then
    // wait until after any animated transitions that are currently occurring on
    // the page before shifting focus. This avoids issues with VoiceOver on iOS
    // causing the page to scroll when moving focus if the element is transitioning
    // from off the screen.
    if ((0, _interactions.getInteractionModality)() === "virtual") {
        let lastFocusedElement = document.activeElement;
        (0, _utils.runAfterTransition)(()=>{
            // If focus did not move and the element is still in the document, focus it.
            if (document.activeElement === lastFocusedElement && document.contains(element)) (0, _utils.focusWithoutScrolling)(element);
        });
    } else (0, _utils.focusWithoutScrolling)(element);
}

},{"@react-aria/utils":"5XGXZ","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3eipm":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Pressable", ()=>(0, _pressable.Pressable));
parcelHelpers.export(exports, "PressResponder", ()=>(0, _pressResponder.PressResponder));
parcelHelpers.export(exports, "useFocus", ()=>(0, _useFocus.useFocus));
parcelHelpers.export(exports, "isFocusVisible", ()=>(0, _useFocusVisible.isFocusVisible));
parcelHelpers.export(exports, "getInteractionModality", ()=>(0, _useFocusVisible.getInteractionModality));
parcelHelpers.export(exports, "setInteractionModality", ()=>(0, _useFocusVisible.setInteractionModality));
parcelHelpers.export(exports, "useInteractionModality", ()=>(0, _useFocusVisible.useInteractionModality));
parcelHelpers.export(exports, "useFocusVisible", ()=>(0, _useFocusVisible.useFocusVisible));
parcelHelpers.export(exports, "useFocusVisibleListener", ()=>(0, _useFocusVisible.useFocusVisibleListener));
parcelHelpers.export(exports, "useFocusWithin", ()=>(0, _useFocusWithin.useFocusWithin));
parcelHelpers.export(exports, "useHover", ()=>(0, _useHover.useHover));
parcelHelpers.export(exports, "useInteractOutside", ()=>(0, _useInteractOutside.useInteractOutside));
parcelHelpers.export(exports, "useKeyboard", ()=>(0, _useKeyboard.useKeyboard));
parcelHelpers.export(exports, "useMove", ()=>(0, _useMove.useMove));
parcelHelpers.export(exports, "usePress", ()=>(0, _usePress.usePress));
parcelHelpers.export(exports, "useScrollWheel", ()=>(0, _useScrollWheel.useScrollWheel));
parcelHelpers.export(exports, "useLongPress", ()=>(0, _useLongPress.useLongPress));
var _pressable = require("./Pressable");
var _pressResponder = require("./PressResponder");
var _useFocus = require("./useFocus");
var _useFocusVisible = require("./useFocusVisible");
var _useFocusWithin = require("./useFocusWithin");
var _useHover = require("./useHover");
var _useInteractOutside = require("./useInteractOutside");
var _useKeyboard = require("./useKeyboard");
var _useMove = require("./useMove");
var _usePress = require("./usePress");
var _useScrollWheel = require("./useScrollWheel");
var _useLongPress = require("./useLongPress");

},{"./Pressable":"gwzBE","./PressResponder":"gJwDe","./useFocus":"Ew6qA","./useFocusVisible":"h56Ow","./useFocusWithin":"5vztT","./useHover":"7DP04","./useInteractOutside":"9kkyy","./useKeyboard":"gD3OC","./useMove":false,"./usePress":"6gbAK","./useScrollWheel":false,"./useLongPress":"bklv2","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gwzBE":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Pressable", ()=>Pressable);
var _utils = require("@react-aria/utils");
var _usePress = require("./usePress");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const Pressable = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(({ children , ...props }, ref)=>{
    let newRef = (0, _react.useRef)();
    ref = ref !== null && ref !== void 0 ? ref : newRef;
    let { pressProps  } = (0, _usePress.usePress)({
        ...props,
        ref
    });
    let child = (0, _reactDefault.default).Children.only(children);
    return /*#__PURE__*/ (0, _reactDefault.default).cloneElement(child, // @ts-ignore
    {
        ref,
        ...(0, _utils.mergeProps)(child.props, pressProps)
    });
});

},{"@react-aria/utils":"5XGXZ","./usePress":"6gbAK","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6gbAK":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Portions of the code in this file are based on code from react.
// Original licensing for the following can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles press interactions across mouse, touch, keyboard, and screen readers.
 * It normalizes behavior across browsers and platforms, and handles many nuances
 * of dealing with pointer and keyboard events.
 */ parcelHelpers.export(exports, "usePress", ()=>usePress);
var _classPrivateFieldGet = require("@swc/helpers/_/_class_private_field_get");
var _classPrivateFieldInit = require("@swc/helpers/_/_class_private_field_init");
var _classPrivateFieldSet = require("@swc/helpers/_/_class_private_field_set");
var _textSelection = require("./textSelection");
var _utils = require("@react-aria/utils");
var _context = require("./context");
var _react = require("react");
function usePressResponderContext(props) {
    // Consume context from <PressResponder> and merge with props.
    let context = (0, _react.useContext)((0, _context.PressResponderContext));
    if (context) {
        let { register , ...contextProps } = context;
        props = (0, _utils.mergeProps)(contextProps, props);
        register();
    }
    (0, _utils.useSyncRef)(context, props.ref);
    return props;
}
var _shouldStopPropagation = /*#__PURE__*/ new WeakMap();
class PressEvent {
    continuePropagation() {
        (0, _classPrivateFieldSet._)(this, _shouldStopPropagation, false);
    }
    get shouldStopPropagation() {
        return (0, _classPrivateFieldGet._)(this, _shouldStopPropagation);
    }
    constructor(type, pointerType, originalEvent){
        (0, _classPrivateFieldInit._)(this, _shouldStopPropagation, {
            writable: true,
            value: void 0
        });
        (0, _classPrivateFieldSet._)(this, _shouldStopPropagation, true);
        this.type = type;
        this.pointerType = pointerType;
        this.target = originalEvent.currentTarget;
        this.shiftKey = originalEvent.shiftKey;
        this.metaKey = originalEvent.metaKey;
        this.ctrlKey = originalEvent.ctrlKey;
        this.altKey = originalEvent.altKey;
    }
}
function usePress(props) {
    let { onPress , onPressChange , onPressStart , onPressEnd , onPressUp , isDisabled , isPressed: isPressedProp , preventFocusOnPress , shouldCancelOnPointerExit , allowTextSelectionOnPress , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    ref: _ , ...domProps } = usePressResponderContext(props);
    let [isPressed, setPressed] = (0, _react.useState)(false);
    let ref = (0, _react.useRef)({
        isPressed: false,
        ignoreEmulatedMouseEvents: false,
        ignoreClickAfterPress: false,
        didFirePressStart: false,
        activePointerId: null,
        target: null,
        isOverTarget: false,
        pointerType: null
    });
    let { addGlobalListener , removeAllGlobalListeners  } = (0, _utils.useGlobalListeners)();
    let triggerPressStart = (0, _utils.useEffectEvent)((originalEvent, pointerType)=>{
        let state = ref.current;
        if (isDisabled || state.didFirePressStart) return;
        let shouldStopPropagation = true;
        if (onPressStart) {
            let event = new PressEvent("pressstart", pointerType, originalEvent);
            onPressStart(event);
            shouldStopPropagation = event.shouldStopPropagation;
        }
        if (onPressChange) onPressChange(true);
        state.didFirePressStart = true;
        setPressed(true);
        return shouldStopPropagation;
    });
    let triggerPressEnd = (0, _utils.useEffectEvent)((originalEvent, pointerType, wasPressed = true)=>{
        let state = ref.current;
        if (!state.didFirePressStart) return;
        state.ignoreClickAfterPress = true;
        state.didFirePressStart = false;
        let shouldStopPropagation = true;
        if (onPressEnd) {
            let event = new PressEvent("pressend", pointerType, originalEvent);
            onPressEnd(event);
            shouldStopPropagation = event.shouldStopPropagation;
        }
        if (onPressChange) onPressChange(false);
        setPressed(false);
        if (onPress && wasPressed && !isDisabled) {
            let event = new PressEvent("press", pointerType, originalEvent);
            onPress(event);
            shouldStopPropagation && (shouldStopPropagation = event.shouldStopPropagation);
        }
        return shouldStopPropagation;
    });
    let triggerPressUp = (0, _utils.useEffectEvent)((originalEvent, pointerType)=>{
        if (isDisabled) return;
        if (onPressUp) {
            let event = new PressEvent("pressup", pointerType, originalEvent);
            onPressUp(event);
            return event.shouldStopPropagation;
        }
        return true;
    });
    let cancel = (0, _utils.useEffectEvent)((e)=>{
        let state = ref.current;
        if (state.isPressed) {
            if (state.isOverTarget) triggerPressEnd(createEvent(state.target, e), state.pointerType, false);
            state.isPressed = false;
            state.isOverTarget = false;
            state.activePointerId = null;
            state.pointerType = null;
            removeAllGlobalListeners();
            if (!allowTextSelectionOnPress) (0, _textSelection.restoreTextSelection)(state.target);
        }
    });
    let cancelOnPointerExit = (0, _utils.useEffectEvent)((e)=>{
        if (shouldCancelOnPointerExit) cancel(e);
    });
    let pressProps = (0, _react.useMemo)(()=>{
        let state = ref.current;
        let pressProps = {
            onKeyDown (e) {
                if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target)) {
                    if (shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();
                    // If the event is repeating, it may have started on a different element
                    // after which focus moved to the current element. Ignore these events and
                    // only handle the first key down event.
                    let shouldStopPropagation = true;
                    if (!state.isPressed && !e.repeat) {
                        state.target = e.currentTarget;
                        state.isPressed = true;
                        shouldStopPropagation = triggerPressStart(e, "keyboard");
                        // Focus may move before the key up event, so register the event on the document
                        // instead of the same element where the key down event occurred.
                        addGlobalListener(document, "keyup", onKeyUp, false);
                    }
                    if (shouldStopPropagation) e.stopPropagation();
                } else if (e.key === "Enter" && isHTMLAnchorLink(e.currentTarget)) // If the target is a link, we won't have handled this above because we want the default
                // browser behavior to open the link when pressing Enter. But we still need to prevent
                // default so that elements above do not also handle it (e.g. table row).
                e.stopPropagation();
            },
            onKeyUp (e) {
                if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target)) triggerPressUp(createEvent(state.target, e), "keyboard");
            },
            onClick (e) {
                if (e && !e.currentTarget.contains(e.target)) return;
                if (e && e.button === 0) {
                    let shouldStopPropagation = true;
                    if (isDisabled) e.preventDefault();
                    // If triggered from a screen reader or by using element.click(),
                    // trigger as if it were a keyboard click.
                    if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === "virtual" || (0, _utils.isVirtualClick)(e.nativeEvent))) {
                        // Ensure the element receives focus (VoiceOver on iOS does not do this)
                        if (!isDisabled && !preventFocusOnPress) (0, _utils.focusWithoutScrolling)(e.currentTarget);
                        let stopPressStart = triggerPressStart(e, "virtual");
                        let stopPressUp = triggerPressUp(e, "virtual");
                        let stopPressEnd = triggerPressEnd(e, "virtual");
                        shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;
                    }
                    state.ignoreEmulatedMouseEvents = false;
                    state.ignoreClickAfterPress = false;
                    if (shouldStopPropagation) e.stopPropagation();
                }
            }
        };
        let onKeyUp = (e)=>{
            if (state.isPressed && isValidKeyboardEvent(e, state.target)) {
                if (shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();
                state.isPressed = false;
                let target = e.target;
                let shouldStopPropagation = triggerPressEnd(createEvent(state.target, e), "keyboard", state.target.contains(target));
                removeAllGlobalListeners();
                if (shouldStopPropagation) e.stopPropagation();
                // If the target is a link, trigger the click method to open the URL,
                // but defer triggering pressEnd until onClick event handler.
                if (state.target instanceof HTMLElement && state.target.contains(target) && (isHTMLAnchorLink(state.target) || state.target.getAttribute("role") === "link")) state.target.click();
            }
        };
        if (typeof PointerEvent !== "undefined") {
            pressProps.onPointerDown = (e)=>{
                // Only handle left clicks, and ignore events that bubbled through portals.
                if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;
                // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.
                // Ignore and let the onClick handler take care of it instead.
                // https://bugs.webkit.org/show_bug.cgi?id=222627
                // https://bugs.webkit.org/show_bug.cgi?id=223202
                if ((0, _utils.isVirtualPointerEvent)(e.nativeEvent)) {
                    state.pointerType = "virtual";
                    return;
                }
                // Due to browser inconsistencies, especially on mobile browsers, we prevent
                // default on pointer down and handle focusing the pressable element ourselves.
                if (shouldPreventDefault(e.currentTarget)) e.preventDefault();
                state.pointerType = e.pointerType;
                let shouldStopPropagation = true;
                if (!state.isPressed) {
                    state.isPressed = true;
                    state.isOverTarget = true;
                    state.activePointerId = e.pointerId;
                    state.target = e.currentTarget;
                    if (!isDisabled && !preventFocusOnPress) (0, _utils.focusWithoutScrolling)(e.currentTarget);
                    if (!allowTextSelectionOnPress) (0, _textSelection.disableTextSelection)(state.target);
                    shouldStopPropagation = triggerPressStart(e, state.pointerType);
                    addGlobalListener(document, "pointermove", onPointerMove, false);
                    addGlobalListener(document, "pointerup", onPointerUp, false);
                    addGlobalListener(document, "pointercancel", onPointerCancel, false);
                }
                if (shouldStopPropagation) e.stopPropagation();
            };
            pressProps.onMouseDown = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                if (e.button === 0) {
                    // Chrome and Firefox on touch Windows devices require mouse down events
                    // to be canceled in addition to pointer events, or an extra asynchronous
                    // focus event will be fired.
                    if (shouldPreventDefault(e.currentTarget)) e.preventDefault();
                    e.stopPropagation();
                }
            };
            pressProps.onPointerUp = (e)=>{
                // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.
                if (!e.currentTarget.contains(e.target) || state.pointerType === "virtual") return;
                // Only handle left clicks
                // Safari on iOS sometimes fires pointerup events, even
                // when the touch isn't over the target, so double check.
                if (e.button === 0 && isOverTarget(e, e.currentTarget)) triggerPressUp(e, state.pointerType || e.pointerType);
            };
            // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.
            // Use pointer move events instead to implement our own hit testing.
            // See https://bugs.webkit.org/show_bug.cgi?id=199803
            let onPointerMove = (e)=>{
                if (e.pointerId !== state.activePointerId) return;
                if (isOverTarget(e, state.target)) {
                    if (!state.isOverTarget) {
                        state.isOverTarget = true;
                        triggerPressStart(createEvent(state.target, e), state.pointerType);
                    }
                } else if (state.isOverTarget) {
                    state.isOverTarget = false;
                    triggerPressEnd(createEvent(state.target, e), state.pointerType, false);
                    cancelOnPointerExit(e);
                }
            };
            let onPointerUp = (e)=>{
                if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {
                    if (isOverTarget(e, state.target)) triggerPressEnd(createEvent(state.target, e), state.pointerType);
                    else if (state.isOverTarget) triggerPressEnd(createEvent(state.target, e), state.pointerType, false);
                    state.isPressed = false;
                    state.isOverTarget = false;
                    state.activePointerId = null;
                    state.pointerType = null;
                    removeAllGlobalListeners();
                    if (!allowTextSelectionOnPress) (0, _textSelection.restoreTextSelection)(state.target);
                }
            };
            let onPointerCancel = (e)=>{
                cancel(e);
            };
            pressProps.onDragStart = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.
                cancel(e);
            };
        } else {
            pressProps.onMouseDown = (e)=>{
                // Only handle left clicks
                if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;
                // Due to browser inconsistencies, especially on mobile browsers, we prevent
                // default on mouse down and handle focusing the pressable element ourselves.
                if (shouldPreventDefault(e.currentTarget)) e.preventDefault();
                if (state.ignoreEmulatedMouseEvents) {
                    e.stopPropagation();
                    return;
                }
                state.isPressed = true;
                state.isOverTarget = true;
                state.target = e.currentTarget;
                state.pointerType = (0, _utils.isVirtualClick)(e.nativeEvent) ? "virtual" : "mouse";
                if (!isDisabled && !preventFocusOnPress) (0, _utils.focusWithoutScrolling)(e.currentTarget);
                let shouldStopPropagation = triggerPressStart(e, state.pointerType);
                if (shouldStopPropagation) e.stopPropagation();
                addGlobalListener(document, "mouseup", onMouseUp, false);
            };
            pressProps.onMouseEnter = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                let shouldStopPropagation = true;
                if (state.isPressed && !state.ignoreEmulatedMouseEvents) {
                    state.isOverTarget = true;
                    shouldStopPropagation = triggerPressStart(e, state.pointerType);
                }
                if (shouldStopPropagation) e.stopPropagation();
            };
            pressProps.onMouseLeave = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                let shouldStopPropagation = true;
                if (state.isPressed && !state.ignoreEmulatedMouseEvents) {
                    state.isOverTarget = false;
                    shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);
                    cancelOnPointerExit(e);
                }
                if (shouldStopPropagation) e.stopPropagation();
            };
            pressProps.onMouseUp = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                if (!state.ignoreEmulatedMouseEvents && e.button === 0) triggerPressUp(e, state.pointerType);
            };
            let onMouseUp = (e)=>{
                // Only handle left clicks
                if (e.button !== 0) return;
                state.isPressed = false;
                removeAllGlobalListeners();
                if (state.ignoreEmulatedMouseEvents) {
                    state.ignoreEmulatedMouseEvents = false;
                    return;
                }
                if (isOverTarget(e, state.target)) triggerPressEnd(createEvent(state.target, e), state.pointerType);
                else if (state.isOverTarget) triggerPressEnd(createEvent(state.target, e), state.pointerType, false);
                state.isOverTarget = false;
            };
            pressProps.onTouchStart = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                let touch = getTouchFromEvent(e.nativeEvent);
                if (!touch) return;
                state.activePointerId = touch.identifier;
                state.ignoreEmulatedMouseEvents = true;
                state.isOverTarget = true;
                state.isPressed = true;
                state.target = e.currentTarget;
                state.pointerType = "touch";
                // Due to browser inconsistencies, especially on mobile browsers, we prevent default
                // on the emulated mouse event and handle focusing the pressable element ourselves.
                if (!isDisabled && !preventFocusOnPress) (0, _utils.focusWithoutScrolling)(e.currentTarget);
                if (!allowTextSelectionOnPress) (0, _textSelection.disableTextSelection)(state.target);
                let shouldStopPropagation = triggerPressStart(e, state.pointerType);
                if (shouldStopPropagation) e.stopPropagation();
                addGlobalListener(window, "scroll", onScroll, true);
            };
            pressProps.onTouchMove = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                if (!state.isPressed) {
                    e.stopPropagation();
                    return;
                }
                let touch = getTouchById(e.nativeEvent, state.activePointerId);
                let shouldStopPropagation = true;
                if (touch && isOverTarget(touch, e.currentTarget)) {
                    if (!state.isOverTarget) {
                        state.isOverTarget = true;
                        shouldStopPropagation = triggerPressStart(e, state.pointerType);
                    }
                } else if (state.isOverTarget) {
                    state.isOverTarget = false;
                    shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);
                    cancelOnPointerExit(e);
                }
                if (shouldStopPropagation) e.stopPropagation();
            };
            pressProps.onTouchEnd = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                if (!state.isPressed) {
                    e.stopPropagation();
                    return;
                }
                let touch = getTouchById(e.nativeEvent, state.activePointerId);
                let shouldStopPropagation = true;
                if (touch && isOverTarget(touch, e.currentTarget)) {
                    triggerPressUp(e, state.pointerType);
                    shouldStopPropagation = triggerPressEnd(e, state.pointerType);
                } else if (state.isOverTarget) shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);
                if (shouldStopPropagation) e.stopPropagation();
                state.isPressed = false;
                state.activePointerId = null;
                state.isOverTarget = false;
                state.ignoreEmulatedMouseEvents = true;
                if (!allowTextSelectionOnPress) (0, _textSelection.restoreTextSelection)(state.target);
                removeAllGlobalListeners();
            };
            pressProps.onTouchCancel = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                e.stopPropagation();
                if (state.isPressed) cancel(e);
            };
            let onScroll = (e)=>{
                if (state.isPressed && e.target.contains(state.target)) cancel({
                    currentTarget: state.target,
                    shiftKey: false,
                    ctrlKey: false,
                    metaKey: false,
                    altKey: false
                });
            };
            pressProps.onDragStart = (e)=>{
                if (!e.currentTarget.contains(e.target)) return;
                cancel(e);
            };
        }
        return pressProps;
    }, [
        addGlobalListener,
        isDisabled,
        preventFocusOnPress,
        removeAllGlobalListeners,
        allowTextSelectionOnPress,
        cancel,
        cancelOnPointerExit,
        triggerPressEnd,
        triggerPressStart,
        triggerPressUp
    ]);
    // Remove user-select: none in case component unmounts immediately after pressStart
    // eslint-disable-next-line arrow-body-style
    (0, _react.useEffect)(()=>{
        return ()=>{
            if (!allowTextSelectionOnPress) // eslint-disable-next-line react-hooks/exhaustive-deps
            (0, _textSelection.restoreTextSelection)(ref.current.target);
        };
    }, [
        allowTextSelectionOnPress
    ]);
    return {
        isPressed: isPressedProp || isPressed,
        pressProps: (0, _utils.mergeProps)(domProps, pressProps)
    };
}
function isHTMLAnchorLink(target) {
    return target.tagName === "A" && target.hasAttribute("href");
}
function isValidKeyboardEvent(event, currentTarget) {
    const { key , code  } = event;
    const element = currentTarget;
    const role = element.getAttribute("role");
    // Accessibility for keyboards. Space and Enter only.
    // "Spacebar" is for IE 11
    return (key === "Enter" || key === " " || key === "Spacebar" || code === "Space") && !(element instanceof HTMLInputElement && !isValidInputKey(element, key) || element instanceof HTMLTextAreaElement || element.isContentEditable) && // A link with a valid href should be handled natively,
    // unless it also has role='button' and was triggered using Space.
    (!isHTMLAnchorLink(element) || role === "button" && key !== "Enter") && // An element with role='link' should only trigger with Enter key
    !(role === "link" && key !== "Enter");
}
function getTouchFromEvent(event) {
    const { targetTouches  } = event;
    if (targetTouches.length > 0) return targetTouches[0];
    return null;
}
function getTouchById(event, pointerId) {
    const changedTouches = event.changedTouches;
    for(let i = 0; i < changedTouches.length; i++){
        const touch = changedTouches[i];
        if (touch.identifier === pointerId) return touch;
    }
    return null;
}
function createEvent(target, e) {
    return {
        currentTarget: target,
        shiftKey: e.shiftKey,
        ctrlKey: e.ctrlKey,
        metaKey: e.metaKey,
        altKey: e.altKey
    };
}
function getPointClientRect(point) {
    let offsetX = point.width / 2 || point.radiusX || 0;
    let offsetY = point.height / 2 || point.radiusY || 0;
    return {
        top: point.clientY - offsetY,
        right: point.clientX + offsetX,
        bottom: point.clientY + offsetY,
        left: point.clientX - offsetX
    };
}
function areRectanglesOverlapping(a, b) {
    // check if they cannot overlap on x axis
    if (a.left > b.right || b.left > a.right) return false;
    // check if they cannot overlap on y axis
    if (a.top > b.bottom || b.top > a.bottom) return false;
    return true;
}
function isOverTarget(point, target) {
    let rect = target.getBoundingClientRect();
    let pointRect = getPointClientRect(point);
    return areRectanglesOverlapping(rect, pointRect);
}
function shouldPreventDefault(target) {
    // We cannot prevent default if the target is a draggable element.
    return !(target instanceof HTMLElement) || !target.draggable;
}
function shouldPreventDefaultKeyboard(target, key) {
    if (target instanceof HTMLInputElement) return !isValidInputKey(target, key);
    if (target instanceof HTMLButtonElement) return target.type !== "submit" && target.type !== "reset";
    return true;
}
const nonTextInputTypes = new Set([
    "checkbox",
    "radio",
    "range",
    "color",
    "file",
    "image",
    "button",
    "submit",
    "reset"
]);
function isValidInputKey(target, key) {
    // Only space should toggle checkboxes and radios, not enter.
    return target.type === "checkbox" || target.type === "radio" ? key === " " : nonTextInputTypes.has(target.type);
}

},{"@swc/helpers/_/_class_private_field_get":"3cXPe","@swc/helpers/_/_class_private_field_init":"e9p4S","@swc/helpers/_/_class_private_field_set":"bm9gJ","./textSelection":"fDL5y","@react-aria/utils":"5XGXZ","./context":"e8qIH","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3cXPe":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_class_private_field_get", ()=>_class_private_field_get);
parcelHelpers.export(exports, "_", ()=>_class_private_field_get);
var _classApplyDescriptorGetJs = require("./_class_apply_descriptor_get.js");
var _classExtractFieldDescriptorJs = require("./_class_extract_field_descriptor.js");
function _class_private_field_get(receiver, privateMap) {
    var descriptor = (0, _classExtractFieldDescriptorJs._class_extract_field_descriptor)(receiver, privateMap, "get");
    return (0, _classApplyDescriptorGetJs._class_apply_descriptor_get)(receiver, descriptor);
}

},{"./_class_apply_descriptor_get.js":"8hwt3","./_class_extract_field_descriptor.js":"gJPcL","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8hwt3":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_class_apply_descriptor_get", ()=>_class_apply_descriptor_get);
parcelHelpers.export(exports, "_", ()=>_class_apply_descriptor_get);
function _class_apply_descriptor_get(receiver, descriptor) {
    if (descriptor.get) return descriptor.get.call(receiver);
    return descriptor.value;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gJPcL":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_class_extract_field_descriptor", ()=>_class_extract_field_descriptor);
parcelHelpers.export(exports, "_", ()=>_class_extract_field_descriptor);
function _class_extract_field_descriptor(receiver, privateMap, action) {
    if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
    return privateMap.get(receiver);
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"e9p4S":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_class_private_field_init", ()=>_class_private_field_init);
parcelHelpers.export(exports, "_", ()=>_class_private_field_init);
var _checkPrivateRedeclarationJs = require("./_check_private_redeclaration.js");
function _class_private_field_init(obj, privateMap, value) {
    (0, _checkPrivateRedeclarationJs._check_private_redeclaration)(obj, privateMap);
    privateMap.set(obj, value);
}

},{"./_check_private_redeclaration.js":"fbPkj","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fbPkj":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_check_private_redeclaration", ()=>_check_private_redeclaration);
parcelHelpers.export(exports, "_", ()=>_check_private_redeclaration);
function _check_private_redeclaration(obj, privateCollection) {
    if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bm9gJ":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_class_private_field_set", ()=>_class_private_field_set);
parcelHelpers.export(exports, "_", ()=>_class_private_field_set);
var _classApplyDescriptorSetJs = require("./_class_apply_descriptor_set.js");
var _classExtractFieldDescriptorJs = require("./_class_extract_field_descriptor.js");
function _class_private_field_set(receiver, privateMap, value) {
    var descriptor = (0, _classExtractFieldDescriptorJs._class_extract_field_descriptor)(receiver, privateMap, "set");
    (0, _classApplyDescriptorSetJs._class_apply_descriptor_set)(receiver, descriptor, value);
    return value;
}

},{"./_class_apply_descriptor_set.js":"d8PHm","./_class_extract_field_descriptor.js":"gJPcL","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"d8PHm":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "_class_apply_descriptor_set", ()=>_class_apply_descriptor_set);
parcelHelpers.export(exports, "_", ()=>_class_apply_descriptor_set);
function _class_apply_descriptor_set(receiver, descriptor, value) {
    if (descriptor.set) descriptor.set.call(receiver, value);
    else {
        if (!descriptor.writable) // This should only throw in strict mode, but class bodies are
        // always strict and private fields can only be used inside
        // class bodies.
        throw new TypeError("attempted to set read only private field");
        descriptor.value = value;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fDL5y":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "disableTextSelection", ()=>disableTextSelection);
parcelHelpers.export(exports, "restoreTextSelection", ()=>restoreTextSelection);
var _utils = require("@react-aria/utils");
// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element
// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually
let state = "default";
let savedUserSelect = "";
let modifiedElementMap = new WeakMap();
function disableTextSelection(target) {
    if ((0, _utils.isIOS)()) {
        if (state === "default") {
            savedUserSelect = document.documentElement.style.webkitUserSelect;
            document.documentElement.style.webkitUserSelect = "none";
        }
        state = "disabled";
    } else if (target instanceof HTMLElement || target instanceof SVGElement) {
        // If not iOS, store the target's original user-select and change to user-select: none
        // Ignore state since it doesn't apply for non iOS
        modifiedElementMap.set(target, target.style.userSelect);
        target.style.userSelect = "none";
    }
}
function restoreTextSelection(target) {
    if ((0, _utils.isIOS)()) {
        // If the state is already default, there's nothing to do.
        // If it is restoring, then there's no need to queue a second restore.
        if (state !== "disabled") return;
        state = "restoring";
        // There appears to be a delay on iOS where selection still might occur
        // after pointer up, so wait a bit before removing user-select.
        setTimeout(()=>{
            // Wait for any CSS transitions to complete so we don't recompute style
            // for the whole page in the middle of the animation and cause jank.
            (0, _utils.runAfterTransition)(()=>{
                // Avoid race conditions
                if (state === "restoring") {
                    if (document.documentElement.style.webkitUserSelect === "none") document.documentElement.style.webkitUserSelect = savedUserSelect || "";
                    savedUserSelect = "";
                    state = "default";
                }
            });
        }, 300);
    } else if (target instanceof HTMLElement || target instanceof SVGElement) // If not iOS, restore the target's original user-select if any
    // Ignore state since it doesn't apply for non iOS
    {
        if (target && modifiedElementMap.has(target)) {
            let targetOldUserSelect = modifiedElementMap.get(target);
            if (target.style.userSelect === "none") target.style.userSelect = targetOldUserSelect;
            if (target.getAttribute("style") === "") target.removeAttribute("style");
            modifiedElementMap.delete(target);
        }
    }
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"e8qIH":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "PressResponderContext", ()=>PressResponderContext);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const PressResponderContext = (0, _reactDefault.default).createContext(null);
PressResponderContext.displayName = "PressResponderContext";

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gJwDe":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "PressResponder", ()=>PressResponder);
var _utils = require("@react-aria/utils");
var _context = require("./context");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const PressResponder = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(({ children , ...props }, ref)=>{
    let isRegistered = (0, _react.useRef)(false);
    let prevContext = (0, _react.useContext)((0, _context.PressResponderContext));
    let context = (0, _utils.mergeProps)(prevContext || {}, {
        ...props,
        ref: ref || (prevContext === null || prevContext === void 0 ? void 0 : prevContext.ref),
        register () {
            isRegistered.current = true;
            if (prevContext) prevContext.register();
        }
    });
    (0, _utils.useSyncRef)(prevContext, ref);
    (0, _react.useEffect)(()=>{
        if (!isRegistered.current) {
            console.warn("A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with <Pressable> component.");
            isRegistered.current = true; // only warn once in strict mode.
        }
    }, []);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.PressResponderContext).Provider, {
        value: context
    }, children);
});

},{"@react-aria/utils":"5XGXZ","./context":"e8qIH","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"Ew6qA":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Portions of the code in this file are based on code from react.
// Original licensing for the following can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles focus events for the immediate target.
 * Focus events on child elements will be ignored.
 */ parcelHelpers.export(exports, "useFocus", ()=>useFocus);
var _react = require("react");
var _utils = require("./utils");
function useFocus(props) {
    let { isDisabled , onFocus: onFocusProp , onBlur: onBlurProp , onFocusChange  } = props;
    const onBlur = (0, _react.useCallback)((e)=>{
        if (e.target === e.currentTarget) {
            if (onBlurProp) onBlurProp(e);
            if (onFocusChange) onFocusChange(false);
            return true;
        }
    }, [
        onBlurProp,
        onFocusChange
    ]);
    const onSyntheticFocus = (0, _utils.useSyntheticBlurEvent)(onBlur);
    const onFocus = (0, _react.useCallback)((e)=>{
        // Double check that document.activeElement actually matches e.target in case a previously chained
        // focus handler already moved focus somewhere else.
        if (e.target === e.currentTarget && document.activeElement === e.target) {
            if (onFocusProp) onFocusProp(e);
            if (onFocusChange) onFocusChange(true);
            onSyntheticFocus(e);
        }
    }, [
        onFocusChange,
        onFocusProp,
        onSyntheticFocus
    ]);
    return {
        focusProps: {
            onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,
            onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined
        }
    };
}

},{"react":"react","./utils":"jNuXJ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jNuXJ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "SyntheticFocusEvent", ()=>SyntheticFocusEvent);
parcelHelpers.export(exports, "useSyntheticBlurEvent", ()=>useSyntheticBlurEvent);
var _react = require("react");
var _utils = require("@react-aria/utils");
class SyntheticFocusEvent {
    isDefaultPrevented() {
        return this.nativeEvent.defaultPrevented;
    }
    preventDefault() {
        this.defaultPrevented = true;
        this.nativeEvent.preventDefault();
    }
    stopPropagation() {
        this.nativeEvent.stopPropagation();
        this.isPropagationStopped = ()=>true;
    }
    isPropagationStopped() {
        return false;
    }
    persist() {}
    constructor(type, nativeEvent){
        this.nativeEvent = nativeEvent;
        this.target = nativeEvent.target;
        this.currentTarget = nativeEvent.currentTarget;
        this.relatedTarget = nativeEvent.relatedTarget;
        this.bubbles = nativeEvent.bubbles;
        this.cancelable = nativeEvent.cancelable;
        this.defaultPrevented = nativeEvent.defaultPrevented;
        this.eventPhase = nativeEvent.eventPhase;
        this.isTrusted = nativeEvent.isTrusted;
        this.timeStamp = nativeEvent.timeStamp;
        this.type = type;
    }
}
function useSyntheticBlurEvent(onBlur) {
    let stateRef = (0, _react.useRef)({
        isFocused: false,
        observer: null
    });
    // Clean up MutationObserver on unmount. See below.
    // eslint-disable-next-line arrow-body-style
    (0, _utils.useLayoutEffect)(()=>{
        const state = stateRef.current;
        return ()=>{
            if (state.observer) {
                state.observer.disconnect();
                state.observer = null;
            }
        };
    }, []);
    let dispatchBlur = (0, _utils.useEffectEvent)((e)=>{
        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
    });
    // This function is called during a React onFocus event.
    return (0, _react.useCallback)((e)=>{
        // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142
        // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a
        // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.
        // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.
        if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {
            stateRef.current.isFocused = true;
            let target = e.target;
            let onBlurHandler = (e)=>{
                stateRef.current.isFocused = false;
                if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.
                dispatchBlur(new SyntheticFocusEvent("blur", e));
                // We no longer need the MutationObserver once the target is blurred.
                if (stateRef.current.observer) {
                    stateRef.current.observer.disconnect();
                    stateRef.current.observer = null;
                }
            };
            target.addEventListener("focusout", onBlurHandler, {
                once: true
            });
            stateRef.current.observer = new MutationObserver(()=>{
                if (stateRef.current.isFocused && target.disabled) {
                    stateRef.current.observer.disconnect();
                    let relatedTargetEl = target === document.activeElement ? null : document.activeElement;
                    target.dispatchEvent(new FocusEvent("blur", {
                        relatedTarget: relatedTargetEl
                    }));
                    target.dispatchEvent(new FocusEvent("focusout", {
                        bubbles: true,
                        relatedTarget: relatedTargetEl
                    }));
                }
            });
            stateRef.current.observer.observe(target, {
                attributes: true,
                attributeFilter: [
                    "disabled"
                ]
            });
        }
    }, [
        dispatchBlur
    ]);
}

},{"react":"react","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"h56Ow":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Portions of the code in this file are based on code from react.
// Original licensing for the following can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * If true, keyboard focus is visible.
 */ parcelHelpers.export(exports, "isFocusVisible", ()=>isFocusVisible);
parcelHelpers.export(exports, "getInteractionModality", ()=>getInteractionModality);
parcelHelpers.export(exports, "setInteractionModality", ()=>setInteractionModality);
/**
 * Keeps state of the current modality.
 */ parcelHelpers.export(exports, "useInteractionModality", ()=>useInteractionModality);
/**
 * Manages focus visible state for the page, and subscribes individual components for updates.
 */ parcelHelpers.export(exports, "useFocusVisible", ()=>useFocusVisible);
/**
 * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).
 */ parcelHelpers.export(exports, "useFocusVisibleListener", ()=>useFocusVisibleListener);
var _utils = require("@react-aria/utils");
var _react = require("react");
var _ssr = require("@react-aria/ssr");
let currentModality = null;
let changeHandlers = new Set();
let hasSetupGlobalListeners = false;
let hasEventBeforeFocus = false;
let hasBlurredWindowRecently = false;
// Only Tab or Esc keys will make focus visible on text input elements
const FOCUS_VISIBLE_INPUT_KEYS = {
    Tab: true,
    Escape: true
};
function triggerChangeHandlers(modality, e) {
    for (let handler of changeHandlers)handler(modality, e);
}
/**
 * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.
 */ function isValidKey(e) {
    // Control and Shift keys trigger when navigating back to the tab with keyboard.
    return !(e.metaKey || !(0, _utils.isMac)() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta");
}
function handleKeyboardEvent(e) {
    hasEventBeforeFocus = true;
    if (isValidKey(e)) {
        currentModality = "keyboard";
        triggerChangeHandlers("keyboard", e);
    }
}
function handlePointerEvent(e) {
    currentModality = "pointer";
    if (e.type === "mousedown" || e.type === "pointerdown") {
        hasEventBeforeFocus = true;
        triggerChangeHandlers("pointer", e);
    }
}
function handleClickEvent(e) {
    if ((0, _utils.isVirtualClick)(e)) {
        hasEventBeforeFocus = true;
        currentModality = "virtual";
    }
}
function handleFocusEvent(e) {
    // Firefox fires two extra focus events when the user first clicks into an iframe:
    // first on the window, then on the document. We ignore these events so they don't
    // cause keyboard focus rings to appear.
    if (e.target === window || e.target === document) return;
    // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.
    // This occurs, for example, when navigating a form with the next/previous buttons on iOS.
    if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {
        currentModality = "virtual";
        triggerChangeHandlers("virtual", e);
    }
    hasEventBeforeFocus = false;
    hasBlurredWindowRecently = false;
}
function handleWindowBlur() {
    // When the window is blurred, reset state. This is necessary when tabbing out of the window,
    // for example, since a subsequent focus event won't be fired.
    hasEventBeforeFocus = false;
    hasBlurredWindowRecently = true;
}
/**
 * Setup global event listeners to control when keyboard focus style should be visible.
 */ function setupGlobalFocusEvents() {
    if (typeof window === "undefined" || hasSetupGlobalListeners) return;
    // Programmatic focus() calls shouldn't affect the current input modality.
    // However, we need to detect other cases when a focus event occurs without
    // a preceding user event (e.g. screen reader focus). Overriding the focus
    // method on HTMLElement.prototype is a bit hacky, but works.
    let focus = HTMLElement.prototype.focus;
    HTMLElement.prototype.focus = function() {
        hasEventBeforeFocus = true;
        focus.apply(this, arguments);
    };
    document.addEventListener("keydown", handleKeyboardEvent, true);
    document.addEventListener("keyup", handleKeyboardEvent, true);
    document.addEventListener("click", handleClickEvent, true);
    // Register focus events on the window so they are sure to happen
    // before React's event listeners (registered on the document).
    window.addEventListener("focus", handleFocusEvent, true);
    window.addEventListener("blur", handleWindowBlur, false);
    if (typeof PointerEvent !== "undefined") {
        document.addEventListener("pointerdown", handlePointerEvent, true);
        document.addEventListener("pointermove", handlePointerEvent, true);
        document.addEventListener("pointerup", handlePointerEvent, true);
    } else {
        document.addEventListener("mousedown", handlePointerEvent, true);
        document.addEventListener("mousemove", handlePointerEvent, true);
        document.addEventListener("mouseup", handlePointerEvent, true);
    }
    hasSetupGlobalListeners = true;
}
if (typeof document !== "undefined") {
    if (document.readyState !== "loading") setupGlobalFocusEvents();
    else document.addEventListener("DOMContentLoaded", setupGlobalFocusEvents);
}
function isFocusVisible() {
    return currentModality !== "pointer";
}
function getInteractionModality() {
    return currentModality;
}
function setInteractionModality(modality) {
    currentModality = modality;
    triggerChangeHandlers(modality, null);
}
function useInteractionModality() {
    setupGlobalFocusEvents();
    let [modality, setModality] = (0, _react.useState)(currentModality);
    (0, _react.useEffect)(()=>{
        let handler = ()=>{
            setModality(currentModality);
        };
        changeHandlers.add(handler);
        return ()=>{
            changeHandlers.delete(handler);
        };
    }, []);
    return (0, _ssr.useIsSSR)() ? null : modality;
}
/**
 * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that
 * focus visible style can be properly set.
 */ function isKeyboardFocusEvent(isTextInput, modality, e) {
    return !(isTextInput && modality === "keyboard" && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);
}
function useFocusVisible(props = {}) {
    let { isTextInput , autoFocus  } = props;
    let [isFocusVisibleState, setFocusVisible] = (0, _react.useState)(autoFocus || isFocusVisible());
    useFocusVisibleListener((isFocusVisible)=>{
        setFocusVisible(isFocusVisible);
    }, [
        isTextInput
    ], {
        isTextInput
    });
    return {
        isFocusVisible: isFocusVisibleState
    };
}
function useFocusVisibleListener(fn, deps, opts) {
    setupGlobalFocusEvents();
    (0, _react.useEffect)(()=>{
        let handler = (modality, e)=>{
            if (!isKeyboardFocusEvent(opts === null || opts === void 0 ? void 0 : opts.isTextInput, modality, e)) return;
            fn(isFocusVisible());
        };
        changeHandlers.add(handler);
        return ()=>{
            changeHandlers.delete(handler);
        };
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, deps);
}

},{"@react-aria/utils":"5XGXZ","react":"react","@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5vztT":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Portions of the code in this file are based on code from react.
// Original licensing for the following can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles focus events for the target and its descendants.
 */ parcelHelpers.export(exports, "useFocusWithin", ()=>useFocusWithin);
var _react = require("react");
var _utils = require("./utils");
function useFocusWithin(props) {
    let { isDisabled , onBlurWithin , onFocusWithin , onFocusWithinChange  } = props;
    let state = (0, _react.useRef)({
        isFocusWithin: false
    });
    let onBlur = (0, _react.useCallback)((e)=>{
        // We don't want to trigger onBlurWithin and then immediately onFocusWithin again
        // when moving focus inside the element. Only trigger if the currentTarget doesn't
        // include the relatedTarget (where focus is moving).
        if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {
            state.current.isFocusWithin = false;
            if (onBlurWithin) onBlurWithin(e);
            if (onFocusWithinChange) onFocusWithinChange(false);
        }
    }, [
        onBlurWithin,
        onFocusWithinChange,
        state
    ]);
    let onSyntheticFocus = (0, _utils.useSyntheticBlurEvent)(onBlur);
    let onFocus = (0, _react.useCallback)((e)=>{
        // Double check that document.activeElement actually matches e.target in case a previously chained
        // focus handler already moved focus somewhere else.
        if (!state.current.isFocusWithin && document.activeElement === e.target) {
            if (onFocusWithin) onFocusWithin(e);
            if (onFocusWithinChange) onFocusWithinChange(true);
            state.current.isFocusWithin = true;
            onSyntheticFocus(e);
        }
    }, [
        onFocusWithin,
        onFocusWithinChange,
        onSyntheticFocus
    ]);
    if (isDisabled) return {
        focusWithinProps: {
            onFocus: null,
            onBlur: null
        }
    };
    return {
        focusWithinProps: {
            onFocus,
            onBlur
        }
    };
}

},{"react":"react","./utils":"jNuXJ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7DP04":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Portions of the code in this file are based on code from react.
// Original licensing for the following can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles pointer hover interactions for an element. Normalizes behavior
 * across browsers and platforms, and ignores emulated mouse events on touch devices.
 */ parcelHelpers.export(exports, "useHover", ()=>useHover);
var _react = require("react");
// iOS fires onPointerEnter twice: once with pointerType="touch" and again with pointerType="mouse".
// We want to ignore these emulated events so they do not trigger hover behavior.
// See https://bugs.webkit.org/show_bug.cgi?id=214609.
let globalIgnoreEmulatedMouseEvents = false;
let hoverCount = 0;
function setGlobalIgnoreEmulatedMouseEvents() {
    globalIgnoreEmulatedMouseEvents = true;
    // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter
    // with pointerType="mouse" immediately after onPointerUp and before onFocus. On other
    // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in
    // the distant future because a user previously touched the element.
    setTimeout(()=>{
        globalIgnoreEmulatedMouseEvents = false;
    }, 50);
}
function handleGlobalPointerEvent(e) {
    if (e.pointerType === "touch") setGlobalIgnoreEmulatedMouseEvents();
}
function setupGlobalTouchEvents() {
    if (typeof document === "undefined") return;
    if (typeof PointerEvent !== "undefined") document.addEventListener("pointerup", handleGlobalPointerEvent);
    else document.addEventListener("touchend", setGlobalIgnoreEmulatedMouseEvents);
    hoverCount++;
    return ()=>{
        hoverCount--;
        if (hoverCount > 0) return;
        if (typeof PointerEvent !== "undefined") document.removeEventListener("pointerup", handleGlobalPointerEvent);
        else document.removeEventListener("touchend", setGlobalIgnoreEmulatedMouseEvents);
    };
}
function useHover(props) {
    let { onHoverStart , onHoverChange , onHoverEnd , isDisabled  } = props;
    let [isHovered, setHovered] = (0, _react.useState)(false);
    let state = (0, _react.useRef)({
        isHovered: false,
        ignoreEmulatedMouseEvents: false,
        pointerType: "",
        target: null
    }).current;
    (0, _react.useEffect)(setupGlobalTouchEvents, []);
    let { hoverProps , triggerHoverEnd  } = (0, _react.useMemo)(()=>{
        let triggerHoverStart = (event, pointerType)=>{
            state.pointerType = pointerType;
            if (isDisabled || pointerType === "touch" || state.isHovered || !event.currentTarget.contains(event.target)) return;
            state.isHovered = true;
            let target = event.currentTarget;
            state.target = target;
            if (onHoverStart) onHoverStart({
                type: "hoverstart",
                target,
                pointerType
            });
            if (onHoverChange) onHoverChange(true);
            setHovered(true);
        };
        let triggerHoverEnd = (event, pointerType)=>{
            state.pointerType = "";
            state.target = null;
            if (pointerType === "touch" || !state.isHovered) return;
            state.isHovered = false;
            let target = event.currentTarget;
            if (onHoverEnd) onHoverEnd({
                type: "hoverend",
                target,
                pointerType
            });
            if (onHoverChange) onHoverChange(false);
            setHovered(false);
        };
        let hoverProps = {};
        if (typeof PointerEvent !== "undefined") {
            hoverProps.onPointerEnter = (e)=>{
                if (globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse") return;
                triggerHoverStart(e, e.pointerType);
            };
            hoverProps.onPointerLeave = (e)=>{
                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);
            };
        } else {
            hoverProps.onTouchStart = ()=>{
                state.ignoreEmulatedMouseEvents = true;
            };
            hoverProps.onMouseEnter = (e)=>{
                if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, "mouse");
                state.ignoreEmulatedMouseEvents = false;
            };
            hoverProps.onMouseLeave = (e)=>{
                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, "mouse");
            };
        }
        return {
            hoverProps,
            triggerHoverEnd
        };
    }, [
        onHoverStart,
        onHoverChange,
        onHoverEnd,
        isDisabled,
        state
    ]);
    (0, _react.useEffect)(()=>{
        // Call the triggerHoverEnd as soon as isDisabled changes to true
        // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering
        if (isDisabled) triggerHoverEnd({
            currentTarget: state.target
        }, state.pointerType);
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [
        isDisabled
    ]);
    return {
        hoverProps,
        isHovered
    };
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9kkyy":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Portions of the code in this file are based on code from react.
// Original licensing for the following can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Example, used in components like Dialogs and Popovers so they can close
 * when a user clicks outside them.
 */ parcelHelpers.export(exports, "useInteractOutside", ()=>useInteractOutside);
var _react = require("react");
var _utils = require("@react-aria/utils");
function useInteractOutside(props) {
    let { ref , onInteractOutside , isDisabled , onInteractOutsideStart  } = props;
    let stateRef = (0, _react.useRef)({
        isPointerDown: false,
        ignoreEmulatedMouseEvents: false
    });
    let onPointerDown = (0, _utils.useEffectEvent)((e)=>{
        if (onInteractOutside && isValidEvent(e, ref)) {
            if (onInteractOutsideStart) onInteractOutsideStart(e);
            stateRef.current.isPointerDown = true;
        }
    });
    let triggerInteractOutside = (0, _utils.useEffectEvent)((e)=>{
        if (onInteractOutside) onInteractOutside(e);
    });
    (0, _react.useEffect)(()=>{
        let state = stateRef.current;
        if (isDisabled) return;
        // Use pointer events if available. Otherwise, fall back to mouse and touch events.
        if (typeof PointerEvent !== "undefined") {
            let onPointerUp = (e)=>{
                if (state.isPointerDown && isValidEvent(e, ref)) triggerInteractOutside(e);
                state.isPointerDown = false;
            };
            // changing these to capture phase fixed combobox
            document.addEventListener("pointerdown", onPointerDown, true);
            document.addEventListener("pointerup", onPointerUp, true);
            return ()=>{
                document.removeEventListener("pointerdown", onPointerDown, true);
                document.removeEventListener("pointerup", onPointerUp, true);
            };
        } else {
            let onMouseUp = (e)=>{
                if (state.ignoreEmulatedMouseEvents) state.ignoreEmulatedMouseEvents = false;
                else if (state.isPointerDown && isValidEvent(e, ref)) triggerInteractOutside(e);
                state.isPointerDown = false;
            };
            let onTouchEnd = (e)=>{
                state.ignoreEmulatedMouseEvents = true;
                if (state.isPointerDown && isValidEvent(e, ref)) triggerInteractOutside(e);
                state.isPointerDown = false;
            };
            document.addEventListener("mousedown", onPointerDown, true);
            document.addEventListener("mouseup", onMouseUp, true);
            document.addEventListener("touchstart", onPointerDown, true);
            document.addEventListener("touchend", onTouchEnd, true);
            return ()=>{
                document.removeEventListener("mousedown", onPointerDown, true);
                document.removeEventListener("mouseup", onMouseUp, true);
                document.removeEventListener("touchstart", onPointerDown, true);
                document.removeEventListener("touchend", onTouchEnd, true);
            };
        }
    }, [
        ref,
        isDisabled,
        onPointerDown,
        triggerInteractOutside
    ]);
}
function isValidEvent(event, ref) {
    if (event.button > 0) return false;
    if (event.target) {
        // if the event target is no longer in the document, ignore
        const ownerDocument = event.target.ownerDocument;
        if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) return false;
        // If the target is within a top layer element (e.g. toasts), ignore.
        if (event.target.closest("[data-react-aria-top-layer]")) return false;
    }
    return ref.current && !ref.current.contains(event.target);
}

},{"react":"react","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gD3OC":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles keyboard interactions for a focusable element.
 */ parcelHelpers.export(exports, "useKeyboard", ()=>useKeyboard);
var _createEventHandler = require("./createEventHandler");
function useKeyboard(props) {
    return {
        keyboardProps: props.isDisabled ? {} : {
            onKeyDown: (0, _createEventHandler.createEventHandler)(props.onKeyDown),
            onKeyUp: (0, _createEventHandler.createEventHandler)(props.onKeyUp)
        }
    };
}

},{"./createEventHandler":"irYum","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"irYum":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.
 */ parcelHelpers.export(exports, "createEventHandler", ()=>createEventHandler);
function createEventHandler(handler) {
    if (!handler) return;
    let shouldStopPropagation = true;
    return (e)=>{
        let event = {
            ...e,
            preventDefault () {
                e.preventDefault();
            },
            isDefaultPrevented () {
                return e.isDefaultPrevented();
            },
            stopPropagation () {
                console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.");
            },
            continuePropagation () {
                shouldStopPropagation = false;
            }
        };
        handler(event);
        if (shouldStopPropagation) e.stopPropagation();
    };
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bklv2":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,
 * accessibility description, and normalizes behavior across browsers and devices.
 */ parcelHelpers.export(exports, "useLongPress", ()=>useLongPress);
var _utils = require("@react-aria/utils");
var _usePress = require("./usePress");
var _react = require("react");
const DEFAULT_THRESHOLD = 500;
function useLongPress(props) {
    let { isDisabled , onLongPressStart , onLongPressEnd , onLongPress , threshold =DEFAULT_THRESHOLD , accessibilityDescription  } = props;
    const timeRef = (0, _react.useRef)(null);
    let { addGlobalListener , removeGlobalListener  } = (0, _utils.useGlobalListeners)();
    let { pressProps  } = (0, _usePress.usePress)({
        isDisabled,
        onPressStart (e) {
            e.continuePropagation();
            if (e.pointerType === "mouse" || e.pointerType === "touch") {
                if (onLongPressStart) onLongPressStart({
                    ...e,
                    type: "longpressstart"
                });
                timeRef.current = setTimeout(()=>{
                    // Prevent other usePress handlers from also handling this event.
                    e.target.dispatchEvent(new PointerEvent("pointercancel", {
                        bubbles: true
                    }));
                    if (onLongPress) onLongPress({
                        ...e,
                        type: "longpress"
                    });
                    timeRef.current = null;
                }, threshold);
                // Prevent context menu, which may be opened on long press on touch devices
                if (e.pointerType === "touch") {
                    let onContextMenu = (e)=>{
                        e.preventDefault();
                    };
                    addGlobalListener(e.target, "contextmenu", onContextMenu, {
                        once: true
                    });
                    addGlobalListener(window, "pointerup", ()=>{
                        // If no contextmenu event is fired quickly after pointerup, remove the handler
                        // so future context menu events outside a long press are not prevented.
                        setTimeout(()=>{
                            removeGlobalListener(e.target, "contextmenu", onContextMenu);
                        }, 30);
                    }, {
                        once: true
                    });
                }
            }
        },
        onPressEnd (e) {
            if (timeRef.current) clearTimeout(timeRef.current);
            if (onLongPressEnd && (e.pointerType === "mouse" || e.pointerType === "touch")) onLongPressEnd({
                ...e,
                type: "longpressend"
            });
        }
    });
    let descriptionProps = (0, _utils.useDescription)(onLongPress && !isDisabled ? accessibilityDescription : null);
    return {
        longPressProps: (0, _utils.mergeProps)(pressProps, descriptionProps)
    };
}

},{"@react-aria/utils":"5XGXZ","./usePress":"6gbAK","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9UtDF":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Adapted from https://github.com/testing-library/jest-dom and 
 * https://github.com/vuejs/vue-test-utils-next/.
 * Licensed under the MIT License.
 * @param element - Element to evaluate for display or visibility.
 */ parcelHelpers.export(exports, "isElementVisible", ()=>isElementVisible);
function isStyleVisible(element) {
    if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) return false;
    let { display , visibility  } = element.style;
    let isVisible = display !== "none" && visibility !== "hidden" && visibility !== "collapse";
    if (isVisible) {
        const { getComputedStyle  } = element.ownerDocument.defaultView;
        let { display: computedDisplay , visibility: computedVisibility  } = getComputedStyle(element);
        isVisible = computedDisplay !== "none" && computedVisibility !== "hidden" && computedVisibility !== "collapse";
    }
    return isVisible;
}
function isAttributeVisible(element, childElement) {
    return !element.hasAttribute("hidden") && (element.nodeName === "DETAILS" && childElement && childElement.nodeName !== "SUMMARY" ? element.hasAttribute("open") : true);
}
function isElementVisible(element, childElement) {
    return element.nodeName !== "#comment" && isStyleVisible(element) && isAttributeVisible(element, childElement) && (!element.parentElement || isElementVisible(element.parentElement, element));
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"47OJJ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * A utility component that applies a CSS class when an element has keyboard focus.
 * Focus rings are visible only when the user is interacting with a keyboard,
 * not with a mouse, touch, or other input methods.
 */ parcelHelpers.export(exports, "FocusRing", ()=>FocusRing);
var _clsx = require("clsx");
var _clsxDefault = parcelHelpers.interopDefault(_clsx);
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _useFocusRing = require("./useFocusRing");
function FocusRing(props) {
    let { children , focusClass , focusRingClass  } = props;
    let { isFocused , isFocusVisible , focusProps  } = (0, _useFocusRing.useFocusRing)(props);
    let child = (0, _reactDefault.default).Children.only(children);
    return /*#__PURE__*/ (0, _reactDefault.default).cloneElement(child, (0, _utils.mergeProps)(child.props, {
        ...focusProps,
        className: (0, _clsxDefault.default)({
            [focusClass || ""]: isFocused,
            [focusRingClass || ""]: isFocusVisible
        })
    }));
}

},{"clsx":"bY7QY","@react-aria/utils":"5XGXZ","react":"react","./useFocusRing":"iSrkl","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iSrkl":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Determines whether a focus ring should be shown to indicate keyboard focus.
 * Focus rings are visible only when the user is interacting with a keyboard,
 * not with a mouse, touch, or other input methods.
 */ parcelHelpers.export(exports, "useFocusRing", ()=>useFocusRing);
var _interactions = require("@react-aria/interactions");
var _react = require("react");
function useFocusRing(props = {}) {
    let { autoFocus =false , isTextInput , within  } = props;
    let state = (0, _react.useRef)({
        isFocused: false,
        isFocusVisible: autoFocus || (0, _interactions.isFocusVisible)()
    });
    let [isFocused, setFocused] = (0, _react.useState)(false);
    let [isFocusVisibleState, setFocusVisible] = (0, _react.useState)(()=>state.current.isFocused && state.current.isFocusVisible);
    let updateState = (0, _react.useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);
    let onFocusChange = (0, _react.useCallback)((isFocused)=>{
        state.current.isFocused = isFocused;
        setFocused(isFocused);
        updateState();
    }, [
        updateState
    ]);
    (0, _interactions.useFocusVisibleListener)((isFocusVisible)=>{
        state.current.isFocusVisible = isFocusVisible;
        updateState();
    }, [], {
        isTextInput
    });
    let { focusProps  } = (0, _interactions.useFocus)({
        isDisabled: within,
        onFocusChange
    });
    let { focusWithinProps  } = (0, _interactions.useFocusWithin)({
        isDisabled: !within,
        onFocusWithinChange: onFocusChange
    });
    return {
        isFocused,
        isFocusVisible: isFocusVisibleState,
        focusProps: within ? focusWithinProps : focusProps
    };
}

},{"@react-aria/interactions":"3eipm","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1ncEp":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "FocusableProvider", ()=>_FocusableProvider);
/**
 * Used to make an element focusable and capable of auto focus.
 */ parcelHelpers.export(exports, "useFocusable", ()=>useFocusable);
var _ = require("./");
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _interactions = require("@react-aria/interactions");
let FocusableContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
function useFocusableContext(ref) {
    let context = (0, _react.useContext)(FocusableContext) || {};
    (0, _utils.useSyncRef)(context, ref);
    // eslint-disable-next-line
    let { ref: _ , ...otherProps } = context;
    return otherProps;
}
/**
 * Provides DOM props to the nearest focusable child.
 */ function FocusableProvider(props, ref) {
    let { children , ...otherProps } = props;
    let context = {
        ...otherProps,
        ref
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(FocusableContext.Provider, {
        value: context
    }, children);
}
let _FocusableProvider = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(FocusableProvider);
function useFocusable(props, domRef) {
    let { focusProps  } = (0, _interactions.useFocus)(props);
    let { keyboardProps  } = (0, _interactions.useKeyboard)(props);
    let interactions = (0, _utils.mergeProps)(focusProps, keyboardProps);
    let domProps = useFocusableContext(domRef);
    let interactionProps = props.isDisabled ? {} : domProps;
    let autoFocusRef = (0, _react.useRef)(props.autoFocus);
    (0, _react.useEffect)(()=>{
        if (autoFocusRef.current && domRef.current) (0, _.focusSafely)(domRef.current);
        autoFocusRef.current = false;
    }, [
        domRef
    ]);
    return {
        focusableProps: (0, _utils.mergeProps)({
            ...interactions,
            tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined
        }, interactionProps)
    };
}

},{"./":"cRsYs","@react-aria/utils":"5XGXZ","react":"react","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eFupc":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles the behavior and accessibility for an overlay trigger, e.g. a button
 * that opens a popover, menu, or other overlay that is positioned relative to the trigger.
 */ parcelHelpers.export(exports, "useOverlayTrigger", ()=>useOverlayTrigger);
var _useCloseOnScroll = require("./useCloseOnScroll");
var _react = require("react");
var _utils = require("@react-aria/utils");
function useOverlayTrigger(props, state, ref) {
    let { type  } = props;
    let { isOpen  } = state;
    // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll
    // without forcing users to pass onClose.
    (0, _react.useEffect)(()=>{
        if (ref && ref.current) (0, _useCloseOnScroll.onCloseMap).set(ref.current, state.close);
    });
    // Aria 1.1 supports multiple values for aria-haspopup other than just menus.
    // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup
    // However, we only add it for menus for now because screen readers often
    // announce it as a menu even for other values.
    let ariaHasPopup = undefined;
    if (type === "menu") ariaHasPopup = true;
    else if (type === "listbox") ariaHasPopup = "listbox";
    let overlayId = (0, _utils.useId)();
    return {
        triggerProps: {
            "aria-haspopup": ariaHasPopup,
            "aria-expanded": isOpen,
            "aria-controls": isOpen ? overlayId : null,
            onPress: state.toggle
        },
        overlayProps: {
            id: overlayId
        }
    };
}

},{"./useCloseOnScroll":"lpXGs","react":"react","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9MZTU":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Prevents scrolling on the document body on mount, and
 * restores it on unmount. Also ensures that content does not
 * shift due to the scrollbars disappearing.
 */ parcelHelpers.export(exports, "usePreventScroll", ()=>usePreventScroll);
var _utils = require("@react-aria/utils");
// @ts-ignore
const visualViewport = typeof document !== "undefined" && window.visualViewport;
// HTML input types that do not cause the software keyboard to appear.
const nonTextInputTypes = new Set([
    "checkbox",
    "radio",
    "range",
    "color",
    "file",
    "image",
    "button",
    "submit",
    "reset"
]);
// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position
let preventScrollCount = 0;
let restore;
function usePreventScroll(options = {}) {
    let { isDisabled  } = options;
    (0, _utils.useLayoutEffect)(()=>{
        if (isDisabled) return;
        preventScrollCount++;
        if (preventScrollCount === 1) {
            if ((0, _utils.isIOS)()) restore = preventScrollMobileSafari();
            else restore = preventScrollStandard();
        }
        return ()=>{
            preventScrollCount--;
            if (preventScrollCount === 0) restore();
        };
    }, [
        isDisabled
    ]);
}
// For most browsers, all we need to do is set `overflow: hidden` on the root element, and
// add some padding to prevent the page from shifting when the scrollbar is hidden.
function preventScrollStandard() {
    return (0, _utils.chain)(setStyle(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), setStyle(document.documentElement, "overflow", "hidden"));
}
// Mobile Safari is a whole different beast. Even with overflow: hidden,
// it still scrolls the page in many situations:
//
// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.
// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of
//    it, so it becomes scrollable.
// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.
//    This may cause even fixed position elements to scroll off the screen.
// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always
//    scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.
//
// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:
//
// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling
//    on the window.
// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the
//    top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.
// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.
// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top
//    of the page, which prevents it from scrolling the page. After the input is focused, scroll the element
//    into view ourselves, without scrolling the whole page.
// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the
//    same visually, but makes the actual scroll position always zero. This is required to make all of the
//    above work or Safari will still try to scroll the page when focusing an input.
// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting
//    to navigate to an input with the next/previous buttons that's outside a modal.
function preventScrollMobileSafari() {
    let scrollable;
    let lastY = 0;
    let onTouchStart = (e)=>{
        // Store the nearest scrollable parent element from the element that the user touched.
        scrollable = (0, _utils.getScrollParent)(e.target);
        if (scrollable === document.documentElement && scrollable === document.body) return;
        lastY = e.changedTouches[0].pageY;
    };
    let onTouchMove = (e)=>{
        // Prevent scrolling the window.
        if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {
            e.preventDefault();
            return;
        }
        // Prevent scrolling up when at the top and scrolling down when at the bottom
        // of a nested scrollable area, otherwise mobile Safari will start scrolling
        // the window instead. Unfortunately, this disables bounce scrolling when at
        // the top but it's the best we can do.
        let y = e.changedTouches[0].pageY;
        let scrollTop = scrollable.scrollTop;
        let bottom = scrollable.scrollHeight - scrollable.clientHeight;
        if (bottom === 0) return;
        if (scrollTop <= 0 && y > lastY || scrollTop >= bottom && y < lastY) e.preventDefault();
        lastY = y;
    };
    let onTouchEnd = (e)=>{
        let target = e.target;
        // Apply this change if we're not already focused on the target element
        if (willOpenKeyboard(target) && target !== document.activeElement) {
            e.preventDefault();
            // Apply a transform to trick Safari into thinking the input is at the top of the page
            // so it doesn't try to scroll it into view. When tapping on an input, this needs to
            // be done before the "focus" event, so we have to focus the element ourselves.
            target.style.transform = "translateY(-2000px)";
            target.focus();
            requestAnimationFrame(()=>{
                target.style.transform = "";
            });
        }
    };
    let onFocus = (e)=>{
        let target = e.target;
        if (willOpenKeyboard(target)) {
            // Transform also needs to be applied in the focus event in cases where focus moves
            // other than tapping on an input directly, e.g. the next/previous buttons in the
            // software keyboard. In these cases, it seems applying the transform in the focus event
            // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷‍♂️
            target.style.transform = "translateY(-2000px)";
            requestAnimationFrame(()=>{
                target.style.transform = "";
                // This will have prevented the browser from scrolling the focused element into view,
                // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.
                if (visualViewport) {
                    if (visualViewport.height < window.innerHeight) // If the keyboard is already visible, do this after one additional frame
                    // to wait for the transform to be removed.
                    requestAnimationFrame(()=>{
                        scrollIntoView(target);
                    });
                    else // Otherwise, wait for the visual viewport to resize before scrolling so we can
                    // measure the correct position to scroll to.
                    visualViewport.addEventListener("resize", ()=>scrollIntoView(target), {
                        once: true
                    });
                }
            });
        }
    };
    let onWindowScroll = ()=>{
        // Last resort. If the window scrolled, scroll it back to the top.
        // It should always be at the top because the body will have a negative margin (see below).
        window.scrollTo(0, 0);
    };
    // Record the original scroll position so we can restore it.
    // Then apply a negative margin to the body to offset it by the scroll position. This will
    // enable us to scroll the window to the top, which is required for the rest of this to work.
    let scrollX = window.pageXOffset;
    let scrollY = window.pageYOffset;
    let restoreStyles = (0, _utils.chain)(setStyle(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), setStyle(document.documentElement, "overflow", "hidden"), setStyle(document.body, "marginTop", `-${scrollY}px`));
    // Scroll to the top. The negative margin on the body will make this appear the same.
    window.scrollTo(0, 0);
    let removeEvents = (0, _utils.chain)(addEvent(document, "touchstart", onTouchStart, {
        passive: false,
        capture: true
    }), addEvent(document, "touchmove", onTouchMove, {
        passive: false,
        capture: true
    }), addEvent(document, "touchend", onTouchEnd, {
        passive: false,
        capture: true
    }), addEvent(document, "focus", onFocus, true), addEvent(window, "scroll", onWindowScroll));
    return ()=>{
        // Restore styles and scroll the page back to where it was.
        restoreStyles();
        removeEvents();
        window.scrollTo(scrollX, scrollY);
    };
}
// Sets a CSS property on an element, and returns a function to revert it to the previous value.
function setStyle(element, style, value) {
    let cur = element.style[style];
    element.style[style] = value;
    return ()=>{
        element.style[style] = cur;
    };
}
// Adds an event listener to an element, and returns a function to remove it.
function addEvent(target, event, handler, options) {
    target.addEventListener(event, handler, options);
    return ()=>{
        target.removeEventListener(event, handler, options);
    };
}
function scrollIntoView(target) {
    let root = document.scrollingElement || document.documentElement;
    while(target && target !== root){
        // Find the parent scrollable element and adjust the scroll position if the target is not already in view.
        let scrollable = (0, _utils.getScrollParent)(target);
        if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {
            let scrollableTop = scrollable.getBoundingClientRect().top;
            let targetTop = target.getBoundingClientRect().top;
            if (targetTop > scrollableTop + target.clientHeight) scrollable.scrollTop += targetTop - scrollableTop;
        }
        target = scrollable.parentElement;
    }
}
function willOpenKeyboard(target) {
    return target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iRuKK":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals
 * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.
 * This is done recursively so that all parent providers are incremented and decremented.
 * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its
 * subtree from screen readers. This is done using React context in order to account for things
 * like portals, which can cause the React tree and the DOM tree to differ significantly in structure.
 */ parcelHelpers.export(exports, "ModalProvider", ()=>ModalProvider);
/**
 * Used to determine if the tree should be aria-hidden based on how many
 * modals are open.
 */ parcelHelpers.export(exports, "useModalProvider", ()=>useModalProvider);
/**
 * An OverlayProvider acts as a container for the top-level application.
 * Any application that uses modal dialogs or other overlays should
 * be wrapped in a `<OverlayProvider>`. This is used to ensure that
 * the main content of the application is hidden from screen readers
 * if a modal or other overlay is opened. Only the top-most modal or
 * overlay should be accessible at once.
 */ parcelHelpers.export(exports, "OverlayProvider", ()=>OverlayProvider);
/**
 * A container for overlays like modals and popovers. Renders the overlay
 * into a Portal which is placed at the end of the document body.
 * Also ensures that the overlay is hidden from screen readers if a
 * nested modal is opened. Only the top-most modal or overlay should
 * be accessible at once.
 */ parcelHelpers.export(exports, "OverlayContainer", ()=>OverlayContainer);
/**
 * Hides content outside the current `<OverlayContainer>` from screen readers
 * on mount and restores it on unmount. Typically used by modal dialogs and
 * other types of overlays to ensure that only the top-most modal is
 * accessible at once.
 */ parcelHelpers.export(exports, "useModal", ()=>useModal);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactDom = require("react-dom");
var _reactDomDefault = parcelHelpers.interopDefault(_reactDom);
var _ssr = require("@react-aria/ssr");
const Context = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
function ModalProvider(props) {
    let { children  } = props;
    let parent = (0, _react.useContext)(Context);
    let [modalCount, setModalCount] = (0, _react.useState)(0);
    let context = (0, _react.useMemo)(()=>({
            parent,
            modalCount,
            addModal () {
                setModalCount((count)=>count + 1);
                if (parent) parent.addModal();
            },
            removeModal () {
                setModalCount((count)=>count - 1);
                if (parent) parent.removeModal();
            }
        }), [
        parent,
        modalCount
    ]);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(Context.Provider, {
        value: context
    }, children);
}
function useModalProvider() {
    let context = (0, _react.useContext)(Context);
    return {
        modalProviderProps: {
            "aria-hidden": context && context.modalCount > 0 ? true : null
        }
    };
}
/**
 * Creates a root node that will be aria-hidden if there are other modals open.
 */ function OverlayContainerDOM(props) {
    let { modalProviderProps  } = useModalProvider();
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        "data-overlay-container": true,
        ...props,
        ...modalProviderProps
    });
}
function OverlayProvider(props) {
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(ModalProvider, null, /*#__PURE__*/ (0, _reactDefault.default).createElement(OverlayContainerDOM, props));
}
function OverlayContainer(props) {
    let isSSR = (0, _ssr.useIsSSR)();
    let { portalContainer =isSSR ? null : document.body , ...rest } = props;
    (0, _reactDefault.default).useEffect(()=>{
        if (portalContainer === null || portalContainer === void 0 ? void 0 : portalContainer.closest("[data-overlay-container]")) throw new Error("An OverlayContainer must not be inside another container. Please change the portalContainer prop.");
    }, [
        portalContainer
    ]);
    if (!portalContainer) return null;
    let contents = /*#__PURE__*/ (0, _reactDefault.default).createElement(OverlayProvider, rest);
    return /*#__PURE__*/ (0, _reactDomDefault.default).createPortal(contents, portalContainer);
}
function useModal(options) {
    // Add aria-hidden to all parent providers on mount, and restore on unmount.
    let context = (0, _react.useContext)(Context);
    if (!context) throw new Error("Modal is not contained within a provider");
    (0, _react.useEffect)(()=>{
        if ((options === null || options === void 0 ? void 0 : options.isDisabled) || !context || !context.parent) return;
        // The immediate context is from the provider containing this modal, so we only
        // want to trigger aria-hidden on its parents not on the modal provider itself.
        context.parent.addModal();
        return ()=>{
            if (context && context.parent) context.parent.removeModal();
        };
    }, [
        context,
        context.parent,
        options === null || options === void 0 ? void 0 : options.isDisabled
    ]);
    return {
        modalProps: {
            "data-ismodal": !(options === null || options === void 0 ? void 0 : options.isDisabled)
        }
    };
}

},{"react":"react","react-dom":"react-dom","@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5RM75":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * A visually hidden button that can be used to allow screen reader
 * users to dismiss a modal or popup when there is no visual
 * affordance to do so.
 */ parcelHelpers.export(exports, "DismissButton", ()=>DismissButton);
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _utils = require("@react-aria/utils");
var _i18N = require("@react-aria/i18n");
var _visuallyHidden = require("@react-aria/visually-hidden");
function DismissButton(props) {
    let { onDismiss , ...otherProps } = props;
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let labels = (0, _utils.useLabels)(otherProps, stringFormatter.format("dismiss"));
    let onClick = ()=>{
        if (onDismiss) onDismiss();
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _visuallyHidden.VisuallyHidden), null, /*#__PURE__*/ (0, _reactDefault.default).createElement("button", {
        ...labels,
        tabIndex: -1,
        onClick: onClick
    }));
}

},{"../intl/*.json":"i73fH","react":"react","@react-aria/utils":"5XGXZ","@react-aria/i18n":"lHUec","@react-aria/visually-hidden":"ks2PC","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"i73fH":[function(require,module,exports) {
const _temp0 = require("fb9cd8c40f374ea7");
const _temp1 = require("a70ef199009c6bc");
const _temp2 = require("6d7d9859bbd1508e");
const _temp3 = require("9398db2e1e63d3a1");
const _temp4 = require("727ec5cd6d2d771b");
const _temp5 = require("2b15efe2acc8174a");
const _temp6 = require("152ad9854112850");
const _temp7 = require("325a44e6fea34728");
const _temp8 = require("73f75de9ec78343e");
const _temp9 = require("7d9cc0075877d56c");
const _temp10 = require("d0bde47587c84622");
const _temp11 = require("900b9a4087671619");
const _temp12 = require("7250918f8c99555");
const _temp13 = require("326a7ea5266290");
const _temp14 = require("b14d92ef814f417d");
const _temp15 = require("a3011f7b477adc71");
const _temp16 = require("14e3c1cbf2e5f8ff");
const _temp17 = require("b12b8c0ce27bafc4");
const _temp18 = require("159c6d3b1ec26f78");
const _temp19 = require("57a1f441a85265a");
const _temp20 = require("186e5a0acab13def");
const _temp21 = require("9f729321b82985dc");
const _temp22 = require("86e8c1450c533db8");
const _temp23 = require("d9bf93fb169c4803");
const _temp24 = require("c3e2d6470a649594");
const _temp25 = require("d4fae2e90e6f3b2c");
const _temp26 = require("556e48fafccea7c");
const _temp27 = require("a55605310e2680f7");
const _temp28 = require("2374d5326777a1ce");
const _temp29 = require("eb36c86d33f7d601");
const _temp30 = require("9f997e85300917b2");
const _temp31 = require("763fae833506549b");
const _temp32 = require("fe36a04df3ebb49b");
const _temp33 = require("d89e8e3d5e2f2eb7");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"fb9cd8c40f374ea7":"2kmXq","a70ef199009c6bc":"23Fwz","6d7d9859bbd1508e":"fZKfN","9398db2e1e63d3a1":"2HGf4","727ec5cd6d2d771b":"dBRHt","2b15efe2acc8174a":"eKVj6","152ad9854112850":"adVQY","325a44e6fea34728":"bKgM4","73f75de9ec78343e":"lgPrL","7d9cc0075877d56c":"gDMsj","d0bde47587c84622":"8ft27","900b9a4087671619":"7LeMR","7250918f8c99555":"4WA5g","326a7ea5266290":"edvVC","b14d92ef814f417d":"5EC6I","a3011f7b477adc71":"CsiTe","14e3c1cbf2e5f8ff":"gDooa","b12b8c0ce27bafc4":"hKcRP","159c6d3b1ec26f78":"toHa2","57a1f441a85265a":"8wNBG","186e5a0acab13def":"2AmMS","9f729321b82985dc":"7zz06","86e8c1450c533db8":"h3DRN","d9bf93fb169c4803":"k2T0w","c3e2d6470a649594":"eM5tT","d4fae2e90e6f3b2c":"8rfmM","556e48fafccea7c":"4C6wi","a55605310e2680f7":"fwtBJ","2374d5326777a1ce":"iSWEs","eb36c86d33f7d601":"3rYcw","9f997e85300917b2":"jTtBS","763fae833506549b":"ctAdJ","fe36a04df3ebb49b":"1ayvs","d89e8e3d5e2f2eb7":"45A6B"}],"2kmXq":[function(require,module,exports) {
module.exports = {
    "dismiss": `تجاهل`
};

},{}],"23Fwz":[function(require,module,exports) {
module.exports = {
    "dismiss": `Отхвърляне`
};

},{}],"fZKfN":[function(require,module,exports) {
module.exports = {
    "dismiss": `Odstranit`
};

},{}],"2HGf4":[function(require,module,exports) {
module.exports = {
    "dismiss": `Luk`
};

},{}],"dBRHt":[function(require,module,exports) {
module.exports = {
    "dismiss": `Schließen`
};

},{}],"eKVj6":[function(require,module,exports) {
module.exports = {
    "dismiss": `Απόρριψη`
};

},{}],"adVQY":[function(require,module,exports) {
module.exports = {
    "dismiss": `Dismiss`
};

},{}],"bKgM4":[function(require,module,exports) {
module.exports = {
    "dismiss": `Descartar`
};

},{}],"lgPrL":[function(require,module,exports) {
module.exports = {
    "dismiss": `Lõpeta`
};

},{}],"gDMsj":[function(require,module,exports) {
module.exports = {
    "dismiss": `Hylkää`
};

},{}],"8ft27":[function(require,module,exports) {
module.exports = {
    "dismiss": `Rejeter`
};

},{}],"7LeMR":[function(require,module,exports) {
module.exports = {
    "dismiss": `התעלם`
};

},{}],"4WA5g":[function(require,module,exports) {
module.exports = {
    "dismiss": `Odbaci`
};

},{}],"edvVC":[function(require,module,exports) {
module.exports = {
    "dismiss": `Elutasítás`
};

},{}],"5EC6I":[function(require,module,exports) {
module.exports = {
    "dismiss": `Ignora`
};

},{}],"CsiTe":[function(require,module,exports) {
module.exports = {
    "dismiss": `閉じる`
};

},{}],"gDooa":[function(require,module,exports) {
module.exports = {
    "dismiss": `무시`
};

},{}],"hKcRP":[function(require,module,exports) {
module.exports = {
    "dismiss": `Atmesti`
};

},{}],"toHa2":[function(require,module,exports) {
module.exports = {
    "dismiss": `Nerādīt`
};

},{}],"8wNBG":[function(require,module,exports) {
module.exports = {
    "dismiss": `Lukk`
};

},{}],"2AmMS":[function(require,module,exports) {
module.exports = {
    "dismiss": `Negeren`
};

},{}],"7zz06":[function(require,module,exports) {
module.exports = {
    "dismiss": `Zignoruj`
};

},{}],"h3DRN":[function(require,module,exports) {
module.exports = {
    "dismiss": `Descartar`
};

},{}],"k2T0w":[function(require,module,exports) {
module.exports = {
    "dismiss": `Dispensar`
};

},{}],"eM5tT":[function(require,module,exports) {
module.exports = {
    "dismiss": `Revocare`
};

},{}],"8rfmM":[function(require,module,exports) {
module.exports = {
    "dismiss": `Пропустить`
};

},{}],"4C6wi":[function(require,module,exports) {
module.exports = {
    "dismiss": `Zrušiť`
};

},{}],"fwtBJ":[function(require,module,exports) {
module.exports = {
    "dismiss": `Opusti`
};

},{}],"iSWEs":[function(require,module,exports) {
module.exports = {
    "dismiss": `Odbaci`
};

},{}],"3rYcw":[function(require,module,exports) {
module.exports = {
    "dismiss": `Avvisa`
};

},{}],"jTtBS":[function(require,module,exports) {
module.exports = {
    "dismiss": `Kapat`
};

},{}],"ctAdJ":[function(require,module,exports) {
module.exports = {
    "dismiss": `Скасувати`
};

},{}],"1ayvs":[function(require,module,exports) {
module.exports = {
    "dismiss": `取消`
};

},{}],"45A6B":[function(require,module,exports) {
module.exports = {
    "dismiss": `關閉`
};

},{}],"ks2PC":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useVisuallyHidden", ()=>(0, _visuallyHidden.useVisuallyHidden));
parcelHelpers.export(exports, "VisuallyHidden", ()=>(0, _visuallyHidden.VisuallyHidden));
var _visuallyHidden = require("./VisuallyHidden");

},{"./VisuallyHidden":"bNte6","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bNte6":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides props for an element that hides its children visually
 * but keeps content visible to assistive technology.
 */ parcelHelpers.export(exports, "useVisuallyHidden", ()=>useVisuallyHidden);
/**
 * VisuallyHidden hides its children visually, while keeping content visible
 * to screen readers.
 */ parcelHelpers.export(exports, "VisuallyHidden", ()=>VisuallyHidden);
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _interactions = require("@react-aria/interactions");
const styles = {
    border: 0,
    clip: "rect(0 0 0 0)",
    clipPath: "inset(50%)",
    height: "1px",
    margin: "-1px",
    overflow: "hidden",
    padding: 0,
    position: "absolute",
    width: "1px",
    whiteSpace: "nowrap"
};
function useVisuallyHidden(props = {}) {
    let { style , isFocusable  } = props;
    let [isFocused, setFocused] = (0, _react.useState)(false);
    let { focusWithinProps  } = (0, _interactions.useFocusWithin)({
        isDisabled: !isFocusable,
        onFocusWithinChange: (val)=>setFocused(val)
    });
    // If focused, don't hide the element.
    let combinedStyles = (0, _react.useMemo)(()=>{
        if (isFocused) return style;
        else if (style) return {
            ...styles,
            ...style
        };
        else return styles;
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [
        isFocused
    ]);
    return {
        visuallyHiddenProps: {
            ...focusWithinProps,
            style: combinedStyles
        }
    };
}
function VisuallyHidden(props) {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    let { children , elementType: Element = "div" , isFocusable , style , ...otherProps } = props;
    let { visuallyHiddenProps  } = useVisuallyHidden(props);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(Element, (0, _utils.mergeProps)(otherProps, visuallyHiddenProps), children);
}

},{"@react-aria/utils":"5XGXZ","react":"react","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"elMMk":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // Keeps a ref count of all hidden elements. Added to when hiding an element, and
// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Hides all elements in the DOM outside the given targets from screen readers using aria-hidden,
 * and returns a function to revert these changes. In addition, changes to the DOM are watched
 * and new elements outside the targets are automatically hidden.
 * @param targets - The elements that should remain visible.
 * @param root - Nothing will be hidden above this element.
 * @returns - A function to restore all hidden elements.
 */ parcelHelpers.export(exports, "ariaHideOutside", ()=>ariaHideOutside);
let refCountMap = new WeakMap();
let observerStack = [];
const supportsInert = typeof HTMLElement !== "undefined" && Object.prototype.hasOwnProperty.call(HTMLElement.prototype, "inert");
function ariaHideOutside(targets, root = document.body) {
    let visibleNodes = new Set(targets);
    let hiddenNodes = new Set();
    let walk = (root)=>{
        // Keep live announcer and top layer elements (e.g. toasts) visible.
        for (let element of root.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))visibleNodes.add(element);
        let acceptNode = (node)=>{
            // Skip this node and its children if it is one of the target nodes, or a live announcer.
            // Also skip children of already hidden nodes, as aria-hidden is recursive. An exception is
            // made for elements with role="row" since VoiceOver on iOS has issues hiding elements with role="row".
            // For that case we want to hide the cells inside as well (https://bugs.webkit.org/show_bug.cgi?id=222623).
            if (visibleNodes.has(node) || hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute("role") !== "row") return NodeFilter.FILTER_REJECT;
            // Skip this node but continue to children if one of the targets is inside the node.
            for (let target of visibleNodes){
                if (node.contains(target)) return NodeFilter.FILTER_SKIP;
            }
            return NodeFilter.FILTER_ACCEPT;
        };
        let walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
            acceptNode
        });
        // TreeWalker does not include the root.
        let acceptRoot = acceptNode(root);
        if (acceptRoot === NodeFilter.FILTER_ACCEPT) hide(root);
        if (acceptRoot !== NodeFilter.FILTER_REJECT) {
            let node = walker.nextNode();
            while(node != null){
                hide(node);
                node = walker.nextNode();
            }
        }
    };
    let hide = (node)=>{
        var _refCountMap_get;
        let refCount = (_refCountMap_get = refCountMap.get(node)) !== null && _refCountMap_get !== void 0 ? _refCountMap_get : 0;
        // If already aria-hidden, and the ref count is zero, then this element
        // was already hidden and there's nothing for us to do.
        let alreadyHidden = supportsInert && node instanceof HTMLElement ? node.inert : node.getAttribute("aria-hidden") === "true";
        if (alreadyHidden && refCount === 0) return;
        if (refCount === 0) supportsInert && node instanceof HTMLElement ? node.inert = true : node.setAttribute("aria-hidden", "true");
        hiddenNodes.add(node);
        refCountMap.set(node, refCount + 1);
    };
    // If there is already a MutationObserver listening from a previous call,
    // disconnect it so the new on takes over.
    if (observerStack.length) observerStack[observerStack.length - 1].disconnect();
    walk(root);
    let observer = new MutationObserver((changes)=>{
        for (let change of changes){
            if (change.type !== "childList" || change.addedNodes.length === 0) continue;
            // If the parent element of the added nodes is not within one of the targets,
            // and not already inside a hidden node, hide all of the new children.
            if (![
                ...visibleNodes,
                ...hiddenNodes
            ].some((node)=>node.contains(change.target))) {
                for (let node of change.removedNodes)if (node instanceof Element) {
                    visibleNodes.delete(node);
                    hiddenNodes.delete(node);
                }
                for (let node of change.addedNodes){
                    if ((node instanceof HTMLElement || node instanceof SVGElement) && (node.dataset.liveAnnouncer === "true" || node.dataset.reactAriaTopLayer === "true")) visibleNodes.add(node);
                    else if (node instanceof Element) walk(node);
                }
            }
        }
    });
    observer.observe(root, {
        childList: true,
        subtree: true
    });
    let observerWrapper = {
        observe () {
            observer.observe(root, {
                childList: true,
                subtree: true
            });
        },
        disconnect () {
            observer.disconnect();
        }
    };
    observerStack.push(observerWrapper);
    return ()=>{
        observer.disconnect();
        for (let node of hiddenNodes){
            let count = refCountMap.get(node);
            if (count === 1) {
                supportsInert && node instanceof HTMLElement ? node.inert = false : node.removeAttribute("aria-hidden");
                refCountMap.delete(node);
            } else refCountMap.set(node, count - 1);
        }
        // Remove this observer from the stack, and start the previous one.
        if (observerWrapper === observerStack[observerStack.length - 1]) {
            observerStack.pop();
            if (observerStack.length) observerStack[observerStack.length - 1].observe();
        } else observerStack.splice(observerStack.indexOf(observerWrapper), 1);
    };
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"d12VJ":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a popover component.
 * A popover is an overlay element positioned relative to a trigger.
 */ parcelHelpers.export(exports, "usePopover", ()=>usePopover);
var _ariaHideOutside = require("./ariaHideOutside");
var _useOverlayPosition = require("./useOverlayPosition");
var _utils = require("@react-aria/utils");
var _react = require("react");
var _useOverlay = require("./useOverlay");
var _usePreventScroll = require("./usePreventScroll");
function usePopover(props, state) {
    let { triggerRef , popoverRef , isNonModal , isKeyboardDismissDisabled , ...otherProps } = props;
    let { overlayProps , underlayProps  } = (0, _useOverlay.useOverlay)({
        isOpen: state.isOpen,
        onClose: state.close,
        shouldCloseOnBlur: true,
        isDismissable: !isNonModal,
        isKeyboardDismissDisabled
    }, popoverRef);
    let { overlayProps: positionProps , arrowProps , placement  } = (0, _useOverlayPosition.useOverlayPosition)({
        ...otherProps,
        targetRef: triggerRef,
        overlayRef: popoverRef,
        isOpen: state.isOpen,
        onClose: null
    });
    (0, _usePreventScroll.usePreventScroll)({
        isDisabled: isNonModal
    });
    (0, _react.useEffect)(()=>{
        if (state.isOpen && !isNonModal && popoverRef.current) return (0, _ariaHideOutside.ariaHideOutside)([
            popoverRef.current
        ]);
    }, [
        isNonModal,
        state.isOpen,
        popoverRef
    ]);
    return {
        popoverProps: (0, _utils.mergeProps)(overlayProps, positionProps),
        arrowProps,
        underlayProps,
        placement
    };
}

},{"./ariaHideOutside":"elMMk","./useOverlayPosition":"1C46p","@react-aria/utils":"5XGXZ","react":"react","./useOverlay":"2VZnT","./usePreventScroll":"9MZTU","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bQFQM":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a modal component.
 * A modal is an overlay element which blocks interaction with elements outside it.
 */ parcelHelpers.export(exports, "useModalOverlay", ()=>useModalOverlay);
var _ariaHideOutside = require("./ariaHideOutside");
var _utils = require("@react-aria/utils");
var _react = require("react");
var _useOverlay = require("./useOverlay");
var _overlay = require("./Overlay");
var _usePreventScroll = require("./usePreventScroll");
function useModalOverlay(props, state, ref) {
    let { overlayProps , underlayProps  } = (0, _useOverlay.useOverlay)({
        ...props,
        isOpen: state.isOpen,
        onClose: state.close
    }, ref);
    (0, _usePreventScroll.usePreventScroll)({
        isDisabled: !state.isOpen
    });
    (0, _overlay.useOverlayFocusContain)();
    (0, _react.useEffect)(()=>{
        if (state.isOpen) return (0, _ariaHideOutside.ariaHideOutside)([
            ref.current
        ]);
    }, [
        state.isOpen,
        ref
    ]);
    return {
        modalProps: (0, _utils.mergeProps)(overlayProps),
        underlayProps
    };
}

},{"./ariaHideOutside":"elMMk","@react-aria/utils":"5XGXZ","react":"react","./useOverlay":"2VZnT","./Overlay":"7xYsn","./usePreventScroll":"9MZTU","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7xYsn":[function(require,module,exports) {
/*
 * Copyright 2022 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "OverlayContext", ()=>OverlayContext);
/**
 * A container which renders an overlay such as a popover or modal in a portal,
 * and provides a focus scope for the child elements.
 */ parcelHelpers.export(exports, "Overlay", ()=>Overlay);
/** @private */ parcelHelpers.export(exports, "useOverlayFocusContain", ()=>useOverlayFocusContain);
var _focus = require("@react-aria/focus");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactDom = require("react-dom");
var _reactDomDefault = parcelHelpers.interopDefault(_reactDom);
var _ssr = require("@react-aria/ssr");
var _utils = require("@react-aria/utils");
const OverlayContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
function Overlay(props) {
    let isSSR = (0, _ssr.useIsSSR)();
    let { portalContainer =isSSR ? null : document.body , isExiting  } = props;
    let [contain, setContain] = (0, _react.useState)(false);
    let contextValue = (0, _react.useMemo)(()=>({
            contain,
            setContain
        }), [
        contain,
        setContain
    ]);
    if (!portalContainer) return null;
    let contents;
    if (!props.disableFocusManagement) contents = /*#__PURE__*/ (0, _reactDefault.default).createElement(OverlayContext.Provider, {
        value: contextValue
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusScope), {
        restoreFocus: true,
        contain: contain && !isExiting
    }, props.children));
    else contents = /*#__PURE__*/ (0, _reactDefault.default).createElement(OverlayContext.Provider, {
        value: contextValue
    }, props.children);
    return /*#__PURE__*/ (0, _reactDomDefault.default).createPortal(contents, portalContainer);
}
function useOverlayFocusContain() {
    let ctx = (0, _react.useContext)(OverlayContext);
    let setContain = ctx === null || ctx === void 0 ? void 0 : ctx.setContain;
    (0, _utils.useLayoutEffect)(()=>{
        setContain === null || setContain === void 0 ? void 0 : setContain(true);
    }, [
        setContain
    ]);
}

},{"@react-aria/focus":"cRsYs","react":"react","react-dom":"react-dom","@react-aria/ssr":"dEKj5","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fIROb":[function(require,module,exports) {
module.exports["spectrum"] = "spectrum_b37d53";

},{}],"4PqyY":[function(require,module,exports) {
module.exports["spectrum"] = "spectrum_2a241c";
module.exports["spectrum-Body"] = "spectrum-Body_2a241c";
module.exports["spectrum-Body--italic"] = "spectrum-Body--italic_2a241c";

},{}],"d4qIH":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useColorScheme", ()=>useColorScheme);
parcelHelpers.export(exports, "useScale", ()=>useScale);
var _utils = require("@react-spectrum/utils");
function useColorScheme(theme, defaultColorScheme) {
    let matchesDark = (0, _utils.useMediaQuery)("(prefers-color-scheme: dark)");
    let matchesLight = (0, _utils.useMediaQuery)("(prefers-color-scheme: light)");
    // importance OS > default > omitted
    if (theme.dark && matchesDark) return "dark";
    if (theme.light && matchesLight) return "light";
    if (theme.dark && defaultColorScheme === "dark") return "dark";
    if (theme.light && defaultColorScheme === "light") return "light";
    if (!theme.dark) return "light";
    if (!theme.light) return "dark";
    return "light";
}
function useScale(theme) {
    let matchesFine = (0, _utils.useMediaQuery)("(any-pointer: fine)");
    if (matchesFine && theme.medium) return "medium";
    if (theme.large) return "large";
    return "medium";
}

},{"@react-spectrum/utils":"cYYzN","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8ED3R":[function(require,module,exports) {
module.exports = JSON.parse('{"name":"@react-spectrum/provider","version":"3.8.1","description":"Spectrum UI components in React","license":"Apache-2.0","main":"dist/main.js","module":"dist/module.js","exports":{"types":"./dist/types.d.ts","import":"./dist/import.mjs","require":"./dist/main.js"},"types":"dist/types.d.ts","source":"src/index.ts","files":["dist","src"],"sideEffects":["*.css"],"targets":{"main":{"includeNodeModules":["@adobe/spectrum-css-temp"]},"module":{"includeNodeModules":["@adobe/spectrum-css-temp"]}},"repository":{"type":"git","url":"https://github.com/adobe/react-spectrum"},"dependencies":{"@react-aria/i18n":"^3.8.1","@react-aria/overlays":"^3.16.0","@react-aria/utils":"^3.19.0","@react-spectrum/utils":"^3.10.1","@react-types/provider":"^3.6.3","@react-types/shared":"^3.19.0","@swc/helpers":"^0.5.0","clsx":"^1.1.1"},"devDependencies":{"@adobe/spectrum-css-temp":"3.0.0-alpha.1"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"},"publishConfig":{"access":"public"}}');

},{}],"3sHVk":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "UIIcon", ()=>UIIcon);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/icon/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _provider = require("@react-spectrum/provider");
function UIIcon(props) {
    props = (0, _utils.useSlotProps)(props, "icon");
    let { children , "aria-label": ariaLabel , "aria-hidden": ariaHidden , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let provider = (0, _provider.useProvider)();
    let scale = "M";
    if (provider !== null) scale = provider.scale === "large" ? "L" : "M";
    if (!ariaHidden) ariaHidden = undefined;
    return /*#__PURE__*/ (0, _reactDefault.default).cloneElement(children, {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        scale,
        focusable: "false",
        "aria-label": ariaLabel,
        "aria-hidden": ariaLabel ? ariaHidden || undefined : true,
        role: "img",
        className: (0, _utils.classNames)((0, _varsCssDefault.default), children.props.className, "spectrum-Icon", {
            [`spectrum-UIIcon-${children.type["displayName"]}`]: children.type["displayName"]
        }, styleProps.className)
    });
}

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/icon/vars.css":"8Ovmv","@react-spectrum/provider":"aPwML","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6XXcN":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Wrapper component for illustrations. Use this to wrap your svg element for a custom illustration.
 */ parcelHelpers.export(exports, "Illustration", ()=>Illustration);
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _utils1 = require("@react-spectrum/utils");
function Illustration(props) {
    props = (0, _utils1.useSlotProps)(props, "illustration");
    let { children , "aria-label": ariaLabel , "aria-labelledby": ariaLabelledby , "aria-hidden": ariaHidden , ...otherProps } = props;
    let { styleProps  } = (0, _utils1.useStyleProps)(otherProps);
    let hasLabel = ariaLabel || ariaLabelledby;
    if (!ariaHidden) ariaHidden = undefined;
    return /*#__PURE__*/ (0, _reactDefault.default).cloneElement(children, {
        ...(0, _utils.filterDOMProps)(otherProps),
        ...styleProps,
        focusable: "false",
        "aria-label": ariaLabel,
        "aria-labelledby": ariaLabelledby,
        "aria-hidden": ariaHidden,
        role: hasLabel ? "img" : undefined
    });
}

},{"@react-aria/utils":"5XGXZ","react":"react","@react-spectrum/utils":"cYYzN","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"kFpde":[function(require,module,exports) {
module.exports["spectrum-Button"] = "spectrum-Button_e2d99e";
module.exports["spectrum-ActionButton"] = "spectrum-ActionButton_e2d99e";
module.exports["spectrum-LogicButton"] = "spectrum-LogicButton_e2d99e";
module.exports["spectrum-FieldButton"] = "spectrum-FieldButton_e2d99e";
module.exports["spectrum-ClearButton"] = "spectrum-ClearButton_e2d99e";
module.exports["focus-ring"] = "focus-ring_e2d99e";
module.exports["spectrum-FieldButton--quiet"] = "spectrum-FieldButton--quiet_e2d99e";
module.exports["spectrum-Icon"] = "spectrum-Icon_e2d99e";
module.exports["spectrum-Button-label"] = "spectrum-Button-label_e2d99e";
module.exports["spectrum-Button--iconOnly"] = "spectrum-Button--iconOnly_e2d99e";
module.exports["spectrum-ActionButton-label"] = "spectrum-ActionButton-label_e2d99e";
module.exports["spectrum-ActionButton-hold"] = "spectrum-ActionButton-hold_e2d99e";
module.exports["spectrum-ActionButton--quiet"] = "spectrum-ActionButton--quiet_e2d99e";
module.exports["is-disabled"] = "is-disabled_e2d99e";
module.exports["is-open"] = "is-open_e2d99e";
module.exports["spectrum-ClearButton--small"] = "spectrum-ClearButton--small_e2d99e";
module.exports["is-active"] = "is-active_e2d99e";
module.exports["spectrum-ClearButton--overBackground"] = "spectrum-ClearButton--overBackground_e2d99e";
module.exports["is-selected"] = "is-selected_e2d99e";
module.exports["spectrum-ActionButton--emphasized"] = "spectrum-ActionButton--emphasized_e2d99e";
module.exports["spectrum-ActionButton--staticWhite"] = "spectrum-ActionButton--staticWhite_e2d99e";
module.exports["spectrum-ActionButton--staticBlack"] = "spectrum-ActionButton--staticBlack_e2d99e";
module.exports["spectrum-ActionButton--staticColor"] = "spectrum-ActionButton--staticColor_e2d99e";
module.exports["spectrum-LogicButton--and"] = "spectrum-LogicButton--and_e2d99e";
module.exports["spectrum-LogicButton--or"] = "spectrum-LogicButton--or_e2d99e";
module.exports["is-focused"] = "is-focused_e2d99e";
module.exports["is-placeholder"] = "is-placeholder_e2d99e";
module.exports["spectrum-FieldButton--invalid"] = "spectrum-FieldButton--invalid_e2d99e";
module.exports["spectrum-Button--overBackground"] = "spectrum-Button--overBackground_e2d99e";

},{}],"5ySa2":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Text", ()=>(0, _text.Text));
parcelHelpers.export(exports, "Heading", ()=>(0, _heading.Heading));
parcelHelpers.export(exports, "Keyboard", ()=>(0, _keyboard.Keyboard));
var _text = require("./Text");
var _heading = require("./Heading");
var _keyboard = require("./Keyboard");

},{"./Text":"bg4X1","./Heading":false,"./Keyboard":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bg4X1":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Text", ()=>_Text);
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _utils1 = require("@react-spectrum/utils");
function Text(props, ref) {
    props = (0, _utils1.useSlotProps)(props, "text");
    let { children , ...otherProps } = props;
    let { styleProps  } = (0, _utils1.useStyleProps)(otherProps);
    let domRef = (0, _utils1.useDOMRef)(ref);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
        ...(0, _utils.filterDOMProps)(otherProps),
        ...styleProps,
        ref: domRef
    }, children);
}
/**
 * Text represents text with no specific semantic meaning.
 */ const _Text = /*#__PURE__*/ (0, _react.forwardRef)(Text);

},{"@react-aria/utils":"5XGXZ","react":"react","@react-spectrum/utils":"cYYzN","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9DUfq":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useButton", ()=>(0, _useButton.useButton));
parcelHelpers.export(exports, "useToggleButton", ()=>(0, _useToggleButton.useToggleButton));
var _useButton = require("./useButton");
var _useToggleButton = require("./useToggleButton");

},{"./useButton":"b91MZ","./useToggleButton":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"b91MZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a button component. Handles mouse, keyboard, and touch interactions,
 * focus behavior, and ARIA props for both native button elements and custom element types.
 * @param props - Props to be applied to the button.
 * @param ref - A ref to a DOM element for the button.
 */ parcelHelpers.export(exports, "useButton", ()=>useButton);
var _utils = require("@react-aria/utils");
var _focus = require("@react-aria/focus");
var _interactions = require("@react-aria/interactions");
function useButton(props, ref) {
    let { elementType ="button" , isDisabled , onPress , onPressStart , onPressEnd , onPressChange , // @ts-ignore - undocumented
    preventFocusOnPress , // @ts-ignore - undocumented
    allowFocusWhenDisabled , // @ts-ignore
    onClick: deprecatedOnClick , href , target , rel , type ="button"  } = props;
    let additionalProps;
    if (elementType === "button") additionalProps = {
        type,
        disabled: isDisabled
    };
    else additionalProps = {
        role: "button",
        tabIndex: isDisabled ? undefined : 0,
        href: elementType === "a" && isDisabled ? undefined : href,
        target: elementType === "a" ? target : undefined,
        type: elementType === "input" ? type : undefined,
        disabled: elementType === "input" ? isDisabled : undefined,
        "aria-disabled": !isDisabled || elementType === "input" ? undefined : isDisabled,
        rel: elementType === "a" ? rel : undefined
    };
    let { pressProps , isPressed  } = (0, _interactions.usePress)({
        onPressStart,
        onPressEnd,
        onPressChange,
        onPress,
        isDisabled,
        preventFocusOnPress,
        ref
    });
    let { focusableProps  } = (0, _focus.useFocusable)(props, ref);
    if (allowFocusWhenDisabled) focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;
    let buttonProps = (0, _utils.mergeProps)(focusableProps, pressProps, (0, _utils.filterDOMProps)(props, {
        labelable: true
    }));
    return {
        isPressed,
        buttonProps: (0, _utils.mergeProps)(additionalProps, buttonProps, {
            "aria-haspopup": props["aria-haspopup"],
            "aria-expanded": props["aria-expanded"],
            "aria-controls": props["aria-controls"],
            "aria-pressed": props["aria-pressed"],
            onClick: (e)=>{
                if (deprecatedOnClick) {
                    deprecatedOnClick(e);
                    console.warn("onClick is deprecated, please use onPress");
                }
            }
        })
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/focus":"cRsYs","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5dJSB":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ClearButton", ()=>_ClearButton);
var _utils = require("@react-spectrum/utils");
var _crossSmall = require("@spectrum-icons/ui/CrossSmall");
var _crossSmallDefault = parcelHelpers.interopDefault(_crossSmall);
var _focus = require("@react-aria/focus");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/button/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _button = require("@react-aria/button");
var _interactions = require("@react-aria/interactions");
function ClearButton(props, ref) {
    let { children =/*#__PURE__*/ (0, _reactDefault.default).createElement((0, _crossSmallDefault.default), {
        UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Icon"]
    }) , focusClassName , variant , autoFocus , isDisabled , preventFocus , elementType =preventFocus ? "div" : "button" , ...otherProps } = props;
    let domRef = (0, _utils.useFocusableRef)(ref);
    let { buttonProps , isPressed  } = (0, _button.useButton)({
        ...props,
        elementType
    }, domRef);
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({
        isDisabled
    });
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    // For cases like the clear button in a search field, remove the tabIndex so
    // iOS 14 with VoiceOver doesn't focus the button and hide the keyboard when
    // moving the cursor over the clear button.
    if (preventFocus) delete buttonProps.tabIndex;
    let ElementType = elementType;
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault.default), "focus-ring", focusClassName),
        autoFocus: autoFocus
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(ElementType, {
        ...styleProps,
        ...(0, _utils1.mergeProps)(buttonProps, hoverProps),
        ref: domRef,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ClearButton", {
            [`spectrum-ClearButton--${variant}`]: variant,
            "is-disabled": isDisabled,
            "is-active": isPressed,
            "is-hovered": isHovered
        }, styleProps.className)
    }, children));
}
let _ClearButton = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(ClearButton);

},{"@react-spectrum/utils":"cYYzN","@spectrum-icons/ui/CrossSmall":"amzIY","@react-aria/focus":"cRsYs","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/button/vars.css":"kFpde","@react-aria/button":"9DUfq","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"amzIY":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("6a8efd9c7f0f92f6");
exports.__esModule = true;
exports.default = CrossSmall;
var _CrossSmall = require("5ad6c21ad629f717");
var _icon = require("ea2f47af212e5d7e");
var _react = _interopRequireDefault(require("18647f52e30ecd25"));
function CrossSmall(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_CrossSmall.CrossSmall, null));
}

},{"6a8efd9c7f0f92f6":"aSVf3","5ad6c21ad629f717":"7PTJz","ea2f47af212e5d7e":"fTRUu","18647f52e30ecd25":"react"}],"7PTJz":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.CrossSmall = CrossSmall;
var _react = _interopRequireDefault(require("a3592f018cc1ad91"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function CrossSmall(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 1 0-.884-.884L5 4.116 1.567.683a.625.625 0 1 0-.884.884C.83 1.713 2.77 3.657 4.116 5L.683 8.433a.625.625 0 1 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 1 0-.884-.884L4 3.116 1.567.683a.625.625 0 1 0-.884.884L3.116 4 .683 6.433a.625.625 0 1 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z"
    }));
}
CrossSmall.displayName = "CrossSmall";

},{"a3592f018cc1ad91":"react"}],"bQmn8":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "BreadcrumbItem", ()=>BreadcrumbItem);
var _chevronRightSmall = require("@spectrum-icons/ui/ChevronRightSmall");
var _chevronRightSmallDefault = parcelHelpers.interopDefault(_chevronRightSmall);
var _utils = require("@react-spectrum/utils");
var _focus = require("@react-aria/focus");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/breadcrumb/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _breadcrumbs = require("@react-aria/breadcrumbs");
var _interactions = require("@react-aria/interactions");
var _i18N = require("@react-aria/i18n");
function BreadcrumbItem(props) {
    let { children , isCurrent , isDisabled  } = props;
    let { direction  } = (0, _i18N.useLocale)();
    let ref = (0, _react.useRef)(null);
    let { itemProps  } = (0, _breadcrumbs.useBreadcrumbItem)({
        ...props,
        elementType: typeof children === "string" ? "span" : "a"
    }, ref);
    let { hoverProps , isHovered  } = (0, _interactions.useHover)(props);
    let element = /*#__PURE__*/ (0, _reactDefault.default).cloneElement((0, _utils.getWrappedElement)(children), {
        ...(0, _utils1.mergeProps)(itemProps, hoverProps),
        ref,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Breadcrumbs-itemLink", {
            "is-disabled": !isCurrent && isDisabled,
            "is-hovered": isHovered
        })
    });
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _react.Fragment), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault.default), "focus-ring")
    }, element), isCurrent === false && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _chevronRightSmallDefault.default), {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Breadcrumbs-itemSeparator", {
            "is-reversed": direction === "rtl"
        })
    }));
}

},{"@spectrum-icons/ui/ChevronRightSmall":"cvPR1","@react-spectrum/utils":"cYYzN","@react-aria/focus":"cRsYs","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/breadcrumb/vars.css":"cOF6f","@react-aria/breadcrumbs":"7hSlL","@react-aria/interactions":"3eipm","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"cvPR1":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("5dee168af8bfaa03");
exports.__esModule = true;
exports.default = ChevronRightSmall;
var _ChevronRightSmall = require("a76eff0741db443d");
var _icon = require("fddb4ed6bd6dafb0");
var _react = _interopRequireDefault(require("59690449bd9ec541"));
function ChevronRightSmall(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_ChevronRightSmall.ChevronRightSmall, null));
}

},{"5dee168af8bfaa03":"aSVf3","a76eff0741db443d":"aqNiF","fddb4ed6bd6dafb0":"fTRUu","59690449bd9ec541":"react"}],"aqNiF":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.ChevronRightSmall = ChevronRightSmall;
var _react = _interopRequireDefault(require("1ae4a13d781495f2"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function ChevronRightSmall(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M7 5a.747.747 0 0 0-.22-.53L2.54.23a.75.75 0 1 0-1.06 1.06L5.19 5 1.48 8.71a.75.75 0 1 0 1.06 1.06l4.24-4.24A.747.747 0 0 0 7 5z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M5.5 4a.747.747 0 0 0-.22-.53C4.703 2.862 3.242 1.5 2.04.23A.75.75 0 1 0 .98 1.29L3.69 4 .98 6.71a.75.75 0 1 0 1.06 1.06l3.24-3.24A.747.747 0 0 0 5.5 4z"
    }));
}
ChevronRightSmall.displayName = "ChevronRightSmall";

},{"1ae4a13d781495f2":"react"}],"cOF6f":[function(require,module,exports) {
module.exports["spectrum-Breadcrumbs"] = "spectrum-Breadcrumbs_3fe6e8";
module.exports["spectrum-Breadcrumbs-itemSeparator"] = "spectrum-Breadcrumbs-itemSeparator_3fe6e8";
module.exports["is-reversed"] = "is-reversed_3fe6e8";
module.exports["spectrum-Breadcrumbs-item"] = "spectrum-Breadcrumbs-item_3fe6e8";
module.exports["spectrum-ActionButton"] = "spectrum-ActionButton_3fe6e8";
module.exports["spectrum-Breadcrumbs-itemLink"] = "spectrum-Breadcrumbs-itemLink_3fe6e8";
module.exports["focus-ring"] = "focus-ring_3fe6e8";
module.exports["is-dragged"] = "is-dragged_3fe6e8";
module.exports["spectrum-Breadcrumbs--small"] = "spectrum-Breadcrumbs--small_3fe6e8";
module.exports["spectrum-Breadcrumbs--medium"] = "spectrum-Breadcrumbs--medium_3fe6e8";
module.exports["spectrum-Breadcrumbs--multiline"] = "spectrum-Breadcrumbs--multiline_3fe6e8";
module.exports["spectrum-Heading--pageTitle"] = "spectrum-Heading--pageTitle_3fe6e8";
module.exports["is-disabled"] = "is-disabled_3fe6e8";
module.exports["is-selected"] = "is-selected_3fe6e8";
module.exports["spectrum-Breadcrumb"] = "spectrum-Breadcrumb_3fe6e8";

},{}],"7hSlL":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useBreadcrumbItem", ()=>(0, _useBreadcrumbItem.useBreadcrumbItem));
parcelHelpers.export(exports, "useBreadcrumbs", ()=>(0, _useBreadcrumbs.useBreadcrumbs));
var _useBreadcrumbItem = require("./useBreadcrumbItem");
var _useBreadcrumbs = require("./useBreadcrumbs");

},{"./useBreadcrumbItem":"6LiTT","./useBreadcrumbs":"gXaAG","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6LiTT":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for an in a breadcrumbs component.
 * See `useBreadcrumbs` for details about breadcrumbs.
 */ parcelHelpers.export(exports, "useBreadcrumbItem", ()=>useBreadcrumbItem);
var _link = require("@react-aria/link");
function useBreadcrumbItem(props, ref) {
    let { isCurrent , isDisabled , "aria-current": ariaCurrent , elementType ="a" , ...otherProps } = props;
    let { linkProps  } = (0, _link.useLink)({
        isDisabled: isDisabled || isCurrent,
        elementType,
        ...otherProps
    }, ref);
    let isHeading = /^h[1-6]$/.test(elementType);
    let itemProps = {};
    if (!isHeading) itemProps = linkProps;
    if (isCurrent) {
        itemProps["aria-current"] = ariaCurrent || "page";
        // isCurrent sets isDisabled === true for the current item,
        // so we have to restore the tabIndex in order to support autoFocus.
        itemProps.tabIndex = props.autoFocus ? -1 : undefined;
    }
    return {
        itemProps: {
            "aria-disabled": isDisabled,
            ...itemProps
        }
    };
}

},{"@react-aria/link":"MBQFf","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"MBQFf":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useLink", ()=>(0, _useLink.useLink));
var _useLink = require("./useLink");

},{"./useLink":"7N5kp","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7N5kp":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a link component.
 * A link allows a user to navigate to another page or resource within a web page
 * or application.
 */ parcelHelpers.export(exports, "useLink", ()=>useLink);
var _utils = require("@react-aria/utils");
var _focus = require("@react-aria/focus");
var _interactions = require("@react-aria/interactions");
function useLink(props, ref) {
    let { elementType ="a" , onPress , onPressStart , onPressEnd , // @ts-ignore
    onClick: deprecatedOnClick , isDisabled , ...otherProps } = props;
    let linkProps = {};
    if (elementType !== "a") linkProps = {
        role: "link",
        tabIndex: !isDisabled ? 0 : undefined
    };
    let { focusableProps  } = (0, _focus.useFocusable)(props, ref);
    let { pressProps , isPressed  } = (0, _interactions.usePress)({
        onPress,
        onPressStart,
        onPressEnd,
        isDisabled,
        ref
    });
    let domProps = (0, _utils.filterDOMProps)(otherProps, {
        labelable: true
    });
    let interactionHandlers = (0, _utils.mergeProps)(focusableProps, pressProps);
    return {
        isPressed,
        linkProps: (0, _utils.mergeProps)(domProps, {
            ...interactionHandlers,
            ...linkProps,
            "aria-disabled": isDisabled || undefined,
            "aria-current": props["aria-current"],
            onClick: (e)=>{
                var _pressProps_onClick;
                (_pressProps_onClick = pressProps.onClick) === null || _pressProps_onClick === void 0 ? void 0 : _pressProps_onClick.call(pressProps, e);
                if (deprecatedOnClick) {
                    deprecatedOnClick(e);
                    console.warn("onClick is deprecated, please use onPress");
                }
            }
        })
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/focus":"cRsYs","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gXaAG":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a breadcrumbs component.
 * Breadcrumbs display a hierarchy of links to the current page or resource in an application.
 */ parcelHelpers.export(exports, "useBreadcrumbs", ()=>useBreadcrumbs);
var _utils = require("@react-aria/utils");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _i18N = require("@react-aria/i18n");
function useBreadcrumbs(props) {
    let { "aria-label": ariaLabel , ...otherProps } = props;
    let strings = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    return {
        navProps: {
            ...(0, _utils.filterDOMProps)(otherProps, {
                labelable: true
            }),
            "aria-label": ariaLabel || strings.format("breadcrumbs")
        }
    };
}

},{"@react-aria/utils":"5XGXZ","../intl/*.json":"abBPO","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"abBPO":[function(require,module,exports) {
const _temp0 = require("6a38761146b6fe2e");
const _temp1 = require("f6b69d03e449ab21");
const _temp2 = require("af85e2bc3e34c1d6");
const _temp3 = require("5e32c2de9204e278");
const _temp4 = require("5b11147d5bfedd72");
const _temp5 = require("7c3146921ce52309");
const _temp6 = require("1e79bd5d961c6452");
const _temp7 = require("49e50a05c7963e29");
const _temp8 = require("1373b5c9a222813d");
const _temp9 = require("e11ca0be0ce69fc");
const _temp10 = require("a6f34b0d8c8ad951");
const _temp11 = require("4db20e48e4925567");
const _temp12 = require("b4f2b3bdc84b0026");
const _temp13 = require("18d72bc7e2eacf86");
const _temp14 = require("dce25e6362366691");
const _temp15 = require("23f1fd9676ab8b95");
const _temp16 = require("fa9b35c3cfa226e4");
const _temp17 = require("682acae4c1705d87");
const _temp18 = require("fdce9782f6e0c241");
const _temp19 = require("a70ab25a76745459");
const _temp20 = require("fc9d3bf6a17a9db2");
const _temp21 = require("ce90a8e9c8700853");
const _temp22 = require("2d2a634e6fdc7c2f");
const _temp23 = require("ceb2520a86f131b7");
const _temp24 = require("d9dd24235c7defee");
const _temp25 = require("a6338e819dedcced");
const _temp26 = require("6677c20ef8ad4e3a");
const _temp27 = require("5ed83f537c396fb5");
const _temp28 = require("b46950c97094556d");
const _temp29 = require("6957ceb9bd94292e");
const _temp30 = require("b71d4e4a6b126cb6");
const _temp31 = require("d0e5289e4e461332");
const _temp32 = require("c454a88bb5ffd503");
const _temp33 = require("99f443041faa1e37");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"6a38761146b6fe2e":"2e0fo","f6b69d03e449ab21":"aX1ss","af85e2bc3e34c1d6":"5VIhM","5e32c2de9204e278":"2fxZC","5b11147d5bfedd72":"3cRhQ","7c3146921ce52309":"4Nz56","1e79bd5d961c6452":"aUkdw","49e50a05c7963e29":"gNuNL","1373b5c9a222813d":"efhzE","e11ca0be0ce69fc":"coOuH","a6f34b0d8c8ad951":"hjgNc","4db20e48e4925567":"53nqp","b4f2b3bdc84b0026":"gbHWf","18d72bc7e2eacf86":"crXOc","dce25e6362366691":"fnMDf","23f1fd9676ab8b95":"d8q6j","fa9b35c3cfa226e4":"ihtfP","682acae4c1705d87":"dlgXC","fdce9782f6e0c241":"4kgMg","a70ab25a76745459":"9z41S","fc9d3bf6a17a9db2":"kn7tZ","ce90a8e9c8700853":"2l1RS","2d2a634e6fdc7c2f":"c9xyU","ceb2520a86f131b7":"397Hw","d9dd24235c7defee":"4oQfr","a6338e819dedcced":"ZNFNX","6677c20ef8ad4e3a":"dOEWr","5ed83f537c396fb5":"c4eO2","b46950c97094556d":"bcDfJ","6957ceb9bd94292e":"1qUQ6","b71d4e4a6b126cb6":"lpaxx","d0e5289e4e461332":"70xuz","c454a88bb5ffd503":"aHoV5","99f443041faa1e37":"4HxeZ"}],"2e0fo":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `عناصر الواجهة`
};

},{}],"aX1ss":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Трохи хляб`
};

},{}],"5VIhM":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Popis cesty`
};

},{}],"2fxZC":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Brødkrummer`
};

},{}],"3cRhQ":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Breadcrumbs`
};

},{}],"4Nz56":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Πλοηγήσεις breadcrumb`
};

},{}],"aUkdw":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Breadcrumbs`
};

},{}],"gNuNL":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Migas de pan`
};

},{}],"efhzE":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Lingiread`
};

},{}],"coOuH":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Navigointilinkit`
};

},{}],"hjgNc":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Chemin de navigation`
};

},{}],"53nqp":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `שבילי ניווט`
};

},{}],"gbHWf":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Navigacijski putovi`
};

},{}],"crXOc":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Morzsamenü`
};

},{}],"fnMDf":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Breadcrumb`
};

},{}],"d8q6j":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `パンくずリスト`
};

},{}],"ihtfP":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `탐색 표시`
};

},{}],"dlgXC":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Naršymo kelias`
};

},{}],"4kgMg":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Atpakaļceļi`
};

},{}],"9z41S":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Navigasjonsstier`
};

},{}],"kn7tZ":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Broodkruimels`
};

},{}],"2l1RS":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Struktura nawigacyjna`
};

},{}],"c9xyU":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Caminho detalhado`
};

},{}],"397Hw":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Categorias`
};

},{}],"4oQfr":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Miez de pâine`
};

},{}],"ZNFNX":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Навигация`
};

},{}],"dOEWr":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Navigačné prvky Breadcrumbs`
};

},{}],"c4eO2":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Drobtine`
};

},{}],"bcDfJ":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Putanje navigacije`
};

},{}],"1qUQ6":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Sökvägar`
};

},{}],"lpaxx":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `İçerik haritaları`
};

},{}],"70xuz":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `Навігаційна стежка`
};

},{}],"aHoV5":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `导航栏`
};

},{}],"4HxeZ":[function(require,module,exports) {
module.exports = {
    "breadcrumbs": `導覽列`
};

},{}],"erEAo":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("5f46f6c5a3020790");
exports.__esModule = true;
exports.default = FolderBreadcrumb;
var _FolderBreadcrumb = require("517b1a5bc9da1543");
var _icon = require("eb853c3cdb3524cc");
var _react = _interopRequireDefault(require("ab7f31f63fbb7b36"));
function FolderBreadcrumb(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_FolderBreadcrumb.FolderBreadcrumb, null));
}

},{"5f46f6c5a3020790":"aSVf3","517b1a5bc9da1543":"SQXJk","eb853c3cdb3524cc":"fTRUu","ab7f31f63fbb7b36":"react"}],"SQXJk":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.FolderBreadcrumb = FolderBreadcrumb;
var _react = _interopRequireDefault(require("80c55bc047ed326e"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function FolderBreadcrumb(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M19.5 6l-9.166.004-1.668-1.7A.998.998 0 0 0 7.946 4H3a1 1 0 0 0-1 1v13a.5.5 0 0 0 .5.5h17a.5.5 0 0 0 .5-.5V6.5a.5.5 0 0 0-.5-.5zm-16-.5h4.237l1.964 2H3.5zm11.544 6.044l-3.5 3.5a.77.77 0 0 1-1.088 0l-3.5-3.5a.77.77 0 0 1 1.088-1.088L11 13.41l2.956-2.955a.77.77 0 0 1 1.088 1.088z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M16.5 4l-7.166.004-1.652-1.7A1 1 0 0 0 6.965 2H2a1 1 0 0 0-1 1v11.5a.5.5 0 0 0 .5.5h15a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5zM2 3h4.965l1.943 2H2zm10.354 5.854l-3 3a.5.5 0 0 1-.707 0l-3-3a.5.5 0 0 1 .707-.707L9 10.793l2.646-2.646a.5.5 0 0 1 .707.707z"
    }));
}
FolderBreadcrumb.displayName = "FolderBreadcrumb";

},{"80c55bc047ed326e":"react"}],"it13J":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "MenuTrigger", ()=>(0, _menuTrigger.MenuTrigger));
parcelHelpers.export(exports, "Menu", ()=>(0, _menu.Menu));
parcelHelpers.export(exports, "ActionMenu", ()=>(0, _actionMenu.ActionMenu));
parcelHelpers.export(exports, "ContextualHelpTrigger", ()=>(0, _contextualHelpTrigger.ContextualHelpTrigger));
parcelHelpers.export(exports, "Item", ()=>(0, _collections.Item));
parcelHelpers.export(exports, "Section", ()=>(0, _collections.Section));
var _menuTrigger = require("./MenuTrigger");
var _menu = require("./Menu");
var _actionMenu = require("./ActionMenu");
var _contextualHelpTrigger = require("./ContextualHelpTrigger");
var _collections = require("@react-stately/collections");

},{"./MenuTrigger":"J94eR","./Menu":"iA2YC","./ActionMenu":false,"./ContextualHelpTrigger":false,"@react-stately/collections":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"J94eR":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "MenuTrigger", ()=>_MenuTrigger);
var _utils = require("@react-spectrum/utils");
var _context = require("./context");
var _overlays = require("@react-spectrum/overlays");
var _interactions = require("@react-aria/interactions");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _menu = require("@react-aria/menu");
var _menu1 = require("@react-stately/menu");
function MenuTrigger(props, ref) {
    let triggerRef = (0, _react.useRef)();
    let domRef = (0, _utils.useDOMRef)(ref);
    let menuTriggerRef = domRef || triggerRef;
    let menuRef = (0, _react.useRef)();
    let { children , align ="start" , shouldFlip =true , direction ="bottom" , closeOnSelect , trigger ="press"  } = props;
    let [menuTrigger, menu] = (0, _reactDefault.default).Children.toArray(children);
    let state = (0, _menu1.useMenuTriggerState)(props);
    let { menuTriggerProps , menuProps  } = (0, _menu.useMenuTrigger)({
        trigger
    }, state, menuTriggerRef);
    let initialPlacement;
    switch(direction){
        case "left":
        case "right":
        case "start":
        case "end":
            initialPlacement = `${direction} ${align === "end" ? "bottom" : "top"}`;
            break;
        case "bottom":
        case "top":
        default:
            initialPlacement = `${direction} ${align}`;
    }
    let isMobile = (0, _utils.useIsMobileDevice)();
    let menuContext = {
        ...menuProps,
        state,
        ref: menuRef,
        onClose: state.close,
        closeOnSelect,
        autoFocus: state.focusStrategy || true,
        UNSAFE_style: isMobile ? {
            width: "100%",
            maxHeight: "inherit"
        } : undefined,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), {
            "spectrum-Menu-popover": !isMobile
        })
    };
    // On small screen devices, the menu is rendered in a tray, otherwise a popover.
    let overlay;
    if (isMobile) overlay = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Tray), {
        state: state
    }, menu);
    else overlay = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Popover), {
        UNSAFE_style: {
            clipPath: "unset"
        },
        state: state,
        triggerRef: menuTriggerRef,
        scrollRef: menuRef,
        placement: initialPlacement,
        hideArrow: true,
        shouldFlip: shouldFlip
    }, menu);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _react.Fragment), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.SlotProvider), {
        slots: {
            actionButton: {
                holdAffordance: trigger === "longPress"
            }
        }
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _interactions.PressResponder), {
        ...menuTriggerProps,
        ref: menuTriggerRef,
        isPressed: state.isOpen
    }, menuTrigger)), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.MenuContext).Provider, {
        value: menuContext
    }, overlay));
}
/**
 * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,
 * linking the Menu's open state with the trigger's press state.
 */ let _MenuTrigger = /*#__PURE__*/ (0, _react.forwardRef)(MenuTrigger);

},{"@react-spectrum/utils":"cYYzN","./context":"ahvzL","@react-spectrum/overlays":"gI5f4","@react-aria/interactions":"3eipm","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-aria/menu":"6OCiJ","@react-stately/menu":"fFYSZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ahvzL":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "MenuContext", ()=>MenuContext);
parcelHelpers.export(exports, "useMenuContext", ()=>useMenuContext);
parcelHelpers.export(exports, "MenuDialogContext", ()=>MenuDialogContext);
parcelHelpers.export(exports, "useMenuDialogContext", ()=>useMenuDialogContext);
parcelHelpers.export(exports, "MenuStateContext", ()=>MenuStateContext);
parcelHelpers.export(exports, "useMenuStateContext", ()=>useMenuStateContext);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const MenuContext = (0, _reactDefault.default).createContext({});
function useMenuContext() {
    return (0, _react.useContext)(MenuContext);
}
const MenuDialogContext = (0, _reactDefault.default).createContext(undefined);
function useMenuDialogContext() {
    return (0, _react.useContext)(MenuDialogContext);
}
const MenuStateContext = (0, _reactDefault.default).createContext({});
function useMenuStateContext() {
    return (0, _react.useContext)(MenuStateContext);
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gI5f4":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Overlay", ()=>(0, _overlay.Overlay));
parcelHelpers.export(exports, "Popover", ()=>(0, _popover.Popover));
parcelHelpers.export(exports, "Modal", ()=>(0, _modal.Modal));
parcelHelpers.export(exports, "Tray", ()=>(0, _tray.Tray));
parcelHelpers.export(exports, "OpenTransition", ()=>(0, _openTransition.OpenTransition));
var _overlay = require("./Overlay");
var _popover = require("./Popover");
var _modal = require("./Modal");
var _tray = require("./Tray");
var _openTransition = require("./OpenTransition");

},{"./Overlay":false,"./Popover":"ateve","./Modal":"38CvO","./Tray":"b63V0","./OpenTransition":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9tLKe":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Overlay", ()=>_Overlay);
var _openTransition = require("./OpenTransition");
var _provider = require("@react-spectrum/provider");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _overlays = require("@react-aria/overlays");
function Overlay(props, ref) {
    let { children , isOpen , disableFocusManagement , container , onEnter , onEntering , onEntered , onExit , onExiting , onExited , nodeRef  } = props;
    let [exited, setExited] = (0, _react.useState)(!isOpen);
    let handleEntered = (0, _react.useCallback)(()=>{
        setExited(false);
        if (onEntered) onEntered();
    }, [
        onEntered
    ]);
    let handleExited = (0, _react.useCallback)(()=>{
        setExited(true);
        if (onExited) onExited();
    }, [
        onExited
    ]);
    // Don't un-render the overlay while it's transitioning out.
    let mountOverlay = isOpen || !exited;
    if (!mountOverlay) // Don't bother showing anything if we don't have to.
    return null;
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Overlay), {
        portalContainer: container,
        disableFocusManagement: disableFocusManagement,
        isExiting: !isOpen
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _provider.Provider), {
        ref: ref,
        UNSAFE_style: {
            background: "transparent",
            isolation: "isolate"
        },
        isDisabled: false
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _openTransition.OpenTransition), {
        in: isOpen,
        appear: true,
        onExit: onExit,
        onExiting: onExiting,
        onExited: handleExited,
        onEnter: onEnter,
        onEntering: onEntering,
        onEntered: handleEntered,
        nodeRef: nodeRef
    }, children)));
}
let _Overlay = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Overlay);

},{"./OpenTransition":"hNS8B","@react-spectrum/provider":"aPwML","react":"react","@react-aria/overlays":"6PUL4","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hNS8B":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Timeout issues adding css animations to enter may be related to
 * https://github.com/reactjs/react-transition-group/issues/189 or
 * https://github.com/reactjs/react-transition-group/issues/22
 * my VM isn't good enough to debug accurately and get a better answer.
 *
 * As a result, use enter 0 so that is-open is applied once entered
 * it doesn't matter if we know when the css-animation is done on entering
 * for exiting though, give time for the css-animation to play
 * before removing from the DOM
 * **note** hitting esc bypasses exit animation for anyone testing.
 */ parcelHelpers.export(exports, "OpenTransition", ()=>OpenTransition);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactTransitionGroup = require("react-transition-group");
const OPEN_STATES = {
    entering: false,
    entered: true
};
function OpenTransition(props) {
    var child;
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactTransitionGroup.Transition), {
        timeout: {
            enter: 0,
            exit: 350
        },
        ...props
    }, (state)=>(0, _reactDefault.default).Children.map(props.children, (child)=>child && /*#__PURE__*/ (0, _reactDefault.default).cloneElement(child, {
                isOpen: !!OPEN_STATES[state]
            })));
}

},{"react":"react","react-transition-group":"hU5mx","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hU5mx":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "CSSTransition", ()=>(0, _csstransitionDefault.default));
parcelHelpers.export(exports, "ReplaceTransition", ()=>(0, _replaceTransitionDefault.default));
parcelHelpers.export(exports, "SwitchTransition", ()=>(0, _switchTransitionDefault.default));
parcelHelpers.export(exports, "TransitionGroup", ()=>(0, _transitionGroupDefault.default));
parcelHelpers.export(exports, "Transition", ()=>(0, _transitionDefault.default));
parcelHelpers.export(exports, "config", ()=>(0, _configDefault.default));
var _csstransition = require("./CSSTransition");
var _csstransitionDefault = parcelHelpers.interopDefault(_csstransition);
var _replaceTransition = require("./ReplaceTransition");
var _replaceTransitionDefault = parcelHelpers.interopDefault(_replaceTransition);
var _switchTransition = require("./SwitchTransition");
var _switchTransitionDefault = parcelHelpers.interopDefault(_switchTransition);
var _transitionGroup = require("./TransitionGroup");
var _transitionGroupDefault = parcelHelpers.interopDefault(_transitionGroup);
var _transition = require("./Transition");
var _transitionDefault = parcelHelpers.interopDefault(_transition);
var _config = require("./config");
var _configDefault = parcelHelpers.interopDefault(_config);

},{"./CSSTransition":false,"./ReplaceTransition":false,"./SwitchTransition":false,"./TransitionGroup":false,"./Transition":"6MEps","./config":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6MEps":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "UNMOUNTED", ()=>UNMOUNTED);
parcelHelpers.export(exports, "EXITED", ()=>EXITED);
parcelHelpers.export(exports, "ENTERING", ()=>ENTERING);
parcelHelpers.export(exports, "ENTERED", ()=>ENTERED);
parcelHelpers.export(exports, "EXITING", ()=>EXITING);
var _objectWithoutPropertiesLoose = require("@babel/runtime/helpers/esm/objectWithoutPropertiesLoose");
var _objectWithoutPropertiesLooseDefault = parcelHelpers.interopDefault(_objectWithoutPropertiesLoose);
var _inheritsLoose = require("@babel/runtime/helpers/esm/inheritsLoose");
var _inheritsLooseDefault = parcelHelpers.interopDefault(_inheritsLoose);
var _propTypes = require("prop-types");
var _propTypesDefault = parcelHelpers.interopDefault(_propTypes);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactDom = require("react-dom");
var _reactDomDefault = parcelHelpers.interopDefault(_reactDom);
var _config = require("./config");
var _configDefault = parcelHelpers.interopDefault(_config);
var _propTypes1 = require("./utils/PropTypes");
var _transitionGroupContext = require("./TransitionGroupContext");
var _transitionGroupContextDefault = parcelHelpers.interopDefault(_transitionGroupContext);
var _reflow = require("./utils/reflow");
var UNMOUNTED = "unmounted";
var EXITED = "exited";
var ENTERING = "entering";
var ENTERED = "entered";
var EXITING = "exiting";
/**
 * The Transition component lets you describe a transition from one component
 * state to another _over time_ with a simple declarative API. Most commonly
 * it's used to animate the mounting and unmounting of a component, but can also
 * be used to describe in-place transition states as well.
 *
 * ---
 *
 * **Note**: `Transition` is a platform-agnostic base component. If you're using
 * transitions in CSS, you'll probably want to use
 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
 * instead. It inherits all the features of `Transition`, but contains
 * additional features necessary to play nice with CSS transitions (hence the
 * name of the component).
 *
 * ---
 *
 * By default the `Transition` component does not alter the behavior of the
 * component it renders, it only tracks "enter" and "exit" states for the
 * components. It's up to you to give meaning and effect to those states. For
 * example we can add styles to a component when it enters or exits:
 *
 * ```jsx
 * import { Transition } from 'react-transition-group';
 *
 * const duration = 300;
 *
 * const defaultStyle = {
 *   transition: `opacity ${duration}ms ease-in-out`,
 *   opacity: 0,
 * }
 *
 * const transitionStyles = {
 *   entering: { opacity: 1 },
 *   entered:  { opacity: 1 },
 *   exiting:  { opacity: 0 },
 *   exited:  { opacity: 0 },
 * };
 *
 * const Fade = ({ in: inProp }) => (
 *   <Transition in={inProp} timeout={duration}>
 *     {state => (
 *       <div style={{
 *         ...defaultStyle,
 *         ...transitionStyles[state]
 *       }}>
 *         I'm a fade Transition!
 *       </div>
 *     )}
 *   </Transition>
 * );
 * ```
 *
 * There are 4 main states a Transition can be in:
 *  - `'entering'`
 *  - `'entered'`
 *  - `'exiting'`
 *  - `'exited'`
 *
 * Transition state is toggled via the `in` prop. When `true` the component
 * begins the "Enter" stage. During this stage, the component will shift from
 * its current transition state, to `'entering'` for the duration of the
 * transition and then to the `'entered'` stage once it's complete. Let's take
 * the following example (we'll use the
 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
 *
 * ```jsx
 * function App() {
 *   const [inProp, setInProp] = useState(false);
 *   return (
 *     <div>
 *       <Transition in={inProp} timeout={500}>
 *         {state => (
 *           // ...
 *         )}
 *       </Transition>
 *       <button onClick={() => setInProp(true)}>
 *         Click to Enter
 *       </button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the button is clicked the component will shift to the `'entering'` state
 * and stay there for 500ms (the value of `timeout`) before it finally switches
 * to `'entered'`.
 *
 * When `in` is `false` the same thing happens except the state moves from
 * `'exiting'` to `'exited'`.
 */ var Transition = /*#__PURE__*/ function(_React$Component) {
    (0, _inheritsLooseDefault.default)(Transition, _React$Component);
    function Transition(props, context) {
        var _this;
        _this = _React$Component.call(this, props, context) || this;
        var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
        var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
        var initialStatus;
        _this.appearStatus = null;
        if (props.in) {
            if (appear) {
                initialStatus = EXITED;
                _this.appearStatus = ENTERING;
            } else initialStatus = ENTERED;
        } else if (props.unmountOnExit || props.mountOnEnter) initialStatus = UNMOUNTED;
        else initialStatus = EXITED;
        _this.state = {
            status: initialStatus
        };
        _this.nextCallback = null;
        return _this;
    }
    Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
        var nextIn = _ref.in;
        if (nextIn && prevState.status === UNMOUNTED) return {
            status: EXITED
        };
        return null;
    } // getSnapshotBeforeUpdate(prevProps) {
    ;
    var _proto = Transition.prototype;
    _proto.componentDidMount = function componentDidMount() {
        this.updateStatus(true, this.appearStatus);
    };
    _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
        var nextStatus = null;
        if (prevProps !== this.props) {
            var status = this.state.status;
            if (this.props.in) {
                if (status !== ENTERING && status !== ENTERED) nextStatus = ENTERING;
            } else if (status === ENTERING || status === ENTERED) nextStatus = EXITING;
        }
        this.updateStatus(false, nextStatus);
    };
    _proto.componentWillUnmount = function componentWillUnmount() {
        this.cancelNextCallback();
    };
    _proto.getTimeouts = function getTimeouts() {
        var timeout = this.props.timeout;
        var exit, enter, appear;
        exit = enter = appear = timeout;
        if (timeout != null && typeof timeout !== "number") {
            exit = timeout.exit;
            enter = timeout.enter; // TODO: remove fallback for next major
            appear = timeout.appear !== undefined ? timeout.appear : enter;
        }
        return {
            exit: exit,
            enter: enter,
            appear: appear
        };
    };
    _proto.updateStatus = function updateStatus(mounting, nextStatus) {
        if (mounting === void 0) mounting = false;
        if (nextStatus !== null) {
            // nextStatus will always be ENTERING or EXITING.
            this.cancelNextCallback();
            if (nextStatus === ENTERING) {
                if (this.props.unmountOnExit || this.props.mountOnEnter) {
                    var node = this.props.nodeRef ? this.props.nodeRef.current : (0, _reactDomDefault.default).findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749
                    // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.
                    // To make the animation happen,  we have to separate each rendering and avoid being processed as batched.
                    if (node) (0, _reflow.forceReflow)(node);
                }
                this.performEnter(mounting);
            } else this.performExit();
        } else if (this.props.unmountOnExit && this.state.status === EXITED) this.setState({
            status: UNMOUNTED
        });
    };
    _proto.performEnter = function performEnter(mounting) {
        var _this2 = this;
        var enter = this.props.enter;
        var appearing = this.context ? this.context.isMounting : mounting;
        var _ref2 = this.props.nodeRef ? [
            appearing
        ] : [
            (0, _reactDomDefault.default).findDOMNode(this),
            appearing
        ], maybeNode = _ref2[0], maybeAppearing = _ref2[1];
        var timeouts = this.getTimeouts();
        var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
        // if we are mounting and running this it means appear _must_ be set
        if (!mounting && !enter || (0, _configDefault.default).disabled) {
            this.safeSetState({
                status: ENTERED
            }, function() {
                _this2.props.onEntered(maybeNode);
            });
            return;
        }
        this.props.onEnter(maybeNode, maybeAppearing);
        this.safeSetState({
            status: ENTERING
        }, function() {
            _this2.props.onEntering(maybeNode, maybeAppearing);
            _this2.onTransitionEnd(enterTimeout, function() {
                _this2.safeSetState({
                    status: ENTERED
                }, function() {
                    _this2.props.onEntered(maybeNode, maybeAppearing);
                });
            });
        });
    };
    _proto.performExit = function performExit() {
        var _this3 = this;
        var exit = this.props.exit;
        var timeouts = this.getTimeouts();
        var maybeNode = this.props.nodeRef ? undefined : (0, _reactDomDefault.default).findDOMNode(this); // no exit animation skip right to EXITED
        if (!exit || (0, _configDefault.default).disabled) {
            this.safeSetState({
                status: EXITED
            }, function() {
                _this3.props.onExited(maybeNode);
            });
            return;
        }
        this.props.onExit(maybeNode);
        this.safeSetState({
            status: EXITING
        }, function() {
            _this3.props.onExiting(maybeNode);
            _this3.onTransitionEnd(timeouts.exit, function() {
                _this3.safeSetState({
                    status: EXITED
                }, function() {
                    _this3.props.onExited(maybeNode);
                });
            });
        });
    };
    _proto.cancelNextCallback = function cancelNextCallback() {
        if (this.nextCallback !== null) {
            this.nextCallback.cancel();
            this.nextCallback = null;
        }
    };
    _proto.safeSetState = function safeSetState(nextState, callback) {
        // This shouldn't be necessary, but there are weird race conditions with
        // setState callbacks and unmounting in testing, so always make sure that
        // we can cancel any pending setState callbacks after we unmount.
        callback = this.setNextCallback(callback);
        this.setState(nextState, callback);
    };
    _proto.setNextCallback = function setNextCallback(callback) {
        var _this4 = this;
        var active = true;
        this.nextCallback = function(event) {
            if (active) {
                active = false;
                _this4.nextCallback = null;
                callback(event);
            }
        };
        this.nextCallback.cancel = function() {
            active = false;
        };
        return this.nextCallback;
    };
    _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
        this.setNextCallback(handler);
        var node = this.props.nodeRef ? this.props.nodeRef.current : (0, _reactDomDefault.default).findDOMNode(this);
        var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
        if (!node || doesNotHaveTimeoutOrListener) {
            setTimeout(this.nextCallback, 0);
            return;
        }
        if (this.props.addEndListener) {
            var _ref3 = this.props.nodeRef ? [
                this.nextCallback
            ] : [
                node,
                this.nextCallback
            ], maybeNode = _ref3[0], maybeNextCallback = _ref3[1];
            this.props.addEndListener(maybeNode, maybeNextCallback);
        }
        if (timeout != null) setTimeout(this.nextCallback, timeout);
    };
    _proto.render = function render() {
        var status = this.state.status;
        if (status === UNMOUNTED) return null;
        var _this$props = this.props, children = _this$props.children, _in = _this$props.in, _mountOnEnter = _this$props.mountOnEnter, _unmountOnExit = _this$props.unmountOnExit, _appear = _this$props.appear, _enter = _this$props.enter, _exit = _this$props.exit, _timeout = _this$props.timeout, _addEndListener = _this$props.addEndListener, _onEnter = _this$props.onEnter, _onEntering = _this$props.onEntering, _onEntered = _this$props.onEntered, _onExit = _this$props.onExit, _onExiting = _this$props.onExiting, _onExited = _this$props.onExited, _nodeRef = _this$props.nodeRef, childProps = (0, _objectWithoutPropertiesLooseDefault.default)(_this$props, [
            "children",
            "in",
            "mountOnEnter",
            "unmountOnExit",
            "appear",
            "enter",
            "exit",
            "timeout",
            "addEndListener",
            "onEnter",
            "onEntering",
            "onEntered",
            "onExit",
            "onExiting",
            "onExited",
            "nodeRef"
        ]);
        return(/*#__PURE__*/ // allows for nested Transitions
        (0, _reactDefault.default).createElement((0, _transitionGroupContextDefault.default).Provider, {
            value: null
        }, typeof children === "function" ? children(status, childProps) : (0, _reactDefault.default).cloneElement((0, _reactDefault.default).Children.only(children), childProps)));
    };
    return Transition;
}((0, _reactDefault.default).Component);
Transition.contextType = (0, _transitionGroupContextDefault.default);
Transition.propTypes = {}; // Name the function so it is clearer in the documentation
function noop() {}
Transition.defaultProps = {
    in: false,
    mountOnEnter: false,
    unmountOnExit: false,
    appear: false,
    enter: true,
    exit: true,
    onEnter: noop,
    onEntering: noop,
    onEntered: noop,
    onExit: noop,
    onExiting: noop,
    onExited: noop
};
Transition.UNMOUNTED = UNMOUNTED;
Transition.EXITED = EXITED;
Transition.ENTERING = ENTERING;
Transition.ENTERED = ENTERED;
Transition.EXITING = EXITING;
exports.default = Transition;

},{"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose":"gAAsw","@babel/runtime/helpers/esm/inheritsLoose":"kOCY7","prop-types":"prop-types","react":"react","react-dom":"react-dom","./config":"fvrhx","./utils/PropTypes":"4detZ","./TransitionGroupContext":"hNbKa","./utils/reflow":"8HmPq","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gAAsw":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "default", ()=>_objectWithoutPropertiesLoose);
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"kOCY7":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "default", ()=>_inheritsLoose);
var _setPrototypeOfJs = require("./setPrototypeOf.js");
var _setPrototypeOfJsDefault = parcelHelpers.interopDefault(_setPrototypeOfJs);
function _inheritsLoose(subClass, superClass) {
    subClass.prototype = Object.create(superClass.prototype);
    subClass.prototype.constructor = subClass;
    (0, _setPrototypeOfJsDefault.default)(subClass, superClass);
}

},{"./setPrototypeOf.js":"ej1v4","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ej1v4":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "default", ()=>_setPrototypeOf);
function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
        o.__proto__ = p;
        return o;
    };
    return _setPrototypeOf(o, p);
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fvrhx":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
exports.default = {
    disabled: false
};

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"4detZ":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "timeoutsShape", ()=>timeoutsShape);
parcelHelpers.export(exports, "classNamesShape", ()=>classNamesShape);
var _propTypes = require("prop-types");
var _propTypesDefault = parcelHelpers.interopDefault(_propTypes);
var timeoutsShape = null;
var classNamesShape = null;

},{"prop-types":"prop-types","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hNbKa":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
exports.default = (0, _reactDefault.default).createContext(null);

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8HmPq":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "forceReflow", ()=>forceReflow);
var forceReflow = function forceReflow(node) {
    return node.scrollTop;
};

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ateve":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Popover", ()=>_Popover) /**
 * More explanation on popover tips.
 * - I tried changing the calculation of the popover placement in an effort to get it squarely onto the pixel grid.
 * This did not work because the problem was in the svg partial pixel end of the path in the popover right and popover bottom.
 * - I tried creating an extra 'bandaid' path that matched the background color and would overlap the popover border.
 * This didn't work because the border on the svg triangle didn't extend all the way to match nicely with the popover border.
 * - I tried getting the client bounding box and setting the svg to that partial pixel value
 * This didn't work because again the issue was inside the svg
 * - I didn't try drawing the svg backwards
 * This could still be tried
 * - I tried changing the calculation of the popover placement AND the svg height/width so that they were all rounded
 * This seems to have done the trick.
 */ ;
var _overlays = require("@react-aria/overlays");
var _utils = require("@react-spectrum/utils");
var _interactions = require("@react-aria/interactions");
var _utils1 = require("@react-aria/utils");
var _overlay = require("./Overlay");
var _overlaysCss = require("./overlays.css");
var _overlaysCssDefault = parcelHelpers.interopDefault(_overlaysCss);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/popover/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _underlay = require("./Underlay");
/**
 * Arrow placement can be done pointing right or down because those paths start at 0, x or y. Because the
 * other two don't, they start at a fractional pixel value, it introduces rounding differences between browsers and
 * between display types (retina with subpixels vs not retina). By flipping them with CSS we can ensure that
 * the path always starts at 0 so that it perfectly overlaps the popover's border.
 * See bottom of file for more explanation.
 */ let arrowPlacement = {
    left: "right",
    right: "right",
    top: "bottom",
    bottom: "bottom"
};
function Popover(props, ref) {
    let { children , state , ...otherProps } = props;
    let domRef = (0, _utils.useDOMRef)(ref);
    let wrapperRef = (0, _react.useRef)(null);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlay.Overlay), {
        ...otherProps,
        isOpen: state.isOpen,
        nodeRef: wrapperRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(PopoverWrapper, {
        ref: domRef,
        ...props,
        wrapperRef: wrapperRef
    }, children));
}
const PopoverWrapper = /*#__PURE__*/ (0, _react.forwardRef)((props, ref)=>{
    let { children , isOpen , hideArrow , isNonModal , enableBothDismissButtons , state , wrapperRef  } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(props);
    let { size , borderWidth , arrowRef  } = useArrowSize();
    const borderRadius = usePopoverBorderRadius(ref);
    let borderDiagonal = borderWidth * Math.SQRT2;
    let primary = size + borderDiagonal;
    let secondary = primary * 2;
    let { popoverProps , arrowProps , underlayProps , placement  } = (0, _overlays.usePopover)({
        ...props,
        popoverRef: ref,
        maxHeight: null,
        arrowSize: hideArrow ? 0 : secondary,
        arrowBoundaryOffset: borderRadius
    }, state);
    let { focusWithinProps  } = (0, _interactions.useFocusWithin)(props);
    // Attach Transition's nodeRef to outermost wrapper for node.reflow: https://github.com/reactjs/react-transition-group/blob/c89f807067b32eea6f68fd6c622190d88ced82e2/src/Transition.js#L231
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ref: wrapperRef
    }, !isNonModal && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _underlay.Underlay), {
        isTransparent: true,
        ...underlayProps,
        isOpen: isOpen
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...styleProps,
        ...(0, _utils1.mergeProps)(popoverProps, focusWithinProps),
        style: {
            ...styleProps.style,
            ...popoverProps.style
        },
        ref: ref,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Popover", `spectrum-Popover--${placement}`, {
            "spectrum-Popover--withTip": !hideArrow,
            "is-open": isOpen
        }, (0, _utils.classNames)((0, _overlaysCssDefault.default), "spectrum-Popover", "react-spectrum-Popover"), styleProps.className),
        role: "presentation",
        "data-testid": "popover"
    }, (!isNonModal || enableBothDismissButtons) && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.DismissButton), {
        onDismiss: state.close
    }), children, hideArrow ? null : /*#__PURE__*/ (0, _reactDefault.default).createElement(Arrow, {
        arrowProps: arrowProps,
        isLandscape: arrowPlacement[placement] === "bottom",
        arrowRef: arrowRef,
        primary: primary,
        secondary: secondary,
        borderDiagonal: borderDiagonal
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.DismissButton), {
        onDismiss: state.close
    })));
});
function usePopoverBorderRadius(popoverRef) {
    let [borderRadius, setBorderRadius] = (0, _react.useState)(0);
    (0, _utils1.useLayoutEffect)(()=>{
        if (popoverRef.current) {
            let spectrumBorderRadius = window.getComputedStyle(popoverRef.current).borderRadius;
            if (spectrumBorderRadius !== "") setBorderRadius(parseInt(spectrumBorderRadius, 10));
        }
    }, [
        popoverRef
    ]);
    return borderRadius;
}
function useArrowSize() {
    let [size, setSize] = (0, _react.useState)(20);
    let [borderWidth, setBorderWidth] = (0, _react.useState)(1);
    let arrowRef = (0, _react.useRef)(null);
    // get the css value for the tip size and divide it by 2 for this arrow implementation
    (0, _utils1.useLayoutEffect)(()=>{
        if (arrowRef.current) {
            let spectrumTipWidth = window.getComputedStyle(arrowRef.current).getPropertyValue("--spectrum-popover-tip-size");
            if (spectrumTipWidth !== "") setSize(parseInt(spectrumTipWidth, 10) / 2);
            let spectrumBorderWidth = window.getComputedStyle(arrowRef.current).getPropertyValue("--spectrum-popover-tip-borderWidth");
            if (spectrumBorderWidth !== "") setBorderWidth(parseInt(spectrumBorderWidth, 10));
        }
    }, []);
    return {
        size,
        borderWidth,
        arrowRef
    };
}
function Arrow(props) {
    let { primary , secondary , isLandscape , arrowProps , borderDiagonal , arrowRef  } = props;
    let halfBorderDiagonal = borderDiagonal / 2;
    let primaryStart = 0;
    let primaryEnd = primary - halfBorderDiagonal;
    let secondaryStart = halfBorderDiagonal;
    let secondaryMiddle = secondary / 2;
    let secondaryEnd = secondary - halfBorderDiagonal;
    let pathData = isLandscape ? [
        "M",
        secondaryStart,
        primaryStart,
        "L",
        secondaryMiddle,
        primaryEnd,
        "L",
        secondaryEnd,
        primaryStart
    ] : [
        "M",
        primaryStart,
        secondaryStart,
        "L",
        primaryEnd,
        secondaryMiddle,
        "L",
        primaryStart,
        secondaryEnd
    ];
    /* use ceil because the svg needs to always accommodate the path inside it */ return /*#__PURE__*/ (0, _reactDefault.default).createElement("svg", {
        xmlns: "http://www.w3.org/svg/2000",
        width: Math.ceil(isLandscape ? secondary : primary),
        height: Math.ceil(isLandscape ? primary : secondary),
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Popover-tip"),
        ref: arrowRef,
        ...arrowProps
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("path", {
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Popover-tip-triangle"),
        d: pathData.join(" ")
    }));
}
let _Popover = /*#__PURE__*/ (0, _react.forwardRef)(Popover);

},{"@react-aria/overlays":"6PUL4","@react-spectrum/utils":"cYYzN","@react-aria/interactions":"3eipm","@react-aria/utils":"5XGXZ","./Overlay":"9tLKe","./overlays.css":"3OwHb","react":"react","@adobe/spectrum-css-temp/components/popover/vars.css":"dBKv1","./Underlay":"jV5w2","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3OwHb":[function(require,module,exports) {
module.exports["spectrum-Popover"] = "spectrum-Popover_38efea";
module.exports["react-spectrum-Popover"] = "react-spectrum-Popover_38efea";
module.exports["spectrum-Dialog-content"] = "spectrum-Dialog-content_38efea";
module.exports["spectrum-Modal-wrapper"] = "spectrum-Modal-wrapper_38efea";
module.exports["react-spectrum-Modal-wrapper"] = "react-spectrum-Modal-wrapper_38efea";
module.exports["spectrum-Modal"] = "spectrum-Modal_38efea";
module.exports["react-spectrum-Modal"] = "react-spectrum-Modal_38efea";
module.exports["spectrum-Tray"] = "spectrum-Tray_38efea";
module.exports["react-spectrum-Tray"] = "react-spectrum-Tray_38efea";

},{}],"dBKv1":[function(require,module,exports) {
module.exports["spectrum-Popover"] = "spectrum-Popover_6115b8";
module.exports["is-open"] = "is-open_6115b8";
module.exports["spectrum-Popover--bottom"] = "spectrum-Popover--bottom_6115b8";
module.exports["spectrum-Popover--top"] = "spectrum-Popover--top_6115b8";
module.exports["spectrum-Popover--right"] = "spectrum-Popover--right_6115b8";
module.exports["spectrum-Popover--left"] = "spectrum-Popover--left_6115b8";
module.exports["spectrum-Popover--withTip"] = "spectrum-Popover--withTip_6115b8";
module.exports["spectrum-Popover-tip"] = "spectrum-Popover-tip_6115b8";
module.exports["spectrum-Popover-tip-triangle"] = "spectrum-Popover-tip-triangle_6115b8";
module.exports["spectrum-Popover--dialog"] = "spectrum-Popover--dialog_6115b8";

},{}],"jV5w2":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Underlay", ()=>Underlay);
var _utils = require("@react-spectrum/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/underlay/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
function Underlay({ isOpen , isTransparent  }) {
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Underlay", {
            "is-open": isOpen,
            "spectrum-Underlay--transparent": isTransparent
        })
    });
}

},{"@react-spectrum/utils":"cYYzN","react":"react","@adobe/spectrum-css-temp/components/underlay/vars.css":"9HjIk","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9HjIk":[function(require,module,exports) {
module.exports["spectrum-Underlay"] = "spectrum-Underlay_eb7615";
module.exports["is-open"] = "is-open_eb7615";
module.exports["spectrum-Underlay--transparent"] = "spectrum-Underlay--transparent_eb7615";

},{}],"38CvO":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Modal", ()=>_Modal);
var _overlays = require("@react-aria/overlays");
var _utils = require("@react-spectrum/utils");
var _varsCss = require("@adobe/spectrum-css-temp/components/modal/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _overlay = require("./Overlay");
var _overlaysCss = require("./overlays.css");
var _overlaysCssDefault = parcelHelpers.interopDefault(_overlaysCss);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _underlay = require("./Underlay");
var _utils1 = require("@react-aria/utils");
function Modal(props, ref) {
    let { children , state , ...otherProps } = props;
    let domRef = (0, _utils.useDOMRef)(ref);
    let wrapperRef = (0, _react.useRef)(null);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlay.Overlay), {
        ...otherProps,
        isOpen: state.isOpen,
        nodeRef: wrapperRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(ModalWrapper, {
        ...props,
        wrapperRef: wrapperRef,
        ref: domRef
    }, children));
}
let typeMap = {
    fullscreen: "fullscreen",
    fullscreenTakeover: "fullscreenTakeover"
};
let ModalWrapper = /*#__PURE__*/ (0, _react.forwardRef)(function(props, ref) {
    let { type , children , state , isOpen , wrapperRef  } = props;
    let typeVariant = typeMap[type];
    let { styleProps  } = (0, _utils.useStyleProps)(props);
    let { modalProps , underlayProps  } = (0, _overlays.useModalOverlay)(props, state, ref);
    let wrapperClassName = (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Modal-wrapper", (0, _utils.classNames)((0, _overlaysCssDefault.default), "spectrum-Modal-wrapper", "react-spectrum-Modal-wrapper"));
    let modalClassName = (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Modal", {
        "is-open": isOpen
    }, (0, _utils.classNames)((0, _overlaysCssDefault.default), "spectrum-Modal", "react-spectrum-Modal"), {
        [`spectrum-Modal--${typeVariant}`]: typeVariant
    }, styleProps.className);
    let viewport = (0, _utils1.useViewportSize)();
    let style = {
        "--spectrum-visual-viewport-height": viewport.height + "px"
    };
    // Attach Transition's nodeRef to outer most wrapper for node.reflow: https://github.com/reactjs/react-transition-group/blob/c89f807067b32eea6f68fd6c622190d88ced82e2/src/Transition.js#L231
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ref: wrapperRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _underlay.Underlay), {
        ...underlayProps,
        isOpen: isOpen
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: wrapperClassName,
        style: style
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...styleProps,
        ...modalProps,
        ref: ref,
        className: modalClassName,
        "data-testid": "modal"
    }, children)));
});
let _Modal = /*#__PURE__*/ (0, _react.forwardRef)(Modal);

},{"@react-aria/overlays":"6PUL4","@react-spectrum/utils":"cYYzN","@adobe/spectrum-css-temp/components/modal/vars.css":"aQnmp","./Overlay":"9tLKe","./overlays.css":"3OwHb","react":"react","./Underlay":"jV5w2","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"aQnmp":[function(require,module,exports) {
module.exports["spectrum-Modal"] = "spectrum-Modal_f81956";
module.exports["is-open"] = "is-open_f81956";
module.exports["spectrum-Modal-wrapper"] = "spectrum-Modal-wrapper_f81956";
module.exports["spectrum-Modal--responsive"] = "spectrum-Modal--responsive_f81956";
module.exports["spectrum-Modal--fullscreen"] = "spectrum-Modal--fullscreen_f81956";
module.exports["spectrum-Modal--fullscreenTakeover"] = "spectrum-Modal--fullscreenTakeover_f81956";

},{}],"b63V0":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Tray", ()=>_Tray);
var _overlays = require("@react-aria/overlays");
var _utils = require("@react-spectrum/utils");
var _overlay = require("./Overlay");
var _overlaysCss = require("./overlays.css");
var _overlaysCssDefault = parcelHelpers.interopDefault(_overlaysCss);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/tray/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _underlay = require("./Underlay");
var _utils1 = require("@react-aria/utils");
function Tray(props, ref) {
    let { children , state , ...otherProps } = props;
    let domRef = (0, _utils.useDOMRef)(ref);
    let wrapperRef = (0, _react.useRef)(null);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlay.Overlay), {
        ...otherProps,
        isOpen: state.isOpen,
        nodeRef: wrapperRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(TrayWrapper, {
        ...props,
        wrapperRef: wrapperRef,
        ref: domRef
    }, children));
}
let TrayWrapper = /*#__PURE__*/ (0, _react.forwardRef)(function(props, ref) {
    let { children , isOpen , isFixedHeight , state , wrapperRef  } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(props);
    let { modalProps , underlayProps  } = (0, _overlays.useModalOverlay)({
        ...props,
        isDismissable: true
    }, state, ref);
    // We need to measure the window's height in JS rather than using percentages in CSS
    // so that contents (e.g. menu) can inherit the max-height properly. Using percentages
    // does not work properly because there is nothing to base the percentage on.
    // We cannot use vh units because mobile browsers adjust the window height dynamically
    // when the address bar/bottom toolbars show and hide on scroll and vh units are fixed.
    // Also, the visual viewport is smaller than the layout viewport when the virtual keyboard
    // is up, so use the VisualViewport API to ensure the tray is displayed above the keyboard.
    let viewport = (0, _utils1.useViewportSize)();
    let wrapperStyle = {
        "--spectrum-visual-viewport-height": viewport.height + "px"
    };
    let wrapperClassName = (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Tray-wrapper");
    let className = (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Tray", {
        "is-open": isOpen,
        "spectrum-Tray--fixedHeight": isFixedHeight
    }, (0, _utils.classNames)((0, _overlaysCssDefault.default), "spectrum-Tray", "react-spectrum-Tray"), styleProps.className);
    // Attach Transition's nodeRef to outer most wrapper for node.reflow: https://github.com/reactjs/react-transition-group/blob/c89f807067b32eea6f68fd6c622190d88ced82e2/src/Transition.js#L231
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ref: wrapperRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _underlay.Underlay), {
        ...underlayProps,
        isOpen: isOpen
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: wrapperClassName,
        style: wrapperStyle
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...styleProps,
        ...modalProps,
        className: className,
        ref: ref,
        "data-testid": "tray"
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.DismissButton), {
        onDismiss: state.close
    }), children, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.DismissButton), {
        onDismiss: state.close
    }))));
});
let _Tray = /*#__PURE__*/ (0, _react.forwardRef)(Tray);

},{"@react-aria/overlays":"6PUL4","@react-spectrum/utils":"cYYzN","./Overlay":"9tLKe","./overlays.css":"3OwHb","react":"react","@adobe/spectrum-css-temp/components/tray/vars.css":"6FpSY","./Underlay":"jV5w2","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6FpSY":[function(require,module,exports) {
module.exports["spectrum-Tray"] = "spectrum-Tray_23bf66";
module.exports["is-open"] = "is-open_23bf66";
module.exports["spectrum-Tray-wrapper"] = "spectrum-Tray-wrapper_23bf66";
module.exports["spectrum-Tray--fixedHeight"] = "spectrum-Tray--fixedHeight_23bf66";

},{}],"3DDyP":[function(require,module,exports) {
module.exports["spectrum-Menu-popover"] = "spectrum-Menu-popover_7ea47c";
module.exports["spectrum-Menu"] = "spectrum-Menu_7ea47c";
module.exports["spectrum-Menu-sectionHeading"] = "spectrum-Menu-sectionHeading_7ea47c";
module.exports["spectrum-Menu-checkmark"] = "spectrum-Menu-checkmark_7ea47c";
module.exports["spectrum-Menu-item"] = "spectrum-Menu-item_7ea47c";
module.exports["is-selected"] = "is-selected_7ea47c";
module.exports["spectrum-Icon"] = "spectrum-Icon_7ea47c";
module.exports["spectrum-Menu-itemLabel"] = "spectrum-Menu-itemLabel_7ea47c";
module.exports["spectrum-Menu-itemIcon"] = "spectrum-Menu-itemIcon_7ea47c";
module.exports["spectrum-Menu-itemLabel--wrapping"] = "spectrum-Menu-itemLabel--wrapping_7ea47c";
module.exports["spectrum-Menu-divider"] = "spectrum-Menu-divider_7ea47c";
module.exports["spectrum-Menu-itemGrid"] = "spectrum-Menu-itemGrid_7ea47c";
module.exports["is-selectable"] = "is-selectable_7ea47c";
module.exports["spectrum-Menu-end"] = "spectrum-Menu-end_7ea47c";
module.exports["spectrum-Menu-icon"] = "spectrum-Menu-icon_7ea47c";
module.exports["spectrum-Menu-description"] = "spectrum-Menu-description_7ea47c";
module.exports["spectrum-Menu-keyboard"] = "spectrum-Menu-keyboard_7ea47c";
module.exports["focus-ring"] = "focus-ring_7ea47c";
module.exports["is-focused"] = "is-focused_7ea47c";
module.exports["is-highlighted"] = "is-highlighted_7ea47c";
module.exports["is-open"] = "is-open_7ea47c";
module.exports["is-active"] = "is-active_7ea47c";
module.exports["is-disabled"] = "is-disabled_7ea47c";

},{}],"6OCiJ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useMenuTrigger", ()=>(0, _useMenuTrigger.useMenuTrigger));
parcelHelpers.export(exports, "useMenu", ()=>(0, _useMenu.useMenu));
parcelHelpers.export(exports, "useMenuItem", ()=>(0, _useMenuItem.useMenuItem));
parcelHelpers.export(exports, "useMenuSection", ()=>(0, _useMenuSection.useMenuSection));
var _useMenuTrigger = require("./useMenuTrigger");
var _useMenu = require("./useMenu");
var _useMenuItem = require("./useMenuItem");
var _useMenuSection = require("./useMenuSection");

},{"./useMenuTrigger":"5WVf9","./useMenu":"kphwG","./useMenuItem":"jYnRx","./useMenuSection":"mz7at","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5WVf9":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a menu trigger.
 * @param props - Props for the menu trigger.
 * @param state - State for the menu trigger.
 */ parcelHelpers.export(exports, "useMenuTrigger", ()=>useMenuTrigger);
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _utils = require("@react-aria/utils");
var _i18N = require("@react-aria/i18n");
var _interactions = require("@react-aria/interactions");
var _overlays = require("@react-aria/overlays");
function useMenuTrigger(props, state, ref) {
    let { type ="menu" , isDisabled , trigger ="press"  } = props;
    let menuTriggerId = (0, _utils.useId)();
    let { triggerProps , overlayProps  } = (0, _overlays.useOverlayTrigger)({
        type
    }, state, ref);
    let onKeyDown = (e)=>{
        if (isDisabled) return;
        if (trigger === "longPress" && !e.altKey) return;
        if (ref && ref.current) switch(e.key){
            case "Enter":
            case " ":
                if (trigger === "longPress") return;
            // fallthrough
            case "ArrowDown":
                // Stop propagation, unless it would already be handled by useKeyboard.
                if (!("continuePropagation" in e)) e.stopPropagation();
                e.preventDefault();
                state.toggle("first");
                break;
            case "ArrowUp":
                if (!("continuePropagation" in e)) e.stopPropagation();
                e.preventDefault();
                state.toggle("last");
                break;
            default:
                // Allow other keys.
                if ("continuePropagation" in e) e.continuePropagation();
        }
    };
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let { longPressProps  } = (0, _interactions.useLongPress)({
        isDisabled: isDisabled || trigger !== "longPress",
        accessibilityDescription: stringFormatter.format("longPressMessage"),
        onLongPressStart () {
            state.close();
        },
        onLongPress () {
            state.open("first");
        }
    });
    let pressProps = {
        onPressStart (e) {
            // For consistency with native, open the menu on mouse/key down, but touch up.
            if (e.pointerType !== "touch" && e.pointerType !== "keyboard" && !isDisabled) // If opened with a screen reader, auto focus the first item.
            // Otherwise, the menu itself will be focused.
            state.toggle(e.pointerType === "virtual" ? "first" : null);
        },
        onPress (e) {
            if (e.pointerType === "touch" && !isDisabled) state.toggle();
        }
    };
    // omit onPress from triggerProps since we override it above.
    delete triggerProps.onPress;
    return {
        menuTriggerProps: {
            ...triggerProps,
            ...trigger === "press" ? pressProps : longPressProps,
            id: menuTriggerId,
            onKeyDown
        },
        menuProps: {
            ...overlayProps,
            "aria-labelledby": menuTriggerId,
            autoFocus: state.focusStrategy || true,
            onClose: state.close
        }
    };
}

},{"../intl/*.json":"64GKp","@react-aria/utils":"5XGXZ","@react-aria/i18n":"lHUec","@react-aria/interactions":"3eipm","@react-aria/overlays":"6PUL4","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"64GKp":[function(require,module,exports) {
const _temp0 = require("42c83f4548c92833");
const _temp1 = require("6b870756cb68e01e");
const _temp2 = require("a6bddf07cafa43fa");
const _temp3 = require("63a9c652887e3def");
const _temp4 = require("c44985ef38014ee9");
const _temp5 = require("7f605cbffccbd280");
const _temp6 = require("aac274ca22e0368f");
const _temp7 = require("64b41430f7aa6fad");
const _temp8 = require("47f2d88389b064e7");
const _temp9 = require("c6bcc0103498d005");
const _temp10 = require("c47e6d1660527a22");
const _temp11 = require("4164c1159cac0216");
const _temp12 = require("267dc1f5391aaf39");
const _temp13 = require("23e08e97753d7729");
const _temp14 = require("3ae350fe688669df");
const _temp15 = require("766e0fb8965f9cbb");
const _temp16 = require("742256cccce31590");
const _temp17 = require("3d080a7d4b4f4d5c");
const _temp18 = require("d217789518c339d2");
const _temp19 = require("d1bd4e6fdc35a212");
const _temp20 = require("a3c28924612b9303");
const _temp21 = require("6356dbde79c6ea15");
const _temp22 = require("4ec9b1f4e5859552");
const _temp23 = require("e4370f69d1fa2f64");
const _temp24 = require("de4db1a075661abe");
const _temp25 = require("f9574d2d6afa982b");
const _temp26 = require("fbb72d44e94f7abf");
const _temp27 = require("19d0f5a1ce8e4d50");
const _temp28 = require("fdef00026f3249af");
const _temp29 = require("a6ab80a93020e353");
const _temp30 = require("1d6811b2b369005b");
const _temp31 = require("55b10140b14e7779");
const _temp32 = require("483a562258163ecc");
const _temp33 = require("4a3f5bf5ab41e724");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"42c83f4548c92833":"7mgVK","6b870756cb68e01e":"cFglM","a6bddf07cafa43fa":"gtL0c","63a9c652887e3def":"3JYzW","c44985ef38014ee9":"5MOYK","7f605cbffccbd280":"h1n0z","aac274ca22e0368f":"hWT9p","64b41430f7aa6fad":"iXmTX","47f2d88389b064e7":"2hOVM","c6bcc0103498d005":"9JmAI","c47e6d1660527a22":"Ns5iX","4164c1159cac0216":"b41SK","267dc1f5391aaf39":"5WAeX","23e08e97753d7729":"3I3ks","3ae350fe688669df":"cF6Mw","766e0fb8965f9cbb":"iS5iv","742256cccce31590":"7Fde2","3d080a7d4b4f4d5c":"4IVWE","d217789518c339d2":"dgNBm","d1bd4e6fdc35a212":"7JP6s","a3c28924612b9303":"lOcNl","6356dbde79c6ea15":"5fZNT","4ec9b1f4e5859552":"aDo8m","e4370f69d1fa2f64":"dsBT8","de4db1a075661abe":"hFbOt","f9574d2d6afa982b":"j2XFq","fbb72d44e94f7abf":"hy5De","19d0f5a1ce8e4d50":"cWmnH","fdef00026f3249af":"32YZV","a6ab80a93020e353":"bfBos","1d6811b2b369005b":"dNI1l","55b10140b14e7779":"7jlwL","483a562258163ecc":"fwH8d","4a3f5bf5ab41e724":"bvOmE"}],"7mgVK":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة`
};

},{}],"cFglM":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто`
};

},{}],"gtL0c":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku`
};

},{}],"3JYzW":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Langt tryk eller tryk på Alt + pil ned for at åbne menuen`
};

},{}],"5MOYK":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen`
};

},{}],"h1n0z":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού`
};

},{}],"hWT9p":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Long press or press Alt + ArrowDown to open menu`
};

},{}],"iXmTX":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú`
};

},{}],"2hOVM":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool`
};

},{}],"9JmAI":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli`
};

},{}],"Ns5iX":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu.`
};

},{}],"b41SK":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט`
};

},{}],"5WAeX":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika`
};

},{}],"3I3ks":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához`
};

},{}],"cF6Mw":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Premere a lungo o premere Alt + Freccia giù per aprire il menu`
};

},{}],"iS5iv":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `長押しまたは Alt+下矢印キーでメニューを開く`
};

},{}],"7Fde2":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기`
};

},{}],"4IVWE":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“.`
};

},{}],"dgNBm":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa`
};

},{}],"7JP6s":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Langt trykk eller trykk Alt + PilNed for å åpne menyen`
};

},{}],"lOcNl":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen`
};

},{}],"5fZNT":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu`
};

},{}],"aDo8m":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu`
};

},{}],"dsBT8":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu`
};

},{}],"hFbOt":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul`
};

},{}],"j2XFq":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню`
};

},{}],"hy5De":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol`
};

},{}],"cWmnH":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol`
};

},{}],"32YZV":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni`
};

},{}],"bfBos":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn`
};

},{}],"dNI1l":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın`
};

},{}],"7jlwL":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню`
};

},{}],"fwH8d":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `长按或按 Alt + 向下方向键以打开菜单`
};

},{}],"bvOmE":[function(require,module,exports) {
module.exports = {
    "longPressMessage": `長按或按 Alt+向下鍵以開啟功能表`
};

},{}],"kphwG":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "menuData", ()=>menuData);
/**
 * Provides the behavior and accessibility implementation for a menu component.
 * A menu displays a list of actions or options that a user can choose.
 * @param props - Props for the menu.
 * @param state - State for the menu, as returned by `useListState`.
 */ parcelHelpers.export(exports, "useMenu", ()=>useMenu);
var _utils = require("@react-aria/utils");
var _selection = require("@react-aria/selection");
const menuData = new WeakMap();
function useMenu(props, state, ref) {
    let { shouldFocusWrap =true , ...otherProps } = props;
    if (!props["aria-label"] && !props["aria-labelledby"]) console.warn("An aria-label or aria-labelledby prop is required for accessibility.");
    let domProps = (0, _utils.filterDOMProps)(props, {
        labelable: true
    });
    let { listProps  } = (0, _selection.useSelectableList)({
        ...otherProps,
        ref,
        selectionManager: state.selectionManager,
        collection: state.collection,
        disabledKeys: state.disabledKeys,
        shouldFocusWrap
    });
    menuData.set(state, {
        onClose: props.onClose,
        onAction: props.onAction
    });
    return {
        menuProps: (0, _utils.mergeProps)(domProps, {
            role: "menu",
            // this forces AT to move their cursors into any open sub dialogs, the sub dialogs contain hidden close buttons in order to come back to this level of the menu
            "aria-hidden": state.expandedKeys.size > 0 ? true : undefined,
            ...listProps,
            onKeyDown: (e)=>{
                // don't clear the menu selected keys if the user is presses escape since escape closes the menu
                if (e.key !== "Escape") listProps.onKeyDown(e);
            }
        })
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/selection":"eGIVv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eGIVv":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useSelectableCollection", ()=>(0, _useSelectableCollection.useSelectableCollection));
parcelHelpers.export(exports, "useSelectableItem", ()=>(0, _useSelectableItem.useSelectableItem));
parcelHelpers.export(exports, "useSelectableList", ()=>(0, _useSelectableList.useSelectableList));
parcelHelpers.export(exports, "ListKeyboardDelegate", ()=>(0, _listKeyboardDelegate.ListKeyboardDelegate));
parcelHelpers.export(exports, "useTypeSelect", ()=>(0, _useTypeSelect.useTypeSelect));
var _useSelectableCollection = require("./useSelectableCollection");
var _useSelectableItem = require("./useSelectableItem");
var _useSelectableList = require("./useSelectableList");
var _listKeyboardDelegate = require("./ListKeyboardDelegate");
var _useTypeSelect = require("./useTypeSelect");

},{"./useSelectableCollection":"glBub","./useSelectableItem":"9FY2L","./useSelectableList":"dOFEX","./ListKeyboardDelegate":"jiGsf","./useTypeSelect":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"glBub":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles interactions with selectable collections.
 */ parcelHelpers.export(exports, "useSelectableCollection", ()=>useSelectableCollection);
var _react = require("react");
var _focus = require("@react-aria/focus");
var _utils = require("@react-aria/utils");
var _interactions = require("@react-aria/interactions");
var _utils1 = require("./utils");
var _i18N = require("@react-aria/i18n");
var _useTypeSelect = require("./useTypeSelect");
function useSelectableCollection(options) {
    let { selectionManager: manager , keyboardDelegate: delegate , ref , autoFocus =false , shouldFocusWrap =false , disallowEmptySelection =false , disallowSelectAll =false , selectOnFocus =manager.selectionBehavior === "replace" , disallowTypeAhead =false , shouldUseVirtualFocus , allowsTabNavigation =false , isVirtualized , // If no scrollRef is provided, assume the collection ref is the scrollable region
    scrollRef =ref  } = options;
    let { direction  } = (0, _i18N.useLocale)();
    let onKeyDown = (e)=>{
        // Prevent option + tab from doing anything since it doesn't move focus to the cells, only buttons/checkboxes
        if (e.altKey && e.key === "Tab") e.preventDefault();
        // Keyboard events bubble through portals. Don't handle keyboard events
        // for elements outside the collection (e.g. menus).
        if (!ref.current.contains(e.target)) return;
        const navigateToKey = (key, childFocus)=>{
            if (key != null) {
                manager.setFocusedKey(key, childFocus);
                if (e.shiftKey && manager.selectionMode === "multiple") manager.extendSelection(key);
                else if (selectOnFocus && !(0, _utils1.isNonContiguousSelectionModifier)(e)) manager.replaceSelection(key);
            }
        };
        switch(e.key){
            case "ArrowDown":
                if (delegate.getKeyBelow) {
                    var _delegate_getFirstKey, _delegate_getFirstKey1;
                    e.preventDefault();
                    let nextKey = manager.focusedKey != null ? delegate.getKeyBelow(manager.focusedKey) : (_delegate_getFirstKey = delegate.getFirstKey) === null || _delegate_getFirstKey === void 0 ? void 0 : _delegate_getFirstKey.call(delegate);
                    if (nextKey == null && shouldFocusWrap) nextKey = (_delegate_getFirstKey1 = delegate.getFirstKey) === null || _delegate_getFirstKey1 === void 0 ? void 0 : _delegate_getFirstKey1.call(delegate, manager.focusedKey);
                    navigateToKey(nextKey);
                }
                break;
            case "ArrowUp":
                if (delegate.getKeyAbove) {
                    var _delegate_getLastKey, _delegate_getLastKey1;
                    e.preventDefault();
                    let nextKey = manager.focusedKey != null ? delegate.getKeyAbove(manager.focusedKey) : (_delegate_getLastKey = delegate.getLastKey) === null || _delegate_getLastKey === void 0 ? void 0 : _delegate_getLastKey.call(delegate);
                    if (nextKey == null && shouldFocusWrap) nextKey = (_delegate_getLastKey1 = delegate.getLastKey) === null || _delegate_getLastKey1 === void 0 ? void 0 : _delegate_getLastKey1.call(delegate, manager.focusedKey);
                    navigateToKey(nextKey);
                }
                break;
            case "ArrowLeft":
                if (delegate.getKeyLeftOf) {
                    var _delegate_getFirstKey2, _delegate_getLastKey2;
                    e.preventDefault();
                    let nextKey = delegate.getKeyLeftOf(manager.focusedKey);
                    if (nextKey == null && shouldFocusWrap) nextKey = direction === "rtl" ? (_delegate_getFirstKey2 = delegate.getFirstKey) === null || _delegate_getFirstKey2 === void 0 ? void 0 : _delegate_getFirstKey2.call(delegate, manager.focusedKey) : (_delegate_getLastKey2 = delegate.getLastKey) === null || _delegate_getLastKey2 === void 0 ? void 0 : _delegate_getLastKey2.call(delegate, manager.focusedKey);
                    navigateToKey(nextKey, direction === "rtl" ? "first" : "last");
                }
                break;
            case "ArrowRight":
                if (delegate.getKeyRightOf) {
                    var _delegate_getLastKey3, _delegate_getFirstKey3;
                    e.preventDefault();
                    let nextKey = delegate.getKeyRightOf(manager.focusedKey);
                    if (nextKey == null && shouldFocusWrap) nextKey = direction === "rtl" ? (_delegate_getLastKey3 = delegate.getLastKey) === null || _delegate_getLastKey3 === void 0 ? void 0 : _delegate_getLastKey3.call(delegate, manager.focusedKey) : (_delegate_getFirstKey3 = delegate.getFirstKey) === null || _delegate_getFirstKey3 === void 0 ? void 0 : _delegate_getFirstKey3.call(delegate, manager.focusedKey);
                    navigateToKey(nextKey, direction === "rtl" ? "last" : "first");
                }
                break;
            case "Home":
                if (delegate.getFirstKey) {
                    e.preventDefault();
                    let firstKey = delegate.getFirstKey(manager.focusedKey, (0, _utils1.isCtrlKeyPressed)(e));
                    manager.setFocusedKey(firstKey);
                    if ((0, _utils1.isCtrlKeyPressed)(e) && e.shiftKey && manager.selectionMode === "multiple") manager.extendSelection(firstKey);
                    else if (selectOnFocus) manager.replaceSelection(firstKey);
                }
                break;
            case "End":
                if (delegate.getLastKey) {
                    e.preventDefault();
                    let lastKey = delegate.getLastKey(manager.focusedKey, (0, _utils1.isCtrlKeyPressed)(e));
                    manager.setFocusedKey(lastKey);
                    if ((0, _utils1.isCtrlKeyPressed)(e) && e.shiftKey && manager.selectionMode === "multiple") manager.extendSelection(lastKey);
                    else if (selectOnFocus) manager.replaceSelection(lastKey);
                }
                break;
            case "PageDown":
                if (delegate.getKeyPageBelow) {
                    e.preventDefault();
                    let nextKey = delegate.getKeyPageBelow(manager.focusedKey);
                    navigateToKey(nextKey);
                }
                break;
            case "PageUp":
                if (delegate.getKeyPageAbove) {
                    e.preventDefault();
                    let nextKey = delegate.getKeyPageAbove(manager.focusedKey);
                    navigateToKey(nextKey);
                }
                break;
            case "a":
                if ((0, _utils1.isCtrlKeyPressed)(e) && manager.selectionMode === "multiple" && disallowSelectAll !== true) {
                    e.preventDefault();
                    manager.selectAll();
                }
                break;
            case "Escape":
                e.preventDefault();
                if (!disallowEmptySelection) manager.clearSelection();
                break;
            case "Tab":
                if (!allowsTabNavigation) {
                    // There may be elements that are "tabbable" inside a collection (e.g. in a grid cell).
                    // However, collections should be treated as a single tab stop, with arrow key navigation internally.
                    // We don't control the rendering of these, so we can't override the tabIndex to prevent tabbing.
                    // Instead, we handle the Tab key, and move focus manually to the first/last tabbable element
                    // in the collection, so that the browser default behavior will apply starting from that element
                    // rather than the currently focused one.
                    if (e.shiftKey) ref.current.focus();
                    else {
                        let walker = (0, _focus.getFocusableTreeWalker)(ref.current, {
                            tabbable: true
                        });
                        let next;
                        let last;
                        do {
                            last = walker.lastChild();
                            if (last) next = last;
                        }while (last);
                        if (next && !next.contains(document.activeElement)) (0, _utils.focusWithoutScrolling)(next);
                    }
                    break;
                }
        }
    };
    // Store the scroll position so we can restore it later.
    let scrollPos = (0, _react.useRef)({
        top: 0,
        left: 0
    });
    (0, _utils.useEvent)(scrollRef, "scroll", isVirtualized ? null : ()=>{
        scrollPos.current = {
            top: scrollRef.current.scrollTop,
            left: scrollRef.current.scrollLeft
        };
    });
    let onFocus = (e)=>{
        if (manager.isFocused) {
            // If a focus event bubbled through a portal, reset focus state.
            if (!e.currentTarget.contains(e.target)) manager.setFocused(false);
            return;
        }
        // Focus events can bubble through portals. Ignore these events.
        if (!e.currentTarget.contains(e.target)) return;
        manager.setFocused(true);
        if (manager.focusedKey == null) {
            let navigateToFirstKey = (key)=>{
                if (key != null) {
                    manager.setFocusedKey(key);
                    if (selectOnFocus) manager.replaceSelection(key);
                }
            };
            // If the user hasn't yet interacted with the collection, there will be no focusedKey set.
            // Attempt to detect whether the user is tabbing forward or backward into the collection
            // and either focus the first or last item accordingly.
            let relatedTarget = e.relatedTarget;
            var _manager_lastSelectedKey, _manager_firstSelectedKey;
            if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING) navigateToFirstKey((_manager_lastSelectedKey = manager.lastSelectedKey) !== null && _manager_lastSelectedKey !== void 0 ? _manager_lastSelectedKey : delegate.getLastKey());
            else navigateToFirstKey((_manager_firstSelectedKey = manager.firstSelectedKey) !== null && _manager_firstSelectedKey !== void 0 ? _manager_firstSelectedKey : delegate.getFirstKey());
        } else if (!isVirtualized) {
            // Restore the scroll position to what it was before.
            scrollRef.current.scrollTop = scrollPos.current.top;
            scrollRef.current.scrollLeft = scrollPos.current.left;
        }
        if (!isVirtualized && manager.focusedKey != null) {
            // Refocus and scroll the focused item into view if it exists within the scrollable region.
            let element = scrollRef.current.querySelector(`[data-key="${manager.focusedKey}"]`);
            if (element) {
                // This prevents a flash of focus on the first/last element in the collection, or the collection itself.
                if (!element.contains(document.activeElement)) (0, _utils.focusWithoutScrolling)(element);
                let modality = (0, _interactions.getInteractionModality)();
                if (modality === "keyboard") (0, _utils.scrollIntoViewport)(element, {
                    containingElement: ref.current
                });
            }
        }
    };
    let onBlur = (e)=>{
        // Don't set blurred and then focused again if moving focus within the collection.
        if (!e.currentTarget.contains(e.relatedTarget)) manager.setFocused(false);
    };
    const autoFocusRef = (0, _react.useRef)(autoFocus);
    (0, _react.useEffect)(()=>{
        if (autoFocusRef.current) {
            let focusedKey = null;
            // Check focus strategy to determine which item to focus
            if (autoFocus === "first") focusedKey = delegate.getFirstKey();
            if (autoFocus === "last") focusedKey = delegate.getLastKey();
            // If there are any selected keys, make the first one the new focus target
            let selectedKeys = manager.selectedKeys;
            if (selectedKeys.size) focusedKey = selectedKeys.values().next().value;
            manager.setFocused(true);
            manager.setFocusedKey(focusedKey);
            // If no default focus key is selected, focus the collection itself.
            if (focusedKey == null && !shouldUseVirtualFocus) (0, _focus.focusSafely)(ref.current);
        }
        autoFocusRef.current = false;
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
    // If not virtualized, scroll the focused element into view when the focusedKey changes.
    // When virtualized, Virtualizer handles this internally.
    let lastFocusedKey = (0, _react.useRef)(manager.focusedKey);
    (0, _react.useEffect)(()=>{
        let modality = (0, _interactions.getInteractionModality)();
        if (manager.isFocused && manager.focusedKey != null && (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {
            let element = scrollRef.current.querySelector(`[data-key="${manager.focusedKey}"]`);
            if (element && modality === "keyboard") {
                if (!isVirtualized) (0, _utils.scrollIntoView)(scrollRef.current, element);
                (0, _utils.scrollIntoViewport)(element, {
                    containingElement: ref.current
                });
            }
        }
        // If the focused key becomes null (e.g. the last item is deleted), focus the whole collection.
        if (manager.isFocused && manager.focusedKey == null && lastFocusedKey.current != null) (0, _focus.focusSafely)(ref.current);
        lastFocusedKey.current = manager.focusedKey;
    }, [
        isVirtualized,
        scrollRef,
        manager.focusedKey,
        manager.isFocused,
        ref
    ]);
    let handlers = {
        onKeyDown,
        onFocus,
        onBlur,
        onMouseDown (e) {
            // Ignore events that bubbled through portals.
            if (scrollRef.current === e.target) // Prevent focus going to the collection when clicking on the scrollbar.
            e.preventDefault();
        }
    };
    let { typeSelectProps  } = (0, _useTypeSelect.useTypeSelect)({
        keyboardDelegate: delegate,
        selectionManager: manager
    });
    if (!disallowTypeAhead) handlers = (0, _utils.mergeProps)(typeSelectProps, handlers);
    // If nothing is focused within the collection, make the collection itself tabbable.
    // This will be marshalled to either the first or last item depending on where focus came from.
    // If using virtual focus, don't set a tabIndex at all so that VoiceOver on iOS 14 doesn't try
    // to move real DOM focus to the element anyway.
    let tabIndex;
    if (!shouldUseVirtualFocus) tabIndex = manager.focusedKey == null ? 0 : -1;
    return {
        collectionProps: {
            ...handlers,
            tabIndex
        }
    };
}

},{"react":"react","@react-aria/focus":"cRsYs","@react-aria/utils":"5XGXZ","@react-aria/interactions":"3eipm","./utils":"8o68Z","@react-aria/i18n":"lHUec","./useTypeSelect":"iI3wT","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8o68Z":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "isNonContiguousSelectionModifier", ()=>isNonContiguousSelectionModifier);
parcelHelpers.export(exports, "isCtrlKeyPressed", ()=>isCtrlKeyPressed);
var _utils = require("@react-aria/utils");
function isNonContiguousSelectionModifier(e) {
    // Ctrl + Arrow Up/Arrow Down has a system wide meaning on macOS, so use Alt instead.
    // On Windows and Ubuntu, Alt + Space has a system wide meaning.
    return (0, _utils.isAppleDevice)() ? e.altKey : e.ctrlKey;
}
function isCtrlKeyPressed(e) {
    if ((0, _utils.isMac)()) return e.metaKey;
    return e.ctrlKey;
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iI3wT":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles typeahead interactions with collections.
 */ parcelHelpers.export(exports, "useTypeSelect", ()=>useTypeSelect);
var _react = require("react");
/**
 * Controls how long to wait before clearing the typeahead buffer.
 */ const TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000; // 1 second
function useTypeSelect(options) {
    let { keyboardDelegate , selectionManager , onTypeSelect  } = options;
    let state = (0, _react.useRef)({
        search: "",
        timeout: null
    }).current;
    let onKeyDown = (e)=>{
        let character = getStringForKey(e.key);
        if (!character || e.ctrlKey || e.metaKey || !e.currentTarget.contains(e.target)) return;
        // Do not propagate the Spacebar event if it's meant to be part of the search.
        // When we time out, the search term becomes empty, hence the check on length.
        // Trimming is to account for the case of pressing the Spacebar more than once,
        // which should cycle through the selection/deselection of the focused item.
        if (character === " " && state.search.trim().length > 0) {
            e.preventDefault();
            if (!("continuePropagation" in e)) e.stopPropagation();
        }
        state.search += character;
        // Use the delegate to find a key to focus.
        // Prioritize items after the currently focused item, falling back to searching the whole list.
        let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);
        // If no key found, search from the top.
        if (key == null) key = keyboardDelegate.getKeyForSearch(state.search);
        if (key != null) {
            selectionManager.setFocusedKey(key);
            if (onTypeSelect) onTypeSelect(key);
        }
        clearTimeout(state.timeout);
        state.timeout = setTimeout(()=>{
            state.search = "";
        }, TYPEAHEAD_DEBOUNCE_WAIT_MS);
    };
    return {
        typeSelectProps: {
            // Using a capturing listener to catch the keydown event before
            // other hooks in order to handle the Spacebar event.
            onKeyDownCapture: keyboardDelegate.getKeyForSearch ? onKeyDown : null
        }
    };
}
function getStringForKey(key) {
    // If the key is of length 1, it is an ASCII value.
    // Otherwise, if there are no ASCII characters in the key name,
    // it is a Unicode character.
    // See https://www.w3.org/TR/uievents-key/
    if (key.length === 1 || !/^[A-Z]/i.test(key)) return key;
    return "";
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9FY2L":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles interactions with an item in a selectable collection.
 */ parcelHelpers.export(exports, "useSelectableItem", ()=>useSelectableItem);
var _focus = require("@react-aria/focus");
var _utils = require("./utils");
var _react = require("react");
var _utils1 = require("@react-aria/utils");
var _interactions = require("@react-aria/interactions");
function useSelectableItem(options) {
    let { selectionManager: manager , key , ref , shouldSelectOnPressUp , shouldUseVirtualFocus , focus , isDisabled , onAction , allowsDifferentPressOrigin  } = options;
    let onSelect = (e)=>{
        if (e.pointerType === "keyboard" && (0, _utils.isNonContiguousSelectionModifier)(e)) manager.toggleSelection(key);
        else {
            if (manager.selectionMode === "none") return;
            if (manager.selectionMode === "single") {
                if (manager.isSelected(key) && !manager.disallowEmptySelection) manager.toggleSelection(key);
                else manager.replaceSelection(key);
            } else if (e && e.shiftKey) manager.extendSelection(key);
            else if (manager.selectionBehavior === "toggle" || e && ((0, _utils.isCtrlKeyPressed)(e) || e.pointerType === "touch" || e.pointerType === "virtual")) // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys
            manager.toggleSelection(key);
            else manager.replaceSelection(key);
        }
    };
    // Focus the associated DOM node when this item becomes the focusedKey
    (0, _react.useEffect)(()=>{
        let isFocused = key === manager.focusedKey;
        if (isFocused && manager.isFocused && !shouldUseVirtualFocus) {
            if (focus) focus();
            else if (document.activeElement !== ref.current) (0, _focus.focusSafely)(ref.current);
        }
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [
        ref,
        key,
        manager.focusedKey,
        manager.childFocusStrategy,
        manager.isFocused,
        shouldUseVirtualFocus
    ]);
    isDisabled = isDisabled || manager.isDisabled(key);
    // Set tabIndex to 0 if the element is focused, or -1 otherwise so that only the last focused
    // item is tabbable.  If using virtual focus, don't set a tabIndex at all so that VoiceOver
    // on iOS 14 doesn't try to move real DOM focus to the item anyway.
    let itemProps = {};
    if (!shouldUseVirtualFocus && !isDisabled) itemProps = {
        tabIndex: key === manager.focusedKey ? 0 : -1,
        onFocus (e) {
            if (e.target === ref.current) manager.setFocusedKey(key);
        }
    };
    else if (isDisabled) itemProps.onMouseDown = (e)=>{
        // Prevent focus going to the body when clicking on a disabled item.
        e.preventDefault();
    };
    // With checkbox selection, onAction (i.e. navigation) becomes primary, and occurs on a single click of the row.
    // Clicking the checkbox enters selection mode, after which clicking anywhere on any row toggles selection for that row.
    // With highlight selection, onAction is secondary, and occurs on double click. Single click selects the row.
    // With touch, onAction occurs on single tap, and long press enters selection mode.
    let allowsSelection = !isDisabled && manager.canSelectItem(key);
    let allowsActions = onAction && !isDisabled;
    let hasPrimaryAction = allowsActions && (manager.selectionBehavior === "replace" ? !allowsSelection : manager.isEmpty);
    let hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === "replace";
    let hasAction = hasPrimaryAction || hasSecondaryAction;
    let modality = (0, _react.useRef)(null);
    let longPressEnabled = hasAction && allowsSelection;
    let longPressEnabledOnPressStart = (0, _react.useRef)(false);
    let hadPrimaryActionOnPressStart = (0, _react.useRef)(false);
    // By default, selection occurs on pointer down. This can be strange if selecting an
    // item causes the UI to disappear immediately (e.g. menus).
    // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.
    // onPress requires a pointer down event on the same element as pointer up. For menus,
    // we want to be able to have the pointer down on the trigger that opens the menu and
    // the pointer up on the menu item rather than requiring a separate press.
    // For keyboard events, selection still occurs on key down.
    let itemPressProps = {};
    if (shouldSelectOnPressUp) {
        itemPressProps.onPressStart = (e)=>{
            modality.current = e.pointerType;
            longPressEnabledOnPressStart.current = longPressEnabled;
            if (e.pointerType === "keyboard" && (!hasAction || isSelectionKey())) onSelect(e);
        };
        // If allowsDifferentPressOrigin, make selection happen on pressUp (e.g. open menu on press down, selection on menu item happens on press up.)
        // Otherwise, have selection happen onPress (prevents listview row selection when clicking on interactable elements in the row)
        if (!allowsDifferentPressOrigin) itemPressProps.onPress = (e)=>{
            if (hasPrimaryAction || hasSecondaryAction && e.pointerType !== "mouse") {
                if (e.pointerType === "keyboard" && !isActionKey()) return;
                onAction();
            } else if (e.pointerType !== "keyboard") onSelect(e);
        };
        else {
            itemPressProps.onPressUp = (e)=>{
                if (e.pointerType !== "keyboard") onSelect(e);
            };
            itemPressProps.onPress = hasPrimaryAction ? ()=>onAction() : null;
        }
    } else {
        itemPressProps.onPressStart = (e)=>{
            modality.current = e.pointerType;
            longPressEnabledOnPressStart.current = longPressEnabled;
            hadPrimaryActionOnPressStart.current = hasPrimaryAction;
            // Select on mouse down unless there is a primary action which will occur on mouse up.
            // For keyboard, select on key down. If there is an action, the Space key selects on key down,
            // and the Enter key performs onAction on key up.
            if (e.pointerType === "mouse" && !hasPrimaryAction || e.pointerType === "keyboard" && (!onAction || isSelectionKey())) onSelect(e);
        };
        itemPressProps.onPress = (e)=>{
            // Selection occurs on touch up. Primary actions always occur on pointer up.
            // Both primary and secondary actions occur on Enter key up. The only exception
            // is secondary actions, which occur on double click with a mouse.
            if (e.pointerType === "touch" || e.pointerType === "pen" || e.pointerType === "virtual" || e.pointerType === "keyboard" && hasAction && isActionKey() || e.pointerType === "mouse" && hadPrimaryActionOnPressStart.current) {
                if (hasAction) onAction();
                else onSelect(e);
            }
        };
    }
    itemProps["data-key"] = key;
    itemPressProps.preventFocusOnPress = shouldUseVirtualFocus;
    let { pressProps , isPressed  } = (0, _interactions.usePress)(itemPressProps);
    // Double clicking with a mouse with selectionBehavior = 'replace' performs an action.
    let onDoubleClick = hasSecondaryAction ? (e)=>{
        if (modality.current === "mouse") {
            e.stopPropagation();
            e.preventDefault();
            onAction();
        }
    } : undefined;
    // Long pressing an item with touch when selectionBehavior = 'replace' switches the selection behavior
    // to 'toggle'. This changes the single tap behavior from performing an action (i.e. navigating) to
    // selecting, and may toggle the appearance of a UI affordance like checkboxes on each item.
    let { longPressProps  } = (0, _interactions.useLongPress)({
        isDisabled: !longPressEnabled,
        onLongPress (e) {
            if (e.pointerType === "touch") {
                onSelect(e);
                manager.setSelectionBehavior("toggle");
            }
        }
    });
    // Prevent native drag and drop on long press if we also select on long press.
    // Once the user is in selection mode, they can long press again to drag.
    // Use a capturing listener to ensure this runs before useDrag, regardless of
    // the order the props get merged.
    let onDragStartCapture = (e)=>{
        if (modality.current === "touch" && longPressEnabledOnPressStart.current) e.preventDefault();
    };
    return {
        itemProps: (0, _utils1.mergeProps)(itemProps, allowsSelection || hasPrimaryAction ? pressProps : {}, longPressEnabled ? longPressProps : {}, {
            onDoubleClick,
            onDragStartCapture
        }),
        isPressed,
        isSelected: manager.isSelected(key),
        isFocused: manager.isFocused && manager.focusedKey === key,
        isDisabled,
        allowsSelection,
        hasAction
    };
}
function isActionKey() {
    let event = window.event;
    return (event === null || event === void 0 ? void 0 : event.key) === "Enter";
}
function isSelectionKey() {
    let event = window.event;
    return (event === null || event === void 0 ? void 0 : event.key) === " " || (event === null || event === void 0 ? void 0 : event.code) === "Space";
}

},{"@react-aria/focus":"cRsYs","./utils":"8o68Z","react":"react","@react-aria/utils":"5XGXZ","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"dOFEX":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Handles interactions with a selectable list.
 */ parcelHelpers.export(exports, "useSelectableList", ()=>useSelectableList);
var _react = require("react");
var _listKeyboardDelegate = require("./ListKeyboardDelegate");
var _i18N = require("@react-aria/i18n");
var _useSelectableCollection = require("./useSelectableCollection");
function useSelectableList(props) {
    let { selectionManager , collection , disabledKeys , ref , keyboardDelegate , autoFocus , shouldFocusWrap , isVirtualized , disallowEmptySelection , selectOnFocus =selectionManager.selectionBehavior === "replace" , disallowTypeAhead , shouldUseVirtualFocus , allowsTabNavigation  } = props;
    // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).
    // When virtualized, the layout object will be passed in as a prop and override this.
    let collator = (0, _i18N.useCollator)({
        usage: "search",
        sensitivity: "base"
    });
    let disabledBehavior = selectionManager.disabledBehavior;
    let delegate = (0, _react.useMemo)(()=>keyboardDelegate || new (0, _listKeyboardDelegate.ListKeyboardDelegate)(collection, disabledBehavior === "selection" ? new Set() : disabledKeys, ref, collator), [
        keyboardDelegate,
        collection,
        disabledKeys,
        ref,
        collator,
        disabledBehavior
    ]);
    let { collectionProps  } = (0, _useSelectableCollection.useSelectableCollection)({
        ref,
        selectionManager,
        keyboardDelegate: delegate,
        autoFocus,
        shouldFocusWrap,
        disallowEmptySelection,
        selectOnFocus,
        disallowTypeAhead,
        shouldUseVirtualFocus,
        allowsTabNavigation,
        isVirtualized,
        scrollRef: ref
    });
    return {
        listProps: collectionProps
    };
}

},{"react":"react","./ListKeyboardDelegate":"jiGsf","@react-aria/i18n":"lHUec","./useSelectableCollection":"glBub","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jiGsf":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ListKeyboardDelegate", ()=>ListKeyboardDelegate);
var _utils = require("@react-aria/utils");
class ListKeyboardDelegate {
    getNextKey(key) {
        key = this.collection.getKeyAfter(key);
        while(key != null){
            let item = this.collection.getItem(key);
            if (item.type === "item" && !this.disabledKeys.has(key)) return key;
            key = this.collection.getKeyAfter(key);
        }
        return null;
    }
    getPreviousKey(key) {
        key = this.collection.getKeyBefore(key);
        while(key != null){
            let item = this.collection.getItem(key);
            if (item.type === "item" && !this.disabledKeys.has(key)) return key;
            key = this.collection.getKeyBefore(key);
        }
        return null;
    }
    findKey(key, nextKey, shouldSkip) {
        let item = this.getItem(key);
        if (!item) return null;
        // Find the item above or below in the same column.
        let prevRect = item.getBoundingClientRect();
        do {
            key = nextKey(key);
            item = this.getItem(key);
        }while (item && shouldSkip(prevRect, item.getBoundingClientRect()));
        return key;
    }
    isSameRow(prevRect, itemRect) {
        return prevRect.top === itemRect.top || prevRect.left !== itemRect.left;
    }
    isSameColumn(prevRect, itemRect) {
        return prevRect.left === itemRect.left || prevRect.top !== itemRect.top;
    }
    getKeyBelow(key) {
        if (this.layout === "grid" && this.orientation === "vertical") return this.findKey(key, (key)=>this.getNextKey(key), this.isSameRow);
        else return this.getNextKey(key);
    }
    getKeyAbove(key) {
        if (this.layout === "grid" && this.orientation === "vertical") return this.findKey(key, (key)=>this.getPreviousKey(key), this.isSameRow);
        else return this.getPreviousKey(key);
    }
    getNextColumn(key, right) {
        return right ? this.getPreviousKey(key) : this.getNextKey(key);
    }
    getKeyRightOf(key) {
        if (this.layout === "grid") {
            if (this.orientation === "vertical") return this.getNextColumn(key, this.direction === "rtl");
            else return this.findKey(key, (key)=>this.getNextColumn(key, this.direction === "rtl"), this.isSameColumn);
        } else if (this.orientation === "horizontal") return this.getNextColumn(key, this.direction === "rtl");
        return null;
    }
    getKeyLeftOf(key) {
        if (this.layout === "grid") {
            if (this.orientation === "vertical") return this.getNextColumn(key, this.direction === "ltr");
            else return this.findKey(key, (key)=>this.getNextColumn(key, this.direction === "ltr"), this.isSameColumn);
        } else if (this.orientation === "horizontal") return this.getNextColumn(key, this.direction === "ltr");
        return null;
    }
    getFirstKey() {
        let key = this.collection.getFirstKey();
        while(key != null){
            let item = this.collection.getItem(key);
            if (item.type === "item" && !this.disabledKeys.has(key)) return key;
            key = this.collection.getKeyAfter(key);
        }
        return null;
    }
    getLastKey() {
        let key = this.collection.getLastKey();
        while(key != null){
            let item = this.collection.getItem(key);
            if (item.type === "item" && !this.disabledKeys.has(key)) return key;
            key = this.collection.getKeyBefore(key);
        }
        return null;
    }
    getItem(key) {
        return this.ref.current.querySelector(`[data-key="${key}"]`);
    }
    getKeyPageAbove(key) {
        let menu = this.ref.current;
        let item = this.getItem(key);
        if (!item) return null;
        if (!(0, _utils.isScrollable)(menu)) return this.getFirstKey();
        let containerRect = menu.getBoundingClientRect();
        let itemRect = item.getBoundingClientRect();
        if (this.orientation === "horizontal") {
            let containerX = containerRect.x - menu.scrollLeft;
            let pageX = Math.max(0, itemRect.x - containerX + itemRect.width - containerRect.width);
            while(item && itemRect.x - containerX > pageX){
                key = this.getKeyAbove(key);
                item = key == null ? null : this.getItem(key);
                itemRect = item === null || item === void 0 ? void 0 : item.getBoundingClientRect();
            }
        } else {
            let containerY = containerRect.y - menu.scrollTop;
            let pageY = Math.max(0, itemRect.y - containerY + itemRect.height - containerRect.height);
            while(item && itemRect.y - containerY > pageY){
                key = this.getKeyAbove(key);
                item = key == null ? null : this.getItem(key);
                itemRect = item === null || item === void 0 ? void 0 : item.getBoundingClientRect();
            }
        }
        return key !== null && key !== void 0 ? key : this.getFirstKey();
    }
    getKeyPageBelow(key) {
        let menu = this.ref.current;
        let item = this.getItem(key);
        if (!item) return null;
        if (!(0, _utils.isScrollable)(menu)) return this.getLastKey();
        let containerRect = menu.getBoundingClientRect();
        let itemRect = item.getBoundingClientRect();
        if (this.orientation === "horizontal") {
            let containerX = containerRect.x - menu.scrollLeft;
            let pageX = Math.min(menu.scrollWidth, itemRect.x - containerX - itemRect.width + containerRect.width);
            while(item && itemRect.x - containerX < pageX){
                key = this.getKeyBelow(key);
                item = key == null ? null : this.getItem(key);
                itemRect = item === null || item === void 0 ? void 0 : item.getBoundingClientRect();
            }
        } else {
            let containerY = containerRect.y - menu.scrollTop;
            let pageY = Math.min(menu.scrollHeight, itemRect.y - containerY - itemRect.height + containerRect.height);
            while(item && itemRect.y - containerY < pageY){
                key = this.getKeyBelow(key);
                item = key == null ? null : this.getItem(key);
                itemRect = item === null || item === void 0 ? void 0 : item.getBoundingClientRect();
            }
        }
        return key !== null && key !== void 0 ? key : this.getLastKey();
    }
    getKeyForSearch(search, fromKey) {
        if (!this.collator) return null;
        let collection = this.collection;
        let key = fromKey || this.getFirstKey();
        while(key != null){
            let item = collection.getItem(key);
            let substring = item.textValue.slice(0, search.length);
            if (item.textValue && this.collator.compare(substring, search) === 0) return key;
            key = this.getKeyBelow(key);
        }
        return null;
    }
    constructor(...args){
        if (args.length === 1) {
            let opts = args[0];
            this.collection = opts.collection;
            this.ref = opts.ref;
            this.disabledKeys = opts.disabledKeys || new Set();
            this.orientation = opts.orientation;
            this.direction = opts.direction;
            this.layout = opts.layout || "stack";
        } else {
            this.collection = args[0];
            this.disabledKeys = args[1];
            this.ref = args[2];
            this.collator = args[3];
            this.layout = "stack";
            this.orientation = "vertical";
        }
        // If this is a vertical stack, remove the left/right methods completely
        // so they aren't called by useDroppableCollection.
        if (this.layout === "stack" && this.orientation === "vertical") {
            this.getKeyLeftOf = undefined;
            this.getKeyRightOf = undefined;
        }
    }
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jYnRx":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for an item in a menu.
 * See `useMenu` for more details about menus.
 * @param props - Props for the item.
 * @param state - State for the menu, as returned by `useTreeState`.
 */ parcelHelpers.export(exports, "useMenuItem", ()=>useMenuItem);
var _focus = require("@react-aria/focus");
var _collections = require("@react-stately/collections");
var _interactions = require("@react-aria/interactions");
var _react = require("react");
var _useMenu = require("./useMenu");
var _utils = require("@react-aria/utils");
var _i18N = require("@react-aria/i18n");
var _selection = require("@react-aria/selection");
function useMenuItem(props, state, ref) {
    let { key , closeOnSelect , isVirtualized , "aria-haspopup": hasPopup  } = props;
    let { direction  } = (0, _i18N.useLocale)();
    let isTrigger = !!hasPopup;
    let isOpen = state.expandedKeys.has(key);
    var _props_isDisabled;
    let isDisabled = (_props_isDisabled = props.isDisabled) !== null && _props_isDisabled !== void 0 ? _props_isDisabled : state.disabledKeys.has(key);
    var _props_isSelected;
    let isSelected = (_props_isSelected = props.isSelected) !== null && _props_isSelected !== void 0 ? _props_isSelected : state.selectionManager.isSelected(key);
    let openTimeout = (0, _react.useRef)();
    let cancelOpenTimeout = (0, _react.useCallback)(()=>{
        if (openTimeout.current) {
            clearTimeout(openTimeout.current);
            openTimeout.current = undefined;
        }
    }, [
        openTimeout
    ]);
    let onSubmenuOpen = (0, _utils.useEffectEvent)(()=>{
        cancelOpenTimeout();
        state.setExpandedKeys(new Set([
            key
        ]));
    });
    (0, _utils.useLayoutEffect)(()=>{
        return ()=>cancelOpenTimeout();
    }, [
        cancelOpenTimeout
    ]);
    let data = (0, _useMenu.menuData).get(state);
    let onClose = props.onClose || data.onClose;
    let onActionMenuDialogTrigger = (0, _react.useCallback)(()=>{
        onSubmenuOpen();
    // will need to disable this lint rule when using useEffectEvent https://react.dev/learn/separating-events-from-effects#logic-inside-effects-is-reactive
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
    let onAction = isTrigger ? onActionMenuDialogTrigger : props.onAction || data.onAction;
    let role = "menuitem";
    if (state.selectionManager.selectionMode === "single") role = "menuitemradio";
    else if (state.selectionManager.selectionMode === "multiple") role = "menuitemcheckbox";
    let labelId = (0, _utils.useSlotId)();
    let descriptionId = (0, _utils.useSlotId)();
    let keyboardId = (0, _utils.useSlotId)();
    let ariaProps = {
        "aria-disabled": isDisabled || undefined,
        role,
        "aria-label": props["aria-label"],
        "aria-labelledby": labelId,
        "aria-describedby": [
            descriptionId,
            keyboardId
        ].filter(Boolean).join(" ") || undefined
    };
    if (state.selectionManager.selectionMode !== "none") ariaProps["aria-checked"] = isSelected;
    if (isVirtualized) {
        ariaProps["aria-posinset"] = state.collection.getItem(key).index;
        ariaProps["aria-setsize"] = (0, _collections.getItemCount)(state.collection);
    }
    if (hasPopup != null) {
        ariaProps["aria-haspopup"] = hasPopup;
        ariaProps["aria-expanded"] = isOpen ? "true" : "false";
    }
    let onPressStart = (e)=>{
        if (e.pointerType === "keyboard" && onAction) onAction(key);
    };
    let onPressUp = (e)=>{
        if (e.pointerType !== "keyboard") {
            if (onAction) onAction(key);
            // Pressing a menu item should close by default in single selection mode but not multiple
            // selection mode, except if overridden by the closeOnSelect prop.
            if (!isTrigger && onClose && (closeOnSelect !== null && closeOnSelect !== void 0 ? closeOnSelect : state.selectionManager.selectionMode !== "multiple")) onClose();
        }
    };
    let { itemProps , isFocused  } = (0, _selection.useSelectableItem)({
        selectionManager: state.selectionManager,
        key,
        ref,
        shouldSelectOnPressUp: true,
        allowsDifferentPressOrigin: true
    });
    let { pressProps , isPressed  } = (0, _interactions.usePress)({
        onPressStart,
        onPressUp,
        isDisabled: isDisabled || isTrigger && state.expandedKeys.has(key)
    });
    let { hoverProps  } = (0, _interactions.useHover)({
        isDisabled,
        onHoverStart () {
            if (!(0, _interactions.isFocusVisible)() && !(isTrigger && state.expandedKeys.has(key))) {
                state.selectionManager.setFocused(true);
                state.selectionManager.setFocusedKey(key);
                // focus immediately so that a focus scope opened on hover has the correct restore node
                let isFocused = key === state.selectionManager.focusedKey;
                if (isFocused && state.selectionManager.isFocused && document.activeElement !== ref.current) (0, _focus.focusSafely)(ref.current);
            }
        },
        onHoverChange: (isHovered)=>{
            if (isHovered && isTrigger && !state.expandedKeys.has(key)) {
                if (!openTimeout.current) openTimeout.current = setTimeout(()=>{
                    onSubmenuOpen();
                }, 200);
            } else if (!isHovered) cancelOpenTimeout();
        }
    });
    let { keyboardProps  } = (0, _interactions.useKeyboard)({
        onKeyDown: (e)=>{
            // Ignore repeating events, which may have started on the menu trigger before moving
            // focus to the menu item. We want to wait for a second complete key press sequence.
            if (e.repeat) {
                e.continuePropagation();
                return;
            }
            switch(e.key){
                case " ":
                    if (!isDisabled && state.selectionManager.selectionMode === "none" && !isTrigger && closeOnSelect !== false && onClose) onClose();
                    break;
                case "Enter":
                    // The Enter key should always close on select, except if overridden.
                    if (!isDisabled && closeOnSelect !== false && !isTrigger && onClose) onClose();
                    break;
                case "ArrowRight":
                    if (isTrigger && direction === "ltr") onSubmenuOpen();
                    else e.continuePropagation();
                    break;
                case "ArrowLeft":
                    if (isTrigger && direction === "rtl") onSubmenuOpen();
                    else e.continuePropagation();
                    break;
                default:
                    e.continuePropagation();
                    break;
            }
        }
    });
    return {
        menuItemProps: {
            ...ariaProps,
            ...(0, _utils.mergeProps)(itemProps, pressProps, hoverProps, keyboardProps)
        },
        labelProps: {
            id: labelId
        },
        descriptionProps: {
            id: descriptionId
        },
        keyboardShortcutProps: {
            id: keyboardId
        },
        isFocused,
        isSelected,
        isPressed,
        isDisabled
    };
}

},{"@react-aria/focus":"cRsYs","@react-stately/collections":"l5k8z","@react-aria/interactions":"3eipm","react":"react","./useMenu":"kphwG","@react-aria/utils":"5XGXZ","@react-aria/i18n":"lHUec","@react-aria/selection":"eGIVv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"l5k8z":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Item", ()=>(0, _item.Item));
parcelHelpers.export(exports, "Section", ()=>(0, _section.Section));
parcelHelpers.export(exports, "useCollection", ()=>(0, _useCollection.useCollection));
parcelHelpers.export(exports, "getItemCount", ()=>(0, _getItemCount.getItemCount));
parcelHelpers.export(exports, "getChildNodes", ()=>(0, _getChildNodes.getChildNodes));
parcelHelpers.export(exports, "getFirstItem", ()=>(0, _getChildNodes.getFirstItem));
parcelHelpers.export(exports, "getLastItem", ()=>(0, _getChildNodes.getLastItem));
parcelHelpers.export(exports, "getNthItem", ()=>(0, _getChildNodes.getNthItem));
parcelHelpers.export(exports, "compareNodeOrder", ()=>(0, _getChildNodes.compareNodeOrder));
parcelHelpers.export(exports, "CollectionBuilder", ()=>(0, _collectionBuilder.CollectionBuilder));
var _item = require("./Item");
var _section = require("./Section");
var _useCollection = require("./useCollection");
var _getItemCount = require("./getItemCount");
var _getChildNodes = require("./getChildNodes");
var _collectionBuilder = require("./CollectionBuilder");

},{"./Item":"fqZQf","./Section":"hL90O","./useCollection":"lAe6H","./getItemCount":"8jnp1","./getChildNodes":"gyyQD","./CollectionBuilder":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fqZQf":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Item", ()=>_Item);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
function Item(props) {
    return null;
}
Item.getCollectionNode = function* getCollectionNode(props, context) {
    let { childItems , title , children  } = props;
    let rendered = props.title || props.children;
    let textValue = props.textValue || (typeof rendered === "string" ? rendered : "") || props["aria-label"] || "";
    // suppressTextValueWarning is used in components like Tabs, which don't have type to select support.
    if (!textValue && !(context === null || context === void 0 ? void 0 : context.suppressTextValueWarning)) console.warn("<Item> with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.");
    yield {
        type: "item",
        props: props,
        rendered,
        textValue,
        "aria-label": props["aria-label"],
        hasChildNodes: hasChildItems(props),
        *childNodes () {
            if (childItems) for (let child of childItems)yield {
                type: "item",
                value: child
            };
            else if (title) {
                let items = [];
                (0, _reactDefault.default).Children.forEach(children, (child)=>{
                    items.push({
                        type: "item",
                        element: child
                    });
                });
                yield* items;
            }
        }
    };
};
function hasChildItems(props) {
    if (props.hasChildItems != null) return props.hasChildItems;
    if (props.childItems) return true;
    if (props.title && (0, _reactDefault.default).Children.count(props.children) > 0) return true;
    return false;
}
// We don't want getCollectionNode to show up in the type definition
let _Item = Item;

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hL90O":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Section", ()=>_Section);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
function Section(props) {
    return null;
}
Section.getCollectionNode = function* getCollectionNode(props) {
    let { children , title , items  } = props;
    yield {
        type: "section",
        props: props,
        hasChildNodes: true,
        rendered: title,
        "aria-label": props["aria-label"],
        *childNodes () {
            if (typeof children === "function") {
                if (!items) throw new Error("props.children was a function but props.items is missing");
                for (let item of items)yield {
                    type: "item",
                    value: item,
                    renderer: children
                };
            } else {
                let items = [];
                (0, _reactDefault.default).Children.forEach(children, (child)=>{
                    items.push({
                        type: "item",
                        element: child
                    });
                });
                yield* items;
            }
        }
    };
};
// We don't want getCollectionNode to show up in the type definition
let _Section = Section;

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"lAe6H":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useCollection", ()=>useCollection);
var _collectionBuilder = require("./CollectionBuilder");
var _react = require("react");
function useCollection(props, factory, context) {
    let builder = (0, _react.useMemo)(()=>new (0, _collectionBuilder.CollectionBuilder)(), []);
    let { children , items , collection  } = props;
    let result = (0, _react.useMemo)(()=>{
        if (collection) return collection;
        let nodes = builder.build({
            children,
            items
        }, context);
        return factory(nodes);
    }, [
        builder,
        children,
        items,
        collection,
        context,
        factory
    ]);
    return result;
}

},{"./CollectionBuilder":"d1UtA","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"d1UtA":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "CollectionBuilder", ()=>CollectionBuilder);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
class CollectionBuilder {
    build(props, context) {
        this.context = context;
        return iterable(()=>this.iterateCollection(props));
    }
    *iterateCollection(props) {
        let { children , items  } = props;
        if (typeof children === "function") {
            if (!items) throw new Error("props.children was a function but props.items is missing");
            for (let item of props.items)yield* this.getFullNode({
                value: item
            }, {
                renderer: children
            });
        } else {
            let items = [];
            (0, _reactDefault.default).Children.forEach(children, (child)=>{
                items.push(child);
            });
            let index = 0;
            for (let item of items){
                let nodes = this.getFullNode({
                    element: item,
                    index: index
                }, {});
                for (let node of nodes){
                    index++;
                    yield node;
                }
            }
        }
    }
    getKey(item, partialNode, state, parentKey) {
        if (item.key != null) return item.key;
        if (partialNode.type === "cell" && partialNode.key != null) return `${parentKey}${partialNode.key}`;
        let v = partialNode.value;
        if (v != null) {
            var _v_key;
            let key = (_v_key = v.key) !== null && _v_key !== void 0 ? _v_key : v.id;
            if (key == null) throw new Error("No key found for item");
            return key;
        }
        return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;
    }
    getChildState(state, partialNode) {
        return {
            renderer: partialNode.renderer || state.renderer
        };
    }
    *getFullNode(partialNode, state, parentKey, parentNode) {
        // If there's a value instead of an element on the node, and a parent renderer function is available,
        // use it to render an element for the value.
        let element = partialNode.element;
        if (!element && partialNode.value && state && state.renderer) {
            let cached = this.cache.get(partialNode.value);
            if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {
                cached.index = partialNode.index;
                cached.parentKey = parentNode ? parentNode.key : null;
                yield cached;
                return;
            }
            element = state.renderer(partialNode.value);
        }
        // If there's an element with a getCollectionNode function on its type, then it's a supported component.
        // Call this function to get a partial node, and recursively build a full node from there.
        if ((0, _reactDefault.default).isValidElement(element)) {
            let type = element.type;
            if (typeof type !== "function" && typeof type.getCollectionNode !== "function") {
                let name = typeof element.type === "function" ? element.type.name : element.type;
                throw new Error(`Unknown element <${name}> in collection.`);
            }
            let childNodes = type.getCollectionNode(element.props, this.context);
            let index = partialNode.index;
            let result = childNodes.next();
            while(!result.done && result.value){
                let childNode = result.value;
                partialNode.index = index;
                let nodeKey = childNode.key;
                if (!nodeKey) nodeKey = childNode.element ? null : this.getKey(element, partialNode, state, parentKey);
                let nodes = this.getFullNode({
                    ...childNode,
                    key: nodeKey,
                    index,
                    wrapper: compose(partialNode.wrapper, childNode.wrapper)
                }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);
                let children = [
                    ...nodes
                ];
                for (let node of children){
                    // Cache the node based on its value
                    node.value = childNode.value || partialNode.value;
                    if (node.value) this.cache.set(node.value, node);
                    // The partial node may have specified a type for the child in order to specify a constraint.
                    // Verify that the full node that was built recursively matches this type.
                    if (partialNode.type && node.type !== partialNode.type) throw new Error(`Unsupported type <${capitalize(node.type)}> in <${capitalize(parentNode.type)}>. Only <${capitalize(partialNode.type)}> is supported.`);
                    index++;
                    yield node;
                }
                result = childNodes.next(children);
            }
            return;
        }
        // Ignore invalid elements
        if (partialNode.key == null) return;
        // Create full node
        let builder = this;
        let node = {
            type: partialNode.type,
            props: partialNode.props,
            key: partialNode.key,
            parentKey: parentNode ? parentNode.key : null,
            value: partialNode.value,
            level: parentNode ? parentNode.level + 1 : 0,
            index: partialNode.index,
            rendered: partialNode.rendered,
            textValue: partialNode.textValue,
            "aria-label": partialNode["aria-label"],
            wrapper: partialNode.wrapper,
            shouldInvalidate: partialNode.shouldInvalidate,
            hasChildNodes: partialNode.hasChildNodes,
            childNodes: iterable(function*() {
                if (!partialNode.hasChildNodes) return;
                let index = 0;
                for (let child of partialNode.childNodes()){
                    // Ensure child keys are globally unique by prepending the parent node's key
                    if (child.key != null) // TODO: Remove this line entirely and enforce that users always provide unique keys.
                    // Currently this line will have issues when a parent has a key `a` and a child with key `bc`
                    // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both
                    // children having a key of `abc`.
                    child.key = `${node.key}${child.key}`;
                    child.index = index;
                    let nodes = builder.getFullNode(child, builder.getChildState(state, child), node.key, node);
                    for (let node of nodes){
                        index++;
                        yield node;
                    }
                }
            })
        };
        yield node;
    }
    constructor(){
        this.cache = new WeakMap();
    }
}
// Wraps an iterator function as an iterable object, and caches the results.
function iterable(iterator) {
    let cache = [];
    let iterable = null;
    return {
        *[Symbol.iterator] () {
            for (let item of cache)yield item;
            if (!iterable) iterable = iterator();
            for (let item of iterable){
                cache.push(item);
                yield item;
            }
        }
    };
}
function compose(outer, inner) {
    if (outer && inner) return (element)=>outer(inner(element));
    if (outer) return outer;
    if (inner) return inner;
}
function capitalize(str) {
    return str[0].toUpperCase() + str.slice(1);
}

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8jnp1":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getItemCount", ()=>getItemCount);
var _getChildNodes = require("./getChildNodes");
const cache = new WeakMap();
function getItemCount(collection) {
    let count = cache.get(collection);
    if (count != null) return count;
    count = 0;
    let countItems = (items)=>{
        for (let item of items)if (item.type === "section") countItems((0, _getChildNodes.getChildNodes)(item, collection));
        else count++;
    };
    countItems(collection);
    cache.set(collection, count);
    return count;
}

},{"./getChildNodes":"gyyQD","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gyyQD":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getChildNodes", ()=>getChildNodes);
parcelHelpers.export(exports, "getFirstItem", ()=>getFirstItem);
parcelHelpers.export(exports, "getNthItem", ()=>getNthItem);
parcelHelpers.export(exports, "getLastItem", ()=>getLastItem);
parcelHelpers.export(exports, "compareNodeOrder", ()=>compareNodeOrder);
function getChildNodes(node, collection) {
    // New API: call collection.getChildren with the node key.
    if (typeof collection.getChildren === "function") return collection.getChildren(node.key);
    // Old API: access childNodes directly.
    return node.childNodes;
}
function getFirstItem(iterable) {
    return getNthItem(iterable, 0);
}
function getNthItem(iterable, index) {
    if (index < 0) return undefined;
    let i = 0;
    for (let item of iterable){
        if (i === index) return item;
        i++;
    }
}
function getLastItem(iterable) {
    let lastItem = undefined;
    for (let value of iterable)lastItem = value;
    return lastItem;
}
function compareNodeOrder(collection, a, b) {
    // If the two nodes have the same parent, compare their indices.
    if (a.parentKey === b.parentKey) return a.index - b.index;
    // Otherwise, collect all of the ancestors from each node, and find the first one that doesn't match starting from the root.
    // Include the base nodes in case we are comparing nodes of different levels so that we can compare the higher node to the lower level node's
    // ancestor of the same level
    let aAncestors = [
        ...getAncestors(collection, a),
        a
    ];
    let bAncestors = [
        ...getAncestors(collection, b),
        b
    ];
    let firstNonMatchingAncestor = aAncestors.slice(0, bAncestors.length).findIndex((a, i)=>a !== bAncestors[i]);
    if (firstNonMatchingAncestor !== -1) {
        // Compare the indices of two children within the common ancestor.
        a = aAncestors[firstNonMatchingAncestor];
        b = bAncestors[firstNonMatchingAncestor];
        return a.index - b.index;
    }
    // If there isn't a non matching ancestor, we might be in a case where one of the nodes is the ancestor of the other.
    if (aAncestors.findIndex((node)=>node === b) >= 0) return 1;
    else if (bAncestors.findIndex((node)=>node === a) >= 0) return -1;
    // 🤷
    return -1;
}
function getAncestors(collection, node) {
    let parents = [];
    while((node === null || node === void 0 ? void 0 : node.parentKey) != null){
        node = collection.getItem(node.parentKey);
        parents.unshift(node);
    }
    return parents;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"mz7at":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a section in a menu.
 * See `useMenu` for more details about menus.
 * @param props - Props for the section.
 */ parcelHelpers.export(exports, "useMenuSection", ()=>useMenuSection);
var _utils = require("@react-aria/utils");
function useMenuSection(props) {
    let { heading , "aria-label": ariaLabel  } = props;
    let headingId = (0, _utils.useId)();
    return {
        itemProps: {
            role: "presentation"
        },
        headingProps: heading ? {
            // Techincally, menus cannot contain headings according to ARIA.
            // We hide the heading from assistive technology, using role="presentation",
            // and only use it as a label for the nested group.
            id: headingId,
            role: "presentation"
        } : {},
        groupProps: {
            role: "group",
            "aria-label": ariaLabel,
            "aria-labelledby": heading ? headingId : undefined
        }
    };
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fFYSZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useMenuTriggerState", ()=>(0, _useMenuTriggerState.useMenuTriggerState));
var _useMenuTriggerState = require("./useMenuTriggerState");

},{"./useMenuTriggerState":"hftaQ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hftaQ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Manages state for a menu trigger. Tracks whether the menu is currently open,
 * and controls which item will receive focus when it opens.
 */ parcelHelpers.export(exports, "useMenuTriggerState", ()=>useMenuTriggerState);
var _overlays = require("@react-stately/overlays");
var _react = require("react");
function useMenuTriggerState(props) {
    let overlayTriggerState = (0, _overlays.useOverlayTriggerState)(props);
    let [focusStrategy, setFocusStrategy] = (0, _react.useState)(null);
    return {
        focusStrategy,
        ...overlayTriggerState,
        open (focusStrategy = null) {
            setFocusStrategy(focusStrategy);
            overlayTriggerState.open();
        },
        toggle (focusStrategy = null) {
            setFocusStrategy(focusStrategy);
            overlayTriggerState.toggle();
        }
    };
}

},{"@react-stately/overlays":"hh16o","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"hh16o":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useOverlayTriggerState", ()=>(0, _useOverlayTriggerState.useOverlayTriggerState));
var _useOverlayTriggerState = require("./useOverlayTriggerState");

},{"./useOverlayTriggerState":"f6zWw","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"f6zWw":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Manages state for an overlay trigger. Tracks whether the overlay is open, and provides
 * methods to toggle this state.
 */ parcelHelpers.export(exports, "useOverlayTriggerState", ()=>useOverlayTriggerState);
var _react = require("react");
var _utils = require("@react-stately/utils");
function useOverlayTriggerState(props) {
    let [isOpen, setOpen] = (0, _utils.useControlledState)(props.isOpen, props.defaultOpen || false, props.onOpenChange);
    const open = (0, _react.useCallback)(()=>{
        setOpen(true);
    }, [
        setOpen
    ]);
    const close = (0, _react.useCallback)(()=>{
        setOpen(false);
    }, [
        setOpen
    ]);
    const toggle = (0, _react.useCallback)(()=>{
        setOpen(!isOpen);
    }, [
        setOpen,
        isOpen
    ]);
    return {
        isOpen,
        setOpen,
        open,
        close,
        toggle
    };
}

},{"react":"react","@react-stately/utils":"4oVZw","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iA2YC":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Menu", ()=>_Menu);
var _utils = require("@react-spectrum/utils");
var _focus = require("@react-aria/focus");
var _context = require("./context");
var _menuItem = require("./MenuItem");
var _menuSection = require("./MenuSection");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _menu = require("@react-aria/menu");
var _tree = require("@react-stately/tree");
function Menu(props, ref) {
    let contextProps = (0, _react.useContext)((0, _context.MenuContext));
    let completeProps = {
        ...(0, _utils1.mergeProps)(contextProps, props)
    };
    let domRef = (0, _utils.useDOMRef)(ref);
    let scopedRef = (0, _react.useRef)(null);
    let state = (0, _tree.useTreeState)(completeProps);
    let { menuProps  } = (0, _menu.useMenu)(completeProps, state, domRef);
    let { styleProps  } = (0, _utils.useStyleProps)(completeProps);
    (0, _utils1.useSyncRef)(contextProps, domRef);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.MenuStateContext).Provider, {
        value: {
            state,
            container: scopedRef,
            menu: domRef
        }
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusScope), {
        contain: state.expandedKeys.size > 0
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("ul", {
        ...menuProps,
        ...styleProps,
        ref: domRef,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu", styleProps.className)
    }, [
        ...state.collection
    ].map((item)=>{
        if (item.type === "section") return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _menuSection.MenuSection), {
            key: item.key,
            item: item,
            state: state,
            onAction: completeProps.onAction
        });
        let menuItem = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _menuItem.MenuItem), {
            key: item.key,
            item: item,
            state: state,
            onAction: completeProps.onAction
        });
        if (item.wrapper) menuItem = item.wrapper(menuItem);
        return menuItem;
    })), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ref: scopedRef
    })));
}
/**
 * Menus display a list of actions or options that a user can choose.
 */ // forwardRef doesn't support generic parameters, so cast the result to the correct type
// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref
const _Menu = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Menu);

},{"@react-spectrum/utils":"cYYzN","@react-aria/focus":"cRsYs","./context":"ahvzL","./MenuItem":"1Scdm","./MenuSection":"cG7Mw","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-aria/menu":"6OCiJ","@react-stately/tree":"5qSyX","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1Scdm":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/** @private */ parcelHelpers.export(exports, "MenuItem", ()=>MenuItem);
var _checkmarkMedium = require("@spectrum-icons/ui/CheckmarkMedium");
var _checkmarkMediumDefault = parcelHelpers.interopDefault(_checkmarkMedium);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _focus = require("@react-aria/focus");
var _layout = require("@react-spectrum/layout");
var _infoOutline = require("@spectrum-icons/workflow/InfoOutline");
var _infoOutlineDefault = parcelHelpers.interopDefault(_infoOutline);
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _text = require("@react-spectrum/text");
var _i18N = require("@react-aria/i18n");
var _context = require("./context");
var _menu = require("@react-aria/menu");
function MenuItem(props) {
    let { item , state , isVirtualized , onAction  } = props;
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let menuDialogContext = (0, _context.useMenuDialogContext)();
    let { triggerRef  } = menuDialogContext || {};
    let isMenuDialogTrigger = !!menuDialogContext;
    let isUnavailable = false;
    if (isMenuDialogTrigger) isUnavailable = menuDialogContext.isUnavailable;
    let domProps = (0, _utils1.filterDOMProps)(item.props);
    let { onClose , closeOnSelect  } = (0, _context.useMenuContext)();
    let { rendered , key  } = item;
    let isSelected = state.selectionManager.isSelected(key);
    let isDisabled = state.disabledKeys.has(key);
    let itemref = (0, _react.useRef)(null);
    let ref = (0, _utils1.useObjectRef)((0, _react.useMemo)(()=>(0, _utils1.mergeRefs)(itemref, triggerRef), [
        itemref,
        triggerRef
    ]));
    let { menuItemProps , labelProps , descriptionProps , keyboardShortcutProps  } = (0, _menu.useMenuItem)({
        isSelected,
        isDisabled,
        "aria-label": item["aria-label"],
        key,
        onClose,
        closeOnSelect,
        isVirtualized,
        onAction,
        "aria-haspopup": isMenuDialogTrigger && isUnavailable ? "dialog" : undefined
    }, state, ref);
    let endId = (0, _utils1.useSlotId)();
    let endProps = {};
    if (endId) {
        endProps.id = endId;
        menuItemProps["aria-describedby"] = [
            menuItemProps["aria-describedby"],
            endId
        ].filter(Boolean).join(" ");
    }
    let contents = typeof rendered === "string" ? /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _text.Text), null, rendered) : rendered;
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault.default), "focus-ring")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("li", {
        ...(0, _utils1.mergeProps)(menuItemProps, domProps),
        ref: ref,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-item", {
            "is-disabled": isDisabled,
            "is-selected": isSelected,
            "is-selectable": state.selectionManager.selectionMode !== "none",
            "is-open": state.expandedKeys.has(key)
        })
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _layout.Grid), {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-itemGrid")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.ClearSlots), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.SlotProvider), {
        slots: {
            text: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-itemLabel"],
                ...labelProps
            },
            end: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-end"],
                ...endProps
            },
            icon: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-icon"],
                size: "S"
            },
            description: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-description"],
                ...descriptionProps
            },
            keyboard: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-keyboard"],
                ...keyboardShortcutProps
            }
        }
    }, contents, isSelected && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _checkmarkMediumDefault.default), {
        slot: "checkmark",
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-checkmark")
    }), isUnavailable && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _infoOutlineDefault.default), {
        slot: "end",
        size: "XS",
        alignSelf: "center",
        "aria-label": stringFormatter.format("unavailable")
    }))))));
}

},{"@spectrum-icons/ui/CheckmarkMedium":"46Wpo","@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","@react-aria/focus":"cRsYs","@react-spectrum/layout":"hyyym","@spectrum-icons/workflow/InfoOutline":"l3hRP","../intl/*.json":"g0KbB","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-spectrum/text":"5ySa2","@react-aria/i18n":"lHUec","./context":"ahvzL","@react-aria/menu":"6OCiJ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"46Wpo":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("77a02e017bb28300");
exports.__esModule = true;
exports.default = CheckmarkMedium;
var _CheckmarkMedium = require("d3417c90d40788eb");
var _icon = require("365454c64e7b3e5f");
var _react = _interopRequireDefault(require("1c93acd4c1681a5a"));
function CheckmarkMedium(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_CheckmarkMedium.CheckmarkMedium, null));
}

},{"77a02e017bb28300":"aSVf3","d3417c90d40788eb":"aeA8o","365454c64e7b3e5f":"fTRUu","1c93acd4c1681a5a":"react"}],"aeA8o":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.CheckmarkMedium = CheckmarkMedium;
var _react = _interopRequireDefault(require("a3b5dfd248936c53"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function CheckmarkMedium(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M6 14a1 1 0 0 1-.789-.385l-4-5a1 1 0 1 1 1.577-1.23L6 11.376l7.213-8.99a1 1 0 1 1 1.576 1.23l-8 10a1 1 0 0 1-.789.384z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M4.5 10a1.022 1.022 0 0 1-.799-.384l-2.488-3a1 1 0 0 1 1.576-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.51 7A.978.978 0 0 1 4.5 10z"
    }));
}
CheckmarkMedium.displayName = "CheckmarkMedium";

},{"a3b5dfd248936c53":"react"}],"hyyym":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "repeat", ()=>(0, _grid.repeat));
parcelHelpers.export(exports, "minmax", ()=>(0, _grid.minmax));
parcelHelpers.export(exports, "fitContent", ()=>(0, _grid.fitContent));
parcelHelpers.export(exports, "Grid", ()=>(0, _grid.Grid));
parcelHelpers.export(exports, "Flex", ()=>(0, _flex.Flex));
var _grid = require("./Grid");
var _flex = require("./Flex");

},{"./Grid":"1TvvA","./Flex":"fqfco","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1TvvA":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Can be used to make a repeating fragment of the columns or rows list.
 * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/repeat).
 * @param count - The number of times to repeat the fragment.
 * @param repeat - The fragment to repeat.
 */ parcelHelpers.export(exports, "repeat", ()=>repeat);
/**
 * Defines a size range greater than or equal to min and less than or equal to max.
 * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/minmax).
 * @param min - The minimum size.
 * @param max - The maximum size.
 */ parcelHelpers.export(exports, "minmax", ()=>minmax);
/**
 * Clamps a given size to an available size.
 * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content).
 * @param dimension - The size to clamp.
 */ parcelHelpers.export(exports, "fitContent", ()=>fitContent);
parcelHelpers.export(exports, "Grid", ()=>_Grid);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const gridStyleProps = {
    ...(0, _utils.baseStyleProps),
    autoFlow: [
        "gridAutoFlow",
        (0, _utils.passthroughStyle)
    ],
    autoColumns: [
        "gridAutoColumns",
        gridDimensionValue
    ],
    autoRows: [
        "gridAutoRows",
        gridDimensionValue
    ],
    areas: [
        "gridTemplateAreas",
        gridTemplateAreasValue
    ],
    columns: [
        "gridTemplateColumns",
        gridTemplateValue
    ],
    rows: [
        "gridTemplateRows",
        gridTemplateValue
    ],
    gap: [
        "gap",
        (0, _utils.dimensionValue)
    ],
    rowGap: [
        "rowGap",
        (0, _utils.dimensionValue)
    ],
    columnGap: [
        "columnGap",
        (0, _utils.dimensionValue)
    ],
    justifyItems: [
        "justifyItems",
        (0, _utils.passthroughStyle)
    ],
    justifyContent: [
        "justifyContent",
        (0, _utils.passthroughStyle)
    ],
    alignItems: [
        "alignItems",
        (0, _utils.passthroughStyle)
    ],
    alignContent: [
        "alignContent",
        (0, _utils.passthroughStyle)
    ]
};
function Grid(props, ref) {
    let { children , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps, gridStyleProps);
    styleProps.style.display = "grid"; // inline-grid?
    let domRef = (0, _utils.useDOMRef)(ref);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        ref: domRef
    }, children);
}
function repeat(count, repeat) {
    return `repeat(${count}, ${gridTemplateValue(repeat)})`;
}
function minmax(min, max) {
    return `minmax(${gridDimensionValue(min)}, ${gridDimensionValue(max)})`;
}
function fitContent(dimension) {
    return `fit-content(${gridDimensionValue(dimension)})`;
}
function gridTemplateAreasValue(value) {
    return value.map((v)=>`"${v}"`).join("\n");
}
function gridDimensionValue(value) {
    if (/^max-content|min-content|minmax|auto|fit-content|repeat|subgrid/.test(value)) return value;
    return (0, _utils.dimensionValue)(value);
}
function gridTemplateValue(value) {
    if (Array.isArray(value)) return value.map(gridDimensionValue).join(" ");
    return gridDimensionValue(value);
}
/**
 * A layout container using CSS grid. Supports Spectrum dimensions as values to
 * ensure consistent and adaptive sizing and spacing.
 */ const _Grid = /*#__PURE__*/ (0, _react.forwardRef)(Grid);

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fqfco":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Flex", ()=>_Flex);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _flexGapCss = require("./flex-gap.css");
var _flexGapCssDefault = parcelHelpers.interopDefault(_flexGapCss);
var _ssr = require("@react-aria/ssr");
const flexStyleProps = {
    direction: [
        "flexDirection",
        (0, _utils.passthroughStyle)
    ],
    wrap: [
        "flexWrap",
        flexWrapValue
    ],
    justifyContent: [
        "justifyContent",
        flexAlignValue
    ],
    alignItems: [
        "alignItems",
        flexAlignValue
    ],
    alignContent: [
        "alignContent",
        flexAlignValue
    ]
};
function Flex(props, ref) {
    let { children , ...otherProps } = props;
    let breakpointProvider = (0, _utils.useBreakpoint)();
    let matchedBreakpoints = (breakpointProvider === null || breakpointProvider === void 0 ? void 0 : breakpointProvider.matchedBreakpoints) || [
        "base"
    ];
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let { styleProps: flexStyle  } = (0, _utils.useStyleProps)(otherProps, flexStyleProps);
    let domRef = (0, _utils.useDOMRef)(ref);
    let isSSR = (0, _ssr.useIsSSR)();
    // If a gap property is specified, and there is no native support or we're in SSR, use a shim.
    // Two divs are required for this: the outer one contains most style properties, and the inner
    // one is the flex container. Each item inside the flex container gets a margin around it based
    // on the gap, and the flex container has a negative margin to counteract this. The outer container
    // is necessary to allow nesting of flex containers with gaps, so that the inner CSS variable doesn't
    // override the outer one.
    if ((props.gap || props.rowGap || props.columnGap) && (isSSR || !isFlexGapSupported())) {
        let style = {
            ...flexStyle.style,
            "--column-gap": props.columnGap != null ? (0, _utils.responsiveDimensionValue)(props.columnGap, matchedBreakpoints) : undefined,
            "--row-gap": props.rowGap != null ? (0, _utils.responsiveDimensionValue)(props.rowGap, matchedBreakpoints) : undefined,
            "--gap": props.gap != null ? (0, _utils.responsiveDimensionValue)(props.gap, matchedBreakpoints) : undefined
        };
        return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
            ...(0, _utils1.filterDOMProps)(otherProps),
            ...styleProps,
            className: (0, _utils.classNames)((0, _flexGapCssDefault.default), "flex-container", styleProps.className),
            ref: domRef
        }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
            className: (0, _utils.classNames)((0, _flexGapCssDefault.default), "flex", "flex-gap"),
            style: style
        }, children));
    }
    // If no gaps, or native support exists, then we only need to render a single div.
    let style = {
        ...styleProps.style,
        ...flexStyle.style
    };
    if (props.gap != null) style.gap = (0, _utils.responsiveDimensionValue)(props.gap, matchedBreakpoints);
    if (props.columnGap != null) style.columnGap = (0, _utils.responsiveDimensionValue)(props.columnGap, matchedBreakpoints);
    if (props.rowGap != null) style.rowGap = (0, _utils.responsiveDimensionValue)(props.rowGap, matchedBreakpoints);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...(0, _utils1.filterDOMProps)(otherProps),
        className: (0, _utils.classNames)((0, _flexGapCssDefault.default), "flex", styleProps.className),
        style: style,
        ref: domRef
    }, children);
}
/**
 * Normalize 'start' and 'end' alignment values to 'flex-start' and 'flex-end'
 * in flex containers for browser compatibility.
 */ function flexAlignValue(value) {
    if (value === "start") return "flex-start";
    if (value === "end") return "flex-end";
    return value;
}
/**
 * Takes a boolean and translates it to flex wrap or nowrap.
 */ function flexWrapValue(value) {
    if (typeof value === "boolean") return value ? "wrap" : "nowrap";
    return value;
}
// Original licensing for the following method can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/Modernizr/Modernizr/blob/7efb9d0edd66815fb115fdce95fabaf019ce8db5/feature-detects/css/flexgap.js
let _isFlexGapSupported = null;
function isFlexGapSupported() {
    if (_isFlexGapSupported != null) return _isFlexGapSupported;
    if (typeof document === "undefined") return false;
    // create flex container with row-gap set
    var flex = document.createElement("div");
    flex.style.display = "flex";
    flex.style.flexDirection = "column";
    flex.style.rowGap = "1px";
    // create two, elements inside it
    flex.appendChild(document.createElement("div"));
    flex.appendChild(document.createElement("div"));
    // append to the DOM (needed to obtain scrollHeight)
    document.body.appendChild(flex);
    _isFlexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap
    flex.parentNode.removeChild(flex);
    return _isFlexGapSupported;
}
/**
 * A layout container using flexbox. Provides Spectrum dimension values, and supports the gap
 * property to define consistent spacing between items.
 */ const _Flex = /*#__PURE__*/ (0, _react.forwardRef)(Flex);

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","react":"react","./flex-gap.css":"4sHrM","@react-aria/ssr":"dEKj5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"4sHrM":[function(require,module,exports) {
module.exports["flex-container"] = "flex-container_e15493";
module.exports["flex"] = "flex_e15493";
module.exports["flex-gap"] = "flex-gap_e15493";

},{}],"l3hRP":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("2c6c0cff11034ccd");
exports.__esModule = true;
exports.default = InfoOutline;
var _InfoOutline = require("d67f7bbe4694ed5b");
var _icon = require("73d0b4ea4a6f3a5c");
var _react = _interopRequireDefault(require("d6f2155b2c2ee873"));
function InfoOutline(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_InfoOutline.A4uInfoOutline, null));
}

},{"2c6c0cff11034ccd":"aSVf3","d67f7bbe4694ed5b":"bKff8","73d0b4ea4a6f3a5c":"fTRUu","d6f2155b2c2ee873":"react"}],"bKff8":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uInfoOutline = A4uInfoOutline;
var _react = _interopRequireDefault(require("37f214df9fc4ec0"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uInfoOutline(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("path", {
        fillRule: "evenodd",
        d: "M20.15,12A2.15,2.15,0,1,1,18,9.85,2.15,2.15,0,0,1,20.15,12Zm.1835,12H20V16.3999A.4001.4001,0,0,0,19.60007,16H15.66648S14.5,16.03223,14.5,17c0,.96729,1.16651,1,1.16651,1H16v6h-.33349S14.5,24.03223,14.5,25c0,.96729,1.16651,1,1.16651,1h4.667S21.5,25.96729,21.5,25C21.5,24.03223,20.33347,24,20.33347,24ZM18,1A17,17,0,1,0,35.00008,18,17.00014,17.00014,0,0,0,18,1Zm0,30.34961A13.34961,13.34961,0,1,1,31.34967,18,13.34962,13.34962,0,0,1,18,31.34961Z"
    }));
}

},{"37f214df9fc4ec0":"react"}],"g0KbB":[function(require,module,exports) {
const _temp0 = require("6757af74e06e5a37");
const _temp1 = require("757092ddc87a8d83");
const _temp2 = require("31524657eb201d1f");
const _temp3 = require("be825a666165c65");
const _temp4 = require("89b4d428f0c494ab");
const _temp5 = require("c60a1094adf6f91c");
const _temp6 = require("5e823c4821c37dbd");
const _temp7 = require("7334bb387fbb541f");
const _temp8 = require("4c3cd4fdfc046119");
const _temp9 = require("cf505e827d20e1b1");
const _temp10 = require("6941570aab32b778");
const _temp11 = require("b40652ff57984a01");
const _temp12 = require("fdfa3df927c9ca4e");
const _temp13 = require("b11330535a3a5ab6");
const _temp14 = require("8027cccb357f724");
const _temp15 = require("4a77502c71bbcbe");
const _temp16 = require("c43bb29fb1cfca0b");
const _temp17 = require("33151498f8e3590c");
const _temp18 = require("2d59f77aea6e3b77");
const _temp19 = require("fe1f5dec275171b7");
const _temp20 = require("a1bbff8739a0658a");
const _temp21 = require("2b9b142be7201e7c");
const _temp22 = require("172ae97402da1d49");
const _temp23 = require("d851d870e62246f4");
const _temp24 = require("44821b892a918e6c");
const _temp25 = require("7faa2d31a234062a");
const _temp26 = require("5c5f0be33ec5ba81");
const _temp27 = require("64d6c30d2ff23167");
const _temp28 = require("fea2140998ff0d13");
const _temp29 = require("7f6bb46ce0487a03");
const _temp30 = require("7f263cec69f15a2c");
const _temp31 = require("35303af8ede7a7f7");
const _temp32 = require("3627813fc5c9ab96");
const _temp33 = require("569d4e9f5cdf769");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"6757af74e06e5a37":"fMDNb","757092ddc87a8d83":"eU1Ng","31524657eb201d1f":"bgUkQ","be825a666165c65":"e0ToZ","89b4d428f0c494ab":"iKIqZ","c60a1094adf6f91c":"8o3pb","5e823c4821c37dbd":"4vN2D","7334bb387fbb541f":"fcytG","4c3cd4fdfc046119":"3jTXp","cf505e827d20e1b1":"5CSED","6941570aab32b778":"6rFXJ","b40652ff57984a01":"8veic","fdfa3df927c9ca4e":"7r5rl","b11330535a3a5ab6":"keTaZ","8027cccb357f724":"bS2iO","4a77502c71bbcbe":"iP3se","c43bb29fb1cfca0b":"eLAWD","33151498f8e3590c":"akyHM","2d59f77aea6e3b77":"ex0ee","fe1f5dec275171b7":"bpdpr","a1bbff8739a0658a":"kWu6P","2b9b142be7201e7c":"gaHN2","172ae97402da1d49":"iG3gg","d851d870e62246f4":"hCspi","44821b892a918e6c":"lwYLR","7faa2d31a234062a":"ggKCq","5c5f0be33ec5ba81":"2a99D","64d6c30d2ff23167":"iZpnO","fea2140998ff0d13":"2xahB","7f6bb46ce0487a03":"ldPxh","7f263cec69f15a2c":"a9lT1","35303af8ede7a7f7":"hXU0o","3627813fc5c9ab96":"9MDUp","569d4e9f5cdf769":"hJlWE"}],"fMDNb":[function(require,module,exports) {
module.exports = {
    "moreActions": `المزيد من الإجراءات`,
    "unavailable": `قُم بالتوسيع للحصول على التفاصيل`
};

},{}],"eU1Ng":[function(require,module,exports) {
module.exports = {
    "moreActions": `Повече действия`,
    "unavailable": `Разширете за подробности`
};

},{}],"bgUkQ":[function(require,module,exports) {
module.exports = {
    "moreActions": `Další akce`,
    "unavailable": `Podrobnosti zobrazíte rozbalením`
};

},{}],"e0ToZ":[function(require,module,exports) {
module.exports = {
    "moreActions": `Flere handlinger`,
    "unavailable": `Udvid for detaljer`
};

},{}],"iKIqZ":[function(require,module,exports) {
module.exports = {
    "moreActions": `Mehr Aktionen`,
    "unavailable": `Für Details erweitern`
};

},{}],"8o3pb":[function(require,module,exports) {
module.exports = {
    "moreActions": `Περισσότερες ενέργειες`,
    "unavailable": `Ανάπτυξη για λεπτομέρειες`
};

},{}],"4vN2D":[function(require,module,exports) {
module.exports = {
    "moreActions": `More actions`,
    "unavailable": `Unavailable, expand for details`
};

},{}],"fcytG":[function(require,module,exports) {
module.exports = {
    "moreActions": `Más acciones`,
    "unavailable": `Ampliar para más detalles`
};

},{}],"3jTXp":[function(require,module,exports) {
module.exports = {
    "moreActions": `Veel toiminguid`,
    "unavailable": `Laiendage üksikasjade kuvamiseks`
};

},{}],"5CSED":[function(require,module,exports) {
module.exports = {
    "moreActions": `Lisää toimintoja`,
    "unavailable": `Laajenna lisätietoja`
};

},{}],"6rFXJ":[function(require,module,exports) {
module.exports = {
    "moreActions": `Autres actions`,
    "unavailable": `Agrandir pour plus de détails`
};

},{}],"8veic":[function(require,module,exports) {
module.exports = {
    "moreActions": `פעולות נוספות`,
    "unavailable": `הרחב לפרטים`
};

},{}],"7r5rl":[function(require,module,exports) {
module.exports = {
    "moreActions": `Dodatne radnje`,
    "unavailable": `Proširite za detalje`
};

},{}],"keTaZ":[function(require,module,exports) {
module.exports = {
    "moreActions": `További lehetőségek`,
    "unavailable": `A részletekért bontsa ki`
};

},{}],"bS2iO":[function(require,module,exports) {
module.exports = {
    "moreActions": `Altre azioni`,
    "unavailable": `Espandi per i dettagli`
};

},{}],"iP3se":[function(require,module,exports) {
module.exports = {
    "moreActions": `その他のアクション`,
    "unavailable": `展開して詳細を見る`
};

},{}],"eLAWD":[function(require,module,exports) {
module.exports = {
    "moreActions": `기타 액션`,
    "unavailable": `자세히 보려면 펼치기`
};

},{}],"akyHM":[function(require,module,exports) {
module.exports = {
    "moreActions": `Daugiau veiksmų`,
    "unavailable": `Norėdami gauti daugiau informacijos, išskleiskite`
};

},{}],"ex0ee":[function(require,module,exports) {
module.exports = {
    "moreActions": `Citas darbības`,
    "unavailable": `Izvērst, lai iegūtu sīkāku informāciju`
};

},{}],"bpdpr":[function(require,module,exports) {
module.exports = {
    "moreActions": `Flere handlinger`,
    "unavailable": `Utvid for detaljer`
};

},{}],"kWu6P":[function(require,module,exports) {
module.exports = {
    "moreActions": `Meer handelingen`,
    "unavailable": `Uitvouwen voor meer informatie`
};

},{}],"gaHN2":[function(require,module,exports) {
module.exports = {
    "moreActions": `Więcej akcji`,
    "unavailable": `Rozwiń, aby zobaczyć szczegóły`
};

},{}],"iG3gg":[function(require,module,exports) {
module.exports = {
    "moreActions": `Mais ações`,
    "unavailable": `Expandir para ver detalhes`
};

},{}],"hCspi":[function(require,module,exports) {
module.exports = {
    "moreActions": `Mais ações`,
    "unavailable": `Expandir para obter mais pormenores`
};

},{}],"lwYLR":[function(require,module,exports) {
module.exports = {
    "moreActions": `Mai multe acțiuni`,
    "unavailable": `Extindeți pentru detalii`
};

},{}],"ggKCq":[function(require,module,exports) {
module.exports = {
    "moreActions": `Дополнительные действия`,
    "unavailable": `Развернуть для подробностей`
};

},{}],"2a99D":[function(require,module,exports) {
module.exports = {
    "moreActions": `Ďalšie akcie`,
    "unavailable": `Rozbaľte a zobrazte podrobnosti`
};

},{}],"iZpnO":[function(require,module,exports) {
module.exports = {
    "moreActions": `Več možnosti`,
    "unavailable": `Razširite za podrobnosti`
};

},{}],"2xahB":[function(require,module,exports) {
module.exports = {
    "moreActions": `Dodatne radnje`,
    "unavailable": `Expand for details`
};

},{}],"ldPxh":[function(require,module,exports) {
module.exports = {
    "moreActions": `Fler åtgärder`,
    "unavailable": `Expandera för information`
};

},{}],"a9lT1":[function(require,module,exports) {
module.exports = {
    "moreActions": `Daha fazla eylem`,
    "unavailable": `Ayrıntıları görmek için genişletin`
};

},{}],"hXU0o":[function(require,module,exports) {
module.exports = {
    "moreActions": `Більше дій`,
    "unavailable": `Розгорніть для докладнішої інформації`
};

},{}],"9MDUp":[function(require,module,exports) {
module.exports = {
    "moreActions": `更多操作`,
    "unavailable": `展开以查看详细信息`
};

},{}],"hJlWE":[function(require,module,exports) {
module.exports = {
    "moreActions": `更多動作`,
    "unavailable": `展開以取得詳細資料`
};

},{}],"cG7Mw":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/** @private */ parcelHelpers.export(exports, "MenuSection", ()=>MenuSection);
var _utils = require("@react-spectrum/utils");
var _collections = require("@react-stately/collections");
var _menuItem = require("./MenuItem");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _menu = require("@react-aria/menu");
var _separator = require("@react-aria/separator");
function MenuSection(props) {
    let { item , state , onAction  } = props;
    let { itemProps , headingProps , groupProps  } = (0, _menu.useMenuSection)({
        heading: item.rendered,
        "aria-label": item["aria-label"]
    });
    let { separatorProps  } = (0, _separator.useSeparator)({
        elementType: "li"
    });
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _react.Fragment), null, item.key !== state.collection.getFirstKey() && /*#__PURE__*/ (0, _reactDefault.default).createElement("li", {
        ...separatorProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-divider")
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement("li", itemProps, item.rendered && /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
        ...headingProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-sectionHeading")
    }, item.rendered), /*#__PURE__*/ (0, _reactDefault.default).createElement("ul", {
        ...groupProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu")
    }, [
        ...(0, _collections.getChildNodes)(item, state.collection)
    ].map((node)=>{
        let item = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _menuItem.MenuItem), {
            key: node.key,
            item: node,
            state: state,
            onAction: onAction
        });
        if (node.wrapper) item = node.wrapper(item);
        return item;
    }))));
}

},{"@react-spectrum/utils":"cYYzN","@react-stately/collections":"l5k8z","./MenuItem":"1Scdm","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-aria/menu":"6OCiJ","@react-aria/separator":"8xafC","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8xafC":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useSeparator", ()=>(0, _useSeparator.useSeparator));
var _useSeparator = require("./useSeparator");

},{"./useSeparator":"7DnAZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7DnAZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the accessibility implementation for a separator.
 * A separator is a visual divider between two groups of content,
 * e.g. groups of menu items or sections of a page.
 */ parcelHelpers.export(exports, "useSeparator", ()=>useSeparator);
var _utils = require("@react-aria/utils");
function useSeparator(props) {
    let domProps = (0, _utils.filterDOMProps)(props, {
        labelable: true
    });
    let ariaOrientation;
    // if orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined
    // if it's vertical, we need to specify it
    if (props.orientation === "vertical") ariaOrientation = "vertical";
    // hr elements implicitly have role = separator and a horizontal orientation
    if (props.elementType !== "hr") return {
        separatorProps: {
            ...domProps,
            role: "separator",
            "aria-orientation": ariaOrientation
        }
    };
    return {
        separatorProps: domProps
    };
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5qSyX":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useTreeState", ()=>(0, _useTreeState.useTreeState));
parcelHelpers.export(exports, "TreeCollection", ()=>(0, _treeCollection.TreeCollection));
var _useTreeState = require("./useTreeState");
var _treeCollection = require("./TreeCollection");

},{"./useTreeState":"3xDOX","./TreeCollection":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3xDOX":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides state management for tree-like components. Handles building a collection
 * of items from props, item expanded state, and manages multiple selection state.
 */ parcelHelpers.export(exports, "useTreeState", ()=>useTreeState);
var _react = require("react");
var _selection = require("@react-stately/selection");
var _treeCollection = require("./TreeCollection");
var _collections = require("@react-stately/collections");
var _utils = require("@react-stately/utils");
function useTreeState(props) {
    let [expandedKeys, setExpandedKeys] = (0, _utils.useControlledState)(props.expandedKeys ? new Set(props.expandedKeys) : undefined, props.defaultExpandedKeys ? new Set(props.defaultExpandedKeys) : new Set(), props.onExpandedChange);
    let selectionState = (0, _selection.useMultipleSelectionState)(props);
    let disabledKeys = (0, _react.useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [
        props.disabledKeys
    ]);
    let tree = (0, _collections.useCollection)(props, (0, _react.useCallback)((nodes)=>new (0, _treeCollection.TreeCollection)(nodes, {
            expandedKeys
        }), [
        expandedKeys
    ]), null);
    // Reset focused key if that item is deleted from the collection.
    (0, _react.useEffect)(()=>{
        if (selectionState.focusedKey != null && !tree.getItem(selectionState.focusedKey)) selectionState.setFocusedKey(null);
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [
        tree,
        selectionState.focusedKey
    ]);
    let onToggle = (key)=>{
        setExpandedKeys(toggleKey(expandedKeys, key));
    };
    return {
        collection: tree,
        expandedKeys,
        disabledKeys,
        toggleKey: onToggle,
        setExpandedKeys,
        selectionManager: new (0, _selection.SelectionManager)(tree, selectionState)
    };
}
function toggleKey(set, key) {
    let res = new Set(set);
    if (res.has(key)) res.delete(key);
    else res.add(key);
    return res;
}

},{"react":"react","@react-stately/selection":"eTDxX","./TreeCollection":"kSt8R","@react-stately/collections":"l5k8z","@react-stately/utils":"4oVZw","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eTDxX":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useMultipleSelectionState", ()=>(0, _useMultipleSelectionState.useMultipleSelectionState));
parcelHelpers.export(exports, "SelectionManager", ()=>(0, _selectionManager.SelectionManager));
var _useMultipleSelectionState = require("./useMultipleSelectionState");
var _selectionManager = require("./SelectionManager");

},{"./useMultipleSelectionState":"8q9Hq","./SelectionManager":"9sDju","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8q9Hq":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Manages state for multiple selection and focus in a collection.
 */ parcelHelpers.export(exports, "useMultipleSelectionState", ()=>useMultipleSelectionState);
var _react = require("react");
var _selection = require("./Selection");
var _utils = require("@react-stately/utils");
function equalSets(setA, setB) {
    if (setA.size !== setB.size) return false;
    for (let item of setA){
        if (!setB.has(item)) return false;
    }
    return true;
}
function useMultipleSelectionState(props) {
    let { selectionMode ="none" , disallowEmptySelection , allowDuplicateSelectionEvents , selectionBehavior: selectionBehaviorProp = "toggle" , disabledBehavior ="all"  } = props;
    // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.
    // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).
    let isFocusedRef = (0, _react.useRef)(false);
    let [, setFocused] = (0, _react.useState)(false);
    let focusedKeyRef = (0, _react.useRef)(null);
    let childFocusStrategyRef = (0, _react.useRef)(null);
    let [, setFocusedKey] = (0, _react.useState)(null);
    let selectedKeysProp = (0, _react.useMemo)(()=>convertSelection(props.selectedKeys), [
        props.selectedKeys
    ]);
    let defaultSelectedKeys = (0, _react.useMemo)(()=>convertSelection(props.defaultSelectedKeys, new (0, _selection.Selection)()), [
        props.defaultSelectedKeys
    ]);
    let [selectedKeys, setSelectedKeys] = (0, _utils.useControlledState)(selectedKeysProp, defaultSelectedKeys, props.onSelectionChange);
    let disabledKeysProp = (0, _react.useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [
        props.disabledKeys
    ]);
    let [selectionBehavior, setSelectionBehavior] = (0, _react.useState)(selectionBehaviorProp);
    // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press
    // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.
    if (selectionBehaviorProp === "replace" && selectionBehavior === "toggle" && typeof selectedKeys === "object" && selectedKeys.size === 0) setSelectionBehavior("replace");
    // If the selectionBehavior prop changes, update the state as well.
    let lastSelectionBehavior = (0, _react.useRef)(selectionBehaviorProp);
    (0, _react.useEffect)(()=>{
        if (selectionBehaviorProp !== lastSelectionBehavior.current) {
            setSelectionBehavior(selectionBehaviorProp);
            lastSelectionBehavior.current = selectionBehaviorProp;
        }
    }, [
        selectionBehaviorProp
    ]);
    return {
        selectionMode,
        disallowEmptySelection,
        selectionBehavior,
        setSelectionBehavior,
        get isFocused () {
            return isFocusedRef.current;
        },
        setFocused (f) {
            isFocusedRef.current = f;
            setFocused(f);
        },
        get focusedKey () {
            return focusedKeyRef.current;
        },
        get childFocusStrategy () {
            return childFocusStrategyRef.current;
        },
        setFocusedKey (k, childFocusStrategy = "first") {
            focusedKeyRef.current = k;
            childFocusStrategyRef.current = childFocusStrategy;
            setFocusedKey(k);
        },
        selectedKeys,
        setSelectedKeys (keys) {
            if (allowDuplicateSelectionEvents || !equalSets(keys, selectedKeys)) setSelectedKeys(keys);
        },
        disabledKeys: disabledKeysProp,
        disabledBehavior
    };
}
function convertSelection(selection, defaultValue) {
    if (!selection) return defaultValue;
    return selection === "all" ? "all" : new (0, _selection.Selection)(selection);
}

},{"react":"react","./Selection":"1OYgl","@react-stately/utils":"4oVZw","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1OYgl":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * A Selection is a special Set containing Keys, which also has an anchor
 * and current selected key for use when range selecting.
 */ parcelHelpers.export(exports, "Selection", ()=>Selection);
class Selection extends Set {
    constructor(keys, anchorKey, currentKey){
        super(keys);
        if (keys instanceof Selection) {
            this.anchorKey = anchorKey || keys.anchorKey;
            this.currentKey = currentKey || keys.currentKey;
        } else {
            this.anchorKey = anchorKey;
            this.currentKey = currentKey;
        }
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9sDju":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * An interface for reading and updating multiple selection state.
 */ parcelHelpers.export(exports, "SelectionManager", ()=>SelectionManager);
var _collections = require("@react-stately/collections");
var _selection = require("./Selection");
class SelectionManager {
    /**
   * The type of selection that is allowed in the collection.
   */ get selectionMode() {
        return this.state.selectionMode;
    }
    /**
   * Whether the collection allows empty selection.
   */ get disallowEmptySelection() {
        return this.state.disallowEmptySelection;
    }
    /**
   * The selection behavior for the collection.
   */ get selectionBehavior() {
        return this.state.selectionBehavior;
    }
    /**
   * Sets the selection behavior for the collection.
   */ setSelectionBehavior(selectionBehavior) {
        this.state.setSelectionBehavior(selectionBehavior);
    }
    /**
   * Whether the collection is currently focused.
   */ get isFocused() {
        return this.state.isFocused;
    }
    /**
   * Sets whether the collection is focused.
   */ setFocused(isFocused) {
        this.state.setFocused(isFocused);
    }
    /**
   * The current focused key in the collection.
   */ get focusedKey() {
        return this.state.focusedKey;
    }
    /** Whether the first or last child of the focused key should receive focus. */ get childFocusStrategy() {
        return this.state.childFocusStrategy;
    }
    /**
   * Sets the focused key.
   */ setFocusedKey(key, childFocusStrategy) {
        if (key == null || this.collection.getItem(key)) this.state.setFocusedKey(key, childFocusStrategy);
    }
    /**
   * The currently selected keys in the collection.
   */ get selectedKeys() {
        return this.state.selectedKeys === "all" ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;
    }
    /**
   * The raw selection value for the collection.
   * Either 'all' for select all, or a set of keys.
   */ get rawSelection() {
        return this.state.selectedKeys;
    }
    /**
   * Returns whether a key is selected.
   */ isSelected(key) {
        if (this.state.selectionMode === "none") return false;
        key = this.getKey(key);
        return this.state.selectedKeys === "all" ? this.canSelectItem(key) : this.state.selectedKeys.has(key);
    }
    /**
   * Whether the selection is empty.
   */ get isEmpty() {
        return this.state.selectedKeys !== "all" && this.state.selectedKeys.size === 0;
    }
    /**
   * Whether all items in the collection are selected.
   */ get isSelectAll() {
        if (this.isEmpty) return false;
        if (this.state.selectedKeys === "all") return true;
        if (this._isSelectAll != null) return this._isSelectAll;
        let allKeys = this.getSelectAllKeys();
        let selectedKeys = this.state.selectedKeys;
        this._isSelectAll = allKeys.every((k)=>selectedKeys.has(k));
        return this._isSelectAll;
    }
    get firstSelectedKey() {
        let first = null;
        for (let key of this.state.selectedKeys){
            let item = this.collection.getItem(key);
            if (!first || item && (0, _collections.compareNodeOrder)(this.collection, item, first) < 0) first = item;
        }
        return first === null || first === void 0 ? void 0 : first.key;
    }
    get lastSelectedKey() {
        let last = null;
        for (let key of this.state.selectedKeys){
            let item = this.collection.getItem(key);
            if (!last || item && (0, _collections.compareNodeOrder)(this.collection, item, last) > 0) last = item;
        }
        return last === null || last === void 0 ? void 0 : last.key;
    }
    get disabledKeys() {
        return this.state.disabledKeys;
    }
    get disabledBehavior() {
        return this.state.disabledBehavior;
    }
    /**
   * Extends the selection to the given key.
   */ extendSelection(toKey) {
        if (this.selectionMode === "none") return;
        if (this.selectionMode === "single") {
            this.replaceSelection(toKey);
            return;
        }
        toKey = this.getKey(toKey);
        let selection;
        // Only select the one key if coming from a select all.
        if (this.state.selectedKeys === "all") selection = new (0, _selection.Selection)([
            toKey
        ], toKey, toKey);
        else {
            let selectedKeys = this.state.selectedKeys;
            let anchorKey = selectedKeys.anchorKey || toKey;
            selection = new (0, _selection.Selection)(selectedKeys, anchorKey, toKey);
            for (let key of this.getKeyRange(anchorKey, selectedKeys.currentKey || toKey))selection.delete(key);
            for (let key of this.getKeyRange(toKey, anchorKey))if (this.canSelectItem(key)) selection.add(key);
        }
        this.state.setSelectedKeys(selection);
    }
    getKeyRange(from, to) {
        let fromItem = this.collection.getItem(from);
        let toItem = this.collection.getItem(to);
        if (fromItem && toItem) {
            if ((0, _collections.compareNodeOrder)(this.collection, fromItem, toItem) <= 0) return this.getKeyRangeInternal(from, to);
            return this.getKeyRangeInternal(to, from);
        }
        return [];
    }
    getKeyRangeInternal(from, to) {
        let keys = [];
        let key = from;
        while(key){
            let item = this.collection.getItem(key);
            if (item && item.type === "item" || item.type === "cell" && this.allowsCellSelection) keys.push(key);
            if (key === to) return keys;
            key = this.collection.getKeyAfter(key);
        }
        return [];
    }
    getKey(key) {
        let item = this.collection.getItem(key);
        if (!item) // ¯\_(ツ)_/¯
        return key;
        // If cell selection is allowed, just return the key.
        if (item.type === "cell" && this.allowsCellSelection) return key;
        // Find a parent item to select
        while(item.type !== "item" && item.parentKey != null)item = this.collection.getItem(item.parentKey);
        if (!item || item.type !== "item") return null;
        return item.key;
    }
    /**
   * Toggles whether the given key is selected.
   */ toggleSelection(key) {
        if (this.selectionMode === "none") return;
        if (this.selectionMode === "single" && !this.isSelected(key)) {
            this.replaceSelection(key);
            return;
        }
        key = this.getKey(key);
        if (key == null) return;
        let keys = new (0, _selection.Selection)(this.state.selectedKeys === "all" ? this.getSelectAllKeys() : this.state.selectedKeys);
        if (keys.has(key)) keys.delete(key);
        else if (this.canSelectItem(key)) {
            keys.add(key);
            keys.anchorKey = key;
            keys.currentKey = key;
        }
        if (this.disallowEmptySelection && keys.size === 0) return;
        this.state.setSelectedKeys(keys);
    }
    /**
   * Replaces the selection with only the given key.
   */ replaceSelection(key) {
        if (this.selectionMode === "none") return;
        key = this.getKey(key);
        if (key == null) return;
        let selection = this.canSelectItem(key) ? new (0, _selection.Selection)([
            key
        ], key, key) : new (0, _selection.Selection)();
        this.state.setSelectedKeys(selection);
    }
    /**
   * Replaces the selection with the given keys.
   */ setSelectedKeys(keys) {
        if (this.selectionMode === "none") return;
        let selection = new (0, _selection.Selection)();
        for (let key of keys){
            key = this.getKey(key);
            if (key != null) {
                selection.add(key);
                if (this.selectionMode === "single") break;
            }
        }
        this.state.setSelectedKeys(selection);
    }
    getSelectAllKeys() {
        let keys = [];
        let addKeys = (key)=>{
            while(key){
                if (this.canSelectItem(key)) {
                    let item = this.collection.getItem(key);
                    if (item.type === "item") keys.push(key);
                    // Add child keys. If cell selection is allowed, then include item children too.
                    if (item.hasChildNodes && (this.allowsCellSelection || item.type !== "item")) addKeys((0, _collections.getFirstItem)((0, _collections.getChildNodes)(item, this.collection)).key);
                }
                key = this.collection.getKeyAfter(key);
            }
        };
        addKeys(this.collection.getFirstKey());
        return keys;
    }
    /**
   * Selects all items in the collection.
   */ selectAll() {
        if (!this.isSelectAll && this.selectionMode === "multiple") this.state.setSelectedKeys("all");
    }
    /**
   * Removes all keys from the selection.
   */ clearSelection() {
        if (!this.disallowEmptySelection && (this.state.selectedKeys === "all" || this.state.selectedKeys.size > 0)) this.state.setSelectedKeys(new (0, _selection.Selection)());
    }
    /**
   * Toggles between select all and an empty selection.
   */ toggleSelectAll() {
        if (this.isSelectAll) this.clearSelection();
        else this.selectAll();
    }
    select(key, e) {
        if (this.selectionMode === "none") return;
        if (this.selectionMode === "single") {
            if (this.isSelected(key) && !this.disallowEmptySelection) this.toggleSelection(key);
            else this.replaceSelection(key);
        } else if (this.selectionBehavior === "toggle" || e && (e.pointerType === "touch" || e.pointerType === "virtual")) // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys
        this.toggleSelection(key);
        else this.replaceSelection(key);
    }
    /**
   * Returns whether the current selection is equal to the given selection.
   */ isSelectionEqual(selection) {
        if (selection === this.state.selectedKeys) return true;
        // Check if the set of keys match.
        let selectedKeys = this.selectedKeys;
        if (selection.size !== selectedKeys.size) return false;
        for (let key of selection){
            if (!selectedKeys.has(key)) return false;
        }
        for (let key of selectedKeys){
            if (!selection.has(key)) return false;
        }
        return true;
    }
    canSelectItem(key) {
        if (this.state.selectionMode === "none" || this.state.disabledKeys.has(key)) return false;
        let item = this.collection.getItem(key);
        if (!item || item.type === "cell" && !this.allowsCellSelection) return false;
        return true;
    }
    isDisabled(key) {
        return this.state.disabledKeys.has(key) && this.state.disabledBehavior === "all";
    }
    constructor(collection, state, options){
        this.collection = collection;
        this.state = state;
        var _options_allowsCellSelection;
        this.allowsCellSelection = (_options_allowsCellSelection = options === null || options === void 0 ? void 0 : options.allowsCellSelection) !== null && _options_allowsCellSelection !== void 0 ? _options_allowsCellSelection : false;
        this._isSelectAll = null;
    }
}

},{"@react-stately/collections":"l5k8z","./Selection":"1OYgl","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"kSt8R":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "TreeCollection", ()=>TreeCollection);
class TreeCollection {
    *[Symbol.iterator]() {
        yield* this.iterable;
    }
    get size() {
        return this.keyMap.size;
    }
    getKeys() {
        return this.keyMap.keys();
    }
    getKeyBefore(key) {
        let node = this.keyMap.get(key);
        return node ? node.prevKey : null;
    }
    getKeyAfter(key) {
        let node = this.keyMap.get(key);
        return node ? node.nextKey : null;
    }
    getFirstKey() {
        return this.firstKey;
    }
    getLastKey() {
        return this.lastKey;
    }
    getItem(key) {
        return this.keyMap.get(key);
    }
    at(idx) {
        const keys = [
            ...this.getKeys()
        ];
        return this.getItem(keys[idx]);
    }
    constructor(nodes, { expandedKeys  } = {}){
        this.keyMap = new Map();
        this.iterable = nodes;
        expandedKeys = expandedKeys || new Set();
        let visit = (node)=>{
            this.keyMap.set(node.key, node);
            if (node.childNodes && (node.type === "section" || expandedKeys.has(node.key))) for (let child of node.childNodes)visit(child);
        };
        for (let node of nodes)visit(node);
        let last;
        let index = 0;
        for (let [key, node] of this.keyMap){
            if (last) {
                last.nextKey = key;
                node.prevKey = last.key;
            } else {
                this.firstKey = key;
                node.prevKey = undefined;
            }
            if (node.type === "item") node.index = index++;
            last = node;
            // Set nextKey as undefined since this might be the last node
            // If it isn't the last node, last.nextKey will properly set at start of new loop
            last.nextKey = undefined;
        }
        this.lastKey = last === null || last === void 0 ? void 0 : last.key;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8I6Ts":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "AlertDialog", ()=>(0, _alertDialog.AlertDialog));
parcelHelpers.export(exports, "Dialog", ()=>(0, _dialog.Dialog));
parcelHelpers.export(exports, "DialogTrigger", ()=>(0, _dialogTrigger.DialogTrigger));
parcelHelpers.export(exports, "DialogContainer", ()=>(0, _dialogContainer.DialogContainer));
parcelHelpers.export(exports, "useDialogContainer", ()=>(0, _useDialogContainer.useDialogContainer));
var _alertDialog = require("./AlertDialog");
var _dialog = require("./Dialog");
var _dialogTrigger = require("./DialogTrigger");
var _dialogContainer = require("./DialogContainer");
var _useDialogContainer = require("./useDialogContainer");

},{"./AlertDialog":false,"./Dialog":"etw7P","./DialogTrigger":"1AqT5","./DialogContainer":false,"./useDialogContainer":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"etw7P":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Dialog", ()=>_Dialog);
var _button = require("@react-spectrum/button");
var _utils = require("@react-spectrum/utils");
var _crossLarge = require("@spectrum-icons/ui/CrossLarge");
var _crossLargeDefault = parcelHelpers.interopDefault(_crossLarge);
var _context = require("./context");
var _layout = require("@react-spectrum/layout");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/dialog/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _dialog = require("@react-aria/dialog");
var _i18N = require("@react-aria/i18n");
let sizeMap = {
    S: "small",
    M: "medium",
    L: "large",
    fullscreen: "fullscreen",
    fullscreenTakeover: "fullscreenTakeover"
};
function Dialog(props, ref) {
    props = (0, _utils.useSlotProps)(props, "dialog");
    let { type ="modal" , ...contextProps } = (0, _react.useContext)((0, _context.DialogContext)) || {};
    let { children , isDismissable =contextProps.isDismissable , onDismiss =contextProps.onClose , size , ...otherProps } = props;
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    size = type === "popover" ? size || "S" : size || "L";
    let domRef = (0, _utils.useDOMRef)(ref);
    let gridRef = (0, _react.useRef)();
    let sizeVariant = sizeMap[type] || sizeMap[size];
    let { dialogProps , titleProps  } = (0, _dialog.useDialog)((0, _utils1.mergeProps)(contextProps, props), domRef);
    let hasHeader = (0, _utils.useHasChild)(`.${(0, _varsCssDefault.default)["spectrum-Dialog-header"]}`, (0, _utils.unwrapDOMRef)(gridRef));
    let hasHeading = (0, _utils.useHasChild)(`.${(0, _varsCssDefault.default)["spectrum-Dialog-heading"]}`, (0, _utils.unwrapDOMRef)(gridRef));
    let hasFooter = (0, _utils.useHasChild)(`.${(0, _varsCssDefault.default)["spectrum-Dialog-footer"]}`, (0, _utils.unwrapDOMRef)(gridRef));
    let hasTypeIcon = (0, _utils.useHasChild)(`.${(0, _varsCssDefault.default)["spectrum-Dialog-typeIcon"]}`, (0, _utils.unwrapDOMRef)(gridRef));
    let slots = (0, _react.useMemo)(()=>({
            hero: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-hero"]
            },
            heading: {
                UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Dialog-heading", {
                    "spectrum-Dialog-heading--noHeader": !hasHeader,
                    "spectrum-Dialog-heading--noTypeIcon": !hasTypeIcon
                }),
                level: 2,
                ...titleProps
            },
            header: {
                UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Dialog-header", {
                    "spectrum-Dialog-header--noHeading": !hasHeading,
                    "spectrum-Dialog-header--noTypeIcon": !hasTypeIcon
                })
            },
            typeIcon: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-typeIcon"]
            },
            divider: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-divider"],
                size: "M"
            },
            content: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-content"]
            },
            footer: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-footer"]
            },
            buttonGroup: {
                UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Dialog-buttonGroup", {
                    "spectrum-Dialog-buttonGroup--noFooter": !hasFooter
                }),
                align: "end"
            }
        }), [
        hasFooter,
        hasHeader,
        titleProps
    ]);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("section", {
        ...styleProps,
        ...dialogProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Dialog", {
            [`spectrum-Dialog--${sizeVariant}`]: sizeVariant,
            "spectrum-Dialog--dismissable": isDismissable
        }, styleProps.className),
        ref: domRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _layout.Grid), {
        ref: gridRef,
        UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-grid"]
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.SlotProvider), {
        slots: slots
    }, children), isDismissable && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _button.ActionButton), {
        UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Dialog-closeButton"],
        isQuiet: true,
        "aria-label": stringFormatter.format("dismiss"),
        onPress: onDismiss
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _crossLargeDefault.default), null))));
}
/**
 * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.
 * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.
 */ let _Dialog = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Dialog);

},{"@react-spectrum/button":"9ryHb","@react-spectrum/utils":"cYYzN","@spectrum-icons/ui/CrossLarge":"55syO","./context":"2wT2m","@react-spectrum/layout":"hyyym","../intl/*.json":"cEWKK","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/dialog/vars.css":"xtTv0","@react-aria/dialog":"heyud","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"55syO":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("af159aad037455a6");
exports.__esModule = true;
exports.default = CrossLarge;
var _CrossLarge = require("3bd056b0e4431fc1");
var _icon = require("64028bbb04e1d32d");
var _react = _interopRequireDefault(require("8b0d069da8eb7507"));
function CrossLarge(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_CrossLarge.CrossLarge, null));
}

},{"af159aad037455a6":"aSVf3","3bd056b0e4431fc1":"miFe3","64028bbb04e1d32d":"fTRUu","8b0d069da8eb7507":"react"}],"miFe3":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.CrossLarge = CrossLarge;
var _react = _interopRequireDefault(require("45a0fd81243595c4"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function CrossLarge(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M15.697 14.283L9.414 8l6.283-6.283A1 1 0 1 0 14.283.303L8 6.586 1.717.303A1 1 0 1 0 .303 1.717L6.586 8 .303 14.283a1 1 0 1 0 1.414 1.414L8 9.414l6.283 6.283a1 1 0 1 0 1.414-1.414z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M11.697 10.283L7.414 6l4.283-4.283A1 1 0 1 0 10.283.303L6 4.586 1.717.303A1 1 0 1 0 .303 1.717L4.586 6 .303 10.283a1 1 0 1 0 1.414 1.414L6 7.414l4.283 4.283a1 1 0 1 0 1.414-1.414z"
    }));
}
CrossLarge.displayName = "CrossLarge";

},{"45a0fd81243595c4":"react"}],"2wT2m":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "DialogContext", ()=>DialogContext);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const DialogContext = (0, _reactDefault.default).createContext(null);

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"cEWKK":[function(require,module,exports) {
const _temp0 = require("5d348bf6b184816b");
const _temp1 = require("40f7ce3747388f42");
const _temp2 = require("175fb7df96b484b5");
const _temp3 = require("6f9cd22801d99d75");
const _temp4 = require("48d3dd69bca28f46");
const _temp5 = require("c0e166193995c177");
const _temp6 = require("781b6fa58549ee8a");
const _temp7 = require("4cf8dc55c1859add");
const _temp8 = require("205092ac7e35d524");
const _temp9 = require("660bdc154909e295");
const _temp10 = require("4d9c511967428338");
const _temp11 = require("3145b1f62b457bb2");
const _temp12 = require("238f16a2d858ce1");
const _temp13 = require("d39010303c99ff21");
const _temp14 = require("558d6fdfeaf14029");
const _temp15 = require("4620d5108f6042cc");
const _temp16 = require("d173f270f6d1d7c");
const _temp17 = require("158ec9770f7096c");
const _temp18 = require("4b28eca26de142aa");
const _temp19 = require("e381971e5607aa10");
const _temp20 = require("5625529f23391751");
const _temp21 = require("30ee4ed10ed3504f");
const _temp22 = require("8c4e0171702f372c");
const _temp23 = require("4507e8d52dde3967");
const _temp24 = require("f2b78f88a2de366e");
const _temp25 = require("7710454241abdc9b");
const _temp26 = require("4e0e80fb0fc05a31");
const _temp27 = require("1e8a748554b92a57");
const _temp28 = require("4ed5a3960aa5e840");
const _temp29 = require("84358f9ff7019ed4");
const _temp30 = require("801ab67dc130da08");
const _temp31 = require("bb8abcad6ef7cb9a");
const _temp32 = require("fda9ad21ee6a8c07");
const _temp33 = require("6645374721d85580");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"5d348bf6b184816b":"jDQez","40f7ce3747388f42":"b0wAC","175fb7df96b484b5":"erQD1","6f9cd22801d99d75":"2IIan","48d3dd69bca28f46":"kquZN","c0e166193995c177":"6Uv8p","781b6fa58549ee8a":"bGxZ6","4cf8dc55c1859add":"6dEX8","205092ac7e35d524":"j6w5D","660bdc154909e295":"7tPXC","4d9c511967428338":"c37LK","3145b1f62b457bb2":"7jhO3","238f16a2d858ce1":"as3Os","d39010303c99ff21":"bcTtn","558d6fdfeaf14029":"7zsyy","4620d5108f6042cc":"hjEqr","d173f270f6d1d7c":"gtvHP","158ec9770f7096c":"3Oh6Y","4b28eca26de142aa":"cuxNy","e381971e5607aa10":"kdsS5","5625529f23391751":"A5gnB","30ee4ed10ed3504f":"7FU1M","8c4e0171702f372c":"7geji","4507e8d52dde3967":"7q9kK","f2b78f88a2de366e":"2X3By","7710454241abdc9b":"5pLBL","4e0e80fb0fc05a31":"ggdYE","1e8a748554b92a57":"2rFxC","4ed5a3960aa5e840":"dtkxu","84358f9ff7019ed4":"evd4U","801ab67dc130da08":"ddW5v","bb8abcad6ef7cb9a":"hZZFF","fda9ad21ee6a8c07":"aHxFO","6645374721d85580":"keaFk"}],"jDQez":[function(require,module,exports) {
module.exports = {
    "alert": `تنبيه`,
    "dismiss": `تجاهل`
};

},{}],"b0wAC":[function(require,module,exports) {
module.exports = {
    "alert": `Сигнал`,
    "dismiss": `Отхвърляне`
};

},{}],"erQD1":[function(require,module,exports) {
module.exports = {
    "alert": `Výstraha`,
    "dismiss": `Odstranit`
};

},{}],"2IIan":[function(require,module,exports) {
module.exports = {
    "alert": `Advarsel`,
    "dismiss": `Luk`
};

},{}],"kquZN":[function(require,module,exports) {
module.exports = {
    "alert": `Warnhinweis`,
    "dismiss": `Schließen`
};

},{}],"6Uv8p":[function(require,module,exports) {
module.exports = {
    "alert": `Ειδοποίηση`,
    "dismiss": `Απόρριψη`
};

},{}],"bGxZ6":[function(require,module,exports) {
module.exports = {
    "dismiss": `Dismiss`,
    "alert": `Alert`
};

},{}],"6dEX8":[function(require,module,exports) {
module.exports = {
    "alert": `Alerta`,
    "dismiss": `Descartar`
};

},{}],"j6w5D":[function(require,module,exports) {
module.exports = {
    "alert": `Teade`,
    "dismiss": `Lõpeta`
};

},{}],"7tPXC":[function(require,module,exports) {
module.exports = {
    "alert": `Hälytys`,
    "dismiss": `Hylkää`
};

},{}],"c37LK":[function(require,module,exports) {
module.exports = {
    "alert": `Alerte`,
    "dismiss": `Rejeter`
};

},{}],"7jhO3":[function(require,module,exports) {
module.exports = {
    "alert": `התראה`,
    "dismiss": `התעלם`
};

},{}],"as3Os":[function(require,module,exports) {
module.exports = {
    "alert": `Upozorenje`,
    "dismiss": `Odbaci`
};

},{}],"bcTtn":[function(require,module,exports) {
module.exports = {
    "alert": `Figyelmeztetés`,
    "dismiss": `Elutasítás`
};

},{}],"7zsyy":[function(require,module,exports) {
module.exports = {
    "alert": `Avviso`,
    "dismiss": `Ignora`
};

},{}],"hjEqr":[function(require,module,exports) {
module.exports = {
    "alert": `アラート`,
    "dismiss": `閉じる`
};

},{}],"gtvHP":[function(require,module,exports) {
module.exports = {
    "alert": `경고`,
    "dismiss": `무시`
};

},{}],"3Oh6Y":[function(require,module,exports) {
module.exports = {
    "alert": `Įspėjimas`,
    "dismiss": `Atmesti`
};

},{}],"cuxNy":[function(require,module,exports) {
module.exports = {
    "alert": `Brīdinājums`,
    "dismiss": `Nerādīt`
};

},{}],"kdsS5":[function(require,module,exports) {
module.exports = {
    "alert": `Varsel`,
    "dismiss": `Lukk`
};

},{}],"A5gnB":[function(require,module,exports) {
module.exports = {
    "alert": `Melding`,
    "dismiss": `Negeren`
};

},{}],"7FU1M":[function(require,module,exports) {
module.exports = {
    "alert": `Ostrzeżenie`,
    "dismiss": `Zignoruj`
};

},{}],"7geji":[function(require,module,exports) {
module.exports = {
    "alert": `Alerta`,
    "dismiss": `Descartar`
};

},{}],"7q9kK":[function(require,module,exports) {
module.exports = {
    "alert": `Alerta`,
    "dismiss": `Dispensar`
};

},{}],"2X3By":[function(require,module,exports) {
module.exports = {
    "alert": `Alertă`,
    "dismiss": `Revocare`
};

},{}],"5pLBL":[function(require,module,exports) {
module.exports = {
    "alert": `Предупреждение`,
    "dismiss": `Пропустить`
};

},{}],"ggdYE":[function(require,module,exports) {
module.exports = {
    "alert": `Upozornenie`,
    "dismiss": `Zrušiť`
};

},{}],"2rFxC":[function(require,module,exports) {
module.exports = {
    "alert": `Opozorilo`,
    "dismiss": `Opusti`
};

},{}],"dtkxu":[function(require,module,exports) {
module.exports = {
    "alert": `Upozorenje`,
    "dismiss": `Odbaci`
};

},{}],"evd4U":[function(require,module,exports) {
module.exports = {
    "alert": `Varning`,
    "dismiss": `Avvisa`
};

},{}],"ddW5v":[function(require,module,exports) {
module.exports = {
    "alert": `Uyarı`,
    "dismiss": `Kapat`
};

},{}],"hZZFF":[function(require,module,exports) {
module.exports = {
    "alert": `Сигнал тривоги`,
    "dismiss": `Скасувати`
};

},{}],"aHxFO":[function(require,module,exports) {
module.exports = {
    "alert": `警报`,
    "dismiss": `取消`
};

},{}],"keaFk":[function(require,module,exports) {
module.exports = {
    "alert": `警示`,
    "dismiss": `關閉`
};

},{}],"xtTv0":[function(require,module,exports) {
module.exports["spectrum-Dialog"] = "spectrum-Dialog_6d8b48";
module.exports["spectrum-Dialog--small"] = "spectrum-Dialog--small_6d8b48";
module.exports["spectrum-Dialog--medium"] = "spectrum-Dialog--medium_6d8b48";
module.exports["spectrum-Dialog--large"] = "spectrum-Dialog--large_6d8b48";
module.exports["spectrum-Dialog-hero"] = "spectrum-Dialog-hero_6d8b48";
module.exports["spectrum-Dialog-grid"] = "spectrum-Dialog-grid_6d8b48";
module.exports["spectrum-Dialog-heading"] = "spectrum-Dialog-heading_6d8b48";
module.exports["spectrum-Dialog-heading--noHeader"] = "spectrum-Dialog-heading--noHeader_6d8b48";
module.exports["spectrum-Dialog-heading--noTypeIcon"] = "spectrum-Dialog-heading--noTypeIcon_6d8b48";
module.exports["spectrum-Dialog-header"] = "spectrum-Dialog-header_6d8b48";
module.exports["spectrum-Dialog-header--noTypeIcon"] = "spectrum-Dialog-header--noTypeIcon_6d8b48";
module.exports["spectrum-Dialog-typeIcon"] = "spectrum-Dialog-typeIcon_6d8b48";
module.exports["spectrum-Dialog-divider"] = "spectrum-Dialog-divider_6d8b48";
module.exports["spectrum-Dialog--noDivider"] = "spectrum-Dialog--noDivider_6d8b48";
module.exports["spectrum-Dialog-content"] = "spectrum-Dialog-content_6d8b48";
module.exports["spectrum-Dialog-footer"] = "spectrum-Dialog-footer_6d8b48";
module.exports["spectrum-Button"] = "spectrum-Button_6d8b48";
module.exports["spectrum-Dialog-buttonGroup"] = "spectrum-Dialog-buttonGroup_6d8b48";
module.exports["spectrum-Dialog-buttonGroup--noFooter"] = "spectrum-Dialog-buttonGroup--noFooter_6d8b48";
module.exports["spectrum-Dialog--dismissable"] = "spectrum-Dialog--dismissable_6d8b48";
module.exports["spectrum-Dialog-closeButton"] = "spectrum-Dialog-closeButton_6d8b48";
module.exports["spectrum-Dialog--error"] = "spectrum-Dialog--error_6d8b48";
module.exports["spectrum-Dialog--fullscreen"] = "spectrum-Dialog--fullscreen_6d8b48";
module.exports["spectrum-Dialog--fullscreenTakeover"] = "spectrum-Dialog--fullscreenTakeover_6d8b48";
module.exports["spectrum-Dialog--warning"] = "spectrum-Dialog--warning_6d8b48";

},{}],"heyud":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useDialog", ()=>(0, _useDialog.useDialog));
var _useDialog = require("./useDialog");

},{"./useDialog":"foWSY","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"foWSY":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a dialog component.
 * A dialog is an overlay shown above other content in an application.
 */ parcelHelpers.export(exports, "useDialog", ()=>useDialog);
var _utils = require("@react-aria/utils");
var _focus = require("@react-aria/focus");
var _react = require("react");
var _overlays = require("@react-aria/overlays");
function useDialog(props, ref) {
    let { role ="dialog"  } = props;
    let titleId = (0, _utils.useSlotId)();
    titleId = props["aria-label"] ? undefined : titleId;
    let isRefocusing = (0, _react.useRef)(false);
    // Focus the dialog itself on mount, unless a child element is already focused.
    (0, _react.useEffect)(()=>{
        if (ref.current && !ref.current.contains(document.activeElement)) {
            (0, _focus.focusSafely)(ref.current);
            // Safari on iOS does not move the VoiceOver cursor to the dialog
            // or announce that it has opened until it has rendered. A workaround
            // is to wait for half a second, then blur and re-focus the dialog.
            let timeout = setTimeout(()=>{
                if (document.activeElement === ref.current) {
                    isRefocusing.current = true;
                    ref.current.blur();
                    (0, _focus.focusSafely)(ref.current);
                    isRefocusing.current = false;
                }
            }, 500);
            return ()=>{
                clearTimeout(timeout);
            };
        }
    }, [
        ref
    ]);
    (0, _overlays.useOverlayFocusContain)();
    // We do not use aria-modal due to a Safari bug which forces the first focusable element to be focused
    // on mount when inside an iframe, no matter which element we programmatically focus.
    // See https://bugs.webkit.org/show_bug.cgi?id=211934.
    // useModal sets aria-hidden on all elements outside the dialog, so the dialog will behave as a modal
    // even without aria-modal on the dialog itself.
    return {
        dialogProps: {
            ...(0, _utils.filterDOMProps)(props, {
                labelable: true
            }),
            role,
            tabIndex: -1,
            "aria-labelledby": props["aria-labelledby"] || titleId,
            // Prevent blur events from reaching useOverlay, which may cause
            // popovers to close. Since focus is contained within the dialog,
            // we don't want this to occur due to the above useEffect.
            onBlur: (e)=>{
                if (isRefocusing.current) e.stopPropagation();
            }
        },
        titleProps: {
            id: titleId
        }
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/focus":"cRsYs","react":"react","@react-aria/overlays":"6PUL4","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1AqT5":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "DialogTrigger", ()=>_DialogTrigger);
var _context = require("./context");
var _overlays = require("@react-spectrum/overlays");
var _overlays1 = require("@react-stately/overlays");
var _interactions = require("@react-aria/interactions");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _utils = require("@react-spectrum/utils");
var _overlays2 = require("@react-aria/overlays");
function DialogTrigger(props) {
    let { children , type ="modal" , mobileType =type === "popover" ? "modal" : type , hideArrow , targetRef , isDismissable , isKeyboardDismissDisabled , ...positionProps } = props;
    if (!Array.isArray(children) || children.length > 2) throw new Error("DialogTrigger must have exactly 2 children");
    // if a function is passed as the second child, it won't appear in toArray
    let [trigger, content] = children;
    // On small devices, show a modal or tray instead of a popover.
    let isMobile = (0, _utils.useIsMobileDevice)();
    if (isMobile) {
        // handle cases where desktop popovers need a close button for the mobile modal view
        if (type !== "modal" && mobileType === "modal") isDismissable = true;
        type = mobileType;
    }
    let state = (0, _overlays1.useOverlayTriggerState)(props);
    let wasOpen = (0, _react.useRef)(false);
    (0, _react.useEffect)(()=>{
        wasOpen.current = state.isOpen;
    }, [
        state.isOpen
    ]);
    let isExiting = (0, _react.useRef)(false);
    let onExiting = ()=>isExiting.current = true;
    let onExited = ()=>isExiting.current = false;
    // eslint-disable-next-line arrow-body-style
    (0, _react.useEffect)(()=>{
        return ()=>{
            if ((wasOpen.current || isExiting.current) && type !== "popover" && type !== "tray") console.warn("A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.");
        };
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
    if (type === "popover") return /*#__PURE__*/ (0, _reactDefault.default).createElement(PopoverTrigger, {
        ...positionProps,
        state: state,
        targetRef: targetRef,
        trigger: trigger,
        content: content,
        isKeyboardDismissDisabled: isKeyboardDismissDisabled,
        hideArrow: hideArrow
    });
    let renderOverlay = ()=>{
        switch(type){
            case "fullscreen":
            case "fullscreenTakeover":
            case "modal":
                return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Modal), {
                    state: state,
                    isDismissable: type === "modal" ? isDismissable : false,
                    type: type,
                    isKeyboardDismissDisabled: isKeyboardDismissDisabled,
                    onExiting: onExiting,
                    onExited: onExited
                }, typeof content === "function" ? content(state.close) : content);
            case "tray":
                return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Tray), {
                    state: state,
                    isKeyboardDismissDisabled: isKeyboardDismissDisabled
                }, typeof content === "function" ? content(state.close) : content);
        }
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(DialogTriggerBase, {
        type: type,
        state: state,
        isDismissable: isDismissable,
        trigger: trigger,
        overlay: renderOverlay()
    });
}
// Support DialogTrigger inside components using CollectionBuilder.
DialogTrigger.getCollectionNode = function*(props) {
    // @ts-ignore - seems like types are wrong. Function children work fine.
    let [trigger] = (0, _reactDefault.default).Children.toArray(props.children);
    let [, content] = props.children;
    yield {
        element: trigger,
        wrapper: (element)=>/*#__PURE__*/ (0, _reactDefault.default).createElement(DialogTrigger, {
                key: element.key,
                ...props
            }, element, content)
    };
};
/**
 * DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's
 * open state with the trigger's press state. Additionally, it allows you to customize the type and
 * positioning of the Dialog.
 */ // We don't want getCollectionNode to show up in the type definition
let _DialogTrigger = DialogTrigger;
function PopoverTrigger({ state , targetRef , trigger , content , hideArrow , ...props }) {
    let triggerRef = (0, _react.useRef)();
    let { triggerProps , overlayProps  } = (0, _overlays2.useOverlayTrigger)({
        type: "dialog"
    }, state, triggerRef);
    let triggerPropsWithRef = {
        ...triggerProps,
        ref: targetRef ? undefined : triggerRef
    };
    let overlay = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Popover), {
        ...props,
        hideArrow: hideArrow,
        triggerRef: targetRef || triggerRef,
        state: state
    }, typeof content === "function" ? content(state.close) : content);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(DialogTriggerBase, {
        type: "popover",
        state: state,
        triggerProps: triggerPropsWithRef,
        dialogProps: overlayProps,
        trigger: trigger,
        overlay: overlay
    });
}
function DialogTriggerBase({ type , state , isDismissable , dialogProps ={} , triggerProps ={} , overlay , trigger  }) {
    let context = {
        type,
        onClose: state.close,
        isDismissable,
        ...dialogProps
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _react.Fragment), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _interactions.PressResponder), {
        ...triggerProps,
        onPress: state.toggle,
        isPressed: state.isOpen && type !== "modal" && type !== "fullscreen" && type !== "fullscreenTakeover"
    }, trigger), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.DialogContext).Provider, {
        value: context
    }, overlay));
}

},{"./context":"2wT2m","@react-spectrum/overlays":"gI5f4","@react-stately/overlays":"hh16o","@react-aria/interactions":"3eipm","react":"react","@react-spectrum/utils":"cYYzN","@react-aria/overlays":"6PUL4","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"a3L1w":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Divider", ()=>(0, _divider.Divider));
var _divider = require("./Divider");

},{"./Divider":"gNtB5","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gNtB5":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Divider", ()=>_Divider);
var _utils = require("@react-spectrum/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/rule/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _separator = require("@react-aria/separator");
let sizeMap = {
    S: "small",
    M: "medium",
    L: "large"
};
function Divider(props, ref) {
    props = (0, _utils.useSlotProps)(props, "divider");
    let { size ="L" , orientation ="horizontal" , ...otherProps } = props;
    let domRef = (0, _utils.useDOMRef)(ref);
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let weight = sizeMap[size];
    let Element = "hr";
    if (orientation === "vertical") Element = "div";
    let { separatorProps  } = (0, _separator.useSeparator)({
        ...props,
        elementType: Element
    });
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(Element, {
        ...styleProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Rule", `spectrum-Rule--${weight}`, {
            "spectrum-Rule--vertical": orientation === "vertical",
            "spectrum-Rule--horizontal": orientation === "horizontal"
        }, styleProps.className),
        // @ts-ignore https://github.com/Microsoft/TypeScript/issues/28892
        ref: domRef,
        ...separatorProps
    });
}
/**
 * Dividers bring clarity to a layout by grouping and dividing content in close proximity.
 * They can also be used to establish rhythm and hierarchy.
 */ let _Divider = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Divider);

},{"@react-spectrum/utils":"cYYzN","react":"react","@adobe/spectrum-css-temp/components/rule/vars.css":"5Zobu","@react-aria/separator":"8xafC","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5Zobu":[function(require,module,exports) {
module.exports["spectrum-Rule"] = "spectrum-Rule_612bb8";
module.exports["spectrum-Rule--large"] = "spectrum-Rule--large_612bb8";
module.exports["spectrum-Rule--medium"] = "spectrum-Rule--medium_612bb8";
module.exports["spectrum-Rule--small"] = "spectrum-Rule--small_612bb8";
module.exports["spectrum-Rule--horizontal"] = "spectrum-Rule--horizontal_612bb8";
module.exports["spectrum-Rule--vertical"] = "spectrum-Rule--vertical_612bb8";

},{}],"degh6":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useFormProps", ()=>(0, _form.useFormProps));
parcelHelpers.export(exports, "Form", ()=>(0, _form.Form));
var _form = require("./Form");

},{"./Form":"bfsgi","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bfsgi":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useFormProps", ()=>useFormProps);
parcelHelpers.export(exports, "Form", ()=>_Form);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _provider = require("@react-spectrum/provider");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/fieldlabel/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
let FormContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(null);
function useFormProps(props) {
    let ctx = (0, _react.useContext)(FormContext);
    if (ctx) return {
        ...ctx,
        ...props
    };
    return props;
}
const formPropNames = new Set([
    "action",
    "autoComplete",
    "encType",
    "method",
    "target",
    "onSubmit"
]);
function Form(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    let { children , labelPosition ="top" , labelAlign ="start" , isRequired , necessityIndicator , isQuiet , isEmphasized , isDisabled , isReadOnly , validationState , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let domRef = (0, _utils.useDOMRef)(ref);
    let ctx = {
        labelPosition,
        labelAlign,
        necessityIndicator
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("form", {
        ...(0, _utils1.filterDOMProps)(otherProps, {
            labelable: true,
            propNames: formPropNames
        }),
        ...styleProps,
        noValidate: true,
        ref: domRef,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Form", {
            "spectrum-Form--positionSide": labelPosition === "side",
            "spectrum-Form--positionTop": labelPosition === "top"
        }, styleProps.className)
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(FormContext.Provider, {
        value: ctx
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _provider.Provider), {
        isQuiet: isQuiet,
        isEmphasized: isEmphasized,
        isDisabled: isDisabled,
        isReadOnly: isReadOnly,
        isRequired: isRequired,
        validationState: validationState
    }, children)));
}
/**
 * Forms allow users to enter data that can be submitted while providing alignment and styling for form fields.
 */ const _Form = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Form);

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","@react-spectrum/provider":"aPwML","react":"react","@adobe/spectrum-css-temp/components/fieldlabel/vars.css":"3gxB1","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3gxB1":[function(require,module,exports) {
module.exports["spectrum-FieldLabel"] = "spectrum-FieldLabel_d2db1f";
module.exports["spectrum-FieldLabel--positionSide"] = "spectrum-FieldLabel--positionSide_d2db1f";
module.exports["spectrum-FieldLabel-requiredIcon"] = "spectrum-FieldLabel-requiredIcon_d2db1f";
module.exports["spectrum-FieldLabel--alignEnd"] = "spectrum-FieldLabel--alignEnd_d2db1f";
module.exports["spectrum-Field"] = "spectrum-Field_d2db1f";
module.exports["spectrum-Field-contextualHelp"] = "spectrum-Field-contextualHelp_d2db1f";
module.exports["spectrum-Field--positionTop"] = "spectrum-Field--positionTop_d2db1f";
module.exports["spectrum-Field-field"] = "spectrum-Field-field_d2db1f";
module.exports["spectrum-Field--alignEnd"] = "spectrum-Field--alignEnd_d2db1f";
module.exports["spectrum-Field--positionSide"] = "spectrum-Field--positionSide_d2db1f";
module.exports["spectrum-Field-wrapper"] = "spectrum-Field-wrapper_d2db1f";
module.exports["spectrum-Field--hasContextualHelp"] = "spectrum-Field--hasContextualHelp_d2db1f";
module.exports["spectrum-Form"] = "spectrum-Form_d2db1f";
module.exports["spectrum-Form--positionSide"] = "spectrum-Form--positionSide_d2db1f";
module.exports["spectrum-Field-labelCell"] = "spectrum-Field-labelCell_d2db1f";
module.exports["spectrum-Field-labelWrapper"] = "spectrum-Field-labelWrapper_d2db1f";
module.exports["spectrum-Form--positionTop"] = "spectrum-Form--positionTop_d2db1f";
module.exports["spectrum-LabeledValue"] = "spectrum-LabeledValue_d2db1f";
module.exports["spectrum-Form-itemLabel"] = "spectrum-Form-itemLabel_d2db1f";
module.exports["is-disabled"] = "is-disabled_d2db1f";

},{}],"2k0iN":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Link", ()=>(0, _link.Link));
var _link = require("./Link");

},{"./Link":"Nkw0E","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"Nkw0E":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Links allow users to navigate to a different location.
 * They can be presented inline inside a paragraph or as standalone text.
 */ parcelHelpers.export(exports, "Link", ()=>Link);
var _utils = require("@react-spectrum/utils");
var _focus = require("@react-aria/focus");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/link/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _interactions = require("@react-aria/interactions");
var _link = require("@react-aria/link");
var _provider = require("@react-spectrum/provider");
function Link(props) {
    props = (0, _provider.useProviderProps)(props);
    props = (0, _utils.useSlotProps)(props, "link");
    let { variant ="primary" , isQuiet , children , // @ts-ignore
    href  } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(props);
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({});
    if (href) console.warn("href is deprecated, please use an anchor element as children");
    let ref = (0, _react.useRef)();
    let { linkProps  } = (0, _link.useLink)({
        ...props,
        elementType: typeof children === "string" ? "span" : "a"
    }, ref);
    let wrappedChild = (0, _utils.getWrappedElement)(children);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault.default), "focus-ring")
    }, /*#__PURE__*/ (0, _reactDefault.default).cloneElement(wrappedChild, {
        ...styleProps,
        ...(0, _utils1.mergeProps)(wrappedChild.props, linkProps, hoverProps),
        // @ts-ignore https://github.com/facebook/react/issues/8873
        ref: wrappedChild.ref ? (0, _utils1.mergeRefs)(ref, wrappedChild.ref) : ref,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Link", {
            "spectrum-Link--quiet": isQuiet,
            [`spectrum-Link--${variant}`]: variant,
            "is-hovered": isHovered
        }, styleProps.className)
    }));
}

},{"@react-spectrum/utils":"cYYzN","@react-aria/focus":"cRsYs","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/link/vars.css":"6i7lU","@react-aria/interactions":"3eipm","@react-aria/link":"MBQFf","@react-spectrum/provider":"aPwML","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6i7lU":[function(require,module,exports) {
module.exports["spectrum-Link"] = "spectrum-Link_5a03c7";
module.exports["focus-ring"] = "focus-ring_5a03c7";
module.exports["is-disabled"] = "is-disabled_5a03c7";
module.exports["spectrum-Link--secondary"] = "spectrum-Link--secondary_5a03c7";
module.exports["spectrum-Link--overBackground"] = "spectrum-Link--overBackground_5a03c7";
module.exports["spectrum-Link--quiet"] = "spectrum-Link--quiet_5a03c7";

},{}],"dPLy6":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ListBox", ()=>(0, _listBox.ListBox));
parcelHelpers.export(exports, "useListBoxLayout", ()=>(0, _listBoxBase.useListBoxLayout));
parcelHelpers.export(exports, "ListBoxBase", ()=>(0, _listBoxBase.ListBoxBase));
parcelHelpers.export(exports, "Item", ()=>(0, _collections.Item));
parcelHelpers.export(exports, "Section", ()=>(0, _collections.Section));
var _listBox = require("./ListBox");
var _listBoxBase = require("./ListBoxBase");
var _collections = require("@react-stately/collections");

},{"./ListBox":false,"./ListBoxBase":"91Ukj","@react-stately/collections":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"91Ukj":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/** @private */ parcelHelpers.export(exports, "useListBoxLayout", ()=>useListBoxLayout);
parcelHelpers.export(exports, "ListBoxBase", ()=>_ListBoxBase);
var _listbox = require("@react-aria/listbox");
var _utils = require("@react-spectrum/utils");
var _focus = require("@react-aria/focus");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _listBoxContext = require("./ListBoxContext");
var _listBoxOption = require("./ListBoxOption");
var _listBoxSection = require("./ListBoxSection");
var _layout = require("@react-stately/layout");
var _utils1 = require("@react-aria/utils");
var _progress = require("@react-spectrum/progress");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _i18N = require("@react-aria/i18n");
var _provider = require("@react-spectrum/provider");
var _virtualizer = require("@react-aria/virtualizer");
function useListBoxLayout(state, isLoading) {
    let { scale  } = (0, _provider.useProvider)();
    let collator = (0, _i18N.useCollator)({
        usage: "search",
        sensitivity: "base"
    });
    let layout = (0, _react.useMemo)(()=>new (0, _layout.ListLayout)({
            estimatedRowHeight: scale === "large" ? 48 : 32,
            estimatedHeadingHeight: scale === "large" ? 33 : 26,
            padding: scale === "large" ? 5 : 4,
            loaderHeight: 40,
            placeholderHeight: scale === "large" ? 48 : 32,
            collator
        }), [
        collator,
        scale
    ]);
    layout.collection = state.collection;
    layout.disabledKeys = state.disabledKeys;
    (0, _utils1.useLayoutEffect)(()=>{
        // Sync loading state into the layout.
        if (layout.isLoading !== isLoading) {
            var _layout_virtualizer;
            layout.isLoading = isLoading;
            (_layout_virtualizer = layout.virtualizer) === null || _layout_virtualizer === void 0 ? void 0 : _layout_virtualizer.relayoutNow();
        }
    }, [
        layout,
        isLoading
    ]);
    return layout;
}
/** @private */ function ListBoxBase(props, ref) {
    let { layout , state , shouldSelectOnPressUp , focusOnPointerEnter , shouldUseVirtualFocus , domProps ={} , transitionDuration =0 , onScroll  } = props;
    let { listBoxProps  } = (0, _listbox.useListBox)({
        ...props,
        keyboardDelegate: layout,
        isVirtualized: true
    }, state, ref);
    let { styleProps  } = (0, _utils.useStyleProps)(props);
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let renderWrapper = (parent, reusableView, children, renderChildren)=>{
        if (reusableView.viewType === "section") return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _listBoxSection.ListBoxSection), {
            key: reusableView.key,
            item: reusableView.content,
            layoutInfo: reusableView.layoutInfo,
            virtualizer: reusableView.virtualizer,
            headerLayoutInfo: children.find((c)=>c.viewType === "header").layoutInfo
        }, renderChildren(children.filter((c)=>c.viewType === "item")));
        return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _virtualizer.VirtualizerItem), {
            key: reusableView.key,
            layoutInfo: reusableView.layoutInfo,
            virtualizer: reusableView.virtualizer,
            parent: parent === null || parent === void 0 ? void 0 : parent.layoutInfo
        }, reusableView.rendered);
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _listBoxContext.ListBoxContext).Provider, {
        value: state
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusScope), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _virtualizer.Virtualizer), {
        ...styleProps,
        ...(0, _utils1.mergeProps)(listBoxProps, domProps),
        ref: ref,
        focusedKey: state.selectionManager.focusedKey,
        autoFocus: !!props.autoFocus,
        sizeToFit: "height",
        scrollDirection: "vertical",
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu", styleProps.className),
        layout: layout,
        collection: state.collection,
        renderWrapper: renderWrapper,
        transitionDuration: transitionDuration,
        isLoading: props.isLoading,
        onLoadMore: props.onLoadMore,
        shouldUseVirtualFocus: shouldUseVirtualFocus,
        onScroll: onScroll
    }, (type, item)=>{
        if (type === "item") return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _listBoxOption.ListBoxOption), {
            item: item,
            shouldSelectOnPressUp: shouldSelectOnPressUp,
            shouldFocusOnHover: focusOnPointerEnter,
            shouldUseVirtualFocus: shouldUseVirtualFocus
        });
        else if (type === "loader") return(// aria-selected isn't needed here since this option is not selectable.
        // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
        /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
            role: "option",
            style: {
                display: "flex",
                alignItems: "center",
                justifyContent: "center",
                height: "100%"
            }
        }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _progress.ProgressCircle), {
            isIndeterminate: true,
            size: "S",
            "aria-label": state.collection.size > 0 ? stringFormatter.format("loadingMore") : stringFormatter.format("loading"),
            UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Dropdown-progressCircle")
        })));
        else if (type === "placeholder") {
            let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;
            if (emptyState == null) return null;
            return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
                // aria-selected isn't needed here since this option is not selectable.
                // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
                role: "option"
            }, emptyState);
        }
    })));
}
// forwardRef doesn't support generic parameters, so cast the result to the correct type
// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref
const _ListBoxBase = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(ListBoxBase);

},{"@react-aria/listbox":"7kWfg","@react-spectrum/utils":"cYYzN","@react-aria/focus":"cRsYs","../intl/*.json":"b2VOm","./ListBoxContext":"gi0Cr","./ListBoxOption":"irrkx","./ListBoxSection":"dbIkd","@react-stately/layout":"34beZ","@react-aria/utils":"5XGXZ","@react-spectrum/progress":"bgya5","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-aria/i18n":"lHUec","@react-spectrum/provider":"aPwML","@react-aria/virtualizer":"dmNcH","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7kWfg":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useListBox", ()=>(0, _useListBox.useListBox));
parcelHelpers.export(exports, "useOption", ()=>(0, _useOption.useOption));
parcelHelpers.export(exports, "useListBoxSection", ()=>(0, _useListBoxSection.useListBoxSection));
parcelHelpers.export(exports, "listData", ()=>(0, _utils.listData));
parcelHelpers.export(exports, "getItemId", ()=>(0, _utils.getItemId));
var _useListBox = require("./useListBox");
var _useOption = require("./useOption");
var _useListBoxSection = require("./useListBoxSection");
var _utils = require("./utils");

},{"./useListBox":"f96pF","./useOption":"cw6s0","./useListBoxSection":"lx1PZ","./utils":"2wVfq","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"f96pF":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a listbox component.
 * A listbox displays a list of options and allows a user to select one or more of them.
 * @param props - Props for the listbox.
 * @param state - State for the listbox, as returned by `useListState`.
 */ parcelHelpers.export(exports, "useListBox", ()=>useListBox);
var _utils = require("@react-aria/utils");
var _utils1 = require("./utils");
var _interactions = require("@react-aria/interactions");
var _label = require("@react-aria/label");
var _selection = require("@react-aria/selection");
function useListBox(props, state, ref) {
    let domProps = (0, _utils.filterDOMProps)(props, {
        labelable: true
    });
    let { listProps  } = (0, _selection.useSelectableList)({
        ...props,
        ref,
        selectionManager: state.selectionManager,
        collection: state.collection,
        disabledKeys: state.disabledKeys
    });
    let { focusWithinProps  } = (0, _interactions.useFocusWithin)({
        onFocusWithin: props.onFocus,
        onBlurWithin: props.onBlur,
        onFocusWithinChange: props.onFocusChange
    });
    // Share list id and some props with child options.
    let id = (0, _utils.useId)(props.id);
    (0, _utils1.listData).set(state, {
        id,
        shouldUseVirtualFocus: props.shouldUseVirtualFocus,
        shouldSelectOnPressUp: props.shouldSelectOnPressUp,
        shouldFocusOnHover: props.shouldFocusOnHover,
        isVirtualized: props.isVirtualized,
        onAction: props.onAction
    });
    let { labelProps , fieldProps  } = (0, _label.useLabel)({
        ...props,
        id,
        // listbox is not an HTML input element so it
        // shouldn't be labeled by a <label> element.
        labelElementType: "span"
    });
    return {
        labelProps,
        listBoxProps: (0, _utils.mergeProps)(domProps, focusWithinProps, state.selectionManager.selectionMode === "multiple" ? {
            "aria-multiselectable": "true"
        } : {}, {
            role: "listbox",
            ...(0, _utils.mergeProps)(fieldProps, listProps)
        })
    };
}

},{"@react-aria/utils":"5XGXZ","./utils":"2wVfq","@react-aria/interactions":"3eipm","@react-aria/label":"91g24","@react-aria/selection":"eGIVv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"2wVfq":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "listData", ()=>listData);
parcelHelpers.export(exports, "getItemId", ()=>getItemId);
const listData = new WeakMap();
function normalizeKey(key) {
    if (typeof key === "string") return key.replace(/\s*/g, "");
    return "" + key;
}
function getItemId(state, itemKey) {
    let data = listData.get(state);
    if (!data) throw new Error("Unknown list");
    return `${data.id}-option-${normalizeKey(itemKey)}`;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"91g24":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useField", ()=>(0, _useField.useField));
parcelHelpers.export(exports, "useLabel", ()=>(0, _useLabel.useLabel));
var _useField = require("./useField");
var _useLabel = require("./useLabel");

},{"./useField":"7PP0T","./useLabel":"ra63e","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7PP0T":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the accessibility implementation for input fields.
 * Fields accept user input, gain context from their label, and may display a description or error message.
 * @param props - Props for the Field.
 */ parcelHelpers.export(exports, "useField", ()=>useField);
var _useLabel = require("./useLabel");
var _utils = require("@react-aria/utils");
function useField(props) {
    let { description , errorMessage , validationState  } = props;
    let { labelProps , fieldProps  } = (0, _useLabel.useLabel)(props);
    let descriptionId = (0, _utils.useSlotId)([
        Boolean(description),
        Boolean(errorMessage),
        validationState
    ]);
    let errorMessageId = (0, _utils.useSlotId)([
        Boolean(description),
        Boolean(errorMessage),
        validationState
    ]);
    fieldProps = (0, _utils.mergeProps)(fieldProps, {
        "aria-describedby": [
            descriptionId,
            // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268
            errorMessageId,
            props["aria-describedby"]
        ].filter(Boolean).join(" ") || undefined
    });
    return {
        labelProps,
        fieldProps,
        descriptionProps: {
            id: descriptionId
        },
        errorMessageProps: {
            id: errorMessageId
        }
    };
}

},{"./useLabel":"ra63e","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ra63e":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the accessibility implementation for labels and their associated elements.
 * Labels provide context for user inputs.
 * @param props - The props for labels and fields.
 */ parcelHelpers.export(exports, "useLabel", ()=>useLabel);
var _utils = require("@react-aria/utils");
function useLabel(props) {
    let { id , label , "aria-labelledby": ariaLabelledby , "aria-label": ariaLabel , labelElementType ="label"  } = props;
    id = (0, _utils.useId)(id);
    let labelId = (0, _utils.useId)();
    let labelProps = {};
    if (label) {
        ariaLabelledby = ariaLabelledby ? `${labelId} ${ariaLabelledby}` : labelId;
        labelProps = {
            id: labelId,
            htmlFor: labelElementType === "label" ? id : undefined
        };
    } else if (!ariaLabelledby && !ariaLabel) console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility");
    let fieldProps = (0, _utils.useLabels)({
        id,
        "aria-label": ariaLabel,
        "aria-labelledby": ariaLabelledby
    });
    return {
        labelProps,
        fieldProps
    };
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"cw6s0":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for an option in a listbox.
 * See `useListBox` for more details about listboxes.
 * @param props - Props for the option.
 * @param state - State for the listbox, as returned by `useListState`.
 */ parcelHelpers.export(exports, "useOption", ()=>useOption);
var _collections = require("@react-stately/collections");
var _utils = require("./utils");
var _interactions = require("@react-aria/interactions");
var _utils1 = require("@react-aria/utils");
var _selection = require("@react-aria/selection");
function useOption(props, state, ref) {
    let { key  } = props;
    let data = (0, _utils.listData).get(state);
    var _props_isDisabled;
    let isDisabled = (_props_isDisabled = props.isDisabled) !== null && _props_isDisabled !== void 0 ? _props_isDisabled : state.disabledKeys.has(key);
    var _props_isSelected;
    let isSelected = (_props_isSelected = props.isSelected) !== null && _props_isSelected !== void 0 ? _props_isSelected : state.selectionManager.isSelected(key);
    var _props_shouldSelectOnPressUp;
    let shouldSelectOnPressUp = (_props_shouldSelectOnPressUp = props.shouldSelectOnPressUp) !== null && _props_shouldSelectOnPressUp !== void 0 ? _props_shouldSelectOnPressUp : data === null || data === void 0 ? void 0 : data.shouldSelectOnPressUp;
    var _props_shouldFocusOnHover;
    let shouldFocusOnHover = (_props_shouldFocusOnHover = props.shouldFocusOnHover) !== null && _props_shouldFocusOnHover !== void 0 ? _props_shouldFocusOnHover : data === null || data === void 0 ? void 0 : data.shouldFocusOnHover;
    var _props_shouldUseVirtualFocus;
    let shouldUseVirtualFocus = (_props_shouldUseVirtualFocus = props.shouldUseVirtualFocus) !== null && _props_shouldUseVirtualFocus !== void 0 ? _props_shouldUseVirtualFocus : data === null || data === void 0 ? void 0 : data.shouldUseVirtualFocus;
    var _props_isVirtualized;
    let isVirtualized = (_props_isVirtualized = props.isVirtualized) !== null && _props_isVirtualized !== void 0 ? _props_isVirtualized : data === null || data === void 0 ? void 0 : data.isVirtualized;
    let labelId = (0, _utils1.useSlotId)();
    let descriptionId = (0, _utils1.useSlotId)();
    let optionProps = {
        role: "option",
        "aria-disabled": isDisabled || undefined,
        "aria-selected": state.selectionManager.selectionMode !== "none" ? isSelected : undefined
    };
    // Safari with VoiceOver on macOS misreads options with aria-labelledby or aria-label as simply "text".
    // We should not map slots to the label and description on Safari and instead just have VoiceOver read the textContent.
    // https://bugs.webkit.org/show_bug.cgi?id=209279
    if (!((0, _utils1.isMac)() && (0, _utils1.isWebKit)())) {
        optionProps["aria-label"] = props["aria-label"];
        optionProps["aria-labelledby"] = labelId;
        optionProps["aria-describedby"] = descriptionId;
    }
    if (isVirtualized) {
        var _state_collection_getItem;
        let index = Number((_state_collection_getItem = state.collection.getItem(key)) === null || _state_collection_getItem === void 0 ? void 0 : _state_collection_getItem.index);
        optionProps["aria-posinset"] = Number.isNaN(index) ? undefined : index + 1;
        optionProps["aria-setsize"] = (0, _collections.getItemCount)(state.collection);
    }
    let { itemProps , isPressed , isFocused , hasAction , allowsSelection  } = (0, _selection.useSelectableItem)({
        selectionManager: state.selectionManager,
        key,
        ref,
        shouldSelectOnPressUp,
        allowsDifferentPressOrigin: shouldSelectOnPressUp && shouldFocusOnHover,
        isVirtualized,
        shouldUseVirtualFocus,
        isDisabled,
        onAction: (data === null || data === void 0 ? void 0 : data.onAction) ? ()=>{
            var _data_onAction;
            return data === null || data === void 0 ? void 0 : (_data_onAction = data.onAction) === null || _data_onAction === void 0 ? void 0 : _data_onAction.call(data, key);
        } : undefined
    });
    let { hoverProps  } = (0, _interactions.useHover)({
        isDisabled: isDisabled || !shouldFocusOnHover,
        onHoverStart () {
            if (!(0, _interactions.isFocusVisible)()) {
                state.selectionManager.setFocused(true);
                state.selectionManager.setFocusedKey(key);
            }
        }
    });
    return {
        optionProps: {
            ...optionProps,
            ...(0, _utils1.mergeProps)(itemProps, hoverProps),
            id: (0, _utils.getItemId)(state, key)
        },
        labelProps: {
            id: labelId
        },
        descriptionProps: {
            id: descriptionId
        },
        isFocused,
        isFocusVisible: isFocused && (0, _interactions.isFocusVisible)(),
        isSelected,
        isDisabled,
        isPressed,
        allowsSelection,
        hasAction
    };
}

},{"@react-stately/collections":"l5k8z","./utils":"2wVfq","@react-aria/interactions":"3eipm","@react-aria/utils":"5XGXZ","@react-aria/selection":"eGIVv","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"lx1PZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a section in a listbox.
 * See `useListBox` for more details about listboxes.
 * @param props - Props for the section.
 */ parcelHelpers.export(exports, "useListBoxSection", ()=>useListBoxSection);
var _utils = require("@react-aria/utils");
function useListBoxSection(props) {
    let { heading , "aria-label": ariaLabel  } = props;
    let headingId = (0, _utils.useId)();
    return {
        itemProps: {
            role: "presentation"
        },
        headingProps: heading ? {
            // Techincally, listbox cannot contain headings according to ARIA.
            // We hide the heading from assistive technology, using role="presentation",
            // and only use it as a visual label for the nested group.
            id: headingId,
            role: "presentation"
        } : {},
        groupProps: {
            role: "group",
            "aria-label": ariaLabel,
            "aria-labelledby": heading ? headingId : undefined
        }
    };
}

},{"@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"b2VOm":[function(require,module,exports) {
const _temp0 = require("e071b2523c8f0b4f");
const _temp1 = require("b366ff82efdfb25");
const _temp2 = require("590481e11b2d0e35");
const _temp3 = require("439c07b4d02328fd");
const _temp4 = require("49fac98605cabc94");
const _temp5 = require("385bd2742b947f58");
const _temp6 = require("7483b8412f02872");
const _temp7 = require("9357c54fdd7af6ee");
const _temp8 = require("c6348f3243d4b68e");
const _temp9 = require("37a68086405238d4");
const _temp10 = require("8add74b43f73d458");
const _temp11 = require("b5bca72854b82fa2");
const _temp12 = require("2a50fd1f859f5e31");
const _temp13 = require("676d0298627a908a");
const _temp14 = require("b528119da684edd0");
const _temp15 = require("b00b8df77193044b");
const _temp16 = require("b6e108f3f3cfff56");
const _temp17 = require("e46ab69b0953afbe");
const _temp18 = require("3d82f8c9e904717f");
const _temp19 = require("56b361041bf30e17");
const _temp20 = require("cb598eb2b7d1a7f7");
const _temp21 = require("7a34fde1e4705571");
const _temp22 = require("d52613ca06dc0512");
const _temp23 = require("51f120a8e805a5c7");
const _temp24 = require("1c10facf267849b5");
const _temp25 = require("e2f92056ce7f5bf9");
const _temp26 = require("c845ac3e223f4543");
const _temp27 = require("28268d818d55f6ff");
const _temp28 = require("87695363fcecdf94");
const _temp29 = require("a836f3f13ae433f9");
const _temp30 = require("4fa725fe6617ccdd");
const _temp31 = require("5d9e0d54c9073d16");
const _temp32 = require("a2b533d7512e8605");
const _temp33 = require("a877f7460370f708");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"e071b2523c8f0b4f":"3vieN","b366ff82efdfb25":"aofY5","590481e11b2d0e35":"bG0iu","439c07b4d02328fd":"5b2bT","49fac98605cabc94":"6xKzj","385bd2742b947f58":"e5R63","7483b8412f02872":"bAoyf","9357c54fdd7af6ee":"8Nk9k","c6348f3243d4b68e":"4fNwS","37a68086405238d4":"9n7Jq","8add74b43f73d458":"6HatL","b5bca72854b82fa2":"7LMPU","2a50fd1f859f5e31":"deemI","676d0298627a908a":"2ejsx","b528119da684edd0":"l3oqg","b00b8df77193044b":"NPp24","b6e108f3f3cfff56":"47XSS","e46ab69b0953afbe":"l4yam","3d82f8c9e904717f":"9CXyB","56b361041bf30e17":"gIPUX","cb598eb2b7d1a7f7":"99v2N","7a34fde1e4705571":"9imxu","d52613ca06dc0512":"3nu6E","51f120a8e805a5c7":"lSYSp","1c10facf267849b5":"b2MBG","e2f92056ce7f5bf9":"jBLjP","c845ac3e223f4543":"i4E0I","28268d818d55f6ff":"8KY3X","87695363fcecdf94":"hOdHj","a836f3f13ae433f9":"lnaB4","4fa725fe6617ccdd":"fEmcC","5d9e0d54c9073d16":"fHcbJ","a2b533d7512e8605":"cFTf1","a877f7460370f708":"bZNVL"}],"3vieN":[function(require,module,exports) {
module.exports = {
    "loading": `جارٍ التحميل...`,
    "loadingMore": `جارٍ تحميل المزيد...`
};

},{}],"aofY5":[function(require,module,exports) {
module.exports = {
    "loading": `Зареждане...`,
    "loadingMore": `Зареждане на още...`
};

},{}],"bG0iu":[function(require,module,exports) {
module.exports = {
    "loading": `Načítání...`,
    "loadingMore": `Načítání dalších...`
};

},{}],"5b2bT":[function(require,module,exports) {
module.exports = {
    "loading": `Indlæser ...`,
    "loadingMore": `Indlæser flere ...`
};

},{}],"6xKzj":[function(require,module,exports) {
module.exports = {
    "loading": `Laden...`,
    "loadingMore": `Mehr laden ...`
};

},{}],"e5R63":[function(require,module,exports) {
module.exports = {
    "loading": `Φόρτωση...`,
    "loadingMore": `Φόρτωση περισσότερων...`
};

},{}],"bAoyf":[function(require,module,exports) {
module.exports = {
    "loading": `Loading…`,
    "loadingMore": `Loading more…`
};

},{}],"8Nk9k":[function(require,module,exports) {
module.exports = {
    "loading": `Cargando…`,
    "loadingMore": `Cargando más…`
};

},{}],"4fNwS":[function(require,module,exports) {
module.exports = {
    "loading": `Laadimine...`,
    "loadingMore": `Laadi rohkem...`
};

},{}],"9n7Jq":[function(require,module,exports) {
module.exports = {
    "loading": `Ladataan…`,
    "loadingMore": `Ladataan lisää…`
};

},{}],"6HatL":[function(require,module,exports) {
module.exports = {
    "loading": `Chargement...`,
    "loadingMore": `Chargement supplémentaire...`
};

},{}],"7LMPU":[function(require,module,exports) {
module.exports = {
    "loading": `טוען...`,
    "loadingMore": `טוען עוד...`
};

},{}],"deemI":[function(require,module,exports) {
module.exports = {
    "loading": `Učitavam...`,
    "loadingMore": `Učitavam još...`
};

},{}],"2ejsx":[function(require,module,exports) {
module.exports = {
    "loading": `Betöltés folyamatban…`,
    "loadingMore": `Továbbiak betöltése folyamatban…`
};

},{}],"l3oqg":[function(require,module,exports) {
module.exports = {
    "loading": `Caricamento...`,
    "loadingMore": `Caricamento altri...`
};

},{}],"NPp24":[function(require,module,exports) {
module.exports = {
    "loading": `読み込み中...`,
    "loadingMore": `さらに読み込み中...`
};

},{}],"47XSS":[function(require,module,exports) {
module.exports = {
    "loading": `로드 중`,
    "loadingMore": `추가 로드 중`
};

},{}],"l4yam":[function(require,module,exports) {
module.exports = {
    "loading": `Įkeliama...`,
    "loadingMore": `Įkeliama daugiau...`
};

},{}],"9CXyB":[function(require,module,exports) {
module.exports = {
    "loading": `Notiek ielāde...`,
    "loadingMore": `Tiek ielādēts vēl...`
};

},{}],"gIPUX":[function(require,module,exports) {
module.exports = {
    "loading": `Laster inn ...`,
    "loadingMore": `Laster inn flere ...`
};

},{}],"99v2N":[function(require,module,exports) {
module.exports = {
    "loading": `Laden...`,
    "loadingMore": `Meer laden...`
};

},{}],"9imxu":[function(require,module,exports) {
module.exports = {
    "loading": `Ładowanie...`,
    "loadingMore": `Wczytywanie większej liczby...`
};

},{}],"3nu6E":[function(require,module,exports) {
module.exports = {
    "loading": `Carregando...`,
    "loadingMore": `Carregando mais...`
};

},{}],"lSYSp":[function(require,module,exports) {
module.exports = {
    "loading": `A carregar...`,
    "loadingMore": `A carregar mais...`
};

},{}],"b2MBG":[function(require,module,exports) {
module.exports = {
    "loading": `Se încarcă...`,
    "loadingMore": `Se încarcă mai multe...`
};

},{}],"jBLjP":[function(require,module,exports) {
module.exports = {
    "loading": `Загрузка...`,
    "loadingMore": `Дополнительная загрузка...`
};

},{}],"i4E0I":[function(require,module,exports) {
module.exports = {
    "loading": `Načítava sa...`,
    "loadingMore": `Načítava sa viac...`
};

},{}],"8KY3X":[function(require,module,exports) {
module.exports = {
    "loading": `Nalaganje...`,
    "loadingMore": `Nalaganje več vsebine...`
};

},{}],"hOdHj":[function(require,module,exports) {
module.exports = {
    "loading": `Učitavam...`,
    "loadingMore": `Učitavam još...`
};

},{}],"lnaB4":[function(require,module,exports) {
module.exports = {
    "loading": `Läser in...`,
    "loadingMore": `Läser in mer...`
};

},{}],"fEmcC":[function(require,module,exports) {
module.exports = {
    "loading": `Yükleniyor...`,
    "loadingMore": `Daha fazla yükleniyor...`
};

},{}],"fHcbJ":[function(require,module,exports) {
module.exports = {
    "loading": `Завантаження…`,
    "loadingMore": `Завантаження інших об’єктів...`
};

},{}],"cFTf1":[function(require,module,exports) {
module.exports = {
    "loading": `正在加载...`,
    "loadingMore": `正在加载更多...`
};

},{}],"bZNVL":[function(require,module,exports) {
module.exports = {
    "loading": `正在載入`,
    "loadingMore": `正在載入更多…`
};

},{}],"gi0Cr":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ListBoxContext", ()=>ListBoxContext);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
const ListBoxContext = (0, _reactDefault.default).createContext(null);

},{"react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"irrkx":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/** @private */ parcelHelpers.export(exports, "ListBoxOption", ()=>ListBoxOption);
var _checkmarkMedium = require("@spectrum-icons/ui/CheckmarkMedium");
var _checkmarkMediumDefault = parcelHelpers.interopDefault(_checkmarkMedium);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _focus = require("@react-aria/focus");
var _layout = require("@react-spectrum/layout");
var _interactions = require("@react-aria/interactions");
var _listBoxContext = require("./ListBoxContext");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _text = require("@react-spectrum/text");
var _listbox = require("@react-aria/listbox");
function ListBoxOption(props) {
    let { item , shouldSelectOnPressUp , shouldFocusOnHover , shouldUseVirtualFocus  } = props;
    let { rendered , key  } = item;
    let domProps = (0, _utils1.filterDOMProps)(item.props);
    delete domProps.id;
    let state = (0, _react.useContext)((0, _listBoxContext.ListBoxContext));
    let ref = (0, _react.useRef)();
    let { optionProps , labelProps , descriptionProps , isSelected , isDisabled , isFocused  } = (0, _listbox.useOption)({
        "aria-label": item["aria-label"],
        key,
        shouldSelectOnPressUp,
        shouldFocusOnHover,
        isVirtualized: true,
        shouldUseVirtualFocus
    }, state, ref);
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({
        ...props,
        isDisabled
    });
    let contents = typeof rendered === "string" ? /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _text.Text), null, rendered) : rendered;
    let isKeyboardModality = (0, _interactions.isFocusVisible)();
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault.default), "focus-ring")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...(0, _utils1.mergeProps)(optionProps, shouldFocusOnHover ? {} : hoverProps, domProps),
        ref: ref,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-item", {
            // If using virtual focus, apply focused styles to the item when the user is interacting with keyboard modality
            "is-focused": shouldUseVirtualFocus && isFocused && isKeyboardModality,
            "is-disabled": isDisabled,
            "is-selected": isSelected,
            "is-selectable": state.selectionManager.selectionMode !== "none",
            // When shouldFocusOnHover is false, apply hover styles both when hovered with the mouse.
            // Otherwise, apply hover styles when focused using non-keyboard modality.
            "is-hovered": isHovered && !shouldFocusOnHover || isFocused && !isKeyboardModality
        })
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _layout.Grid), {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-itemGrid")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.ClearSlots), null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.SlotProvider), {
        slots: {
            text: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-itemLabel"],
                ...labelProps
            },
            icon: {
                size: "S",
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-icon"]
            },
            description: {
                UNSAFE_className: (0, _varsCssDefault.default)["spectrum-Menu-description"],
                ...descriptionProps
            }
        }
    }, contents, isSelected && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _checkmarkMediumDefault.default), {
        slot: "checkmark",
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-checkmark")
    }))))));
}

},{"@spectrum-icons/ui/CheckmarkMedium":"46Wpo","@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","@react-aria/focus":"cRsYs","@react-spectrum/layout":"hyyym","@react-aria/interactions":"3eipm","./ListBoxContext":"gi0Cr","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-spectrum/text":"5ySa2","@react-aria/listbox":"7kWfg","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"dbIkd":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/** @private */ parcelHelpers.export(exports, "ListBoxSection", ()=>ListBoxSection);
var _utils = require("@react-spectrum/utils");
var _virtualizer = require("@react-aria/virtualizer");
var _listBoxContext = require("./ListBoxContext");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/menu/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _listbox = require("@react-aria/listbox");
var _i18N = require("@react-aria/i18n");
function ListBoxSection(props) {
    let { children , layoutInfo , headerLayoutInfo , virtualizer , item  } = props;
    let { headingProps , groupProps  } = (0, _listbox.useListBoxSection)({
        heading: item.rendered,
        "aria-label": item["aria-label"]
    });
    let headerRef = (0, _react.useRef)();
    (0, _virtualizer.useVirtualizerItem)({
        layoutInfo: headerLayoutInfo,
        virtualizer,
        ref: headerRef
    });
    let { direction  } = (0, _i18N.useLocale)();
    let state = (0, _react.useContext)((0, _listBoxContext.ListBoxContext));
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _react.Fragment), null, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        role: "presentation",
        ref: headerRef,
        style: (0, _virtualizer.layoutInfoToStyle)(headerLayoutInfo, direction)
    }, item.key !== state.collection.getFirstKey() && /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        role: "presentation",
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-divider")
    }), item.rendered && /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...headingProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu-sectionHeading")
    }, item.rendered)), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...groupProps,
        style: (0, _virtualizer.layoutInfoToStyle)(layoutInfo, direction),
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Menu")
    }, children));
}

},{"@react-spectrum/utils":"cYYzN","@react-aria/virtualizer":"dmNcH","./ListBoxContext":"gi0Cr","react":"react","@adobe/spectrum-css-temp/components/menu/vars.css":"3DDyP","@react-aria/listbox":"7kWfg","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"dmNcH":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useVirtualizer", ()=>(0, _virtualizer.useVirtualizer));
parcelHelpers.export(exports, "Virtualizer", ()=>(0, _virtualizer.Virtualizer));
parcelHelpers.export(exports, "useVirtualizerItem", ()=>(0, _useVirtualizerItem.useVirtualizerItem));
parcelHelpers.export(exports, "VirtualizerItem", ()=>(0, _virtualizerItem.VirtualizerItem));
parcelHelpers.export(exports, "layoutInfoToStyle", ()=>(0, _virtualizerItem.layoutInfoToStyle));
parcelHelpers.export(exports, "ScrollView", ()=>(0, _scrollView.ScrollView));
parcelHelpers.export(exports, "getRTLOffsetType", ()=>(0, _utils.getRTLOffsetType));
parcelHelpers.export(exports, "getScrollLeft", ()=>(0, _utils.getScrollLeft));
parcelHelpers.export(exports, "setScrollLeft", ()=>(0, _utils.setScrollLeft));
var _virtualizer = require("./Virtualizer");
var _useVirtualizerItem = require("./useVirtualizerItem");
var _virtualizerItem = require("./VirtualizerItem");
var _scrollView = require("./ScrollView");
var _utils = require("./utils");

},{"./Virtualizer":"9yWqN","./useVirtualizerItem":"5BmcF","./VirtualizerItem":"6Ce2v","./ScrollView":false,"./utils":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9yWqN":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useVirtualizer", ()=>useVirtualizer);
parcelHelpers.export(exports, "Virtualizer", ()=>_Virtualizer);
var _interactions = require("@react-aria/interactions");
var _virtualizer = require("@react-stately/virtualizer");
var _utils = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _scrollView = require("./ScrollView");
var _virtualizerItem = require("./VirtualizerItem");
function Virtualizer(props, ref) {
    let { children: renderView , renderWrapper , layout , collection , sizeToFit , scrollDirection , transitionDuration , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    isLoading , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    onLoadMore , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    focusedKey , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    shouldUseVirtualFocus , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    scrollToItem , // eslint-disable-next-line @typescript-eslint/no-unused-vars
    autoFocus , ...otherProps } = props;
    let fallbackRef = (0, _react.useRef)();
    ref = ref || fallbackRef;
    let state = (0, _virtualizer.useVirtualizerState)({
        transitionDuration,
        layout,
        collection,
        renderView,
        renderWrapper: renderWrapper || defaultRenderWrapper,
        onVisibleRectChange (rect) {
            ref.current.scrollLeft = rect.x;
            ref.current.scrollTop = rect.y;
        }
    });
    let { virtualizerProps , scrollViewProps  } = useVirtualizer(props, state, ref);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _scrollView.ScrollView), {
        ...(0, _utils.mergeProps)(otherProps, virtualizerProps, scrollViewProps),
        ref: ref,
        innerStyle: state.isAnimating ? {
            transition: `none ${state.virtualizer.transitionDuration}ms`
        } : undefined,
        contentSize: state.contentSize,
        onScrollStart: state.startScrolling,
        onScrollEnd: state.endScrolling,
        sizeToFit: sizeToFit,
        scrollDirection: scrollDirection
    }, state.visibleViews);
}
function useVirtualizer(props, state, ref) {
    let { focusedKey , scrollToItem , shouldUseVirtualFocus , isLoading , onLoadMore  } = props;
    let { virtualizer  } = state;
    // Scroll to the focusedKey when it changes. Actually focusing the focusedKey
    // is up to the implementation using Virtualizer since we don't have refs
    // to all of the item DOM nodes.
    let lastFocusedKey = (0, _react.useRef)(null);
    let isFocusWithin = (0, _react.useRef)(false);
    let autoFocus = (0, _react.useRef)(props.autoFocus);
    (0, _react.useEffect)(()=>{
        if (virtualizer.visibleRect.height === 0) return;
        // Only scroll the focusedKey into view if the modality is not pointer to avoid jumps in position when clicking/pressing tall items.
        let modality = (0, _interactions.getInteractionModality)();
        if (focusedKey !== lastFocusedKey.current && (modality !== "pointer" || autoFocus.current)) {
            autoFocus.current = false;
            if (scrollToItem) // If user provides scrolltoitem, then it is their responsibility to call scrollIntoViewport if desired
            // since we don't know if their scrollToItem may take some time to actually bring the active element into the virtualizer's visible rect.
            scrollToItem(focusedKey);
            else virtualizer.scrollToItem(focusedKey, {
                duration: 0
            });
        }
        lastFocusedKey.current = focusedKey;
    }, [
        focusedKey,
        virtualizer.visibleRect.height,
        virtualizer,
        lastFocusedKey,
        scrollToItem,
        ref
    ]);
    // Persist the focusedKey and prevent it from being removed from the DOM when scrolled out of view.
    virtualizer.persistedKeys = (0, _react.useMemo)(()=>focusedKey ? new Set([
            focusedKey
        ]) : new Set(), [
        focusedKey
    ]);
    let onFocus = (0, _react.useCallback)((e)=>{
        // If the focused item is scrolled out of view and is not in the DOM, the collection
        // will have tabIndex={0}. When tabbing in from outside, scroll the focused item into view.
        // Ignore focus events that bubble through portals (e.g. focus that happens on a menu popover child of the virtualizer)
        // Don't scroll focused key into view if modality is pointer to prevent sudden jump in position (e.g. CardView).
        let modality = (0, _interactions.getInteractionModality)();
        if (!isFocusWithin.current && ref.current.contains(e.target) && modality !== "pointer") {
            if (scrollToItem) scrollToItem(focusedKey);
            else virtualizer.scrollToItem(focusedKey, {
                duration: 0
            });
        }
        isFocusWithin.current = e.target !== ref.current;
    }, [
        ref,
        virtualizer,
        focusedKey,
        scrollToItem
    ]);
    let onBlur = (0, _react.useCallback)((e)=>{
        isFocusWithin.current = ref.current.contains(e.relatedTarget);
    }, [
        ref
    ]);
    // Set tabIndex to -1 if there is a focused key, otherwise 0 so that the collection
    // itself is tabbable. When the collection receives focus, we scroll the focused item back into
    // view, which will allow it to be properly focused. If using virtual focus, don't set a
    // tabIndex at all so that VoiceOver on iOS 14 doesn't try to move real DOM focus to the element anyway.
    let tabIndex;
    if (!shouldUseVirtualFocus) {
        // When there is no focusedKey the default tabIndex is 0. We include logic for empty collections too.
        // For collections that are empty, but have a link in the empty children we want to skip focusing this
        // and let focus move to the link similar to link moving to children.
        tabIndex = focusedKey != null ? -1 : 0;
        // If the collection is empty, we want the tabIndex provided from props (if any)
        // so that we handle when tabbable items are added to the empty state.
        if (virtualizer.collection.size === 0 && props.tabIndex != null) tabIndex = props.tabIndex;
    }
    // Handle scrolling, and call onLoadMore when nearing the bottom.
    let isLoadingRef = (0, _react.useRef)(isLoading);
    let prevProps = (0, _react.useRef)(props);
    let onVisibleRectChange = (0, _react.useCallback)((rect)=>{
        state.setVisibleRect(rect);
        if (!isLoadingRef.current && onLoadMore) {
            let scrollOffset = state.virtualizer.contentSize.height - rect.height * 2;
            if (rect.y > scrollOffset) {
                isLoadingRef.current = true;
                onLoadMore();
            }
        }
    }, [
        onLoadMore,
        state
    ]);
    let lastContentSize = (0, _react.useRef)(0);
    (0, _utils.useLayoutEffect)(()=>{
        // If animating, wait until we're done.
        if (state.isAnimating) return;
        // Only update isLoadingRef if props object actually changed,
        // not if a local state change occurred.
        let wasLoading = isLoadingRef.current;
        if (props !== prevProps.current) {
            isLoadingRef.current = isLoading;
            prevProps.current = props;
        }
        let shouldLoadMore = !isLoadingRef.current && onLoadMore && state.contentSize.height > 0 && state.contentSize.height <= state.virtualizer.visibleRect.height && (wasLoading || state.contentSize.height !== lastContentSize.current);
        if (shouldLoadMore) {
            isLoadingRef.current = true;
            onLoadMore();
        }
        lastContentSize.current = state.contentSize.height;
    }, [
        state.contentSize,
        state.isAnimating,
        state.virtualizer,
        isLoading,
        onLoadMore,
        props
    ]);
    return {
        virtualizerProps: {
            tabIndex,
            onFocus,
            onBlur
        },
        scrollViewProps: {
            onVisibleRectChange
        }
    };
}
// forwardRef doesn't support generic parameters, so cast the result to the correct type
// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref
const _Virtualizer = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Virtualizer);
function defaultRenderWrapper(parent, reusableView) {
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _virtualizerItem.VirtualizerItem), {
        key: reusableView.key,
        layoutInfo: reusableView.layoutInfo,
        virtualizer: reusableView.virtualizer,
        parent: parent === null || parent === void 0 ? void 0 : parent.layoutInfo
    }, reusableView.rendered);
}

},{"@react-aria/interactions":"3eipm","@react-stately/virtualizer":"jc2s8","@react-aria/utils":"5XGXZ","react":"react","./ScrollView":"3zc6f","./VirtualizerItem":"6Ce2v","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jc2s8":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Layout", ()=>(0, _layout.Layout));
parcelHelpers.export(exports, "LayoutInfo", ()=>(0, _layoutInfo.LayoutInfo));
parcelHelpers.export(exports, "Point", ()=>(0, _point.Point));
parcelHelpers.export(exports, "Rect", ()=>(0, _rect.Rect));
parcelHelpers.export(exports, "Size", ()=>(0, _size.Size));
parcelHelpers.export(exports, "ReusableView", ()=>(0, _reusableView.ReusableView));
parcelHelpers.export(exports, "useVirtualizerState", ()=>(0, _useVirtualizerState.useVirtualizerState));
var _layout = require("./Layout");
var _layoutInfo = require("./LayoutInfo");
var _point = require("./Point");
var _rect = require("./Rect");
var _size = require("./Size");
var _reusableView = require("./ReusableView");
var _useVirtualizerState = require("./useVirtualizerState");

},{"./Layout":"iAqjT","./LayoutInfo":"auSxE","./Point":"1vACg","./Rect":"gB2EU","./Size":"5Q1XS","./ReusableView":false,"./useVirtualizerState":"bL4qj","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"iAqjT":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// import { DragTarget, DropTarget } from '@react-types/shared';
/**
 * [CollectionView]{@link CollectionView} supports arbitrary layout objects, which compute what views are visible, and how
 * to position and style them. However, layouts do not create the views themselves directly. Instead,
 * layouts produce lightweight {@link LayoutInfo} objects which describe various properties of a view,
 * such as its position and size. The {@link CollectionView} is then responsible for creating the actual
 * views as needed, based on this layout information.
 *
 * Every layout extends from the {@link Layout} abstract base class. Layouts must implement a minimum of the
 * two methods listed below. All other methods can be optionally overridden to implement custom behavior.
 *
 * @see {@link getVisibleLayoutInfos}
 * @see {@link getLayoutInfo}
 */ parcelHelpers.export(exports, "Layout", ()=>Layout);
class Layout {
    /**
   * Returns whether the layout should invalidate in response to
   * visible rectangle changes. By default, it only invalidates
   * when the collection view's size changes. Return true always
   * to make the layout invalidate while scrolling (e.g. sticky headers).
   */ shouldInvalidate(newRect, oldRect) {
        // By default, invalidate when the size changes
        return newRect.width !== oldRect.width || newRect.height !== oldRect.height;
    }
    /**
   * This method allows the layout to perform any pre-computation
   * it needs to in order to prepare {@link LayoutInfo}s for retrieval.
   * Called by the collection view before {@link getVisibleLayoutInfos}
   * or {@link getLayoutInfo} are called.
   */ validate(invalidationContext) {}
    /**
   * Returns a {@link DragTarget} describing a view at the given point to be dragged.
   * Return `null` to cancel the drag. The default implementation returns the view at the given point.
   * @param point The point at which the drag occurred.
   */ // getDragTarget(point: Point): DragTarget | null {
    //   let target = this.virtualizer.keyAtPoint(point);
    //   if (!target) {
    //     return null;
    //   }
    //   return {
    //     type: 'item',
    //     key: target
    //   };
    // }
    /**
   * Returns a {@link DragTarget} object describing where a drop should occur. Return `null`
   * to reject the drop. The dropped items will be inserted before the resulting target.
   * @param point The point at which the drop occurred.
   */ // getDropTarget(point: Point): DropTarget | null {
    //   return null;
    // }
    /**
   * Returns the starting attributes for an animated insertion.
   * The view is animated from this {@link LayoutInfo} to the one returned by {@link getLayoutInfo}.
   * The default implementation just returns its input.
   *
   * @param layoutInfo The proposed LayoutInfo for this view.
   */ getInitialLayoutInfo(layoutInfo) {
        return layoutInfo;
    }
    /**
   * Returns the ending attributes for an animated removal.
   * The view is animated from the {@link LayoutInfo} returned by {@link getLayoutInfo}
   * to the one returned by this method. The default implementation returns its input.
   *
   * @param layoutInfo The original LayoutInfo for this view.
   */ getFinalLayoutInfo(layoutInfo) {
        return layoutInfo;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"auSxE":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Instances of this lightweight class are created by {@link Layout} subclasses
 * to represent each view in the {@link CollectionView}. LayoutInfo objects describe
 * various properties of a view, such as its position and size, and style information.
 * The collection view uses this information when creating actual views to display.
 */ parcelHelpers.export(exports, "LayoutInfo", ()=>LayoutInfo);
class LayoutInfo {
    /**
   * Returns a copy of the LayoutInfo.
   */ copy() {
        let res = new LayoutInfo(this.type, this.key, this.rect.copy());
        res.estimatedSize = this.estimatedSize;
        res.opacity = this.opacity;
        res.transform = this.transform;
        res.parentKey = this.parentKey;
        res.isSticky = this.isSticky;
        res.zIndex = this.zIndex;
        res.allowOverflow = this.allowOverflow;
        return res;
    }
    /**
   * @param type A string representing the view type. Should be `'item'` for item views.
                            Other types are used by supplementary views.
   * @param key The unique key for this view.
   * @param rect The rectangle describing the size and position of this view.
   */ constructor(type, key, rect){
        this.type = type;
        this.key = key;
        this.parentKey = null;
        this.rect = rect;
        this.estimatedSize = false;
        this.isSticky = false;
        this.opacity = 1;
        this.transform = null;
        this.zIndex = 0;
        this.allowOverflow = false;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1vACg":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Point", ()=>Point);
class Point {
    /**
   * Returns a copy of this point.
   */ copy() {
        return new Point(this.x, this.y);
    }
    /**
   * Checks if two points are equal.
   */ equals(point) {
        return this.x === point.x && this.y === point.y;
    }
    /**
   * Returns true if this point is the origin.
   */ isOrigin() {
        return this.x === 0 && this.y === 0;
    }
    constructor(x = 0, y = 0){
        this.x = x;
        this.y = y;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gB2EU":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Represents a rectangle.
 */ parcelHelpers.export(exports, "Rect", ()=>Rect);
var _point = require("./Point");
class Rect {
    /**
   * The maximum x-coordinate in the rectangle.
   */ get maxX() {
        return this.x + this.width;
    }
    /**
   * The maximum y-coordinate in the rectangle.
   */ get maxY() {
        return this.y + this.height;
    }
    /**
   * The area of the rectangle.
   */ get area() {
        return this.width * this.height;
    }
    /**
   * The top left corner of the rectangle.
   */ get topLeft() {
        return new (0, _point.Point)(this.x, this.y);
    }
    /**
   * The top right corner of the rectangle.
   */ get topRight() {
        return new (0, _point.Point)(this.maxX, this.y);
    }
    /**
   * The bottom left corner of the rectangle.
   */ get bottomLeft() {
        return new (0, _point.Point)(this.x, this.maxY);
    }
    /**
   * The bottom right corner of the rectangle.
   */ get bottomRight() {
        return new (0, _point.Point)(this.maxX, this.maxY);
    }
    /**
   * Returns whether this rectangle intersects another rectangle.
   * @param rect - The rectangle to check.
   */ intersects(rect) {
        return this.x <= rect.x + rect.width && rect.x <= this.x + this.width && this.y <= rect.y + rect.height && rect.y <= this.y + this.height;
    }
    /**
   * Returns whether this rectangle fully contains another rectangle.
   * @param rect - The rectangle to check.
   */ containsRect(rect) {
        return this.x <= rect.x && this.y <= rect.y && this.maxX >= rect.maxX && this.maxY >= rect.maxY;
    }
    /**
   * Returns whether the rectangle contains the given point.
   * @param point - The point to check.
   */ containsPoint(point) {
        return this.x <= point.x && this.y <= point.y && this.maxX >= point.x && this.maxY >= point.y;
    }
    /**
   * Returns the first corner of this rectangle (from top to bottom, left to right)
   * that is contained in the given rectangle, or null of the rectangles do not intersect.
   * @param rect - The rectangle to check.
   */ getCornerInRect(rect) {
        for (let key of [
            "topLeft",
            "topRight",
            "bottomLeft",
            "bottomRight"
        ]){
            if (rect.containsPoint(this[key])) return key;
        }
        return null;
    }
    equals(rect) {
        return rect.x === this.x && rect.y === this.y && rect.width === this.width && rect.height === this.height;
    }
    pointEquals(point) {
        return this.x === point.x && this.y === point.y;
    }
    sizeEquals(size) {
        return this.width === size.width && this.height === size.height;
    }
    /**
   * Returns the union of this Rect and another.
   */ union(other) {
        let x = Math.min(this.x, other.x);
        let y = Math.min(this.y, other.y);
        let width = Math.max(this.maxX, other.maxX) - x;
        let height = Math.max(this.maxY, other.maxY) - y;
        return new Rect(x, y, width, height);
    }
    /**
   * Returns the intersection of this Rect with another.
   * If the rectangles do not intersect, an all zero Rect is returned.
   */ intersection(other) {
        if (!this.intersects(other)) return new Rect(0, 0, 0, 0);
        let x = Math.max(this.x, other.x);
        let y = Math.max(this.y, other.y);
        return new Rect(x, y, Math.min(this.maxX, other.maxX) - x, Math.min(this.maxY, other.maxY) - y);
    }
    /**
   * Returns a copy of this rectangle.
   */ copy() {
        return new Rect(this.x, this.y, this.width, this.height);
    }
    constructor(x = 0, y = 0, width = 0, height = 0){
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
}

},{"./Point":"1vACg","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5Q1XS":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Size", ()=>Size);
class Size {
    /**
   * Returns a copy of this size.
   */ copy() {
        return new Size(this.width, this.height);
    }
    /**
   * Returns whether this size is equal to another one.
   */ equals(other) {
        return this.width === other.width && this.height === other.height;
    }
    /**
   * The total area of the Size.
   */ get area() {
        return this.width * this.height;
    }
    constructor(width = 0, height = 0){
        this.width = width;
        this.height = height;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gRU7Z":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * [CollectionView]{@link CollectionView} creates instances of the [ReusableView]{@link ReusableView} class to
 * represent views currently being displayed. ReusableViews manage a DOM node, handle
 * applying {@link LayoutInfo} objects to the view, and render content
 * as needed. Subclasses must implement the {@link render} method at a
 * minimum. Other methods can be overridden to customize behavior.
 */ parcelHelpers.export(exports, "ReusableView", ()=>ReusableView);
let KEY = 0;
class ReusableView {
    /**
   * Prepares the view for reuse. Called just before the view is removed from the DOM.
   */ prepareForReuse() {
        this.content = null;
        this.rendered = null;
        this.layoutInfo = null;
    }
    constructor(virtualizer){
        this.virtualizer = virtualizer;
        this.key = ++KEY;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bL4qj":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useVirtualizerState", ()=>useVirtualizerState);
var _react = require("react");
var _size = require("./Size");
var _utils = require("@react-aria/utils");
var _virtualizer = require("./Virtualizer");
function useVirtualizerState(opts) {
    let [visibleViews, setVisibleViews] = (0, _react.useState)([]);
    let [contentSize, setContentSize] = (0, _react.useState)(new (0, _size.Size)());
    let [isAnimating, setAnimating] = (0, _react.useState)(false);
    let [isScrolling, setScrolling] = (0, _react.useState)(false);
    let virtualizer = (0, _react.useMemo)(()=>new (0, _virtualizer.Virtualizer)(), []);
    virtualizer.delegate = {
        setVisibleViews,
        setVisibleRect (rect) {
            virtualizer.visibleRect = rect;
            opts.onVisibleRectChange(rect);
        },
        setContentSize,
        renderView: opts.renderView,
        renderWrapper: opts.renderWrapper,
        beginAnimations: ()=>setAnimating(true),
        endAnimations: ()=>setAnimating(false),
        getScrollAnchor: opts.getScrollAnchor
    };
    virtualizer.layout = opts.layout;
    virtualizer.collection = opts.collection;
    virtualizer.transitionDuration = opts.transitionDuration;
    (0, _utils.useLayoutEffect)(()=>{
        virtualizer.afterRender();
    });
    // eslint-disable-next-line arrow-body-style
    (0, _react.useEffect)(()=>{
        return ()=>virtualizer.willUnmount();
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
    let setVisibleRect = (0, _react.useCallback)((rect)=>{
        virtualizer.visibleRect = rect;
    }, [
        virtualizer
    ]);
    let startScrolling = (0, _react.useCallback)(()=>{
        virtualizer.startScrolling();
        setScrolling(true);
    }, [
        virtualizer
    ]);
    let endScrolling = (0, _react.useCallback)(()=>{
        virtualizer.endScrolling();
        setScrolling(false);
    }, [
        virtualizer
    ]);
    let state = (0, _react.useMemo)(()=>({
            virtualizer,
            visibleViews,
            setVisibleRect,
            contentSize,
            isAnimating,
            isScrolling,
            startScrolling,
            endScrolling
        }), [
        virtualizer,
        visibleViews,
        setVisibleRect,
        contentSize,
        isAnimating,
        isScrolling,
        startScrolling,
        endScrolling
    ]);
    return state;
}

},{"react":"react","./Size":"5Q1XS","@react-aria/utils":"5XGXZ","./Virtualizer":"BPHtL","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"BPHtL":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * The CollectionView class renders a scrollable collection of data using customizable layouts,
 * and manages animated updates to the data over time. It supports very large collections by
 * only rendering visible views to the DOM, reusing them as you scroll. Collection views can
 * present any type of view, including non-item views such as section headers and footers.
 * Optionally, the {@link EditableCollectionView} subclass can be used to enable user interaction
 * with the collection, including drag and drop, multiple selection, and keyboard interacton.
 *
 * Collection views get their data from a {@link DataSource} object that you provide. Items are
 * grouped into sections by the data source, and the collection view calls its methods to retrieve
 * the data. When data changes, the data source emits change events, and the collection view
 * updates as appropriate, optionally with an animated transition. There is one built-in data source
 * implementation, {@link ArrayDataSource}, which renders content from a 2d array.
 *
 * Collection views use {@link Layout} objects to compute what views should be visible, and how
 * to position and style them. This means that collection views can have their items arranged in
 * a stack, a grid, a circle, or any other layout you can think of. The layout can be changed
 * dynamically at runtime as well, optionally with an animated transition between the layouts.
 *
 * Layouts produce information on what views should appear in the collection view, but do not create
 * the views themselves directly. It is the responsibility of the {@link CollectionViewDelegate} object
 * to create instances of {@link ReusableView} subclasses which render the items into DOM nodes.
 * The delegate determines what type of view to display for each item, and creates instances of
 * views as needed by the collection view. Those views are then reused by the collection view as
 * the user scrolls through the content.
 */ parcelHelpers.export(exports, "Virtualizer", ()=>Virtualizer);
var _tween = require("./tween");
var _utils = require("./utils");
var _overscanManager = require("./OverscanManager");
var _point = require("./Point");
var _rect = require("./Rect");
var _reusableView = require("./ReusableView");
var _size = require("./Size");
var _transaction = require("./Transaction");
class Virtualizer {
    _setContentSize(size) {
        this._contentSize = size;
        this.delegate.setContentSize(size);
    }
    _setContentOffset(offset) {
        let rect = new (0, _rect.Rect)(offset.x, offset.y, this._visibleRect.width, this._visibleRect.height);
        this.delegate.setVisibleRect(rect);
    }
    /**
   * Get the size of the scrollable content.
   */ get contentSize() {
        return this._contentSize;
    }
    /**
   * Get the collection view's currently visible rectangle.
   */ get visibleRect() {
        return this._visibleRect;
    }
    /**
   * Set the collection view's currently visible rectangle.
   */ set visibleRect(rect) {
        this._setVisibleRect(rect);
    }
    _setVisibleRect(rect, forceUpdate = false) {
        let current = this._visibleRect;
        // Ignore if the rects are equal
        if (rect.equals(current)) return;
        if (this.shouldOverscan) this._overscanManager.setVisibleRect(rect);
        let shouldInvalidate = this.layout && this.layout.shouldInvalidate(rect, this._visibleRect);
        this._resetAnimatedContentOffset();
        this._visibleRect = rect;
        if (shouldInvalidate) // We are already in a layout effect when this method is called, so relayoutNow is appropriate.
        this.relayoutNow({
            offsetChanged: !rect.pointEquals(current),
            sizeChanged: !rect.sizeEquals(current)
        });
        else this.updateSubviews(forceUpdate);
    }
    get collection() {
        return this._collection;
    }
    set collection(data) {
        this._setData(data);
    }
    _setData(data) {
        if (data === this._collection) return;
        if (this._collection) this._runTransaction(()=>{
            this._collection = data;
        }, this.transitionDuration > 0);
        else {
            this._collection = data;
            this.reloadData();
        }
    }
    /**
   * Reloads the data from the data source and relayouts the collection view.
   * Does not animate any changes. Equivalent to re-assigning the same data source
   * to the collection view.
   */ reloadData() {
        this.relayout({
            contentChanged: true
        });
    }
    /**
   * Returns the item with the given key.
   */ getItem(key) {
        return this._collection ? this._collection.getItem(key) : null;
    }
    /** The set of persisted keys are always present in the DOM, even if not currently in view. */ get persistedKeys() {
        return this._persistedKeys;
    }
    /** The set of persisted keys are always present in the DOM, even if not currently in view. */ set persistedKeys(persistedKeys) {
        if (!(0, _utils.isSetEqual)(persistedKeys, this._persistedKeys)) {
            this._persistedKeys = persistedKeys;
            this.updateSubviews();
        }
    }
    /** Returns whether the given key, or an ancestor, is persisted. */ isPersistedKey(key) {
        // Quick check if the key is directly in the set of persisted keys.
        if (this._persistedKeys.has(key)) return true;
        // If not, check if the key is an ancestor of any of the persisted keys.
        for (let k of this._persistedKeys)while(k != null){
            let layoutInfo = this.layout.getLayoutInfo(k);
            if (!layoutInfo) break;
            k = layoutInfo.parentKey;
            if (k === key) return true;
        }
        return false;
    }
    /**
   * Get the collection view's layout.
   */ get layout() {
        return this._layout;
    }
    /**
   * Set the collection view's layout.
   */ set layout(layout) {
        this.setLayout(layout);
    }
    /**
   * Sets the collection view's layout, optionally with an animated transition
   * from the current layout to the new layout.
   * @param layout The layout to switch to.
   * @param animated Whether to animate the layout change.
   */ setLayout(layout, animated = false) {
        if (layout === this._layout) return;
        let applyLayout = ()=>{
            if (this._layout) // @ts-ignore
            this._layout.virtualizer = null;
            layout.virtualizer = this;
            this._layout = layout;
        };
        if (animated) // Animated layout transitions are really simple, thanks to our transaction support.
        // We just set the layout inside a transaction action, which runs after the initial
        // layout infos for the animation are retrieved from the previous layout. Then, the
        // final layout infos are retrieved from the new layout, and animations occur.
        this._runTransaction(applyLayout);
        else {
            applyLayout();
            this.relayout();
        }
    }
    _getReuseType(layoutInfo, content) {
        if (layoutInfo.type === "item" && content) {
            let type = this.delegate.getType ? this.delegate.getType(content) : "item";
            let reuseType = type === "item" ? "item" : layoutInfo.type + "_" + type;
            return {
                type,
                reuseType
            };
        }
        return {
            type: layoutInfo.type,
            reuseType: layoutInfo.type
        };
    }
    getReusableView(layoutInfo) {
        let content = this.getItem(layoutInfo.key);
        let { reuseType  } = this._getReuseType(layoutInfo, content);
        if (!this._reusableViews[reuseType]) this._reusableViews[reuseType] = [];
        let reusable = this._reusableViews[reuseType];
        let view = reusable.length > 0 ? reusable.pop() : new (0, _reusableView.ReusableView)(this);
        view.viewType = reuseType;
        if (!this._animatedContentOffset.isOrigin()) {
            layoutInfo = layoutInfo.copy();
            layoutInfo.rect.x += this._animatedContentOffset.x;
            layoutInfo.rect.y += this._animatedContentOffset.y;
        }
        view.layoutInfo = layoutInfo;
        this._renderView(view);
        return view;
    }
    _renderView(reusableView) {
        let { type , key  } = reusableView.layoutInfo;
        reusableView.content = this.getItem(key);
        reusableView.rendered = this._renderContent(type, reusableView.content);
    }
    _renderContent(type, content) {
        let cached = this._renderedContent.get(content);
        if (cached != null) return cached;
        let rendered = this.delegate.renderView(type, content);
        if (content) this._renderedContent.set(content, rendered);
        return rendered;
    }
    /**
   * Returns an array of all currently visible views, including both
   * item views and supplementary views.
   */ get visibleViews() {
        return Array.from(this._visibleViews.values());
    }
    /**
   * Gets the visible view for the given type and key. Returns null if
   * the view is not currently visible.
   *
   * @param key The key of the view to retrieve.
   */ getView(key) {
        return this._visibleViews.get(key) || null;
    }
    /**
   * Returns an array of visible views matching the given type.
   * @param type The view type to find.
   */ getViewsOfType(type) {
        return this.visibleViews.filter((v)=>v.layoutInfo && v.layoutInfo.type === type);
    }
    /**
   * Returns the key for the given view. Returns null
   * if the view is not currently visible.
   */ keyForView(view) {
        if (view && view.layoutInfo) return view.layoutInfo.key;
        return null;
    }
    /**
   * Returns the key for the item view currently at the given point.
   */ keyAtPoint(point) {
        let rect = new (0, _rect.Rect)(point.x, point.y, 1, 1);
        let layoutInfos = this.layout.getVisibleLayoutInfos(rect);
        // Layout may return multiple layout infos in the case of
        // persisted keys, so find the first one that actually intersects.
        for (let layoutInfo of layoutInfos){
            if (layoutInfo.rect.intersects(rect)) return layoutInfo.key;
        }
        return null;
    }
    /**
   * Cleanup for when the Virtualizer will be unmounted.
   */ willUnmount() {
        cancelAnimationFrame(this._relayoutRaf);
    }
    /**
   * Triggers a layout invalidation, and updates the visible subviews.
   */ relayout(context = {}) {
        // Ignore relayouts while animating the scroll position
        if (this._scrollAnimation || typeof requestAnimationFrame === "undefined") return;
        // If we already scheduled a relayout, extend the invalidation
        // context so we coalesce multiple relayouts in the same frame.
        if (this._invalidationContext) {
            Object.assign(this._invalidationContext, context);
            return;
        }
        this._invalidationContext = context;
    }
    /**
   * Performs a relayout immediately. Prefer {@link relayout} over this method
   * where possible, since it coalesces multiple layout passes in the same tick.
   */ relayoutNow(context = this._invalidationContext || {}) {
        // Cancel the scheduled relayout, since we're doing it now.
        if (this._relayoutRaf) {
            cancelAnimationFrame(this._relayoutRaf);
            this._relayoutRaf = null;
            // Update the provided context with the current invalidationContext since we are cancelling
            // a scheduled relayoutNow call that has this._invalidationContext set as its default context arg (relayoutNow() in relayout)
            context = {
                ...this._invalidationContext,
                ...context
            };
        }
        // Reset the invalidation context
        this._invalidationContext = null;
        // Do nothing if we don't have a layout or content, or we are
        // in the middle of an animated scroll transition.
        if (!this.layout || !this._collection || this._scrollAnimation) return;
        let scrollAnchor = this._getScrollAnchor();
        // Trigger the beforeLayout hook, if provided
        if (typeof context.beforeLayout === "function") context.beforeLayout();
        // Validate the layout
        this.layout.validate(context);
        this._setContentSize(this.layout.getContentSize());
        // Trigger the afterLayout hook, if provided
        if (typeof context.afterLayout === "function") context.afterLayout();
        // Adjust scroll position based on scroll anchor, and constrain.
        // If the content changed, scroll to the top.
        let visibleRect = this.getVisibleRect();
        let restoredScrollAnchor = this._restoreScrollAnchor(scrollAnchor, context);
        let contentOffsetX = context.contentChanged ? 0 : restoredScrollAnchor.x;
        let contentOffsetY = context.contentChanged ? 0 : restoredScrollAnchor.y;
        contentOffsetX = Math.max(0, Math.min(this.contentSize.width - visibleRect.width, contentOffsetX));
        contentOffsetY = Math.max(0, Math.min(this.contentSize.height - visibleRect.height, contentOffsetY));
        let hasLayoutUpdates = false;
        if (contentOffsetX !== visibleRect.x || contentOffsetY !== visibleRect.y) {
            // If this is an animated relayout, we do not immediately scroll because it would be jittery.
            // Save the difference between the current and new content offsets, and apply it to the
            // individual content items instead. At the end of the animation, we'll reset and set the
            // scroll offset for real. This ensures jitter-free animation since we don't need to sync
            // the scroll animation and the content animation.
            if (context.animated || !this._animatedContentOffset.isOrigin()) {
                this._animatedContentOffset.x += visibleRect.x - contentOffsetX;
                this._animatedContentOffset.y += visibleRect.y - contentOffsetY;
                hasLayoutUpdates = this.updateSubviews(context.contentChanged);
            } else this._setContentOffset(new (0, _point.Point)(contentOffsetX, contentOffsetY));
        } else hasLayoutUpdates = this.updateSubviews(context.contentChanged);
        // Apply layout infos, unless this is coming from an animated transaction
        if (!(context.transaction && context.animated)) this._applyLayoutInfos();
        // Wait for animations, and apply the afterAnimation hook, if provided
        if (context.animated && hasLayoutUpdates) {
            this._enableTransitions();
            let done = ()=>{
                this._disableTransitions();
                // Reset scroll position after animations (see above comment).
                if (!this._animatedContentOffset.isOrigin()) {
                    // Get the content offset to scroll to, taking _animatedContentOffset into account.
                    let { x , y  } = this.getVisibleRect();
                    this._resetAnimatedContentOffset();
                    this._setContentOffset(new (0, _point.Point)(x, y));
                }
                if (typeof context.afterAnimation === "function") context.afterAnimation();
            };
            // Sometimes the animation takes slightly longer than expected.
            setTimeout(done, this.transitionDuration + 100);
            return;
        } else if (typeof context.afterAnimation === "function") context.afterAnimation();
    }
    /**
   * Corrects DOM order of visible views to match item order of collection.
   */ _correctItemOrder() {
        // Defer until after scrolling and animated transactions are complete
        if (this._isScrolling || this._transaction) return;
        for (let key of this._visibleLayoutInfos.keys()){
            let view = this._visibleViews.get(key);
            this._children.delete(view);
            this._children.add(view);
        }
    }
    _enableTransitions() {
        this.delegate.beginAnimations();
    }
    _disableTransitions() {
        this.delegate.endAnimations();
    }
    _getScrollAnchor() {
        if (!this.anchorScrollPosition) return null;
        let visibleRect = this.getVisibleRect();
        // Ask the delegate to provide a scroll anchor, if possible
        if (this.delegate.getScrollAnchor) {
            let key = this.delegate.getScrollAnchor(visibleRect);
            if (key != null) {
                let layoutInfo = this.layout.getLayoutInfo(key);
                let corner = layoutInfo.rect.getCornerInRect(visibleRect);
                if (corner) {
                    let key = layoutInfo.key;
                    let offset = layoutInfo.rect[corner].y - visibleRect.y;
                    return {
                        key,
                        layoutInfo,
                        corner,
                        offset
                    };
                }
            }
        }
        // No need to anchor the scroll position if it is at the top
        if (visibleRect.y === 0 && !this.anchorScrollPositionAtTop) return null;
        // Find a view with a visible corner that has the smallest distance to the top of the collection view
        let cornerAnchor = null;
        for (let [key, view] of this._visibleViews){
            let layoutInfo = view.layoutInfo;
            if (layoutInfo && layoutInfo.rect.area > 0) {
                let corner = layoutInfo.rect.getCornerInRect(visibleRect);
                if (corner) {
                    let offset = layoutInfo.rect[corner].y - visibleRect.y;
                    if (!cornerAnchor || offset < cornerAnchor.offset) cornerAnchor = {
                        key,
                        layoutInfo,
                        corner,
                        offset
                    };
                }
            }
        }
        return cornerAnchor;
    }
    _restoreScrollAnchor(scrollAnchor, context) {
        let contentOffset = this.getVisibleRect();
        if (scrollAnchor) {
            var _context_transaction;
            let finalAnchor = ((_context_transaction = context.transaction) === null || _context_transaction === void 0 ? void 0 : _context_transaction.animated) ? context.transaction.finalMap.get(scrollAnchor.key) : this.layout.getLayoutInfo(scrollAnchor.layoutInfo.key);
            if (finalAnchor) {
                let adjustment = finalAnchor.rect[scrollAnchor.corner].y - contentOffset.y - scrollAnchor.offset;
                contentOffset.y += adjustment;
            }
        }
        return contentOffset;
    }
    getVisibleRect() {
        let v = this.visibleRect;
        let x = v.x - this._animatedContentOffset.x;
        let y = v.y - this._animatedContentOffset.y;
        return new (0, _rect.Rect)(x, y, v.width, v.height);
    }
    getVisibleLayoutInfos() {
        let rect = this.shouldOverscan ? this._overscanManager.getOverscannedRect() : this.getVisibleRect();
        this._visibleLayoutInfos = this._getLayoutInfoMap(rect);
        return this._visibleLayoutInfos;
    }
    _getLayoutInfoMap(rect, copy = false) {
        let layoutInfos = this.layout.getVisibleLayoutInfos(rect);
        let map = new Map;
        for (let layoutInfo of layoutInfos){
            if (copy) layoutInfo = layoutInfo.copy();
            map.set(layoutInfo.key, layoutInfo);
        }
        return map;
    }
    updateSubviews(forceUpdate = false) {
        if (!this._collection) return;
        let visibleLayoutInfos = this.getVisibleLayoutInfos();
        let currentlyVisible = this._visibleViews;
        let toAdd, toRemove, toUpdate;
        // If this is a force update, remove and re-add all views.
        // Otherwise, find and update the diff.
        if (forceUpdate) {
            toAdd = visibleLayoutInfos;
            toRemove = currentlyVisible;
            toUpdate = new Set();
        } else {
            ({ toAdd , toRemove , toUpdate  } = (0, _utils.difference)(currentlyVisible, visibleLayoutInfos));
            for (let key of toUpdate){
                let view = currentlyVisible.get(key);
                if (!view || !view.layoutInfo) continue;
                let item = this.getItem(visibleLayoutInfos.get(key).key);
                if (view.content === item) toUpdate.delete(key);
                else {
                    // If the view type changes, delete and recreate the view instead of updating
                    let { reuseType  } = this._getReuseType(view.layoutInfo, item);
                    if (view.viewType !== reuseType) {
                        toUpdate.delete(key);
                        toAdd.add(key);
                        toRemove.add(key);
                    }
                }
            }
            // We are done if the sets are equal
            if (toAdd.size === 0 && toRemove.size === 0 && toUpdate.size === 0) {
                if (this._transaction) this._applyLayoutInfos();
                return;
            }
        }
        // Track views that should be removed. They are not removed from
        // the DOM immediately, since we may reuse and need to re-insert
        // them back into the DOM anyway.
        let removed = new Set();
        for (let key of toRemove.keys()){
            let view = this._visibleViews.get(key);
            if (view) {
                removed.add(view);
                this._visibleViews.delete(key);
                // If we are in the middle of a transaction, wait until the end
                // of the animations to remove the views from the DOM. Also means
                // we can't reuse those views immediately.
                if (this._transaction) this._transaction.toRemove.set(key, view);
                else this.reuseView(view);
            }
        }
        for (let key of toAdd.keys()){
            let layoutInfo = visibleLayoutInfos.get(key);
            let view;
            // If we're in a transaction, and a layout change happens
            // during the animations such that a view that was going
            // to be removed is now not, we don't create a new view
            // since the old one is still in the DOM, marked as toRemove.
            if (this._transaction) {
                // if transaction, get initial layout attributes for the animation
                if (this._transaction.initialLayoutInfo.has(key)) layoutInfo = this._transaction.initialLayoutInfo.get(key);
                view = this._transaction.toRemove.get(key);
                if (view) {
                    this._transaction.toRemove.delete(key);
                    this._applyLayoutInfo(view, layoutInfo);
                }
            }
            if (!view) {
                // Create or reuse a view for this row
                view = this.getReusableView(layoutInfo);
                // Add the view to the DOM if needed
                if (!removed.has(view)) this._children.add(view);
            }
            this._visibleViews.set(key, view);
            removed.delete(view);
        }
        for (let key of toUpdate){
            let view = currentlyVisible.get(key);
            this._renderedContent.delete(key);
            this._renderView(view);
        }
        // Remove the remaining rows to delete from the DOM
        if (!this._transaction) this.removeViews(removed);
        this._correctItemOrder();
        this._flushVisibleViews();
        let hasLayoutUpdates = this._transaction && (toAdd.size > 0 || toRemove.size > 0 || this._hasLayoutUpdates());
        if (hasLayoutUpdates) requestAnimationFrame(()=>{
            // If we're in a transaction, apply animations to visible views
            // and "to be removed" views, which animate off screen.
            if (this._transaction) requestAnimationFrame(()=>this._applyLayoutInfos());
        });
        return hasLayoutUpdates;
    }
    afterRender() {
        if (this._transactionQueue.length > 0) this._processTransactionQueue();
        else if (this._invalidationContext) this.relayoutNow();
        if (this.shouldOverscan) this._overscanManager.collectMetrics();
    }
    _flushVisibleViews() {
        // CollectionVirtualizer deals with a flattened set of LayoutInfos, but they can represent heirarchy
        // by referencing a parentKey. Just before rendering the visible views, we rebuild this heirarchy
        // by creating a mapping of views by parent key and recursively calling the delegate's renderWrapper
        // method to build the final tree.
        let viewsByParentKey = new Map([
            [
                null,
                []
            ]
        ]);
        for (let view of this._children){
            var _view_layoutInfo, _viewsByParentKey_get, _view_layoutInfo1, _view_layoutInfo2, _view_layoutInfo3;
            if (((_view_layoutInfo = view.layoutInfo) === null || _view_layoutInfo === void 0 ? void 0 : _view_layoutInfo.parentKey) != null && !viewsByParentKey.has(view.layoutInfo.parentKey)) viewsByParentKey.set(view.layoutInfo.parentKey, []);
            (_viewsByParentKey_get = viewsByParentKey.get((_view_layoutInfo1 = view.layoutInfo) === null || _view_layoutInfo1 === void 0 ? void 0 : _view_layoutInfo1.parentKey)) === null || _viewsByParentKey_get === void 0 ? void 0 : _viewsByParentKey_get.push(view);
            if (!viewsByParentKey.has((_view_layoutInfo2 = view.layoutInfo) === null || _view_layoutInfo2 === void 0 ? void 0 : _view_layoutInfo2.key)) viewsByParentKey.set((_view_layoutInfo3 = view.layoutInfo) === null || _view_layoutInfo3 === void 0 ? void 0 : _view_layoutInfo3.key, []);
        }
        let buildTree = (parent, views)=>views.map((view)=>{
                let children = viewsByParentKey.get(view.layoutInfo.key);
                return this.delegate.renderWrapper(parent, view, children, (childViews)=>buildTree(view, childViews));
            });
        let children = buildTree(null, viewsByParentKey.get(null));
        this.delegate.setVisibleViews(children);
    }
    _applyLayoutInfo(view, layoutInfo) {
        if (view.layoutInfo === layoutInfo) return false;
        view.layoutInfo = layoutInfo;
        return true;
    }
    _applyLayoutInfos() {
        let updated = false;
        // Apply layout infos to visible views
        for (let view of this._visibleViews.values()){
            let cur = view.layoutInfo;
            if ((cur === null || cur === void 0 ? void 0 : cur.key) != null) {
                let layoutInfo = this.layout.getLayoutInfo(cur.key);
                if (this._applyLayoutInfo(view, layoutInfo)) updated = true;
            }
        }
        // Apply final layout infos for views that will be removed
        if (this._transaction) {
            for (let view of this._transaction.toRemove.values()){
                let cur = view.layoutInfo;
                if ((cur === null || cur === void 0 ? void 0 : cur.key) != null) {
                    let layoutInfo = this.layout.getLayoutInfo(cur.key);
                    if (this._applyLayoutInfo(view, layoutInfo)) updated = true;
                }
            }
            for (let view of this._transaction.removed.values()){
                let cur = view.layoutInfo;
                let layoutInfo = this._transaction.finalLayoutInfo.get(cur.key) || cur;
                layoutInfo = this.layout.getFinalLayoutInfo(layoutInfo.copy());
                if (this._applyLayoutInfo(view, layoutInfo)) updated = true;
            }
        }
        if (updated) this._flushVisibleViews();
    }
    _hasLayoutUpdates() {
        if (!this._transaction) return false;
        for (let view of this._visibleViews.values()){
            let cur = view.layoutInfo;
            if (!cur) return true;
            let layoutInfo = this.layout.getLayoutInfo(cur.key);
            if (// Uses equals rather than pointEquals so that width/height changes are taken into account
            !cur.rect.equals(layoutInfo.rect) || cur.opacity !== layoutInfo.opacity || cur.transform !== layoutInfo.transform) return true;
        }
        return false;
    }
    reuseView(view) {
        view.prepareForReuse();
        this._reusableViews[view.viewType].push(view);
    }
    removeViews(toRemove) {
        for (let view of toRemove)this._children.delete(view);
    }
    updateItemSize(key, size) {
        // TODO: we should be able to invalidate a single index path
        // @ts-ignore
        if (!this.layout.updateItemSize) return;
        // If the scroll position is currently animating, add the update
        // to a queue to be processed after the animation is complete.
        if (this._scrollAnimation) {
            this._sizeUpdateQueue.set(key, size);
            return;
        }
        // @ts-ignore
        let changed = this.layout.updateItemSize(key, size);
        if (changed) this.relayout();
    }
    startScrolling() {
        this._isScrolling = true;
    }
    endScrolling() {
        this._isScrolling = false;
        this._correctItemOrder();
        this._flushVisibleViews();
    }
    _resetAnimatedContentOffset() {
        // Reset the animated content offset of subviews. See comment in relayoutNow for details.
        if (!this._animatedContentOffset.isOrigin()) {
            this._animatedContentOffset = new (0, _point.Point)(0, 0);
            this._applyLayoutInfos();
        }
    }
    /**
   * Scrolls the item with the given key into view, optionally with an animation.
   * @param key The key of the item to scroll into view.
   * @param duration The duration of the scroll animation.
   */ scrollToItem(key, options) {
        // key can be 0, so check if null or undefined
        if (key == null) return;
        let layoutInfo = this.layout.getLayoutInfo(key);
        if (!layoutInfo) return;
        let { duration =300 , shouldScrollX =true , shouldScrollY =true , offsetX =0 , offsetY =0  } = options;
        let x = this.visibleRect.x;
        let y = this.visibleRect.y;
        let minX = layoutInfo.rect.x - offsetX;
        let minY = layoutInfo.rect.y - offsetY;
        let maxX = x + this.visibleRect.width;
        let maxY = y + this.visibleRect.height;
        if (shouldScrollX) {
            if (minX <= x || maxX === 0) x = minX;
            else if (layoutInfo.rect.maxX > maxX) x += layoutInfo.rect.maxX - maxX;
        }
        if (shouldScrollY) {
            if (minY <= y || maxY === 0) y = minY;
            else if (layoutInfo.rect.maxY > maxY) y += layoutInfo.rect.maxY - maxY;
        }
        return this.scrollTo(new (0, _point.Point)(x, y), duration);
    }
    /**
   * Performs an animated scroll to the given offset.
   * @param offset - The offset to scroll to.
   * @param duration The duration of the animation.
   * @returns A promise that resolves when the animation is complete.
   */ scrollTo(offset, duration = 300) {
        // Cancel the current scroll animation
        if (this._scrollAnimation) {
            this._scrollAnimation.cancel();
            this._scrollAnimation = null;
        }
        // Set the content offset synchronously if the duration is zero
        if (duration <= 0 || this.visibleRect.pointEquals(offset)) {
            this._setContentOffset(offset);
            return Promise.resolve();
        }
        this.startScrolling();
        this._scrollAnimation = (0, _tween.tween)(this.visibleRect, offset, duration, (0, _tween.easeOut), (offset)=>{
            this._setContentOffset(offset);
        });
        this._scrollAnimation.then(()=>{
            this._scrollAnimation = null;
            // Process view size updates that occurred during the animation.
            // Only views that are still visible will be actually updated.
            for (let [key, size] of this._sizeUpdateQueue)this.updateItemSize(key, size);
            this._sizeUpdateQueue.clear();
            this.relayout();
            this._processTransactionQueue();
            this.endScrolling();
        });
        return this._scrollAnimation;
    }
    _runTransaction(action, animated) {
        this._startTransaction();
        if (this._nextTransaction) this._nextTransaction.actions.push(action);
        this._endTransaction(animated);
    }
    _startTransaction() {
        if (!this._nextTransaction) this._nextTransaction = new (0, _transaction.Transaction);
        this._nextTransaction.level++;
    }
    _endTransaction(animated) {
        if (!this._nextTransaction) return false;
        // Save whether the transaction should be animated.
        if (animated != null) this._nextTransaction.animated = animated;
        // If we haven't reached level 0, we are still in a
        // nested transaction. Wait for the parent to end.
        if (--this._nextTransaction.level > 0) return false;
        // Do nothing for empty transactions
        if (this._nextTransaction.actions.length === 0) {
            this._nextTransaction = null;
            return false;
        }
        // Default animations to true
        if (this._nextTransaction.animated == null) this._nextTransaction.animated = true;
        // Enqueue the transaction
        this._transactionQueue.push(this._nextTransaction);
        this._nextTransaction = null;
        return true;
    }
    _processTransactionQueue() {
        // If the current transaction is animating, wait until the end
        // to process the next transaction.
        if (this._transaction || this._scrollAnimation) return;
        let next = this._transactionQueue.shift();
        if (next) this._performTransaction(next);
    }
    _getContentRect() {
        return new (0, _rect.Rect)(0, 0, this.contentSize.width, this.contentSize.height);
    }
    _performTransaction(transaction) {
        this._transaction = transaction;
        this.relayoutNow({
            transaction: transaction,
            animated: transaction.animated,
            beforeLayout: ()=>{
                // Get the initial layout infos for all views before the updates
                // so we can figure out which views to add and remove.
                if (transaction.animated) transaction.initialMap = this._getLayoutInfoMap(this._getContentRect(), true);
                // Apply the actions that occurred during this transaction
                for (let action of transaction.actions)action();
            },
            afterLayout: ()=>{
                // Get the final layout infos after the updates
                if (transaction.animated) {
                    transaction.finalMap = this._getLayoutInfoMap(this._getContentRect());
                    this._setupTransactionAnimations(transaction);
                } else this._transaction = null;
            },
            afterAnimation: ()=>{
                // Remove and reuse views when animations are done
                if (transaction.toRemove.size > 0 || transaction.removed.size > 0) for (let view of (0, _utils.concatIterators)(transaction.toRemove.values(), transaction.removed.values())){
                    this._children.delete(view);
                    this.reuseView(view);
                }
                this._transaction = null;
                // Ensure DOM order is correct for accessibility after animations are complete
                this._correctItemOrder();
                this._flushVisibleViews();
                this._processTransactionQueue();
            }
        });
    }
    _setupTransactionAnimations(transaction) {
        let { initialMap , finalMap  } = transaction;
        // Store initial and final layout infos for animations
        for (let [key, layoutInfo] of initialMap)if (finalMap.has(key)) // Store the initial layout info for use during animations.
        transaction.initialLayoutInfo.set(key, layoutInfo);
        else // This view was removed. Store the layout info for use
        // in Layout#getFinalLayoutInfo during animations.
        transaction.finalLayoutInfo.set(layoutInfo.key, layoutInfo);
        // Get initial layout infos for views that were added
        for (let [key, layoutInfo] of finalMap)if (!initialMap.has(key)) {
            let initialLayoutInfo = this.layout.getInitialLayoutInfo(layoutInfo.copy());
            transaction.initialLayoutInfo.set(key, initialLayoutInfo);
        }
        // Figure out which views were removed.
        for (let [key, view] of this._visibleViews)// If an item has a width of 0, there is no need to remove it from the _visibleViews.
        // Removing an item with  width of 0 can cause a loop where the item gets added, removed,
        // added, removed... etc in a loop.
        if (!finalMap.has(key) && view.layoutInfo.rect.width > 0) {
            transaction.removed.set(key, view);
            this._visibleViews.delete(key);
            // In case something weird happened, where we have a view but no
            // initial layout info, use the one attached to the view.
            if (view.layoutInfo) {
                if (!transaction.finalLayoutInfo.has(view.layoutInfo.key)) transaction.finalLayoutInfo.set(view.layoutInfo.key, view.layoutInfo);
            }
        }
    }
    constructor(options = {}){
        this._contentSize = new (0, _size.Size);
        this._visibleRect = new (0, _rect.Rect);
        this._reusableViews = {};
        this._visibleLayoutInfos = new Map();
        this._visibleViews = new Map();
        this._renderedContent = new WeakMap();
        this._children = new Set();
        this._invalidationContext = null;
        this._overscanManager = new (0, _overscanManager.OverscanManager)();
        this._persistedKeys = new Set();
        this._scrollAnimation = null;
        this._isScrolling = false;
        this._sizeUpdateQueue = new Map();
        this._animatedContentOffset = new (0, _point.Point)(0, 0);
        this._transaction = null;
        this._nextTransaction = null;
        this._transactionQueue = [];
        var _options_transitionDuration;
        // Set options from passed object if given
        this.transitionDuration = (_options_transitionDuration = options.transitionDuration) !== null && _options_transitionDuration !== void 0 ? _options_transitionDuration : 500;
        this.anchorScrollPosition = options.anchorScrollPosition || false;
        this.anchorScrollPositionAtTop = options.anchorScrollPositionAtTop || false;
        this.shouldOverscan = options.shouldOverscan !== false;
        for (let key of [
            "delegate",
            "size",
            "layout",
            "collection"
        ])if (options[key]) this[key] = options[key];
    }
}

},{"./tween":"3mysH","./utils":"f5Xxr","./OverscanManager":"7TMga","./Point":"1vACg","./Rect":"gB2EU","./ReusableView":"gRU7Z","./Size":"5Q1XS","./Transaction":"9gFr9","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3mysH":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "tween", ()=>tween);
// easing functions
parcelHelpers.export(exports, "linearEasing", ()=>linearEasing);
parcelHelpers.export(exports, "easeOut", ()=>easeOut);
var _point = require("./Point");
// use high res timer if available
let perf = typeof window !== "undefined" ? window.performance : null;
// @ts-ignore
let perfNow = perf && (perf.now || perf.webkitNow || perf.msNow || perf.mozNow);
let getTime = perfNow ? perfNow.bind(perf) : function() {
    return Date.now ? Date.now() : new Date().getTime();
};
let fixTs;
function tween(begin, end, duration, ease, fn) {
    let canceled = false;
    let raf_id;
    let promise = new Promise((resolve)=>{
        let start = getTime();
        let diffX = end.x - begin.x;
        let diffY = end.y - begin.y;
        raf_id = requestAnimationFrame(function run(t) {
            // if we're using a high res timer, make sure timestamp is not the old epoch-based value.
            // http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision
            if (fixTs == null) fixTs = t > 1e12 !== getTime() > 1e12;
            if (fixTs) t = getTime();
            // check if we're done
            let delta = t - start;
            if (delta > duration) {
                fn(end);
                resolve();
            } else {
                // call frame callback after computing eased time and get the next frame
                let proceed = fn(new (0, _point.Point)(begin.x + diffX * ease(delta / duration), begin.y + diffY * ease(delta / duration)));
                if (proceed !== false && !canceled) raf_id = requestAnimationFrame(run);
            }
        });
    });
    promise.cancel = function() {
        canceled = true;
        cancelAnimationFrame(raf_id);
    };
    return promise;
}
function linearEasing(t) {
    return t;
}
function easeOut(t) {
    return Math.sin(t * Math.PI / 2);
}

},{"./Point":"1vACg","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"f5Xxr":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "keyDiff", ()=>keyDiff);
/**
 * Returns the key difference between two maps. Returns a set of
 * keys to add to and remove from a to make it equal to b.
 * @private
 */ parcelHelpers.export(exports, "difference", ()=>difference);
/**
 * Returns an iterator that yields the items in all of the given iterators.
 * @private
 */ parcelHelpers.export(exports, "concatIterators", ()=>concatIterators);
/**
 * Inverts the keys and values of an object.
 * @private
 */ parcelHelpers.export(exports, "invert", ()=>invert);
/** Returns whether two sets are equal. */ parcelHelpers.export(exports, "isSetEqual", ()=>isSetEqual);
function keyDiff(a, b) {
    let res = new Set();
    for (let key of a.keys())if (!b.has(key)) res.add(key);
    return res;
}
function difference(a, b) {
    let toRemove = keyDiff(a, b);
    let toAdd = keyDiff(b, a);
    let toUpdate = new Set;
    for (let key of a.keys())if (b.has(key)) toUpdate.add(key);
    return {
        toRemove,
        toAdd,
        toUpdate
    };
}
function* concatIterators(...iterators) {
    for (let iterator of iterators)yield* iterator;
}
function invert(object) {
    let res = {};
    for(let key in object)res[object[key]] = key;
    return res;
}
function isSetEqual(a, b) {
    if (a === b) return true;
    if (a.size !== b.size) return false;
    for (let key of a){
        if (!b.has(key)) return false;
    }
    return true;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7TMga":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "OverscanManager", ()=>OverscanManager);
var _point = require("./Point");
var _rect = require("./Rect");
class RollingAverage {
    addSample(sample) {
        this.count++;
        this.value += (sample - this.value) / this.count;
    }
    constructor(){
        this.count = 0;
        this.value = 0;
    }
}
class OverscanManager {
    setVisibleRect(rect) {
        let time = performance.now() - this.startTime;
        if (time < 500) {
            this.averageTime.addSample(time);
            if (rect.x !== this.visibleRect.x && time > 0) this.velocity.x = (rect.x - this.visibleRect.x) / time;
            if (rect.y !== this.visibleRect.y && time > 0) this.velocity.y = (rect.y - this.visibleRect.y) / time;
        }
        this.startTime = performance.now();
        this.visibleRect = rect;
    }
    collectMetrics() {
        let time = performance.now() - this.startTime;
        if (time < 500) this.averagePerf.addSample(time);
        if (this.visibleRect.height > 0) {
            let o = Math.abs(this.velocity.y * (this.averageTime.value + this.averagePerf.value));
            this.overscanY.addSample(o);
        }
        if (this.visibleRect.width > 0) {
            let o = Math.abs(this.velocity.x * (this.averageTime.value + this.averagePerf.value));
            this.overscanX.addSample(o);
        }
    }
    getOverscannedRect() {
        let overscanned = this.visibleRect.copy();
        let overscanY = Math.round(Math.min(this.visibleRect.height * 2, this.overscanY.value) / 100) * 100;
        if (this.velocity.y > 0) {
            overscanned.y -= overscanY * 0.2;
            overscanned.height += overscanY + overscanY * 0.2;
        } else {
            overscanned.y -= overscanY;
            overscanned.height += overscanY + overscanY * 0.2;
        }
        let overscanX = Math.round(Math.min(this.visibleRect.width * 2, this.overscanX.value) / 100) * 100;
        if (this.velocity.x > 0) {
            overscanned.x -= overscanX * 0.2;
            overscanned.width += overscanX + overscanX * 0.2;
        } else {
            overscanned.x -= overscanX;
            overscanned.width += overscanX + overscanX * 0.2;
        }
        return overscanned;
    }
    constructor(){
        this.startTime = 0;
        this.averagePerf = new RollingAverage();
        this.averageTime = new RollingAverage();
        this.velocity = new (0, _point.Point)(5, 5);
        this.overscanX = new RollingAverage();
        this.overscanY = new RollingAverage();
        this.visibleRect = new (0, _rect.Rect)();
    }
}

},{"./Point":"1vACg","./Rect":"gB2EU","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9gFr9":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Transaction", ()=>Transaction);
class Transaction {
    constructor(){
        this.level = 0;
        this.actions = [];
        this.animated = true;
        this.initialMap = new Map();
        this.finalMap = new Map();
        this.initialLayoutInfo = new Map();
        this.finalLayoutInfo = new Map();
        this.removed = new Map();
        this.toRemove = new Map();
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"3zc6f":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ // @ts-ignore
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ScrollView", ()=>ScrollViewForwardRef);
var _reactDom = require("react-dom");
var _utils = require("./utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _virtualizer = require("@react-stately/virtualizer");
var _utils1 = require("@react-aria/utils");
var _i18N = require("@react-aria/i18n");
function ScrollView(props, ref) {
    let { contentSize , onVisibleRectChange , children , innerStyle , sizeToFit , onScrollStart , onScrollEnd , scrollDirection ="both" , ...otherProps } = props;
    let defaultRef = (0, _react.useRef)();
    ref = ref || defaultRef;
    let state = (0, _react.useRef)({
        scrollTop: 0,
        scrollLeft: 0,
        scrollEndTime: 0,
        scrollTimeout: null,
        width: 0,
        height: 0,
        isScrolling: false
    }).current;
    let { direction  } = (0, _i18N.useLocale)();
    let [isScrolling, setScrolling] = (0, _react.useState)(false);
    let onScroll = (0, _react.useCallback)((e)=>{
        if (e.target !== e.currentTarget) return;
        if (props.onScroll) props.onScroll(e);
        (0, _reactDom.flushSync)(()=>{
            let scrollTop = e.currentTarget.scrollTop;
            let scrollLeft = (0, _utils.getScrollLeft)(e.currentTarget, direction);
            // Prevent rubber band scrolling from shaking when scrolling out of bounds
            state.scrollTop = Math.max(0, Math.min(scrollTop, contentSize.height - state.height));
            state.scrollLeft = Math.max(0, Math.min(scrollLeft, contentSize.width - state.width));
            onVisibleRectChange(new (0, _virtualizer.Rect)(state.scrollLeft, state.scrollTop, state.width, state.height));
            if (!state.isScrolling) {
                state.isScrolling = true;
                setScrolling(true);
                if (onScrollStart) onScrollStart();
            }
            // So we don't constantly call clearTimeout and setTimeout,
            // keep track of the current timeout time and only reschedule
            // the timer when it is getting close.
            let now = Date.now();
            if (state.scrollEndTime <= now + 50) {
                state.scrollEndTime = now + 300;
                clearTimeout(state.scrollTimeout);
                state.scrollTimeout = setTimeout(()=>{
                    state.isScrolling = false;
                    setScrolling(false);
                    state.scrollTimeout = null;
                    if (onScrollEnd) onScrollEnd();
                }, 300);
            }
        });
    }, [
        props,
        direction,
        state,
        contentSize,
        onVisibleRectChange,
        onScrollStart,
        onScrollEnd
    ]);
    // eslint-disable-next-line arrow-body-style
    (0, _react.useEffect)(()=>{
        return ()=>{
            clearTimeout(state.scrollTimeout);
        };
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
    let updateSize = (0, _react.useCallback)(()=>{
        let dom = ref.current;
        if (!dom) return;
        let w = dom.clientWidth;
        let h = dom.clientHeight;
        if (sizeToFit && contentSize.width > 0 && contentSize.height > 0) {
            if (sizeToFit === "width") w = Math.min(w, contentSize.width);
            else if (sizeToFit === "height") h = Math.min(h, contentSize.height);
        }
        if (state.width !== w || state.height !== h) {
            state.width = w;
            state.height = h;
            onVisibleRectChange(new (0, _virtualizer.Rect)(state.scrollLeft, state.scrollTop, w, h));
        }
    }, [
        onVisibleRectChange,
        ref,
        state,
        sizeToFit,
        contentSize
    ]);
    (0, _utils1.useLayoutEffect)(()=>{
        updateSize();
    }, [
        updateSize
    ]);
    (0, _utils1.useResizeObserver)({
        ref,
        onResize: updateSize
    });
    let style = {
        // Reset padding so that relative positioning works correctly. Padding will be done in JS layout.
        padding: 0,
        ...otherProps.style
    };
    if (scrollDirection === "horizontal") {
        style.overflowX = "auto";
        style.overflowY = "hidden";
    } else if (scrollDirection === "vertical") {
        style.overflowY = "auto";
        style.overflowX = "hidden";
    } else style.overflow = "auto";
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...otherProps,
        style: style,
        ref: ref,
        onScroll: onScroll
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        role: "presentation",
        style: {
            width: contentSize.width,
            height: contentSize.height,
            pointerEvents: isScrolling ? "none" : "auto",
            position: "relative",
            ...innerStyle
        }
    }, children));
}
const ScrollViewForwardRef = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(ScrollView);

},{"react-dom":"react-dom","./utils":"1ZVbR","react":"react","@react-stately/virtualizer":"jc2s8","@react-aria/utils":"5XGXZ","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1ZVbR":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Original licensing for the following methods can be found in the
// NOTICE file in the root directory of this source tree.
// See https://github.com/bvaughn/react-window/blob/master/src/createGridComponent.js
// According to the spec, scrollLeft should be negative for RTL aligned elements.
// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).
// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.
// The safest way to check this is to intentionally set a negative offset,
// and then verify that the subsequent "scroll" event matches the negative offset.
// If it does not match, then we can assume a non-standard RTL scroll implementation.
parcelHelpers.export(exports, "getRTLOffsetType", ()=>getRTLOffsetType);
parcelHelpers.export(exports, "getScrollLeft", ()=>getScrollLeft);
parcelHelpers.export(exports, "setScrollLeft", ()=>setScrollLeft);
let cachedRTLResult = null;
function getRTLOffsetType(recalculate = false) {
    if (cachedRTLResult === null || recalculate) {
        const outerDiv = document.createElement("div");
        const outerStyle = outerDiv.style;
        outerStyle.width = "50px";
        outerStyle.height = "50px";
        outerStyle.overflow = "scroll";
        outerStyle.direction = "rtl";
        const innerDiv = document.createElement("div");
        const innerStyle = innerDiv.style;
        innerStyle.width = "100px";
        innerStyle.height = "100px";
        outerDiv.appendChild(innerDiv);
        document.body.appendChild(outerDiv);
        if (outerDiv.scrollLeft > 0) cachedRTLResult = "positive-descending";
        else {
            outerDiv.scrollLeft = 1;
            if (outerDiv.scrollLeft === 0) cachedRTLResult = "negative";
            else cachedRTLResult = "positive-ascending";
        }
        document.body.removeChild(outerDiv);
        return cachedRTLResult;
    }
    return cachedRTLResult;
}
function getScrollLeft(node, direction) {
    let { scrollLeft  } = node;
    // scrollLeft in rtl locales differs across browsers, so normalize.
    // See comment by getRTLOffsetType below for details.
    if (direction === "rtl") {
        let { scrollWidth , clientWidth  } = node;
        switch(getRTLOffsetType()){
            case "negative":
                scrollLeft = -scrollLeft;
                break;
            case "positive-descending":
                scrollLeft = scrollWidth - clientWidth - scrollLeft;
                break;
        }
    }
    return scrollLeft;
}
function setScrollLeft(node, direction, scrollLeft) {
    if (direction === "rtl") switch(getRTLOffsetType()){
        case "negative":
            scrollLeft = -scrollLeft;
            break;
        case "positive-ascending":
            break;
        default:
            {
                const { clientWidth , scrollWidth  } = node;
                scrollLeft = scrollWidth - clientWidth - scrollLeft;
                break;
            }
    }
    node.scrollLeft = scrollLeft;
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6Ce2v":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "VirtualizerItem", ()=>VirtualizerItem);
parcelHelpers.export(exports, "layoutInfoToStyle", ()=>layoutInfoToStyle);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _i18N = require("@react-aria/i18n");
var _useVirtualizerItem = require("./useVirtualizerItem");
function VirtualizerItem(props) {
    let { className , layoutInfo , virtualizer , parent , children  } = props;
    let { direction  } = (0, _i18N.useLocale)();
    let ref = (0, _react.useRef)();
    (0, _useVirtualizerItem.useVirtualizerItem)({
        layoutInfo,
        virtualizer,
        ref
    });
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        role: "presentation",
        ref: ref,
        className: className,
        style: layoutInfoToStyle(layoutInfo, direction, parent)
    }, children);
}
let cache = new WeakMap();
function layoutInfoToStyle(layoutInfo, dir, parent) {
    let xProperty = dir === "rtl" ? "right" : "left";
    let cached = cache.get(layoutInfo);
    if (cached && cached[xProperty] != null) {
        if (!parent) return cached;
        // Invalidate if the parent position changed.
        let top = layoutInfo.rect.y - parent.rect.y;
        let x = layoutInfo.rect.x - parent.rect.x;
        if (cached.top === top && cached[xProperty] === x) return cached;
    }
    let style = {
        position: layoutInfo.isSticky ? "sticky" : "absolute",
        // Sticky elements are positioned in normal document flow. Display inline-block so that they don't push other sticky columns onto the following rows.
        display: layoutInfo.isSticky ? "inline-block" : undefined,
        overflow: layoutInfo.allowOverflow ? "visible" : "hidden",
        top: layoutInfo.rect.y - (parent ? parent.rect.y : 0),
        [xProperty]: layoutInfo.rect.x - (parent ? parent.rect.x : 0),
        transition: "all",
        WebkitTransition: "all",
        WebkitTransitionDuration: "inherit",
        transitionDuration: "inherit",
        width: layoutInfo.rect.width,
        height: layoutInfo.rect.height,
        opacity: layoutInfo.opacity,
        zIndex: layoutInfo.zIndex,
        transform: layoutInfo.transform,
        contain: "size layout style"
    };
    cache.set(layoutInfo, style);
    return style;
}

},{"react":"react","@react-aria/i18n":"lHUec","./useVirtualizerItem":"5BmcF","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5BmcF":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useVirtualizerItem", ()=>useVirtualizerItem);
var _react = require("react");
var _virtualizer = require("@react-stately/virtualizer");
var _utils = require("@react-aria/utils");
function useVirtualizerItem(options) {
    let { layoutInfo , virtualizer , ref  } = options;
    let updateSize = (0, _react.useCallback)(()=>{
        let size = getSize(ref.current);
        virtualizer.updateItemSize(layoutInfo.key, size);
    }, [
        virtualizer,
        layoutInfo.key,
        ref
    ]);
    (0, _utils.useLayoutEffect)(()=>{
        if (layoutInfo.estimatedSize) updateSize();
    });
    return {
        updateSize
    };
}
function getSize(node) {
    // Reset height before measuring so we get the intrinsic size
    let height = node.style.height;
    node.style.height = "";
    let size = new (0, _virtualizer.Size)(node.scrollWidth, node.scrollHeight);
    node.style.height = height;
    return size;
}

},{"react":"react","@react-stately/virtualizer":"jc2s8","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"34beZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ListLayout", ()=>(0, _listLayout.ListLayout));
parcelHelpers.export(exports, "TableLayout", ()=>(0, _tableLayout.TableLayout));
var _listLayout = require("./ListLayout");
var _tableLayout = require("./TableLayout");

},{"./ListLayout":"fFYll","./TableLayout":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fFYll":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * The ListLayout class is an implementation of a collection view {@link Layout}
 * it is used for creating lists and lists with indented sub-lists.
 *
 * To configure a ListLayout, you can use the properties to define the
 * layouts and/or use the method for defining indentation.
 * The {@link ListKeyboardDelegate} extends the existing collection view
 * delegate with an additional method to do this (it uses the same delegate object as
 * the collection view itself).
 */ parcelHelpers.export(exports, "ListLayout", ()=>ListLayout);
var _collections = require("@react-stately/collections");
var _virtualizer = require("@react-stately/virtualizer");
const DEFAULT_HEIGHT = 48;
class ListLayout extends (0, _virtualizer.Layout) {
    getLayoutInfo(key) {
        let res = this.layoutInfos.get(key);
        // If the layout info wasn't found, it might be outside the bounds of the area that we've
        // computed layout for so far. This can happen when accessing a random key, e.g pressing Home/End.
        // Compute the full layout and try again.
        if (!res && this.validRect.area < this.contentSize.area && this.lastCollection) {
            this.lastValidRect = this.validRect;
            this.validRect = new (0, _virtualizer.Rect)(0, 0, Infinity, Infinity);
            this.rootNodes = this.buildCollection();
            this.validRect = new (0, _virtualizer.Rect)(0, 0, this.contentSize.width, this.contentSize.height);
            res = this.layoutInfos.get(key);
        }
        return res;
    }
    getVisibleLayoutInfos(rect) {
        // If layout hasn't yet been done for the requested rect, union the
        // new rect with the existing valid rect, and recompute.
        if (!this.validRect.containsRect(rect) && this.lastCollection) {
            this.lastValidRect = this.validRect;
            this.validRect = this.validRect.union(rect);
            this.rootNodes = this.buildCollection();
        }
        let res = [];
        let addNodes = (nodes)=>{
            for (let node of nodes)if (this.isVisible(node, rect)) {
                res.push(node.layoutInfo);
                if (node.header) res.push(node.header);
                if (node.children) addNodes(node.children);
            }
        };
        addNodes(this.rootNodes);
        return res;
    }
    isVisible(node, rect) {
        return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky || this.virtualizer.isPersistedKey(node.layoutInfo.key);
    }
    shouldInvalidateEverything(invalidationContext) {
        // Invalidate cache if the size of the collection changed.
        // In this case, we need to recalculate the entire layout.
        return invalidationContext.sizeChanged;
    }
    validate(invalidationContext) {
        this.collection = this.virtualizer.collection;
        // Reset valid rect if we will have to invalidate everything.
        // Otherwise we can reuse cached layout infos outside the current visible rect.
        this.invalidateEverything = this.shouldInvalidateEverything(invalidationContext);
        if (this.invalidateEverything) {
            this.lastValidRect = this.validRect;
            this.validRect = this.virtualizer.getVisibleRect();
        }
        this.rootNodes = this.buildCollection();
        // Remove deleted layout nodes
        if (this.lastCollection && this.collection !== this.lastCollection) {
            for (let key of this.lastCollection.getKeys())if (!this.collection.getItem(key)) {
                let layoutNode = this.layoutNodes.get(key);
                if (layoutNode) {
                    var _layoutNode_header;
                    this.layoutInfos.delete(layoutNode.layoutInfo.key);
                    this.layoutInfos.delete((_layoutNode_header = layoutNode.header) === null || _layoutNode_header === void 0 ? void 0 : _layoutNode_header.key);
                    this.layoutNodes.delete(key);
                }
            }
        }
        this.lastWidth = this.virtualizer.visibleRect.width;
        this.lastCollection = this.collection;
        this.invalidateEverything = false;
    }
    buildCollection() {
        let y = this.padding;
        let skipped = 0;
        let nodes = [];
        for (let node of this.collection){
            var _this_rowHeight;
            let rowHeight = (_this_rowHeight = this.rowHeight) !== null && _this_rowHeight !== void 0 ? _this_rowHeight : this.estimatedRowHeight;
            // Skip rows before the valid rectangle unless they are already cached.
            if (node.type === "item" && y + rowHeight < this.validRect.y && !this.isValid(node, y)) {
                y += rowHeight;
                skipped++;
                continue;
            }
            let layoutNode = this.buildChild(node, 0, y);
            y = layoutNode.layoutInfo.rect.maxY;
            nodes.push(layoutNode);
            if (node.type === "item" && y > this.validRect.maxY) {
                y += (this.collection.size - (nodes.length + skipped)) * rowHeight;
                break;
            }
        }
        if (this.isLoading) {
            var _this_loaderHeight;
            let rect = new (0, _virtualizer.Rect)(0, y, this.virtualizer.visibleRect.width, (_this_loaderHeight = this.loaderHeight) !== null && _this_loaderHeight !== void 0 ? _this_loaderHeight : this.virtualizer.visibleRect.height);
            let loader = new (0, _virtualizer.LayoutInfo)("loader", "loader", rect);
            this.layoutInfos.set("loader", loader);
            nodes.push({
                layoutInfo: loader
            });
            y = loader.rect.maxY;
        }
        if (nodes.length === 0) {
            var _this_placeholderHeight;
            let rect = new (0, _virtualizer.Rect)(0, y, this.virtualizer.visibleRect.width, (_this_placeholderHeight = this.placeholderHeight) !== null && _this_placeholderHeight !== void 0 ? _this_placeholderHeight : this.virtualizer.visibleRect.height);
            let placeholder = new (0, _virtualizer.LayoutInfo)("placeholder", "placeholder", rect);
            this.layoutInfos.set("placeholder", placeholder);
            nodes.push({
                layoutInfo: placeholder
            });
            y = placeholder.rect.maxY;
        }
        this.contentSize = new (0, _virtualizer.Size)(this.virtualizer.visibleRect.width, y + this.padding);
        return nodes;
    }
    isValid(node, y) {
        let cached = this.layoutNodes.get(node.key);
        return !this.invalidateEverything && cached && cached.node === node && y === (cached.header || cached.layoutInfo).rect.y && cached.layoutInfo.rect.intersects(this.lastValidRect) && cached.validRect.containsRect(cached.layoutInfo.rect.intersection(this.validRect));
    }
    buildChild(node, x, y) {
        if (this.isValid(node, y)) return this.layoutNodes.get(node.key);
        let layoutNode = this.buildNode(node, x, y);
        layoutNode.node = node;
        var _node_parentKey;
        layoutNode.layoutInfo.parentKey = (_node_parentKey = node.parentKey) !== null && _node_parentKey !== void 0 ? _node_parentKey : null;
        this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);
        if (layoutNode.header) this.layoutInfos.set(layoutNode.header.key, layoutNode.header);
        this.layoutNodes.set(node.key, layoutNode);
        return layoutNode;
    }
    buildNode(node, x, y) {
        switch(node.type){
            case "section":
                return this.buildSection(node, x, y);
            case "item":
                return this.buildItem(node, x, y);
        }
    }
    buildSection(node, x, y) {
        let width = this.virtualizer.visibleRect.width;
        let rectHeight = this.headingHeight;
        let isEstimated = false;
        // If no explicit height is available, use an estimated height.
        if (rectHeight == null) {
            // If a previous version of this layout info exists, reuse its height.
            // Mark as estimated if the size of the overall collection view changed,
            // or the content of the item changed.
            let previousLayoutNode = this.layoutNodes.get(node.key);
            if (previousLayoutNode && previousLayoutNode.header) {
                let curNode = this.collection.getItem(node.key);
                let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;
                rectHeight = previousLayoutNode.header.rect.height;
                isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;
            } else {
                rectHeight = node.rendered ? this.estimatedHeadingHeight : 0;
                isEstimated = true;
            }
        }
        if (rectHeight == null) rectHeight = DEFAULT_HEIGHT;
        let headerRect = new (0, _virtualizer.Rect)(0, y, width, rectHeight);
        let header = new (0, _virtualizer.LayoutInfo)("header", node.key + ":header", headerRect);
        header.estimatedSize = isEstimated;
        header.parentKey = node.key;
        y += header.rect.height;
        let rect = new (0, _virtualizer.Rect)(0, y, width, 0);
        let layoutInfo = new (0, _virtualizer.LayoutInfo)(node.type, node.key, rect);
        let startY = y;
        let skipped = 0;
        let children = [];
        for (let child of (0, _collections.getChildNodes)(node, this.collection)){
            var _this_rowHeight;
            let rowHeight = (_this_rowHeight = this.rowHeight) !== null && _this_rowHeight !== void 0 ? _this_rowHeight : this.estimatedRowHeight;
            // Skip rows before the valid rectangle unless they are already cached.
            if (y + rowHeight < this.validRect.y && !this.isValid(node, y)) {
                y += rowHeight;
                skipped++;
                continue;
            }
            let layoutNode = this.buildChild(child, x, y);
            y = layoutNode.layoutInfo.rect.maxY;
            children.push(layoutNode);
            if (y > this.validRect.maxY) {
                // Estimate the remaining height for rows that we don't need to layout right now.
                y += ([
                    ...(0, _collections.getChildNodes)(node, this.collection)
                ].length - (children.length + skipped)) * rowHeight;
                break;
            }
        }
        rect.height = y - startY;
        return {
            header,
            layoutInfo,
            children,
            validRect: layoutInfo.rect.intersection(this.validRect)
        };
    }
    buildItem(node, x, y) {
        let width = this.virtualizer.visibleRect.width;
        let rectHeight = this.rowHeight;
        let isEstimated = false;
        // If no explicit height is available, use an estimated height.
        if (rectHeight == null) {
            // If a previous version of this layout info exists, reuse its height.
            // Mark as estimated if the size of the overall collection view changed,
            // or the content of the item changed.
            let previousLayoutNode = this.layoutNodes.get(node.key);
            if (previousLayoutNode) {
                rectHeight = previousLayoutNode.layoutInfo.rect.height;
                isEstimated = width !== this.lastWidth || node !== previousLayoutNode.node || previousLayoutNode.layoutInfo.estimatedSize;
            } else {
                rectHeight = this.estimatedRowHeight;
                isEstimated = true;
            }
        }
        if (rectHeight == null) rectHeight = DEFAULT_HEIGHT;
        if (typeof this.indentationForItem === "function") x += this.indentationForItem(this.collection, node.key) || 0;
        let rect = new (0, _virtualizer.Rect)(x, y, width - x, rectHeight);
        let layoutInfo = new (0, _virtualizer.LayoutInfo)(node.type, node.key, rect);
        // allow overflow so the focus ring/selection ring can extend outside to overlap with the adjacent items borders
        layoutInfo.allowOverflow = true;
        layoutInfo.estimatedSize = isEstimated;
        return {
            layoutInfo,
            validRect: layoutInfo.rect
        };
    }
    updateItemSize(key, size) {
        let layoutInfo = this.layoutInfos.get(key);
        // If no layoutInfo, item has been deleted/removed.
        if (!layoutInfo) return false;
        layoutInfo.estimatedSize = false;
        if (layoutInfo.rect.height !== size.height) {
            // Copy layout info rather than mutating so that later caches are invalidated.
            let newLayoutInfo = layoutInfo.copy();
            newLayoutInfo.rect.height = size.height;
            this.layoutInfos.set(key, newLayoutInfo);
            // Invalidate layout for this layout node and all parents
            this.updateLayoutNode(key, layoutInfo, newLayoutInfo);
            let node = this.collection.getItem(layoutInfo.parentKey);
            while(node){
                this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);
                node = this.collection.getItem(node.parentKey);
            }
            return true;
        }
        return false;
    }
    updateLayoutNode(key, oldLayoutInfo, newLayoutInfo) {
        let n = this.layoutNodes.get(key);
        if (n) {
            // Invalidate by reseting validRect.
            n.validRect = new (0, _virtualizer.Rect)();
            // Replace layout info in LayoutNode
            if (n.header === oldLayoutInfo) n.header = newLayoutInfo;
            else if (n.layoutInfo === oldLayoutInfo) n.layoutInfo = newLayoutInfo;
        }
    }
    getContentSize() {
        return this.contentSize;
    }
    getKeyAbove(key) {
        let collection = this.collection;
        key = collection.getKeyBefore(key);
        while(key != null){
            let item = collection.getItem(key);
            if (item.type === "item" && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
            key = collection.getKeyBefore(key);
        }
    }
    getKeyBelow(key) {
        let collection = this.collection;
        key = collection.getKeyAfter(key);
        while(key != null){
            let item = collection.getItem(key);
            if (item.type === "item" && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
            key = collection.getKeyAfter(key);
        }
    }
    getKeyPageAbove(key) {
        let layoutInfo = this.getLayoutInfo(key);
        if (layoutInfo) {
            let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);
            while(layoutInfo && layoutInfo.rect.y > pageY){
                let keyAbove = this.getKeyAbove(layoutInfo.key);
                layoutInfo = this.getLayoutInfo(keyAbove);
            }
            if (layoutInfo) return layoutInfo.key;
        }
        return this.getFirstKey();
    }
    getKeyPageBelow(key) {
        let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());
        if (layoutInfo) {
            let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);
            while(layoutInfo && layoutInfo.rect.y < pageY){
                let keyBelow = this.getKeyBelow(layoutInfo.key);
                layoutInfo = this.getLayoutInfo(keyBelow);
            }
            if (layoutInfo) return layoutInfo.key;
        }
        return this.getLastKey();
    }
    getFirstKey() {
        let collection = this.collection;
        let key = collection.getFirstKey();
        while(key != null){
            let item = collection.getItem(key);
            if (item.type === "item" && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
            key = collection.getKeyAfter(key);
        }
    }
    getLastKey() {
        let collection = this.collection;
        let key = collection.getLastKey();
        while(key != null){
            let item = collection.getItem(key);
            if (item.type === "item" && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
            key = collection.getKeyBefore(key);
        }
    }
    getKeyForSearch(search, fromKey) {
        if (!this.collator) return null;
        let collection = this.collection;
        let key = fromKey || this.getFirstKey();
        while(key != null){
            let item = collection.getItem(key);
            let substring = item.textValue.slice(0, search.length);
            if (item.textValue && this.collator.compare(substring, search) === 0) return key;
            key = this.getKeyBelow(key);
        }
        return null;
    }
    getInitialLayoutInfo(layoutInfo) {
        layoutInfo.opacity = 0;
        layoutInfo.transform = "scale3d(0.8, 0.8, 0.8)";
        return layoutInfo;
    }
    getFinalLayoutInfo(layoutInfo) {
        layoutInfo.opacity = 0;
        layoutInfo.transform = "scale3d(0.8, 0.8, 0.8)";
        return layoutInfo;
    }
    getDropTargetFromPoint(x, y, isValidDropTarget) {
        x += this.virtualizer.visibleRect.x;
        y += this.virtualizer.visibleRect.y;
        let key = this.virtualizer.keyAtPoint(new (0, _virtualizer.Point)(x, y));
        if (key == null || this.collection.size === 0) return {
            type: "root"
        };
        let layoutInfo = this.getLayoutInfo(key);
        let rect = layoutInfo.rect;
        let target = {
            type: "item",
            key: layoutInfo.key,
            dropPosition: "on"
        };
        // If dropping on the item isn't accepted, try the target before or after depending on the y position.
        // Otherwise, if dropping on the item is accepted, still try the before/after positions if within 10px
        // of the top or bottom of the item.
        if (!isValidDropTarget(target)) {
            if (y <= rect.y + rect.height / 2 && isValidDropTarget({
                ...target,
                dropPosition: "before"
            })) target.dropPosition = "before";
            else if (isValidDropTarget({
                ...target,
                dropPosition: "after"
            })) target.dropPosition = "after";
        } else if (y <= rect.y + 10 && isValidDropTarget({
            ...target,
            dropPosition: "before"
        })) target.dropPosition = "before";
        else if (y >= rect.maxY - 10 && isValidDropTarget({
            ...target,
            dropPosition: "after"
        })) target.dropPosition = "after";
        return target;
    }
    /**
   * Creates a new ListLayout with options. See the list of properties below for a description
   * of the options that can be provided.
   */ constructor(options = {}){
        super();
        this.disabledKeys = new Set();
        this.allowDisabledKeyFocus = false;
        this.rowHeight = options.rowHeight;
        this.estimatedRowHeight = options.estimatedRowHeight;
        this.headingHeight = options.headingHeight;
        this.estimatedHeadingHeight = options.estimatedHeadingHeight;
        this.padding = options.padding || 0;
        this.indentationForItem = options.indentationForItem;
        this.collator = options.collator;
        this.loaderHeight = options.loaderHeight;
        this.placeholderHeight = options.placeholderHeight;
        this.layoutInfos = new Map();
        this.layoutNodes = new Map();
        this.rootNodes = [];
        this.lastWidth = 0;
        this.lastCollection = null;
        this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;
        this.lastValidRect = new (0, _virtualizer.Rect)();
        this.validRect = new (0, _virtualizer.Rect)();
        this.contentSize = new (0, _virtualizer.Size)();
    }
}

},{"@react-stately/collections":"l5k8z","@react-stately/virtualizer":"jc2s8","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bgya5":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ProgressBar", ()=>(0, _progressBar.ProgressBar));
parcelHelpers.export(exports, "ProgressCircle", ()=>(0, _progressCircle.ProgressCircle));
parcelHelpers.export(exports, "ProgressBarBase", ()=>(0, _progressBarBase.ProgressBarBase));
var _progressBar = require("./ProgressBar");
var _progressCircle = require("./ProgressCircle");
var _progressBarBase = require("./ProgressBarBase");

},{"./ProgressBar":false,"./ProgressCircle":"gfiIH","./ProgressBarBase":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gfiIH":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ProgressCircle", ()=>_ProgressCircle);
var _utils = require("@react-aria/utils");
var _utils1 = require("@react-spectrum/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/circleloader/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _progress = require("@react-aria/progress");
function ProgressCircle(props, ref) {
    let { value =0 , minValue =0 , maxValue =100 , size ="M" , variant , isIndeterminate =false , "aria-label": ariaLabel , "aria-labelledby": ariaLabelledby , ...otherProps } = props;
    let domRef = (0, _utils1.useDOMRef)(ref);
    let { styleProps  } = (0, _utils1.useStyleProps)(otherProps);
    value = (0, _utils.clamp)(value, minValue, maxValue);
    let { progressBarProps  } = (0, _progress.useProgressBar)({
        ...props,
        value
    });
    let subMask1Style = {};
    let subMask2Style = {};
    if (!isIndeterminate) {
        let percentage = (value - minValue) / (maxValue - minValue) * 100;
        let angle;
        if (percentage > 0 && percentage <= 50) {
            angle = -180 + percentage / 50 * 180;
            subMask1Style.transform = `rotate(${angle}deg)`;
            subMask2Style.transform = "rotate(-180deg)";
        } else if (percentage > 50) {
            angle = -180 + (percentage - 50) / 50 * 180;
            subMask1Style.transform = "rotate(0deg)";
            subMask2Style.transform = `rotate(${angle}deg)`;
        }
    }
    if (!ariaLabel && !ariaLabelledby) console.warn("ProgressCircle requires an aria-label or aria-labelledby attribute for accessibility");
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...styleProps,
        ...progressBarProps,
        ref: domRef,
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader", {
            "spectrum-CircleLoader--indeterminate": isIndeterminate,
            "spectrum-CircleLoader--small": size === "S",
            "spectrum-CircleLoader--large": size === "L",
            "spectrum-CircleLoader--overBackground": variant === "overBackground"
        }, styleProps.className)
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-track")
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fills")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fillMask1")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fillSubMask1"),
        "data-testid": "fillSubMask1",
        style: subMask1Style
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fill")
    }))), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fillMask2")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fillSubMask2"),
        "data-testid": "fillSubMask2",
        style: subMask2Style
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils1.classNames)((0, _varsCssDefault.default), "spectrum-CircleLoader-fill")
    })))));
}
/**
 * ProgressCircles show the progression of a system operation such as downloading, uploading, or processing, in a visual way.
 * They can represent determinate or indeterminate progress.
 */ let _ProgressCircle = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(ProgressCircle);

},{"@react-aria/utils":"5XGXZ","@react-spectrum/utils":"cYYzN","react":"react","@adobe/spectrum-css-temp/components/circleloader/vars.css":"ckImD","@react-aria/progress":"l4sgI","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ckImD":[function(require,module,exports) {
module.exports["spectrum-CircleLoader--indeterminate-fill-submask-2"] = "spectrum-CircleLoader--indeterminate-fill-submask-2_7c1153";
module.exports["spectrum-fill-mask-2"] = "spectrum-fill-mask-2_7c1153";
module.exports["spectrum-CircleLoader"] = "spectrum-CircleLoader_7c1153";
module.exports["spectrum-CircleLoader-track"] = "spectrum-CircleLoader-track_7c1153";
module.exports["spectrum-CircleLoader-fills"] = "spectrum-CircleLoader-fills_7c1153";
module.exports["spectrum-CircleLoader-fill"] = "spectrum-CircleLoader-fill_7c1153";
module.exports["spectrum-CircleLoader-fillMask1"] = "spectrum-CircleLoader-fillMask1_7c1153";
module.exports["spectrum-CircleLoader-fillMask2"] = "spectrum-CircleLoader-fillMask2_7c1153";
module.exports["spectrum-CircleLoader-fillSubMask1"] = "spectrum-CircleLoader-fillSubMask1_7c1153";
module.exports["spectrum-CircleLoader-fillSubMask2"] = "spectrum-CircleLoader-fillSubMask2_7c1153";
module.exports["spectrum-CircleLoader--small"] = "spectrum-CircleLoader--small_7c1153";
module.exports["spectrum-CircleLoader--large"] = "spectrum-CircleLoader--large_7c1153";
module.exports["spectrum-CircleLoader--indeterminate"] = "spectrum-CircleLoader--indeterminate_7c1153";
module.exports["spectrum-fills-rotate"] = "spectrum-fills-rotate_7c1153";
module.exports["spectrum-fill-mask-1"] = "spectrum-fill-mask-1_7c1153";
module.exports["spectrum-CircleLoader--overBackground"] = "spectrum-CircleLoader--overBackground_7c1153";

},{}],"l4sgI":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useProgressBar", ()=>(0, _useProgressBar.useProgressBar));
var _useProgressBar = require("./useProgressBar");

},{"./useProgressBar":"8HDcB","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8HDcB":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the accessibility implementation for a progress bar component.
 * Progress bars show either determinate or indeterminate progress of an operation
 * over time.
 */ parcelHelpers.export(exports, "useProgressBar", ()=>useProgressBar);
var _utils = require("@react-aria/utils");
var _label = require("@react-aria/label");
var _i18N = require("@react-aria/i18n");
function useProgressBar(props) {
    let { value =0 , minValue =0 , maxValue =100 , valueLabel , isIndeterminate , formatOptions ={
        style: "percent"
    }  } = props;
    let domProps = (0, _utils.filterDOMProps)(props, {
        labelable: true
    });
    let { labelProps , fieldProps  } = (0, _label.useLabel)({
        ...props,
        // Progress bar is not an HTML input element so it
        // shouldn't be labeled by a <label> element.
        labelElementType: "span"
    });
    value = (0, _utils.clamp)(value, minValue, maxValue);
    let percentage = (value - minValue) / (maxValue - minValue);
    let formatter = (0, _i18N.useNumberFormatter)(formatOptions);
    if (!isIndeterminate && !valueLabel) {
        let valueToFormat = formatOptions.style === "percent" ? percentage : value;
        valueLabel = formatter.format(valueToFormat);
    }
    return {
        progressBarProps: (0, _utils.mergeProps)(domProps, {
            ...fieldProps,
            "aria-valuenow": isIndeterminate ? undefined : value,
            "aria-valuemin": minValue,
            "aria-valuemax": maxValue,
            "aria-valuetext": isIndeterminate ? undefined : valueLabel,
            role: "progressbar"
        }),
        labelProps
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/label":"91g24","@react-aria/i18n":"lHUec","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6tWvn":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "TextArea", ()=>(0, _textArea.TextArea));
parcelHelpers.export(exports, "TextField", ()=>(0, _textField.TextField));
parcelHelpers.export(exports, "TextFieldBase", ()=>(0, _textFieldBase.TextFieldBase));
var _textArea = require("./TextArea");
var _textField = require("./TextField");
var _textFieldBase = require("./TextFieldBase");

},{"./TextArea":false,"./TextField":false,"./TextFieldBase":"eQyaP","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eQyaP":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "TextFieldBase", ()=>_TextFieldBase);
var _alertMedium = require("@spectrum-icons/ui/AlertMedium");
var _alertMediumDefault = parcelHelpers.interopDefault(_alertMedium);
var _checkmarkMedium = require("@spectrum-icons/ui/CheckmarkMedium");
var _checkmarkMediumDefault = parcelHelpers.interopDefault(_checkmarkMedium);
var _utils = require("@react-spectrum/utils");
var _label = require("@react-spectrum/label");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/textfield/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _focus = require("@react-aria/focus");
var _interactions = require("@react-aria/interactions");
function TextFieldBase(props, ref) {
    let { validationState , icon , isQuiet =false , isDisabled , multiLine , autoFocus , inputClassName , wrapperChildren , labelProps , inputProps , descriptionProps , errorMessageProps , inputRef: userInputRef , isLoading , loadingIndicator , validationIconClassName , disableFocusRing  } = props;
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({
        isDisabled
    });
    let domRef = (0, _react.useRef)(null);
    let defaultInputRef = (0, _react.useRef)(null);
    let inputRef = userInputRef || defaultInputRef;
    // Expose imperative interface for ref
    (0, _react.useImperativeHandle)(ref, ()=>({
            ...(0, _utils.createFocusableRef)(domRef, inputRef),
            select () {
                if (inputRef.current) inputRef.current.select();
            },
            getInputElement () {
                return inputRef.current;
            }
        }));
    let ElementType = multiLine ? "textarea" : "input";
    let isInvalid = validationState === "invalid" && !isDisabled;
    if (icon) {
        let UNSAFE_className = (0, _utils.classNames)((0, _varsCssDefault.default), icon.props && icon.props.UNSAFE_className, "spectrum-Textfield-icon");
        icon = /*#__PURE__*/ (0, _react.cloneElement)(icon, {
            UNSAFE_className,
            size: "S"
        });
    }
    let validationIcon = isInvalid ? /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _alertMediumDefault.default), null) : /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _checkmarkMediumDefault.default), null);
    let validation = /*#__PURE__*/ (0, _react.cloneElement)(validationIcon, {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Textfield-validationIcon", validationIconClassName)
    });
    let { focusProps , isFocusVisible  } = (0, _focus.useFocusRing)({
        isTextInput: true,
        autoFocus
    });
    let textField = /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Textfield", {
            "spectrum-Textfield--invalid": isInvalid,
            "spectrum-Textfield--valid": validationState === "valid" && !isDisabled,
            "spectrum-Textfield--loadable": loadingIndicator,
            "spectrum-Textfield--quiet": isQuiet,
            "spectrum-Textfield--multiline": multiLine,
            "focus-ring": !disableFocusRing && isFocusVisible
        })
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(ElementType, {
        ...(0, _utils1.mergeProps)(inputProps, hoverProps, focusProps),
        ref: inputRef,
        rows: multiLine ? 1 : undefined,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Textfield-input", {
            "spectrum-Textfield-inputIcon": icon,
            "is-hovered": isHovered
        }, inputClassName)
    }), icon, validationState && !isLoading && !isDisabled ? validation : null, isLoading && loadingIndicator, wrapperChildren);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _label.Field), {
        ...props,
        labelProps: labelProps,
        descriptionProps: descriptionProps,
        errorMessageProps: errorMessageProps,
        wrapperClassName: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Textfield-wrapper", {
            "spectrum-Textfield-wrapper--quiet": isQuiet
        }),
        showErrorIcon: false,
        ref: domRef
    }, textField);
}
const _TextFieldBase = /*#__PURE__*/ (0, _react.forwardRef)(TextFieldBase);

},{"@spectrum-icons/ui/AlertMedium":"bmjMG","@spectrum-icons/ui/CheckmarkMedium":"46Wpo","@react-spectrum/utils":"cYYzN","@react-spectrum/label":"gfn3V","@react-aria/utils":"5XGXZ","react":"react","@adobe/spectrum-css-temp/components/textfield/vars.css":"8Pg8H","@react-aria/focus":"cRsYs","@react-aria/interactions":"3eipm","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bmjMG":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("45277d9e3df93d6d");
exports.__esModule = true;
exports.default = AlertMedium;
var _extends2 = _interopRequireDefault(require("acc48a9e1dcbdfb"));
var _AlertMedium = require("24388f28be701b07");
var _icon = require("cf4e06b38b879631");
var _provider = require("854d264222fabe4b");
var _react = _interopRequireDefault(require("acd8f3ae4c6a6d7d"));
const ExpressIcon = (props)=>/*#__PURE__*/ _react.default.createElement("svg", (0, _extends2.default)({
        viewBox: "0 0 18 18"
    }, props), /*#__PURE__*/ _react.default.createElement("path", {
        d: "M9 10.5a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v4.5a1 1 0 0 1-1 1Zm0 1.25A1.25 1.25 0 1 0 10.25 13 1.25 1.25 0 0 0 9 11.75Zm8.497 3.589a3.49 3.49 0 0 0 .079-3.474L12 1.815a3.385 3.385 0 0 0-5.994-.007L.416 11.88a3.485 3.485 0 0 0 .089 3.459A3.375 3.375 0 0 0 3.416 17h11.169a3.375 3.375 0 0 0 2.912-1.661ZM10.244 2.77l5.575 10.05a1.497 1.497 0 0 1-.037 1.489 1.374 1.374 0 0 1-1.197.69H3.416a1.374 1.374 0 0 1-1.197-.69 1.493 1.493 0 0 1-.046-1.474l5.593-10.08a1.386 1.386 0 0 1 2.478.015Z"
    }));
ExpressIcon.displayName = _AlertMedium.AlertMedium.displayName;
function AlertMedium(props) {
    var _provider$theme, _provider$theme$globa;
    let provider = (0, _provider.useProvider)();
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, provider != null && (_provider$theme = provider.theme) != null && (_provider$theme$globa = _provider$theme.global) != null && _provider$theme$globa.express ? /*#__PURE__*/ _react.default.createElement(ExpressIcon, null) : /*#__PURE__*/ _react.default.createElement(_AlertMedium.AlertMedium, null));
}

},{"45277d9e3df93d6d":"aSVf3","acc48a9e1dcbdfb":"lpnUu","24388f28be701b07":"j3lnq","cf4e06b38b879631":"fTRUu","854d264222fabe4b":"aPwML","acd8f3ae4c6a6d7d":"react"}],"lpnUu":[function(require,module,exports) {
function _extends() {
    module.exports = _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    }, module.exports.__esModule = true, module.exports["default"] = module.exports;
    return _extends.apply(this, arguments);
}
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;

},{}],"j3lnq":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.AlertMedium = AlertMedium;
var _react = _interopRequireDefault(require("96a8dd2bf834bc9d"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function AlertMedium(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M10.563 2.206l-9.249 16.55a.5.5 0 0 0 .436.744h18.5a.5.5 0 0 0 .436-.744l-9.251-16.55a.5.5 0 0 0-.872 0zm1.436 15.044a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .436-.744L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"
    }));
}
AlertMedium.displayName = "AlertMedium";

},{"96a8dd2bf834bc9d":"react"}],"gfn3V":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Field", ()=>(0, _field.Field));
parcelHelpers.export(exports, "Label", ()=>(0, _label.Label));
parcelHelpers.export(exports, "HelpText", ()=>(0, _helpText.HelpText));
var _field = require("./Field");
var _label = require("./Label");
var _helpText = require("./HelpText");

},{"./Field":"31ZRV","./Label":false,"./HelpText":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"31ZRV":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Field", ()=>_Field);
var _utils = require("@react-spectrum/utils");
var _layout = require("@react-spectrum/layout");
var _helpText = require("./HelpText");
var _label = require("./Label");
var _varsCss = require("@adobe/spectrum-css-temp/components/fieldlabel/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _form = require("@react-spectrum/form");
function Field(props, ref) {
    let formProps = (0, _form.useFormProps)(props);
    let isInForm = formProps !== props;
    props = formProps;
    let { label , labelPosition ="top" , labelAlign , isRequired , necessityIndicator , includeNecessityIndicatorInAccessibilityName , validationState , description , errorMessage , isDisabled , showErrorIcon , contextualHelp , children , labelProps ={} , // Not every component that uses <Field> supports help text.
    descriptionProps ={} , errorMessageProps ={} , elementType , wrapperClassName , wrapperProps ={} , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let hasHelpText = !!description || errorMessage && validationState === "invalid";
    let contextualHelpId = (0, _utils1.useId)();
    let fallbackLabelPropsId = (0, _utils1.useId)();
    if (label && contextualHelp && !labelProps.id) labelProps.id = fallbackLabelPropsId;
    let labelWrapperClass = (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Field", {
        "spectrum-Field--positionTop": labelPosition === "top",
        "spectrum-Field--positionSide": labelPosition === "side",
        "spectrum-Field--alignEnd": labelAlign === "end",
        "spectrum-Field--hasContextualHelp": !!props.contextualHelp
    }, styleProps.className, wrapperClassName);
    children = /*#__PURE__*/ (0, _reactDefault.default).cloneElement(children, (0, _utils1.mergeProps)(children.props, {
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Field-field")
    }));
    let renderHelpText = ()=>/*#__PURE__*/ (0, _reactDefault.default).createElement((0, _helpText.HelpText), {
            descriptionProps: descriptionProps,
            errorMessageProps: errorMessageProps,
            description: description,
            errorMessage: errorMessage,
            validationState: validationState,
            isDisabled: isDisabled,
            showErrorIcon: showErrorIcon,
            gridArea: "helpText"
        });
    let renderChildren = ()=>{
        if (labelPosition === "side") return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _layout.Flex), {
            direction: "column",
            UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Field-wrapper")
        }, children, hasHelpText && renderHelpText());
        return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, children, hasHelpText && renderHelpText());
    };
    let labelAndContextualHelp = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, label && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _label.Label), {
        ...labelProps,
        labelPosition: labelPosition,
        labelAlign: labelAlign,
        isRequired: isRequired,
        necessityIndicator: necessityIndicator,
        includeNecessityIndicatorInAccessibilityName: includeNecessityIndicatorInAccessibilityName,
        elementType: elementType
    }, label), label && contextualHelp && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.SlotProvider), {
        slots: {
            actionButton: {
                UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Field-contextualHelp"),
                id: contextualHelpId,
                "aria-labelledby": (labelProps === null || labelProps === void 0 ? void 0 : labelProps.id) ? `${labelProps.id} ${contextualHelpId}` : undefined
            }
        }
    }, contextualHelp));
    // Need to add an extra wrapper for the label and contextual help if labelPosition is side,
    // so that the table layout works inside forms.
    if (isInForm && labelPosition === "side" && label && contextualHelp) labelAndContextualHelp = /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Field-labelCell")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Field-labelWrapper")
    }, labelAndContextualHelp));
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...styleProps,
        ...wrapperProps,
        ref: ref,
        className: labelWrapperClass
    }, labelAndContextualHelp, renderChildren());
}
let _Field = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Field);

},{"@react-spectrum/utils":"cYYzN","@react-spectrum/layout":"hyyym","./HelpText":"fSUUE","./Label":"lC0Vk","@adobe/spectrum-css-temp/components/fieldlabel/vars.css":"3gxB1","@react-aria/utils":"5XGXZ","react":"react","@react-spectrum/form":"degh6","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fSUUE":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "HelpText", ()=>_HelpText);
var _alertMedium = require("@spectrum-icons/ui/AlertMedium");
var _alertMediumDefault = parcelHelpers.interopDefault(_alertMedium);
var _utils = require("@react-spectrum/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/helptext/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
function HelpText(props, ref) {
    let { description , errorMessage , validationState , isDisabled , showErrorIcon , descriptionProps , errorMessageProps  } = props;
    let domRef = (0, _utils.useDOMRef)(ref);
    let isErrorMessage = errorMessage && validationState === "invalid";
    let { styleProps  } = (0, _utils.useStyleProps)(props);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...styleProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-HelpText", `spectrum-HelpText--${isErrorMessage ? "negative" : "neutral"}`, {
            "is-disabled": isDisabled
        }, styleProps.className),
        ref: domRef
    }, isErrorMessage ? /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, showErrorIcon && /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _alertMediumDefault.default), {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-HelpText-validationIcon")
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...errorMessageProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-HelpText-text")
    }, errorMessage)) : /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...descriptionProps,
        className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-HelpText-text")
    }, description));
}
/**
 * Help text provides either an informative description or an error message that gives more context about what a user needs to input. It's commonly used in forms.
 */ const _HelpText = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(HelpText);

},{"@spectrum-icons/ui/AlertMedium":"bmjMG","@react-spectrum/utils":"cYYzN","react":"react","@adobe/spectrum-css-temp/components/helptext/vars.css":"8C9Lh","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8C9Lh":[function(require,module,exports) {
module.exports["spectrum-HelpText"] = "spectrum-HelpText_f395de";
module.exports["spectrum-HelpText-validationIcon"] = "spectrum-HelpText-validationIcon_f395de";
module.exports["spectrum-HelpText-text"] = "spectrum-HelpText-text_f395de";
module.exports["spectrum-HelpText--neutral"] = "spectrum-HelpText--neutral_f395de";
module.exports["is-disabled"] = "is-disabled_f395de";
module.exports["spectrum-HelpText--negative"] = "spectrum-HelpText--negative_f395de";

},{}],"lC0Vk":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Label", ()=>_Label);
var _asterisk = require("@spectrum-icons/ui/Asterisk");
var _asteriskDefault = parcelHelpers.interopDefault(_asterisk);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _varsCss = require("@adobe/spectrum-css-temp/components/fieldlabel/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _i18N = require("@react-aria/i18n");
var _provider = require("@react-spectrum/provider");
function Label(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    let { children , labelPosition ="top" , labelAlign =labelPosition === "side" ? "start" : null , isRequired , necessityIndicator =isRequired != null ? "icon" : null , includeNecessityIndicatorInAccessibilityName =false , htmlFor , for: labelFor , elementType: ElementType = "label" , onClick , ...otherProps } = props;
    let domRef = (0, _utils.useDOMRef)(ref);
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let necessityLabel = isRequired ? stringFormatter.format("(required)") : stringFormatter.format("(optional)");
    let icon = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _asteriskDefault.default), {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-FieldLabel-requiredIcon"),
        "aria-label": includeNecessityIndicatorInAccessibilityName ? stringFormatter.format("(required)") : undefined
    });
    let labelClassNames = (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-FieldLabel", {
        "spectrum-FieldLabel--positionSide": labelPosition === "side",
        "spectrum-FieldLabel--alignEnd": labelAlign === "end"
    }, styleProps.className);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(ElementType, {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        onClick: onClick,
        ref: domRef,
        className: labelClassNames,
        htmlFor: ElementType === "label" ? labelFor || htmlFor : undefined
    }, children, (necessityIndicator === "label" || necessityIndicator === "icon" && isRequired) && " ​", necessityIndicator === "label" && /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
        "aria-hidden": !includeNecessityIndicatorInAccessibilityName ? isRequired : undefined
    }, necessityLabel), necessityIndicator === "icon" && isRequired && icon);
}
let _Label = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(Label);

},{"@spectrum-icons/ui/Asterisk":"bNNtk","@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","../intl/*.json":"85AbI","react":"react","@adobe/spectrum-css-temp/components/fieldlabel/vars.css":"3gxB1","@react-aria/i18n":"lHUec","@react-spectrum/provider":"aPwML","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bNNtk":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("7ffcbe2c835b6388");
exports.__esModule = true;
exports.default = Asterisk;
var _Asterisk = require("7f1df2bc34aa26e1");
var _icon = require("7062d8415074095c");
var _react = _interopRequireDefault(require("6bea687caf317384"));
function Asterisk(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_Asterisk.Asterisk, null));
}

},{"7ffcbe2c835b6388":"aSVf3","7f1df2bc34aa26e1":"hQG9E","7062d8415074095c":"fTRUu","6bea687caf317384":"react"}],"hQG9E":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.Asterisk = Asterisk;
var _react = _interopRequireDefault(require("661a767f8fb5a4d4"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function Asterisk(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M7.867 7.872c.061.062.103.145 0 .228l-1.283.827c-.104.061-.145.02-.186-.083L4.804 6.07l-2.09 2.297c-.021.042-.083.083-.145 0l-.994-1.035c-.103-.062-.082-.124 0-.186l2.36-1.966-2.691-1.014c-.042 0-.104-.083-.062-.186l.703-1.41a.11.11 0 0 1 .187-.04L4.43 4.06l.145-3.02A.109.109 0 0 1 4.7.917l1.718.227c.104 0 .124.042.104.145l-.808 2.96 2.734-.828c.061-.042.124-.042.165.082l.27 1.532c.02.103 0 .145-.084.145l-2.856.227z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M6.573 6.558c.056.055.092.13 0 .204l-1.148.74c-.093.056-.13.02-.167-.073L3.832 4.947l-1.87 2.055c-.02.037-.075.074-.13 0l-.889-.926c-.092-.055-.074-.111 0-.167l2.111-1.76-2.408-.906c-.037 0-.092-.074-.055-.167l.63-1.259a.097.097 0 0 1 .166-.036l2.111 1.37.13-2.704a.097.097 0 0 1 .111-.11L5.277.54c.092 0 .11.037.092.13l-.722 2.647 2.444-.74c.056-.038.111-.038.148.073l.241 1.37c.019.093 0 .13-.074.13l-2.556.204z"
    }));
}
Asterisk.displayName = "Asterisk";

},{"661a767f8fb5a4d4":"react"}],"85AbI":[function(require,module,exports) {
const _temp0 = require("2bfb4d497771281d");
const _temp1 = require("9fe31fc8b821e915");
const _temp2 = require("be1d593fe675cb5e");
const _temp3 = require("ea132c82fcce344b");
const _temp4 = require("223d6e8df067052d");
const _temp5 = require("618b3a44d402b39d");
const _temp6 = require("631dc76ccef81f62");
const _temp7 = require("ac16f0833e9fb325");
const _temp8 = require("1d030b7551e06d7e");
const _temp9 = require("3ee3310ab1344642");
const _temp10 = require("6def8779041b5a4");
const _temp11 = require("71e0468396c6340e");
const _temp12 = require("268ec23f8cb0b2bb");
const _temp13 = require("9139206aa6189511");
const _temp14 = require("3cc45d1915e24e9f");
const _temp15 = require("11c02c803513cef2");
const _temp16 = require("bb56caddd698ca25");
const _temp17 = require("9549474a3dc7f5ea");
const _temp18 = require("73475cc06fa04f65");
const _temp19 = require("7db1a097996f468c");
const _temp20 = require("40540c2453f98dcb");
const _temp21 = require("f26de163f08e8b8e");
const _temp22 = require("be0378ba9d612dc9");
const _temp23 = require("f5b8791453a91c8d");
const _temp24 = require("680d80cf800efd5d");
const _temp25 = require("373e5a9aae7e5fb7");
const _temp26 = require("80ddd443cc947960");
const _temp27 = require("323c8b6cbcef675b");
const _temp28 = require("2b6d134d5b4c3031");
const _temp29 = require("8dafa196ef9a1129");
const _temp30 = require("d7f4588a3c514984");
const _temp31 = require("67c9418c63cd65e9");
const _temp32 = require("9fbef7c353909f63");
const _temp33 = require("88a3c5faa299eb0e");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"2bfb4d497771281d":"7RxgR","9fe31fc8b821e915":"8leAC","be1d593fe675cb5e":"lQTrf","ea132c82fcce344b":"8l2pv","223d6e8df067052d":"i8LTI","618b3a44d402b39d":"3HdU1","631dc76ccef81f62":"3Jf4E","ac16f0833e9fb325":"emJCM","1d030b7551e06d7e":"ajm4Y","3ee3310ab1344642":"3sW5D","6def8779041b5a4":"2Jak4","71e0468396c6340e":"f9jHr","268ec23f8cb0b2bb":"gVIKN","9139206aa6189511":"64tpq","3cc45d1915e24e9f":"2Gmf4","11c02c803513cef2":"d0ouA","bb56caddd698ca25":"3Eyj7","9549474a3dc7f5ea":"01Weo","73475cc06fa04f65":"5WMiJ","7db1a097996f468c":"eQy3s","40540c2453f98dcb":"aT4kN","f26de163f08e8b8e":"h4m0l","be0378ba9d612dc9":"knCoF","f5b8791453a91c8d":"3au1T","680d80cf800efd5d":"iFeh6","373e5a9aae7e5fb7":"cCXpU","80ddd443cc947960":"2q58r","323c8b6cbcef675b":"jehyx","2b6d134d5b4c3031":"4wARM","8dafa196ef9a1129":"gbL94","d7f4588a3c514984":"1mWvI","67c9418c63cd65e9":"lmuTU","9fbef7c353909f63":"Ft8va","88a3c5faa299eb0e":"70EIM"}],"7RxgR":[function(require,module,exports) {
module.exports = {
    "(optional)": `(اختياري)`,
    "(required)": `(مطلوب)`
};

},{}],"8leAC":[function(require,module,exports) {
module.exports = {
    "(optional)": `(незадължително)`,
    "(required)": `(задължително)`
};

},{}],"lQTrf":[function(require,module,exports) {
module.exports = {
    "(optional)": `(volitelně)`,
    "(required)": `(požadováno)`
};

},{}],"8l2pv":[function(require,module,exports) {
module.exports = {
    "(optional)": `(valgfrit)`,
    "(required)": `(obligatorisk)`
};

},{}],"i8LTI":[function(require,module,exports) {
module.exports = {
    "(optional)": `(optional)`,
    "(required)": `(erforderlich)`
};

},{}],"3HdU1":[function(require,module,exports) {
module.exports = {
    "(optional)": `(προαιρετικό)`,
    "(required)": `(απαιτείται)`
};

},{}],"3Jf4E":[function(require,module,exports) {
module.exports = {
    "(required)": `(required)`,
    "(optional)": `(optional)`
};

},{}],"emJCM":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcional)`,
    "(required)": `(obligatorio)`
};

},{}],"ajm4Y":[function(require,module,exports) {
module.exports = {
    "(optional)": `(valikuline)`,
    "(required)": `(nõutav)`
};

},{}],"3sW5D":[function(require,module,exports) {
module.exports = {
    "(optional)": `(valinnainen)`,
    "(required)": `(pakollinen)`
};

},{}],"2Jak4":[function(require,module,exports) {
module.exports = {
    "(optional)": `(facultatif)`,
    "(required)": `(requis)`
};

},{}],"f9jHr":[function(require,module,exports) {
module.exports = {
    "(optional)": `(אופציונלי)`,
    "(required)": `(נדרש)`
};

},{}],"gVIKN":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcionalno)`,
    "(required)": `(obvezno)`
};

},{}],"64tpq":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcionális)`,
    "(required)": `(kötelező)`
};

},{}],"2Gmf4":[function(require,module,exports) {
module.exports = {
    "(optional)": `(facoltativo)`,
    "(required)": `(obbligatorio)`
};

},{}],"d0ouA":[function(require,module,exports) {
module.exports = {
    "(optional)": `（オプション）`,
    "(required)": `（必須）`
};

},{}],"3Eyj7":[function(require,module,exports) {
module.exports = {
    "(optional)": `(선택 사항)`,
    "(required)": `(필수 사항)`
};

},{}],"01Weo":[function(require,module,exports) {
module.exports = {
    "(optional)": `(pasirenkama)`,
    "(required)": `(privaloma)`
};

},{}],"5WMiJ":[function(require,module,exports) {
module.exports = {
    "(optional)": `(neobligāti)`,
    "(required)": `(obligāti)`
};

},{}],"eQy3s":[function(require,module,exports) {
module.exports = {
    "(optional)": `(valgfritt)`,
    "(required)": `(obligatorisk)`
};

},{}],"aT4kN":[function(require,module,exports) {
module.exports = {
    "(optional)": `(optioneel)`,
    "(required)": `(vereist)`
};

},{}],"h4m0l":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcjonalne)`,
    "(required)": `(wymagane)`
};

},{}],"knCoF":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcional)`,
    "(required)": `(obrigatório)`
};

},{}],"3au1T":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcional)`,
    "(required)": `(obrigatório)`
};

},{}],"iFeh6":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opţional)`,
    "(required)": `(obligatoriu)`
};

},{}],"cCXpU":[function(require,module,exports) {
module.exports = {
    "(optional)": `(дополнительно)`,
    "(required)": `(обязательно)`
};

},{}],"2q58r":[function(require,module,exports) {
module.exports = {
    "(optional)": `(nepovinné)`,
    "(required)": `(povinné)`
};

},{}],"jehyx":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opcijsko)`,
    "(required)": `(obvezno)`
};

},{}],"4wARM":[function(require,module,exports) {
module.exports = {
    "(optional)": `(opciono)`,
    "(required)": `(obavezno)`
};

},{}],"gbL94":[function(require,module,exports) {
module.exports = {
    "(optional)": `(valfritt)`,
    "(required)": `(krävs)`
};

},{}],"1mWvI":[function(require,module,exports) {
module.exports = {
    "(optional)": `(isteğe bağlı)`,
    "(required)": `(gerekli)`
};

},{}],"lmuTU":[function(require,module,exports) {
module.exports = {
    "(optional)": `(необов’язково)`,
    "(required)": `(обов’язково)`
};

},{}],"Ft8va":[function(require,module,exports) {
module.exports = {
    "(optional)": `（可选）`,
    "(required)": `（必填）`
};

},{}],"70EIM":[function(require,module,exports) {
module.exports = {
    "(optional)": `(選填)`,
    "(required)": `(必填)`
};

},{}],"8Pg8H":[function(require,module,exports) {
module.exports["spectrum-Textfield-input"] = "spectrum-Textfield-input_73bc77";
module.exports["spectrum-Textfield"] = "spectrum-Textfield_73bc77";
module.exports["focus-ring"] = "focus-ring_73bc77";
module.exports["spectrum-Textfield--quiet"] = "spectrum-Textfield--quiet_73bc77";
module.exports["spectrum-Textfield--multiline"] = "spectrum-Textfield--multiline_73bc77";
module.exports["is-placeholder"] = "is-placeholder_73bc77";
module.exports["spectrum-Textfield--valid"] = "spectrum-Textfield--valid_73bc77";
module.exports["spectrum-Textfield--invalid"] = "spectrum-Textfield--invalid_73bc77";
module.exports["spectrum-Textfield--loadable"] = "spectrum-Textfield--loadable_73bc77";
module.exports["spectrum-Textfield-wrapper"] = "spectrum-Textfield-wrapper_73bc77";
module.exports["spectrum-Textfield-wrapper--quiet"] = "spectrum-Textfield-wrapper--quiet_73bc77";
module.exports["spectrum-Textfield-validationIcon"] = "spectrum-Textfield-validationIcon_73bc77";
module.exports["spectrum-Textfield-icon"] = "spectrum-Textfield-icon_73bc77";
module.exports["spectrum-Textfield-inputIcon"] = "spectrum-Textfield-inputIcon_73bc77";
module.exports["spectrum-Textfield-circleLoader"] = "spectrum-Textfield-circleLoader_73bc77";
module.exports["is-focused"] = "is-focused_73bc77";
module.exports["is-disabled"] = "is-disabled_73bc77";

},{}],"iD3KR":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "theme", ()=>theme);
var _spectrumDarkestCss = require("@adobe/spectrum-css-temp/vars/spectrum-darkest.css");
var _spectrumDarkestCssDefault = parcelHelpers.interopDefault(_spectrumDarkestCss);
var _spectrumGlobalCss = require("@adobe/spectrum-css-temp/vars/spectrum-global.css");
var _spectrumGlobalCssDefault = parcelHelpers.interopDefault(_spectrumGlobalCss);
var _spectrumLargeCss = require("@adobe/spectrum-css-temp/vars/spectrum-large.css");
var _spectrumLargeCssDefault = parcelHelpers.interopDefault(_spectrumLargeCss);
var _spectrumLightCss = require("@adobe/spectrum-css-temp/vars/spectrum-light.css");
var _spectrumLightCssDefault = parcelHelpers.interopDefault(_spectrumLightCss);
var _spectrumMediumCss = require("@adobe/spectrum-css-temp/vars/spectrum-medium.css");
var _spectrumMediumCssDefault = parcelHelpers.interopDefault(_spectrumMediumCss);
let theme = {
    global: (0, _spectrumGlobalCssDefault.default),
    light: (0, _spectrumLightCssDefault.default),
    dark: (0, _spectrumDarkestCssDefault.default),
    medium: (0, _spectrumMediumCssDefault.default),
    large: (0, _spectrumLargeCssDefault.default)
};

},{"@adobe/spectrum-css-temp/vars/spectrum-darkest.css":"KblXP","@adobe/spectrum-css-temp/vars/spectrum-global.css":"7NKqd","@adobe/spectrum-css-temp/vars/spectrum-large.css":"6efq4","@adobe/spectrum-css-temp/vars/spectrum-light.css":"5KcEZ","@adobe/spectrum-css-temp/vars/spectrum-medium.css":"ltSJI","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"KblXP":[function(require,module,exports) {
module.exports["spectrum--darkest"] = "spectrum--darkest_256eeb";

},{}],"7NKqd":[function(require,module,exports) {
module.exports["spectrum"] = "spectrum_9e130c";
module.exports["spectrum--medium"] = "spectrum--medium_9e130c";
module.exports["spectrum--large"] = "spectrum--large_9e130c";
module.exports["spectrum--darkest"] = "spectrum--darkest_9e130c";
module.exports["spectrum--dark"] = "spectrum--dark_9e130c";
module.exports["spectrum--light"] = "spectrum--light_9e130c";
module.exports["spectrum--lightest"] = "spectrum--lightest_9e130c";

},{}],"6efq4":[function(require,module,exports) {
module.exports["spectrum--large"] = "spectrum--large_c40598";

},{}],"5KcEZ":[function(require,module,exports) {
module.exports["spectrum--light"] = "spectrum--light_a40724";

},{}],"ltSJI":[function(require,module,exports) {
module.exports["spectrum--medium"] = "spectrum--medium_4b172c";

},{}],"hFzw6":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "View", ()=>(0, _view.View));
parcelHelpers.export(exports, "Content", ()=>(0, _content.Content));
parcelHelpers.export(exports, "Footer", ()=>(0, _footer.Footer));
parcelHelpers.export(exports, "Header", ()=>(0, _header.Header));
var _view = require("./View");
var _content = require("./Content");
var _footer = require("./Footer");
var _header = require("./Header");

},{"./View":"flQdy","./Content":"8QQD2","./Footer":false,"./Header":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"flQdy":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "View", ()=>_View);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
function View(props, ref) {
    props = (0, _utils.useSlotProps)(props);
    let { elementType: ElementType = "div" , children , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(props, (0, _utils.viewStyleProps));
    let domRef = (0, _utils.useDOMRef)(ref);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(ElementType, {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        ref: domRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.ClearSlots), null, children));
}
/**
 * View is a general purpose container with no specific semantics that can be used for custom styling purposes.
 * It supports Spectrum style props to ensure consistency with other Spectrum components.
 */ const _View = /*#__PURE__*/ (0, _react.forwardRef)(View);

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"8QQD2":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Content", ()=>_Content);
var _utils = require("@react-spectrum/utils");
var _utils1 = require("@react-aria/utils");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
function Content(props, ref) {
    props = (0, _utils.useSlotProps)(props, "content");
    let { children , ...otherProps } = props;
    let { styleProps  } = (0, _utils.useStyleProps)(otherProps);
    let domRef = (0, _utils.useDOMRef)(ref);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("section", {
        ...(0, _utils1.filterDOMProps)(otherProps),
        ...styleProps,
        ref: domRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _utils.ClearSlots), null, children));
}
/**
 * Content represents the primary content within a Spectrum container.
 */ const _Content = /*#__PURE__*/ (0, _react.forwardRef)(Content);

},{"@react-spectrum/utils":"cYYzN","@react-aria/utils":"5XGXZ","react":"react","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"jPbEZ":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "default", ()=>DocSearch);
var _jsxRuntime = require("react/jsx-runtime");
var _lite = require("algoliasearch/lite");
var _liteDefault = parcelHelpers.interopDefault(_lite);
var _docsCss = require("./docs.css");
var _docsCssDefault = parcelHelpers.interopDefault(_docsCss);
var _documentOutline = require("@spectrum-icons/workflow/DocumentOutline");
var _documentOutlineDefault = parcelHelpers.interopDefault(_documentOutline);
var _dompurify = require("dompurify");
var _dompurifyDefault = parcelHelpers.interopDefault(_dompurify);
var _icon = require("@react-spectrum/icon");
var _autocomplete = require("@react-spectrum/autocomplete");
var _news = require("@spectrum-icons/workflow/News");
var _newsDefault = parcelHelpers.interopDefault(_news);
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactSpectrum = require("@adobe/react-spectrum");
var _themeSwitcher = require("./ThemeSwitcher");
let client = (0, _liteDefault.default)("1V1Q59JVTR", "44a7e2e7508ff185f25ac64c0a675f98");
let searchIndex = client.initIndex("react-spectrum");
const searchOptions = {
    distinct: 1,
    attributesToRetrieve: [
        "hierarchy.lvl0",
        "hierarchy.lvl1",
        "hierarchy.lvl2",
        "hierarchy.lvl3",
        "hierarchy.lvl4",
        "hierarchy.lvl5",
        "hierarchy.lvl6",
        "content",
        "type",
        "url"
    ],
    attributesToSnippet: [
        "hierarchy.lvl1:10",
        "hierarchy.lvl2:10",
        "hierarchy.lvl3:10",
        "hierarchy.lvl4:10",
        "hierarchy.lvl5:10",
        "hierarchy.lvl6:10",
        "content:10"
    ],
    snippetEllipsisText: "…",
    highlightPreTag: `<mark role="presentation" class="${(0, _docsCssDefault.default).docSearchBoxMark}">`,
    highlightPostTag: "</mark>",
    hitsPerPage: 20
};
const sectionTitles = {
    "react-aria": "React Aria",
    "react-spectrum": "React Spectrum",
    "react-stately": "React Stately",
    "internationalized": "Internationalized",
    "blog": "Blog",
    "architecture": "Architecture",
    "contribute": "Contribute",
    "releases": "Releases",
    "support": "Support"
};
function sectionTitlePredicate(hit) {
    let sectionTitle;
    for (const [path, title] of Object.entries(sectionTitles)){
        let regexp = new RegExp("^.+//.+/" + path + "[/.].+$", "i");
        if (hit.url.match(regexp)) {
            sectionTitle = title;
            break;
        }
    }
    if (!sectionTitle) sectionTitle = "Documentation";
    return sectionTitle;
}
function DocSearch() {
    const [searchValue, setSearchValue] = (0, _react.useState)("");
    const [loadingState, setLoadingState] = (0, _react.useState)(null);
    const [predictions, setPredictions] = (0, _react.useState)(null);
    const [suggestions, setSuggestions] = (0, _react.useState)([]);
    const searchAutocompleteRef = (0, _react.useRef)();
    (0, _react.useEffect)(()=>{
        // Focus search input when user presses Ctrl/Cmd + K
        let handleKeyDown = (e)=>{
            if ((e.ctrlKey || e.metaKey) && e.key === "k") {
                e.preventDefault();
                searchAutocompleteRef.current.focus();
            }
        };
        document.addEventListener("keydown", handleKeyDown);
        return ()=>{
            document.removeEventListener("keydown", handleKeyDown);
        };
    }, []);
    let updatePredictions = ({ hits  })=>{
        setPredictions(hits);
        const groupedBySection = groupBy(hits, (hit)=>sectionTitlePredicate(hit));
        let sections = [];
        for (const [title, hits] of Object.entries(groupedBySection)){
            const items = Object.values(groupBy(hits, (hit)=>hit.hierarchy.lvl1)).map((groupedHits)=>groupedHits.map((hit)=>{
                    const hierarchy = hit.hierarchy;
                    const objectID = hit.objectID;
                    const docsearchParent = hit.type !== "lvl1" && groupedHits.find((siblingItem)=>siblingItem.type === "lvl1" && siblingItem.hierarchy.lvl1 === hit.hierarchy.lvl1);
                    return {
                        key: objectID,
                        hit,
                        hierarchy,
                        docsearchParent,
                        textValue: hit.type === "content" ? hit[hit.type] : hierarchy[hit.type]
                    };
                }));
            sections.push({
                title,
                items: items.map((item)=>item[0])
            });
        }
        let newSuggestions = sections.map((section, index)=>({
                key: `${index}-${section.title}`,
                title: section.title,
                children: section.items
            }));
        newSuggestions.push({
            key: "algolia-footer",
            title: "Search by",
            children: [
                {
                    key: "algolia-footer-logo",
                    textValue: "Algolia"
                }
            ]
        });
        setSuggestions(newSuggestions);
        setLoadingState(null);
    };
    let onInputChange = (query)=>{
        setSearchValue(query);
        if (!query && predictions) {
            setPredictions(null);
            setSuggestions([]);
            setLoadingState(null);
            return;
        }
        setLoadingState("filtering");
        searchIndex.search(query, searchOptions).then(updatePredictions);
    };
    let onSubmit = (value, key)=>{
        if (key === "algolia-footer-logo") {
            window.open("https://www.algolia.com/ref/docsearch/?utm_source=react-spectrum.adobe.com&amp;utm_medium=referral&amp;utm_content=powered_by&amp;utm_campaign=docsearch", "_blank");
            searchAutocompleteRef.current.UNSAFE_getDOMNode().querySelector('[role="button"]').click();
        } else if (key) {
            let prediction = predictions.find((prediction)=>key === prediction.objectID);
            let url = prediction.url;
            window.location.href = `${window.location.hostname === "reactspectrum.blob.core.windows.net" ? window.location.href.replace(/(.+\/docs\/)(.+)/, "$1") : "/"}${url.replace("https://react-spectrum.adobe.com/", "")}`;
        }
    };
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _themeSwitcher.ThemeProvider), {
        UNSAFE_className: (0, _docsCssDefault.default).docSearchBoxThemeProvider,
        children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("span", {
            role: "search",
            children: /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _autocomplete.SearchAutocomplete), {
                ref: searchAutocompleteRef,
                "aria-label": "Search",
                UNSAFE_className: (0, _docsCssDefault.default).docSearchBox,
                items: suggestions,
                loadingState: loadingState,
                value: searchValue,
                onInputChange: onInputChange,
                onOpenChange: (isOpen)=>{
                    if (isOpen) document.body.classList.add((0, _docsCssDefault.default)["docsearch-open"]);
                    else document.body.classList.remove((0, _docsCssDefault.default)["docsearch-open"]);
                },
                onSubmit: onSubmit,
                children: (section)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _autocomplete.Section), {
                        items: section.children,
                        title: section.title,
                        children: (item)=>/*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _autocomplete.Item), {
                                textValue: item.textValue,
                                children: [
                                    item.key === "algolia-footer-logo" && /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                        children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("svg", {
                                            width: "77",
                                            height: "19",
                                            "aria-label": "Algolia",
                                            role: "img",
                                            style: {
                                                color: "var(--docsearch-logo-color)"
                                            },
                                            children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("path", {
                                                d: "M2.5067 0h14.0245c1.384.001 2.5058 1.1205 2.5068 2.5017V16.5c-.0014 1.3808-1.1232 2.4995-2.5068 2.5H2.5067C1.1232 18.9995.0014 17.8808 0 16.5V2.4958A2.495 2.495 0 01.735.7294 2.505 2.505 0 012.5068 0zM37.95 15.0695c-3.7068.0168-3.7068-2.986-3.7068-3.4634L34.2372.3576 36.498 0v11.1794c0 .2715 0 1.9889 1.452 1.994v1.8961zm-9.1666-1.8388c.694 0 1.2086-.0397 1.5678-.1088v-2.2934a5.3639 5.3639 0 00-1.3303-.1679 4.8283 4.8283 0 00-.758.0582 2.2845 2.2845 0 00-.688.2024c-.2029.0979-.371.2362-.4919.4142-.1268.1788-.185.2826-.185.5533 0 .5297.185.8359.5205 1.0375.3355.2016.7928.3053 1.365.3053v-.0008zm-.1969-8.1817c.7463 0 1.3768.092 1.8856.2767.5088.1838.9195.4428 1.2204.7717.3068.334.5147.7777.6423 1.251.1327.4723.196.991.196 1.5603v5.798c-.5235.1036-1.05.192-1.5787.2649-.7048.1037-1.4976.156-2.3774.156-.5832 0-1.1215-.0582-1.6016-.167a3.385 3.385 0 01-1.2432-.5364 2.6034 2.6034 0 01-.8037-.9565c-.191-.3922-.29-.9447-.29-1.5208 0-.5533.11-.905.3246-1.2863a2.7351 2.7351 0 01.8849-.9329c.376-.242.8029-.415 1.2948-.5187a7.4517 7.4517 0 011.5381-.156 7.1162 7.1162 0 011.6667.2024V8.886c0-.259-.0296-.5061-.093-.7372a1.5847 1.5847 0 00-.3245-.6158 1.5079 1.5079 0 00-.6119-.4158 2.6788 2.6788 0 00-.966-.173c-.5206 0-.9948.0634-1.4283.1384a6.5481 6.5481 0 00-1.065.259l-.2712-1.849c.2831-.0986.7048-.1964 1.2491-.2943a9.2979 9.2979 0 011.752-.1501v.0008zm44.6597 8.1193c.6947 0 1.2086-.0405 1.567-.1097v-2.2942a5.3743 5.3743 0 00-1.3303-.1679c-.2485 0-.503.0177-.7573.0582a2.2853 2.2853 0 00-.688.2024 1.2333 1.2333 0 00-.4918.4142c-.1268.1788-.1843.2826-.1843.5533 0 .5297.1843.8359.5198 1.0375.3414.2066.7927.3053 1.365.3053v.0009zm-.191-8.1767c.7463 0 1.3768.0912 1.8856.2759.5087.1847.9195.4436 1.2204.7717.3.329.5147.7786.6414 1.251a5.7248 5.7248 0 01.197 1.562v5.7972c-.3466.0742-.874.1602-1.5788.2648-.7049.1038-1.4976.1552-2.3774.1552-.5832 0-1.1215-.0573-1.6016-.167a3.385 3.385 0 01-1.2432-.5356 2.6034 2.6034 0 01-.8038-.9565c-.191-.3922-.2898-.9447-.2898-1.5216 0-.5533.1098-.905.3245-1.2854a2.7373 2.7373 0 01.8849-.9338c.376-.2412.8029-.4141 1.2947-.5178a7.4545 7.4545 0 012.325-.1097c.2781.0287.5672.081.879.156v-.3686a2.7781 2.7781 0 00-.092-.738 1.5788 1.5788 0 00-.3246-.6166 1.5079 1.5079 0 00-.612-.415 2.6797 2.6797 0 00-.966-.1729c-.5205 0-.9947.0633-1.4282.1384a6.5608 6.5608 0 00-1.065.259l-.2712-1.8498c.283-.0979.7048-.1957 1.2491-.2935a9.8597 9.8597 0 011.752-.1494zm-6.79-1.072c-.7576.001-1.373-.6103-1.3759-1.3664 0-.755.6128-1.3664 1.376-1.3664.764 0 1.3775.6115 1.3775 1.3664s-.6195 1.3664-1.3776 1.3664zm1.1393 11.1507h-2.2726V5.3409l2.2734-.3568v10.0845l-.0008.0017zm-3.984 0c-3.707.0168-3.707-2.986-3.707-3.4642L59.7069.3576 61.9685 0v11.1794c0 .2715 0 1.9889 1.452 1.994V15.0703zm-7.3512-4.979c0-.975-.2138-1.7873-.6305-2.3516-.4167-.571-.9998-.852-1.747-.852-.7454 0-1.3302.281-1.7452.852-.4166.5702-.6195 1.3765-.6195 2.3516 0 .9851.208 1.6473.6254 2.2183.4158.576.9998.8587 1.7461.8587.7454 0 1.3303-.2885 1.747-.8595.4158-.5761.6237-1.2315.6237-2.2184v.0009zm2.3132-.006c0 .7609-.1099 1.3361-.3356 1.9654a4.654 4.654 0 01-.9533 1.6076A4.214 4.214 0 0155.613 14.69c-.579.2412-1.4697.3795-1.9143.3795-.4462-.005-1.3303-.1324-1.9033-.3795a4.307 4.307 0 01-1.474-1.0316c-.4115-.4445-.7293-.9801-.9609-1.6076a5.3423 5.3423 0 01-.3465-1.9653c0-.7608.104-1.493.3356-2.1155a4.683 4.683 0 01.9719-1.5958 4.3383 4.3383 0 011.479-1.0257c.5739-.242 1.2043-.3567 1.8864-.3567.6829 0 1.3125.1197 1.8906.3567a4.1245 4.1245 0 011.4816 1.0257 4.7587 4.7587 0 01.9592 1.5958c.2426.6225.3643 1.3547.3643 2.1155zm-17.0198 0c0 .9448.208 1.9932.6238 2.431.4166.4386.955.6579 1.6142.6579.3584 0 .6998-.0523 1.0176-.1502.3186-.0978.5721-.2134.775-.3517V7.0784a8.8706 8.8706 0 00-1.4926-.1906c-.8206-.0236-1.4452.312-1.8847.8468-.4335.5365-.6533 1.476-.6533 2.3516v-.0008zm6.2863 4.4485c0 1.5385-.3938 2.662-1.1866 3.3773-.791.7136-2.0005 1.0712-3.6308 1.0712-.5958 0-1.834-.1156-2.8228-.334l.3643-1.7865c.8282.173 1.9202.2193 2.4932.2193.9077 0 1.555-.1847 1.943-.5533.388-.3686.578-.916.578-1.643v-.3687a6.8289 6.8289 0 01-.8848.3349c-.3634.1096-.786.167-1.261.167-.6246 0-1.1917-.0979-1.7055-.2944a3.5554 3.5554 0 01-1.3244-.8645c-.3642-.3796-.6541-.8579-.8561-1.4289-.2028-.571-.3068-1.59-.3068-2.339 0-.7034.1099-1.5856.3245-2.1735.2198-.5871.5316-1.0949.9542-1.515.4167-.42.9255-.743 1.5213-.98a5.5923 5.5923 0 012.052-.3855c.7353 0 1.4114.092 2.0707.2024.6592.1088 1.2204.2236 1.6776.35v8.945-.0008zM11.5026 4.2418v-.6511c-.0005-.4553-.3704-.8241-.8266-.8241H8.749c-.4561 0-.826.3688-.8265.824v.669c0 .0742.0693.1264.1445.1096a6.0346 6.0346 0 011.6768-.2362 6.125 6.125 0 011.6202.2185.1116.1116 0 00.1386-.1097zm-5.2806.852l-.3296-.3282a.8266.8266 0 00-1.168 0l-.393.3922a.8199.8199 0 000 1.164l.3237.323c.0524.0515.1268.0397.1733-.0117.191-.259.3989-.507.6305-.7372.2374-.2362.48-.4437.7462-.6335.0575-.0354.0634-.1155.017-.1687zm3.5159 2.069v2.818c0 .081.0879.1392.1622.0987l2.5102-1.2964c.0574-.0287.0752-.0987.0464-.1552a3.1237 3.1237 0 00-2.603-1.574c-.0575 0-.115.0456-.115.1097l-.0008-.0009zm.0008 6.789c-2.0933.0005-3.7915-1.6912-3.7947-3.7804C5.9468 8.0821 7.6452 6.39 9.7387 6.391c2.0932-.0005 3.7911 1.6914 3.794 3.7804a3.7783 3.7783 0 01-1.1124 2.675 3.7936 3.7936 0 01-2.6824 1.1054h.0008zM9.738 4.8002c-1.9218 0-3.6975 1.0232-4.6584 2.6841a5.359 5.359 0 000 5.3683c.9609 1.661 2.7366 2.6841 4.6584 2.6841a5.3891 5.3891 0 003.8073-1.5725 5.3675 5.3675 0 001.578-3.7987 5.3574 5.3574 0 00-1.5771-3.797A5.379 5.379 0 009.7387 4.801l-.0008-.0008z",
                                                fill: "currentColor",
                                                fillRule: "evenodd"
                                            })
                                        })
                                    }),
                                    item.hierarchy && item.hierarchy[item.hit.type] && item.hit.type === "lvl1" && /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _jsxRuntime.Fragment), {
                                        children: [
                                            section.title === "Blog" || section.title === "Releases" ? /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _newsDefault.default), {
                                                "aria-label": "news"
                                            }) : /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _documentOutlineDefault.default), {
                                                "aria-label": "web page"
                                            }),
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Snippet, {
                                                    className: "DocSearch-Hit-title",
                                                    hit: item.hit,
                                                    attribute: "hierarchy.lvl1"
                                                })
                                            }),
                                            item.hit.content && /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                                slot: "description",
                                                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Snippet, {
                                                    className: "DocSearch-Hit-path",
                                                    hit: item.hit,
                                                    attribute: "content"
                                                })
                                            })
                                        ]
                                    }),
                                    item.hierarchy && item.hierarchy[item.hit.type] && (item.hit.type === "lvl2" || item.hit.type === "lvl3" || item.hit.type === "lvl4" || item.hit.type === "lvl5" || item.hit.type === "lvl6") && /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _jsxRuntime.Fragment), {
                                        children: [
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)(Hash, {
                                                UNSAFE_className: item.docsearchParent ? (0, _docsCssDefault.default).docSearchItemIndent : undefined,
                                                "aria-label": "in-page link"
                                            }),
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Snippet, {
                                                    className: "DocSearch-Hit-title",
                                                    hit: item.hit,
                                                    attribute: `hierarchy.${item.hit.type}`
                                                })
                                            }),
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                                slot: "description",
                                                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Snippet, {
                                                    className: "DocSearch-Hit-path",
                                                    hit: item.hit,
                                                    attribute: "hierarchy.lvl1"
                                                })
                                            })
                                        ]
                                    }),
                                    item.hit && item.hit.type === "content" && /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _jsxRuntime.Fragment), {
                                        children: [
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)(Hash, {
                                                UNSAFE_className: item.docsearchParent ? (0, _docsCssDefault.default).docSearchItemIndent : undefined,
                                                "aria-label": "in-page link"
                                            }),
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Snippet, {
                                                    className: "DocSearch-Hit-title",
                                                    hit: item.hit,
                                                    attribute: "content"
                                                })
                                            }),
                                            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _reactSpectrum.Text), {
                                                slot: "description",
                                                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Snippet, {
                                                    className: "DocSearch-Hit-path",
                                                    hit: item.hit,
                                                    attribute: "hierarchy.lvl1"
                                                })
                                            })
                                        ]
                                    })
                                ]
                            }, item.key)
                    }, section.key)
            })
        })
    });
}
function Hash(props) {
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _icon.Icon), {
        ...props,
        children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("svg", {
            viewBox: "0 0 20 20",
            children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("path", {
                d: "M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",
                stroke: "currentColor",
                fill: "none",
                fillRule: "evenodd",
                strokeLinecap: "round",
                strokeLinejoin: "round"
            })
        })
    });
}
function groupBy(values, predicate = (value)=>value) {
    return values.reduce((accumulator, item)=>{
        const key = predicate(item);
        if (!Object.prototype.hasOwnProperty.call(accumulator, key)) accumulator[key] = [];
        // We limit each section to show 20 hits maximum.
        // This acts as a frontend alternative to `distinct`.
        if (accumulator[key].length < 21) accumulator[key].push(item);
        return accumulator;
    }, {});
}
function getPropertyByPath(object, path) {
    const parts = path.split(".");
    return parts.reduce((prev, current)=>{
        if (prev === null || prev === void 0 ? void 0 : prev[current]) return prev[current];
        return null;
    }, object);
}
function Snippet({ hit , attribute , tagName ="span" , ...rest }) {
    return /*#__PURE__*/ (0, _reactDefault.default).createElement(tagName, {
        ...rest,
        dangerouslySetInnerHTML: {
            __html: (0, _dompurifyDefault.default).sanitize(getPropertyByPath(hit, `_snippetResult.${attribute}.value`) || getPropertyByPath(hit, attribute))
        }
    });
}

},{"react/jsx-runtime":"react/jsx-runtime","algoliasearch/lite":"a3kVE","./docs.css":"BFiyE","@spectrum-icons/workflow/DocumentOutline":"5ItdH","dompurify":"fRI8Q","@react-spectrum/icon":"fTRUu","@react-spectrum/autocomplete":"iHS16","@spectrum-icons/workflow/News":"kKI3W","react":"react","@adobe/react-spectrum":"liQMD","./ThemeSwitcher":"3Coap","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"a3kVE":[function(require,module,exports) {
/*! algoliasearch-lite.umd.js | 4.14.1 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ !function(e, t) {
    module.exports = t();
}(this, function() {
    "use strict";
    function e(e, t, r) {
        return t in e ? Object.defineProperty(e, t, {
            value: r,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = r, e;
    }
    function t(e, t) {
        var r = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
            var n = Object.getOwnPropertySymbols(e);
            t && (n = n.filter(function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable;
            })), r.push.apply(r, n);
        }
        return r;
    }
    function r(r) {
        for(var n = 1; n < arguments.length; n++){
            var o = null != arguments[n] ? arguments[n] : {};
            n % 2 ? t(Object(o), !0).forEach(function(t) {
                e(r, t, o[t]);
            }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(o)) : t(Object(o)).forEach(function(e) {
                Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(o, e));
            });
        }
        return r;
    }
    function n(e, t) {
        if (null == e) return {};
        var r, n, o = function(e, t) {
            if (null == e) return {};
            var r, n, o = {}, a = Object.keys(e);
            for(n = 0; n < a.length; n++)r = a[n], t.indexOf(r) >= 0 || (o[r] = e[r]);
            return o;
        }(e, t);
        if (Object.getOwnPropertySymbols) {
            var a = Object.getOwnPropertySymbols(e);
            for(n = 0; n < a.length; n++)r = a[n], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (o[r] = e[r]);
        }
        return o;
    }
    function o(e, t) {
        return function(e) {
            if (Array.isArray(e)) return e;
        }(e) || function(e, t) {
            if (!(Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e))) return;
            var r = [], n = !0, o = !1, a = void 0;
            try {
                for(var u, i = e[Symbol.iterator](); !(n = (u = i.next()).done) && (r.push(u.value), !t || r.length !== t); n = !0);
            } catch (e) {
                o = !0, a = e;
            } finally{
                try {
                    n || null == i.return || i.return();
                } finally{
                    if (o) throw a;
                }
            }
            return r;
        }(e, t) || function() {
            throw new TypeError("Invalid attempt to destructure non-iterable instance");
        }();
    }
    function a(e) {
        return function(e) {
            if (Array.isArray(e)) {
                for(var t = 0, r = new Array(e.length); t < e.length; t++)r[t] = e[t];
                return r;
            }
        }(e) || function(e) {
            if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e);
        }(e) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance");
        }();
    }
    function u(e) {
        var t, r = "algoliasearch-client-js-".concat(e.key), n = function() {
            return void 0 === t && (t = e.localStorage || window.localStorage), t;
        }, a = function() {
            return JSON.parse(n().getItem(r) || "{}");
        };
        return {
            get: function(e, t) {
                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
                    miss: function() {
                        return Promise.resolve();
                    }
                };
                return Promise.resolve().then(function() {
                    var r = JSON.stringify(e), n = a()[r];
                    return Promise.all([
                        n || t(),
                        void 0 !== n
                    ]);
                }).then(function(e) {
                    var t = o(e, 2), n = t[0], a = t[1];
                    return Promise.all([
                        n,
                        a || r.miss(n)
                    ]);
                }).then(function(e) {
                    return o(e, 1)[0];
                });
            },
            set: function(e, t) {
                return Promise.resolve().then(function() {
                    var o = a();
                    return o[JSON.stringify(e)] = t, n().setItem(r, JSON.stringify(o)), t;
                });
            },
            delete: function(e) {
                return Promise.resolve().then(function() {
                    var t = a();
                    delete t[JSON.stringify(e)], n().setItem(r, JSON.stringify(t));
                });
            },
            clear: function() {
                return Promise.resolve().then(function() {
                    n().removeItem(r);
                });
            }
        };
    }
    function i(e) {
        var t = a(e.caches), r = t.shift();
        return void 0 === r ? {
            get: function(e, t) {
                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
                    miss: function() {
                        return Promise.resolve();
                    }
                }, n = t();
                return n.then(function(e) {
                    return Promise.all([
                        e,
                        r.miss(e)
                    ]);
                }).then(function(e) {
                    return o(e, 1)[0];
                });
            },
            set: function(e, t) {
                return Promise.resolve(t);
            },
            delete: function(e) {
                return Promise.resolve();
            },
            clear: function() {
                return Promise.resolve();
            }
        } : {
            get: function(e, n) {
                var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
                    miss: function() {
                        return Promise.resolve();
                    }
                };
                return r.get(e, n, o).catch(function() {
                    return i({
                        caches: t
                    }).get(e, n, o);
                });
            },
            set: function(e, n) {
                return r.set(e, n).catch(function() {
                    return i({
                        caches: t
                    }).set(e, n);
                });
            },
            delete: function(e) {
                return r.delete(e).catch(function() {
                    return i({
                        caches: t
                    }).delete(e);
                });
            },
            clear: function() {
                return r.clear().catch(function() {
                    return i({
                        caches: t
                    }).clear();
                });
            }
        };
    }
    function s() {
        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {
            serializable: !0
        }, t = {};
        return {
            get: function(r, n) {
                var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
                    miss: function() {
                        return Promise.resolve();
                    }
                }, a = JSON.stringify(r);
                if (a in t) return Promise.resolve(e.serializable ? JSON.parse(t[a]) : t[a]);
                var u = n(), i = o && o.miss || function() {
                    return Promise.resolve();
                };
                return u.then(function(e) {
                    return i(e);
                }).then(function() {
                    return u;
                });
            },
            set: function(r, n) {
                return t[JSON.stringify(r)] = e.serializable ? JSON.stringify(n) : n, Promise.resolve(n);
            },
            delete: function(e) {
                return delete t[JSON.stringify(e)], Promise.resolve();
            },
            clear: function() {
                return t = {}, Promise.resolve();
            }
        };
    }
    function c(e) {
        for(var t = e.length - 1; t > 0; t--){
            var r = Math.floor(Math.random() * (t + 1)), n = e[t];
            e[t] = e[r], e[r] = n;
        }
        return e;
    }
    function l(e, t) {
        return t ? (Object.keys(t).forEach(function(r) {
            e[r] = t[r](e);
        }), e) : e;
    }
    function f(e) {
        for(var t = arguments.length, r = new Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++)r[n - 1] = arguments[n];
        var o = 0;
        return e.replace(/%s/g, function() {
            return encodeURIComponent(r[o++]);
        });
    }
    var h = {
        WithinQueryParameters: 0,
        WithinHeaders: 1
    };
    function d(e, t) {
        var r = e || {}, n = r.data || {};
        return Object.keys(r).forEach(function(e) {
            -1 === [
                "timeout",
                "headers",
                "queryParameters",
                "data",
                "cacheable"
            ].indexOf(e) && (n[e] = r[e]);
        }), {
            data: Object.entries(n).length > 0 ? n : void 0,
            timeout: r.timeout || t,
            headers: r.headers || {},
            queryParameters: r.queryParameters || {},
            cacheable: r.cacheable
        };
    }
    var m = {
        Read: 1,
        Write: 2,
        Any: 3
    }, p = 1, v = 2, y = 3;
    function g(e) {
        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : p;
        return r(r({}, e), {}, {
            status: t,
            lastUpdate: Date.now()
        });
    }
    function b(e) {
        return "string" == typeof e ? {
            protocol: "https",
            url: e,
            accept: m.Any
        } : {
            protocol: e.protocol || "https",
            url: e.url,
            accept: e.accept || m.Any
        };
    }
    var O = "GET", P = "POST";
    function q(e, t) {
        return Promise.all(t.map(function(t) {
            return e.get(t, function() {
                return Promise.resolve(g(t));
            });
        })).then(function(e) {
            var r = e.filter(function(e) {
                return function(e) {
                    return e.status === p || Date.now() - e.lastUpdate > 12e4;
                }(e);
            }), n = e.filter(function(e) {
                return function(e) {
                    return e.status === y && Date.now() - e.lastUpdate <= 12e4;
                }(e);
            }), o = [].concat(a(r), a(n));
            return {
                getTimeout: function(e, t) {
                    return (0 === n.length && 0 === e ? 1 : n.length + 3 + e) * t;
                },
                statelessHosts: o.length > 0 ? o.map(function(e) {
                    return b(e);
                }) : t
            };
        });
    }
    function w(e, t, n, o) {
        var u = [], i = function(e, t) {
            if (e.method === O || void 0 === e.data && void 0 === t.data) return;
            var n = Array.isArray(e.data) ? e.data : r(r({}, e.data), t.data);
            return JSON.stringify(n);
        }(n, o), s = function(e, t) {
            var n = r(r({}, e.headers), t.headers), o = {};
            return Object.keys(n).forEach(function(e) {
                var t = n[e];
                o[e.toLowerCase()] = t;
            }), o;
        }(e, o), c = n.method, l = n.method !== O ? {} : r(r({}, n.data), o.data), f = r(r(r({
            "x-algolia-agent": e.userAgent.value
        }, e.queryParameters), l), o.queryParameters), h = 0, d = function t(r, a) {
            var l = r.pop();
            if (void 0 === l) throw {
                name: "RetryError",
                message: "Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",
                transporterStackTrace: A(u)
            };
            var d = {
                data: i,
                headers: s,
                method: c,
                url: S(l, n.path, f),
                connectTimeout: a(h, e.timeouts.connect),
                responseTimeout: a(h, o.timeout)
            }, m = function(e) {
                var t = {
                    request: d,
                    response: e,
                    host: l,
                    triesLeft: r.length
                };
                return u.push(t), t;
            }, p = {
                onSuccess: function(e) {
                    return function(e) {
                        try {
                            return JSON.parse(e.content);
                        } catch (t) {
                            throw function(e, t) {
                                return {
                                    name: "DeserializationError",
                                    message: e,
                                    response: t
                                };
                            }(t.message, e);
                        }
                    }(e);
                },
                onRetry: function(n) {
                    var o = m(n);
                    return n.isTimedOut && h++, Promise.all([
                        e.logger.info("Retryable failure", x(o)),
                        e.hostsCache.set(l, g(l, n.isTimedOut ? y : v))
                    ]).then(function() {
                        return t(r, a);
                    });
                },
                onFail: function(e) {
                    throw m(e), function(e, t) {
                        var r = e.content, n = e.status, o = r;
                        try {
                            o = JSON.parse(r).message;
                        } catch (e) {}
                        return function(e, t, r) {
                            return {
                                name: "ApiError",
                                message: e,
                                status: t,
                                transporterStackTrace: r
                            };
                        }(o, n, t);
                    }(e, A(u));
                }
            };
            return e.requester.send(d).then(function(e) {
                return function(e, t) {
                    return function(e) {
                        var t = e.status;
                        return e.isTimedOut || function(e) {
                            var t = e.isTimedOut, r = e.status;
                            return !t && 0 == ~~r;
                        }(e) || 2 != ~~(t / 100) && 4 != ~~(t / 100);
                    }(e) ? t.onRetry(e) : 2 == ~~(e.status / 100) ? t.onSuccess(e) : t.onFail(e);
                }(e, p);
            });
        };
        return q(e.hostsCache, t).then(function(e) {
            return d(a(e.statelessHosts).reverse(), e.getTimeout);
        });
    }
    function j(e) {
        var t = {
            value: "Algolia for JavaScript (".concat(e, ")"),
            add: function(e) {
                var r = "; ".concat(e.segment).concat(void 0 !== e.version ? " (".concat(e.version, ")") : "");
                return -1 === t.value.indexOf(r) && (t.value = "".concat(t.value).concat(r)), t;
            }
        };
        return t;
    }
    function S(e, t, r) {
        var n = T(r), o = "".concat(e.protocol, "://").concat(e.url, "/").concat("/" === t.charAt(0) ? t.substr(1) : t);
        return n.length && (o += "?".concat(n)), o;
    }
    function T(e) {
        return Object.keys(e).map(function(t) {
            var r;
            return f("%s=%s", t, (r = e[t], "[object Object]" === Object.prototype.toString.call(r) || "[object Array]" === Object.prototype.toString.call(r) ? JSON.stringify(e[t]) : e[t]));
        }).join("&");
    }
    function A(e) {
        return e.map(function(e) {
            return x(e);
        });
    }
    function x(e) {
        var t = e.request.headers["x-algolia-api-key"] ? {
            "x-algolia-api-key": "*****"
        } : {};
        return r(r({}, e), {}, {
            request: r(r({}, e.request), {}, {
                headers: r(r({}, e.request.headers), t)
            })
        });
    }
    var N = function(e) {
        var t = e.appId, n = function(e, t, r) {
            var n = {
                "x-algolia-api-key": r,
                "x-algolia-application-id": t
            };
            return {
                headers: function() {
                    return e === h.WithinHeaders ? n : {};
                },
                queryParameters: function() {
                    return e === h.WithinQueryParameters ? n : {};
                }
            };
        }(void 0 !== e.authMode ? e.authMode : h.WithinHeaders, t, e.apiKey), a = function(e) {
            var t = e.hostsCache, r = e.logger, n = e.requester, a = e.requestsCache, u = e.responsesCache, i = e.timeouts, s = e.userAgent, c = e.hosts, l = e.queryParameters, f = {
                hostsCache: t,
                logger: r,
                requester: n,
                requestsCache: a,
                responsesCache: u,
                timeouts: i,
                userAgent: s,
                headers: e.headers,
                queryParameters: l,
                hosts: c.map(function(e) {
                    return b(e);
                }),
                read: function(e, t) {
                    var r = d(t, f.timeouts.read), n = function() {
                        return w(f, f.hosts.filter(function(e) {
                            return 0 != (e.accept & m.Read);
                        }), e, r);
                    };
                    if (!0 !== (void 0 !== r.cacheable ? r.cacheable : e.cacheable)) return n();
                    var a = {
                        request: e,
                        mappedRequestOptions: r,
                        transporter: {
                            queryParameters: f.queryParameters,
                            headers: f.headers
                        }
                    };
                    return f.responsesCache.get(a, function() {
                        return f.requestsCache.get(a, function() {
                            return f.requestsCache.set(a, n()).then(function(e) {
                                return Promise.all([
                                    f.requestsCache.delete(a),
                                    e
                                ]);
                            }, function(e) {
                                return Promise.all([
                                    f.requestsCache.delete(a),
                                    Promise.reject(e)
                                ]);
                            }).then(function(e) {
                                var t = o(e, 2);
                                t[0];
                                return t[1];
                            });
                        });
                    }, {
                        miss: function(e) {
                            return f.responsesCache.set(a, e);
                        }
                    });
                },
                write: function(e, t) {
                    return w(f, f.hosts.filter(function(e) {
                        return 0 != (e.accept & m.Write);
                    }), e, d(t, f.timeouts.write));
                }
            };
            return f;
        }(r(r({
            hosts: [
                {
                    url: "".concat(t, "-dsn.algolia.net"),
                    accept: m.Read
                },
                {
                    url: "".concat(t, ".algolia.net"),
                    accept: m.Write
                }
            ].concat(c([
                {
                    url: "".concat(t, "-1.algolianet.com")
                },
                {
                    url: "".concat(t, "-2.algolianet.com")
                },
                {
                    url: "".concat(t, "-3.algolianet.com")
                }
            ]))
        }, e), {}, {
            headers: r(r(r({}, n.headers()), {
                "content-type": "application/x-www-form-urlencoded"
            }), e.headers),
            queryParameters: r(r({}, n.queryParameters()), e.queryParameters)
        }));
        return l({
            transporter: a,
            appId: t,
            addAlgoliaAgent: function(e, t) {
                a.userAgent.add({
                    segment: e,
                    version: t
                });
            },
            clearCache: function() {
                return Promise.all([
                    a.requestsCache.clear(),
                    a.responsesCache.clear()
                ]).then(function() {});
            }
        }, e.methods);
    }, C = function(e) {
        return function(t, r) {
            return t.method === O ? e.transporter.read(t, r) : e.transporter.write(t, r);
        };
    }, k = function(e) {
        return function(t) {
            var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = {
                transporter: e.transporter,
                appId: e.appId,
                indexName: t
            };
            return l(n, r.methods);
        };
    }, J = function(e) {
        return function(t, n) {
            var o = t.map(function(e) {
                return r(r({}, e), {}, {
                    params: T(e.params || {})
                });
            });
            return e.transporter.read({
                method: P,
                path: "1/indexes/*/queries",
                data: {
                    requests: o
                },
                cacheable: !0
            }, n);
        };
    }, E = function(e) {
        return function(t, o) {
            return Promise.all(t.map(function(t) {
                var a = t.params, u = a.facetName, i = a.facetQuery, s = n(a, [
                    "facetName",
                    "facetQuery"
                ]);
                return k(e)(t.indexName, {
                    methods: {
                        searchForFacetValues: R
                    }
                }).searchForFacetValues(u, i, r(r({}, o), s));
            }));
        };
    }, I = function(e) {
        return function(t, r, n) {
            return e.transporter.read({
                method: P,
                path: f("1/answers/%s/prediction", e.indexName),
                data: {
                    query: t,
                    queryLanguages: r
                },
                cacheable: !0
            }, n);
        };
    }, F = function(e) {
        return function(t, r) {
            return e.transporter.read({
                method: P,
                path: f("1/indexes/%s/query", e.indexName),
                data: {
                    query: t
                },
                cacheable: !0
            }, r);
        };
    }, R = function(e) {
        return function(t, r, n) {
            return e.transporter.read({
                method: P,
                path: f("1/indexes/%s/facets/%s/query", e.indexName, t),
                data: {
                    facetQuery: r
                },
                cacheable: !0
            }, n);
        };
    }, D = 1, W = 2, H = 3;
    function Q(e, t, n) {
        var o, a = {
            appId: e,
            apiKey: t,
            timeouts: {
                connect: 1,
                read: 2,
                write: 30
            },
            requester: {
                send: function(e) {
                    return new Promise(function(t) {
                        var r = new XMLHttpRequest;
                        r.open(e.method, e.url, !0), Object.keys(e.headers).forEach(function(t) {
                            return r.setRequestHeader(t, e.headers[t]);
                        });
                        var n, o = function(e, n) {
                            return setTimeout(function() {
                                r.abort(), t({
                                    status: 0,
                                    content: n,
                                    isTimedOut: !0
                                });
                            }, 1e3 * e);
                        }, a = o(e.connectTimeout, "Connection timeout");
                        r.onreadystatechange = function() {
                            r.readyState > r.OPENED && void 0 === n && (clearTimeout(a), n = o(e.responseTimeout, "Socket timeout"));
                        }, r.onerror = function() {
                            0 === r.status && (clearTimeout(a), clearTimeout(n), t({
                                content: r.responseText || "Network request failed",
                                status: r.status,
                                isTimedOut: !1
                            }));
                        }, r.onload = function() {
                            clearTimeout(a), clearTimeout(n), t({
                                content: r.responseText,
                                status: r.status,
                                isTimedOut: !1
                            });
                        }, r.send(e.data);
                    });
                }
            },
            logger: (o = H, {
                debug: function(e, t) {
                    return D >= o && console.debug(e, t), Promise.resolve();
                },
                info: function(e, t) {
                    return W >= o && console.info(e, t), Promise.resolve();
                },
                error: function(e, t) {
                    return console.error(e, t), Promise.resolve();
                }
            }),
            responsesCache: s(),
            requestsCache: s({
                serializable: !1
            }),
            hostsCache: i({
                caches: [
                    u({
                        key: "".concat("4.14.1", "-").concat(e)
                    }),
                    s()
                ]
            }),
            userAgent: j("4.14.1").add({
                segment: "Browser",
                version: "lite"
            }),
            authMode: h.WithinQueryParameters
        };
        return N(r(r(r({}, a), n), {}, {
            methods: {
                search: J,
                searchForFacetValues: E,
                multipleQueries: J,
                multipleSearchForFacetValues: E,
                customRequest: C,
                initIndex: function(e) {
                    return function(t) {
                        return k(e)(t, {
                            methods: {
                                search: F,
                                searchForFacetValues: R,
                                findAnswers: I
                            }
                        });
                    };
                }
            }
        }));
    }
    return Q.version = "4.14.1", Q;
});

},{}],"BFiyE":[function(require,module,exports) {
module.exports["tk-adobe-clean"] = "tk-adobe-clean_d569a7";
module.exports["tk-adobe-clean-serif"] = "tk-adobe-clean-serif_d569a7";
module.exports["provider"] = "provider_d569a7";
module.exports["dark"] = "dark_d569a7";
module.exports["example"] = "example_d569a7";
module.exports["article"] = "article_d569a7";
module.exports["exampleImage"] = "exampleImage_d569a7";
module.exports["heroImage"] = "heroImage_d569a7";
module.exports["inCategory"] = "inCategory_d569a7";
module.exports["expandableImage"] = "expandableImage_d569a7";
module.exports["expandableImageButton"] = "expandableImageButton_d569a7";
module.exports["video"] = "video_d569a7";
module.exports["homeLinks"] = "homeLinks_d569a7";
module.exports["editPageContainer"] = "editPageContainer_d569a7";
module.exports["highlights"] = "highlights_d569a7";
module.exports["nav"] = "nav_d569a7";
module.exports["sideNavItem"] = "sideNavItem_d569a7";
module.exports["backBtn"] = "backBtn_d569a7";
module.exports["homeBtn"] = "homeBtn_d569a7";
module.exports["pageFooter"] = "pageFooter_d569a7";
module.exports["propTable"] = "propTable_d569a7";
module.exports["type-description"] = "type-description_d569a7";
module.exports["requiredIcon"] = "requiredIcon_d569a7";
module.exports["noDefault"] = "noDefault_d569a7";
module.exports["colorLink"] = "colorLink_d569a7";
module.exports["articleHeader"] = "articleHeader_d569a7";
module.exports["sectionHeader"] = "sectionHeader_d569a7";
module.exports["docsHeader"] = "docsHeader_d569a7";
module.exports["snippet"] = "snippet_d569a7";
module.exports["inlineProvider"] = "inlineProvider_d569a7";
module.exports["medium"] = "medium_d569a7";
module.exports["large"] = "large_d569a7";
module.exports["keyboard"] = "keyboard_d569a7";
module.exports["header"] = "header_d569a7";
module.exports["mouseFocus"] = "mouseFocus_d569a7";
module.exports["headingAnchor"] = "headingAnchor_d569a7";
module.exports["anchor"] = "anchor_d569a7";
module.exports["subHeader"] = "subHeader_d569a7";
module.exports["headerContainer"] = "headerContainer_d569a7";
module.exports["sectionHeaderF"] = "sectionHeaderF_d569a7";
module.exports["editLink"] = "editLink_d569a7";
module.exports["pageHeader"] = "pageHeader_d569a7";
module.exports["docSearchBoxThemeProvider"] = "docSearchBoxThemeProvider_d569a7";
module.exports["docSearchBox"] = "docSearchBox_d569a7";
module.exports["docSearchBoxMark"] = "docSearchBoxMark_d569a7";
module.exports["docSearchItemIndent"] = "docSearchItemIndent_d569a7";
module.exports["docSearchFooter"] = "docSearchFooter_d569a7";
module.exports["docSearchLogo"] = "docSearchLogo_d569a7";
module.exports["docSearchLogoLabel"] = "docSearchLogoLabel_d569a7";
module.exports["docsearch-open"] = "docsearch-open_d569a7";
module.exports["hamburgerButton"] = "hamburgerButton_d569a7";
module.exports["responsiveVideo"] = "responsiveVideo_d569a7";
module.exports["float"] = "float_d569a7";
module.exports["link"] = "link_d569a7";
module.exports["blogArticle"] = "blogArticle_d569a7";
module.exports["blogHeader"] = "blogHeader_d569a7";
module.exports["visible"] = "visible_d569a7";
module.exports["tableRow"] = "tableRow_d569a7";
module.exports["tableCell"] = "tableCell_d569a7";
module.exports["methodTable"] = "methodTable_d569a7";
module.exports["popover"] = "popover_d569a7";
module.exports["cardGroup"] = "cardGroup_d569a7";

},{}],"5ItdH":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("bf2524d407a583a1");
exports.__esModule = true;
exports.default = DocumentOutline;
var _DocumentOutline = require("8ed97d2956521c0a");
var _icon = require("105b207e38ba40a5");
var _react = _interopRequireDefault(require("670bcf3c3b52d5cc"));
function DocumentOutline(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_DocumentOutline.A4uDocumentOutline, null));
}

},{"bf2524d407a583a1":"aSVf3","8ed97d2956521c0a":"44eL9","105b207e38ba40a5":"fTRUu","670bcf3c3b52d5cc":"react"}],"44eL9":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uDocumentOutline = A4uDocumentOutline;
var _react = _interopRequireDefault(require("8f81b071185117"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uDocumentOutline(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("path", {
        fillRule: "evenodd",
        d: "M20.735,2H7A1,1,0,0,0,6,3V33a1,1,0,0,0,1,1H29a1,1,0,0,0,1-1V11.265a2,2,0,0,0-.586-1.414L22.149,2.586A2,2,0,0,0,20.735,2ZM28,32H8V4H20.121v6.879a1,1,0,0,0,1,1H28ZM22,10V5.266L26.734,10Z"
    }));
}

},{"8f81b071185117":"react"}],"fRI8Q":[function(require,module,exports) {
/*! @license DOMPurify 2.3.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.10/LICENSE */ (function(global, factory) {
    module.exports = factory();
})(this, function() {
    "use strict";
    function _typeof(obj) {
        "@babel/helpers - typeof";
        return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
            return typeof obj;
        } : function(obj) {
            return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
        }, _typeof(obj);
    }
    function _setPrototypeOf(o, p) {
        _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
            o.__proto__ = p;
            return o;
        };
        return _setPrototypeOf(o, p);
    }
    function _isNativeReflectConstruct() {
        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
        if (Reflect.construct.sham) return false;
        if (typeof Proxy === "function") return true;
        try {
            Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
            return true;
        } catch (e) {
            return false;
        }
    }
    function _construct(Parent, args, Class) {
        if (_isNativeReflectConstruct()) _construct = Reflect.construct;
        else _construct = function _construct(Parent, args, Class) {
            var a = [
                null
            ];
            a.push.apply(a, args);
            var Constructor = Function.bind.apply(Parent, a);
            var instance = new Constructor();
            if (Class) _setPrototypeOf(instance, Class.prototype);
            return instance;
        };
        return _construct.apply(null, arguments);
    }
    function _toConsumableArray(arr) {
        return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
    }
    function _arrayWithoutHoles(arr) {
        if (Array.isArray(arr)) return _arrayLikeToArray(arr);
    }
    function _iterableToArray(iter) {
        if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
    }
    function _unsupportedIterableToArray(o, minLen) {
        if (!o) return;
        if (typeof o === "string") return _arrayLikeToArray(o, minLen);
        var n = Object.prototype.toString.call(o).slice(8, -1);
        if (n === "Object" && o.constructor) n = o.constructor.name;
        if (n === "Map" || n === "Set") return Array.from(o);
        if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
    }
    function _arrayLikeToArray(arr, len) {
        if (len == null || len > arr.length) len = arr.length;
        for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
        return arr2;
    }
    function _nonIterableSpread() {
        throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
    var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
    var freeze = Object.freeze, seal = Object.seal, create = Object.create; // eslint-disable-line import/no-mutable-exports
    var _ref = typeof Reflect !== "undefined" && Reflect, apply = _ref.apply, construct = _ref.construct;
    if (!apply) apply = function apply(fun, thisValue, args) {
        return fun.apply(thisValue, args);
    };
    if (!freeze) freeze = function freeze(x) {
        return x;
    };
    if (!seal) seal = function seal(x) {
        return x;
    };
    if (!construct) construct = function construct(Func, args) {
        return _construct(Func, _toConsumableArray(args));
    };
    var arrayForEach = unapply(Array.prototype.forEach);
    var arrayPop = unapply(Array.prototype.pop);
    var arrayPush = unapply(Array.prototype.push);
    var stringToLowerCase = unapply(String.prototype.toLowerCase);
    var stringMatch = unapply(String.prototype.match);
    var stringReplace = unapply(String.prototype.replace);
    var stringIndexOf = unapply(String.prototype.indexOf);
    var stringTrim = unapply(String.prototype.trim);
    var regExpTest = unapply(RegExp.prototype.test);
    var typeErrorCreate = unconstruct(TypeError);
    function unapply(func) {
        return function(thisArg) {
            for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)args[_key - 1] = arguments[_key];
            return apply(func, thisArg, args);
        };
    }
    function unconstruct(func) {
        return function() {
            for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++)args[_key2] = arguments[_key2];
            return construct(func, args);
        };
    }
    /* Add properties to a lookup table */ function addToSet(set, array, transformCaseFunc) {
        transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;
        if (setPrototypeOf) // Make 'in' and truthy checks like Boolean(set.constructor)
        // independent of any properties defined on Object.prototype.
        // Prevent prototype setters from intercepting set as a this value.
        setPrototypeOf(set, null);
        var l = array.length;
        while(l--){
            var element = array[l];
            if (typeof element === "string") {
                var lcElement = transformCaseFunc(element);
                if (lcElement !== element) {
                    // Config presets (e.g. tags.js, attrs.js) are immutable.
                    if (!isFrozen(array)) array[l] = lcElement;
                    element = lcElement;
                }
            }
            set[element] = true;
        }
        return set;
    }
    /* Shallow clone an object */ function clone(object) {
        var newObject = create(null);
        var property;
        for(property in object)if (apply(hasOwnProperty, object, [
            property
        ])) newObject[property] = object[property];
        return newObject;
    }
    /* IE10 doesn't support __lookupGetter__ so lets'
   * simulate it. It also automatically checks
   * if the prop is function or getter and behaves
   * accordingly. */ function lookupGetter(object, prop) {
        while(object !== null){
            var desc = getOwnPropertyDescriptor(object, prop);
            if (desc) {
                if (desc.get) return unapply(desc.get);
                if (typeof desc.value === "function") return unapply(desc.value);
            }
            object = getPrototypeOf(object);
        }
        function fallbackValue(element) {
            console.warn("fallback value for", element);
            return null;
        }
        return fallbackValue;
    }
    var html$1 = freeze([
        "a",
        "abbr",
        "acronym",
        "address",
        "area",
        "article",
        "aside",
        "audio",
        "b",
        "bdi",
        "bdo",
        "big",
        "blink",
        "blockquote",
        "body",
        "br",
        "button",
        "canvas",
        "caption",
        "center",
        "cite",
        "code",
        "col",
        "colgroup",
        "content",
        "data",
        "datalist",
        "dd",
        "decorator",
        "del",
        "details",
        "dfn",
        "dialog",
        "dir",
        "div",
        "dl",
        "dt",
        "element",
        "em",
        "fieldset",
        "figcaption",
        "figure",
        "font",
        "footer",
        "form",
        "h1",
        "h2",
        "h3",
        "h4",
        "h5",
        "h6",
        "head",
        "header",
        "hgroup",
        "hr",
        "html",
        "i",
        "img",
        "input",
        "ins",
        "kbd",
        "label",
        "legend",
        "li",
        "main",
        "map",
        "mark",
        "marquee",
        "menu",
        "menuitem",
        "meter",
        "nav",
        "nobr",
        "ol",
        "optgroup",
        "option",
        "output",
        "p",
        "picture",
        "pre",
        "progress",
        "q",
        "rp",
        "rt",
        "ruby",
        "s",
        "samp",
        "section",
        "select",
        "shadow",
        "small",
        "source",
        "spacer",
        "span",
        "strike",
        "strong",
        "style",
        "sub",
        "summary",
        "sup",
        "table",
        "tbody",
        "td",
        "template",
        "textarea",
        "tfoot",
        "th",
        "thead",
        "time",
        "tr",
        "track",
        "tt",
        "u",
        "ul",
        "var",
        "video",
        "wbr"
    ]); // SVG
    var svg$1 = freeze([
        "svg",
        "a",
        "altglyph",
        "altglyphdef",
        "altglyphitem",
        "animatecolor",
        "animatemotion",
        "animatetransform",
        "circle",
        "clippath",
        "defs",
        "desc",
        "ellipse",
        "filter",
        "font",
        "g",
        "glyph",
        "glyphref",
        "hkern",
        "image",
        "line",
        "lineargradient",
        "marker",
        "mask",
        "metadata",
        "mpath",
        "path",
        "pattern",
        "polygon",
        "polyline",
        "radialgradient",
        "rect",
        "stop",
        "style",
        "switch",
        "symbol",
        "text",
        "textpath",
        "title",
        "tref",
        "tspan",
        "view",
        "vkern"
    ]);
    var svgFilters = freeze([
        "feBlend",
        "feColorMatrix",
        "feComponentTransfer",
        "feComposite",
        "feConvolveMatrix",
        "feDiffuseLighting",
        "feDisplacementMap",
        "feDistantLight",
        "feFlood",
        "feFuncA",
        "feFuncB",
        "feFuncG",
        "feFuncR",
        "feGaussianBlur",
        "feImage",
        "feMerge",
        "feMergeNode",
        "feMorphology",
        "feOffset",
        "fePointLight",
        "feSpecularLighting",
        "feSpotLight",
        "feTile",
        "feTurbulence"
    ]); // List of SVG elements that are disallowed by default.
    // We still need to know them so that we can do namespace
    // checks properly in case one wants to add them to
    // allow-list.
    var svgDisallowed = freeze([
        "animate",
        "color-profile",
        "cursor",
        "discard",
        "fedropshadow",
        "font-face",
        "font-face-format",
        "font-face-name",
        "font-face-src",
        "font-face-uri",
        "foreignobject",
        "hatch",
        "hatchpath",
        "mesh",
        "meshgradient",
        "meshpatch",
        "meshrow",
        "missing-glyph",
        "script",
        "set",
        "solidcolor",
        "unknown",
        "use"
    ]);
    var mathMl$1 = freeze([
        "math",
        "menclose",
        "merror",
        "mfenced",
        "mfrac",
        "mglyph",
        "mi",
        "mlabeledtr",
        "mmultiscripts",
        "mn",
        "mo",
        "mover",
        "mpadded",
        "mphantom",
        "mroot",
        "mrow",
        "ms",
        "mspace",
        "msqrt",
        "mstyle",
        "msub",
        "msup",
        "msubsup",
        "mtable",
        "mtd",
        "mtext",
        "mtr",
        "munder",
        "munderover"
    ]); // Similarly to SVG, we want to know all MathML elements,
    // even those that we disallow by default.
    var mathMlDisallowed = freeze([
        "maction",
        "maligngroup",
        "malignmark",
        "mlongdiv",
        "mscarries",
        "mscarry",
        "msgroup",
        "mstack",
        "msline",
        "msrow",
        "semantics",
        "annotation",
        "annotation-xml",
        "mprescripts",
        "none"
    ]);
    var text = freeze([
        "#text"
    ]);
    var html = freeze([
        "accept",
        "action",
        "align",
        "alt",
        "autocapitalize",
        "autocomplete",
        "autopictureinpicture",
        "autoplay",
        "background",
        "bgcolor",
        "border",
        "capture",
        "cellpadding",
        "cellspacing",
        "checked",
        "cite",
        "class",
        "clear",
        "color",
        "cols",
        "colspan",
        "controls",
        "controlslist",
        "coords",
        "crossorigin",
        "datetime",
        "decoding",
        "default",
        "dir",
        "disabled",
        "disablepictureinpicture",
        "disableremoteplayback",
        "download",
        "draggable",
        "enctype",
        "enterkeyhint",
        "face",
        "for",
        "headers",
        "height",
        "hidden",
        "high",
        "href",
        "hreflang",
        "id",
        "inputmode",
        "integrity",
        "ismap",
        "kind",
        "label",
        "lang",
        "list",
        "loading",
        "loop",
        "low",
        "max",
        "maxlength",
        "media",
        "method",
        "min",
        "minlength",
        "multiple",
        "muted",
        "name",
        "nonce",
        "noshade",
        "novalidate",
        "nowrap",
        "open",
        "optimum",
        "pattern",
        "placeholder",
        "playsinline",
        "poster",
        "preload",
        "pubdate",
        "radiogroup",
        "readonly",
        "rel",
        "required",
        "rev",
        "reversed",
        "role",
        "rows",
        "rowspan",
        "spellcheck",
        "scope",
        "selected",
        "shape",
        "size",
        "sizes",
        "span",
        "srclang",
        "start",
        "src",
        "srcset",
        "step",
        "style",
        "summary",
        "tabindex",
        "title",
        "translate",
        "type",
        "usemap",
        "valign",
        "value",
        "width",
        "xmlns",
        "slot"
    ]);
    var svg = freeze([
        "accent-height",
        "accumulate",
        "additive",
        "alignment-baseline",
        "ascent",
        "attributename",
        "attributetype",
        "azimuth",
        "basefrequency",
        "baseline-shift",
        "begin",
        "bias",
        "by",
        "class",
        "clip",
        "clippathunits",
        "clip-path",
        "clip-rule",
        "color",
        "color-interpolation",
        "color-interpolation-filters",
        "color-profile",
        "color-rendering",
        "cx",
        "cy",
        "d",
        "dx",
        "dy",
        "diffuseconstant",
        "direction",
        "display",
        "divisor",
        "dur",
        "edgemode",
        "elevation",
        "end",
        "fill",
        "fill-opacity",
        "fill-rule",
        "filter",
        "filterunits",
        "flood-color",
        "flood-opacity",
        "font-family",
        "font-size",
        "font-size-adjust",
        "font-stretch",
        "font-style",
        "font-variant",
        "font-weight",
        "fx",
        "fy",
        "g1",
        "g2",
        "glyph-name",
        "glyphref",
        "gradientunits",
        "gradienttransform",
        "height",
        "href",
        "id",
        "image-rendering",
        "in",
        "in2",
        "k",
        "k1",
        "k2",
        "k3",
        "k4",
        "kerning",
        "keypoints",
        "keysplines",
        "keytimes",
        "lang",
        "lengthadjust",
        "letter-spacing",
        "kernelmatrix",
        "kernelunitlength",
        "lighting-color",
        "local",
        "marker-end",
        "marker-mid",
        "marker-start",
        "markerheight",
        "markerunits",
        "markerwidth",
        "maskcontentunits",
        "maskunits",
        "max",
        "mask",
        "media",
        "method",
        "mode",
        "min",
        "name",
        "numoctaves",
        "offset",
        "operator",
        "opacity",
        "order",
        "orient",
        "orientation",
        "origin",
        "overflow",
        "paint-order",
        "path",
        "pathlength",
        "patterncontentunits",
        "patterntransform",
        "patternunits",
        "points",
        "preservealpha",
        "preserveaspectratio",
        "primitiveunits",
        "r",
        "rx",
        "ry",
        "radius",
        "refx",
        "refy",
        "repeatcount",
        "repeatdur",
        "restart",
        "result",
        "rotate",
        "scale",
        "seed",
        "shape-rendering",
        "specularconstant",
        "specularexponent",
        "spreadmethod",
        "startoffset",
        "stddeviation",
        "stitchtiles",
        "stop-color",
        "stop-opacity",
        "stroke-dasharray",
        "stroke-dashoffset",
        "stroke-linecap",
        "stroke-linejoin",
        "stroke-miterlimit",
        "stroke-opacity",
        "stroke",
        "stroke-width",
        "style",
        "surfacescale",
        "systemlanguage",
        "tabindex",
        "targetx",
        "targety",
        "transform",
        "transform-origin",
        "text-anchor",
        "text-decoration",
        "text-rendering",
        "textlength",
        "type",
        "u1",
        "u2",
        "unicode",
        "values",
        "viewbox",
        "visibility",
        "version",
        "vert-adv-y",
        "vert-origin-x",
        "vert-origin-y",
        "width",
        "word-spacing",
        "wrap",
        "writing-mode",
        "xchannelselector",
        "ychannelselector",
        "x",
        "x1",
        "x2",
        "xmlns",
        "y",
        "y1",
        "y2",
        "z",
        "zoomandpan"
    ]);
    var mathMl = freeze([
        "accent",
        "accentunder",
        "align",
        "bevelled",
        "close",
        "columnsalign",
        "columnlines",
        "columnspan",
        "denomalign",
        "depth",
        "dir",
        "display",
        "displaystyle",
        "encoding",
        "fence",
        "frame",
        "height",
        "href",
        "id",
        "largeop",
        "length",
        "linethickness",
        "lspace",
        "lquote",
        "mathbackground",
        "mathcolor",
        "mathsize",
        "mathvariant",
        "maxsize",
        "minsize",
        "movablelimits",
        "notation",
        "numalign",
        "open",
        "rowalign",
        "rowlines",
        "rowspacing",
        "rowspan",
        "rspace",
        "rquote",
        "scriptlevel",
        "scriptminsize",
        "scriptsizemultiplier",
        "selection",
        "separator",
        "separators",
        "stretchy",
        "subscriptshift",
        "supscriptshift",
        "symmetric",
        "voffset",
        "width",
        "xmlns"
    ]);
    var xml = freeze([
        "xlink:href",
        "xml:id",
        "xlink:title",
        "xml:space",
        "xmlns:xlink"
    ]);
    var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode
    var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
    var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/); // eslint-disable-line no-useless-escape
    var ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
    var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
    );
    var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
    var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex
    );
    var DOCTYPE_NAME = seal(/^html$/i);
    var getGlobal = function getGlobal() {
        return typeof window === "undefined" ? null : window;
    };
    /**
   * Creates a no-op policy for internal use only.
   * Don't export this function outside this module!
   * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.
   * @param {Document} document The document object (to determine policy name suffix)
   * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types
   * are not supported).
   */ var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {
        if (_typeof(trustedTypes) !== "object" || typeof trustedTypes.createPolicy !== "function") return null;
         // Allow the callers to control the unique policy name
        // by adding a data-tt-policy-suffix to the script element with the DOMPurify.
        // Policy creation with duplicate names throws in Trusted Types.
        var suffix = null;
        var ATTR_NAME = "data-tt-policy-suffix";
        if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) suffix = document.currentScript.getAttribute(ATTR_NAME);
        var policyName = "dompurify" + (suffix ? "#" + suffix : "");
        try {
            return trustedTypes.createPolicy(policyName, {
                createHTML: function createHTML(html) {
                    return html;
                },
                createScriptURL: function createScriptURL(scriptUrl) {
                    return scriptUrl;
                }
            });
        } catch (_) {
            // Policy creation failed (most likely another DOMPurify script has
            // already run). Skip creating the policy, as this will only cause errors
            // if TT are enforced.
            console.warn("TrustedTypes policy " + policyName + " could not be created.");
            return null;
        }
    };
    function createDOMPurify() {
        var window1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
        var DOMPurify = function DOMPurify(root) {
            return createDOMPurify(root);
        };
        /**
     * Version label, exposed for easier checks
     * if DOMPurify is up to date or not
     */ DOMPurify.version = "2.3.10";
        /**
     * Array of elements that DOMPurify removed during sanitation.
     * Empty if nothing was removed.
     */ DOMPurify.removed = [];
        if (!window1 || !window1.document || window1.document.nodeType !== 9) {
            // Not running in a browser, provide a factory function
            // so that you can pass your own Window
            DOMPurify.isSupported = false;
            return DOMPurify;
        }
        var originalDocument = window1.document;
        var document = window1.document;
        var DocumentFragment = window1.DocumentFragment, HTMLTemplateElement = window1.HTMLTemplateElement, Node = window1.Node, Element = window1.Element, NodeFilter = window1.NodeFilter, _window$NamedNodeMap = window1.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window1.NamedNodeMap || window1.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window1.HTMLFormElement, DOMParser = window1.DOMParser, trustedTypes = window1.trustedTypes;
        var ElementPrototype = Element.prototype;
        var cloneNode = lookupGetter(ElementPrototype, "cloneNode");
        var getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
        var getChildNodes = lookupGetter(ElementPrototype, "childNodes");
        var getParentNode = lookupGetter(ElementPrototype, "parentNode"); // As per issue #47, the web-components registry is inherited by a
        // new document created via createHTMLDocument. As per the spec
        // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
        // a new empty registry is used when creating a template contents owner
        // document, so we use that as our parent document to ensure nothing
        // is inherited.
        if (typeof HTMLTemplateElement === "function") {
            var template = document.createElement("template");
            if (template.content && template.content.ownerDocument) document = template.content.ownerDocument;
        }
        var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
        var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML("") : "";
        var _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
        var importNode = originalDocument.importNode;
        var documentMode = {};
        try {
            documentMode = clone(document).documentMode ? document.documentMode : {};
        } catch (_) {}
        var hooks = {};
        /**
     * Expose whether this browser supports running the full DOMPurify.
     */ DOMPurify.isSupported = typeof getParentNode === "function" && implementation && typeof implementation.createHTMLDocument !== "undefined" && documentMode !== 9;
        var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;
        var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
        /**
     * We consider the elements and attributes below to be safe. Ideally
     * don't add any new ones but feel free to remove unwanted ones.
     */ /* allowed element names */ var ALLOWED_TAGS = null;
        var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
        /* Allowed attribute names */ var ALLOWED_ATTR = null;
        var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
        /*
     * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.
     * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)
     * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)
     * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
     */ var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
            tagNameCheck: {
                writable: true,
                configurable: false,
                enumerable: true,
                value: null
            },
            attributeNameCheck: {
                writable: true,
                configurable: false,
                enumerable: true,
                value: null
            },
            allowCustomizedBuiltInElements: {
                writable: true,
                configurable: false,
                enumerable: true,
                value: false
            }
        }));
        /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */ var FORBID_TAGS = null;
        /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */ var FORBID_ATTR = null;
        /* Decide if ARIA attributes are okay */ var ALLOW_ARIA_ATTR = true;
        /* Decide if custom data attributes are okay */ var ALLOW_DATA_ATTR = true;
        /* Decide if unknown protocols are okay */ var ALLOW_UNKNOWN_PROTOCOLS = false;
        /* Output should be safe for common template engines.
     * This means, DOMPurify removes data attributes, mustaches and ERB
     */ var SAFE_FOR_TEMPLATES = false;
        /* Decide if document with <html>... should be returned */ var WHOLE_DOCUMENT = false;
        /* Track whether config is already set on this instance of DOMPurify. */ var SET_CONFIG = false;
        /* Decide if all elements (e.g. style, script) must be children of
     * document.body. By default, browsers might move them to document.head */ var FORCE_BODY = false;
        /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html
     * string (or a TrustedHTML object if Trusted Types are supported).
     * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead
     */ var RETURN_DOM = false;
        /* Decide if a DOM `DocumentFragment` should be returned, instead of a html
     * string  (or a TrustedHTML object if Trusted Types are supported) */ var RETURN_DOM_FRAGMENT = false;
        /* Try to return a Trusted Type object instead of a string, return a string in
     * case Trusted Types are not supported  */ var RETURN_TRUSTED_TYPE = false;
        /* Output should be free from DOM clobbering attacks? */ var SANITIZE_DOM = true;
        /* Keep element content when removing element? */ var KEEP_CONTENT = true;
        /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead
     * of importing it into a new Document and returning a sanitized copy */ var IN_PLACE = false;
        /* Allow usage of profiles like html, svg and mathMl */ var USE_PROFILES = {};
        /* Tags to ignore content of when KEEP_CONTENT is true */ var FORBID_CONTENTS = null;
        var DEFAULT_FORBID_CONTENTS = addToSet({}, [
            "annotation-xml",
            "audio",
            "colgroup",
            "desc",
            "foreignobject",
            "head",
            "iframe",
            "math",
            "mi",
            "mn",
            "mo",
            "ms",
            "mtext",
            "noembed",
            "noframes",
            "noscript",
            "plaintext",
            "script",
            "style",
            "svg",
            "template",
            "thead",
            "title",
            "video",
            "xmp"
        ]);
        /* Tags that are safe for data: URIs */ var DATA_URI_TAGS = null;
        var DEFAULT_DATA_URI_TAGS = addToSet({}, [
            "audio",
            "video",
            "img",
            "source",
            "image",
            "track"
        ]);
        /* Attributes safe for values like "javascript:" */ var URI_SAFE_ATTRIBUTES = null;
        var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
            "alt",
            "class",
            "for",
            "id",
            "label",
            "name",
            "pattern",
            "placeholder",
            "role",
            "summary",
            "title",
            "value",
            "style",
            "xmlns"
        ]);
        var MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
        var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
        var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
        /* Document namespace */ var NAMESPACE = HTML_NAMESPACE;
        var IS_EMPTY_INPUT = false;
        /* Parsing of strict XHTML documents */ var PARSER_MEDIA_TYPE;
        var SUPPORTED_PARSER_MEDIA_TYPES = [
            "application/xhtml+xml",
            "text/html"
        ];
        var DEFAULT_PARSER_MEDIA_TYPE = "text/html";
        var transformCaseFunc;
        /* Keep a reference to config to pass to hooks */ var CONFIG = null;
        /* Ideally, do not touch anything below this line */ /* ______________________________________________ */ var formElement = document.createElement("form");
        var isRegexOrFunction = function isRegexOrFunction(testValue) {
            return testValue instanceof RegExp || testValue instanceof Function;
        };
        /**
     * _parseConfig
     *
     * @param  {Object} cfg optional config literal
     */ // eslint-disable-next-line complexity
        var _parseConfig = function _parseConfig(cfg) {
            if (CONFIG && CONFIG === cfg) return;
            /* Shield configuration object from tampering */ if (!cfg || _typeof(cfg) !== "object") cfg = {};
            /* Shield configuration object from prototype pollution */ cfg = clone(cfg);
            PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
            transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? function(x) {
                return x;
            } : stringToLowerCase;
            /* Set configuration parameters */ ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
            ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
            URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc // eslint-disable-line indent
            ) // eslint-disable-line indent
             : DEFAULT_URI_SAFE_ATTRIBUTES;
            DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc // eslint-disable-line indent
            ) // eslint-disable-line indent
             : DEFAULT_DATA_URI_TAGS;
            FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
            FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
            FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
            USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false;
            ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
            ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
            ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false
            SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false
            WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false
            RETURN_DOM = cfg.RETURN_DOM || false; // Default false
            RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false
            RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false
            FORCE_BODY = cfg.FORCE_BODY || false; // Default false
            SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true
            KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true
            IN_PLACE = cfg.IN_PLACE || false; // Default false
            IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
            NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
            if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
            if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
            if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
            if (SAFE_FOR_TEMPLATES) ALLOW_DATA_ATTR = false;
            if (RETURN_DOM_FRAGMENT) RETURN_DOM = true;
            /* Parse profile info */ if (USE_PROFILES) {
                ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
                ALLOWED_ATTR = [];
                if (USE_PROFILES.html === true) {
                    addToSet(ALLOWED_TAGS, html$1);
                    addToSet(ALLOWED_ATTR, html);
                }
                if (USE_PROFILES.svg === true) {
                    addToSet(ALLOWED_TAGS, svg$1);
                    addToSet(ALLOWED_ATTR, svg);
                    addToSet(ALLOWED_ATTR, xml);
                }
                if (USE_PROFILES.svgFilters === true) {
                    addToSet(ALLOWED_TAGS, svgFilters);
                    addToSet(ALLOWED_ATTR, svg);
                    addToSet(ALLOWED_ATTR, xml);
                }
                if (USE_PROFILES.mathMl === true) {
                    addToSet(ALLOWED_TAGS, mathMl$1);
                    addToSet(ALLOWED_ATTR, mathMl);
                    addToSet(ALLOWED_ATTR, xml);
                }
            }
            /* Merge configuration parameters */ if (cfg.ADD_TAGS) {
                if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) ALLOWED_TAGS = clone(ALLOWED_TAGS);
                addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
            }
            if (cfg.ADD_ATTR) {
                if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) ALLOWED_ATTR = clone(ALLOWED_ATTR);
                addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
            }
            if (cfg.ADD_URI_SAFE_ATTR) addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
            if (cfg.FORBID_CONTENTS) {
                if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
                addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
            }
            /* Add #text in case KEEP_CONTENT is set to true */ if (KEEP_CONTENT) ALLOWED_TAGS["#text"] = true;
            /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */ if (WHOLE_DOCUMENT) addToSet(ALLOWED_TAGS, [
                "html",
                "head",
                "body"
            ]);
            /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */ if (ALLOWED_TAGS.table) {
                addToSet(ALLOWED_TAGS, [
                    "tbody"
                ]);
                delete FORBID_TAGS.tbody;
            } // Prevent further manipulation of configuration.
            // Not available in IE8, Safari 5, etc.
            if (freeze) freeze(cfg);
            CONFIG = cfg;
        };
        var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [
            "mi",
            "mo",
            "mn",
            "ms",
            "mtext"
        ]);
        var HTML_INTEGRATION_POINTS = addToSet({}, [
            "foreignobject",
            "desc",
            "title",
            "annotation-xml"
        ]); // Certain elements are allowed in both SVG and HTML
        // namespace. We need to specify them explicitly
        // so that they don't get erroneously deleted from
        // HTML namespace.
        var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [
            "title",
            "style",
            "font",
            "a",
            "script"
        ]);
        /* Keep track of all possible SVG and MathML tags
     * so that we can perform the namespace checks
     * correctly. */ var ALL_SVG_TAGS = addToSet({}, svg$1);
        addToSet(ALL_SVG_TAGS, svgFilters);
        addToSet(ALL_SVG_TAGS, svgDisallowed);
        var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
        addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
        /**
     *
     *
     * @param  {Element} element a DOM element whose namespace is being checked
     * @returns {boolean} Return false if the element has a
     *  namespace that a spec-compliant parser would never
     *  return. Return true otherwise.
     */ var _checkValidNamespace = function _checkValidNamespace(element) {
            var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode
            // can be null. We just simulate parent in this case.
            if (!parent || !parent.tagName) parent = {
                namespaceURI: HTML_NAMESPACE,
                tagName: "template"
            };
            var tagName = stringToLowerCase(element.tagName);
            var parentTagName = stringToLowerCase(parent.tagName);
            if (element.namespaceURI === SVG_NAMESPACE) {
                // The only way to switch from HTML namespace to SVG
                // is via <svg>. If it happens via any other tag, then
                // it should be killed.
                if (parent.namespaceURI === HTML_NAMESPACE) return tagName === "svg";
                 // The only way to switch from MathML to SVG is via
                // svg if parent is either <annotation-xml> or MathML
                // text integration points.
                if (parent.namespaceURI === MATHML_NAMESPACE) return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
                 // We only allow elements that are defined in SVG
                // spec. All others are disallowed in SVG namespace.
                return Boolean(ALL_SVG_TAGS[tagName]);
            }
            if (element.namespaceURI === MATHML_NAMESPACE) {
                // The only way to switch from HTML namespace to MathML
                // is via <math>. If it happens via any other tag, then
                // it should be killed.
                if (parent.namespaceURI === HTML_NAMESPACE) return tagName === "math";
                 // The only way to switch from SVG to MathML is via
                // <math> and HTML integration points
                if (parent.namespaceURI === SVG_NAMESPACE) return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
                 // We only allow elements that are defined in MathML
                // spec. All others are disallowed in MathML namespace.
                return Boolean(ALL_MATHML_TAGS[tagName]);
            }
            if (element.namespaceURI === HTML_NAMESPACE) {
                // The only way to switch from SVG to HTML is via
                // HTML integration points, and from MathML to HTML
                // is via MathML text integration points
                if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) return false;
                if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) return false;
                 // We disallow tags that are specific for MathML
                // or SVG and should never appear in HTML namespace
                return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
            } // The code should never reach this place (this means
            // that the element somehow got namespace that is not
            // HTML, SVG or MathML). Return false just in case.
            return false;
        };
        /**
     * _forceRemove
     *
     * @param  {Node} node a DOM node
     */ var _forceRemove = function _forceRemove(node) {
            arrayPush(DOMPurify.removed, {
                element: node
            });
            try {
                // eslint-disable-next-line unicorn/prefer-dom-node-remove
                node.parentNode.removeChild(node);
            } catch (_) {
                try {
                    node.outerHTML = emptyHTML;
                } catch (_) {
                    node.remove();
                }
            }
        };
        /**
     * _removeAttribute
     *
     * @param  {String} name an Attribute name
     * @param  {Node} node a DOM node
     */ var _removeAttribute = function _removeAttribute(name, node) {
            try {
                arrayPush(DOMPurify.removed, {
                    attribute: node.getAttributeNode(name),
                    from: node
                });
            } catch (_) {
                arrayPush(DOMPurify.removed, {
                    attribute: null,
                    from: node
                });
            }
            node.removeAttribute(name); // We void attribute values for unremovable "is"" attributes
            if (name === "is" && !ALLOWED_ATTR[name]) {
                if (RETURN_DOM || RETURN_DOM_FRAGMENT) try {
                    _forceRemove(node);
                } catch (_) {}
                else try {
                    node.setAttribute(name, "");
                } catch (_) {}
            }
        };
        /**
     * _initDocument
     *
     * @param  {String} dirty a string of dirty markup
     * @return {Document} a DOM, filled with the dirty markup
     */ var _initDocument = function _initDocument(dirty) {
            /* Create a HTML document */ var doc;
            var leadingWhitespace;
            if (FORCE_BODY) dirty = "<remove></remove>" + dirty;
            else {
                /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */ var matches = stringMatch(dirty, /^[\r\n\t ]+/);
                leadingWhitespace = matches && matches[0];
            }
            if (PARSER_MEDIA_TYPE === "application/xhtml+xml") // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
            dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
            var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
            /*
       * Use the DOMParser API by default, fallback later if needs be
       * DOMParser not work for svg when has multiple root element.
       */ if (NAMESPACE === HTML_NAMESPACE) try {
                doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
            } catch (_) {}
            /* Use createHTMLDocument in case DOMParser is not available */ if (!doc || !doc.documentElement) {
                doc = implementation.createDocument(NAMESPACE, "template", null);
                try {
                    doc.documentElement.innerHTML = IS_EMPTY_INPUT ? "" : dirtyPayload;
                } catch (_) {}
            }
            var body = doc.body || doc.documentElement;
            if (dirty && leadingWhitespace) body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
            /* Work on whole document or just its body */ if (NAMESPACE === HTML_NAMESPACE) return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
            return WHOLE_DOCUMENT ? doc.documentElement : body;
        };
        /**
     * _createIterator
     *
     * @param  {Document} root document/fragment to create iterator for
     * @return {Iterator} iterator instance
     */ var _createIterator = function _createIterator(root) {
            return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);
        };
        /**
     * _isClobbered
     *
     * @param  {Node} elm element to check for clobbering attacks
     * @return {Boolean} true if clobbered, false if safe
     */ var _isClobbered = function _isClobbered(elm) {
            return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function");
        };
        /**
     * _isNode
     *
     * @param  {Node} obj object to check whether it's a DOM node
     * @return {Boolean} true is object is a DOM node
     */ var _isNode = function _isNode(object) {
            return _typeof(Node) === "object" ? object instanceof Node : object && _typeof(object) === "object" && typeof object.nodeType === "number" && typeof object.nodeName === "string";
        };
        /**
     * _executeHook
     * Execute user configurable hooks
     *
     * @param  {String} entryPoint  Name of the hook's entry point
     * @param  {Node} currentNode node to work on with the hook
     * @param  {Object} data additional hook parameters
     */ var _executeHook = function _executeHook(entryPoint, currentNode, data) {
            if (!hooks[entryPoint]) return;
            arrayForEach(hooks[entryPoint], function(hook) {
                hook.call(DOMPurify, currentNode, data, CONFIG);
            });
        };
        /**
     * _sanitizeElements
     *
     * @protect nodeName
     * @protect textContent
     * @protect removeChild
     *
     * @param   {Node} currentNode to check for permission to exist
     * @return  {Boolean} true if node was killed, false if left alive
     */ var _sanitizeElements = function _sanitizeElements(currentNode) {
            var content;
            /* Execute a hook if present */ _executeHook("beforeSanitizeElements", currentNode, null);
            /* Check if element is clobbered or can clobber */ if (_isClobbered(currentNode)) {
                _forceRemove(currentNode);
                return true;
            }
            /* Check if tagname contains Unicode */ if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
                _forceRemove(currentNode);
                return true;
            }
            /* Now let's check the element's type and name */ var tagName = transformCaseFunc(currentNode.nodeName);
            /* Execute a hook if present */ _executeHook("uponSanitizeElement", currentNode, {
                tagName: tagName,
                allowedTags: ALLOWED_TAGS
            });
            /* Detect mXSS attempts abusing namespace confusion */ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
                _forceRemove(currentNode);
                return true;
            }
            /* Mitigate a problem with templates inside select */ if (tagName === "select" && regExpTest(/<template/i, currentNode.innerHTML)) {
                _forceRemove(currentNode);
                return true;
            }
            /* Remove element if anything forbids its presence */ if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
                /* Check if we have a custom element to handle */ if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
                    if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
                    if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
                }
                /* Keep content except for bad-listed elements */ if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
                    var parentNode = getParentNode(currentNode) || currentNode.parentNode;
                    var childNodes = getChildNodes(currentNode) || currentNode.childNodes;
                    if (childNodes && parentNode) {
                        var childCount = childNodes.length;
                        for(var i = childCount - 1; i >= 0; --i)parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));
                    }
                }
                _forceRemove(currentNode);
                return true;
            }
            /* Check whether element has a valid namespace */ if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
                _forceRemove(currentNode);
                return true;
            }
            if ((tagName === "noscript" || tagName === "noembed") && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
                _forceRemove(currentNode);
                return true;
            }
            /* Sanitize element content to be template-safe */ if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
                /* Get the element's text content */ content = currentNode.textContent;
                content = stringReplace(content, MUSTACHE_EXPR$1, " ");
                content = stringReplace(content, ERB_EXPR$1, " ");
                if (currentNode.textContent !== content) {
                    arrayPush(DOMPurify.removed, {
                        element: currentNode.cloneNode()
                    });
                    currentNode.textContent = content;
                }
            }
            /* Execute a hook if present */ _executeHook("afterSanitizeElements", currentNode, null);
            return false;
        };
        /**
     * _isValidAttribute
     *
     * @param  {string} lcTag Lowercase tag name of containing element.
     * @param  {string} lcName Lowercase attribute name.
     * @param  {string} value Attribute value.
     * @return {Boolean} Returns true if `value` is valid, otherwise false.
     */ // eslint-disable-next-line complexity
        var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
            /* Make sure attribute cannot clobber */ if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document || value in formElement)) return false;
            /* Allow valid data-* attributes: At least one character after "-"
          (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
          XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
          We don't need to check the value; it's always URI safe. */ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ;
            else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ;
            else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
                if (// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
                // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
                _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
                // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
                lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ;
                else return false;
            /* Check value is safe. First, is attr inert? If so, is safe */ } else if (URI_SAFE_ATTRIBUTES[lcName]) ;
            else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ""))) ;
            else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]) ;
            else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ""))) ;
            else if (!value) ;
            else return false;
            return true;
        };
        /**
     * _basicCustomElementCheck
     * checks if at least one dash is included in tagName, and it's not the first char
     * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
     * @param {string} tagName name of the tag of the node to sanitize
     */ var _basicCustomElementTest = function _basicCustomElementTest(tagName) {
            return tagName.indexOf("-") > 0;
        };
        /**
     * _sanitizeAttributes
     *
     * @protect attributes
     * @protect nodeName
     * @protect removeAttribute
     * @protect setAttribute
     *
     * @param  {Node} currentNode to sanitize
     */ var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
            var attr;
            var value;
            var lcName;
            var l;
            /* Execute a hook if present */ _executeHook("beforeSanitizeAttributes", currentNode, null);
            var attributes = currentNode.attributes;
            /* Check if we have attributes; if not we might have a text node */ if (!attributes) return;
            var hookEvent = {
                attrName: "",
                attrValue: "",
                keepAttr: true,
                allowedAttributes: ALLOWED_ATTR
            };
            l = attributes.length;
            /* Go backwards over all attributes; safely remove bad ones */ while(l--){
                attr = attributes[l];
                var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;
                value = name === "value" ? attr.value : stringTrim(attr.value);
                lcName = transformCaseFunc(name);
                /* Execute a hook if present */ hookEvent.attrName = lcName;
                hookEvent.attrValue = value;
                hookEvent.keepAttr = true;
                hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set
                _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
                value = hookEvent.attrValue;
                /* Did the hooks approve of the attribute? */ if (hookEvent.forceKeepAttr) continue;
                /* Remove attribute */ _removeAttribute(name, currentNode);
                /* Did the hooks approve of the attribute? */ if (!hookEvent.keepAttr) continue;
                /* Work around a security issue in jQuery 3.0 */ if (regExpTest(/\/>/i, value)) {
                    _removeAttribute(name, currentNode);
                    continue;
                }
                /* Sanitize attribute content to be template-safe */ if (SAFE_FOR_TEMPLATES) {
                    value = stringReplace(value, MUSTACHE_EXPR$1, " ");
                    value = stringReplace(value, ERB_EXPR$1, " ");
                }
                /* Is `value` valid for this attribute? */ var lcTag = transformCaseFunc(currentNode.nodeName);
                if (!_isValidAttribute(lcTag, lcName, value)) continue;
                /* Handle attributes that require Trusted Types */ if (trustedTypesPolicy && _typeof(trustedTypes) === "object" && typeof trustedTypes.getAttributeType === "function") {
                    if (namespaceURI) ;
                    else switch(trustedTypes.getAttributeType(lcTag, lcName)){
                        case "TrustedHTML":
                            value = trustedTypesPolicy.createHTML(value);
                            break;
                        case "TrustedScriptURL":
                            value = trustedTypesPolicy.createScriptURL(value);
                            break;
                    }
                }
                /* Handle invalid data-* attribute set by try-catching it */ try {
                    if (namespaceURI) currentNode.setAttributeNS(namespaceURI, name, value);
                    else /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */ currentNode.setAttribute(name, value);
                    arrayPop(DOMPurify.removed);
                } catch (_) {}
            }
            /* Execute a hook if present */ _executeHook("afterSanitizeAttributes", currentNode, null);
        };
        /**
     * _sanitizeShadowDOM
     *
     * @param  {DocumentFragment} fragment to iterate over recursively
     */ var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
            var shadowNode;
            var shadowIterator = _createIterator(fragment);
            /* Execute a hook if present */ _executeHook("beforeSanitizeShadowDOM", fragment, null);
            while(shadowNode = shadowIterator.nextNode()){
                /* Execute a hook if present */ _executeHook("uponSanitizeShadowNode", shadowNode, null);
                /* Sanitize tags and elements */ if (_sanitizeElements(shadowNode)) continue;
                /* Deep shadow DOM detected */ if (shadowNode.content instanceof DocumentFragment) _sanitizeShadowDOM(shadowNode.content);
                /* Check attributes, sanitize if necessary */ _sanitizeAttributes(shadowNode);
            }
            /* Execute a hook if present */ _executeHook("afterSanitizeShadowDOM", fragment, null);
        };
        /**
     * Sanitize
     * Public method providing core sanitation functionality
     *
     * @param {String|Node} dirty string or DOM node
     * @param {Object} configuration object
     */ // eslint-disable-next-line complexity
        DOMPurify.sanitize = function(dirty, cfg) {
            var body;
            var importedNode;
            var currentNode;
            var oldNode;
            var returnNode;
            /* Make sure we have a string to sanitize.
        DO NOT return early, as this will return the wrong type if
        the user has requested a DOM object rather than a string */ IS_EMPTY_INPUT = !dirty;
            if (IS_EMPTY_INPUT) dirty = "<!-->";
            /* Stringify, in case dirty is an object */ if (typeof dirty !== "string" && !_isNode(dirty)) {
                // eslint-disable-next-line no-negated-condition
                if (typeof dirty.toString !== "function") throw typeErrorCreate("toString is not a function");
                else {
                    dirty = dirty.toString();
                    if (typeof dirty !== "string") throw typeErrorCreate("dirty is not a string, aborting");
                }
            }
            /* Check we can run. Otherwise fall back or ignore */ if (!DOMPurify.isSupported) {
                if (_typeof(window1.toStaticHTML) === "object" || typeof window1.toStaticHTML === "function") {
                    if (typeof dirty === "string") return window1.toStaticHTML(dirty);
                    if (_isNode(dirty)) return window1.toStaticHTML(dirty.outerHTML);
                }
                return dirty;
            }
            /* Assign config vars */ if (!SET_CONFIG) _parseConfig(cfg);
            /* Clean up removed elements */ DOMPurify.removed = [];
            /* Check if dirty is correctly typed for IN_PLACE */ if (typeof dirty === "string") IN_PLACE = false;
            if (IN_PLACE) /* Do some early pre-sanitization to avoid unsafe root nodes */ {
                if (dirty.nodeName) {
                    var tagName = transformCaseFunc(dirty.nodeName);
                    if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
                }
            } else if (dirty instanceof Node) {
                /* If dirty is a DOM element, append to an empty document to avoid
           elements being stripped by the parser */ body = _initDocument("<!---->");
                importedNode = body.ownerDocument.importNode(dirty, true);
                if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") /* Node is already a body, use as is */ body = importedNode;
                else if (importedNode.nodeName === "HTML") body = importedNode;
                else // eslint-disable-next-line unicorn/prefer-dom-node-append
                body.appendChild(importedNode);
            } else {
                /* Exit directly if we have nothing to do */ if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
                dirty.indexOf("<") === -1) return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
                /* Initialize the document to work on */ body = _initDocument(dirty);
                /* Check we have a DOM node from the data */ if (!body) return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
            }
            /* Remove first element node (ours) if FORCE_BODY is set */ if (body && FORCE_BODY) _forceRemove(body.firstChild);
            /* Get node iterator */ var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
            /* Now start iterating over the created document */ while(currentNode = nodeIterator.nextNode()){
                /* Fix IE's strange behavior with manipulated textNodes #89 */ if (currentNode.nodeType === 3 && currentNode === oldNode) continue;
                /* Sanitize tags and elements */ if (_sanitizeElements(currentNode)) continue;
                /* Shadow DOM detected, sanitize it */ if (currentNode.content instanceof DocumentFragment) _sanitizeShadowDOM(currentNode.content);
                /* Check attributes, sanitize if necessary */ _sanitizeAttributes(currentNode);
                oldNode = currentNode;
            }
            oldNode = null;
            /* If we sanitized `dirty` in-place, return it. */ if (IN_PLACE) return dirty;
            /* Return sanitized string or DOM */ if (RETURN_DOM) {
                if (RETURN_DOM_FRAGMENT) {
                    returnNode = createDocumentFragment.call(body.ownerDocument);
                    while(body.firstChild)// eslint-disable-next-line unicorn/prefer-dom-node-append
                    returnNode.appendChild(body.firstChild);
                } else returnNode = body;
                if (ALLOWED_ATTR.shadowroot) /*
            AdoptNode() is not used because internal state is not reset
            (e.g. the past names map of a HTMLFormElement), this is safe
            in theory but we would rather not risk another attack vector.
            The state that is cloned by importNode() is explicitly defined
            by the specs.
          */ returnNode = importNode.call(originalDocument, returnNode, true);
                return returnNode;
            }
            var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
            /* Serialize doctype if allowed */ if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
            /* Sanitize final string template-safe */ if (SAFE_FOR_TEMPLATES) {
                serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, " ");
                serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, " ");
            }
            return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
        };
        /**
     * Public method to set the configuration once
     * setConfig
     *
     * @param {Object} cfg configuration object
     */ DOMPurify.setConfig = function(cfg) {
            _parseConfig(cfg);
            SET_CONFIG = true;
        };
        /**
     * Public method to remove the configuration
     * clearConfig
     *
     */ DOMPurify.clearConfig = function() {
            CONFIG = null;
            SET_CONFIG = false;
        };
        /**
     * Public method to check if an attribute value is valid.
     * Uses last set config, if any. Otherwise, uses config defaults.
     * isValidAttribute
     *
     * @param  {string} tag Tag name of containing element.
     * @param  {string} attr Attribute name.
     * @param  {string} value Attribute value.
     * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.
     */ DOMPurify.isValidAttribute = function(tag, attr, value) {
            /* Initialize shared config vars if necessary. */ if (!CONFIG) _parseConfig({});
            var lcTag = transformCaseFunc(tag);
            var lcName = transformCaseFunc(attr);
            return _isValidAttribute(lcTag, lcName, value);
        };
        /**
     * AddHook
     * Public method to add DOMPurify hooks
     *
     * @param {String} entryPoint entry point for the hook to add
     * @param {Function} hookFunction function to execute
     */ DOMPurify.addHook = function(entryPoint, hookFunction) {
            if (typeof hookFunction !== "function") return;
            hooks[entryPoint] = hooks[entryPoint] || [];
            arrayPush(hooks[entryPoint], hookFunction);
        };
        /**
     * RemoveHook
     * Public method to remove a DOMPurify hook at a given entryPoint
     * (pops it from the stack of hooks if more are present)
     *
     * @param {String} entryPoint entry point for the hook to remove
     * @return {Function} removed(popped) hook
     */ DOMPurify.removeHook = function(entryPoint) {
            if (hooks[entryPoint]) return arrayPop(hooks[entryPoint]);
        };
        /**
     * RemoveHooks
     * Public method to remove all DOMPurify hooks at a given entryPoint
     *
     * @param  {String} entryPoint entry point for the hooks to remove
     */ DOMPurify.removeHooks = function(entryPoint) {
            if (hooks[entryPoint]) hooks[entryPoint] = [];
        };
        /**
     * RemoveAllHooks
     * Public method to remove all DOMPurify hooks
     *
     */ DOMPurify.removeAllHooks = function() {
            hooks = {};
        };
        return DOMPurify;
    }
    var purify = createDOMPurify();
    return purify;
});

},{}],"iHS16":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ /// <reference types="css-module-types" />
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "SearchAutocomplete", ()=>(0, _searchAutocomplete.SearchAutocomplete));
parcelHelpers.export(exports, "Item", ()=>(0, _collections.Item));
parcelHelpers.export(exports, "Section", ()=>(0, _collections.Section));
var _searchAutocomplete = require("./SearchAutocomplete");
var _collections = require("@react-stately/collections");

},{"./SearchAutocomplete":"9KRt1","@react-stately/collections":"l5k8z","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"9KRt1":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "SearchAutocomplete", ()=>_SearchAutocomplete);
var _utils = require("@react-spectrum/utils");
var _button = require("@react-spectrum/button");
var _label = require("@react-spectrum/label");
var _utils1 = require("@react-aria/utils");
var _focus = require("@react-aria/focus");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _listbox = require("@react-spectrum/listbox");
var _magnifier = require("@spectrum-icons/ui/Magnifier");
var _magnifierDefault = parcelHelpers.interopDefault(_magnifier);
var _mobileSearchAutocomplete = require("./MobileSearchAutocomplete");
var _overlays = require("@react-spectrum/overlays");
var _progress = require("@react-spectrum/progress");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _searchautocompleteCss = require("./searchautocomplete.css");
var _searchautocompleteCssDefault = parcelHelpers.interopDefault(_searchautocompleteCss);
var _varsCss = require("@adobe/spectrum-css-temp/components/search/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _varsCss1 = require("@adobe/spectrum-css-temp/components/inputgroup/vars.css");
var _varsCssDefault1 = parcelHelpers.interopDefault(_varsCss1);
var _textfield = require("@react-spectrum/textfield");
var _varsCss2 = require("@adobe/spectrum-css-temp/components/textfield/vars.css");
var _varsCssDefault2 = parcelHelpers.interopDefault(_varsCss2);
var _combobox = require("@react-stately/combobox");
var _i18N = require("@react-aria/i18n");
var _interactions = require("@react-aria/interactions");
var _provider = require("@react-spectrum/provider");
var _autocomplete = require("@react-aria/autocomplete");
function SearchAutocomplete(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    if (props.placeholder) console.warn("Placeholders are deprecated due to accessibility issues. Please use help text instead.");
    let isMobile = (0, _utils.useIsMobileDevice)();
    if (isMobile) // menuTrigger=focus/manual don't apply to mobile searchwithin
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _mobileSearchAutocomplete.MobileSearchAutocomplete), {
        ...props,
        menuTrigger: "input",
        ref: ref
    });
    else return /*#__PURE__*/ (0, _reactDefault.default).createElement(SearchAutocompleteBase, {
        ...props,
        ref: ref
    });
}
function _SearchAutocompleteBase(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    let { menuTrigger ="input" , shouldFlip =true , direction ="bottom" , isQuiet , loadingState , onLoadMore , onSubmit =()=>{}  } = props;
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let isAsync = loadingState != null;
    let popoverRef = (0, _react.useRef)(null);
    let unwrappedPopoverRef = (0, _utils.useUnwrapDOMRef)(popoverRef);
    let listBoxRef = (0, _react.useRef)(null);
    let inputRef = (0, _react.useRef)(null);
    let domRef = (0, _utils.useFocusableRef)(ref, inputRef);
    let { contains  } = (0, _i18N.useFilter)({
        sensitivity: "base"
    });
    let state = (0, _combobox.useComboBoxState)({
        ...props,
        defaultFilter: contains,
        allowsEmptyCollection: isAsync,
        allowsCustomValue: true,
        onSelectionChange: (key)=>key !== null && onSubmit(null, key),
        selectedKey: undefined,
        defaultSelectedKey: undefined
    });
    let layout = (0, _listbox.useListBoxLayout)(state, loadingState === "loadingMore");
    let { inputProps , listBoxProps , labelProps , clearButtonProps , descriptionProps , errorMessageProps  } = (0, _autocomplete.useSearchAutocomplete)({
        ...props,
        keyboardDelegate: layout,
        popoverRef: unwrappedPopoverRef,
        listBoxRef,
        inputRef,
        menuTrigger
    }, state);
    // Measure the width of the inputfield to inform the width of the menu (below).
    let [menuWidth, setMenuWidth] = (0, _react.useState)(0);
    let { scale  } = (0, _provider.useProvider)();
    let onResize = (0, _react.useCallback)(()=>{
        if (inputRef.current) {
            let inputWidth = inputRef.current.offsetWidth;
            setMenuWidth(inputWidth);
        }
    }, [
        inputRef,
        setMenuWidth
    ]);
    (0, _utils.useResizeObserver)({
        ref: domRef,
        onResize: onResize
    });
    (0, _utils1.useLayoutEffect)(onResize, [
        scale,
        onResize
    ]);
    let style = {
        width: isQuiet ? undefined : menuWidth,
        minWidth: isQuiet ? `calc(${menuWidth}px + calc(2 * var(--spectrum-dropdown-quiet-offset)))` : menuWidth
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _label.Field), {
        ...props,
        descriptionProps: descriptionProps,
        errorMessageProps: errorMessageProps,
        labelProps: labelProps,
        ref: domRef
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(SearchAutocompleteInput, {
        ...props,
        isOpen: state.isOpen,
        loadingState: loadingState,
        inputProps: inputProps,
        inputRef: inputRef,
        clearButtonProps: clearButtonProps
    })), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.Popover), {
        state: state,
        UNSAFE_style: style,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup-popover", {
            "spectrum-InputGroup-popover--quiet": isQuiet
        }),
        ref: popoverRef,
        triggerRef: inputRef,
        placement: `${direction} end`,
        hideArrow: true,
        isNonModal: true,
        shouldFlip: shouldFlip
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _listbox.ListBoxBase), {
        ...listBoxProps,
        ref: listBoxRef,
        disallowEmptySelection: true,
        autoFocus: state.focusStrategy,
        shouldSelectOnPressUp: true,
        focusOnPointerEnter: true,
        layout: layout,
        state: state,
        shouldUseVirtualFocus: true,
        isLoading: loadingState === "loading" || loadingState === "loadingMore",
        onLoadMore: onLoadMore,
        renderEmptyState: ()=>isAsync && /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
                className: (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "no-results")
            }, stringFormatter.format("noResults"))
    })));
}
let SearchAutocompleteBase = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(_SearchAutocompleteBase);
// any type is because we don't want to call useObjectRef because this is an internal component and we know
// we are always passing an object ref
function _SearchAutocompleteInput(props, ref) {
    let searchIcon = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _magnifierDefault.default), {
        "data-testid": "searchicon"
    });
    let { icon =searchIcon , isQuiet , isDisabled , isReadOnly , validationState , inputProps , inputRef , autoFocus , style , className , loadingState , isOpen , menuTrigger , clearButtonProps  } = props;
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({});
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let domProps = (0, _utils1.filterDOMProps)(props);
    let timeout = (0, _react.useRef)(null);
    let [showLoading, setShowLoading] = (0, _react.useState)(false);
    let loadingCircle = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _progress.ProgressCircle), {
        "aria-label": stringFormatter.format("loading"),
        size: "S",
        isIndeterminate: true,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield-circleLoader", (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup-input-circleLoader"), (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-circleLoader"))
    });
    let clearButton = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _button.ClearButton), {
        ...clearButtonProps,
        preventFocus: true,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ClearButton"),
        isDisabled: isDisabled
    });
    let isLoading = loadingState === "loading" || loadingState === "filtering";
    let inputValue = inputProps.value;
    let lastInputValue = (0, _react.useRef)(inputValue);
    (0, _react.useEffect)(()=>{
        if (isLoading && !showLoading) {
            if (timeout.current === null) timeout.current = setTimeout(()=>{
                setShowLoading(true);
            }, 500);
            // If user is typing, clear the timer and restart since it is a new request
            if (inputValue !== lastInputValue.current) {
                clearTimeout(timeout.current);
                timeout.current = setTimeout(()=>{
                    setShowLoading(true);
                }, 500);
            }
        } else if (!isLoading) {
            // If loading is no longer happening, clear any timers and hide the loading circle
            setShowLoading(false);
            if (timeout.current != null) {
                clearTimeout(timeout.current);
                timeout.current = null;
            }
        }
        lastInputValue.current = inputValue;
    }, [
        isLoading,
        showLoading,
        inputValue
    ]);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusRing), {
        within: true,
        isTextInput: true,
        focusClass: (0, _utils.classNames)((0, _varsCssDefault1.default), "is-focused"),
        focusRingClass: (0, _utils.classNames)((0, _varsCssDefault1.default), "focus-ring"),
        autoFocus: autoFocus
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...hoverProps,
        ref: ref,
        style: style,
        className: (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup", {
            "spectrum-InputGroup--quiet": isQuiet,
            "is-disabled": isDisabled,
            "spectrum-InputGroup--invalid": validationState === "invalid" && !isDisabled,
            "is-hovered": isHovered
        }, (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "searchautocomplete"), className)
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _textfield.TextFieldBase), {
        ...domProps,
        inputProps: inputProps,
        inputRef: inputRef,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search", "spectrum-Search--loadable", "spectrum-Textfield", {
            "is-disabled": isDisabled,
            "is-quiet": isQuiet,
            "spectrum-Search--invalid": validationState === "invalid" && !isDisabled,
            "spectrum-Search--valid": validationState === "valid" && !isDisabled
        }, (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup-field")),
        inputClassName: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-input"),
        validationIconClassName: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-validationIcon"),
        isDisabled: isDisabled,
        isQuiet: isQuiet,
        validationState: validationState,
        isLoading: showLoading && (isOpen || menuTrigger === "manual" || loadingState === "loading"),
        loadingIndicator: loadingState != null ? loadingCircle : undefined,
        icon: icon,
        wrapperChildren: (inputValue !== "" || loadingState === "filtering" || validationState != null) && !isReadOnly ? clearButton : undefined,
        disableFocusRing: true
    })));
}
let SearchAutocompleteInput = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(_SearchAutocompleteInput);
/**
 * A SearchAutocomplete is a searchfield that supports a dynamic list of suggestions.
 */ let _SearchAutocomplete = /*#__PURE__*/ (0, _react.forwardRef)(SearchAutocomplete);

},{"@react-spectrum/utils":"cYYzN","@react-spectrum/button":"9ryHb","@react-spectrum/label":"gfn3V","@react-aria/utils":"5XGXZ","@react-aria/focus":"cRsYs","../intl/*.json":"ePRef","@react-spectrum/listbox":"dPLy6","@spectrum-icons/ui/Magnifier":"hb7Vo","./MobileSearchAutocomplete":"bqdcx","@react-spectrum/overlays":"gI5f4","@react-spectrum/progress":"bgya5","react":"react","./searchautocomplete.css":"MfyxN","@adobe/spectrum-css-temp/components/search/vars.css":"9TtoK","@adobe/spectrum-css-temp/components/inputgroup/vars.css":"5d5Dc","@react-spectrum/textfield":"6tWvn","@adobe/spectrum-css-temp/components/textfield/vars.css":"8Pg8H","@react-stately/combobox":"egqMt","@react-aria/i18n":"lHUec","@react-aria/interactions":"3eipm","@react-spectrum/provider":"aPwML","@react-aria/autocomplete":"lLjZE","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ePRef":[function(require,module,exports) {
const _temp0 = require("c4074e17b26aa195");
const _temp1 = require("a66884e03d86f822");
const _temp2 = require("f078930cd73eb891");
const _temp3 = require("59c8c904b3962939");
const _temp4 = require("d0ff317abfdda3c4");
const _temp5 = require("718d1cc2f56ec069");
const _temp6 = require("2c757b105a8e42ec");
const _temp7 = require("b207172d83a7eed0");
const _temp8 = require("fc4d2a985524fa7e");
const _temp9 = require("63568f24258319b0");
const _temp10 = require("5470a3f8a886a48f");
const _temp11 = require("86cd4463ef6ac866");
const _temp12 = require("d93ed8008a9e36db");
const _temp13 = require("48169fa01e20bb46");
const _temp14 = require("219f6cf77e23fd8d");
const _temp15 = require("caddd23751a5d95c");
const _temp16 = require("ba1578b024ce8060");
const _temp17 = require("659696b95c7e4a52");
const _temp18 = require("4ca450319a7dea9c");
const _temp19 = require("5b0c5bfab91bdacd");
const _temp20 = require("6e62848838989ce7");
const _temp21 = require("6188019fe18d1962");
const _temp22 = require("efd4227cf95b49bd");
const _temp23 = require("b8aab34cad8f5573");
const _temp24 = require("296ddb5b8fa29490");
const _temp25 = require("200d551e7002db8d");
const _temp26 = require("cd721f764765fc51");
const _temp27 = require("43db2a1429c76a86");
const _temp28 = require("9328971d2a9eccb0");
const _temp29 = require("5c1867cd0211a18c");
const _temp30 = require("c0609b04f8df8f6d");
const _temp31 = require("90747a5cca36b88e");
const _temp32 = require("1459f15b944c25f9");
const _temp33 = require("7e84297b0d8aa786");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"c4074e17b26aa195":"8gRFS","a66884e03d86f822":"gsBhH","f078930cd73eb891":"hEqee","59c8c904b3962939":"iNNTo","d0ff317abfdda3c4":"l5dLO","718d1cc2f56ec069":"l7Bxw","2c757b105a8e42ec":"5fkpB","b207172d83a7eed0":"47lzG","fc4d2a985524fa7e":"linnP","63568f24258319b0":"co1QY","5470a3f8a886a48f":"3mzpW","86cd4463ef6ac866":"miBtG","d93ed8008a9e36db":"9U1nZ","48169fa01e20bb46":"3LO8v","219f6cf77e23fd8d":"6kMPS","caddd23751a5d95c":"8Gi1R","ba1578b024ce8060":"gODsy","659696b95c7e4a52":"lSpBc","4ca450319a7dea9c":"llg7u","5b0c5bfab91bdacd":"cvXZY","6e62848838989ce7":"eH23V","6188019fe18d1962":"lRo3z","efd4227cf95b49bd":"8tFeg","b8aab34cad8f5573":"hjRFk","296ddb5b8fa29490":"kcZrq","200d551e7002db8d":"aI9nY","cd721f764765fc51":"aceB1","43db2a1429c76a86":"jTW9f","9328971d2a9eccb0":"dryKV","5c1867cd0211a18c":"1N5dw","c0609b04f8df8f6d":"mow60","90747a5cca36b88e":"eArLi","1459f15b944c25f9":"3Bjho","7e84297b0d8aa786":"85Ix0"}],"8gRFS":[function(require,module,exports) {
module.exports = {
    "clear": `مسح`,
    "invalid": `(غير صالح)`,
    "loading": `جارٍ التحميل...`,
    "noResults": `لا توجد نتائج`
};

},{}],"gsBhH":[function(require,module,exports) {
module.exports = {
    "clear": `Изчисти`,
    "invalid": `(невалиден)`,
    "loading": `Зареждане...`,
    "noResults": `Няма резултати`
};

},{}],"hEqee":[function(require,module,exports) {
module.exports = {
    "clear": `Vymazat`,
    "invalid": `(neplatné)`,
    "loading": `Načítání...`,
    "noResults": `Žádné výsledky`
};

},{}],"iNNTo":[function(require,module,exports) {
module.exports = {
    "clear": `Ryd`,
    "invalid": `(ugyldig)`,
    "loading": `Indlæser...`,
    "noResults": `Ingen resultater`
};

},{}],"l5dLO":[function(require,module,exports) {
module.exports = {
    "clear": `Löschen`,
    "invalid": `(ungültig)`,
    "loading": `Wird geladen...`,
    "noResults": `Keine Ergebnisse`
};

},{}],"l7Bxw":[function(require,module,exports) {
module.exports = {
    "clear": `Καθαρισμός`,
    "invalid": `(δεν ισχύει)`,
    "loading": `Φόρτωση...`,
    "noResults": `Χωρίς αποτέλεσμα`
};

},{}],"5fkpB":[function(require,module,exports) {
module.exports = {
    "loading": `Loading...`,
    "noResults": `No results`,
    "clear": `Clear`,
    "invalid": `(invalid)`
};

},{}],"47lzG":[function(require,module,exports) {
module.exports = {
    "clear": `Borrar`,
    "invalid": `(no válido)`,
    "loading": `Cargando...`,
    "noResults": `Sin resultados`
};

},{}],"linnP":[function(require,module,exports) {
module.exports = {
    "clear": `Kustuta`,
    "invalid": `(kehtetu)`,
    "loading": `Laadimine...`,
    "noResults": `Tulemusi pole`
};

},{}],"co1QY":[function(require,module,exports) {
module.exports = {
    "clear": `Kirkas`,
    "invalid": `(epäkelpo)`,
    "loading": `Ladataan...`,
    "noResults": `Ei tuloksia`
};

},{}],"3mzpW":[function(require,module,exports) {
module.exports = {
    "clear": `Effacer`,
    "invalid": `(non valide)`,
    "loading": `Chargement en cours…`,
    "noResults": `Aucun résultat`
};

},{}],"miBtG":[function(require,module,exports) {
module.exports = {
    "clear": `נקה`,
    "invalid": `(לא חוקי)`,
    "loading": `טוען...`,
    "noResults": `אין תוצאות`
};

},{}],"9U1nZ":[function(require,module,exports) {
module.exports = {
    "clear": `Izbriši`,
    "invalid": `(nevažeće)`,
    "loading": `Učitavam...`,
    "noResults": `Nema rezultata`
};

},{}],"3LO8v":[function(require,module,exports) {
module.exports = {
    "clear": `Törlés`,
    "invalid": `(érvénytelen)`,
    "loading": `Betöltés folyamatban…`,
    "noResults": `Nincsenek találatok`
};

},{}],"6kMPS":[function(require,module,exports) {
module.exports = {
    "clear": `Cancella`,
    "invalid": `(non valido)`,
    "loading": `Caricamento...`,
    "noResults": `Nessun risultato`
};

},{}],"8Gi1R":[function(require,module,exports) {
module.exports = {
    "clear": `クリア`,
    "invalid": `(無効)`,
    "loading": `読み込み中...`,
    "noResults": `結果なし`
};

},{}],"gODsy":[function(require,module,exports) {
module.exports = {
    "clear": `지우기`,
    "invalid": `(유효하지 않음)`,
    "loading": `로드 중...`,
    "noResults": `결과 없음`
};

},{}],"lSpBc":[function(require,module,exports) {
module.exports = {
    "clear": `Išvalyti`,
    "invalid": `(netinkama)`,
    "loading": `Įkeliama...`,
    "noResults": `Rezultatų nėra`
};

},{}],"llg7u":[function(require,module,exports) {
module.exports = {
    "clear": `Notīrīt`,
    "invalid": `(nederīgs)`,
    "loading": `Notiek ielāde...`,
    "noResults": `Nav rezultātu`
};

},{}],"cvXZY":[function(require,module,exports) {
module.exports = {
    "clear": `Tøm`,
    "invalid": `(ugyldig)`,
    "loading": `Laster inn...`,
    "noResults": `Ingen resultater`
};

},{}],"eH23V":[function(require,module,exports) {
module.exports = {
    "clear": `Wissen`,
    "invalid": `(ongeldig)`,
    "loading": `Laden...`,
    "noResults": `Geen resultaten`
};

},{}],"lRo3z":[function(require,module,exports) {
module.exports = {
    "clear": `Wyczyść`,
    "invalid": `(nieprawidłowy)`,
    "loading": `Wczytywanie...`,
    "noResults": `Brak wyników`
};

},{}],"8tFeg":[function(require,module,exports) {
module.exports = {
    "clear": `Limpar`,
    "invalid": `(inválido)`,
    "loading": `Carregando...`,
    "noResults": `Nenhum resultado`
};

},{}],"hjRFk":[function(require,module,exports) {
module.exports = {
    "clear": `Limpar`,
    "invalid": `(inválido)`,
    "loading": `A carregar...`,
    "noResults": `Sem resultados`
};

},{}],"kcZrq":[function(require,module,exports) {
module.exports = {
    "clear": `Golire`,
    "invalid": `(nevalid)`,
    "loading": `Se încarcă...`,
    "noResults": `Niciun rezultat`
};

},{}],"aI9nY":[function(require,module,exports) {
module.exports = {
    "clear": `Очистить`,
    "invalid": `(недействительно)`,
    "loading": `Загрузка...`,
    "noResults": `Результаты отсутствуют`
};

},{}],"aceB1":[function(require,module,exports) {
module.exports = {
    "clear": `Vymazať`,
    "invalid": `(neplatné)`,
    "loading": `Načítava sa...`,
    "noResults": `Žiadne výsledky`
};

},{}],"jTW9f":[function(require,module,exports) {
module.exports = {
    "clear": `Pobrišite`,
    "invalid": `(neveljavno)`,
    "loading": `Nalaganje...`,
    "noResults": `Ni rezultatov`
};

},{}],"dryKV":[function(require,module,exports) {
module.exports = {
    "clear": `Izbriši`,
    "invalid": `(nevažeće)`,
    "loading": `Učitavam...`,
    "noResults": `Nema rezultata`
};

},{}],"1N5dw":[function(require,module,exports) {
module.exports = {
    "clear": `Rensa`,
    "invalid": `(ogiltigt)`,
    "loading": `Läser in...`,
    "noResults": `Inga resultat`
};

},{}],"mow60":[function(require,module,exports) {
module.exports = {
    "clear": `Temizle`,
    "invalid": `(geçersiz)`,
    "loading": `Yükleniyor...`,
    "noResults": `Sonuç yok`
};

},{}],"eArLi":[function(require,module,exports) {
module.exports = {
    "clear": `Очистити`,
    "invalid": `(недійсне)`,
    "loading": `Завантаження...`,
    "noResults": `Результатів немає`
};

},{}],"3Bjho":[function(require,module,exports) {
module.exports = {
    "clear": `清除`,
    "invalid": `（无效）`,
    "loading": `正在加载...`,
    "noResults": `无结果`
};

},{}],"85Ix0":[function(require,module,exports) {
module.exports = {
    "clear": `清除`,
    "invalid": `(無效)`,
    "loading": `正在載入...`,
    "noResults": `無任何結果`
};

},{}],"hb7Vo":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("4e6e4b3d7b1fe5a7");
exports.__esModule = true;
exports.default = Magnifier;
var _Magnifier = require("2e29dd699c5425fd");
var _icon = require("d16efa67c76317a0");
var _react = _interopRequireDefault(require("d7f909352392f4d2"));
function Magnifier(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/ _react.default.createElement(_Magnifier.Magnifier, null));
}

},{"4e6e4b3d7b1fe5a7":"aSVf3","2e29dd699c5425fd":"elGLy","d16efa67c76317a0":"fTRUu","d7f909352392f4d2":"react"}],"elGLy":[function(require,module,exports) {
/**
* @adobe/react-spectrum-ui (c) by Adobe
* 
* @adobe/react-spectrum-ui is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.Magnifier = Magnifier;
var _react = _interopRequireDefault(require("71b1b9cc9f103550"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign || function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function _objectWithoutProperties(source, excluded) {
    if (source == null) return {};
    var target = _objectWithoutPropertiesLoose(source, excluded);
    var key, i;
    if (Object.getOwnPropertySymbols) {
        var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
        for(i = 0; i < sourceSymbolKeys.length; i++){
            key = sourceSymbolKeys[i];
            if (excluded.indexOf(key) >= 0) continue;
            if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
            target[key] = source[key];
        }
    }
    return target;
}
function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {};
    var target = {};
    var sourceKeys = Object.keys(source);
    var key, i;
    for(i = 0; i < sourceKeys.length; i++){
        key = sourceKeys[i];
        if (excluded.indexOf(key) >= 0) continue;
        target[key] = source[key];
    }
    return target;
}
function Magnifier(_ref) {
    var _ref$scale = _ref.scale, scale = _ref$scale === void 0 ? "M" : _ref$scale, props = _objectWithoutProperties(_ref, [
        "scale"
    ]);
    return _react["default"].createElement("svg", _extends({}, props, props), scale === "L" && _react["default"].createElement("path", {
        d: "M19.77 18.71l-5.464-5.464a7.503 7.503 0 1 0-1.06 1.06l5.463 5.464a.75.75 0 1 0 1.061-1.06zM2.5 8.5a6 6 0 1 1 6 6 6.007 6.007 0 0 1-6-6z"
    }), scale === "M" && _react["default"].createElement("path", {
        d: "M15.77 14.71l-4.534-4.535a6.014 6.014 0 1 0-1.06 1.06l4.533 4.535a.75.75 0 1 0 1.061-1.06zM6.5 11A4.5 4.5 0 1 1 11 6.5 4.505 4.505 0 0 1 6.5 11z"
    }));
}
Magnifier.displayName = "Magnifier";

},{"71b1b9cc9f103550":"react"}],"bqdcx":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "MobileSearchAutocomplete", ()=>MobileSearchAutocomplete);
var _alertMedium = require("@spectrum-icons/ui/AlertMedium");
var _alertMediumDefault = parcelHelpers.interopDefault(_alertMedium);
var _checkmarkMedium = require("@spectrum-icons/ui/CheckmarkMedium");
var _checkmarkMediumDefault = parcelHelpers.interopDefault(_checkmarkMedium);
var _utils = require("@react-spectrum/utils");
var _button = require("@react-spectrum/button");
var _combobox = require("@react-stately/combobox");
var _overlays = require("@react-aria/overlays");
var _label = require("@react-spectrum/label");
var _focus = require("@react-aria/focus");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _listbox = require("@react-spectrum/listbox");
var _magnifier = require("@spectrum-icons/ui/Magnifier");
var _magnifierDefault = parcelHelpers.interopDefault(_magnifier);
var _utils1 = require("@react-aria/utils");
var _progress = require("@react-spectrum/progress");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _searchautocompleteCss = require("./searchautocomplete.css");
var _searchautocompleteCssDefault = parcelHelpers.interopDefault(_searchautocompleteCss);
var _varsCss = require("@adobe/spectrum-css-temp/components/search/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
var _interactions = require("@react-aria/interactions");
var _varsCss1 = require("@adobe/spectrum-css-temp/components/inputgroup/vars.css");
var _varsCssDefault1 = parcelHelpers.interopDefault(_varsCss1);
var _textfield = require("@react-spectrum/textfield");
var _varsCss2 = require("@adobe/spectrum-css-temp/components/textfield/vars.css");
var _varsCssDefault2 = parcelHelpers.interopDefault(_varsCss2);
var _overlays1 = require("@react-spectrum/overlays");
var _button1 = require("@react-aria/button");
var _dialog = require("@react-aria/dialog");
var _i18N = require("@react-aria/i18n");
var _label1 = require("@react-aria/label");
var _provider = require("@react-spectrum/provider");
var _autocomplete = require("@react-aria/autocomplete");
function _MobileSearchAutocomplete(props, ref) {
    props = (0, _provider.useProviderProps)(props);
    let { isQuiet , isDisabled , validationState , isReadOnly , onSubmit =()=>{}  } = props;
    let { contains  } = (0, _i18N.useFilter)({
        sensitivity: "base"
    });
    let state = (0, _combobox.useComboBoxState)({
        ...props,
        defaultFilter: contains,
        allowsEmptyCollection: true,
        // Needs to be false here otherwise we double up on commitSelection/commitCustomValue calls when
        // user taps on underlay (i.e. initial tap will call setFocused(false) -> commitSelection/commitCustomValue via onBlur,
        // then the closing of the tray will call setFocused(false) again due to cleanup effect)
        shouldCloseOnBlur: false,
        allowsCustomValue: true,
        onSelectionChange: (key)=>key !== null && onSubmit(null, key),
        selectedKey: undefined,
        defaultSelectedKey: undefined
    });
    let buttonRef = (0, _react.useRef)(null);
    let domRef = (0, _utils.useFocusableRef)(ref, buttonRef);
    let { triggerProps , overlayProps  } = (0, _overlays.useOverlayTrigger)({
        type: "listbox"
    }, state, buttonRef);
    let { labelProps , fieldProps  } = (0, _label1.useLabel)({
        ...props,
        labelElementType: "span"
    });
    // Focus the button and show focus ring when clicking on the label
    labelProps.onClick = ()=>{
        if (!props.isDisabled && buttonRef.current) {
            buttonRef.current.focus();
            (0, _interactions.setInteractionModality)("keyboard");
        }
    };
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _label.Field), {
        ...props,
        labelProps: labelProps,
        elementType: "span",
        ref: domRef,
        includeNecessityIndicatorInAccessibilityName: true
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(SearchAutocompleteButton, {
        ...(0, _utils1.mergeProps)(triggerProps, fieldProps, {
            autoFocus: props.autoFocus,
            icon: props.icon
        }),
        ref: buttonRef,
        isQuiet: isQuiet,
        isDisabled: isDisabled,
        isReadOnly: isReadOnly,
        isPlaceholder: !state.inputValue,
        validationState: validationState,
        inputValue: state.inputValue,
        clearInput: ()=>state.setInputValue(""),
        onPress: ()=>!isReadOnly && state.open(null, "manual")
    }, state.inputValue || props.placeholder || "")), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays1.Tray), {
        state: state,
        isFixedHeight: true,
        ...overlayProps
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(SearchAutocompleteTray, {
        ...props,
        onClose: state.close,
        overlayProps: overlayProps,
        state: state
    })));
}
let MobileSearchAutocomplete = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(_MobileSearchAutocomplete);
// any type is because we don't want to call useObjectRef because this is an internal component and we know
// we are always passing an object ref
const SearchAutocompleteButton = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(function SearchAutocompleteButton(props, ref) {
    let searchIcon = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _magnifierDefault.default), {
        "data-testid": "searchicon"
    });
    let { icon =searchIcon , isQuiet , isDisabled , isReadOnly , isPlaceholder , validationState , inputValue , clearInput , children , style , className  } = props;
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let valueId = (0, _utils1.useId)();
    let invalidId = (0, _utils1.useId)();
    let validationIcon = validationState === "invalid" ? /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _alertMediumDefault.default), {
        id: invalidId,
        "aria-label": stringFormatter.format("invalid")
    }) : /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _checkmarkMediumDefault.default), null);
    if (icon) icon = /*#__PURE__*/ (0, _reactDefault.default).cloneElement(icon, {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield-icon"),
        size: "S"
    });
    let clearButton = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _button.ClearButton), {
        onPress: (e)=>{
            var _props_onPress;
            clearInput === null || clearInput === void 0 ? void 0 : clearInput();
            props === null || props === void 0 ? void 0 : (_props_onPress = props.onPress) === null || _props_onPress === void 0 ? void 0 : _props_onPress.call(props, e);
        },
        preventFocus: true,
        "aria-label": stringFormatter.format("clear"),
        excludeFromTabOrder: true,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ClearButton"),
        isDisabled: isDisabled
    });
    let validation = /*#__PURE__*/ (0, _reactDefault.default).cloneElement(validationIcon, {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield-validationIcon", (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup-input-validationIcon"), (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-validationIcon"))
    });
    let { hoverProps , isHovered  } = (0, _interactions.useHover)({});
    let { isFocused , isFocusVisible , focusProps  } = (0, _focus.useFocusRing)();
    let { buttonProps  } = (0, _button1.useButton)({
        ...props,
        "aria-labelledby": [
            props["aria-labelledby"],
            props["aria-label"] && !props["aria-labelledby"] ? props.id : null,
            valueId,
            validationState === "invalid" ? invalidId : null
        ].filter(Boolean).join(" "),
        elementType: "div"
    }, ref);
    return /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...(0, _utils1.mergeProps)(hoverProps, focusProps, buttonProps),
        "aria-haspopup": "dialog",
        ref: ref,
        style: {
            ...style,
            outline: "none"
        },
        className: (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup", {
            "spectrum-InputGroup--quiet": isQuiet,
            "is-disabled": isDisabled,
            "spectrum-InputGroup--invalid": validationState === "invalid" && !isDisabled,
            "is-hovered": isHovered,
            "is-focused": isFocused,
            "focus-ring": isFocusVisible
        }, (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "searchautocomplete", "mobile-searchautocomplete"), className)
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield", {
            "spectrum-Textfield--invalid": validationState === "invalid" && !isDisabled,
            "spectrum-Textfield--valid": validationState === "valid" && !isDisabled,
            "spectrum-Textfield--quiet": isQuiet
        }, (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search", "spectrum-Search--loadable", {
            "is-disabled": isDisabled,
            "is-quiet": isQuiet,
            "spectrum-Search--invalid": validationState === "invalid" && !isDisabled,
            "spectrum-Search--valid": validationState === "valid" && !isDisabled
        }), (0, _utils.classNames)((0, _varsCssDefault1.default), "spectrum-InputGroup-field"))
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        className: (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield-input", {
            "spectrum-Textfield-inputIcon": !!icon,
            "is-hovered": isHovered,
            "is-placeholder": isPlaceholder,
            "is-disabled": isDisabled,
            "is-quiet": isQuiet,
            "is-focused": isFocused
        }, (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-input"), (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "mobile-input"))
    }, icon, /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
        id: valueId,
        className: (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "mobile-value")
    }, children)), validationState && !isDisabled ? validation : null, (inputValue !== "" || validationState != null) && !isReadOnly && clearButton));
});
function SearchAutocompleteTray(props) {
    let searchIcon = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _magnifierDefault.default), {
        "data-testid": "searchicon"
    });
    let { // completionMode = 'suggest',
    state , icon =searchIcon , isDisabled , validationState , label , overlayProps , loadingState , onLoadMore , onClose , onSubmit  } = props;
    let timeout = (0, _react.useRef)(null);
    let [showLoading, setShowLoading] = (0, _react.useState)(false);
    let inputRef = (0, _react.useRef)(null);
    let popoverRef = (0, _react.useRef)(null);
    let listBoxRef = (0, _react.useRef)(null);
    let isLoading = loadingState === "loading" || loadingState === "loadingMore";
    let layout = (0, _listbox.useListBoxLayout)(state, isLoading);
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let { inputProps , listBoxProps , labelProps , clearButtonProps  } = (0, _autocomplete.useSearchAutocomplete)({
        ...props,
        keyboardDelegate: layout,
        popoverRef: popoverRef,
        listBoxRef,
        inputRef
    }, state);
    (0, _reactDefault.default).useEffect(()=>{
        if (inputRef.current) (0, _focus.focusSafely)(inputRef.current);
        // When the tray unmounts, set state.isFocused (i.e. the tray input's focus tracker) to false.
        // This is to prevent state.isFocused from being set to true when the tray closes via tapping on the underlay
        // (FocusScope attempts to restore focus to the tray input when tapping outside the tray due to "contain")
        // Have to do this manually since React doesn't call onBlur when a component is unmounted: https://github.com/facebook/react/issues/12363
        return ()=>{
            state.setFocused(false);
        };
    // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
    let { dialogProps  } = (0, _dialog.useDialog)({
        "aria-labelledby": (0, _utils1.useId)(labelProps.id)
    }, popoverRef);
    // Override the role of the input to "searchbox" instead of "combobox".
    // Since the listbox is always visible, the combobox role doesn't really give us anything.
    // VoiceOver on iOS reads "double tap to collapse" when focused on the input rather than
    // "double tap to edit text", as with a textbox or searchbox. We'd like double tapping to
    // open the virtual keyboard rather than closing the tray.
    inputProps.role = "searchbox";
    inputProps["aria-haspopup"] = "listbox";
    delete inputProps.onTouchEnd;
    let clearButton = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _button.ClearButton), {
        ...clearButtonProps,
        preventFocus: true,
        "aria-label": stringFormatter.format("clear"),
        excludeFromTabOrder: true,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-ClearButton"),
        isDisabled: isDisabled
    });
    let loadingCircle = /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _progress.ProgressCircle), {
        "aria-label": stringFormatter.format("loading"),
        size: "S",
        isIndeterminate: true,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-circleLoader", (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield-circleLoader"))
    });
    // Close the software keyboard on scroll to give the user a bigger area to scroll.
    // But only do this if scrolling with touch, otherwise it can cause issues with touch
    // screen readers.
    let isTouchDown = (0, _react.useRef)(false);
    let onTouchStart = ()=>{
        isTouchDown.current = true;
    };
    let onTouchEnd = ()=>{
        isTouchDown.current = false;
    };
    let onScroll = (0, _react.useCallback)(()=>{
        if (!inputRef.current || document.activeElement !== inputRef.current || !isTouchDown.current) return;
        if (popoverRef.current) popoverRef.current.focus();
    }, [
        inputRef,
        popoverRef,
        isTouchDown
    ]);
    let inputValue = inputProps.value;
    let lastInputValue = (0, _react.useRef)(inputValue);
    (0, _react.useEffect)(()=>{
        if (loadingState === "filtering" && !showLoading) {
            if (timeout.current === null) timeout.current = setTimeout(()=>{
                setShowLoading(true);
            }, 500);
            // If user is typing, clear the timer and restart since it is a new request
            if (inputValue !== lastInputValue.current) {
                clearTimeout(timeout.current);
                timeout.current = setTimeout(()=>{
                    setShowLoading(true);
                }, 500);
            }
        } else if (loadingState !== "filtering") {
            // If loading is no longer happening, clear any timers and hide the loading circle
            setShowLoading(false);
            if (timeout.current !== null) {
                clearTimeout(timeout.current);
                timeout.current = null;
            }
        }
        lastInputValue.current = inputValue;
    }, [
        loadingState,
        inputValue,
        showLoading
    ]);
    let onKeyDown = (e)=>{
        // Close virtual keyboard, close tray, and fire onSubmit if user hits Enter w/o any focused options
        if (e.key === "Enter" && state.selectionManager.focusedKey == null) {
            var _popoverRef_current;
            (_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.focus();
            if (onClose) onClose();
            if (onSubmit) onSubmit(inputValue == null ? null : inputValue.toString(), null);
        } else if (inputProps.onKeyDown) inputProps.onKeyDown(e);
    };
    if (icon) icon = /*#__PURE__*/ (0, _reactDefault.default).cloneElement(icon, {
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault2.default), "spectrum-Textfield-icon"),
        size: "S"
    });
    return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _focus.FocusScope), {
        restoreFocus: true,
        contain: true
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement("div", {
        ...(0, _utils1.mergeProps)(overlayProps, dialogProps),
        ref: popoverRef,
        className: (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "tray-dialog")
    }, /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.DismissButton), {
        onDismiss: onClose
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _textfield.TextFieldBase), {
        label: label,
        labelProps: labelProps,
        inputProps: {
            ...inputProps,
            onKeyDown
        },
        inputRef: inputRef,
        isDisabled: isDisabled,
        isLoading: showLoading && loadingState === "filtering",
        loadingIndicator: loadingState != null ? loadingCircle : undefined,
        validationState: validationState,
        wrapperChildren: (state.inputValue !== "" || loadingState === "filtering" || validationState != null) && !props.isReadOnly ? clearButton : undefined,
        icon: icon,
        UNSAFE_className: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search", "spectrum-Textfield", "spectrum-Search--loadable", {
            "spectrum-Search--invalid": validationState === "invalid" && !isDisabled,
            "spectrum-Search--valid": validationState === "valid" && !isDisabled
        }, (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "tray-textfield", {
            "has-label": !!props.label
        })),
        inputClassName: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-input"),
        validationIconClassName: (0, _utils.classNames)((0, _varsCssDefault.default), "spectrum-Search-validationIcon")
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _listbox.ListBoxBase), {
        ...listBoxProps,
        domProps: {
            onTouchStart,
            onTouchEnd
        },
        disallowEmptySelection: true,
        shouldSelectOnPressUp: true,
        focusOnPointerEnter: true,
        layout: layout,
        state: state,
        shouldUseVirtualFocus: true,
        renderEmptyState: ()=>loadingState !== "loading" && /*#__PURE__*/ (0, _reactDefault.default).createElement("span", {
                className: (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "no-results")
            }, stringFormatter.format("noResults")),
        UNSAFE_className: (0, _utils.classNames)((0, _searchautocompleteCssDefault.default), "tray-listbox"),
        ref: listBoxRef,
        onScroll: onScroll,
        onLoadMore: onLoadMore,
        isLoading: isLoading
    }), /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _overlays.DismissButton), {
        onDismiss: onClose
    })));
}

},{"@spectrum-icons/ui/AlertMedium":"bmjMG","@spectrum-icons/ui/CheckmarkMedium":"46Wpo","@react-spectrum/utils":"cYYzN","@react-spectrum/button":"9ryHb","@react-stately/combobox":"egqMt","@react-aria/overlays":"6PUL4","@react-spectrum/label":"gfn3V","@react-aria/focus":"cRsYs","../intl/*.json":"ePRef","@react-spectrum/listbox":"dPLy6","@spectrum-icons/ui/Magnifier":"hb7Vo","@react-aria/utils":"5XGXZ","@react-spectrum/progress":"bgya5","react":"react","./searchautocomplete.css":"MfyxN","@adobe/spectrum-css-temp/components/search/vars.css":"9TtoK","@react-aria/interactions":"3eipm","@adobe/spectrum-css-temp/components/inputgroup/vars.css":"5d5Dc","@react-spectrum/textfield":"6tWvn","@adobe/spectrum-css-temp/components/textfield/vars.css":"8Pg8H","@react-spectrum/overlays":"gI5f4","@react-aria/button":"9DUfq","@react-aria/dialog":"heyud","@react-aria/i18n":"lHUec","@react-aria/label":"91g24","@react-spectrum/provider":"aPwML","@react-aria/autocomplete":"lLjZE","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"egqMt":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useComboBoxState", ()=>(0, _useComboBoxState.useComboBoxState));
var _useComboBoxState = require("./useComboBoxState");

},{"./useComboBoxState":"lBWkA","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"lBWkA":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides state management for a combo box component. Handles building a collection
 * of items from props and manages the option selection state of the combo box. In addition, it tracks the input value,
 * focus state, and other properties of the combo box.
 */ parcelHelpers.export(exports, "useComboBoxState", ()=>useComboBoxState);
var _collections = require("@react-stately/collections");
var _list = require("@react-stately/list");
var _react = require("react");
var _utils = require("@react-stately/utils");
var _menu = require("@react-stately/menu");
function useComboBoxState(props) {
    var _collection_getItem;
    let { defaultFilter , menuTrigger ="input" , allowsEmptyCollection =false , allowsCustomValue , shouldCloseOnBlur =true  } = props;
    let [showAllItems, setShowAllItems] = (0, _react.useState)(false);
    let [isFocused, setFocusedState] = (0, _react.useState)(false);
    var _props_defaultInputValue;
    let [inputValue, setInputValue] = (0, _utils.useControlledState)(props.inputValue, (_props_defaultInputValue = props.defaultInputValue) !== null && _props_defaultInputValue !== void 0 ? _props_defaultInputValue : "", props.onInputChange);
    let onSelectionChange = (key)=>{
        if (props.onSelectionChange) props.onSelectionChange(key);
        // If key is the same, reset the inputValue and close the menu
        // (scenario: user clicks on already selected option)
        if (key === selectedKey) {
            resetInputValue();
            closeMenu();
        }
    };
    var _props_items;
    let { collection , selectionManager , selectedKey , setSelectedKey , selectedItem , disabledKeys  } = (0, _list.useSingleSelectListState)({
        ...props,
        onSelectionChange,
        items: (_props_items = props.items) !== null && _props_items !== void 0 ? _props_items : props.defaultItems
    });
    // Preserve original collection so we can show all items on demand
    let originalCollection = collection;
    let filteredCollection = (0, _react.useMemo)(()=>// No default filter if items are controlled.
        props.items != null || !defaultFilter ? collection : filterCollection(collection, inputValue, defaultFilter), [
        collection,
        inputValue,
        defaultFilter,
        props.items
    ]);
    let [lastCollection, setLastCollection] = (0, _react.useState)(filteredCollection);
    // Track what action is attempting to open the menu
    let menuOpenTrigger = (0, _react.useRef)("focus");
    let onOpenChange = (open)=>{
        if (props.onOpenChange) props.onOpenChange(open, open ? menuOpenTrigger.current : undefined);
        selectionManager.setFocused(open);
        if (!open) selectionManager.setFocusedKey(null);
    };
    let triggerState = (0, _menu.useMenuTriggerState)({
        ...props,
        onOpenChange,
        isOpen: undefined,
        defaultOpen: undefined
    });
    let open = (focusStrategy, trigger)=>{
        let displayAllItems = trigger === "manual" || trigger === "focus" && menuTrigger === "focus";
        // Prevent open operations from triggering if there is nothing to display
        // Also prevent open operations from triggering if items are uncontrolled but defaultItems is empty, even if displayAllItems is true.
        // This is to prevent comboboxes with empty defaultItems from opening but allow controlled items comboboxes to open even if the inital list is empty (assumption is user will provide swap the empty list with a base list via onOpenChange returning `menuTrigger` manual)
        if (allowsEmptyCollection || filteredCollection.size > 0 || displayAllItems && originalCollection.size > 0 || props.items) {
            if (displayAllItems && !triggerState.isOpen && props.items === undefined) // Show all items if menu is manually opened. Only care about this if items are undefined
            setShowAllItems(true);
            menuOpenTrigger.current = trigger;
            triggerState.open(focusStrategy);
        }
    };
    let toggle = (focusStrategy, trigger)=>{
        let displayAllItems = trigger === "manual" || trigger === "focus" && menuTrigger === "focus";
        // If the menu is closed and there is nothing to display, early return so toggle isn't called to prevent extraneous onOpenChange
        if (!(allowsEmptyCollection || filteredCollection.size > 0 || displayAllItems && originalCollection.size > 0 || props.items) && !triggerState.isOpen) return;
        if (displayAllItems && !triggerState.isOpen && props.items === undefined) // Show all items if menu is toggled open. Only care about this if items are undefined
        setShowAllItems(true);
        // Only update the menuOpenTrigger if menu is currently closed
        if (!triggerState.isOpen) menuOpenTrigger.current = trigger;
        toggleMenu(focusStrategy);
    };
    // If menu is going to close, save the current collection so we can freeze the displayed collection when the
    // user clicks outside the popover to close the menu. Prevents the menu contents from updating as the menu closes.
    let toggleMenu = (0, _react.useCallback)((focusStrategy)=>{
        if (triggerState.isOpen) setLastCollection(filteredCollection);
        triggerState.toggle(focusStrategy);
    }, [
        triggerState,
        filteredCollection
    ]);
    let closeMenu = (0, _react.useCallback)(()=>{
        if (triggerState.isOpen) {
            setLastCollection(filteredCollection);
            triggerState.close();
        }
    }, [
        triggerState,
        filteredCollection
    ]);
    let lastValue = (0, _react.useRef)(inputValue);
    let resetInputValue = ()=>{
        var _collection_getItem;
        var _collection_getItem_textValue;
        let itemText = (_collection_getItem_textValue = (_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : _collection_getItem.textValue) !== null && _collection_getItem_textValue !== void 0 ? _collection_getItem_textValue : "";
        lastValue.current = itemText;
        setInputValue(itemText);
    };
    let isInitialRender = (0, _react.useRef)(true);
    var _props_selectedKey, _ref;
    let lastSelectedKey = (0, _react.useRef)((_ref = (_props_selectedKey = props.selectedKey) !== null && _props_selectedKey !== void 0 ? _props_selectedKey : props.defaultSelectedKey) !== null && _ref !== void 0 ? _ref : null);
    var _collection_getItem_textValue;
    let lastSelectedKeyText = (0, _react.useRef)((_collection_getItem_textValue = (_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : _collection_getItem.textValue) !== null && _collection_getItem_textValue !== void 0 ? _collection_getItem_textValue : "");
    // intentional omit dependency array, want this to happen on every render
    // eslint-disable-next-line react-hooks/exhaustive-deps
    (0, _react.useEffect)(()=>{
        var _collection_getItem;
        // Open and close menu automatically when the input value changes if the input is focused,
        // and there are items in the collection or allowEmptyCollection is true.
        if (isFocused && (filteredCollection.size > 0 || allowsEmptyCollection) && !triggerState.isOpen && inputValue !== lastValue.current && menuTrigger !== "manual") open(null, "input");
        // Close the menu if the collection is empty. Don't close menu if filtered collection size is 0
        // but we are currently showing all items via button press
        if (!showAllItems && !allowsEmptyCollection && triggerState.isOpen && filteredCollection.size === 0) closeMenu();
        // Close when an item is selected.
        if (selectedKey != null && selectedKey !== lastSelectedKey.current) closeMenu();
        // Clear focused key when input value changes and display filtered collection again.
        if (inputValue !== lastValue.current) {
            selectionManager.setFocusedKey(null);
            setShowAllItems(false);
            // Set selectedKey to null when the user clears the input.
            // If controlled, this is the application developer's responsibility.
            if (inputValue === "" && (props.inputValue === undefined || props.selectedKey === undefined)) setSelectedKey(null);
        }
        // If it is the intial render and inputValue isn't controlled nor has an intial value, set input to match current selected key if any
        if (isInitialRender.current && props.inputValue === undefined && props.defaultInputValue === undefined) resetInputValue();
        // If the selectedKey changed, update the input value.
        // Do nothing if both inputValue and selectedKey are controlled.
        // In this case, it's the user's responsibility to update inputValue in onSelectionChange.
        if (selectedKey !== lastSelectedKey.current && (props.inputValue === undefined || props.selectedKey === undefined)) resetInputValue();
        else lastValue.current = inputValue;
        var _collection_getItem_textValue;
        // Update the inputValue if the selected item's text changes from its last tracked value.
        // This is to handle cases where a selectedKey is specified but the items aren't available (async loading) or the selected item's text value updates.
        // Only reset if the user isn't currently within the field so we don't erroneously modify user input.
        // If inputValue is controlled, it is the user's responsibility to update the inputValue when items change.
        let selectedItemText = (_collection_getItem_textValue = (_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : _collection_getItem.textValue) !== null && _collection_getItem_textValue !== void 0 ? _collection_getItem_textValue : "";
        if (!isFocused && selectedKey != null && props.inputValue === undefined && selectedKey === lastSelectedKey.current) {
            if (lastSelectedKeyText.current !== selectedItemText) {
                lastValue.current = selectedItemText;
                setInputValue(selectedItemText);
            }
        }
        isInitialRender.current = false;
        lastSelectedKey.current = selectedKey;
        lastSelectedKeyText.current = selectedItemText;
    });
    // Revert input value and close menu
    let revert = ()=>{
        if (allowsCustomValue && selectedKey == null) commitCustomValue();
        else commitSelection();
    };
    let commitCustomValue = ()=>{
        lastSelectedKey.current = null;
        setSelectedKey(null);
        closeMenu();
    };
    let commitSelection = ()=>{
        // If multiple things are controlled, call onSelectionChange
        if (props.selectedKey !== undefined && props.inputValue !== undefined) {
            var _collection_getItem;
            props.onSelectionChange(selectedKey);
            var _collection_getItem_textValue;
            // Stop menu from reopening from useEffect
            let itemText = (_collection_getItem_textValue = (_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : _collection_getItem.textValue) !== null && _collection_getItem_textValue !== void 0 ? _collection_getItem_textValue : "";
            lastValue.current = itemText;
            closeMenu();
        } else {
            // If only a single aspect of combobox is controlled, reset input value and close menu for the user
            resetInputValue();
            closeMenu();
        }
    };
    const commitValue = ()=>{
        if (allowsCustomValue) {
            var _collection_getItem;
            var _collection_getItem_textValue;
            const itemText = (_collection_getItem_textValue = (_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : _collection_getItem.textValue) !== null && _collection_getItem_textValue !== void 0 ? _collection_getItem_textValue : "";
            inputValue === itemText ? commitSelection() : commitCustomValue();
        } else // Reset inputValue and close menu
        commitSelection();
    };
    let commit = ()=>{
        if (triggerState.isOpen && selectionManager.focusedKey != null) {
            // Reset inputValue and close menu here if the selected key is already the focused key. Otherwise
            // fire onSelectionChange to allow the application to control the closing.
            if (selectedKey === selectionManager.focusedKey) commitSelection();
            else setSelectedKey(selectionManager.focusedKey);
        } else commitValue();
    };
    let setFocused = (isFocused)=>{
        if (isFocused) {
            if (menuTrigger === "focus") open(null, "focus");
        } else if (shouldCloseOnBlur) commitValue();
        setFocusedState(isFocused);
    };
    let displayedCollection = (0, _react.useMemo)(()=>{
        if (triggerState.isOpen) {
            if (showAllItems) return originalCollection;
            else return filteredCollection;
        } else return lastCollection;
    }, [
        triggerState.isOpen,
        originalCollection,
        filteredCollection,
        showAllItems,
        lastCollection
    ]);
    return {
        ...triggerState,
        toggle,
        open,
        close: commitValue,
        selectionManager,
        selectedKey,
        setSelectedKey,
        disabledKeys,
        isFocused,
        setFocused,
        selectedItem,
        collection: displayedCollection,
        inputValue,
        setInputValue,
        commit,
        revert
    };
}
function filterCollection(collection, inputValue, filter) {
    return new (0, _list.ListCollection)(filterNodes(collection, collection, inputValue, filter));
}
function filterNodes(collection, nodes, inputValue, filter) {
    let filteredNode = [];
    for (let node of nodes){
        if (node.type === "section" && node.hasChildNodes) {
            let filtered = filterNodes(collection, (0, _collections.getChildNodes)(node, collection), inputValue, filter);
            if ([
                ...filtered
            ].some((node)=>node.type === "item")) filteredNode.push({
                ...node,
                childNodes: filtered
            });
        } else if (node.type === "item" && filter(node.textValue, inputValue)) filteredNode.push({
            ...node
        });
        else if (node.type !== "item") filteredNode.push({
            ...node
        });
    }
    return filteredNode;
}

},{"@react-stately/collections":"l5k8z","@react-stately/list":"1SRTj","react":"react","@react-stately/utils":"4oVZw","@react-stately/menu":"fFYSZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1SRTj":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useListState", ()=>(0, _useListState.useListState));
parcelHelpers.export(exports, "useSingleSelectListState", ()=>(0, _useSingleSelectListState.useSingleSelectListState));
parcelHelpers.export(exports, "ListCollection", ()=>(0, _listCollection.ListCollection));
var _useListState = require("./useListState");
var _useSingleSelectListState = require("./useSingleSelectListState");
var _listCollection = require("./ListCollection");

},{"./useListState":false,"./useSingleSelectListState":"7Py1l","./ListCollection":"64FIw","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"h4ZvZ":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides state management for list-like components. Handles building a collection
 * of items from props, and manages multiple selection state.
 */ parcelHelpers.export(exports, "useListState", ()=>useListState);
var _react = require("react");
var _listCollection = require("./ListCollection");
var _selection = require("@react-stately/selection");
var _collections = require("@react-stately/collections");
function useListState(props) {
    let { filter  } = props;
    let selectionState = (0, _selection.useMultipleSelectionState)(props);
    let disabledKeys = (0, _react.useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [
        props.disabledKeys
    ]);
    let factory = (0, _react.useCallback)((nodes)=>filter ? new (0, _listCollection.ListCollection)(filter(nodes)) : new (0, _listCollection.ListCollection)(nodes), [
        filter
    ]);
    let context = (0, _react.useMemo)(()=>({
            suppressTextValueWarning: props.suppressTextValueWarning
        }), [
        props.suppressTextValueWarning
    ]);
    let collection = (0, _collections.useCollection)(props, factory, context);
    let selectionManager = (0, _react.useMemo)(()=>new (0, _selection.SelectionManager)(collection, selectionState), [
        collection,
        selectionState
    ]);
    // Reset focused key if that item is deleted from the collection.
    const cachedCollection = (0, _react.useRef)(null);
    (0, _react.useEffect)(()=>{
        if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey)) {
            const startItem = cachedCollection.current.getItem(selectionState.focusedKey);
            const cachedItemNodes = [
                ...cachedCollection.current.getKeys()
            ].map((key)=>{
                const itemNode = cachedCollection.current.getItem(key);
                return itemNode.type === "item" ? itemNode : null;
            }).filter((node)=>node !== null);
            const itemNodes = [
                ...collection.getKeys()
            ].map((key)=>{
                const itemNode = collection.getItem(key);
                return itemNode.type === "item" ? itemNode : null;
            }).filter((node)=>node !== null);
            const diff = cachedItemNodes.length - itemNodes.length;
            let index = Math.min(diff > 1 ? Math.max(startItem.index - diff + 1, 0) : startItem.index, itemNodes.length - 1);
            let newNode;
            while(index >= 0){
                if (!selectionManager.isDisabled(itemNodes[index].key)) {
                    newNode = itemNodes[index];
                    break;
                }
                // Find next, not disabled item.
                if (index < itemNodes.length - 1) index++;
                else {
                    if (index > startItem.index) index = startItem.index;
                    index--;
                }
            }
            selectionState.setFocusedKey(newNode ? newNode.key : null);
        }
        cachedCollection.current = collection;
    }, [
        collection,
        selectionManager,
        selectionState,
        selectionState.focusedKey
    ]);
    return {
        collection,
        disabledKeys,
        selectionManager
    };
}

},{"react":"react","./ListCollection":"64FIw","@react-stately/selection":"eTDxX","@react-stately/collections":"l5k8z","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"64FIw":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ListCollection", ()=>ListCollection);
class ListCollection {
    *[Symbol.iterator]() {
        yield* this.iterable;
    }
    get size() {
        return this.keyMap.size;
    }
    getKeys() {
        return this.keyMap.keys();
    }
    getKeyBefore(key) {
        let node = this.keyMap.get(key);
        return node ? node.prevKey : null;
    }
    getKeyAfter(key) {
        let node = this.keyMap.get(key);
        return node ? node.nextKey : null;
    }
    getFirstKey() {
        return this.firstKey;
    }
    getLastKey() {
        return this.lastKey;
    }
    getItem(key) {
        return this.keyMap.get(key);
    }
    at(idx) {
        const keys = [
            ...this.getKeys()
        ];
        return this.getItem(keys[idx]);
    }
    getChildren(key) {
        let node = this.keyMap.get(key);
        return (node === null || node === void 0 ? void 0 : node.childNodes) || [];
    }
    constructor(nodes){
        this.keyMap = new Map();
        this.iterable = nodes;
        let visit = (node)=>{
            this.keyMap.set(node.key, node);
            if (node.childNodes && node.type === "section") for (let child of node.childNodes)visit(child);
        };
        for (let node of nodes)visit(node);
        let last;
        let index = 0;
        for (let [key, node] of this.keyMap){
            if (last) {
                last.nextKey = key;
                node.prevKey = last.key;
            } else {
                this.firstKey = key;
                node.prevKey = undefined;
            }
            if (node.type === "item") node.index = index++;
            last = node;
            // Set nextKey as undefined since this might be the last node
            // If it isn't the last node, last.nextKey will properly set at start of new loop
            last.nextKey = undefined;
        }
        this.lastKey = last === null || last === void 0 ? void 0 : last.key;
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"7Py1l":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides state management for list-like components with single selection.
 * Handles building a collection of items from props, and manages selection state.
 */ parcelHelpers.export(exports, "useSingleSelectListState", ()=>useSingleSelectListState);
var _react = require("react");
var _useListState = require("./useListState");
var _utils = require("@react-stately/utils");
function useSingleSelectListState(props) {
    var _props_defaultSelectedKey;
    let [selectedKey, setSelectedKey] = (0, _utils.useControlledState)(props.selectedKey, (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : null, props.onSelectionChange);
    let selectedKeys = (0, _react.useMemo)(()=>selectedKey != null ? [
            selectedKey
        ] : [], [
        selectedKey
    ]);
    let { collection , disabledKeys , selectionManager  } = (0, _useListState.useListState)({
        ...props,
        selectionMode: "single",
        disallowEmptySelection: true,
        allowDuplicateSelectionEvents: true,
        selectedKeys,
        onSelectionChange: (keys)=>{
            let key = keys.values().next().value;
            // Always fire onSelectionChange, even if the key is the same
            // as the current key (useControlledState does not).
            if (key === selectedKey && props.onSelectionChange) props.onSelectionChange(key);
            setSelectedKey(key);
        }
    });
    let selectedItem = selectedKey != null ? collection.getItem(selectedKey) : null;
    return {
        collection,
        disabledKeys,
        selectionManager,
        selectedKey,
        setSelectedKey,
        selectedItem
    };
}

},{"react":"react","./useListState":"h4ZvZ","@react-stately/utils":"4oVZw","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"MfyxN":[function(require,module,exports) {
module.exports["no-results"] = "no-results_83bf62";
module.exports["searchautocomplete"] = "searchautocomplete_83bf62";
module.exports["mobile-searchautocomplete"] = "mobile-searchautocomplete_83bf62";
module.exports["mobile-input"] = "mobile-input_83bf62";
module.exports["mobile-value"] = "mobile-value_83bf62";
module.exports["tray-dialog"] = "tray-dialog_83bf62";
module.exports["tray-textfield"] = "tray-textfield_83bf62";
module.exports["has-label"] = "has-label_83bf62";
module.exports["tray-textfield-input"] = "tray-textfield-input_83bf62";
module.exports["tray-listbox"] = "tray-listbox_83bf62";

},{}],"9TtoK":[function(require,module,exports) {
module.exports["spectrum-Search"] = "spectrum-Search_d3c0f3";
module.exports["spectrum-ClearButton"] = "spectrum-ClearButton_d3c0f3";
module.exports["is-quiet"] = "is-quiet_d3c0f3";
module.exports["spectrum-Search-input"] = "spectrum-Search-input_d3c0f3";
module.exports["spectrum-Search--invalid"] = "spectrum-Search--invalid_d3c0f3";
module.exports["spectrum-Search--valid"] = "spectrum-Search--valid_d3c0f3";
module.exports["spectrum-Search--loadable"] = "spectrum-Search--loadable_d3c0f3";
module.exports["spectrum-Search-circleLoader"] = "spectrum-Search-circleLoader_d3c0f3";
module.exports["spectrum-Search-validationIcon"] = "spectrum-Search-validationIcon_d3c0f3";
module.exports["spectrum-Textfield"] = "spectrum-Textfield_d3c0f3";

},{}],"5d5Dc":[function(require,module,exports) {
module.exports["spectrum-InputGroup"] = "spectrum-InputGroup_a0942f";
module.exports["focus-ring"] = "focus-ring_a0942f";
module.exports["spectrum-InputGroup--quiet"] = "spectrum-InputGroup--quiet_a0942f";
module.exports["spectrum-FieldButton"] = "spectrum-FieldButton_a0942f";
module.exports["is-disabled"] = "is-disabled_a0942f";
module.exports["spectrum-InputGroup--invalid"] = "spectrum-InputGroup--invalid_a0942f";
module.exports["spectrum-InputGroup-field"] = "spectrum-InputGroup-field_a0942f";
module.exports["spectrum-InputGroup-input-validationIcon"] = "spectrum-InputGroup-input-validationIcon_a0942f";
module.exports["spectrum-InputGroup-input-circleLoader"] = "spectrum-InputGroup-input-circleLoader_a0942f";
module.exports["spectrum-InputGroup-input"] = "spectrum-InputGroup-input_a0942f";
module.exports["spectrum-InputGroup-icon"] = "spectrum-InputGroup-icon_a0942f";
module.exports["spectrum-InputGroup-popover--quiet"] = "spectrum-InputGroup-popover--quiet_a0942f";
module.exports["spectrum-Datepicker--range"] = "spectrum-Datepicker--range_a0942f";
module.exports["spectrum-Datepicker--datetimeRange"] = "spectrum-Datepicker--datetimeRange_a0942f";
module.exports["spectrum-Datepicker-startField"] = "spectrum-Datepicker-startField_a0942f";
module.exports["spectrum-Datepicker-endField"] = "spectrum-Datepicker-endField_a0942f";
module.exports["spectrum-Datepicker--rangeDash"] = "spectrum-Datepicker--rangeDash_a0942f";
module.exports["is-focused"] = "is-focused_a0942f";
module.exports["spectrum-Datepicker-focusRing"] = "spectrum-Datepicker-focusRing_a0942f";
module.exports["is-selected"] = "is-selected_a0942f";
module.exports["spectrum-FieldButton--invalid"] = "spectrum-FieldButton--invalid_a0942f";

},{}],"lLjZE":[function(require,module,exports) {
/*
 * Copyright 2021 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useSearchAutocomplete", ()=>(0, _useSearchAutocomplete.useSearchAutocomplete));
var _useSearchAutocomplete = require("./useSearchAutocomplete");

},{"./useSearchAutocomplete":"1bH9p","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1bH9p":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a search autocomplete component.
 * A search autocomplete combines a combobox with a searchfield, allowing users to filter a list of options to items matching a query.
 * @param props - Props for the search autocomplete.
 * @param state - State for the search autocomplete, as returned by `useSearchAutocomplete`.
 */ parcelHelpers.export(exports, "useSearchAutocomplete", ()=>useSearchAutocomplete);
var _utils = require("@react-aria/utils");
var _combobox = require("@react-aria/combobox");
var _searchfield = require("@react-aria/searchfield");
function useSearchAutocomplete(props, state) {
    let { popoverRef , inputRef , listBoxRef , keyboardDelegate , onSubmit =()=>{} , onClear , onKeyDown , onKeyUp  } = props;
    let { inputProps , clearButtonProps , descriptionProps , errorMessageProps  } = (0, _searchfield.useSearchField)({
        ...props,
        value: state.inputValue,
        onChange: state.setInputValue,
        autoComplete: "off",
        onClear: ()=>{
            state.setInputValue("");
            if (onClear) onClear();
        },
        onSubmit: (value)=>{
            // Prevent submission from search field if menu item was selected
            if (state.selectionManager.focusedKey === null) onSubmit(value, null);
        },
        onKeyDown,
        onKeyUp
    }, {
        value: state.inputValue,
        setValue: state.setInputValue
    }, inputRef);
    let { listBoxProps , labelProps , inputProps: comboBoxInputProps  } = (0, _combobox.useComboBox)({
        ...props,
        keyboardDelegate,
        popoverRef,
        listBoxRef,
        inputRef,
        onFocus: undefined,
        onFocusChange: undefined,
        onBlur: undefined,
        onKeyDown: undefined,
        onKeyUp: undefined
    }, state);
    return {
        labelProps,
        inputProps: (0, _utils.mergeProps)(inputProps, comboBoxInputProps),
        listBoxProps,
        clearButtonProps,
        descriptionProps,
        errorMessageProps
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/combobox":"dFjSO","@react-aria/searchfield":"ldxK4","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"dFjSO":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useComboBox", ()=>(0, _useComboBox.useComboBox));
var _useComboBox = require("./useComboBox");

},{"./useComboBox":"bg3UP","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bg3UP":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a combo box component.
 * A combo box combines a text input with a listbox, allowing users to filter a list of options to items matching a query.
 * @param props - Props for the combo box.
 * @param state - State for the select, as returned by `useComboBoxState`.
 */ parcelHelpers.export(exports, "useComboBox", ()=>useComboBox);
var _liveAnnouncer = require("@react-aria/live-announcer");
var _overlays = require("@react-aria/overlays");
var _listbox = require("@react-aria/listbox");
var _utils = require("@react-aria/utils");
var _react = require("react");
var _collections = require("@react-stately/collections");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _selection = require("@react-aria/selection");
var _i18N = require("@react-aria/i18n");
var _menu = require("@react-aria/menu");
var _textfield = require("@react-aria/textfield");
function useComboBox(props, state) {
    let { buttonRef , popoverRef , inputRef , listBoxRef , keyboardDelegate , // completionMode = 'suggest',
    shouldFocusWrap , isReadOnly , isDisabled  } = props;
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let { menuTriggerProps , menuProps  } = (0, _menu.useMenuTrigger)({
        type: "listbox",
        isDisabled: isDisabled || isReadOnly
    }, state, buttonRef);
    // Set listbox id so it can be used when calling getItemId later
    (0, _listbox.listData).set(state, {
        id: menuProps.id
    });
    // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).
    // When virtualized, the layout object will be passed in as a prop and override this.
    let delegate = (0, _react.useMemo)(()=>keyboardDelegate || new (0, _selection.ListKeyboardDelegate)(state.collection, state.disabledKeys, listBoxRef), [
        keyboardDelegate,
        state.collection,
        state.disabledKeys,
        listBoxRef
    ]);
    // Use useSelectableCollection to get the keyboard handlers to apply to the textfield
    let { collectionProps  } = (0, _selection.useSelectableCollection)({
        selectionManager: state.selectionManager,
        keyboardDelegate: delegate,
        disallowTypeAhead: true,
        disallowEmptySelection: true,
        shouldFocusWrap,
        ref: inputRef,
        // Prevent item scroll behavior from being applied here, should be handled in the user's Popover + ListBox component
        isVirtualized: true
    });
    // For textfield specific keydown operations
    let onKeyDown = (e)=>{
        switch(e.key){
            case "Enter":
            case "Tab":
                // Prevent form submission if menu is open since we may be selecting a option
                if (state.isOpen && e.key === "Enter") e.preventDefault();
                state.commit();
                break;
            case "Escape":
                if (state.selectedKey !== null || state.inputValue === "" || props.allowsCustomValue) e.continuePropagation();
                state.revert();
                break;
            case "ArrowDown":
                state.open("first", "manual");
                break;
            case "ArrowUp":
                state.open("last", "manual");
                break;
            case "ArrowLeft":
            case "ArrowRight":
                state.selectionManager.setFocusedKey(null);
                break;
        }
    };
    let onBlur = (e)=>{
        var _popoverRef_current;
        // Ignore blur if focused moved to the button or into the popover.
        if (e.relatedTarget === (buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) || ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(e.relatedTarget))) return;
        if (props.onBlur) props.onBlur(e);
        state.setFocused(false);
    };
    let onFocus = (e)=>{
        if (state.isFocused) return;
        if (props.onFocus) props.onFocus(e);
        state.setFocused(true);
    };
    let { labelProps , inputProps , descriptionProps , errorMessageProps  } = (0, _textfield.useTextField)({
        ...props,
        onChange: state.setInputValue,
        onKeyDown: !isReadOnly && (0, _utils.chain)(state.isOpen && collectionProps.onKeyDown, onKeyDown, props.onKeyDown),
        onBlur,
        value: state.inputValue,
        onFocus,
        autoComplete: "off"
    }, inputRef);
    // Press handlers for the ComboBox button
    let onPress = (e)=>{
        if (e.pointerType === "touch") {
            // Focus the input field in case it isn't focused yet
            inputRef.current.focus();
            state.toggle(null, "manual");
        }
    };
    let onPressStart = (e)=>{
        if (e.pointerType !== "touch") {
            inputRef.current.focus();
            state.toggle(e.pointerType === "keyboard" || e.pointerType === "virtual" ? "first" : null, "manual");
        }
    };
    let triggerLabelProps = (0, _utils.useLabels)({
        id: menuTriggerProps.id,
        "aria-label": stringFormatter.format("buttonLabel"),
        "aria-labelledby": props["aria-labelledby"] || labelProps.id
    });
    let listBoxProps = (0, _utils.useLabels)({
        id: menuProps.id,
        "aria-label": stringFormatter.format("listboxLabel"),
        "aria-labelledby": props["aria-labelledby"] || labelProps.id
    });
    // If a touch happens on direct center of ComboBox input, might be virtual click from iPad so open ComboBox menu
    let lastEventTime = (0, _react.useRef)(0);
    let onTouchEnd = (e)=>{
        if (isDisabled || isReadOnly) return;
        // Sometimes VoiceOver on iOS fires two touchend events in quick succession. Ignore the second one.
        if (e.timeStamp - lastEventTime.current < 500) {
            e.preventDefault();
            inputRef.current.focus();
            return;
        }
        let rect = e.target.getBoundingClientRect();
        let touch = e.changedTouches[0];
        let centerX = Math.ceil(rect.left + .5 * rect.width);
        let centerY = Math.ceil(rect.top + .5 * rect.height);
        if (touch.clientX === centerX && touch.clientY === centerY) {
            e.preventDefault();
            inputRef.current.focus();
            state.toggle(null, "manual");
            lastEventTime.current = e.timeStamp;
        }
    };
    // VoiceOver has issues with announcing aria-activedescendant properly on change
    // (especially on iOS). We use a live region announcer to announce focus changes
    // manually. In addition, section titles are announced when navigating into a new section.
    let focusedItem = state.selectionManager.focusedKey != null && state.isOpen ? state.collection.getItem(state.selectionManager.focusedKey) : undefined;
    var _focusedItem_parentKey;
    let sectionKey = (_focusedItem_parentKey = focusedItem === null || focusedItem === void 0 ? void 0 : focusedItem.parentKey) !== null && _focusedItem_parentKey !== void 0 ? _focusedItem_parentKey : null;
    var _state_selectionManager_focusedKey;
    let itemKey = (_state_selectionManager_focusedKey = state.selectionManager.focusedKey) !== null && _state_selectionManager_focusedKey !== void 0 ? _state_selectionManager_focusedKey : null;
    let lastSection = (0, _react.useRef)(sectionKey);
    let lastItem = (0, _react.useRef)(itemKey);
    (0, _react.useEffect)(()=>{
        if ((0, _utils.isAppleDevice)() && focusedItem != null && itemKey !== lastItem.current) {
            let isSelected = state.selectionManager.isSelected(itemKey);
            let section = sectionKey != null ? state.collection.getItem(sectionKey) : null;
            let sectionTitle = (section === null || section === void 0 ? void 0 : section["aria-label"]) || (typeof (section === null || section === void 0 ? void 0 : section.rendered) === "string" ? section.rendered : "") || "";
            let announcement = stringFormatter.format("focusAnnouncement", {
                isGroupChange: section && sectionKey !== lastSection.current,
                groupTitle: sectionTitle,
                groupCount: section ? [
                    ...(0, _collections.getChildNodes)(section, state.collection)
                ].length : 0,
                optionText: focusedItem["aria-label"] || focusedItem.textValue || "",
                isSelected
            });
            (0, _liveAnnouncer.announce)(announcement);
        }
        lastSection.current = sectionKey;
        lastItem.current = itemKey;
    });
    // Announce the number of available suggestions when it changes
    let optionCount = (0, _collections.getItemCount)(state.collection);
    let lastSize = (0, _react.useRef)(optionCount);
    let lastOpen = (0, _react.useRef)(state.isOpen);
    (0, _react.useEffect)(()=>{
        // Only announce the number of options available when the menu opens if there is no
        // focused item, otherwise screen readers will typically read e.g. "1 of 6".
        // The exception is VoiceOver since this isn't included in the message above.
        let didOpenWithoutFocusedItem = state.isOpen !== lastOpen.current && (state.selectionManager.focusedKey == null || (0, _utils.isAppleDevice)());
        if (state.isOpen && (didOpenWithoutFocusedItem || optionCount !== lastSize.current)) {
            let announcement = stringFormatter.format("countAnnouncement", {
                optionCount
            });
            (0, _liveAnnouncer.announce)(announcement);
        }
        lastSize.current = optionCount;
        lastOpen.current = state.isOpen;
    });
    // Announce when a selection occurs for VoiceOver. Other screen readers typically do this automatically.
    let lastSelectedKey = (0, _react.useRef)(state.selectedKey);
    (0, _react.useEffect)(()=>{
        if ((0, _utils.isAppleDevice)() && state.isFocused && state.selectedItem && state.selectedKey !== lastSelectedKey.current) {
            let optionText = state.selectedItem["aria-label"] || state.selectedItem.textValue || "";
            let announcement = stringFormatter.format("selectedAnnouncement", {
                optionText
            });
            (0, _liveAnnouncer.announce)(announcement);
        }
        lastSelectedKey.current = state.selectedKey;
    });
    (0, _react.useEffect)(()=>{
        if (state.isOpen) return (0, _overlays.ariaHideOutside)([
            inputRef.current,
            popoverRef.current
        ]);
    }, [
        state.isOpen,
        inputRef,
        popoverRef
    ]);
    return {
        labelProps,
        buttonProps: {
            ...menuTriggerProps,
            ...triggerLabelProps,
            excludeFromTabOrder: true,
            onPress,
            onPressStart,
            isDisabled: isDisabled || isReadOnly
        },
        inputProps: (0, _utils.mergeProps)(inputProps, {
            role: "combobox",
            "aria-expanded": menuTriggerProps["aria-expanded"],
            "aria-controls": state.isOpen ? menuProps.id : undefined,
            // TODO: readd proper logic for completionMode = complete (aria-autocomplete: both)
            "aria-autocomplete": "list",
            "aria-activedescendant": focusedItem ? (0, _listbox.getItemId)(state, focusedItem.key) : undefined,
            onTouchEnd,
            // This disable's iOS's autocorrect suggestions, since the combo box provides its own suggestions.
            autoCorrect: "off",
            // This disable's the macOS Safari spell check auto corrections.
            spellCheck: "false"
        }),
        listBoxProps: (0, _utils.mergeProps)(menuProps, listBoxProps, {
            autoFocus: state.focusStrategy,
            shouldUseVirtualFocus: true,
            shouldSelectOnPressUp: true,
            shouldFocusOnHover: true
        }),
        descriptionProps,
        errorMessageProps
    };
}

},{"@react-aria/live-announcer":"1xggd","@react-aria/overlays":"6PUL4","@react-aria/listbox":"7kWfg","@react-aria/utils":"5XGXZ","react":"react","@react-stately/collections":"l5k8z","../intl/*.json":"4Vr0s","@react-aria/selection":"eGIVv","@react-aria/i18n":"lHUec","@react-aria/menu":"6OCiJ","@react-aria/textfield":"gkkCa","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"1xggd":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "announce", ()=>(0, _liveAnnouncer.announce));
parcelHelpers.export(exports, "clearAnnouncer", ()=>(0, _liveAnnouncer.clearAnnouncer));
parcelHelpers.export(exports, "destroyAnnouncer", ()=>(0, _liveAnnouncer.destroyAnnouncer));
var _liveAnnouncer = require("./LiveAnnouncer");

},{"./LiveAnnouncer":"fKMe2","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"fKMe2":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Announces the message using screen reader technology.
 */ parcelHelpers.export(exports, "announce", ()=>announce);
/**
 * Stops all queued announcements.
 */ parcelHelpers.export(exports, "clearAnnouncer", ()=>clearAnnouncer);
/**
 * Removes the announcer from the DOM.
 */ parcelHelpers.export(exports, "destroyAnnouncer", ()=>destroyAnnouncer);
/* Inspired by https://github.com/AlmeroSteyn/react-aria-live */ const LIVEREGION_TIMEOUT_DELAY = 7000;
let liveAnnouncer = null;
function announce(message, assertiveness = "assertive", timeout = LIVEREGION_TIMEOUT_DELAY) {
    if (!liveAnnouncer) liveAnnouncer = new LiveAnnouncer();
    liveAnnouncer.announce(message, assertiveness, timeout);
}
function clearAnnouncer(assertiveness) {
    if (liveAnnouncer) liveAnnouncer.clear(assertiveness);
}
function destroyAnnouncer() {
    if (liveAnnouncer) {
        liveAnnouncer.destroy();
        liveAnnouncer = null;
    }
}
// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18
// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a
// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.
// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer
// is simple enough to implement without React, so that's what we do here.
// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638
class LiveAnnouncer {
    createLog(ariaLive) {
        let node = document.createElement("div");
        node.setAttribute("role", "log");
        node.setAttribute("aria-live", ariaLive);
        node.setAttribute("aria-relevant", "additions");
        return node;
    }
    destroy() {
        if (!this.node) return;
        document.body.removeChild(this.node);
        this.node = null;
    }
    announce(message, assertiveness = "assertive", timeout = LIVEREGION_TIMEOUT_DELAY) {
        if (!this.node) return;
        let node = document.createElement("div");
        node.textContent = message;
        if (assertiveness === "assertive") this.assertiveLog.appendChild(node);
        else this.politeLog.appendChild(node);
        if (message !== "") setTimeout(()=>{
            node.remove();
        }, timeout);
    }
    clear(assertiveness) {
        if (!this.node) return;
        if (!assertiveness || assertiveness === "assertive") this.assertiveLog.innerHTML = "";
        if (!assertiveness || assertiveness === "polite") this.politeLog.innerHTML = "";
    }
    constructor(){
        this.node = document.createElement("div");
        this.node.dataset.liveAnnouncer = "true";
        // copied from VisuallyHidden
        Object.assign(this.node.style, {
            border: 0,
            clip: "rect(0 0 0 0)",
            clipPath: "inset(50%)",
            height: "1px",
            margin: "-1px",
            overflow: "hidden",
            padding: 0,
            position: "absolute",
            width: "1px",
            whiteSpace: "nowrap"
        });
        this.assertiveLog = this.createLog("assertive");
        this.node.appendChild(this.assertiveLog);
        this.politeLog = this.createLog("polite");
        this.node.appendChild(this.politeLog);
        document.body.prepend(this.node);
    }
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"4Vr0s":[function(require,module,exports) {
const _temp0 = require("bda209fc0795baf0");
const _temp1 = require("f4fb218734320b1c");
const _temp2 = require("db73d7282e7f0b72");
const _temp3 = require("8a89c20812888ac5");
const _temp4 = require("a90a393d42fd1ac0");
const _temp5 = require("758b19f6dbaa515a");
const _temp6 = require("bc257e3896baaa59");
const _temp7 = require("302f7e60e499de20");
const _temp8 = require("952535943a1235f2");
const _temp9 = require("f92b00de8074435d");
const _temp10 = require("1f9178c7b8f748b");
const _temp11 = require("cd26659b414d8184");
const _temp12 = require("ddcbedac816178a0");
const _temp13 = require("f9345e760610146c");
const _temp14 = require("e01ec2e07d7b968e");
const _temp15 = require("3e57c57b9e92b500");
const _temp16 = require("f46530bb786ed179");
const _temp17 = require("3d6a7d1d727a2430");
const _temp18 = require("855997635d80c698");
const _temp19 = require("91e18e6496db6994");
const _temp20 = require("85f18ef82418793a");
const _temp21 = require("dafe1a7a9b19814b");
const _temp22 = require("174c8dfc91ce423b");
const _temp23 = require("4ca0cd9f2e1674e");
const _temp24 = require("b843c0f0be1a5594");
const _temp25 = require("641171703c4c2319");
const _temp26 = require("e37240b59dce71ee");
const _temp27 = require("6f423c247b201d1c");
const _temp28 = require("4943e512073ce766");
const _temp29 = require("a6dc08871bdb2569");
const _temp30 = require("50874404f5be2ced");
const _temp31 = require("94e3081da8d25736");
const _temp32 = require("d83de5c43e7ebfbc");
const _temp33 = require("2e7e43f150f68960");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"bda209fc0795baf0":"23VGJ","f4fb218734320b1c":"MBB3T","db73d7282e7f0b72":"eDzPg","8a89c20812888ac5":"8JoNg","a90a393d42fd1ac0":"7F24M","758b19f6dbaa515a":"fz9YK","bc257e3896baaa59":"Eqpjg","302f7e60e499de20":"hfQJ2","952535943a1235f2":"ede26","f92b00de8074435d":"dUvnK","1f9178c7b8f748b":"bz4Rp","cd26659b414d8184":"cFLaZ","ddcbedac816178a0":"dHaDq","f9345e760610146c":"4CU14","e01ec2e07d7b968e":"1zl9Q","3e57c57b9e92b500":"ayl7M","f46530bb786ed179":"2O3zr","3d6a7d1d727a2430":"kX56D","855997635d80c698":"e7p4x","91e18e6496db6994":"3PYCx","85f18ef82418793a":"aLXEp","dafe1a7a9b19814b":"j5TRq","174c8dfc91ce423b":"3LaHq","4ca0cd9f2e1674e":"8XqzC","b843c0f0be1a5594":"1YLyq","641171703c4c2319":"6fhTx","e37240b59dce71ee":"3uXan","6f423c247b201d1c":"9qsQz","4943e512073ce766":"jEVhf","a6dc08871bdb2569":"bXzaQ","50874404f5be2ced":"fdINT","94e3081da8d25736":"dXA9o","d83de5c43e7ebfbc":"3zDSe","2e7e43f150f68960":"4ELZe"}],"23VGJ":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `عرض المقترحات`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} خيار`,
            other: ()=>`${formatter.number(args.optionCount)} خيارات`
        })} متاحة.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`المجموعة المدخلة ${args.groupTitle}, مع ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} خيار`,
                    other: ()=>`${formatter.number(args.groupCount)} خيارات`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, محدد`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `مقترحات`,
    "selectedAnnouncement": (args)=>`${args.optionText}، محدد`
};

},{}],"MBB3T":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Покажи предложения`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} опция`,
            other: ()=>`${formatter.number(args.optionCount)} опции`
        })} на разположение.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Въведена група ${args.groupTitle}, с ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} опция`,
                    other: ()=>`${formatter.number(args.groupCount)} опции`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, избрани`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Предложения`,
    "selectedAnnouncement": (args)=>`${args.optionText}, избрани`
};

},{}],"eDzPg":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Zobrazit doporučení`,
    "countAnnouncement": (args, formatter)=>`K dispozici ${formatter.plural(args.optionCount, {
            one: ()=>`je ${formatter.number(args.optionCount)} možnost`,
            other: ()=>`jsou/je ${formatter.number(args.optionCount)} možnosti/-í`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Zadaná skupina „${args.groupTitle}“ ${formatter.plural(args.groupCount, {
                    one: ()=>`s ${formatter.number(args.groupCount)} možností`,
                    other: ()=>`se ${formatter.number(args.groupCount)} možnostmi`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: ` (vybráno)`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Návrhy`,
    "selectedAnnouncement": (args)=>`${args.optionText}, vybráno`
};

},{}],"8JoNg":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Vis forslag`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} mulighed tilgængelig`,
            other: ()=>`${formatter.number(args.optionCount)} muligheder tilgængelige`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Angivet gruppe ${args.groupTitle}, med ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} mulighed`,
                    other: ()=>`${formatter.number(args.groupCount)} muligheder`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, valgt`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Forslag`,
    "selectedAnnouncement": (args)=>`${args.optionText}, valgt`
};

},{}],"7F24M":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Empfehlungen anzeigen`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} Option`,
            other: ()=>`${formatter.number(args.optionCount)} Optionen`
        })} verfügbar.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Eingetretene Gruppe ${args.groupTitle}, mit ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} Option`,
                    other: ()=>`${formatter.number(args.groupCount)} Optionen`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, ausgewählt`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Empfehlungen`,
    "selectedAnnouncement": (args)=>`${args.optionText}, ausgewählt`
};

},{}],"fz9YK":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Προβολή προτάσεων`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} επιλογή`,
            other: ()=>`${formatter.number(args.optionCount)} επιλογές `
        })} διαθέσιμες.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Εισαγμένη ομάδα ${args.groupTitle}, με ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} επιλογή`,
                    other: ()=>`${formatter.number(args.groupCount)} επιλογές`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, επιλεγμένο`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Προτάσεις`,
    "selectedAnnouncement": (args)=>`${args.optionText}, επιλέχθηκε`
};

},{}],"Eqpjg":[function(require,module,exports) {
module.exports = {
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Entered group ${args.groupTitle}, with ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} option`,
                    other: ()=>`${formatter.number(args.groupCount)} options`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, selected`,
            other: ``
        }, args.isSelected)}`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} option`,
            other: ()=>`${formatter.number(args.optionCount)} options`
        })} available.`,
    "selectedAnnouncement": (args)=>`${args.optionText}, selected`,
    "buttonLabel": `Show suggestions`,
    "listboxLabel": `Suggestions`
};

},{}],"hfQJ2":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Mostrar sugerencias`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opción`,
            other: ()=>`${formatter.number(args.optionCount)} opciones`
        })} disponible(s).`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Se ha unido al grupo ${args.groupTitle}, con ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opción`,
                    other: ()=>`${formatter.number(args.groupCount)} opciones`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, seleccionado`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Sugerencias`,
    "selectedAnnouncement": (args)=>`${args.optionText}, seleccionado`
};

},{}],"ede26":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Kuva soovitused`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} valik`,
            other: ()=>`${formatter.number(args.optionCount)} valikud`
        })} saadaval.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Sisestatud rühm ${args.groupTitle}, valikuga ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} valik`,
                    other: ()=>`${formatter.number(args.groupCount)} valikud`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, valitud`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Soovitused`,
    "selectedAnnouncement": (args)=>`${args.optionText}, valitud`
};

},{}],"dUvnK":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Näytä ehdotukset`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} vaihtoehto`,
            other: ()=>`${formatter.number(args.optionCount)} vaihtoehdot`
        })} saatavilla.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Mentiin ryhmään ${args.groupTitle}, ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} vaihtoehdon`,
                    other: ()=>`${formatter.number(args.groupCount)} vaihtoehdon`
                })} kanssa.`,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, valittu`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Ehdotukset`,
    "selectedAnnouncement": (args)=>`${args.optionText}, valittu`
};

},{}],"bz4Rp":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Afficher les suggestions`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} option`,
            other: ()=>`${formatter.number(args.optionCount)} options`
        })} disponible(s).`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Groupe ${args.groupTitle} saisi, avec ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} option`,
                    other: ()=>`${formatter.number(args.groupCount)} options`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, sélectionné(s)`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Suggestions`,
    "selectedAnnouncement": (args)=>`${args.optionText}, sélectionné`
};

},{}],"cFLaZ":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `הצג הצעות`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`אפשרות ${formatter.number(args.optionCount)}`,
            other: ()=>`${formatter.number(args.optionCount)} אפשרויות`
        })} במצב זמין.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`נכנס לקבוצה ${args.groupTitle}, עם ${formatter.plural(args.groupCount, {
                    one: ()=>`אפשרות ${formatter.number(args.groupCount)}`,
                    other: ()=>`${formatter.number(args.groupCount)} אפשרויות`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, נבחר`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `הצעות`,
    "selectedAnnouncement": (args)=>`${args.optionText}, נבחר`
};

},{}],"dHaDq":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Prikaži prijedloge`,
    "countAnnouncement": (args, formatter)=>`Dostupno još: ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opcija`,
            other: ()=>`${formatter.number(args.optionCount)} opcije/a`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Unesena skupina ${args.groupTitle}, s ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opcijom`,
                    other: ()=>`${formatter.number(args.groupCount)} opcije/a`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, odabranih`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Prijedlozi`,
    "selectedAnnouncement": (args)=>`${args.optionText}, odabrano`
};

},{}],"4CU14":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Javaslatok megjelenítése`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} lehetőség`,
            other: ()=>`${formatter.number(args.optionCount)} lehetőség`
        })} áll rendelkezésre.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Belépett a(z) ${args.groupTitle} csoportba, amely ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} lehetőséget`,
                    other: ()=>`${formatter.number(args.groupCount)} lehetőséget`
                })} tartalmaz. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, kijelölve`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Javaslatok`,
    "selectedAnnouncement": (args)=>`${args.optionText}, kijelölve`
};

},{}],"1zl9Q":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Mostra suggerimenti`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opzione disponibile`,
            other: ()=>`${formatter.number(args.optionCount)} opzioni disponibili`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Ingresso nel gruppo ${args.groupTitle}, con ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opzione`,
                    other: ()=>`${formatter.number(args.groupCount)} opzioni`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, selezionato`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Suggerimenti`,
    "selectedAnnouncement": (args)=>`${args.optionText}, selezionato`
};

},{}],"ayl7M":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `候補を表示`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} 個のオプション`,
            other: ()=>`${formatter.number(args.optionCount)} 個のオプション`
        })}を利用できます。`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`入力されたグループ ${args.groupTitle}、${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} 個のオプション`,
                    other: ()=>`${formatter.number(args.groupCount)} 個のオプション`
                })}を含む。`,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `、選択済み`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `候補`,
    "selectedAnnouncement": (args)=>`${args.optionText}、選択済み`
};

},{}],"2O3zr":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `제안 사항 표시`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)}개 옵션`,
            other: ()=>`${formatter.number(args.optionCount)}개 옵션`
        })}을 사용할 수 있습니다.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`입력한 그룹 ${args.groupTitle}, ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)}개 옵션`,
                    other: ()=>`${formatter.number(args.groupCount)}개 옵션`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, 선택됨`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `제안`,
    "selectedAnnouncement": (args)=>`${args.optionText}, 선택됨`
};

},{}],"kX56D":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Rodyti pasiūlymus`,
    "countAnnouncement": (args, formatter)=>`Yra ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} parinktis`,
            other: ()=>`${formatter.number(args.optionCount)} parinktys (-ių)`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Įvesta grupė ${args.groupTitle}, su ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} parinktimi`,
                    other: ()=>`${formatter.number(args.groupCount)} parinktimis (-ių)`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, pasirinkta`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Pasiūlymai`,
    "selectedAnnouncement": (args)=>`${args.optionText}, pasirinkta`
};

},{}],"e7p4x":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Rādīt ieteikumus`,
    "countAnnouncement": (args, formatter)=>`Pieejamo opciju skaits: ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opcija`,
            other: ()=>`${formatter.number(args.optionCount)} opcijas`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Ievadīta grupa ${args.groupTitle}, ar ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opciju`,
                    other: ()=>`${formatter.number(args.groupCount)} opcijām`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, atlasīta`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Ieteikumi`,
    "selectedAnnouncement": (args)=>`${args.optionText}, atlasīta`
};

},{}],"3PYCx":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Vis forslag`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} alternativ`,
            other: ()=>`${formatter.number(args.optionCount)} alternativer`
        })} finnes.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Angitt gruppe ${args.groupTitle}, med ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} alternativ`,
                    other: ()=>`${formatter.number(args.groupCount)} alternativer`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, valgt`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Forslag`,
    "selectedAnnouncement": (args)=>`${args.optionText}, valgt`
};

},{}],"aLXEp":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Suggesties weergeven`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} optie`,
            other: ()=>`${formatter.number(args.optionCount)} opties`
        })} beschikbaar.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Groep ${args.groupTitle} ingevoerd met ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} optie`,
                    other: ()=>`${formatter.number(args.groupCount)} opties`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, geselecteerd`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Suggesties`,
    "selectedAnnouncement": (args)=>`${args.optionText}, geselecteerd`
};

},{}],"j5TRq":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Wyświetlaj sugestie`,
    "countAnnouncement": (args, formatter)=>`dostępna/dostępne(-nych) ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opcja`,
            other: ()=>`${formatter.number(args.optionCount)} opcje(-i)`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Dołączono do grupy ${args.groupTitle}, z ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opcją`,
                    other: ()=>`${formatter.number(args.groupCount)} opcjami`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, wybrano`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Sugestie`,
    "selectedAnnouncement": (args)=>`${args.optionText}, wybrano`
};

},{}],"3LaHq":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Mostrar sugestões`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opção`,
            other: ()=>`${formatter.number(args.optionCount)} opções`
        })} disponível.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Grupo inserido ${args.groupTitle}, com ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opção`,
                    other: ()=>`${formatter.number(args.groupCount)} opções`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, selecionado`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Sugestões`,
    "selectedAnnouncement": (args)=>`${args.optionText}, selecionado`
};

},{}],"8XqzC":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Apresentar sugestões`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opção`,
            other: ()=>`${formatter.number(args.optionCount)} opções`
        })} disponível.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Grupo introduzido ${args.groupTitle}, com ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opção`,
                    other: ()=>`${formatter.number(args.groupCount)} opções`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, selecionado`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Sugestões`,
    "selectedAnnouncement": (args)=>`${args.optionText}, selecionado`
};

},{}],"1YLyq":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Afișare sugestii`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opțiune`,
            other: ()=>`${formatter.number(args.optionCount)} opțiuni`
        })} disponibile.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Grup ${args.groupTitle} introdus, cu ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opțiune`,
                    other: ()=>`${formatter.number(args.groupCount)} opțiuni`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, selectat`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Sugestii`,
    "selectedAnnouncement": (args)=>`${args.optionText}, selectat`
};

},{}],"6fhTx":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Показать предложения`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} параметр`,
            other: ()=>`${formatter.number(args.optionCount)} параметров`
        })} доступно.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Введенная группа ${args.groupTitle}, с ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} параметром`,
                    other: ()=>`${formatter.number(args.groupCount)} параметрами`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, выбранными`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Предложения`,
    "selectedAnnouncement": (args)=>`${args.optionText}, выбрано`
};

},{}],"3uXan":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Zobraziť návrhy`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} možnosť`,
            other: ()=>`${formatter.number(args.optionCount)} možnosti/-í`
        })} k dispozícii.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Zadaná skupina ${args.groupTitle}, s ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} možnosťou`,
                    other: ()=>`${formatter.number(args.groupCount)} možnosťami`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, vybraté`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Návrhy`,
    "selectedAnnouncement": (args)=>`${args.optionText}, vybraté`
};

},{}],"9qsQz":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Prikaži predloge`,
    "countAnnouncement": (args, formatter)=>`Na voljo je ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opcija`,
            other: ()=>`${formatter.number(args.optionCount)} opcije`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Vnesena skupina ${args.groupTitle}, z ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opcija`,
                    other: ()=>`${formatter.number(args.groupCount)} opcije`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, izbrano`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Predlogi`,
    "selectedAnnouncement": (args)=>`${args.optionText}, izbrano`
};

},{}],"jEVhf":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Prikaži predloge`,
    "countAnnouncement": (args, formatter)=>`Dostupno još: ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} opcija`,
            other: ()=>`${formatter.number(args.optionCount)} opcije/a`
        })}.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Unesena grupa ${args.groupTitle}, s ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} opcijom`,
                    other: ()=>`${formatter.number(args.groupCount)} optione/a`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, izabranih`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Predlozi`,
    "selectedAnnouncement": (args)=>`${args.optionText}, izabrano`
};

},{}],"bXzaQ":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Visa förslag`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} alternativ`,
            other: ()=>`${formatter.number(args.optionCount)} alternativ`
        })} tillgängliga.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Ingick i gruppen ${args.groupTitle} med ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} alternativ`,
                    other: ()=>`${formatter.number(args.groupCount)} alternativ`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, valda`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Förslag`,
    "selectedAnnouncement": (args)=>`${args.optionText}, valda`
};

},{}],"fdINT":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Önerileri göster`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} seçenek`,
            other: ()=>`${formatter.number(args.optionCount)} seçenekler`
        })} kullanılabilir.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Girilen grup ${args.groupTitle}, ile ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} seçenek`,
                    other: ()=>`${formatter.number(args.groupCount)} seçenekler`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, seçildi`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Öneriler`,
    "selectedAnnouncement": (args)=>`${args.optionText}, seçildi`
};

},{}],"dXA9o":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `Показати пропозиції`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} параметр`,
            other: ()=>`${formatter.number(args.optionCount)} параметри(-ів)`
        })} доступно.`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`Введена група ${args.groupTitle}, з ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} параметр`,
                    other: ()=>`${formatter.number(args.groupCount)} параметри(-ів)`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, вибрано`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `Пропозиції`,
    "selectedAnnouncement": (args)=>`${args.optionText}, вибрано`
};

},{}],"3zDSe":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `显示建议`,
    "countAnnouncement": (args, formatter)=>`有 ${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} 个选项`,
            other: ()=>`${formatter.number(args.optionCount)} 个选项`
        })}可用。`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`进入了 ${args.groupTitle} 组，其中有 ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} 个选项`,
                    other: ()=>`${formatter.number(args.groupCount)} 个选项`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, 已选择`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `建议`,
    "selectedAnnouncement": (args)=>`${args.optionText}, 已选择`
};

},{}],"4ELZe":[function(require,module,exports) {
module.exports = {
    "buttonLabel": `顯示建議`,
    "countAnnouncement": (args, formatter)=>`${formatter.plural(args.optionCount, {
            one: ()=>`${formatter.number(args.optionCount)} 選項`,
            other: ()=>`${formatter.number(args.optionCount)} 選項`
        })} 可用。`,
    "focusAnnouncement": (args, formatter)=>`${formatter.select({
            true: ()=>`輸入的群組 ${args.groupTitle}, 有 ${formatter.plural(args.groupCount, {
                    one: ()=>`${formatter.number(args.groupCount)} 選項`,
                    other: ()=>`${formatter.number(args.groupCount)} 選項`
                })}. `,
            other: ``
        }, args.isGroupChange)}${args.optionText}${formatter.select({
            true: `, 已選取`,
            other: ``
        }, args.isSelected)}`,
    "listboxLabel": `建議`,
    "selectedAnnouncement": (args)=>`${args.optionText}, 已選取`
};

},{}],"gkkCa":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useTextField", ()=>(0, _useTextField.useTextField));
parcelHelpers.export(exports, "useFormattedTextField", ()=>(0, _useFormattedTextField.useFormattedTextField));
var _useTextField = require("./useTextField");
var _useFormattedTextField = require("./useFormattedTextField");

},{"./useTextField":"gH6Uu","./useFormattedTextField":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"gH6Uu":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a text field.
 * @param props - Props for the text field.
 * @param ref - Ref to the HTML input or textarea element.
 */ parcelHelpers.export(exports, "useTextField", ()=>useTextField);
var _utils = require("@react-aria/utils");
var _label = require("@react-aria/label");
var _focus = require("@react-aria/focus");
function useTextField(props, ref) {
    let { inputElementType ="input" , isDisabled =false , isRequired =false , isReadOnly =false , validationState , type ="text" , value , defaultValue , onChange =()=>{}  } = props;
    let { focusableProps  } = (0, _focus.useFocusable)(props, ref);
    let { labelProps , fieldProps , descriptionProps , errorMessageProps  } = (0, _label.useField)(props);
    let domProps = (0, _utils.filterDOMProps)(props, {
        labelable: true
    });
    const inputOnlyProps = {
        type,
        pattern: props.pattern
    };
    var _ref;
    (0, _utils.useFormReset)(ref, (_ref = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref !== void 0 ? _ref : "", onChange);
    return {
        labelProps,
        inputProps: (0, _utils.mergeProps)(domProps, inputElementType === "input" && inputOnlyProps, {
            disabled: isDisabled,
            readOnly: isReadOnly,
            "aria-required": isRequired || undefined,
            "aria-invalid": validationState === "invalid" || undefined,
            "aria-errormessage": props["aria-errormessage"],
            "aria-activedescendant": props["aria-activedescendant"],
            "aria-autocomplete": props["aria-autocomplete"],
            "aria-haspopup": props["aria-haspopup"],
            value: props.value,
            defaultValue: props.value ? undefined : props.defaultValue,
            onChange: (e)=>onChange(e.target.value),
            autoComplete: props.autoComplete,
            maxLength: props.maxLength,
            minLength: props.minLength,
            name: props.name,
            placeholder: props.placeholder,
            inputMode: props.inputMode,
            // Clipboard events
            onCopy: props.onCopy,
            onCut: props.onCut,
            onPaste: props.onPaste,
            // Composition events
            onCompositionEnd: props.onCompositionEnd,
            onCompositionStart: props.onCompositionStart,
            onCompositionUpdate: props.onCompositionUpdate,
            // Selection events
            onSelect: props.onSelect,
            // Input events
            onBeforeInput: props.onBeforeInput,
            onInput: props.onInput,
            ...focusableProps,
            ...fieldProps
        }),
        descriptionProps,
        errorMessageProps
    };
}

},{"@react-aria/utils":"5XGXZ","@react-aria/label":"91g24","@react-aria/focus":"cRsYs","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"ldxK4":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "useSearchField", ()=>(0, _useSearchField.useSearchField));
var _useSearchField = require("./useSearchField");

},{"./useSearchField":"5T8Ch","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"5T8Ch":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
 * Provides the behavior and accessibility implementation for a search field.
 * @param props - Props for the search field.
 * @param state - State for the search field, as returned by `useSearchFieldState`.
 * @param inputRef - A ref to the input element.
 */ parcelHelpers.export(exports, "useSearchField", ()=>useSearchField);
var _utils = require("@react-aria/utils");
// @ts-ignore
var _json = require("../intl/*.json");
var _jsonDefault = parcelHelpers.interopDefault(_json);
var _i18N = require("@react-aria/i18n");
var _textfield = require("@react-aria/textfield");
function useSearchField(props, state, inputRef) {
    let stringFormatter = (0, _i18N.useLocalizedStringFormatter)((0, _jsonDefault.default));
    let { isDisabled , isReadOnly , onSubmit =()=>{} , onClear , type ="search"  } = props;
    let onKeyDown = (e)=>{
        const key = e.key;
        if (key === "Enter" || key === "Escape") e.preventDefault();
        if (isDisabled || isReadOnly) return;
        if (key === "Enter") onSubmit(state.value);
        if (key === "Escape") {
            state.setValue("");
            if (onClear) onClear();
        }
    };
    let onClearButtonClick = ()=>{
        state.setValue("");
        if (onClear) onClear();
    };
    let onPressStart = ()=>{
        // this is in PressStart for mobile so that touching the clear button doesn't remove focus from
        // the input and close the keyboard
        inputRef.current.focus();
    };
    let { labelProps , inputProps , descriptionProps , errorMessageProps  } = (0, _textfield.useTextField)({
        ...props,
        value: state.value,
        onChange: state.setValue,
        onKeyDown: (0, _utils.chain)(onKeyDown, props.onKeyDown),
        type
    }, inputRef);
    return {
        labelProps,
        inputProps: {
            ...inputProps,
            // already handled by useSearchFieldState
            defaultValue: undefined
        },
        clearButtonProps: {
            "aria-label": stringFormatter.format("Clear search"),
            excludeFromTabOrder: true,
            // @ts-ignore
            preventFocusOnPress: true,
            isDisabled: isDisabled || isReadOnly,
            onPress: onClearButtonClick,
            onPressStart
        },
        descriptionProps,
        errorMessageProps
    };
}

},{"@react-aria/utils":"5XGXZ","../intl/*.json":"debSg","@react-aria/i18n":"lHUec","@react-aria/textfield":"gkkCa","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"debSg":[function(require,module,exports) {
const _temp0 = require("ecfc0164cdafbc11");
const _temp1 = require("533820a702a6cc4d");
const _temp2 = require("adc1d07960abb370");
const _temp3 = require("959d90d2e1b8754d");
const _temp4 = require("c7bcb7c68ae4d133");
const _temp5 = require("7592b3baca1e1ab7");
const _temp6 = require("377509ed67276db9");
const _temp7 = require("bcdffd9a74290826");
const _temp8 = require("66f96fbb9c6f57b3");
const _temp9 = require("96660d96c61006f6");
const _temp10 = require("e42562491f0a003a");
const _temp11 = require("b2e319db05a47686");
const _temp12 = require("8c2f9a8959ebc6d8");
const _temp13 = require("5d3c12b049cdb778");
const _temp14 = require("11cc1fb3d7f8c195");
const _temp15 = require("c7097d1ca0fc0d82");
const _temp16 = require("6a0de05d519cdbf5");
const _temp17 = require("9741ebd533b2078c");
const _temp18 = require("406b77d2f3fc3437");
const _temp19 = require("53d9d9bd8feb82b1");
const _temp20 = require("7b20791f74309e10");
const _temp21 = require("d06b6fc5dda02e88");
const _temp22 = require("a28a6945ed983bd6");
const _temp23 = require("ebef8b25fee90b36");
const _temp24 = require("84e709af2309f7d7");
const _temp25 = require("2526519e9c0d0e8b");
const _temp26 = require("441fee45de55b70c");
const _temp27 = require("190818b45cb371e");
const _temp28 = require("929004f2e45d5643");
const _temp29 = require("77e5fd88fe39459e");
const _temp30 = require("bbe929569218677b");
const _temp31 = require("d3b3389f28451bb4");
const _temp32 = require("6b83a28d69d9848f");
const _temp33 = require("7fb75107a926411e");
module.exports = {
    "ar-AE": _temp0,
    "bg-BG": _temp1,
    "cs-CZ": _temp2,
    "da-DK": _temp3,
    "de-DE": _temp4,
    "el-GR": _temp5,
    "en-US": _temp6,
    "es-ES": _temp7,
    "et-EE": _temp8,
    "fi-FI": _temp9,
    "fr-FR": _temp10,
    "he-IL": _temp11,
    "hr-HR": _temp12,
    "hu-HU": _temp13,
    "it-IT": _temp14,
    "ja-JP": _temp15,
    "ko-KR": _temp16,
    "lt-LT": _temp17,
    "lv-LV": _temp18,
    "nb-NO": _temp19,
    "nl-NL": _temp20,
    "pl-PL": _temp21,
    "pt-BR": _temp22,
    "pt-PT": _temp23,
    "ro-RO": _temp24,
    "ru-RU": _temp25,
    "sk-SK": _temp26,
    "sl-SI": _temp27,
    "sr-SP": _temp28,
    "sv-SE": _temp29,
    "tr-TR": _temp30,
    "uk-UA": _temp31,
    "zh-CN": _temp32,
    "zh-TW": _temp33
};

},{"ecfc0164cdafbc11":"6vdIY","533820a702a6cc4d":"8zvCs","adc1d07960abb370":"42Wb4","959d90d2e1b8754d":"bGUlc","c7bcb7c68ae4d133":"2y5SF","7592b3baca1e1ab7":"4JXiW","377509ed67276db9":"9bBn6","bcdffd9a74290826":"2QiDg","66f96fbb9c6f57b3":"lITux","96660d96c61006f6":"gIgal","e42562491f0a003a":"b9blh","b2e319db05a47686":"cpYkI","8c2f9a8959ebc6d8":"8LrRp","5d3c12b049cdb778":"cFJ2c","11cc1fb3d7f8c195":"64RoI","c7097d1ca0fc0d82":"4E9xX","6a0de05d519cdbf5":"gx7zN","9741ebd533b2078c":"aUjvi","406b77d2f3fc3437":"fuLS2","53d9d9bd8feb82b1":"kDZx1","7b20791f74309e10":"k7G0E","d06b6fc5dda02e88":"aUOP1","a28a6945ed983bd6":"lfSNU","ebef8b25fee90b36":"cHM1I","84e709af2309f7d7":"jZXgO","2526519e9c0d0e8b":"2nT2C","441fee45de55b70c":"iXGWF","190818b45cb371e":"atVgo","929004f2e45d5643":"f4uNH","77e5fd88fe39459e":"96NV7","bbe929569218677b":"lx8JC","d3b3389f28451bb4":"f7Bex","6b83a28d69d9848f":"dzLoF","7fb75107a926411e":"4C5rX"}],"6vdIY":[function(require,module,exports) {
module.exports = {
    "Clear search": `مسح البحث`
};

},{}],"8zvCs":[function(require,module,exports) {
module.exports = {
    "Clear search": `Изчистване на търсене`
};

},{}],"42Wb4":[function(require,module,exports) {
module.exports = {
    "Clear search": `Vymazat hledání`
};

},{}],"bGUlc":[function(require,module,exports) {
module.exports = {
    "Clear search": `Ryd søgning`
};

},{}],"2y5SF":[function(require,module,exports) {
module.exports = {
    "Clear search": `Suche zurücksetzen`
};

},{}],"4JXiW":[function(require,module,exports) {
module.exports = {
    "Clear search": `Απαλοιφή αναζήτησης`
};

},{}],"9bBn6":[function(require,module,exports) {
module.exports = {
    "Clear search": `Clear search`
};

},{}],"2QiDg":[function(require,module,exports) {
module.exports = {
    "Clear search": `Borrar búsqueda`
};

},{}],"lITux":[function(require,module,exports) {
module.exports = {
    "Clear search": `Tühjenda otsing`
};

},{}],"gIgal":[function(require,module,exports) {
module.exports = {
    "Clear search": `Tyhjennä haku`
};

},{}],"b9blh":[function(require,module,exports) {
module.exports = {
    "Clear search": `Effacer la recherche`
};

},{}],"cpYkI":[function(require,module,exports) {
module.exports = {
    "Clear search": `נקה חיפוש`
};

},{}],"8LrRp":[function(require,module,exports) {
module.exports = {
    "Clear search": `Obriši pretragu`
};

},{}],"cFJ2c":[function(require,module,exports) {
module.exports = {
    "Clear search": `Keresés törlése`
};

},{}],"64RoI":[function(require,module,exports) {
module.exports = {
    "Clear search": `Cancella ricerca`
};

},{}],"4E9xX":[function(require,module,exports) {
module.exports = {
    "Clear search": `検索をクリア`
};

},{}],"gx7zN":[function(require,module,exports) {
module.exports = {
    "Clear search": `검색 지우기`
};

},{}],"aUjvi":[function(require,module,exports) {
module.exports = {
    "Clear search": `Išvalyti iešką`
};

},{}],"fuLS2":[function(require,module,exports) {
module.exports = {
    "Clear search": `Notīrīt meklēšanu`
};

},{}],"kDZx1":[function(require,module,exports) {
module.exports = {
    "Clear search": `Tøm søk`
};

},{}],"k7G0E":[function(require,module,exports) {
module.exports = {
    "Clear search": `Zoekactie wissen`
};

},{}],"aUOP1":[function(require,module,exports) {
module.exports = {
    "Clear search": `Wyczyść zawartość wyszukiwania`
};

},{}],"lfSNU":[function(require,module,exports) {
module.exports = {
    "Clear search": `Limpar pesquisa`
};

},{}],"cHM1I":[function(require,module,exports) {
module.exports = {
    "Clear search": `Limpar pesquisa`
};

},{}],"jZXgO":[function(require,module,exports) {
module.exports = {
    "Clear search": `Ştergeţi căutarea`
};

},{}],"2nT2C":[function(require,module,exports) {
module.exports = {
    "Clear search": `Очистить поиск`
};

},{}],"iXGWF":[function(require,module,exports) {
module.exports = {
    "Clear search": `Vymazať vyhľadávanie`
};

},{}],"atVgo":[function(require,module,exports) {
module.exports = {
    "Clear search": `Počisti iskanje`
};

},{}],"f4uNH":[function(require,module,exports) {
module.exports = {
    "Clear search": `Obriši pretragu`
};

},{}],"96NV7":[function(require,module,exports) {
module.exports = {
    "Clear search": `Rensa sökning`
};

},{}],"lx8JC":[function(require,module,exports) {
module.exports = {
    "Clear search": `Aramayı temizle`
};

},{}],"f7Bex":[function(require,module,exports) {
module.exports = {
    "Clear search": `Очистити пошук`
};

},{}],"dzLoF":[function(require,module,exports) {
module.exports = {
    "Clear search": `清除搜索`
};

},{}],"4C5rX":[function(require,module,exports) {
module.exports = {
    "Clear search": `清除搜尋條件`
};

},{}],"kKI3W":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("286400927a926840");
exports.__esModule = true;
exports.default = News;
var _News = require("84b7f5e4c1bfcf01");
var _icon = require("92fd6def8834ccb9");
var _react = _interopRequireDefault(require("4b9d5180dbc5e0c5"));
function News(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_News.A4uNews, null));
}

},{"286400927a926840":"aSVf3","84b7f5e4c1bfcf01":"cd0ik","92fd6def8834ccb9":"fTRUu","4b9d5180dbc5e0c5":"react"}],"cd0ik":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uNews = A4uNews;
var _react = _interopRequireDefault(require("4c00c6a12c9a9102"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uNews(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("path", {
        fillRule: "evenodd",
        d: "M33,6H5A1,1,0,0,0,4,7V27a1,1,0,0,1-2,0V10.5a.5.5,0,0,0-.5-.5H.5a.5.5,0,0,0-.5.5V27a3,3,0,0,0,3,3H31a3,3,0,0,0,3-3V7A1,1,0,0,0,33,6ZM31,28H6V8H32V27A1,1,0,0,1,31,28Z"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "2",
        width: "10",
        x: "20",
        y: "12"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "2",
        width: "10",
        x: "20",
        y: "20"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "2",
        width: "10",
        x: "8",
        y: "24"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "2",
        width: "10",
        x: "20",
        y: "16"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "2",
        width: "10",
        x: "20",
        y: "24"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "10",
        width: "10",
        x: "8",
        y: "12"
    }));
}

},{"4c00c6a12c9a9102":"react"}],"3Coap":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "ThemeProvider", ()=>ThemeProvider);
parcelHelpers.export(exports, "Snippet", ()=>Snippet);
parcelHelpers.export(exports, "Example", ()=>Example);
parcelHelpers.export(exports, "ThemeSwitcher", ()=>ThemeSwitcher);
var _jsxRuntime = require("react/jsx-runtime");
var _button = require("@react-spectrum/button");
var _light = require("@spectrum-icons/workflow/Light");
var _lightDefault = parcelHelpers.interopDefault(_light);
var _moon = require("@spectrum-icons/workflow/Moon");
var _moonDefault = parcelHelpers.interopDefault(_moon);
var _provider = require("@react-spectrum/provider");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _docsCss = require("./docs.css");
var _docsCssDefault = parcelHelpers.interopDefault(_docsCss);
var _themeDefault = require("@react-spectrum/theme-default");
function useCurrentColorScheme() {
    let mq = (0, _react.useMemo)(()=>window.matchMedia("(prefers-color-scheme: dark)"), []);
    let getCurrentColorScheme = (0, _react.useCallback)(()=>localStorage.theme || (mq.matches ? "dark" : "light"), [
        mq
    ]);
    let [colorScheme, setColorScheme] = (0, _react.useState)(()=>getCurrentColorScheme());
    (0, _react.useEffect)(()=>{
        let onChange = ()=>{
            setColorScheme(getCurrentColorScheme());
        };
        mq.addListener(onChange);
        window.addEventListener("storage", onChange);
        return ()=>{
            mq.removeListener(onChange);
            window.removeEventListener("storage", onChange);
        };
    }, [
        getCurrentColorScheme,
        mq
    ]);
    return colorScheme;
}
function ThemeProvider({ children , colorScheme: colorSchemeProp , UNSAFE_className , isHidden  }) {
    let colorScheme = useCurrentColorScheme();
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _provider.Provider), {
        theme: (0, _themeDefault.theme),
        colorScheme: colorSchemeProp || colorScheme,
        UNSAFE_className: UNSAFE_className,
        isHidden: isHidden,
        children: children
    });
}
function Snippet({ children  }) {
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)(ThemeProvider, {
        UNSAFE_className: (0, _docsCssDefault.default).snippet,
        children: children
    });
}
function Example({ children , colorScheme , isHidden  }) {
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)(ThemeProvider, {
        colorScheme: colorScheme,
        UNSAFE_className: (0, _docsCssDefault.default).example,
        isHidden: isHidden,
        children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(ErrorBoundary, {
            children: children
        })
    });
}
function ThemeSwitcher() {
    let colorScheme = useCurrentColorScheme();
    let onPress = ()=>{
        localStorage.theme = colorScheme === "dark" ? "light" : "dark";
        window.dispatchEvent(new Event("storage"));
    };
    let label = colorScheme === "dark" ? "Switch to light theme" : "Switch to dark theme";
    return /*#__PURE__*/ (0, _jsxRuntime.jsx)("div", {
        title: label,
        role: "presentation",
        children: /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _button.ActionButton), {
            "aria-label": label,
            onPress: onPress,
            children: colorScheme === "dark" ? /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _lightDefault.default), {}) : /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _moonDefault.default), {})
        })
    });
}
class ErrorBoundary extends (0, _reactDefault.default).Component {
    static getDerivedStateFromError(e) {
        return {
            error: e.message
        };
    }
    render() {
        if (this.state.error) return /*#__PURE__*/ (0, _jsxRuntime.jsx)("div", {
            children: "An error occurred while rendering the example."
        });
        return this.props.children;
    }
    constructor(props){
        super(props);
        this.state = {
            error: null
        };
    }
}

},{"react/jsx-runtime":"react/jsx-runtime","@react-spectrum/button":"9ryHb","@spectrum-icons/workflow/Light":"eHWGk","@spectrum-icons/workflow/Moon":"dtWVs","@react-spectrum/provider":"aPwML","react":"react","./docs.css":"BFiyE","@react-spectrum/theme-default":"iD3KR","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"eHWGk":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("5460e329d40f109c");
exports.__esModule = true;
exports.default = Light;
var _Light = require("452c386b746d5500");
var _icon = require("b3832bb0103b1ed5");
var _react = _interopRequireDefault(require("7e631b75e19fd707"));
function Light(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_Light.A4uLight, null));
}

},{"5460e329d40f109c":"aSVf3","452c386b746d5500":"aIZou","b3832bb0103b1ed5":"fTRUu","7e631b75e19fd707":"react"}],"aIZou":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uLight = A4uLight;
var _react = _interopRequireDefault(require("7ce26fb3b6f25e68"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uLight(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("circle", {
        fillRule: "evenodd",
        cx: "18",
        cy: "18",
        r: "7.9"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "6",
        rx: "0.5",
        ry: "0.5",
        width: "3.6",
        x: "16.2"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "6",
        rx: "0.5",
        ry: "0.5",
        width: "3.6",
        x: "16.2",
        y: "30"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "3.6",
        rx: "0.5",
        ry: "0.5",
        width: "6",
        y: "16.2"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "3.6",
        rx: "0.5",
        ry: "0.5",
        width: "6",
        x: "30",
        y: "16.2"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "3.6",
        rx: "0.5",
        ry: "0.5",
        transform: "translate(3.536 22.576) rotate(-45)",
        width: "6",
        x: "26.02",
        y: "5.22"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "3.6",
        rx: "0.5",
        ry: "0.5",
        transform: "translate(-18.464 13.464) rotate(-45)",
        width: "6",
        x: "4.02",
        y: "27.22"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "6",
        rx: "0.5",
        ry: "0.5",
        transform: "translate(-2.9 7) rotate(-45)",
        width: "3.6",
        x: "5.2",
        y: "4"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "6",
        rx: "0.5",
        ry: "0.5",
        transform: "translate(-12.004 28.98) rotate(-45)",
        width: "3.6",
        x: "27.18",
        y: "25.98"
    }));
}

},{"7ce26fb3b6f25e68":"react"}],"dtWVs":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("546acffb23dc5f4e");
exports.__esModule = true;
exports.default = Moon;
var _Moon = require("121b0f80b73e385a");
var _icon = require("5bbbf4ada47528e1");
var _react = _interopRequireDefault(require("7e176ab0256efd8"));
function Moon(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_Moon.A4uMoon, null));
}

},{"546acffb23dc5f4e":"aSVf3","121b0f80b73e385a":"h2fOV","5bbbf4ada47528e1":"fTRUu","7e176ab0256efd8":"react"}],"h2fOV":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uMoon = A4uMoon;
var _react = _interopRequireDefault(require("7f227912a2a011f7"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uMoon(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("path", {
        fillRule: "evenodd",
        d: "M18,2A16,16,0,1,0,34,18,16,16,0,0,0,18,2Zm1,29.964c-.33.023-.664.036-1,.036A14,14,0,0,1,18,4c.336,0,.67.013,1,.036a22,22,0,0,0,0,27.928Z"
    }));
}

},{"7f227912a2a011f7":"react"}],"44Nr4":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("fe89b11882702002");
exports.__esModule = true;
exports.default = LinkOut;
var _LinkOut = require("2bf3ef085ab6aae9");
var _icon = require("65b08afc4e216df5");
var _react = _interopRequireDefault(require("c3913195af122fed"));
function LinkOut(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_LinkOut.A4uLinkOut, null));
}

},{"fe89b11882702002":"aSVf3","2bf3ef085ab6aae9":"8BzkT","65b08afc4e216df5":"fTRUu","c3913195af122fed":"react"}],"8BzkT":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uLinkOut = A4uLinkOut;
var _react = _interopRequireDefault(require("bd8344ef271a33ca"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uLinkOut(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("path", {
        fillRule: "evenodd",
        d: "M33,18H31a1,1,0,0,0-1,1V30H6V6H17a1,1,0,0,0,1-1V3a1,1,0,0,0-1-1H3A1,1,0,0,0,2,3V33a1,1,0,0,0,1,1H33a1,1,0,0,0,1-1V19A1,1,0,0,0,33,18Z"
    }), /*#__PURE__*/ _react["default"].createElement("path", {
        fillRule: "evenodd",
        d: "M33.5,2H22.754A.8.8,0,0,0,22,2.8a.784.784,0,0,0,.235.56L26.021,7.15l-7.042,7.042a1,1,0,0,0,0,1.415l1.414,1.414a1,1,0,0,0,1.414,0L28.85,9.979l3.786,3.785A.781.781,0,0,0,33.2,14a.8.8,0,0,0,.8-.754V2.5A.5.5,0,0,0,33.5,2Z"
    }));
}

},{"bd8344ef271a33ca":"react"}],"aDp10":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "listen", ()=>i);
parcelHelpers.export(exports, "prefetch", ()=>c);
function n(n) {
    return new Promise(function(e, t, r) {
        (r = new XMLHttpRequest).open("GET", n, r.withCredentials = !0), r.onload = function() {
            200 === r.status ? e() : t();
        }, r.send();
    });
}
var e, t = (e = document.createElement("link")).relList && e.relList.supports && e.relList.supports("prefetch") ? function(n) {
    return new Promise(function(e, t, r) {
        (r = document.createElement("link")).rel = "prefetch", r.href = n, r.onload = e, r.onerror = t, document.head.appendChild(r);
    });
} : n, r = window.requestIdleCallback || function(n) {
    var e = Date.now();
    return setTimeout(function() {
        n({
            didTimeout: !1,
            timeRemaining: function() {
                return Math.max(0, 50 - (Date.now() - e));
            }
        });
    }, 1);
}, o = new Set;
function i(n) {
    if (n || (n = {}), window.IntersectionObserver) {
        var e = function(n) {
            n = n || 1;
            var e = [], t = 0;
            function r() {
                t < n && e.length > 0 && (e.shift()(), t++);
            }
            return [
                function(n) {
                    e.push(n) > 1 || r();
                },
                function() {
                    t--, r();
                }
            ];
        }(n.throttle || 1 / 0), t = e[0], i = e[1], u = n.limit || 1 / 0, a = n.origins || [
            location.hostname
        ], f = n.ignores || [], s = n.timeoutFn || r, l = new IntersectionObserver(function(e) {
            e.forEach(function(e) {
                e.isIntersecting && (l.unobserve(e = e.target), o.size < u && t(function() {
                    c(e.href, n.priority).then(i).catch(function(e) {
                        i(), n.onError && n.onError(e);
                    });
                }));
            });
        });
        return s(function() {
            (n.el || document).querySelectorAll("a").forEach(function(n) {
                a.length && !a.includes(n.hostname) || function n(e, t) {
                    return Array.isArray(t) ? t.some(function(t) {
                        return n(e, t);
                    }) : (t.test || t).call(t, e.href, e);
                }(n, f) || l.observe(n);
            });
        }, {
            timeout: n.timeout || 2e3
        }), function() {
            o.clear(), l.disconnect();
        };
    }
}
function c(e, r, i) {
    if (!(i = navigator.connection) || !i.saveData && !/2g/.test(i.effectiveType)) return Promise.all([].concat(e).map(function(e) {
        if (!o.has(e)) return o.add(e), (r ? function(e) {
            return window.fetch ? fetch(e, {
                credentials: "include"
            }) : n(e);
        } : t)(new URL(e, location.href).toString());
    }));
}

},{"@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6FLUJ":[function(require,module,exports) {
"use strict";
var _interopRequireDefault = require("10f394463160aedb");
exports.__esModule = true;
exports.default = ShowMenu;
var _ShowMenu = require("eb27788bbdb04ea1");
var _icon = require("71c10aa2ef219a65");
var _react = _interopRequireDefault(require("2438b36a18fdb420"));
function ShowMenu(props) {
    return /*#__PURE__*/ _react.default.createElement(_icon.Icon, props, /*#__PURE__*/ _react.default.createElement(_ShowMenu.A4uShowMenu, null));
}

},{"10f394463160aedb":"aSVf3","eb27788bbdb04ea1":"biNFy","71c10aa2ef219a65":"fTRUu","2438b36a18fdb420":"react"}],"biNFy":[function(require,module,exports) {
/**
* @adobe/react-spectrum-workflow (c) by Adobe
* 
* @adobe/react-spectrum-workflow is licensed under a
* Creative Commons Attribution-NoDerivatives 4.0 International License.
* 
* You should have received a copy of the license along with this
* work. If not, see <http://creativecommons.org/licenses/by-nd/4.0/>.
**/ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.A4uShowMenu = A4uShowMenu;
var _react = _interopRequireDefault(require("f48107c5153a083a"));
function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
        "default": obj
    };
}
function _extends() {
    _extends = Object.assign ? Object.assign.bind() : function(target) {
        for(var i = 1; i < arguments.length; i++){
            var source = arguments[i];
            for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
        }
        return target;
    };
    return _extends.apply(this, arguments);
}
function A4uShowMenu(_ref) {
    var props = _extends({}, _ref);
    return /*#__PURE__*/ _react["default"].createElement("svg", _extends({
        viewBox: "0 0 36 36"
    }, props, props), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "4",
        rx: "1",
        ry: "1",
        width: "28",
        x: "4",
        y: "16"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "4",
        rx: "1",
        ry: "1",
        width: "28",
        x: "4",
        y: "6"
    }), /*#__PURE__*/ _react["default"].createElement("rect", {
        fillRule: "evenodd",
        height: "4",
        rx: "1",
        ry: "1",
        width: "28",
        x: "4",
        y: "26"
    }));
}

},{"f48107c5153a083a":"react"}],"jVB8o":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
var _jsxRuntime = require("react/jsx-runtime");
var _attachToToC = require("./attachToToC");
var _breadcrumbs = require("@react-spectrum/breadcrumbs");
var _view = require("@react-spectrum/view");
var _dialog = require("@react-spectrum/dialog");
var _divider = require("@react-spectrum/divider");
var _docsCss = require("./docs.css");
var _docsCssDefault = parcelHelpers.interopDefault(_docsCss);
var _focus = require("@react-aria/focus");
var _syntaxHighlightCss = require("./syntax-highlight.css");
var _syntaxHighlightCssDefault = parcelHelpers.interopDefault(_syntaxHighlightCss);
var _overlays = require("@react-spectrum/overlays");
var _interactions = require("@react-aria/interactions");
var _react = require("react");
var _reactDefault = parcelHelpers.interopDefault(_react);
var _reactDom = require("react-dom");
var _reactDomDefault = parcelHelpers.interopDefault(_reactDom);
var _themeSwitcher = require("./ThemeSwitcher");
var _utils = require("@react-aria/utils");
let links = document.querySelectorAll("a[data-link]");
let images = document.querySelectorAll("img[data-img]");
for (let link of links){
    if (link.closest("[hidden]")) continue;
    let container = document.createElement("span");
    (0, _reactDomDefault.default).render(/*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _themeSwitcher.ThemeProvider), {
        UNSAFE_className: (0, _docsCssDefault.default).inlineProvider,
        children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _dialog.DialogTrigger), {
            type: "popover",
            children: [
                /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _interactions.Pressable), {
                    children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("a", {
                        role: "button",
                        tabIndex: 0,
                        "aria-haspopup": "dialog",
                        "data-link": link.dataset.link,
                        className: link.className,
                        onClick: (e)=>e.preventDefault(),
                        children: link.textContent
                    })
                }),
                /*#__PURE__*/ (0, _jsxRuntime.jsx)(LinkPopover, {
                    id: link.dataset.link
                })
            ]
        })
    }), container);
    link.parentNode.replaceChild(container, link);
}
function ImageModal({ children  }) {
    let [trigger, contents] = (0, _reactDefault.default).Children.toArray(children);
    let [isOpen, setOpen] = (0, _reactDefault.default).useState(false);
    let { pressProps  } = (0, _interactions.usePress)({
        onPress: ()=>setOpen(true)
    });
    trigger = /*#__PURE__*/ (0, _reactDefault.default).cloneElement(trigger, pressProps);
    return /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _jsxRuntime.Fragment), {
        children: [
            trigger,
            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _overlays.Modal), {
                isDismissable: true,
                isOpen: isOpen,
                onClose: ()=>setOpen(false),
                UNSAFE_style: {
                    overflow: "scroll"
                },
                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _focus.FocusScope), {
                    contain: true,
                    restoreFocus: true,
                    autoFocus: true,
                    children: contents
                })
            })
        ]
    });
}
for (let image of images){
    let container = document.createElement("span");
    let url = image.src.replace(/.*\/\/[^/]*/, "");
    (0, _reactDomDefault.default).render(/*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _themeSwitcher.ThemeProvider), {
        UNSAFE_className: (0, _docsCssDefault.default).inlineProvider,
        children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(ImageModal, {
            children: [
                /*#__PURE__*/ (0, _jsxRuntime.jsx)("button", {
                    className: (0, _docsCssDefault.default).expandableImageButton,
                    children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("img", {
                        src: url,
                        className: image.className,
                        alt: image.alt
                    })
                }),
                /*#__PURE__*/ (0, _jsxRuntime.jsx)("div", {
                    role: "dialog",
                    tabIndex: 0,
                    children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("img", {
                        src: url,
                        alt: image.alt
                    })
                })
            ]
        })
    }), container);
    image.parentNode.replaceChild(container, image);
}
function LinkPopover({ id  }) {
    let ref = (0, _react.useRef)();
    let breadcrumbsRef = (0, _react.useRef)();
    let [breadcrumbs, setBreadcrumbs] = (0, _react.useState)([
        document.getElementById(id)
    ]);
    (0, _utils.useLayoutEffect)(()=>{
        // Update links within the rendered popover content, so that when clicked
        // they will open as the new current breadcrumb and popover content.
        let links = ref.current.querySelectorAll("[data-link]");
        for (let link of links){
            // Links with [data-link] will open within the LinkPopover, so [aria-haspopup] is not appropriate.
            link.removeAttribute("aria-haspopup");
            // Add click event handler so that the link updates the content of the popover.
            link.addEventListener("click", (e)=>{
                e.preventDefault();
                setBreadcrumbs([
                    ...breadcrumbs,
                    document.getElementById(link.dataset.link)
                ]);
            });
        }
    }, [
        breadcrumbs
    ]);
    return /*#__PURE__*/ (0, _jsxRuntime.jsxs)((0, _dialog.Dialog), {
        "aria-label": breadcrumbs[breadcrumbs.length - 1].dataset.title,
        UNSAFE_className: `${(0, _syntaxHighlightCssDefault.default).spectrum} ${(0, _docsCssDefault.default).popover}`,
        size: "L",
        children: [
            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _view.View), {
                slot: "heading",
                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _breadcrumbs.Breadcrumbs), {
                    ref: breadcrumbsRef,
                    onAction: (key)=>setBreadcrumbs(breadcrumbs.slice(0, key)),
                    autoFocusCurrent: true,
                    children: breadcrumbs.map((b, i)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _breadcrumbs.Item), {
                            children: b.dataset.title
                        }, i + 1))
                })
            }),
            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _divider.Divider), {
                size: "M"
            }),
            /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _view.Content), {
                children: /*#__PURE__*/ (0, _jsxRuntime.jsx)("div", {
                    ref: ref,
                    dangerouslySetInnerHTML: {
                        __html: breadcrumbs[breadcrumbs.length - 1].innerHTML
                    }
                })
            })
        ]
    });
}
(0, _attachToToC.attachToToC)();

},{"react/jsx-runtime":"react/jsx-runtime","./attachToToC":"bXkh4","@react-spectrum/breadcrumbs":"bZI1U","@react-spectrum/view":"hFzw6","@react-spectrum/dialog":"8I6Ts","@react-spectrum/divider":"a3L1w","./docs.css":"BFiyE","@react-aria/focus":"cRsYs","./syntax-highlight.css":"gPKkR","@react-spectrum/overlays":"gI5f4","@react-aria/interactions":"3eipm","react":"react","react-dom":"react-dom","./ThemeSwitcher":"3Coap","@react-aria/utils":"5XGXZ","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"bXkh4":[function(require,module,exports) {
/*
 * Copyright 2020 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "attachToToC", ()=>attachToToC);
var _varsCss = require("@adobe/spectrum-css-temp/components/sidenav/vars.css");
var _varsCssDefault = parcelHelpers.interopDefault(_varsCss);
function attachToToC() {
    let tocLinks = document.querySelectorAll("#toc a");
    let headers = [];
    for (let link of tocLinks){
        let headerId = link.href.split("#").pop();
        let header = document.getElementById(headerId);
        headers.push({
            link,
            header
        });
    }
    function updateToc() {
        requestAnimationFrame(()=>{
            // this needs to be improved a little but the math hurts my head right now
            // right now it's impossible to select the last section if the last two heights combined are smaller than the viewport height
            headers.some((header, i)=>{
                if (header.header.offsetTop + header.header.getBoundingClientRect().height > document.documentElement.scrollTop) {
                    let currentSelection = document.querySelectorAll(`#toc .${(0, _varsCssDefault.default)["is-selected"]}`);
                    if (currentSelection) currentSelection.forEach((node)=>{
                        node.classList.remove((0, _varsCssDefault.default)["is-selected"]);
                        const link = node.querySelector("[aria-current]");
                        if (link) link.removeAttribute("aria-current");
                    });
                    header.link.parentElement.classList.add((0, _varsCssDefault.default)["is-selected"]);
                    header.link.setAttribute("aria-current", "location");
                    return true;
                }
            });
        });
    }
    updateToc();
    document.addEventListener("scroll", updateToc);
}

},{"@adobe/spectrum-css-temp/components/sidenav/vars.css":"6NAG2","@parcel/transformer-js/src/esmodule-helpers.js":"7dwQU"}],"6NAG2":[function(require,module,exports) {
module.exports["spectrum-SideNav"] = "spectrum-SideNav_f044ae";
module.exports["spectrum-SideNav-item"] = "spectrum-SideNav-item_f044ae";
module.exports["spectrum-SideNav-itemLink"] = "spectrum-SideNav-itemLink_f044ae";
module.exports["focus-ring"] = "focus-ring_f044ae";
module.exports["spectrum-SideNav-itemIcon"] = "spectrum-SideNav-itemIcon_f044ae";
module.exports["spectrum-SideNav-heading"] = "spectrum-SideNav-heading_f044ae";
module.exports["spectrum-SideNav--multiLevel"] = "spectrum-SideNav--multiLevel_f044ae";
module.exports["is-selected"] = "is-selected_f044ae";
module.exports["is-active"] = "is-active_f044ae";
module.exports["is-disabled"] = "is-disabled_f044ae";

},{}],"gPKkR":[function(require,module,exports) {
module.exports["spectrum"] = "spectrum_745be7";
module.exports["dark"] = "dark_745be7";

},{}]},["aQfkS"], "aQfkS", "parcelRequire7f0c")

